public class SimpleCommand implements CommandExecutor {
public boolean onCommand(@NotNull CommandSender commandSender,@NotNull Command command,@NotNull String label, String[] args) {
}
怎么从这个commandSender里头拿到Player对象
具体想达到的效果为,拿到Player对象后,以获取的Player发送一条指定命令
换句话说,我是Player123,我现在使用了/simplecommand然后通过这个间接让我使用了/give Player123 diamond_sword
实际效果就是给了我一把钻石剑,可以不考虑权限问题
public boolean onCommand(@NotNull CommandSender commandSender,@NotNull Command command,@NotNull String label, String[] args) {
}
怎么从这个commandSender里头拿到Player对象
具体想达到的效果为,拿到Player对象后,以获取的Player发送一条指定命令
换句话说,我是Player123,我现在使用了/simplecommand然后通过这个间接让我使用了/give Player123 diamond_sword
实际效果就是给了我一把钻石剑,可以不考虑权限问题
if(commandSender instanceof Player){
Player player = (Player)ommandSender;
}
Player player = (Player)ommandSender;
}
万分感谢万分感谢万分感谢
自己看api去,有 PlayerCommandSendEvent这个事件可以用
本帖最后由 o2072108706 于 2021-9-27 22:59 编辑
复制代码或许可以说试试
- @EventHandler
- public void onCommandSend(PlayerCommandSendEvent event) {
- String playerName = event.getPlayer().getName();
- Bukkit.getServer().getLogger().info("/give" + playerName +"diamond_sword");
- }
var player = Bukkit.getPlayer(playerName);
if(player==null) return;
//do something by using player
if(player==null) return;
//do something by using player
Minecraft_652 发表于 2021-9-28 09:23
这个事件不是玩家发送任意命令的时候触发么
在onCommand里是在玩家发送我的插件命令的时候触发 ...
不一定是发送任意命令
你可以判断用发送你的插件命令的时候
再进行触发