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/lib/task-canary.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

34 lines
1.2 KiB
JavaScript

/*
javascript programmers familiar with setTimeout know that it expects
a delay in milliseconds. However, bukkit's scheduler expects a delay in ticks
(where 1 tick = 1/20th second)
*/
function canarySetTimeout( callback, delayInMillis ){
var cmTaskManager = Packages.net.canarymod.tasks.ServerTaskManager;
var delay = Math.ceil( delayInMillis / 50 );
var task = __plugin.createServerTask(callback, delay, false);
cmTaskManager.addTask(task);
return task;
}
function canaryClearTimeout( task ){
var cmTaskManager = Packages.net.canarymod.tasks.ServerTaskManager;
cmTaskManager.removeTask( task );
}
function canarySetInterval( callback, intervalInMillis ) {
var cmTaskManager = Packages.net.canarymod.tasks.ServerTaskManager;
var delay = Math.ceil( intervalInMillis / 50 );
var task = __plugin.createServerTask(callback, delay, true);
cmTaskManager.addTask(task);
return task;
}
function canaryClearInterval( task ){
var cmTaskManager = Packages.net.canarymod.tasks.ServerTaskManager;
cmTaskManager.removeTask( task );
}
module.exports = function($){
$.setTimeout = canarySetTimeout;
$.clearTimeout = canaryClearTimeout;
$.setInterval = canarySetInterval;
$.clearInterval = canaryClearInterval;
};