Помогите Действие команды на того, кто ее ввел

Genius_Lyrics

Активный участник
Пользователь
Баллы
76
Как сделать так, чтобы при отсутствии аргументов в команде она действовала на CommandSender?upload_2020-11-30_21-20-56.png
addPotionEffect нельзя использовать с CommandSender’ом
 
Как сделать так, чтобы при отсутствии аргументов в команде она действовала на CommandSender?Посмотреть вложение 58301
addPotionEffect нельзя использовать с CommandSender’ом
Sender может быть не только игроком, но и консолью. И если sender = console, то будет вылетать ошибка. Используй это, чтобы отсортировать консоль от игрока
Код:
if(sender instanceof Player) {
  Player p = (Player) sender;
  p.addPotionEffect.....
  //todo
} else {
  return true;
}
 
Sender может быть не только игроком, но и консолью. И если sender = console, то будет вылетать ошибка. Используй это, чтобы отсортировать консоль от игрока
Код:
if(sender instanceof Player) {
  Player p = (Player) sender;
  p.addPotionEffect.....
  //todo
} else {
  return true;
}
+1
 
Sender может быть не только игроком, но и консолью. И если sender = console, то будет вылетать ошибка. Используй это, чтобы отсортировать консоль от игрока
Код:
if(sender instanceof Player) {
  Player p = (Player) sender;
  p.addPotionEffect.....
  //todo
} else {
  return true;
}
спасибо огромное, ошибка исправлена, но появилась новая.


[22:12:10 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'speed' in plugin CMDEffectsBukkit v3.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:648) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1399) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1234) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_271]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_271]
at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:748) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_271]
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
at ap_.main.Commands.onCommand(Commands.java:23) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
 
Код:
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
У тебя длина массива равна нулю и ты пытаешься обратиться к массиву с недопустимым индексом. Скинь код класса Commands.
 
Код:
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
У тебя длина массива равна нулю и ты пытаешься обратиться к массиву с недопустимым индексом. Скинь код класса Commands.
Сори, что так поздно. Вот код:
Код:
public class Commands implements CommandExecutor{
    private CMDEffectsBukkit plugin;
   
   
    public Commands(CMDEffectsBukkit plugin) {
        this.plugin = plugin;
    }
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        String name = args[0];
        Player p = Bukkit.getPlayer(name);
    if(!sender.hasPermission("CMDEB.speed")) {
            sender.sendMessage("§4§l> §cУ тебя нет прав на эту команду.");
           
        return true;
    }
    if(args.length == 0) {
        if(sender instanceof Player) {
              Player p1 = (Player) sender;
              p1.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 9999999, 2));
        return true;
        }
    }
    if(p == null) {
        sender.sendMessage("§4§l> §cТакого игрока нет на сервере.");
        return true;
    }
    else {
        p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 9999999, 2));
        sender.sendMessage("§2§l> §aНа игрока " + p.getName() + " наложен эффект скорости");
    }
    return true;
    }
}
 
В самом начале делай проверку на длину массива.
 
Назад
Верх