- Баллы
- 76
- Имя в Minecraft
- Lisenochek
Всем привет. Писал я GUI интерфейс, вроде все отлично работает, но если нажать в меню по пустому месту - выдает краш. Делал доп.проверки - но толку ноль. Что я делаю не так?
Код самого GUI интерфейса:
Код API
Сам краш:
Код самого GUI интерфейса:
Код:
package com.realistic.guilist;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.*********ventory.Inventory;
import com.realistic.list.GUI_List;
import net.md_5.bungee.api.ChatColor;
public class GUI_mechanic implements Listener {
public static void openGUI(Player p) {
Inventory inv = Bukkit.createInventory(null, 45, ChatColor.BLUE + "Список крафтов вещей");
inv.setItem(0, GUI_List.create(Material.STICK, 1, (byte) 0, ChatColor.GOLD + "Крафт некачественного материала.",
ChatColor.BLUE + "--------------------------------------------------------------------",
ChatColor.GREEN + "Для создания предмета,",
ChatColor.GREEN + "сложите рецепт так, как показано в меню.",
ChatColor.GREEN + "Необходимо: " + ChatColor.RED + "Обрубки от дерева" + ChatColor.GREEN + ".",
ChatColor.BLUE + "--------------------------------------------------------------------"));
inv.setItem(1, GUI_List.create(Material.STICK, 1, (byte) 0, ChatColor.GOLD + "Крафт некачественного материала.",
ChatColor.BLUE + "--------------------------------------------------------------------",
ChatColor.GREEN + "Для создания предмета,",
ChatColor.GREEN + "сложите рецепт так, как показано в меню.",
ChatColor.GREEN + "Необходимо: " + ChatColor.RED + "Обрубки от дерева" + ChatColor.GREEN + ".",
ChatColor.BLUE + "--------------------------------------------------------------------"));
inv.setItem(9, GUI_List.create(Material.STICK, 1, (byte) 0, ChatColor.GOLD + "Крафт некачественного материала.",
ChatColor.BLUE + "--------------------------------------------------------------------",
ChatColor.GREEN + "Для создания предмета,",
ChatColor.GREEN + "сложите рецепт так, как показано в меню.",
ChatColor.GREEN + "Необходимо: " + ChatColor.RED + "Обрубки от дерева" + ChatColor.GREEN + ".",
ChatColor.BLUE + "--------------------------------------------------------------------"));
inv.setItem(10, GUI_List.create(Material.STICK, 1, (byte) 0, ChatColor.GOLD + "Крафт некачественного материала.",
ChatColor.BLUE + "--------------------------------------------------------------------",
ChatColor.GREEN + "Для создания предмета,",
ChatColor.GREEN + "сложите рецепт так, как показано в меню.",
ChatColor.GREEN + "Необходимо: " + ChatColor.RED + "Обрубки от дерева" + ChatColor.GREEN + ".",
ChatColor.BLUE + "--------------------------------------------------------------------"));
inv.setItem(39, GUI_List.create(Material.BARRIER, ChatColor.RED + "Закрыть помощь крафт вещей."));
inv.setItem(41, GUI_List.create(Material.SIGN, ChatColor.GREEN + "Перейти на страницу помощи по выживанию."));
inv.setItem(40, GUI_List.create(Material.SIGN, ChatColor.GREEN + "Перейти на страницу крафтов медикаментов."));
inv.setItem(38, GUI_List.create(Material.STAINED_GLASS_PANE, 1, (byte) 4, " "));
inv.setItem(42, GUI_List.create(Material.STAINED_GLASS_PANE, 1, (byte) 4, " "));
inv.setItem(29, GUI_List.create(Material.STAINED_GLASS_PANE, 1, (byte) 5, " "));
inv.setItem(30, GUI_List.create(Material.STAINED_GLASS_PANE, 1, (byte) 4, " "));
inv.setItem(31, GUI_List.create(Material.STAINED_GLASS_PANE, 1, (byte) 5, " "));
inv.setItem(32, GUI_List.create(Material.STAINED_GLASS_PANE, 1, (byte) 4, " "));
inv.setItem(33, GUI_List.create(Material.STAINED_GLASS_PANE, 1, (byte) 5, " "));
p.openInventory(inv);
}
}
Код API
Код:
package com.realistic.list;
import java.util.ArrayList;
import org.bukkit.Material;
import org.*********ventory.ItemStack;
import org.*********ventory.meta.ItemMeta;
public class GUI_List {
public static ItemStack create(Material material, int amount, byte metadata, String name, String lore1,
String lore2, String lore3, String lore4, String lore5) {
ItemStack item = new ItemStack(material, amount, metadata);
ItemMeta meta = item.getItemMeta();
if (name != null) {
meta.setDisplayName(name);
}
ArrayList<String> lore = new ArrayList<String>();
if (lore1 != null) {
lore.add(lore1);
}
if (lore2 != null) {
lore.add(lore2);
}
if (lore3 != null) {
lore.add(lore3);
}
if (lore4 != null) {
lore.add(lore4);
}
if (lore5 != null) {
lore.add(lore5);
}
meta.setLore(lore);
item.setItemMeta(meta);
return item;
}
public static ItemStack create(Material material, String name) {
return create(material, 1, (byte) 0, name, null, null, null, null, null);
}
public static ItemStack create(Material material, int amount, byte metadata, String name) {
return create(material, amount, metadata, name, null, null, null, null, null);
}
}
Сам краш:
Код:
19:57:26 ERROR]: Could not pass event InventoryClickEvent to Realistic v1.4 beta
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1630) [server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PacketPlayInWindowClick.a(SourceFile:31) [server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PacketPlayInWindowClick.a(SourceFile:9) [server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [server.jar:git-Spigot-db6de12-18fbb24]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_101]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_101]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [server.jar:git-Spigot-db6de12-18fbb24]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
Caused by: java.lang.NullPointerException
at com.realistic.events.GUI_Handler.GUI_guide(GUI_Handler.java:28) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[server.jar:git-Spigot-db6de12-18fbb24]
... 15 more
>
