获取命令发件人onPlayerTeleport Bukkit

时间:2015-05-26 13:45:35

标签: java bukkit

我正在处理使用UIControl事件的事情,我一直试图找到一种方法来获取发送命令的播放器的名称。如果玩家将自己传送给他们,这很容易,因为显然你可以使用OnPlayerTeleport

event.getPlayer()传送player1生成时,player2可能会触发该事件。如果传送被取消,我需要一种将结果返回player2的方法。

2 个答案:

答案 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
    }
}