Pokkit icon indicating copy to clipboard operation
Pokkit copied to clipboard

Pokkit is causing issues with my plugin

Open ghost opened this issue 4 years ago • 0 comments

Pokkit helped a lot on loading some of my plugins that are written for spigot, However, I have a case opening plugin that is not running properly with pokkit. The plugins have a lot of functions and events that pokkit is not allowing or translating for nukkit. I will explain in detail and point out the errors and how to fix them. I will start first with a piece of code from my plugin. `CaseMain plugin = CaseMain.getPlugin(CaseMain.class); public void createAdmin(Player p, Command cmd, String str, String[] args) {

	if(!p.hasPermission("caseopening.admin.create")) {
		p.sendMessage(plugin.locale.NO_PERM);
		return;
	}
	
	if(args.length >= 3) {
		String displayName = ChatColor.translateAlternateColorCodes('&', args[2]);
		String name = args[1];

		Inventory myInventory = plugin.getServer().createInventory(null,54, plugin.locale.CREATE_CASE_INV_NAME);
		
		ItemStack greenPane = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)13);
  			ItemStack redPane = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)14);
		ItemMeta greenMeta = greenPane.getItemMeta();
		greenMeta.setDisplayName(plugin.locale.INV_ACCEPT);
		greenPane.setItemMeta(greenMeta);
		

		ItemMeta redMeta = redPane.getItemMeta();
		redMeta.setDisplayName(plugin.locale.INV_CANCEL);
		redPane.setItemMeta(redMeta);
		
	    for (int i = 0; i < 54; i++) {
   			    if (i < 49 && i > 44) {
     		      myInventory.setItem(i, redPane);
    		    } else if (i < 54 && i > 49) {
      
      		      myInventory.setItem(i, greenPane);
    	            } 
	            } 
	      
		UUID uuid = p.getUniqueId();
		plugin.inventoryList.put(uuid,myInventory);
		plugin.displayNameList.put(uuid, displayName);
		plugin.nameList.put(uuid, name);
		
		p.openInventory(myInventory);
	}else {
		p.sendMessage(plugin.locale.WRONG_USAGE);
	}

	return;
}

public Inventory createUser() {

	Inventory myInventory = plugin.getServer().createInventory(null,54, plugin.locale.OPENING_CASE_INV_NAME);
	
	ItemStack whitePane = new ItemStack(Material.BLAZE_POWDER,1,(short)0);
	ItemStack tripwireHook = new ItemStack(Material.GLASS_BOTTLE, 1);
	int[] white = { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 18, 19, 20, 21, 22, 24, 25, 26, 27 };
	for(int i: white) {
		myInventory.setItem(i, whitePane);
	}
	 myInventory.setItem(5, tripwireHook);
	 myInventory.setItem(23, tripwireHook);

	
	return myInventory;
}

} `

So This is a piece of code that creates the menu.

So when I run the plugin on my computer I get this error below.

`2019-10-10 20:34:17.048 [main] FATAL - Exception happened while ticking server java.lang.NoSuchFieldError: STAINED_GLASS_PANE at me.tolgaozgun.caseopening.commands.CreateInventoryCommand.createAdmin(CreateInventoryCommand.java:32) ~[?:?] at me.tolgaozgun.caseopening.commands.MainCommand.onCommand(MainCommand.java:33) ~[?:?] at nl.rutgerkok.pokkit.plugin.PokkitPlugin.onCommand(PokkitPlugin.java:274) ~[?:?] at cn.nukkit.command.PluginCommand.execute(PluginCommand.java:33) ~[server.jar:?] at cn.nukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:257) ~[server.jar:?] at cn.nukkit.Server.dispatchCommand(Server.java:751) ~[server.jar:?] at cn.nukkit.Player.handleDataPacket(Player.java:2730) ~[server.jar:?] at java.util.ArrayList.forEach(Unknown Source) ~[?:1.8.0_221] at cn.nukkit.network.Network.processPackets(Network.java:196) ~[server.jar:?] at cn.nukkit.network.Network.processBatch(Network.java:179) ~[server.jar:?] at cn.nukkit.Player.handleDataPacket(Player.java:2075) ~[server.jar:?] at cn.nukkit.network.RakNetInterface.handleEncapsulated(RakNetInterface.java:157) ~[server.jar:?] at cn.nukkit.raknet.server.ServerHandler.handlePacket(ServerHandler.java:132) ~[server.jar:?] at cn.nukkit.network.RakNetInterface.process(RakNetInterface.java:66) ~[server.jar:?] at cn.nukkit.network.Network.processInterfaces(Network.java:80) ~[server.jar:?] at cn.nukkit.Server.tick(Server.java:1124) ~[server.jar:?] at cn.nukkit.Server.tickProcessor(Server.java:903) [server.jar:?] at cn.nukkit.Server.start(Server.java:880) [server.jar:?] at cn.nukkit.Server.(Server.java:565) [server.jar:?] at cn.nukkit.Nukkit.main(Nukkit.java:112) [server.jar:?] 2019-10-10 20:34:17.070 [main] FATAL - "pool-4-thread-1" Id=31 TIMED_WAITING on java.util.concurrent.SynchronousQueue$TransferStack@29bbc391 at sun.misc.Unsafe.park(Native Method) - waiting on java.util.concurrent.SynchronousQueue$TransferStack@29bbc391 at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source) at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(Unknown Source) at java.util.concurrent.SynchronousQueue$TransferStack.transfer(Unknown Source) at java.util.concurrent.SynchronousQueue.poll(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ...

"threadDeathWatcher-3-1" Id=30 TIMED_WAITING at java.lang.Thread.sleep(Native Method) at io.netty.util.ThreadDeathWatcher$Watcher.run(ThreadDeathWatcher.java:150) at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144) at java.lang.Thread.run(Unknown Source)

"Nukkit Asynchronous Task Handler #4" Id=29 WAITING on java.util.concurrent.SynchronousQueue$TransferStack@3487442d at sun.misc.Unsafe.park(Native Method) - waiting on java.util.concurrent.SynchronousQueue$TransferStack@3487442d at java.util.concurrent.locks.LockSupport.park(Unknown Source) at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(Unknown Source) at java.util.concurrent.SynchronousQueue$TransferStack.transfer(Unknown Source) at java.util.concurrent.SynchronousQueue.take(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ...

"Nukkit Asynchronous Task Handler #3" Id=28 WAITING on java.util.concurrent.SynchronousQueue$TransferStack@3487442d at sun.misc.Unsafe.park(Native Method) - waiting on java.util.concurrent.SynchronousQueue$TransferStack@3487442d at java.util.concurrent.locks.LockSupport.park(Unknown Source) at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(Unknown Source) at java.util.concurrent.SynchronousQueue$TransferStack.transfer(Unknown Source) at java.util.concurrent.SynchronousQueue.take(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ...

"Nukkit Asynchronous Task Handler #2" Id=27 WAITING on java.util.concurrent.SynchronousQueue$TransferStack@3487442d at sun.misc.Unsafe.park(Native Method) - waiting on java.util.concurrent.SynchronousQueue$TransferStack@3487442d at java.util.concurrent.locks.LockSupport.park(Unknown Source) at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(Unknown Source) at java.util.concurrent.SynchronousQueue$TransferStack.transfer(Unknown Source) at java.util.concurrent.SynchronousQueue.take(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ...

"Nukkit Asynchronous Task Handler #1" Id=26 TIMED_WAITING at java.lang.Thread.sleep(Native Method) at com.fcmcpe.nuclear.music.NuclearMusicPlugin$TickerRunnable.onRun(NuclearMusicPlugin.java:151) at cn.nukkit.scheduler.AsyncTask.run(AsyncTask.java:23) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

Number of locked synchronizers = 1
- java.util.concurrent.ThreadPoolExecutor$Worker@6ee88e21

"Nukkit Asynchronous Task Handler #0" Id=25 WAITING on java.util.concurrent.SynchronousQueue$TransferStack@3487442d at sun.misc.Unsafe.park(Native Method) - waiting on java.util.concurrent.SynchronousQueue$TransferStack@3487442d at java.util.concurrent.locks.LockSupport.park(Unknown Source) at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(Unknown Source) at java.util.concurrent.SynchronousQueue$TransferStack.transfer(Unknown Source) at java.util.concurrent.SynchronousQueue.take(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ...

"Watchdog" Id=24 TIMED_WAITING on cn.nukkit.utils.Watchdog@530ee28b at java.lang.Object.wait(Native Method) - waiting on cn.nukkit.utils.Watchdog@530ee28b at cn.nukkit.utils.Watchdog.run(Watchdog.java:64)

"nioEventLoopGroup-2-1" Id=21 RUNNABLE at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source) at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source) at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source) at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source) - locked io.netty.channel.nio.SelectedSelectionKeySet@3a3f96ab - locked java.util.Collections$UnmodifiableSet@4def7d36 - locked sun.nio.ch.WindowsSelectorImpl@43c7fe8a at sun.nio.ch.SelectorImpl.select(Unknown Source) at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:759) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:400) ...

"Timer-0" Id=20 TIMED_WAITING on java.util.TaskQueue@67f946c3 at java.lang.Object.wait(Native Method) - waiting on java.util.TaskQueue@67f946c3 at java.util.TimerThread.mainLoop(Unknown Source) at java.util.TimerThread.run(Unknown Source)

"RakNet Thread #18" Id=18 TIMED_WAITING at java.lang.Thread.sleep(Native Method) at cn.nukkit.raknet.server.SessionManager.tickProcessor(SessionManager.java:96) at cn.nukkit.raknet.server.SessionManager.run(SessionManager.java:70) at cn.nukkit.raknet.server.SessionManager.(SessionManager.java:58) at cn.nukkit.raknet.server.RakNetServer.run(RakNetServer.java:101)

"Thread-1" Id=15 TIMED_WAITING on org.jline.utils.NonBlockingPumpReader@21b51e59 at java.lang.Object.wait(Native Method) - waiting on org.jline.utils.NonBlockingPumpReader@21b51e59 at org.jline.utils.NonBlockingPumpReader.wait(NonBlockingPumpReader.java:55) at org.jline.utils.NonBlockingPumpReader.read(NonBlockingPumpReader.java:101) at org.jline.utils.NonBlockingReader.read(NonBlockingReader.java:57) at org.jline.keymap.BindingReader.readCharacter(BindingReader.java:133) at org.jline.keymap.BindingReader.readBinding(BindingReader.java:110) at org.jline.keymap.BindingReader.readBinding(BindingReader.java:61) at org.jline.reader.impl.LineReaderImpl.readBinding(LineReaderImpl.java:786) ...

"WindowsStreamPump" Id=13 RUNNABLE (in native) at com.sun.jna.Native.invokeInt(Native Method) at com.sun.jna.Function.invoke(Function.java:390) at com.sun.jna.Function.invoke(Function.java:323) at com.sun.jna.Library$Handler.invoke(Library.java:236) at org.jline.terminal.impl.jna.win.$Proxy16.WaitForSingleObject(Unknown Source) at org.jline.terminal.impl.jna.win.JnaWinSysTerminal.readConsoleInput(JnaWinSysTerminal.java:176) at org.jline.terminal.impl.jna.win.JnaWinSysTerminal.processConsoleInput(JnaWinSysTerminal.java:99) at org.jline.terminal.impl.AbstractWindowsTerminal.pump(AbstractWindowsTerminal.java:459) ...

"Attach Listener" Id=5 RUNNABLE

"Signal Dispatcher" Id=4 RUNNABLE

"Finalizer" Id=3 WAITING on java.lang.ref.ReferenceQueue$Lock@1785d194 at java.lang.Object.wait(Native Method) - waiting on java.lang.ref.ReferenceQueue$Lock@1785d194 at java.lang.ref.ReferenceQueue.remove(Unknown Source) at java.lang.ref.ReferenceQueue.remove(Unknown Source) at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" Id=2 WAITING on java.lang.ref.Reference$Lock@6b4a4e40 at java.lang.Object.wait(Native Method) - waiting on java.lang.ref.Reference$Lock@6b4a4e40 at java.lang.Object.wait(Unknown Source) at java.lang.ref.Reference.tryHandlePending(Unknown Source) at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)

"main" Id=1 RUNNABLE at sun.management.ThreadImpl.dumpThreads0(Native Method) at sun.management.ThreadImpl.dumpAllThreads(Unknown Source) at cn.nukkit.utils.Utils.getAllThreadDumps(Utils.java:112) at cn.nukkit.Server.tickProcessor(Server.java:935) at cn.nukkit.Server.start(Server.java:880) at cn.nukkit.Server.(Server.java:565) at cn.nukkit.Nukkit.main(Nukkit.java:112)

`

So what I would like to point out is this part of the error

2019-10-10 20:34:17.048 [main] FATAL - Exception happened while ticking server java.lang.NoSuchFieldError: STAINED_GLASS_PANE

The plugin is calling an item which is STAINED_GLASS_PANE but its giving an error that tells me its not registered in pokkit.

So I made my way around the error, and The menu half worked. The menu was not a double chest menu. The code here is supposed to be translated to a double chest

Inventory myInventory = plugin.getServer().createInventory(null,54, plugin.locale.OPENING_CASE_INV_NAME);

So what to fix ….

I would start with the item registering, at least 88% of all items registered in pokkit is old and outdated.

So in pokkit however, I'm sure you don't mind me showing a function from pokkit. But since its open source, what the hec.

`public class ItemMap { private static Material[] nukkitToBukkit = new Material[700]; private static char[] bukkitToNukkit = new char[Material.values().length];

static { registerTwoWay(256, Material.IRON_SHOVEL); registerTwoWay(257, Material.IRON_PICKAXE); registerTwoWay(258, Material.IRON_AXE); registerTwoWay(259, Material.FLINT_AND_STEEL); registerTwoWay(260, Material.APPLE); registerTwoWay(261, Material.BOW); registerTwoWay(262, Material.ARROW); registerTwoWay(263, Material.COAL); registerTwoWay(264, Material.DIAMOND); registerTwoWay(265, Material.IRON_INGOT); registerTwoWay(266, Material.GOLD_INGOT); registerTwoWay(267, Material.IRON_SWORD); registerTwoWay(268, Material.WOODEN_SWORD); registerTwoWay(269, Material.WOODEN_SHOVEL); registerTwoWay(270, Material.WOODEN_PICKAXE); registerTwoWay(271, Material.WOODEN_AXE); registerTwoWay(272, Material.STONE_SWORD); registerTwoWay(273, Material.STONE_SHOVEL); registerTwoWay(274, Material.STONE_PICKAXE); registerTwoWay(275, Material.STONE_AXE); registerTwoWay(276, Material.DIAMOND_SWORD); registerTwoWay(277, Material.DIAMOND_SHOVEL); registerTwoWay(278, Material.DIAMOND_PICKAXE); registerTwoWay(279, Material.DIAMOND_AXE); registerTwoWay(280, Material.STICK); registerTwoWay(281, Material.BOWL); registerTwoWay(282, Material.MUSHROOM_STEW); registerTwoWay(283, Material.GOLDEN_SWORD); registerTwoWay(284, Material.GOLDEN_SHOVEL); registerTwoWay(285, Material.GOLDEN_PICKAXE); registerTwoWay(286, Material.GOLDEN_AXE); registerTwoWay(287, Material.STRING); registerTwoWay(288, Material.FEATHER); registerTwoWay(289, Material.GUNPOWDER); registerTwoWay(290, Material.WOODEN_HOE); registerTwoWay(291, Material.STONE_HOE); registerTwoWay(292, Material.IRON_HOE); registerTwoWay(293, Material.DIAMOND_HOE); registerTwoWay(294, Material.GOLDEN_HOE); registerTwoWay(295, Material.WHEAT_SEEDS); registerTwoWay(296, Material.WHEAT); registerTwoWay(297, Material.BREAD); registerTwoWay(298, Material.LEATHER_HELMET); registerTwoWay(299, Material.LEATHER_CHESTPLATE); registerTwoWay(300, Material.LEATHER_LEGGINGS); registerTwoWay(301, Material.LEATHER_BOOTS); registerTwoWay(302, Material.CHAINMAIL_HELMET); registerTwoWay(303, Material.CHAINMAIL_CHESTPLATE); registerTwoWay(304, Material.CHAINMAIL_LEGGINGS); registerTwoWay(305, Material.CHAINMAIL_BOOTS); registerTwoWay(306, Material.IRON_HELMET); registerTwoWay(307, Material.IRON_CHESTPLATE); registerTwoWay(308, Material.IRON_LEGGINGS); registerTwoWay(309, Material.IRON_BOOTS); registerTwoWay(310, Material.DIAMOND_HELMET); registerTwoWay(311, Material.DIAMOND_CHESTPLATE); registerTwoWay(312, Material.DIAMOND_LEGGINGS); registerTwoWay(313, Material.DIAMOND_BOOTS); registerTwoWay(314, Material.GOLDEN_HELMET); registerTwoWay(315, Material.GOLDEN_CHESTPLATE); registerTwoWay(316, Material.GOLDEN_LEGGINGS); registerTwoWay(317, Material.GOLDEN_BOOTS); registerTwoWay(319, Material.PORKCHOP); registerTwoWay(320, Material.COOKED_PORKCHOP); registerTwoWay(321, Material.PAINTING); registerTwoWay(322, Material.GOLDEN_APPLE); registerTwoWay(323, Material.SIGN); registerTwoWay(324, Material.OAK_DOOR); registerTwoWay(325, Material.BUCKET); registerTwoWay(328, Material.MINECART); registerTwoWay(329, Material.SADDLE); registerTwoWay(330, Material.IRON_DOOR); registerTwoWay(331, Material.REDSTONE); registerTwoWay(332, Material.SNOWBALL); registerTwoWay(333, Material.OAK_BOAT); registerTwoWay(334, Material.LEATHER); registerTwoWay(336, Material.BRICK); registerTwoWay(337, Material.CLAY); registerTwoWay(338, Material.SUGAR_CANE); registerTwoWay(339, Material.PAPER); registerTwoWay(340, Material.BOOK); registerTwoWay(341, Material.SLIME_BALL); registerTwoWay(342, Material.CHEST_MINECART); registerTwoWay(344, Material.EGG); registerTwoWay(345, Material.COMPASS); registerTwoWay(346, Material.FISHING_ROD); registerTwoWay(347, Material.CLOCK); registerTwoWay(348, Material.GLOWSTONE_DUST); registerTwoWay(349, Material.COD); registerTwoWay(350, Material.COOKED_COD); registerTwoWay(351, Material.ORANGE_DYE); registerTwoWay(352, Material.BONE); registerTwoWay(353, Material.SUGAR); registerTwoWay(354, Material.CAKE); registerTwoWay(355, Material.RED_BED); registerTwoWay(356, Material.REPEATER); registerTwoWay(357, Material.COOKIE); registerTwoWay(358, Material.MAP); registerTwoWay(359, Material.SHEARS); registerTwoWay(360, Material.MELON); registerTwoWay(360, Material.MELON_SLICE); registerTwoWay(361, Material.PUMPKIN_SEEDS); registerTwoWay(362, Material.MELON_SEEDS); registerTwoWay(363, Material.BEEF); registerTwoWay(364, Material.COOKED_BEEF); registerTwoWay(365, Material.CHICKEN); registerTwoWay(366, Material.COOKED_CHICKEN); registerTwoWay(367, Material.ROTTEN_FLESH); registerTwoWay(368, Material.ENDER_PEARL); registerTwoWay(369, Material.BLAZE_ROD); registerTwoWay(370, Material.GHAST_TEAR); registerTwoWay(371, Material.GOLD_NUGGET); registerTwoWay(372, Material.NETHER_WART); registerTwoWay(373, Material.POTION); registerTwoWay(374, Material.GLASS_BOTTLE); registerTwoWay(375, Material.SPIDER_EYE); registerTwoWay(376, Material.FERMENTED_SPIDER_EYE); registerTwoWay(377, Material.BLAZE_POWDER); registerTwoWay(378, Material.MAGMA_CREAM); registerTwoWay(379, Material.BREWING_STAND); registerTwoWay(380, Material.CAULDRON); registerTwoWay(381, Material.ENDER_EYE); registerTwoWay(382, Material.GLISTERING_MELON_SLICE); registerTwoWay(383, Material.PIG_SPAWN_EGG); registerTwoWay(384, Material.EXPERIENCE_BOTTLE); registerTwoWay(385, Material.FIRE_CHARGE); registerTwoWay(386, Material.WRITABLE_BOOK); registerTwoWay(387, Material.WRITTEN_BOOK); registerTwoWay(388, Material.EMERALD); registerTwoWay(389, Material.ITEM_FRAME); registerTwoWay(390, Material.FLOWER_POT); registerTwoWay(391, Material.CARROT); registerTwoWay(391, Material.CARROTS); registerTwoWay(392, Material.POTATO); registerTwoWay(392, Material.POTATOES); registerTwoWay(393, Material.BAKED_POTATO); registerTwoWay(394, Material.POISONOUS_POTATO); registerTwoWay(395, Material.MAP); registerTwoWay(396, Material.GOLDEN_CARROT); registerTwoWay(397, Material.SKELETON_SKULL); registerTwoWay(398, Material.CARROT_ON_A_STICK); registerTwoWay(399, Material.NETHER_STAR); registerTwoWay(400, Material.PUMPKIN_PIE); registerTwoWay(401, Material.FIREWORK_ROCKET);

registerTwoWay(403, Material.ENCHANTED_BOOK);
registerTwoWay(404, Material.COMPARATOR);
registerTwoWay(405, Material.NETHER_BRICK);
registerTwoWay(406, Material.QUARTZ);
registerTwoWay(407, Material.TNT_MINECART);
registerTwoWay(408, Material.HOPPER_MINECART);
registerTwoWay(409, Material.PRISMARINE_SHARD);
registerTwoWay(410, Material.HOPPER);
registerTwoWay(411, Material.RABBIT);
registerTwoWay(412, Material.COOKED_RABBIT);
registerTwoWay(413, Material.RABBIT_STEW);
registerTwoWay(414, Material.RABBIT_FOOT);
registerTwoWay(415, Material.RABBIT_HIDE);
registerNukkitToBukkit(416, Material.LEATHER);
registerTwoWay(417, Material.IRON_HORSE_ARMOR);
registerTwoWay(418, Material.GOLDEN_HORSE_ARMOR);
registerTwoWay(419, Material.DIAMOND_HORSE_ARMOR);
registerTwoWay(420, Material.LEAD);
registerTwoWay(421, Material.NAME_TAG);
registerTwoWay(422, Material.PRISMARINE_CRYSTALS);
registerTwoWay(423, Material.MUTTON);
registerTwoWay(424, Material.COOKED_MUTTON);
registerTwoWay(426, Material.END_CRYSTAL);
registerTwoWay(427, Material.SPRUCE_DOOR);
registerTwoWay(428, Material.BIRCH_DOOR);
registerTwoWay(429, Material.JUNGLE_DOOR);
registerTwoWay(430, Material.ACACIA_DOOR);
registerTwoWay(431, Material.DARK_OAK_DOOR);
registerTwoWay(432, Material.CHORUS_FRUIT);
registerTwoWay(433, Material.POPPED_CHORUS_FRUIT);
registerTwoWay(437, Material.DRAGON_BREATH);
registerTwoWay(438, Material.SPLASH_POTION);
registerTwoWay(441, Material.LINGERING_POTION);
registerTwoWay(444, Material.ELYTRA);
registerTwoWay(445, Material.SHULKER_SHELL);
registerTwoWay(457, Material.BEETROOT);
registerTwoWay(458, Material.BEETROOT_SEEDS);
registerTwoWay(459, Material.BEETROOT_SOUP);
registerTwoWay(460, Material.SALMON);
registerTwoWay(461, Material.TROPICAL_FISH);
registerTwoWay(462, Material.PUFFERFISH);
registerTwoWay(463, Material.COOKED_SALMON);
registerTwoWay(466, Material.ENCHANTED_GOLDEN_APPLE);
registerTwoWay(500, Material.MUSIC_DISC_13);
registerTwoWay(501, Material.MUSIC_DISC_CAT);
registerTwoWay(502, Material.MUSIC_DISC_BLOCKS);
registerTwoWay(503, Material.MUSIC_DISC_CHIRP);
registerTwoWay(504, Material.MUSIC_DISC_FAR);
registerTwoWay(505, Material.MUSIC_DISC_MALL);
registerTwoWay(506, Material.MUSIC_DISC_MELLOHI);
registerTwoWay(507, Material.MUSIC_DISC_STAL);
registerTwoWay(508, Material.MUSIC_DISC_STRAD);
registerTwoWay(509, Material.MUSIC_DISC_WARD);
registerTwoWay(510, Material.MUSIC_DISC_11);
registerTwoWay(511, Material.MUSIC_DISC_WAIT);
registerTwoWay(455, Material.TRIDENT);
registerTwoWay(469, Material.TURTLE_HELMET);
registerTwoWay(335, Material.KELP);
registerTwoWay(464, Material.DRIED_KELP);
registerTwoWay(402, Material.FIREWORK_STAR);
registerTwoWay(425, Material.ARMOR_STAND);
registerTwoWay(443, Material.COMMAND_BLOCK_MINECART);
registerTwoWay(450, Material.TOTEM_OF_UNDYING);
registerTwoWay(452, Material.IRON_NUGGET);
registerTwoWay(465, Material.NAUTILUS_SHELL);
registerTwoWay(467, Material.HEART_OF_THE_SEA);
registerTwoWay(468, Material.SCUTE);
registerTwoWay(470, Material.PHANTOM_MEMBRANE);


registerBukkitToNukkit(256, Material.LEGACY_IRON_SPADE);
registerBukkitToNukkit(257, Material.LEGACY_IRON_PICKAXE);
registerBukkitToNukkit(258, Material.LEGACY_IRON_AXE);
registerBukkitToNukkit(259, Material.LEGACY_FLINT_AND_STEEL);
registerBukkitToNukkit(260, Material.LEGACY_APPLE);
registerBukkitToNukkit(261, Material.LEGACY_BOW);
registerBukkitToNukkit(262, Material.LEGACY_ARROW);
registerBukkitToNukkit(263, Material.LEGACY_COAL);
registerBukkitToNukkit(264, Material.LEGACY_DIAMOND);
registerBukkitToNukkit(265, Material.LEGACY_IRON_INGOT);
registerBukkitToNukkit(266, Material.LEGACY_GOLD_INGOT);
registerBukkitToNukkit(267, Material.LEGACY_IRON_SWORD);
registerBukkitToNukkit(268, Material.LEGACY_WOOD_SWORD);
registerBukkitToNukkit(269, Material.LEGACY_WOOD_SPADE);
registerBukkitToNukkit(270, Material.LEGACY_WOOD_PICKAXE);
registerBukkitToNukkit(271, Material.LEGACY_WOOD_AXE);
registerBukkitToNukkit(272, Material.LEGACY_STONE_SWORD);
registerBukkitToNukkit(273, Material.LEGACY_STONE_SPADE);
registerBukkitToNukkit(274, Material.LEGACY_STONE_PICKAXE);
registerBukkitToNukkit(275, Material.LEGACY_STONE_AXE);
registerBukkitToNukkit(276, Material.LEGACY_DIAMOND_SWORD);
registerBukkitToNukkit(277, Material.LEGACY_DIAMOND_SPADE);
registerBukkitToNukkit(278, Material.LEGACY_DIAMOND_PICKAXE);
registerBukkitToNukkit(279, Material.LEGACY_DIAMOND_AXE);
registerBukkitToNukkit(280, Material.LEGACY_STICK);
registerBukkitToNukkit(281, Material.LEGACY_BOWL);
registerBukkitToNukkit(282, Material.LEGACY_MUSHROOM_SOUP);
registerBukkitToNukkit(283, Material.LEGACY_GOLD_SWORD);
registerBukkitToNukkit(284, Material.LEGACY_GOLD_SPADE);
registerBukkitToNukkit(285, Material.LEGACY_GOLD_PICKAXE);
registerBukkitToNukkit(286, Material.LEGACY_GOLD_AXE);
registerBukkitToNukkit(287, Material.LEGACY_STRING);
registerBukkitToNukkit(288, Material.LEGACY_FEATHER);
registerBukkitToNukkit(289, Material.LEGACY_SULPHUR);
registerBukkitToNukkit(290, Material.LEGACY_WOOD_HOE);
registerBukkitToNukkit(291, Material.LEGACY_STONE_HOE);
registerBukkitToNukkit(292, Material.LEGACY_IRON_HOE);
registerBukkitToNukkit(293, Material.LEGACY_DIAMOND_HOE);
registerBukkitToNukkit(294, Material.LEGACY_GOLD_HOE);
registerBukkitToNukkit(295, Material.LEGACY_SEEDS);
registerBukkitToNukkit(296, Material.LEGACY_WHEAT);
registerBukkitToNukkit(297, Material.LEGACY_BREAD);
registerBukkitToNukkit(298, Material.LEGACY_LEATHER_HELMET);
registerBukkitToNukkit(299, Material.LEGACY_LEATHER_CHESTPLATE);
registerBukkitToNukkit(300, Material.LEGACY_LEATHER_LEGGINGS);
registerBukkitToNukkit(301, Material.LEGACY_LEATHER_BOOTS);
registerBukkitToNukkit(302, Material.LEGACY_CHAINMAIL_HELMET);
registerBukkitToNukkit(303, Material.LEGACY_CHAINMAIL_CHESTPLATE);
registerBukkitToNukkit(304, Material.LEGACY_CHAINMAIL_LEGGINGS);
registerBukkitToNukkit(305, Material.LEGACY_CHAINMAIL_BOOTS);
registerBukkitToNukkit(306, Material.LEGACY_IRON_HELMET);
registerBukkitToNukkit(307, Material.LEGACY_IRON_CHESTPLATE);
registerBukkitToNukkit(308, Material.LEGACY_IRON_LEGGINGS);
registerBukkitToNukkit(309, Material.LEGACY_IRON_BOOTS);
registerBukkitToNukkit(310, Material.LEGACY_DIAMOND_HELMET);
registerBukkitToNukkit(311, Material.LEGACY_DIAMOND_CHESTPLATE);
registerBukkitToNukkit(312, Material.LEGACY_DIAMOND_LEGGINGS);
registerBukkitToNukkit(313, Material.LEGACY_DIAMOND_BOOTS);
registerBukkitToNukkit(314, Material.LEGACY_GOLD_HELMET);
registerBukkitToNukkit(315, Material.LEGACY_GOLD_CHESTPLATE);
registerBukkitToNukkit(316, Material.LEGACY_GOLD_LEGGINGS);
registerBukkitToNukkit(317, Material.LEGACY_GOLD_BOOTS);
registerBukkitToNukkit(318, Material.LEGACY_FLINT);
registerBukkitToNukkit(319, Material.LEGACY_PORK);
registerBukkitToNukkit(320, Material.LEGACY_GRILLED_PORK);
registerBukkitToNukkit(321, Material.LEGACY_PAINTING);
registerBukkitToNukkit(322, Material.LEGACY_GOLDEN_APPLE);
registerBukkitToNukkit(323, Material.LEGACY_SIGN);
registerBukkitToNukkit(324, Material.LEGACY_WOOD_DOOR);
registerBukkitToNukkit(325, Material.LEGACY_BUCKET);
registerBukkitToNukkit(328, Material.LEGACY_MINECART);
registerBukkitToNukkit(329, Material.LEGACY_SADDLE);
registerBukkitToNukkit(330, Material.LEGACY_IRON_DOOR);
registerBukkitToNukkit(331, Material.LEGACY_REDSTONE);
registerBukkitToNukkit(332, Material.LEGACY_SNOW_BALL);
registerBukkitToNukkit(333, Material.LEGACY_BOAT);
registerBukkitToNukkit(334, Material.LEGACY_LEATHER);
registerBukkitToNukkit(336, Material.LEGACY_CLAY_BRICK);
registerBukkitToNukkit(337, Material.LEGACY_CLAY_BALL);
registerBukkitToNukkit(338, Material.LEGACY_SUGAR_CANE);
registerBukkitToNukkit(339, Material.LEGACY_PAPER);
registerBukkitToNukkit(340, Material.LEGACY_BOOK);
registerBukkitToNukkit(341, Material.LEGACY_SLIME_BALL);
registerBukkitToNukkit(342, Material.LEGACY_STORAGE_MINECART);
registerBukkitToNukkit(344, Material.LEGACY_EGG);
registerBukkitToNukkit(345, Material.LEGACY_COMPASS);
registerBukkitToNukkit(346, Material.LEGACY_FISHING_ROD);
registerBukkitToNukkit(347, Material.LEGACY_WATCH);
registerBukkitToNukkit(348, Material.LEGACY_GLOWSTONE_DUST);
registerBukkitToNukkit(349, Material.LEGACY_RAW_FISH);
registerBukkitToNukkit(350, Material.LEGACY_COOKED_FISH);
registerBukkitToNukkit(352, Material.LEGACY_BONE);
registerBukkitToNukkit(353, Material.LEGACY_SUGAR);
registerBukkitToNukkit(354, Material.LEGACY_CAKE);
registerBukkitToNukkit(355, Material.LEGACY_BED);
registerBukkitToNukkit(356, Material.LEGACY_DIODE);
registerBukkitToNukkit(357, Material.LEGACY_COOKIE);
registerBukkitToNukkit(358, Material.LEGACY_MAP);
registerBukkitToNukkit(359, Material.LEGACY_SHEARS);
registerBukkitToNukkit(360, Material.LEGACY_MELON);
registerBukkitToNukkit(361, Material.LEGACY_PUMPKIN_SEEDS);
registerBukkitToNukkit(362, Material.LEGACY_MELON_SEEDS);
registerBukkitToNukkit(363, Material.LEGACY_RAW_BEEF);
registerBukkitToNukkit(364, Material.LEGACY_COOKED_BEEF);
registerBukkitToNukkit(365, Material.LEGACY_RAW_CHICKEN);
registerBukkitToNukkit(366, Material.LEGACY_COOKED_CHICKEN);
registerBukkitToNukkit(367, Material.LEGACY_ROTTEN_FLESH);
registerBukkitToNukkit(368, Material.LEGACY_ENDER_PEARL);
registerBukkitToNukkit(369, Material.LEGACY_BLAZE_ROD);
registerBukkitToNukkit(370, Material.LEGACY_GHAST_TEAR);
registerBukkitToNukkit(371, Material.LEGACY_GOLD_NUGGET);
registerBukkitToNukkit(372, Material.LEGACY_NETHER_STALK);
registerBukkitToNukkit(373, Material.LEGACY_POTION);
registerBukkitToNukkit(374, Material.LEGACY_GLASS_BOTTLE);
registerBukkitToNukkit(375, Material.LEGACY_SPIDER_EYE);
registerBukkitToNukkit(376, Material.LEGACY_FERMENTED_SPIDER_EYE);
registerBukkitToNukkit(377, Material.LEGACY_BLAZE_POWDER);
registerBukkitToNukkit(378, Material.LEGACY_MAGMA_CREAM);
registerBukkitToNukkit(379, Material.LEGACY_BREWING_STAND_ITEM);
registerBukkitToNukkit(380, Material.LEGACY_CAULDRON_ITEM);
registerBukkitToNukkit(381, Material.LEGACY_EYE_OF_ENDER);
registerBukkitToNukkit(382, Material.LEGACY_SPECKLED_MELON);
registerBukkitToNukkit(383, Material.LEGACY_MONSTER_EGG);
registerBukkitToNukkit(384, Material.LEGACY_EXP_BOTTLE);
registerBukkitToNukkit(385, Material.LEGACY_FIREBALL);
registerBukkitToNukkit(386, Material.LEGACY_BOOK_AND_QUILL);
registerBukkitToNukkit(387, Material.LEGACY_WRITTEN_BOOK);
registerBukkitToNukkit(388, Material.LEGACY_EMERALD);
registerBukkitToNukkit(389, Material.LEGACY_ITEM_FRAME);
registerBukkitToNukkit(390, Material.LEGACY_FLOWER_POT_ITEM);
registerBukkitToNukkit(391, Material.LEGACY_CARROT_ITEM);
registerBukkitToNukkit(392, Material.LEGACY_POTATO_ITEM);
registerBukkitToNukkit(393, Material.LEGACY_BAKED_POTATO);
registerBukkitToNukkit(394, Material.LEGACY_POISONOUS_POTATO);
registerBukkitToNukkit(395, Material.LEGACY_EMPTY_MAP);
registerBukkitToNukkit(396, Material.LEGACY_GOLDEN_CARROT);
registerBukkitToNukkit(397, Material.LEGACY_SKULL_ITEM);
registerBukkitToNukkit(398, Material.LEGACY_CARROT_STICK);
registerBukkitToNukkit(399, Material.LEGACY_NETHER_STAR);
registerBukkitToNukkit(400, Material.LEGACY_PUMPKIN_PIE);
registerBukkitToNukkit(401, Material.LEGACY_FIREWORK);
registerBukkitToNukkit(403, Material.LEGACY_ENCHANTED_BOOK);
registerBukkitToNukkit(404, Material.LEGACY_REDSTONE_COMPARATOR);
registerBukkitToNukkit(405, Material.LEGACY_NETHER_BRICK_ITEM);
registerBukkitToNukkit(406, Material.LEGACY_QUARTZ);
registerBukkitToNukkit(407, Material.LEGACY_EXPLOSIVE_MINECART);
registerBukkitToNukkit(408, Material.LEGACY_HOPPER_MINECART);
registerBukkitToNukkit(409, Material.LEGACY_PRISMARINE_SHARD);
registerBukkitToNukkit(422, Material.LEGACY_PRISMARINE_CRYSTALS);
registerBukkitToNukkit(411, Material.LEGACY_RABBIT);
registerBukkitToNukkit(412, Material.LEGACY_COOKED_RABBIT);
registerBukkitToNukkit(413, Material.LEGACY_RABBIT_STEW);
registerBukkitToNukkit(414, Material.LEGACY_RABBIT_FOOT);
registerBukkitToNukkit(415, Material.LEGACY_RABBIT_HIDE);
registerBukkitToNukkit(417, Material.LEGACY_IRON_BARDING);
registerBukkitToNukkit(418, Material.LEGACY_GOLD_BARDING);
registerBukkitToNukkit(419, Material.LEGACY_DIAMOND_BARDING);
registerBukkitToNukkit(420, Material.LEGACY_LEASH);
registerBukkitToNukkit(421, Material.LEGACY_NAME_TAG);
registerBukkitToNukkit(423, Material.LEGACY_MUTTON);
registerBukkitToNukkit(424, Material.LEGACY_COOKED_MUTTON);
registerBukkitToNukkit(426, Material.LEGACY_END_CRYSTAL);
registerBukkitToNukkit(427, Material.LEGACY_SPRUCE_DOOR_ITEM);
registerBukkitToNukkit(428, Material.LEGACY_BIRCH_DOOR_ITEM);
registerBukkitToNukkit(429, Material.LEGACY_JUNGLE_DOOR_ITEM);
registerBukkitToNukkit(430, Material.LEGACY_ACACIA_DOOR_ITEM);
registerBukkitToNukkit(431, Material.LEGACY_DARK_OAK_DOOR_ITEM);
registerBukkitToNukkit(432, Material.LEGACY_CHORUS_FRUIT);
registerBukkitToNukkit(433, Material.LEGACY_CHORUS_FRUIT_POPPED);
registerBukkitToNukkit(457, Material.LEGACY_BEETROOT);
registerBukkitToNukkit(458, Material.LEGACY_BEETROOT_SEEDS);
registerBukkitToNukkit(459, Material.LEGACY_BEETROOT_SOUP);
registerBukkitToNukkit(437, Material.LEGACY_DRAGONS_BREATH);
registerBukkitToNukkit(438, Material.LEGACY_SPLASH_POTION);
registerBukkitToNukkit(262, Material.LEGACY_SPECTRAL_ARROW);
registerBukkitToNukkit(262, Material.LEGACY_TIPPED_ARROW);
registerBukkitToNukkit(441, Material.LEGACY_LINGERING_POTION);
registerBukkitToNukkit(444, Material.LEGACY_ELYTRA);
registerBukkitToNukkit(333, Material.LEGACY_BOAT_SPRUCE);
registerBukkitToNukkit(333, Material.LEGACY_BOAT_BIRCH);
registerBukkitToNukkit(333, Material.LEGACY_BOAT_JUNGLE);
registerBukkitToNukkit(333, Material.LEGACY_BOAT_ACACIA);
registerBukkitToNukkit(333, Material.LEGACY_BOAT_DARK_OAK);
registerBukkitToNukkit(445, Material.LEGACY_SHULKER_SHELL);
registerBukkitToNukkit(387, Material.LEGACY_KNOWLEDGE_BOOK);
registerBukkitToNukkit(500, Material.LEGACY_GOLD_RECORD);
registerBukkitToNukkit(501, Material.LEGACY_GREEN_RECORD);
registerBukkitToNukkit(502, Material.LEGACY_RECORD_3);
registerBukkitToNukkit(503, Material.LEGACY_RECORD_4);
registerBukkitToNukkit(504, Material.LEGACY_RECORD_5);
registerBukkitToNukkit(505, Material.LEGACY_RECORD_6);
registerBukkitToNukkit(506, Material.LEGACY_RECORD_7);
registerBukkitToNukkit(507, Material.LEGACY_RECORD_8);
registerBukkitToNukkit(508, Material.LEGACY_RECORD_9);
registerBukkitToNukkit(509, Material.LEGACY_RECORD_10);
registerBukkitToNukkit(510, Material.LEGACY_RECORD_11);
registerBukkitToNukkit(511, Material.LEGACY_RECORD_12);
registerBukkitToNukkit(446, Material.LEGACY_BANNER);
registerBukkitToNukkit(425, Material.LEGACY_ARMOR_STAND);
registerBukkitToNukkit(443, Material.LEGACY_COMMAND_MINECART);
registerBukkitToNukkit(450, Material.LEGACY_TOTEM);
registerBukkitToNukkit(452, Material.LEGACY_IRON_NUGGET);

} `

This is what I believe should be updated.

And as for chests, I don't know which function registers it.

Now that I fully explained what I mean by the errors and comparing it to pokkit, I will move on to events.

So the events are not fully registering for some reason.

For example:

`@EventHandler public void inventoryClick(InventoryClickEvent e) { Player p = (Player) e.getWhoClicked(); UUID uuid = p.getUniqueId(); ArrayList<Inventory> invn =inventories.get(uuid); try {

		if(invn.contains(e.getClickedInventory())) {
			e.setCancelled(true);
			int iter= 0;
			for(Inventory inv: invn) {
				if(e.getClickedInventory().equals(inv)) {
					
					if(e.getSlot()==26) {
						if(invn.size() - 1 != iter)
						p.openInventory(invn.get(iter+1));
					}else if(e.getSlot() == 19) {
						if(iter != 0)
						p.openInventory(invn.get(iter-1));
					}else {
						int slot = e.getSlot();
						int sum = iter * 25;
						slot += sum;
						ArrayList<String> myCases = cases.get(p.getUniqueId());
						if(myCases.size() - 1< slot) {
							return;
						}
						plugin.caseManager.deleteFromPlayer(p.getUniqueId(),myCases.get(slot));
						new OpenCase().openForPlayer(p,myCases.get(slot));
						return;
					}
				}
				iter++;
			}
		}
	}catch(NullPointerException ex) {
		
	}
}

@EventHandler
public void onInventoryClose(InventoryCloseEvent e) {
	Player p = (Player) e.getPlayer();
	UUID uuid = p.getUniqueId();
	try {
		if(!inventories.get(uuid).contains(p.getOpenInventory().getTopInventory())) {
			inventories.remove(uuid);
			cases.remove(uuid);
		}
	}catch(NullPointerException ex) {
		
	}
}

public void createInventory(Player p) {


	Inventory inv = plugin.getServer().createInventory(null,54, plugin.locale.YOUR_CASES);
	ArrayList<Inventory> invn = new ArrayList<>();
	ArrayList<String> myCases = new ArrayList<>();
	invn.add(inv);
	ItemStack nextPage = new ItemStack(Material.ARROW,1);
	ItemMeta nextMeta = nextPage.getItemMeta();
	nextMeta.setDisplayName("NEXT >>");
	nextPage.setItemMeta(nextMeta);

	ItemStack previousPage = new ItemStack(Material.MAP,1);
	ItemMeta previousMeta = previousPage.getItemMeta();
	previousMeta.setDisplayName("<< PREVIOUS");
	previousPage.setItemMeta(previousMeta);
	
	inv.setItem(10, previousPage);
	inv.setItem(18, nextPage);
	
	String uuidString = p.getUniqueId().toString();
	try {
		int totalCount = 0;
		for(String chest: plugin.getPlayersConfig().getConfigurationSection("players." + uuidString).getKeys(false)) {
			int count = plugin.getPlayersConfig().getInt("players." + uuidString + "." + chest);
			if(count == 0) {
				continue;
			}
			int inventorySel =  totalCount/53;
			Inventory inv2;
			if(invn.size() -1 < inventorySel) {
				inv2 = plugin.getServer().createInventory(null,54, plugin.locale.PAGE + " " + inventorySel);
				inv2.setItem(10, previousPage);
				inv2.setItem(18, nextPage);
				invn.add(inv2);
			}else {
				inv2 = invn.get(inventorySel);
			}
			ItemStack item = new ItemStack(Material.CHEST,count);
			ItemMeta meta = item.getItemMeta();
			myCases.add(chest);
			String displayName = plugin.caseManager.getDisplayName(chest);
			meta.setDisplayName(displayName);
			item.setItemMeta(meta);
			
			inv2.setItem(totalCount%53, item);
			if(totalCount%54==44) {
				totalCount++;
			}
			totalCount++;
		}
		if(totalCount==0) {
			p.sendMessage(plugin.locale.NO_CASES_FOUND);
		}
		inventories.put(p.getUniqueId(),invn);
		cases.put(p.getUniqueId(), myCases);
		p.openInventory(invn.get(0));
		return;
	}catch(NullPointerException ex) {

		p.sendMessage(plugin.locale.NO_CASES_FOUND);
		return;
	}
}
public void createInventory(Player p, Player checker) {
	String displayNamen;
	if(p.equals(checker)) {
		displayNamen = plugin.locale.YOUR;
	}else {
		displayNamen = ChatColor.stripColor(p.getDisplayName()) + "'s";
		
	}
	Inventory inv = plugin.getServer().createInventory(null,54, displayNamen +" " + plugin.locale.CASES);
	ArrayList<Inventory> invn = new ArrayList<>();
	ArrayList<String> myCases = new ArrayList<>();
	invn.add(inv);
	ItemStack nextPage = new ItemStack(Material.ARROW,1);
	ItemMeta nextMeta = nextPage.getItemMeta();
	nextMeta.setDisplayName(plugin.locale.NEXT_PAGE);
	nextPage.setItemMeta(nextMeta);

	ItemStack previousPage = new ItemStack(Material.MAP,1);
	ItemMeta previousMeta = previousPage.getItemMeta();
	previousMeta.setDisplayName(plugin.locale.PREV_PAGE);
	previousPage.setItemMeta(previousMeta);
	
	inv.setItem(10, previousPage);
	inv.setItem(18, nextPage);
	
	String uuidString = p.getUniqueId().toString();
	try {
		int totalCount = 0;
		for(String chest: plugin.getPlayersConfig().getConfigurationSection("players." + uuidString).getKeys(false)) {
			int count = plugin.getPlayersConfig().getInt("players." + uuidString + "." + chest);
			if(count == 0) {
				continue;
			}
			int inventorySel =  totalCount/27;
			Inventory inv2;
			if(invn.size() -1 < inventorySel) {
				inv2 = plugin.getServer().createInventory(null,54, plugin.locale.PAGE + " " + inventorySel);
				inv2.setItem(10, previousPage);
				inv2.setItem(18, nextPage);
				invn.add(inv2);
			}else {
				inv2 = invn.get(inventorySel);
			}
			ItemStack item = new ItemStack(Material.CHEST,count);
			ItemMeta meta = item.getItemMeta();
			myCases.add(chest);
			String displayName = plugin.caseManager.getDisplayName(chest);
			meta.setDisplayName(displayName);
			item.setItemMeta(meta);
			
			inv2.setItem(totalCount%26, item);
			if(totalCount%27==17) {
				totalCount++;
			}
			totalCount++;
		}
		if(totalCount==0) {
			checker.sendMessage(plugin.locale.NO_CASES_FOUND);
		}
		inventories.put(checker.getUniqueId(),invn);
		checker.openInventory(invn.get(0));
		return;
	}catch(NullPointerException ex) {

		checker.sendMessage(plugin.locale.NO_CASES_FOUND);
		return;
	}
}
	

} `

So in this code is a function that is not registered.

The function is InventoryClickEvent

What the plugin is supposed to do is create a double chest menu with the items registered with pokkit, And when I take an item out of the inventory, the plugins should detect an interaction and allow a menu to be created. And all events should be registered, And items updated. That's all I want to be fixed. I would really appreciate this to be a fix. Thank you :)

ghost avatar Oct 11 '19 01:10 ghost