获取命令发送者 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
}
}
我正在做一些使用 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
}
}