1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

[Решено] Возращает null, работа с инвентарями и конфигами

Тема в разделе "Разработка плагинов для новичков", создана пользователем SashaBrine, 12 июл 2021.

Статус темы:
Закрыта.
  1. Автор темы
    SashaBrine

    SashaBrine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IJustFortiLive
    Нужно исправить ошибку
    Код:
        @EventHandler
        public void onClick(InventoryClickEvent e) {
            if (e.getCurrentItem().getType() == Material.AIR) return;
            if (e.getInventory().getSize()==36 && e.getInventory().getTitle().equals("Обьявления")) {
                File bc = new File(plugin.getDataFolder()+File.separator+"broadcasts.yml");
                FileConfiguration broadcasts = YamlConfiguration.loadConfiguration(bc);
                
                Player p = (Player) e.getWhoClicked();
                Inventory i = Bukkit.createInventory(null, 1*9, Color.RED+"Потверждение");
            
                ItemStack itemAccept = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 0);
                ItemStack itemEdit = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 2);
                ItemStack itemDecline = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 4);
                
                ItemMeta metaAccept = itemAccept.getItemMeta();
                ItemMeta metaEdit = itemEdit.getItemMeta();
                ItemMeta metaDecline = itemDecline.getItemMeta();
                
                metaAccept.setDisplayName("§r§lПринять");
                metaEdit.setDisplayName("§6§lИзменить");
                metaDecline.setDisplayName("§c§lОтклонить");
                
                itemAccept.setItemMeta(metaAccept);
                itemEdit.setItemMeta(metaEdit);
                itemDecline.setItemMeta(metaDecline);
                
                i.setItem(1, itemAccept);
                i.setItem(2, itemAccept);
                i.setItem(3, itemAccept);
                i.setItem(4, itemEdit);
                i.setItem(5, itemEdit);
                i.setItem(6, itemEdit);
                i.setItem(7, itemDecline);
                i.setItem(8, itemDecline);
                i.setItem(9, itemDecline);
                for (String s : broadcasts.getKeys(false)) {
                    ConfigurationSection cs = broadcasts.getConfigurationSection(s);
                    if (cs.getString("owner").equals(e.getCurrentItem().getItemMeta().getDisplayName())) {
                        if (cs.getString("editor") != null)  {
                            p.sendMessage("§cЭто обьявление уже кто-то редактирует");
                            return;
                        
                        } else if (cs.getString("editor") == null) {
                            cs.set("editor", p.getName());
                            broadcasts.set(cs.getString("id"), cs);
                            try {
                                broadcasts.save(bc);
                            } catch (IOException e1) {
                                e1.printStackTrace();
                            }
                        }
                    }
                }           
                p.closeInventory();
                p.openInventory(i);
                
    
                
                e.setCancelled(true);
    Код:
    '1':
      id: 1
      owner: IJustFortiLive
      message: 'Привет мир '
    '2':
      id: 2
      owner: MisterKirya
      message: ''
    
    Код:
    [15:33:38 ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'kick' in plugin CustomBans v1.4
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[patched_1.12.2.jar:git-Paper-1618]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:152) ~[patched_1.12.2.jar:git-Paper-1618]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:685) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1492) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1297) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:14) ~[patched_1.12.2.jar:git-Paper-1618]
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_292]
            at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_292]
            at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:850) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:423) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:774) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:666) ~[patched_1.12.2.jar:git-Paper-1618]
            at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]
    Caused by: java.lang.NoClassDefFoundError: ru/tehkode/permissions/bukkit/PermissionsEx
            at me.itzrex.custombans.commands.KickCommand.onCommand(KickCommand.java:61) ~[?:?]
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[patched_1.12.2.jar:git-Paper-1618]
            ... 15 more
    Caused by: java.lang.ClassNotFoundException: ru.tehkode.permissions.bukkit.PermissionsEx
            at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[?:1.8.0_292]
            at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:156) ~[patched_1.12.2.jar:git-Paper-1618]
            at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:104) ~[patched_1.12.2.jar:git-Paper-1618]
            at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_292]
            at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_292]
            at me.itzrex.custombans.commands.KickCommand.onCommand(KickCommand.java:61) ~[?:?]
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[patched_1.12.2.jar:git-Paper-1618]
            ... 15 more
     
  2. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Ошибка вообще не с тем связана - ищи в коде команды /kick. Жалуется на отсутствие PEx на сервере. Зачем тебе PEx в коде я, впрочем, не знаю.
     
  3. Автор темы
    SashaBrine

    SashaBrine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IJustFortiLive
    Где pex
     
  4. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
     
  5. Автор темы
    SashaBrine

    SashaBrine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IJustFortiLive
    Капец но ошибка не в Pex же
     
  6. Автор темы
    SashaBrine

    SashaBrine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IJustFortiLive
    А Я не те логи закинул...
     
  7. Автор темы
    SashaBrine

    SashaBrine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IJustFortiLive
    Код:
    [16:57:09 ERROR]: Could not pass event InventoryClickEvent to FMeria v1.0
    org.bukkit.event.EventException: null
            at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:72) ~[patched_1.12.2.jar:git-Paper-1618]
            at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) ~[patched_1.12.2.jar:git-Paper-1618]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[patched_1.12.2.jar:git-Paper-1618]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:513) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:2002) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.PacketPlayInWindowClick.a(SourceFile:33) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.PacketPlayInWindowClick.a(SourceFile:10) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:14) ~[patched_1.12.2.jar:git-Paper-1618]
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_292]
            at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_292]
            at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:850) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:423) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:774) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:666) ~[patched_1.12.2.jar:git-Paper-1618]
            at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]
    Caused by: java.lang.ArrayIndexOutOfBoundsException
     
  8. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Где-то выходишь за пределы массива. Есть какое продолжение ошибки?
     
  9. Автор темы
    SashaBrine

    SashaBrine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IJustFortiLive
    Продолжений нет но выход возможен
     
  10. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Если сам не найдешь причину - показывай latest.log полностью
     
  11. Автор темы
    SashaBrine

    SashaBrine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IJustFortiLive
    Хорошо
     
  12. Автор темы
    SashaBrine

    SashaBrine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IJustFortiLive
    Это возможно это
    Полный лог
    Код:
    [18:34:28] [Server thread/ERROR]: Could not pass event InventoryClickEvent to FMeria v1.0
    org.bukkit.event.EventException: null
        at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:72) ~[patched_1.12.2.jar:git-Paper-1618]
        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) ~[patched_1.12.2.jar:git-Paper-1618]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[patched_1.12.2.jar:git-Paper-1618]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:513) ~[patched_1.12.2.jar:git-Paper-1618]
        at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:2002) ~[patched_1.12.2.jar:git-Paper-1618]
        at net.minecraft.server.v1_12_R1.PacketPlayInWindowClick.a(SourceFile:33) ~[patched_1.12.2.jar:git-Paper-1618]
        at net.minecraft.server.v1_12_R1.PacketPlayInWindowClick.a(SourceFile:10) ~[patched_1.12.2.jar:git-Paper-1618]
        at net.minecraft.server.v1_12_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:14) ~[patched_1.12.2.jar:git-Paper-1618]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_292]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_292]
        at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) ~[patched_1.12.2.jar:git-Paper-1618]
        at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:850) ~[patched_1.12.2.jar:git-Paper-1618]
        at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:423) ~[patched_1.12.2.jar:git-Paper-1618]
        at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:774) ~[patched_1.12.2.jar:git-Paper-1618]
        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:666) ~[patched_1.12.2.jar:git-Paper-1618]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 9
        at java.util.Arrays$ArrayList.set(Arrays.java:3846) ~[?:1.8.0_292]
        at net.minecraft.server.v1_12_R1.NonNullList.set(SourceFile:51) ~[patched_1.12.2.jar:git-Paper-1618]
        at org.bukkit.craftbukkit.v1_12_R1.inventory.CraftInventoryCustom$MinecraftInventory.setItem(CraftInventoryCustom.java:107) ~[patched_1.12.2.jar:git-Paper-1618]
        at org.bukkit.craftbukkit.v1_12_R1.inventory.CraftInventory.setItem(CraftInventory.java:96) ~[patched_1.12.2.jar:git-Paper-1618]
        at FMeria.main.Handler.onClick(Handler.java:63) ~[?:?]
        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor25.execute(Unknown Source) ~[?:?]
        at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:70) ~[patched_1.12.2.jar:git-Paper-1618]
        ... 15 more
    Возращает 9 возможно это из-за того что я без тестирования попробовал установить предмет без проверки индексации
     
  13. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Твой инвентарь из 9 слотов? В массиве отсчет идет с 0, а не с 1.
     
  14. Автор темы
    SashaBrine

    SashaBrine Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IJustFortiLive
    Я и так сказал сейчас попробую если сработает закрываю тему
     
Статус темы:
Закрыта.

Поделиться этой страницей