获取命令发送者 onPlayerTeleport Bukkit

Get Command Sender onPlayerTeleport Bukkit

我正在做一些使用 OnPlayerTeleport 事件的事情,我一直在努力寻找一种方法来获取发送命令的玩家的名字。如果玩家自己传送他们,这很容易,因为显然你可以使用 event.getPlayer().

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

您应该检查编写命令 (/tp p1 p2) 的人,例如 class 扩展 JavaPlugin 并包含

onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)

在那里,您应该能够通过检查给定的参数和发件人来检测谁是发件人。

听命令,而不是它的行为。 您可以使用 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
    }
}