弥猫うた
本帖最后由 Mucrazy 于 2020-1-9 09:49 编辑

AsyncPlayerChatEvent事件,我想玩家说的话满足条件后执行player.chat("/" + cmds);虽然能执行但是会报错
请问有替代他的事件或者方法么?
答案(六楼也一样):
Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getInstance(), new Runnable() {
public void run() {
Bukkit.dispatchCommand(player, cmds);
}},  2L);


1789717367
  1. Bukkit.dispatchCommand(player, cmds);
复制代码

TheRam_
在AsyncPlayerChatEvent事件里执行player.chat()可能会再次触发AsyncPlayerChatEvent事件,形成一个死循环,导致报错(我猜的)

可以用楼上的方法试试

弥猫うた
1789717367 发表于 2020-1-8 21:01

都一样其实,这个事件就是不能这么搞,有bug只能这样理解了

弥猫うた
TheRam_ 发表于 2020-1-8 21:14
在AsyncPlayerChatEvent事件里执行player.chat()可能会再次触发AsyncPlayerChatEvent事件,形成一个死循环 ...

单纯就是个bug,这事件不能直接用指令

Himmelt


iKoumimi
楼上正解。不能异步调用服务端的一些方法。比如BukkitAPI