本帖最后由 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);
AsyncPlayerChatEvent事件,我想玩家说的话满足条件后执行player.chat("/" + cmds);虽然能执行但是会报错
请问有替代他的事件或者方法么?
答案(六楼也一样):
Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getInstance(), new Runnable() {
public void run() {
Bukkit.dispatchCommand(player, cmds);
}}, 2L);
- Bukkit.dispatchCommand(player, cmds);
在AsyncPlayerChatEvent事件里执行player.chat()可能会再次触发AsyncPlayerChatEvent事件,形成一个死循环,导致报错(我猜的)
可以用楼上的方法试试
可以用楼上的方法试试
1789717367 发表于 2020-1-8 21:01
都一样其实,这个事件就是不能这么搞,有bug只能这样理解了
TheRam_ 发表于 2020-1-8 21:14
在AsyncPlayerChatEvent事件里执行player.chat()可能会再次触发AsyncPlayerChatEvent事件,形成一个死循环 ...
单纯就是个bug,这事件不能直接用指令
 
楼上正解。不能异步调用服务端的一些方法。比如BukkitAPI