I’ve noticed you don’t bind an actual function.
You need to wrap your recalibratePlayers functions into an anonymous function, or create a synonym.
Either replace both
recalibratePlayers( ...)
with
function() { recalibratePlayers( ...); }
or replace them both with:
recalibratePlayer.bind(player,arg1,arg2)
What the code you gave is doing, is binding the ‘RESULT’ of the function recalibratePlayers as an event listener. IE, it executes the function in place ONCE. It executes the function and puts the return value or whatever it does in the addEventListener function.
read more about function binds here