Ошибка в коде плагина

Nespisnikersni

Пользователь
Сообщения
95
package org.ex.test;

import me.clip.placeholderapi.PlaceholderAPI;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
import java.util.List;

public class Test extends JavaPlugin {
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(new Event(this), this);
Plugin placeholderAPI = Bukkit.getPluginManager().getPlugin("PlaceholderAPI");
getCommand("hello").setExecutor(new CommandExecutor() {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
Player player = (Player) sender;
if (!player.hasPermission("hello.command")) {
if (getConfig().isList("havent-permission")) {
List<String> list = getConfig().getStringList("havent-permission");
for (String s : list) {
if (placeholderAPI != null && placeholderAPI.isEnabled()) {
String d = PlaceholderAPI.setPlaceholders(player, s);
String c = ChatColor.translateAlternateColorCodes('&', d);
player.sendMessage(c);
}else {
String c = ChatColor.translateAlternateColorCodes('&', s);
player.sendMessage(c);
}
} if (getConfig().isString("havent-permission")) {
String a = getConfig().getString("havent-permission");
if (placeholderAPI != null && placeholderAPI.isEnabled()) {
String d = PlaceholderAPI.setPlaceholders(player, a);
String c = ChatColor.translateAlternateColorCodes('&', d);
player.sendMessage(c);
} else {
String c = ChatColor.translateAlternateColorCodes('&', a);
player.sendMessage(c);
}
}
}
return true;
}
if (args.length == 0) {
if (getConfig().isList("no-arguments")) {
List<String> list1 = getConfig().getStringList("no-arguments");
for (String s : list1) {
if (placeholderAPI != null && placeholderAPI.isEnabled()) {
String d = PlaceholderAPI.setPlaceholders(player, s);
String c = ChatColor.translateAlternateColorCodes('&', d);
player.sendMessage(c);
} else {
String c = ChatColor.translateAlternateColorCodes('&', s);
player.sendMessage(c);
}
}
} else if (getConfig().isString("no-arguments")) {
String a = getConfig().getString("no-arguments");
if (placeholderAPI != null && placeholderAPI.isEnabled()) {
String d = PlaceholderAPI.setPlaceholders(player, a);
String c = ChatColor.translateAlternateColorCodes('&', d);
player.sendMessage(c);
} else {
String c = ChatColor.translateAlternateColorCodes('&', a);
player.sendMessage(c);
}
}
return true;
}
if (args[0].equalsIgnoreCase("reload")) {
reloadConfig();
if (getConfig().isList("config-reloaded")) {
List<String> list2 = getConfig().getStringList("config-reloaded");
for (String s : list2) {
if (placeholderAPI != null && placeholderAPI.isEnabled()) {
String d = PlaceholderAPI.setPlaceholders(player, s);
String c = ChatColor.translateAlternateColorCodes('&', d);
player.sendMessage(c);
}else {
String c = ChatColor.translateAlternateColorCodes('&', s);
player.sendMessage(c);
}
} if (getConfig().isString("config-reloaded")) {
String a = getConfig().getString("config-reloaded");
if (placeholderAPI != null && placeholderAPI.isEnabled()) {
String d = PlaceholderAPI.setPlaceholders(player, a);
String c = ChatColor.translateAlternateColorCodes('&', d);
player.sendMessage(c);
}else {
String c = ChatColor.translateAlternateColorCodes('&', a);
player.sendMessage(c);
}
}
}
return true;
}
return true;
}
});
}
}
[10:12:06 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'hello' in plugin hello v1.0-SNAPSHOT
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[patched_1.16.5.jar:git-Purpur-1171]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:172) ~[patched_1.16.5.jar:git-Purpur-1171] at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchCommand(CraftServer.java:826) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PlayerConnection.handleCommand(PlayerConnection.java:2315) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PlayerConnection.c(PlayerConnection.java:2130) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2083) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:49) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:7) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:55) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1339) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1332) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1308) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1152) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:293) ~[patched_1.16.5.jar:git-Purpur-1171]
at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at org.ex.test.Test$1.onCommand(Test.java:81) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.16.5.jar:git-Purpur-1171]
... 19 more
 
Решение
В коде не должно быть той ошибки, что ты скидывал выше
Ошибка указывает на то, что в массиве количество значений меньше, чем ты пытаешься получить, а в коде, если я ничего не пропустил, нет получения значения из массива
Ты правильно скомпилировал плагин?
Предполагаю, что ошибка в строке if (args[0].equalsIgnoreCase("reload"))
Если верить логу, то строка под номером 81, получение аргумента идёт с помощью args[0], когда аргументы не указаны
Проверка (args.lenght == 0) есть, но код идёт дальше и после неё
Объединено

В следующий раз, пожалуйста, скидывай код через pastebin или вставку [ CODE ] [ /CODE ] с сохранением табуляции
 
Предполагаю, что ошибка в строке if (args[0].equalsIgnoreCase("reload"))
Если верить логу, то строка под номером 81, получение аргумента идёт с помощью args[0], когда аргументы не указаны
Проверка (args.lenght == 0) есть, но код идёт дальше и после неё
Объединено

В следующий раз, пожалуйста, скидывай код через pastebin или вставку [ CODE ] [ /CODE ] с сохранением табуляции
Не удалил эту часть кода но все равно ошибка ,плагин билдится
 
[21:30:59 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'hello' in plugin hello v1.0-SNAPSHOT
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[patched_1.16.5.jar:git-Purpur-1171]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:172) ~[patched_1.16.5.jar:git-Purpur-1171]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchCommand(CraftServer.java:826) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PlayerConnection.handleCommand(PlayerConnection.java:2315) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PlayerConnection.c(PlayerConnection.java:2130) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2083) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:49) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:7) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:55) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1339) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1332) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1308) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1152) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:293) ~[patched_1.16.5.jar:git-Purpur-1171]
at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at org.ex.test.Test$1.onCommand(Test.java:81) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.16.5.jar:git-Purpur-1171]
... 19 more
 
Код:
package org.ex.test;

 import me.clip.placeholderapi.PlaceholderAPI;
 import org.bukkit.Bukkit;
 import org.bukkit.ChatColor;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandExecutor;
 import org.bukkit.command.CommandSender;
 import org.bukkit.entity.Player;
 import org.bukkit.plugin.Plugin;
 import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
 import java.util.List;

public class Test extends JavaPlugin {
@Override
    public void onEnable() {
getServer().getPluginManager().registerEvents(new Event(this), this);
Plugin placeholderAPI = Bukkit.getPluginManager().getPlugin("PlaceholderAPI");
getCommand("hello").setExecutor(new CommandExecutor() {
@Override
            public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
                Player player = (Player) sender;
if (!player.hasPermission("hello.command")) {
if (getConfig().isList("havent-permission")) {
List<String> list = getConfig().getStringList("havent-permission");
 for (String s : list) {
if (placeholderAPI != null && placeholderAPI.isEnabled()) {
String d = PlaceholderAPI.setPlaceholders(player, s);
String c = ChatColor.translateAlternateColorCodes('&', d);
                                player.sendMessage(c);
}else {
String c = ChatColor.translateAlternateColorCodes('&', s);
                                player.sendMessage(c);
                        }
} if (getConfig().isString("havent-permission")) {
String a = getConfig().getString("havent-permission");
if (placeholderAPI != null && placeholderAPI.isEnabled()) {
String d = PlaceholderAPI.setPlaceholders(player, a);
String c = ChatColor.translateAlternateColorCodes('&', d);
                                player.sendMessage(c);
} else {
String c = ChatColor.translateAlternateColorCodes('&', a);
                                player.sendMessage(c);
                            }
                        }
                    }
 return true;
                }
if (args.length == 0) {
if (getConfig().isList("no-arguments")) {
List<String> list1 = getConfig().getStringList("no-arguments");
 for (String s : list1) {
if (placeholderAPI != null && placeholderAPI.isEnabled()) {
String d = PlaceholderAPI.setPlaceholders(player, s);
String c = ChatColor.translateAlternateColorCodes('&', d);
                                player.sendMessage(c);
} else {
String c = ChatColor.translateAlternateColorCodes('&', s);
                                player.sendMessage(c);
                            }
                        }
} else if (getConfig().isString("no-arguments")) {
String a = getConfig().getString("no-arguments");
if (placeholderAPI != null && placeholderAPI.isEnabled()) {
String d = PlaceholderAPI.setPlaceholders(player, a);
String c = ChatColor.translateAlternateColorCodes('&', d);
                            player.sendMessage(c);
} else {
String c = ChatColor.translateAlternateColorCodes('&', a);
                            player.sendMessage(c);
                        }
                    }
 return true;
                }

 return true;
            }
        });
        }
    }
 
В коде не должно быть той ошибки, что ты скидывал выше
Ошибка указывает на то, что в массиве количество значений меньше, чем ты пытаешься получить, а в коде, если я ничего не пропустил, нет получения значения из массива
Ты правильно скомпилировал плагин?
 
В коде не должно быть той ошибки, что ты скидывал выше
Ошибка указывает на то, что в массиве количество значений меньше, чем ты пытаешься получить, а в коде, если я ничего не пропустил, нет получения значения из массива
Ты правильно скомпилировал плагин?
ваще хз вроде компилируется
Объединено

В коде не должно быть той ошибки, что ты скидывал выше
Ошибка указывает на то, что в массиве количество значений меньше, чем ты пытаешься получить, а в коде, если я ничего не пропустил, нет получения значения из массива
Ты правильно скомпилировал плагин?
удалил и сделал артифакт заново и все зароботало
 
Последнее редактирование:
Назад
Сверху Снизу