feat: 调整Task任务模块
This commit is contained in:
parent
f94fa71f36
commit
8f5bae006a
@ -1,2 +1,11 @@
|
|||||||
|
'use strict';
|
||||||
|
/**
|
||||||
|
* MiaoScript Task处理类
|
||||||
|
* @namespace plugin.configFile.parentFile, command.enable, permission.enable
|
||||||
|
*/
|
||||||
/*global Java, base, module, exports, require*/
|
/*global Java, base, module, exports, require*/
|
||||||
module.exports = requireInternal('task');
|
function TaskHandlerDefault() {
|
||||||
|
}
|
||||||
|
var TaskHandler = Object.assign(new TaskHandlerDefault(), requireInternal('task'));
|
||||||
|
|
||||||
|
exports = module.exports = TaskHandler;
|
||||||
|
@ -10,14 +10,15 @@ var BukkitRunnable = Java.type("org.bukkit.scheduler.BukkitRunnable");
|
|||||||
* 创建任务对象
|
* 创建任务对象
|
||||||
* @param func 任务
|
* @param func 任务
|
||||||
*/
|
*/
|
||||||
exports.create = function (func) {
|
function create(func) {
|
||||||
|
if (toString.call(func) !== "[object Function]") { throw TypeError('第一个参数 Task 必须为 function !'); };
|
||||||
return new BukkitRunnable(func);
|
return new BukkitRunnable(func);
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* 运行任务
|
* 运行任务
|
||||||
* @param func 任务
|
* @param func 任务
|
||||||
*/
|
*/
|
||||||
exports.run = function (func) {
|
function run(func) {
|
||||||
return exports.create(func).runTask(plugin);
|
return exports.create(func).runTask(plugin);
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
@ -25,7 +26,7 @@ exports.run = function (func) {
|
|||||||
* @param func 任务
|
* @param func 任务
|
||||||
* @param time 延时时间
|
* @param time 延时时间
|
||||||
*/
|
*/
|
||||||
exports.later = function (func, time) {
|
function later(func, time) {
|
||||||
return exports.create(func).runTaskLater(plugin, time);
|
return exports.create(func).runTaskLater(plugin, time);
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
@ -33,19 +34,21 @@ exports.later = function (func, time) {
|
|||||||
* @constructor (任务,执行间隔).
|
* @constructor (任务,执行间隔).
|
||||||
* @constructor (任务,首次延时,执行间隔)
|
* @constructor (任务,首次延时,执行间隔)
|
||||||
*/
|
*/
|
||||||
exports.timer = function () {
|
function timer() {
|
||||||
switch (arguments.length) {
|
switch (arguments.length) {
|
||||||
case 2:
|
case 2:
|
||||||
return exports.create(arguments[0]).runTaskTimer(plugin, 0, arguments[1]);
|
return exports.create(arguments[0]).runTaskTimer(plugin, 0, arguments[1]);
|
||||||
case 3:
|
case 3:
|
||||||
return exports.create(arguments[0]).runTaskTimer(plugin, arguments[1], arguments[2]);
|
return exports.create(arguments[0]).runTaskTimer(plugin, arguments[1], arguments[2]);
|
||||||
|
default:
|
||||||
|
throw TypeError('参数错误 task.timer(func, [delay], interval)');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* 运行异步任务
|
* 运行异步任务
|
||||||
* @param func function 任务
|
* @param func function 任务
|
||||||
*/
|
*/
|
||||||
exports.async = function (func) {
|
function _async(func) {
|
||||||
return exports.create(func).runTaskAsynchronously(plugin);
|
return exports.create(func).runTaskAsynchronously(plugin);
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
@ -53,7 +56,7 @@ exports.async = function (func) {
|
|||||||
* @param func 任务
|
* @param func 任务
|
||||||
* @param time 延时时间
|
* @param time 延时时间
|
||||||
*/
|
*/
|
||||||
exports.laterAsync = function (func, time) {
|
function laterAsync(func, time) {
|
||||||
return exports.create(func).runTaskLaterAsynchronously(plugin, time);
|
return exports.create(func).runTaskLaterAsynchronously(plugin, time);
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
@ -61,11 +64,22 @@ exports.laterAsync = function (func, time) {
|
|||||||
* @constructor (任务,执行间隔).
|
* @constructor (任务,执行间隔).
|
||||||
* @constructor (任务,首次延时,执行间隔)
|
* @constructor (任务,首次延时,执行间隔)
|
||||||
*/
|
*/
|
||||||
exports.timerAsync = function () {
|
function timerAsync() {
|
||||||
switch (arguments.length) {
|
switch (arguments.length) {
|
||||||
case 2:
|
case 2:
|
||||||
return exports.create(arguments[0]).runTaskTimerAsynchronously(plugin, 0, arguments[1]);
|
return exports.create(arguments[0]).runTaskTimerAsynchronously(plugin, 0, arguments[1]);
|
||||||
case 3:
|
case 3:
|
||||||
return exports.create(arguments[0]).runTaskTimerAsynchronously(plugin, arguments[1], arguments[2]);
|
return exports.create(arguments[0]).runTaskTimerAsynchronously(plugin, arguments[1], arguments[2]);
|
||||||
|
default:
|
||||||
|
throw TypeError('参数错误 task.timerAsync(func, [delay], interval)');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports = module.exports = {
|
||||||
|
run: run,
|
||||||
|
later: later,
|
||||||
|
timer: timer,
|
||||||
|
async: _async,
|
||||||
|
laterAsync: laterAsync,
|
||||||
|
timerAsync: timerAsync
|
||||||
|
}
|
@ -11,7 +11,8 @@ var Task = Java.type("org.spongepowered.api.scheduler.Task");
|
|||||||
* 创建任务对象
|
* 创建任务对象
|
||||||
* @param func 任务
|
* @param func 任务
|
||||||
*/
|
*/
|
||||||
exports.create = function (func) {
|
function create(func) {
|
||||||
|
if (toString.call(func) !== "[object Function]") { throw TypeError('第一个参数 Task 必须为 function !'); };
|
||||||
return Task.builder().execute(new Consumer(function () {
|
return Task.builder().execute(new Consumer(function () {
|
||||||
try {
|
try {
|
||||||
func();
|
func();
|
||||||
@ -24,55 +25,68 @@ exports.create = function (func) {
|
|||||||
* 运行任务
|
* 运行任务
|
||||||
* @param func 任务
|
* @param func 任务
|
||||||
*/
|
*/
|
||||||
exports.run = function (func) {
|
function run(func) {
|
||||||
return exports.create(func).submit(plugin);
|
return create(func).submit(plugin);
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* 延时运行任务
|
* 延时运行任务
|
||||||
* @param func 任务
|
* @param func 任务
|
||||||
* @param time 延时时间
|
* @param time 延时时间
|
||||||
*/
|
*/
|
||||||
exports.later = function (func, time) {
|
function later(func, time) {
|
||||||
return exports.create(func).delayTicks(time).submit(plugin);
|
return create(func).delayTicks(time).submit(plugin);
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* 运行循环任务
|
* 运行循环任务
|
||||||
* @constructor (任务,执行间隔).
|
* @constructor (任务,执行间隔).
|
||||||
* @constructor (任务,首次延时,执行间隔)
|
* @constructor (任务,首次延时,执行间隔)
|
||||||
*/
|
*/
|
||||||
exports.timer = function () {
|
function timer() {
|
||||||
switch (arguments.length) {
|
switch (arguments.length) {
|
||||||
case 2:
|
case 2:
|
||||||
return exports.create(arguments[0]).intervalTicks(arguments[1]).submit(plugin);
|
return create(arguments[0]).intervalTicks(arguments[1]).submit(plugin);
|
||||||
case 3:
|
case 3:
|
||||||
return exports.create(arguments[0]).delayTicks(arguments[1]).intervalTicks(arguments[2]).submit(plugin);
|
return create(arguments[0]).delayTicks(arguments[1]).intervalTicks(arguments[2]).submit(plugin);
|
||||||
|
default:
|
||||||
|
throw TypeError('参数错误 task.timer(func, [delay], interval)');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* 运行异步任务
|
* 运行异步任务
|
||||||
* @param func function 任务
|
* @param func function 任务
|
||||||
*/
|
*/
|
||||||
exports.async = function (func) {
|
function _async(func) {
|
||||||
return exports.create(func).async().submit(plugin);
|
return create(func).async().submit(plugin);
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* 延时运行异步任务
|
* 延时运行异步任务
|
||||||
* @param func 任务
|
* @param func 任务
|
||||||
* @param time 延时时间
|
* @param time 延时时间
|
||||||
*/
|
*/
|
||||||
exports.laterAsync = function (func, time) {
|
function laterAsync(func, time) {
|
||||||
return exports.create(func).async().delayTicks(time).submit(plugin);
|
return create(func).async().delayTicks(time).submit(plugin);
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* 运行异步循环任务
|
* 运行异步循环任务
|
||||||
* @constructor (任务,执行间隔).
|
* @constructor (任务,执行间隔).
|
||||||
* @constructor (任务,首次延时,执行间隔)
|
* @constructor (任务,首次延时,执行间隔)
|
||||||
*/
|
*/
|
||||||
exports.timerAsync = function () {
|
function timerAsync() {
|
||||||
switch (arguments.length) {
|
switch (arguments.length) {
|
||||||
case 2:
|
case 2:
|
||||||
return exports.create(arguments[0]).async().intervalTicks(arguments[1]).submit(plugin);
|
return create(arguments[0]).async().intervalTicks(arguments[1]).submit(plugin);
|
||||||
case 3:
|
case 3:
|
||||||
return exports.create(arguments[0]).async().delayTicks(arguments[1]).intervalTicks(arguments[2]).submit(plugin);
|
return create(arguments[0]).async().delayTicks(arguments[1]).intervalTicks(arguments[2]).submit(plugin);
|
||||||
|
default:
|
||||||
|
throw TypeError('参数错误 task.timerAsync(func, [delay], interval)');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports = module.exports = {
|
||||||
|
run: run,
|
||||||
|
later: later,
|
||||||
|
timer: timer,
|
||||||
|
async: _async,
|
||||||
|
laterAsync: laterAsync,
|
||||||
|
timerAsync: timerAsync
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user