utils 工具拓展

字段

方法

utils.isPlayer(p)

调用该方法将会判断传入对象是否为玩家。

if (utils.isPlayer(p)) {
  logger.info("这是一个玩家!");
} else {
  logger.warn("这不是玩家!");
}

utils.giveItem(idOrAlias, p)

调用该方法将会给予玩家指定id/alias的物品。

if (utils.isPlayer(p)) {
  utils.giveItem("diamond_sword", p);  // 给玩家一把钻石剑
}

utils.pause(time)

调用该方法将会阻塞/暂停当前流(线程) time 毫秒。

logger.info("开始等待...");
utils.pause(2000);  // 暂停 2 秒
logger.info("等待结束!");

utils.sync(func)

调用该方法将会以主线程同步方式执行传入的 func 函数。

utils.sync(() => {
  p.sendMessage("这条消息来自主线程!");
});

utils.async(func)

调用该方法将会以异步线程方式执行传入的 func 函数。

utils.async(() => {
  logger.info("正在后台执行耗时操作...");
  utils.pause(3000);
  logger.info("后台任务完成!");
});

utils.later(func, delay)

调用该方法将会以在延迟 delay 秒后执行传入的 func 函数。

utils.later(() => {
  p.sendMessage("3秒后触发的消息!");
}, 3);

utils.toItem(itemStack)

调用该方法将会把传入的 itemStack 实例转为 AzureFlow 物品。

let item = utils.toItem(p.getInventory().getItemInMainHand());
logger.info("物品数据:" + item.values);

utils.onBukkit(eventClazz, func)

调用该方法将会把传入的 func 参数作为监听器,注册到指定的Bukkit事件回调中。

utils.onBukkit(org.bukkit.event.player.PlayerJoinEvent.class, (event) => {
  let player = event.getPlayer();
  player.sendMessage("欢迎加入服务器!");
});

Last updated