From 27e233c4ecb68ea969b5d3d292728a72dcd6f59f Mon Sep 17 00:00:00 2001 From: rockyhawk64 Date: Fri, 18 Jun 2021 19:11:23 +1000 Subject: [PATCH] 3.15.6.2 --- resource/plugin.yml | 2 +- .../commandpanels/CommandPanels.java | 11 +- .../classresources/GetCustomHeads.java | 5 +- .../classresources/ItemCreation.java | 18 +-- .../classresources/OpenEditorGuis.java | 5 +- .../placeholders/Placeholders.java | 5 +- .../commandtags/tags/economy/BuyItemTags.java | 3 +- .../tags/economy/SellItemTags.java | 3 +- .../generatepanels/GenUtils.java | 5 +- .../interactives/Commandpanelrefresher.java | 4 +- .../ioclasses/legacy/LegacyVersion.java | 35 +++++ .../ioclasses/legacy/MinecraftVersions.java | 41 ++++++ .../{ => ioclasses}/legacy/PlayerHeads.java | 4 +- .../ioclasses/nbt/NBTManager.java | 28 ++++ .../{NBTEditor.java => nbt/NBT_1_13.java} | 126 +++++++++--------- .../commandpanels/ioclasses/nbt/NBT_1_14.java | 29 ++++ .../commandpanels/legacy/LegacyVersion.java | 73 ---------- .../openpanelsmanager/OpenGUI.java | 4 +- .../openpanelsmanager/OpenPanelsLoader.java | 4 +- .../openpanelsmanager/UtilsPanelsLoader.java | 4 +- .../openwithitem/UtilsOpenWithItem.java | 4 + 21 files changed, 242 insertions(+), 171 deletions(-) create mode 100644 src/me/rockyhawk/commandpanels/ioclasses/legacy/LegacyVersion.java create mode 100644 src/me/rockyhawk/commandpanels/ioclasses/legacy/MinecraftVersions.java rename src/me/rockyhawk/commandpanels/{ => ioclasses}/legacy/PlayerHeads.java (77%) create mode 100644 src/me/rockyhawk/commandpanels/ioclasses/nbt/NBTManager.java rename src/me/rockyhawk/commandpanels/ioclasses/{NBTEditor.java => nbt/NBT_1_13.java} (93%) create mode 100644 src/me/rockyhawk/commandpanels/ioclasses/nbt/NBT_1_14.java delete mode 100644 src/me/rockyhawk/commandpanels/legacy/LegacyVersion.java diff --git a/resource/plugin.yml b/resource/plugin.yml index 0cb4f29..ea10df0 100644 --- a/resource/plugin.yml +++ b/resource/plugin.yml @@ -1,4 +1,4 @@ -version: 3.15.6.1 +version: 3.15.6.2 main: me.rockyhawk.commandpanels.CommandPanels name: CommandPanels author: RockyHawk diff --git a/src/me/rockyhawk/commandpanels/CommandPanels.java b/src/me/rockyhawk/commandpanels/CommandPanels.java index f33c852..fcffd1e 100644 --- a/src/me/rockyhawk/commandpanels/CommandPanels.java +++ b/src/me/rockyhawk/commandpanels/CommandPanels.java @@ -29,8 +29,10 @@ import me.rockyhawk.commandpanels.interactives.Commandpanelrefresher; import me.rockyhawk.commandpanels.interactives.OpenOnJoin; import me.rockyhawk.commandpanels.ioclasses.Sequence_1_13; import me.rockyhawk.commandpanels.ioclasses.Sequence_1_14; -import me.rockyhawk.commandpanels.legacy.LegacyVersion; -import me.rockyhawk.commandpanels.legacy.PlayerHeads; +import me.rockyhawk.commandpanels.ioclasses.nbt.NBTManager; +import me.rockyhawk.commandpanels.ioclasses.legacy.LegacyVersion; +import me.rockyhawk.commandpanels.ioclasses.legacy.MinecraftVersions; +import me.rockyhawk.commandpanels.ioclasses.legacy.PlayerHeads; import me.rockyhawk.commandpanels.openpanelsmanager.OpenGUI; import me.rockyhawk.commandpanels.openpanelsmanager.OpenPanelsLoader; import me.rockyhawk.commandpanels.openpanelsmanager.PanelPermissions; @@ -97,6 +99,7 @@ public class CommandPanels extends JavaPlugin{ public OpenGUI createGUI = new OpenGUI(this); public PanelPermissions panelPerms = new PanelPermissions(this); public HotbarItemLoader hotbar = new HotbarItemLoader(this); + public NBTManager nbt = new NBTManager(this); public File panelsf; public YamlConfiguration blockConfig; //where panel block locations are stored @@ -203,7 +206,7 @@ public class CommandPanels extends JavaPlugin{ try { FileConfiguration exampleFileConfiguration; FileConfiguration templateFileConfiguration = YamlConfiguration.loadConfiguration(getReaderFromStream(this.getResource("template.yml"))); - if(legacy.isLegacy()){ + if(legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_12)){ exampleFileConfiguration = YamlConfiguration.loadConfiguration(getReaderFromStream(this.getResource("exampleLegacy.yml"))); }else { exampleFileConfiguration = YamlConfiguration.loadConfiguration(getReaderFromStream(this.getResource("example.yml"))); @@ -446,7 +449,7 @@ public class CommandPanels extends JavaPlugin{ public Reader getReaderFromStream(InputStream initialStream) throws IOException { //this reads the encrypted resource files in the jar file - if(Bukkit.getVersion().contains("1.13") || legacy.isLegacy()){ + if(legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_13)){ return new Sequence_1_13(this).getReaderFromStream(initialStream); }else{ return new Sequence_1_14(this).getReaderFromStream(initialStream); diff --git a/src/me/rockyhawk/commandpanels/classresources/GetCustomHeads.java b/src/me/rockyhawk/commandpanels/classresources/GetCustomHeads.java index 3b6f9f0..d853baf 100644 --- a/src/me/rockyhawk/commandpanels/classresources/GetCustomHeads.java +++ b/src/me/rockyhawk/commandpanels/classresources/GetCustomHeads.java @@ -4,6 +4,7 @@ import com.mojang.authlib.GameProfile; import com.mojang.authlib.properties.Property; import com.mojang.authlib.properties.PropertyMap; import me.rockyhawk.commandpanels.CommandPanels; +import me.rockyhawk.commandpanels.ioclasses.legacy.MinecraftVersions; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -43,7 +44,7 @@ public class GetCustomHeads { @SuppressWarnings("deprecation") public ItemStack getPlayerHead(String name) { byte id = 0; - if(plugin.legacy.isLegacy()){ + if(plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_15)){ id = 3; } ItemStack itemStack = new ItemStack(Material.matchMaterial(plugin.getHeads.playerHeadString()), 1,id); @@ -63,7 +64,7 @@ public class GetCustomHeads { } else { propertyMap.put("textures", new Property("textures", b64stringtexture)); byte id = 0; - if(plugin.legacy.isLegacy()){ + if(plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_15)){ id = 3; } ItemStack head = new ItemStack(Material.matchMaterial(plugin.getHeads.playerHeadString()), 1,id); diff --git a/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java b/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java index 5276fa9..5d9ff1e 100644 --- a/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java +++ b/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java @@ -4,7 +4,7 @@ import com.jojodmo.customitems.api.CustomItemsAPI; import me.arcaniax.hdb.api.HeadDatabaseAPI; import me.rockyhawk.commandpanels.CommandPanels; import me.rockyhawk.commandpanels.api.Panel; -import me.rockyhawk.commandpanels.ioclasses.NBTEditor; +import me.rockyhawk.commandpanels.ioclasses.legacy.MinecraftVersions; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.item.mmoitem.MMOItem; import net.Indyuce.mmoitems.manager.ItemManager; @@ -85,7 +85,7 @@ public class ItemCreation { if (matraw.split("\\s")[0].equalsIgnoreCase("cps=") || matraw.split("\\s")[0].toLowerCase().equals("cpo=")) { skullname = p.getUniqueId().toString(); mat = plugin.getHeads.playerHeadString(); - if(plugin.legacy.isLegacy()){ + if(plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_12)){ id = 3; } } @@ -93,7 +93,7 @@ public class ItemCreation { if (matraw.split("\\s")[0].equalsIgnoreCase("hdb=")) { skullname = "hdb"; mat = plugin.getHeads.playerHeadString(); - if(plugin.legacy.isLegacy()){ + if(plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_12)){ id = 3; } } @@ -143,7 +143,7 @@ public class ItemCreation { if (matraw.split("\\s")[1].equalsIgnoreCase("self")) { //if cps= self meta = (SkullMeta) s.getItemMeta(); - if(!plugin.legacy.isLegacy()) { + if(!plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_12)) { try { assert meta != null; meta.setOwningPlayer(Bukkit.getOfflinePlayer(UUID.fromString(skullname))); @@ -204,7 +204,7 @@ public class ItemCreation { } if(addNBT){ - s = NBTEditor.set(s,"CommandPanels","CommandPanels"); + s = plugin.nbt.setNBT(s); } if (itemSection.contains("map")) { @@ -333,7 +333,7 @@ public class ItemCreation { if (itemSection.contains("damage")) { //change the damage amount (placeholders accepted) //if the damage is not unbreakable and should be a value - if (plugin.legacy.isLegacy()) { + if (plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_12)) { try { s.setDurability(Short.parseShort(Objects.requireNonNull(plugin.tex.papi(panel,p, itemSection.getString("damage"))))); } catch (Exception e) { @@ -500,7 +500,7 @@ public class ItemCreation { } } } - if(plugin.legacy.isLegacy()){ + if(plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_12)){ if (cont.getDurability() != 0 && !cont.getType().toString().equals("SKULL_ITEM")) { file.set("panels." + panelName + ".item." + i + ".ID", cont.getDurability()); } @@ -519,7 +519,7 @@ public class ItemCreation { if(plugin.getHeads.ifSkullOrHead(cont.getType().toString())){ if(!Objects.requireNonNull(file.getString("panels." + panelName + ".item." + i + ".material")).contains("%") && !Objects.requireNonNull(file.getString("panels." + panelName + ".item." + i + ".material")).contains("=")) { SkullMeta meta = (SkullMeta) cont.getItemMeta(); - if (plugin.customHeads.getHeadBase64(cont) != null && !plugin.legacy.isLegacy()) { + if (plugin.customHeads.getHeadBase64(cont) != null && !plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_12)) { //inject base64 here, disable for legacy as is not working file.set("panels." + panelName + ".item." + i + ".material", "cps= " + plugin.customHeads.getHeadBase64(cont)); } else if (meta.hasOwner()) { @@ -581,7 +581,7 @@ public class ItemCreation { }catch(Exception ignore){} //check for damage try { - if(plugin.legacy.isLegacy()){ + if(plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_12)){ if(one.getDurability() != two.getDurability()) { return false; } diff --git a/src/me/rockyhawk/commandpanels/classresources/OpenEditorGuis.java b/src/me/rockyhawk/commandpanels/classresources/OpenEditorGuis.java index dfee927..7f44605 100644 --- a/src/me/rockyhawk/commandpanels/classresources/OpenEditorGuis.java +++ b/src/me/rockyhawk/commandpanels/classresources/OpenEditorGuis.java @@ -2,6 +2,7 @@ package me.rockyhawk.commandpanels.classresources; import me.rockyhawk.commandpanels.CommandPanels; import me.rockyhawk.commandpanels.api.Panel; +import me.rockyhawk.commandpanels.ioclasses.legacy.MinecraftVersions; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -245,7 +246,7 @@ public class OpenEditorGuis { i.setItem(18, temp); //This will create a wall of glass panes, separating panel settings with hotbar settings - if(plugin.legacy.isLegacy()) { + if(plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_15)) { temp = new ItemStack(Material.matchMaterial("STAINED_GLASS_PANE"), 1,(short)15); }else{ temp = new ItemStack(Material.matchMaterial("BLACK_STAINED_GLASS_PANE"), 1); @@ -451,7 +452,7 @@ public class OpenEditorGuis { plugin.setName(null,temp, ChatColor.WHITE + "Item Stack Size", lore, p, true, true, true); i.setItem(21, temp); - if(!plugin.legacy.isLegacy()) { + if(!plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_15)) { temp = new ItemStack(Material.PAINTING, 1); lore.clear(); lore.add(ChatColor.GRAY + "Add Custom Model Data here"); diff --git a/src/me/rockyhawk/commandpanels/classresources/placeholders/Placeholders.java b/src/me/rockyhawk/commandpanels/classresources/placeholders/Placeholders.java index 6d9985d..69c792d 100644 --- a/src/me/rockyhawk/commandpanels/classresources/placeholders/Placeholders.java +++ b/src/me/rockyhawk/commandpanels/classresources/placeholders/Placeholders.java @@ -4,6 +4,7 @@ import com.bencodez.votingplugin.user.UserManager; import me.realized.tokenmanager.api.TokenManager; import me.rockyhawk.commandpanels.CommandPanels; import me.rockyhawk.commandpanels.api.Panel; +import me.rockyhawk.commandpanels.ioclasses.legacy.MinecraftVersions; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -92,7 +93,7 @@ public class Placeholders { String material; try { material = p.getOpenInventory().getTopInventory().getItem(Integer.parseInt(matNumber)).getType().toString(); - if (plugin.legacy.isLegacy()) { + if (plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_15)) { //add the ID to the end if it is legacy (eg, material:id) material = material + ":" + p.getOpenInventory().getTopInventory().getItem(Integer.parseInt(matNumber)).getType().getId(); } @@ -150,7 +151,7 @@ public class Placeholders { boolean damaged = false; ItemStack itm = p.getOpenInventory().getTopInventory().getItem(Integer.parseInt(matNumber)); try { - if(plugin.legacy.isLegacy()){ + if(plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_15)){ if(itm.getType().getMaxDurability() != 0) { damaged = (itm.getType().getMaxDurability() - itm.getDurability()) < itm.getType().getMaxDurability(); } diff --git a/src/me/rockyhawk/commandpanels/commandtags/tags/economy/BuyItemTags.java b/src/me/rockyhawk/commandpanels/commandtags/tags/economy/BuyItemTags.java index 736aae4..3217a9e 100644 --- a/src/me/rockyhawk/commandpanels/commandtags/tags/economy/BuyItemTags.java +++ b/src/me/rockyhawk/commandpanels/commandtags/tags/economy/BuyItemTags.java @@ -3,6 +3,7 @@ package me.rockyhawk.commandpanels.commandtags.tags.economy; import me.realized.tokenmanager.api.TokenManager; import me.rockyhawk.commandpanels.CommandPanels; import me.rockyhawk.commandpanels.commandtags.CommandTagEvent; +import me.rockyhawk.commandpanels.ioclasses.legacy.MinecraftVersions; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -71,7 +72,7 @@ public class BuyItemTags implements Listener { private void giveItem(Player p, String[] args){ //legacy ID byte id = 0; - if(plugin.legacy.isLegacy()) { + if(plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_15)) { for (String argsTemp : args) { if (argsTemp.startsWith("id:")) { id = Byte.parseByte(argsTemp.replace("id:", "")); diff --git a/src/me/rockyhawk/commandpanels/commandtags/tags/economy/SellItemTags.java b/src/me/rockyhawk/commandpanels/commandtags/tags/economy/SellItemTags.java index 1dc7705..98a560b 100644 --- a/src/me/rockyhawk/commandpanels/commandtags/tags/economy/SellItemTags.java +++ b/src/me/rockyhawk/commandpanels/commandtags/tags/economy/SellItemTags.java @@ -3,6 +3,7 @@ package me.rockyhawk.commandpanels.commandtags.tags.economy; import me.realized.tokenmanager.api.TokenManager; import me.rockyhawk.commandpanels.CommandPanels; import me.rockyhawk.commandpanels.commandtags.CommandTagEvent; +import me.rockyhawk.commandpanels.ioclasses.legacy.MinecraftVersions; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -81,7 +82,7 @@ public class SellItemTags implements Listener { } //legacy ID byte id = -1; - if(plugin.legacy.isLegacy()) { + if(plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_15)) { for (String argsTemp : args) { if (argsTemp.startsWith("id:")) { id = Byte.parseByte(argsTemp.replace("id:", "")); diff --git a/src/me/rockyhawk/commandpanels/generatepanels/GenUtils.java b/src/me/rockyhawk/commandpanels/generatepanels/GenUtils.java index a5871df..706a669 100644 --- a/src/me/rockyhawk/commandpanels/generatepanels/GenUtils.java +++ b/src/me/rockyhawk/commandpanels/generatepanels/GenUtils.java @@ -2,10 +2,9 @@ package me.rockyhawk.commandpanels.generatepanels; import me.rockyhawk.commandpanels.CommandPanels; import me.rockyhawk.commandpanels.api.Panel; +import me.rockyhawk.commandpanels.ioclasses.legacy.MinecraftVersions; import org.bukkit.Bukkit; import org.bukkit.ChatColor; -import org.bukkit.block.Chest; -import org.bukkit.block.DoubleChest; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Player; @@ -101,7 +100,7 @@ public class GenUtils implements Listener { file.set("panels." + date + ".title", "&8Generated " + date); file.addDefault("panels." + date + ".command", date); - if(plugin.legacy.isLegacy()) { + if(plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_15)) { file.set("panels." + date + ".empty", "STAINED_GLASS_PANE"); file.set("panels." + date + ".emptyID", "15"); }else{ diff --git a/src/me/rockyhawk/commandpanels/interactives/Commandpanelrefresher.java b/src/me/rockyhawk/commandpanels/interactives/Commandpanelrefresher.java index 8222215..59d51c3 100644 --- a/src/me/rockyhawk/commandpanels/interactives/Commandpanelrefresher.java +++ b/src/me/rockyhawk/commandpanels/interactives/Commandpanelrefresher.java @@ -3,7 +3,7 @@ package me.rockyhawk.commandpanels.interactives; import me.rockyhawk.commandpanels.CommandPanels; import me.rockyhawk.commandpanels.api.Panel; import me.rockyhawk.commandpanels.api.PanelOpenedEvent; -import me.rockyhawk.commandpanels.ioclasses.NBTEditor; +import me.rockyhawk.commandpanels.ioclasses.nbt.NBT_1_13; import org.bukkit.Bukkit; import org.bukkit.Sound; import org.bukkit.configuration.file.YamlConfiguration; @@ -112,7 +112,7 @@ public class Commandpanelrefresher implements Listener { p.updateInventory(); for(ItemStack itm : p.getInventory().getContents()){ if(itm != null){ - if (NBTEditor.contains(itm, "CommandPanels")) { + if (plugin.nbt.hasNBT(itm)) { p.getInventory().remove(itm); } } diff --git a/src/me/rockyhawk/commandpanels/ioclasses/legacy/LegacyVersion.java b/src/me/rockyhawk/commandpanels/ioclasses/legacy/LegacyVersion.java new file mode 100644 index 0000000..ed06f56 --- /dev/null +++ b/src/me/rockyhawk/commandpanels/ioclasses/legacy/LegacyVersion.java @@ -0,0 +1,35 @@ +package me.rockyhawk.commandpanels.ioclasses.legacy; + +import me.rockyhawk.commandpanels.CommandPanels; +import me.rockyhawk.commandpanels.ioclasses.GetStorageContents; +import me.rockyhawk.commandpanels.ioclasses.GetStorageContents_Legacy; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +public class LegacyVersion { + CommandPanels plugin; + public MinecraftVersions LOCAL_VERSION; + public LegacyVersion(CommandPanels pl) { + this.plugin = pl; + String VERSION = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3]; + LOCAL_VERSION = MinecraftVersions.get(VERSION); + } + + public ItemStack[] getStorageContents(Inventory i){ + if(LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_12)){ + return new GetStorageContents_Legacy(plugin).getStorageContents(i); + }else{ + return new GetStorageContents(plugin).getStorageContents(i); + } + } + + public void setStorageContents(Player p, ItemStack[] i){ + if(LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_15)){ + new GetStorageContents_Legacy(plugin).setStorageContents(p,i); + }else{ + new GetStorageContents(plugin).setStorageContents(p,i); + } + } +} diff --git a/src/me/rockyhawk/commandpanels/ioclasses/legacy/MinecraftVersions.java b/src/me/rockyhawk/commandpanels/ioclasses/legacy/MinecraftVersions.java new file mode 100644 index 0000000..f97a783 --- /dev/null +++ b/src/me/rockyhawk/commandpanels/ioclasses/legacy/MinecraftVersions.java @@ -0,0 +1,41 @@ +package me.rockyhawk.commandpanels.ioclasses.legacy; + +public enum MinecraftVersions { + v1_8( "1_8", 0 ), + v1_9( "1_9", 1 ), + v1_10( "1_10", 2 ), + v1_11( "1_11", 3 ), + v1_12( "1_12", 4 ), + v1_13( "1_13", 5 ), + v1_14( "1_14", 6 ), + v1_15( "1_15", 7 ), + v1_16( "1_16", 8 ), + v1_17( "1_17", 9 ), + v1_18( "1_18", 10 ), + v1_19( "1_19", 11 ); + + private int order; + private String key; + + MinecraftVersions( String key, int v ) { + this.key = key; + order = v; + } + + public boolean greaterThanOrEqualTo( MinecraftVersions other ) { + return order >= other.order; + } + + public boolean lessThanOrEqualTo( MinecraftVersions other ) { + return order <= other.order; + } + + public static MinecraftVersions get(String v ) { + for ( MinecraftVersions k : MinecraftVersions.values() ) { + if ( v.contains( k.key ) ) { + return k; + } + } + return null; + } +} diff --git a/src/me/rockyhawk/commandpanels/legacy/PlayerHeads.java b/src/me/rockyhawk/commandpanels/ioclasses/legacy/PlayerHeads.java similarity index 77% rename from src/me/rockyhawk/commandpanels/legacy/PlayerHeads.java rename to src/me/rockyhawk/commandpanels/ioclasses/legacy/PlayerHeads.java index f3acc69..a3ba583 100644 --- a/src/me/rockyhawk/commandpanels/legacy/PlayerHeads.java +++ b/src/me/rockyhawk/commandpanels/ioclasses/legacy/PlayerHeads.java @@ -1,4 +1,4 @@ -package me.rockyhawk.commandpanels.legacy; +package me.rockyhawk.commandpanels.ioclasses.legacy; import me.rockyhawk.commandpanels.CommandPanels; @@ -13,7 +13,7 @@ public class PlayerHeads { } public String playerHeadString() { - if(plugin.legacy.isLegacy()){ + if(plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_12)){ return "SKULL_ITEM"; }else{ return "PLAYER_HEAD"; diff --git a/src/me/rockyhawk/commandpanels/ioclasses/nbt/NBTManager.java b/src/me/rockyhawk/commandpanels/ioclasses/nbt/NBTManager.java new file mode 100644 index 0000000..b3f4023 --- /dev/null +++ b/src/me/rockyhawk/commandpanels/ioclasses/nbt/NBTManager.java @@ -0,0 +1,28 @@ +package me.rockyhawk.commandpanels.ioclasses.nbt; + +import me.rockyhawk.commandpanels.CommandPanels; +import me.rockyhawk.commandpanels.ioclasses.legacy.MinecraftVersions; +import org.bukkit.inventory.ItemStack; + +public class NBTManager { + CommandPanels plugin; + public NBTManager(CommandPanels pl) { + this.plugin = pl; + } + + public boolean hasNBT(ItemStack item){ + if(plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_13)){ + return new NBT_1_13().contains(item, "CommandPanelsItem"); + }else{ + return new NBT_1_14(plugin).hasNBT(item); + } + } + + public ItemStack setNBT(ItemStack item){ + if(plugin.legacy.LOCAL_VERSION.lessThanOrEqualTo(MinecraftVersions.v1_13)){ + return new NBT_1_13().set(item,1,"CommandPanelsItem"); + }else{ + return new NBT_1_14(plugin).addNBT(item); + } + } +} diff --git a/src/me/rockyhawk/commandpanels/ioclasses/NBTEditor.java b/src/me/rockyhawk/commandpanels/ioclasses/nbt/NBT_1_13.java similarity index 93% rename from src/me/rockyhawk/commandpanels/ioclasses/NBTEditor.java rename to src/me/rockyhawk/commandpanels/ioclasses/nbt/NBT_1_13.java index eded854..93bfe44 100644 --- a/src/me/rockyhawk/commandpanels/ioclasses/NBTEditor.java +++ b/src/me/rockyhawk/commandpanels/ioclasses/nbt/NBT_1_13.java @@ -1,4 +1,4 @@ -package me.rockyhawk.commandpanels.ioclasses; +package me.rockyhawk.commandpanels.ioclasses.nbt; import java.lang.reflect.Constructor; import java.lang.reflect.Field; @@ -31,18 +31,18 @@ import org.bukkit.inventory.meta.ItemMeta; * @version 7.17.0 * @author BananaPuncher714 */ -public final class NBTEditor { - private static final Map< String, Class< ? > > classCache; - private static final Map< String, Method > methodCache; - private static final Map< Class< ? >, Constructor< ? > > constructorCache; - private static final Map< Class< ? >, Class< ? > > NBTClasses; - private static final Map< Class< ? >, Field > NBTTagFieldCache; - private static Field NBTListData; - private static Field NBTCompoundMap; - private static final String VERSION; - private static final MinecraftVersion LOCAL_VERSION; +public final class NBT_1_13 { + private final Map< String, Class< ? > > classCache; + private final Map< String, Method > methodCache; + private final Map< Class< ? >, Constructor< ? > > constructorCache; + private final Map< Class< ? >, Class< ? > > NBTClasses; + private final Map< Class< ? >, Field > NBTTagFieldCache; + private Field NBTListData; + private Field NBTCompoundMap; + private final String VERSION; + private final MinecraftVersion LOCAL_VERSION; - static { + { VERSION = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3]; LOCAL_VERSION = MinecraftVersion.get( VERSION ); @@ -293,13 +293,13 @@ public final class NBTEditor { } } - private static Class< ? > getNBTTag( Class< ? > primitiveType ) { + private Class< ? > getNBTTag( Class< ? > primitiveType ) { if ( NBTClasses.containsKey( primitiveType ) ) return NBTClasses.get( primitiveType ); return primitiveType; } - private static Object getNBTVar( Object object ) { + private Object getNBTVar( Object object ) { if ( object == null ) { return null; } @@ -314,15 +314,15 @@ public final class NBTEditor { return null; } - private static Method getMethod( String name ) { + private Method getMethod( String name ) { return methodCache.containsKey( name ) ? methodCache.get( name ) : null; } - private static Constructor< ? > getConstructor( Class< ? > clazz ) { + private Constructor< ? > getConstructor( Class< ? > clazz ) { return constructorCache.containsKey( clazz ) ? constructorCache.get( clazz ) : null; } - private static Class getNMSClass(String name) { + private Class getNMSClass(String name) { if ( classCache.containsKey( name ) ) { return classCache.get( name ); } @@ -335,7 +335,7 @@ public final class NBTEditor { } } - private static String getMatch( String string, String regex ) { + private String getMatch( String string, String regex ) { Pattern pattern = Pattern.compile( regex ); Matcher matcher = pattern.matcher( string ); if ( matcher.find() ) { @@ -345,7 +345,7 @@ public final class NBTEditor { } } - private static Object createItemStack( Object compound ) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException { + private Object createItemStack( Object compound ) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException { if ( LOCAL_VERSION == MinecraftVersion.v1_11 || LOCAL_VERSION == MinecraftVersion.v1_12 ) { return getConstructor( getNMSClass( "ItemStack" ) ).newInstance( compound ); } @@ -358,11 +358,11 @@ public final class NBTEditor { * @return * The Bukkit version in standard package format */ - public static String getVersion() { + public String getVersion() { return VERSION; } - public static MinecraftVersion getMinecraftVersion() { + public MinecraftVersion getMinecraftVersion() { return LOCAL_VERSION; } @@ -374,7 +374,7 @@ public final class NBTEditor { * @return * An item stack with count of 1 */ - public static ItemStack getHead( String skinURL ) { + public ItemStack getHead( String skinURL ) { Material material = Material.getMaterial( "SKULL_ITEM" ); if ( material == null ) { // Most likely 1.13 materials @@ -427,7 +427,7 @@ public final class NBTEditor { * @return * The URL of the texture */ - public static String getTexture( ItemStack head ) { + public String getTexture( ItemStack head ) { ItemMeta meta = head.getItemMeta(); Field profileField = null; try { @@ -468,7 +468,7 @@ public final class NBTEditor { * @return * The item represented by the keys, and an integer if it is showing how long a list is. */ - private static Object getItemTag( ItemStack item, Object... keys ) { + private Object getItemTag( ItemStack item, Object... keys ) { try { return getTag( getCompound( item ), keys ); } catch ( IllegalAccessException | IllegalArgumentException | InvocationTargetException e ) { @@ -478,7 +478,7 @@ public final class NBTEditor { } // Gets the NBTTagCompound - private static Object getCompound( ItemStack item ) { + private Object getCompound( ItemStack item ) { if ( item == null ) { return null; } @@ -511,7 +511,7 @@ public final class NBTEditor { * @return * An NBTCompound */ - private static NBTCompound getItemNBTTag( ItemStack item, Object... keys ) { + private NBTCompound getItemNBTTag( ItemStack item, Object... keys ) { if ( item == null ) { return null; } @@ -543,7 +543,7 @@ public final class NBTEditor { * @return * A new ItemStack with the updated NBT tags */ - private static ItemStack setItemTag( ItemStack item, Object value, Object... keys ) { + private ItemStack setItemTag( ItemStack item, Object value, Object... keys ) { if ( item == null ) { return null; } @@ -580,7 +580,7 @@ public final class NBTEditor { * @return * A new ItemStack */ - public static ItemStack getItemFromTag( NBTCompound compound ) { + public ItemStack getItemFromTag( NBTCompound compound ) { if ( compound == null ) { return null; } @@ -612,7 +612,7 @@ public final class NBTEditor { * @return * The item represented by the keys, and an integer if it is showing how long a list is. */ - private static Object getEntityTag( Entity entity, Object... keys ) { + private Object getEntityTag( Entity entity, Object... keys ) { try { return getTag( getCompound( entity ), keys ); } catch ( IllegalAccessException | IllegalArgumentException | InvocationTargetException e ) { @@ -622,7 +622,7 @@ public final class NBTEditor { } // Gets the NBTTagCompound - private static Object getCompound( Entity entity ) { + private Object getCompound( Entity entity ) { if ( entity == null ) { return entity; } @@ -650,7 +650,7 @@ public final class NBTEditor { * @return * An NBTCompound */ - private static NBTCompound getEntityNBTTag( Entity entity, Object...keys ) { + private NBTCompound getEntityNBTTag( Entity entity, Object...keys ) { if ( entity == null ) { return null; } @@ -679,7 +679,7 @@ public final class NBTEditor { * @param keys * The keys to set, String for NBTCompound, int or null for an NBTTagList */ - private static void setEntityTag( Entity entity, Object value, Object... keys ) { + private void setEntityTag( Entity entity, Object value, Object... keys ) { if ( entity == null ) { return; } @@ -714,7 +714,7 @@ public final class NBTEditor { * @return * The item represented by the keys, and an integer if it is showing how long a list is. */ - private static Object getBlockTag( Block block, Object... keys ) { + private Object getBlockTag( Block block, Object... keys ) { try { return getTag( getCompound( block ), keys ); } catch ( IllegalAccessException | IllegalArgumentException | InvocationTargetException e ) { @@ -724,7 +724,7 @@ public final class NBTEditor { } // Gets the NBTTagCompound - private static Object getCompound( Block block ) { + private Object getCompound( Block block ) { try { if ( block == null || !getNMSClass( "CraftBlockState" ).isInstance( block.getState() ) ) { return null; @@ -758,7 +758,7 @@ public final class NBTEditor { * @return * An NBTCompound */ - private static NBTCompound getBlockNBTTag( Block block, Object... keys ) { + private NBTCompound getBlockNBTTag( Block block, Object... keys ) { try { if ( block == null || !getNMSClass( "CraftBlockState" ).isInstance( block.getState() ) ) { return null; @@ -793,7 +793,7 @@ public final class NBTEditor { * @param keys * The keys to set, String for NBTCompound, int or null for an NBTTagList */ - private static void setBlockTag( Block block, Object value, Object... keys ) { + private void setBlockTag( Block block, Object value, Object... keys ) { try { if ( block == null || !getNMSClass( "CraftBlockState" ).isInstance( block.getState() ) ) { return; @@ -835,7 +835,7 @@ public final class NBTEditor { * @param texture * The URL of the skin */ - public static void setSkullTexture( Block block, String texture ) { + public void setSkullTexture( Block block, String texture ) { try { Object profile = getConstructor( getNMSClass( "GameProfile" ) ).newInstance( UUID.randomUUID(), null ); Object propertyMap = getMethod( "getProperties" ).invoke( profile ); @@ -856,7 +856,7 @@ public final class NBTEditor { } } - private static Object getValue( Object object, Object... keys ) { + private Object getValue( Object object, Object... keys ) { if ( object instanceof ItemStack ) { return getItemTag( ( ItemStack ) object, keys ); } else if ( object instanceof Entity ) { @@ -885,7 +885,7 @@ public final class NBTEditor { * @return * An NBTCompound, or null if none is stored at the provided location */ - public static NBTCompound getNBTCompound( Object object, Object... keys ) { + public NBTCompound getNBTCompound( Object object, Object... keys ) { if ( object instanceof ItemStack ) { return getItemNBTTag( ( ItemStack ) object, keys ); } else if ( object instanceof Entity ) { @@ -921,7 +921,7 @@ public final class NBTEditor { * @return * A string, or null if none is stored at the provided location */ - public static String getString( Object object, Object... keys ) { + public String getString( Object object, Object... keys ) { Object result = getValue( object, keys ); return result instanceof String ? ( String ) result : null; } @@ -936,7 +936,7 @@ public final class NBTEditor { * @return * An integer, or 0 if none is stored at the provided location */ - public static int getInt( Object object, Object... keys ) { + public int getInt( Object object, Object... keys ) { Object result = getValue( object, keys ); return result instanceof Integer ? ( int ) result : 0; } @@ -951,7 +951,7 @@ public final class NBTEditor { * @return * A double, or 0 if none is stored at the provided location */ - public static double getDouble( Object object, Object... keys ) { + public double getDouble( Object object, Object... keys ) { Object result = getValue( object, keys ); return result instanceof Double ? ( double ) result : 0; } @@ -966,7 +966,7 @@ public final class NBTEditor { * @return * A long, or 0 if none is stored at the provided location */ - public static long getLong( Object object, Object... keys ) { + public long getLong( Object object, Object... keys ) { Object result = getValue( object, keys ); return result instanceof Long ? ( long ) result : 0; } @@ -981,7 +981,7 @@ public final class NBTEditor { * @return * A float, or 0 if none is stored at the provided location */ - public static float getFloat( Object object, Object... keys ) { + public float getFloat( Object object, Object... keys ) { Object result = getValue( object, keys ); return result instanceof Float ? ( float ) result : 0; } @@ -996,7 +996,7 @@ public final class NBTEditor { * @return * A short, or 0 if none is stored at the provided location */ - public static short getShort( Object object, Object... keys ) { + public short getShort( Object object, Object... keys ) { Object result = getValue( object, keys ); return result instanceof Short ? ( short ) result : 0; } @@ -1011,7 +1011,7 @@ public final class NBTEditor { * @return * A byte, or 0 if none is stored at the provided location */ - public static byte getByte( Object object, Object... keys ) { + public byte getByte( Object object, Object... keys ) { Object result = getValue( object, keys ); return result instanceof Byte ? ( byte ) result : 0; } @@ -1026,7 +1026,7 @@ public final class NBTEditor { * @return * A boolean or false if none is stored at the provided location */ - public static boolean getBoolean( Object object, Object... keys ) { + public boolean getBoolean( Object object, Object... keys ) { return getByte( object, keys ) == 1; } @@ -1040,7 +1040,7 @@ public final class NBTEditor { * @return * A byte array, or null if none is stored at the provided location */ - public static byte[] getByteArray( Object object, Object... keys ) { + public byte[] getByteArray( Object object, Object... keys ) { Object result = getValue( object, keys ); return result instanceof byte[] ? ( byte[] ) result : null; } @@ -1055,7 +1055,7 @@ public final class NBTEditor { * @return * An int array, or null if none is stored at the provided location */ - public static int[] getIntArray( Object object, Object... keys ) { + public int[] getIntArray( Object object, Object... keys ) { Object result = getValue( object, keys ); return result instanceof int[] ? ( int[] ) result : null; } @@ -1070,7 +1070,7 @@ public final class NBTEditor { * @return * Whether or not the particular tag exists, may not be a primitive */ - public static boolean contains( Object object, Object... keys ) { + public boolean contains( Object object, Object... keys ) { Object result = getValue( object, keys ); return result != null; } @@ -1085,7 +1085,7 @@ public final class NBTEditor { * @return * A set of keys */ - public static Collection< String > getKeys( Object object, Object... keys ) { + public Collection< String > getKeys( Object object, Object... keys ) { Object compound; if ( object instanceof ItemStack ) { compound = getCompound( ( ItemStack ) object ); @@ -1126,7 +1126,7 @@ public final class NBTEditor { * @return * The size of the list or compound at the given location. */ - public static int getSize( Object object, Object... keys ) { + public int getSize( Object object, Object... keys ) { Object compound; if ( object instanceof ItemStack ) { compound = getCompound( ( ItemStack ) object ); @@ -1169,7 +1169,7 @@ public final class NBTEditor { * @return * The new item stack if the object provided is an item, else original object */ - public static < T > T set( T object, Object value, Object... keys ) { + public < T > T set( T object, Object value, Object... keys ) { if ( object instanceof ItemStack ) { return ( T ) setItemTag( ( ItemStack ) object, value, keys ); } else if ( object instanceof Entity ) { @@ -1196,7 +1196,7 @@ public final class NBTEditor { * @return * An NBTCompound from the String provided. May or may not be a valid ItemStack. */ - public static NBTCompound getNBTCompound( String json ) { + public NBTCompound getNBTCompound( String json ) { return NBTCompound.fromJson( json ); } @@ -1206,7 +1206,7 @@ public final class NBTEditor { * @return * A new NBTCompound that contains a NBTTagCompound object. */ - public static NBTCompound getEmptyNBTCompound() { + public NBTCompound getEmptyNBTCompound() { try { return new NBTCompound( getNMSClass( "NBTTagCompound" ).newInstance() ); } catch ( InstantiationException | IllegalAccessException e ) { @@ -1215,7 +1215,7 @@ public final class NBTEditor { } } - private static void setTag( Object tag, Object value, Object... keys ) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { + private void setTag( Object tag, Object value, Object... keys ) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { Object notCompound; // Get the real value of what we want to set here if ( value != null ) { @@ -1297,7 +1297,7 @@ public final class NBTEditor { } } - private static NBTCompound getNBTTag( Object tag, Object...keys ) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { + private NBTCompound getNBTTag( Object tag, Object...keys ) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { Object compound = tag; for ( Object key : keys ) { @@ -1312,7 +1312,7 @@ public final class NBTEditor { return new NBTCompound( compound ); } - private static Object getTag( Object tag, Object... keys ) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { + private Object getTag( Object tag, Object... keys ) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { if ( keys.length == 0 ) { return getTags( tag ); } @@ -1342,7 +1342,7 @@ public final class NBTEditor { } @SuppressWarnings( "unchecked" ) - private static Object getTags( Object tag ) { + private Object getTags( Object tag ) { Map< Object, Object > tags = new HashMap< Object, Object >(); try { if ( getNMSClass( "NBTTagCompound" ).isInstance( tag ) ) { @@ -1385,7 +1385,7 @@ public final class NBTEditor { public void set( Object value, Object... keys ) { try { - setTag( tag, value, keys ); + new NBT_1_13().setTag( tag, value, keys ); } catch ( Exception e ) { e.printStackTrace(); } @@ -1401,9 +1401,9 @@ public final class NBTEditor { return tag.toString(); } - public static NBTCompound fromJson( String json ) { + public static NBTCompound fromJson(String json) { try { - return new NBTCompound( getMethod( "loadNBTTagCompound" ).invoke( null, json ) ); + return new NBTCompound( new NBT_1_13().getMethod( "loadNBTTagCompound" ).invoke( null, json ) ); } catch ( IllegalAccessException | IllegalArgumentException | InvocationTargetException e ) { e.printStackTrace(); return null; @@ -1474,7 +1474,7 @@ public final class NBTEditor { return order <= other.order; } - public static MinecraftVersion get( String v ) { + public static MinecraftVersion get(String v) { for ( MinecraftVersion k : MinecraftVersion.values() ) { if ( v.contains( k.key ) ) { return k; diff --git a/src/me/rockyhawk/commandpanels/ioclasses/nbt/NBT_1_14.java b/src/me/rockyhawk/commandpanels/ioclasses/nbt/NBT_1_14.java new file mode 100644 index 0000000..a64f3f2 --- /dev/null +++ b/src/me/rockyhawk/commandpanels/ioclasses/nbt/NBT_1_14.java @@ -0,0 +1,29 @@ +package me.rockyhawk.commandpanels.ioclasses.nbt; + +import me.rockyhawk.commandpanels.CommandPanels; +import org.bukkit.NamespacedKey; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.persistence.PersistentDataType; + +public class NBT_1_14 { + CommandPanels plugin; + public NBT_1_14(CommandPanels pl) { + this.plugin = pl; + } + //NBT class for Minecraft versions 1.14+ + + public ItemStack addNBT(ItemStack item){ + NamespacedKey key = new NamespacedKey(plugin, "CommandPanelsItem"); + ItemMeta itemMeta = item.getItemMeta(); + itemMeta.getPersistentDataContainer().set(key, PersistentDataType.INTEGER, 1); + item.setItemMeta(itemMeta); + return item; + } + + public boolean hasNBT(ItemStack item){ + NamespacedKey key = new NamespacedKey(plugin, "CommandPanelsItem"); + ItemMeta itemMeta = item.getItemMeta(); + return itemMeta.getPersistentDataContainer().has(key, PersistentDataType.INTEGER); + } +} diff --git a/src/me/rockyhawk/commandpanels/legacy/LegacyVersion.java b/src/me/rockyhawk/commandpanels/legacy/LegacyVersion.java deleted file mode 100644 index 36ed440..0000000 --- a/src/me/rockyhawk/commandpanels/legacy/LegacyVersion.java +++ /dev/null @@ -1,73 +0,0 @@ -package me.rockyhawk.commandpanels.legacy; - -import me.rockyhawk.commandpanels.CommandPanels; -import me.rockyhawk.commandpanels.ioclasses.GetStorageContents; -import me.rockyhawk.commandpanels.ioclasses.GetStorageContents_Legacy; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; - -import java.util.ArrayList; - -public class LegacyVersion { - CommandPanels plugin; - public LegacyVersion(CommandPanels pl) { - this.plugin = pl; - } - - //true if 1.15 or below - public boolean isLegacyStorageContents() { - boolean output = false; - ArrayList legacyVersions = new ArrayList<>(); - legacyVersions.add("1.8"); - legacyVersions.add("1.9"); - legacyVersions.add("1.10"); - legacyVersions.add("1.11"); - legacyVersions.add("1.12"); - legacyVersions.add("1.13"); - legacyVersions.add("1.14"); - legacyVersions.add("1.15"); - for(String key : legacyVersions){ - if (Bukkit.getVersion().contains(key)) { - output = true; - break; - } - } - return output; - } - - //true if 1.12 or below - public boolean isLegacy() { - boolean output = false; - ArrayList legacyVersions = new ArrayList<>(); - legacyVersions.add("1.8"); - legacyVersions.add("1.9"); - legacyVersions.add("1.10"); - legacyVersions.add("1.11"); - legacyVersions.add("1.12"); - for(String key : legacyVersions){ - if (Bukkit.getVersion().contains(key)) { - output = true; - break; - } - } - return output; - } - - public ItemStack[] getStorageContents(Inventory i){ - if(plugin.legacy.isLegacy()){ - return new GetStorageContents_Legacy(plugin).getStorageContents(i); - }else{ - return new GetStorageContents(plugin).getStorageContents(i); - } - } - - public void setStorageContents(Player p, ItemStack[] i){ - if(plugin.legacy.isLegacyStorageContents()){ - new GetStorageContents_Legacy(plugin).setStorageContents(p,i); - }else{ - new GetStorageContents(plugin).setStorageContents(p,i); - } - } -} diff --git a/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenGUI.java b/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenGUI.java index b5b3515..ad0adff 100644 --- a/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenGUI.java +++ b/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenGUI.java @@ -2,7 +2,7 @@ package me.rockyhawk.commandpanels.openpanelsmanager; import me.rockyhawk.commandpanels.CommandPanels; import me.rockyhawk.commandpanels.api.Panel; -import me.rockyhawk.commandpanels.ioclasses.NBTEditor; +import me.rockyhawk.commandpanels.ioclasses.nbt.NBT_1_13; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; @@ -138,7 +138,7 @@ public class OpenGUI { empty = plugin.itemCreate.makeItemFromConfig(panel,pconfig.getConfigurationSection("custom-item." + pconfig.getString("empty")),p,true,true,true); }else{ empty = new ItemStack(Objects.requireNonNull(Material.matchMaterial(pconfig.getString("empty").toUpperCase())), 1,id); - empty = NBTEditor.set(empty,"CommandPanels","CommandPanels"); + empty = plugin.nbt.setNBT(empty); ItemMeta renamedMeta = empty.getItemMeta(); assert renamedMeta != null; renamedMeta.setDisplayName(" "); diff --git a/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenPanelsLoader.java b/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenPanelsLoader.java index a2e7770..c3e1f5d 100644 --- a/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenPanelsLoader.java +++ b/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenPanelsLoader.java @@ -3,7 +3,7 @@ package me.rockyhawk.commandpanels.openpanelsmanager; import me.rockyhawk.commandpanels.CommandPanels; import me.rockyhawk.commandpanels.api.Panel; import me.rockyhawk.commandpanels.api.PanelClosedEvent; -import me.rockyhawk.commandpanels.ioclasses.NBTEditor; +import me.rockyhawk.commandpanels.ioclasses.nbt.NBT_1_13; import org.bukkit.Bukkit; import org.bukkit.inventory.ItemStack; @@ -114,7 +114,7 @@ public class OpenPanelsLoader { public boolean isNBTInjected(ItemStack itm){ if(itm != null){ - if (NBTEditor.contains(itm, "CommandPanels")) { + if (plugin.nbt.hasNBT(itm)) { return true; } } diff --git a/src/me/rockyhawk/commandpanels/openpanelsmanager/UtilsPanelsLoader.java b/src/me/rockyhawk/commandpanels/openpanelsmanager/UtilsPanelsLoader.java index d299ebe..c1b668a 100644 --- a/src/me/rockyhawk/commandpanels/openpanelsmanager/UtilsPanelsLoader.java +++ b/src/me/rockyhawk/commandpanels/openpanelsmanager/UtilsPanelsLoader.java @@ -3,7 +3,7 @@ package me.rockyhawk.commandpanels.openpanelsmanager; import me.rockyhawk.commandpanels.CommandPanels; import me.rockyhawk.commandpanels.api.Panel; import me.rockyhawk.commandpanels.api.PanelClosedEvent; -import me.rockyhawk.commandpanels.ioclasses.NBTEditor; +import me.rockyhawk.commandpanels.ioclasses.nbt.NBT_1_13; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -31,7 +31,7 @@ public class UtilsPanelsLoader implements Listener { p.updateInventory(); for(ItemStack itm : p.getInventory().getContents()){ if(itm != null){ - if (NBTEditor.contains(itm, "CommandPanels")) { + if (plugin.nbt.hasNBT(itm)) { p.getInventory().remove(itm); } } diff --git a/src/me/rockyhawk/commandpanels/openwithitem/UtilsOpenWithItem.java b/src/me/rockyhawk/commandpanels/openwithitem/UtilsOpenWithItem.java index 236d0db..771c0b9 100644 --- a/src/me/rockyhawk/commandpanels/openwithitem/UtilsOpenWithItem.java +++ b/src/me/rockyhawk/commandpanels/openwithitem/UtilsOpenWithItem.java @@ -35,6 +35,10 @@ public class UtilsOpenWithItem implements Listener { //get the item clicked, then loop through panel names after action isn't nothing if(e.getAction() == InventoryAction.NOTHING){return;} if(e.getSlot() == -999){return;} + if(e.getClickedInventory() == null) { + //skip if null to stop errors + return; + } if(e.getClickedInventory().getType() == InventoryType.PLAYER) { if (plugin.hotbar.stationaryExecute(e.getSlot(), p, true)) { e.setCancelled(true);