| 138 | var playerEventHandlers = {}; |
| 139 | |
| 140 | function reloadPlayerModules(playerContext, playerDir) { |
| 141 | /* |
| 142 | wph 20150118 first unregister any event handlers registered by the player |
| 143 | */ |
| 144 | var playerDirPath = '' + playerDir.getAbsolutePath(); |
| 145 | var eventHandlers = playerEventHandlers[playerDirPath]; |
| 146 | if (eventHandlers) { |
| 147 | for (var i = 0; i < eventHandlers.length; i++) { |
| 148 | eventHandlers[i].unregister(); |
| 149 | } |
| 150 | eventHandlers.length = 0; |
| 151 | } else { |
| 152 | playerEventHandlers[playerDirPath] = []; |
| 153 | eventHandlers = playerEventHandlers[playerDirPath]; |
| 154 | } |
| 155 | /* |
| 156 | override events.on() so that the listener is stored here so it can be unregistered. |
| 157 | */ |
| 158 | var oldOn = events.on; |
| 159 | var newOn = function(eventType, fn, priority) { |
| 160 | var handler = oldOn(eventType, fn, priority); |
| 161 | eventHandlers.push(handler); |
| 162 | }; |
| 163 | events.on = newOn; |
| 164 | autoload(playerContext, playerDir, { cache: false }); |
| 165 | events.on = oldOn; |
| 166 | } |
| 167 | function grantScripting(player) { |
| 168 | console.log('Enabling scripting for player ' + player.name); |
| 169 | var playerName = '' + player.name; |