This repository has been archived on 2021-07-14. You can view files and clone it, but cannot push or open issues or pull requests.
scriptcraft/src/main/js/modules/canary/input.js
walterhiggins 19162c3688 First phase of transition from Bukkit to Canary.
Some of the plugins are not yet supported.
If you're feeling brave you can build from source using ant.
2014-09-29 23:42:41 +01:00

27 lines
837 B
JavaScript

function canaryAsyncInput( sender, promptMesg, callback) {
sender.message(promptMesg);
function repeat(){
setTimeout( function(){
listener.unregister(); // avoid CME
canaryAsyncInput( sender, promptMesg, callback);
},1);
}
var listener = events.chat(function (event) {
if (event.player == sender) {
var receivers = event.getReceiverList();
if (receivers.size() == 1 && receivers.contains(sender)){
var value = event.message;
var that = this;
event.setCanceled();
callback.apply( { repeat: repeat, sender: sender, message: promptMesg, value: value },
[value, sender, repeat]);
setTimeout(function(){that.unregister();},10);
}
}
},'CRITICAL');
// unregister after 30 seconds
setTimeout(function(){ listener.unregister(); }, 30000);
}
module.exports = canaryAsyncInput;