我正在处理使用UIControl
事件的事情,我一直试图找到一种方法来获取发送命令的播放器的名称。如果玩家将自己传送给他们,这很容易,因为显然你可以使用OnPlayerTeleport
。
当event.getPlayer()
传送player1
生成时,player2
可能会触发该事件。如果传送被取消,我需要一种将结果返回player2
的方法。
答案 0 :(得分:0)
您应该检查编写命令的人(/ tp p1 p2),例如通过扩展JavaPlugin并包含
的类onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
在那里,您应该能够通过检查您给出的args和发件人来检测谁是发件人。
答案 1 :(得分:0)
听取命令,而不是它的行为。
您可以使用PlayerCommandPreprocessEvent
。
@EventHandler(priority = EventPriority.MONITOR)
public void onCommand(PlayerCommandPreprocessEvent event) {
String label = event.getMessage();
String[] components = label.split(" ");
if (components[0].equalsIgnoreCase("/tp")) {
Player sender = event.getPlayer();
// Here you go
}
}