From 1783fa18acdb7aad02d11acf8a3d7731783b8b62 Mon Sep 17 00:00:00 2001 From: jascotty2 Date: Mon, 9 Sep 2019 09:09:49 -0500 Subject: [PATCH] BREAKING: refactored LegacyMaterials -> CompatibleMaterial --- .../java/com/songoda/core/SongodaCore.java | 42 +++++----- ...Materials.java => CompatibleMaterial.java} | 50 ++++++------ ...er.java => CompatibleParticleHandler.java} | 2 +- ...atibleSounds.java => CompatibleSound.java} | 10 +-- ...ouges.java => LegacyMaterialAnalouge.java} | 26 +++---- .../core/compatibility/ServerProject.java | 2 +- .../core/compatibility/ServerVersion.java | 10 +-- .../ConfigFileConfigurationAdapter.java | 7 +- .../core/configuration/ConfigSection.java | 10 +-- .../core/configuration/ConfigSetting.java | 12 +-- .../configuration/editor/ConfigEditorGui.java | 38 ++++----- .../editor/ConfigEditorListEditorGui.java | 15 ++-- .../configuration/editor/PluginConfigGui.java | 10 +-- .../com/songoda/core/core/PluginInfo.java | 6 +- .../core/core/SongodaCoreOverviewGUI.java | 6 +- .../com/songoda/core/gui/CustomizableGui.java | 55 +++++++++---- .../java/com/songoda/core/gui/DoubleGui.java | 10 +-- src/main/java/com/songoda/core/gui/Gui.java | 52 +++++++++++-- .../java/com/songoda/core/gui/GuiManager.java | 14 ++-- .../java/com/songoda/core/gui/GuiUtils.java | 77 ++++++++++++++----- .../com/songoda/core/gui/PopupMessage.java | 8 +- .../com/songoda/core/gui/SimplePagedGui.java | 6 +- .../com/songoda/core/utils/ItemUtils.java | 16 ++-- 23 files changed, 293 insertions(+), 191 deletions(-) rename src/main/java/com/songoda/core/compatibility/{LegacyMaterials.java => CompatibleMaterial.java} (93%) rename src/main/java/com/songoda/core/compatibility/{ParticleHandler.java => CompatibleParticleHandler.java} (97%) rename src/main/java/com/songoda/core/compatibility/{CompatibleSounds.java => CompatibleSound.java} (97%) rename src/main/java/com/songoda/core/compatibility/{LegacyAnalouges.java => LegacyMaterialAnalouge.java} (93%) diff --git a/src/main/java/com/songoda/core/SongodaCore.java b/src/main/java/com/songoda/core/SongodaCore.java index 713bb1ee..6805b157 100644 --- a/src/main/java/com/songoda/core/SongodaCore.java +++ b/src/main/java/com/songoda/core/SongodaCore.java @@ -7,7 +7,7 @@ import com.songoda.core.core.SongodaCoreCommand; import com.songoda.core.core.SongodaCoreDiagCommand; import com.songoda.core.commands.CommandManager; import com.songoda.core.compatibility.ClientVersion; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleMaterial; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -62,7 +62,7 @@ public class SongodaCore { return !SongodaCore.class.getPackage().getName().equals(new String(new char[]{'c','o','m','.','s','o','n','g','o','d','a','.','c','o','r','e'})); } - public static void registerPlugin(JavaPlugin plugin, int pluginID, LegacyMaterials icon) { + public static void registerPlugin(JavaPlugin plugin, int pluginID, CompatibleMaterial icon) { registerPlugin(plugin, pluginID, icon == null ? "STONE" : icon.name()); } @@ -172,61 +172,61 @@ public class SongodaCore { PluginManager pm = Bukkit.getPluginManager(); String p; if (!isRegistered(p = "EpicAnchors") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 31, LegacyMaterials.END_PORTAL_FRAME.name()); + register((JavaPlugin) pm.getPlugin(p), 31, CompatibleMaterial.END_PORTAL_FRAME.name()); } if (!isRegistered(p = "EpicBosses") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 19, LegacyMaterials.ZOMBIE_SPAWN_EGG.name()); + register((JavaPlugin) pm.getPlugin(p), 19, CompatibleMaterial.ZOMBIE_SPAWN_EGG.name()); } if (!isRegistered(p = "EpicEnchants") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 67, LegacyMaterials.DIAMOND_SWORD.name()); + register((JavaPlugin) pm.getPlugin(p), 67, CompatibleMaterial.DIAMOND_SWORD.name()); } if (!isRegistered(p = "EpicFarming") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 21, LegacyMaterials.WHEAT.name()); + register((JavaPlugin) pm.getPlugin(p), 21, CompatibleMaterial.WHEAT.name()); } if (!isRegistered(p = "EpicFurnaces") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 22, LegacyMaterials.FURNACE.name()); + register((JavaPlugin) pm.getPlugin(p), 22, CompatibleMaterial.FURNACE.name()); } if (!isRegistered(p = "EpicHeads") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 26, LegacyMaterials.PLAYER_HEAD.name()); + register((JavaPlugin) pm.getPlugin(p), 26, CompatibleMaterial.PLAYER_HEAD.name()); } if (!isRegistered(p = "EpicHoppers") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 15, LegacyMaterials.HOPPER.name()); + register((JavaPlugin) pm.getPlugin(p), 15, CompatibleMaterial.HOPPER.name()); } if (!isRegistered(p = "EpicLevels") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 44, LegacyMaterials.NETHER_STAR.name()); + register((JavaPlugin) pm.getPlugin(p), 44, CompatibleMaterial.NETHER_STAR.name()); } if (!isRegistered(p = "EpicSpawners") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 13, LegacyMaterials.SPAWNER.name()); + register((JavaPlugin) pm.getPlugin(p), 13, CompatibleMaterial.SPAWNER.name()); } if (!isRegistered(p = "EpicVouchers") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 25, LegacyMaterials.EMERALD.name()); + register((JavaPlugin) pm.getPlugin(p), 25, CompatibleMaterial.EMERALD.name()); } if (!isRegistered(p = "FabledSkyBlock") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 17, LegacyMaterials.GRASS_BLOCK.name()); + register((JavaPlugin) pm.getPlugin(p), 17, CompatibleMaterial.GRASS_BLOCK.name()); } if (!isRegistered(p = "UltimateCatcher") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 51, LegacyMaterials.EGG.name()); + register((JavaPlugin) pm.getPlugin(p), 51, CompatibleMaterial.EGG.name()); } if (!isRegistered(p = "UltimateClaims") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 65, LegacyMaterials.CHEST.name()); + register((JavaPlugin) pm.getPlugin(p), 65, CompatibleMaterial.CHEST.name()); } if (!isRegistered(p = "UltimateFishing") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 59, LegacyMaterials.COD.name()); + register((JavaPlugin) pm.getPlugin(p), 59, CompatibleMaterial.COD.name()); } if (!isRegistered(p = "UltimateKits") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 14, LegacyMaterials.BEACON.name()); + register((JavaPlugin) pm.getPlugin(p), 14, CompatibleMaterial.BEACON.name()); } if (!isRegistered(p = "UltimateModeration") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 29, LegacyMaterials.DIAMOND_CHESTPLATE.name()); + register((JavaPlugin) pm.getPlugin(p), 29, CompatibleMaterial.DIAMOND_CHESTPLATE.name()); } if (!isRegistered(p = "UltimateRepairing") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 20, LegacyMaterials.ANVIL.name()); + register((JavaPlugin) pm.getPlugin(p), 20, CompatibleMaterial.ANVIL.name()); } if (!isRegistered(p = "UltimateStacker") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 16, LegacyMaterials.IRON_INGOT.name()); + register((JavaPlugin) pm.getPlugin(p), 16, CompatibleMaterial.IRON_INGOT.name()); } if (!isRegistered(p = "UltimateTimber") && pm.isPluginEnabled(p)) { - register((JavaPlugin) pm.getPlugin(p), 18, LegacyMaterials.IRON_AXE.name()); + register((JavaPlugin) pm.getPlugin(p), 18, CompatibleMaterial.IRON_AXE.name()); } } diff --git a/src/main/java/com/songoda/core/compatibility/LegacyMaterials.java b/src/main/java/com/songoda/core/compatibility/CompatibleMaterial.java similarity index 93% rename from src/main/java/com/songoda/core/compatibility/LegacyMaterials.java rename to src/main/java/com/songoda/core/compatibility/CompatibleMaterial.java index 39940d1e..c6b19b31 100644 --- a/src/main/java/com/songoda/core/compatibility/LegacyMaterials.java +++ b/src/main/java/com/songoda/core/compatibility/CompatibleMaterial.java @@ -14,7 +14,7 @@ import org.bukkit.inventory.ItemStack; * @since 2019-08-23 * @author jascotty2 */ -public enum LegacyMaterials { +public enum CompatibleMaterial { /* TODO: add another handler for getBlockItem() for materials and fallback materials @@ -1008,7 +1008,7 @@ public enum LegacyMaterials { ZOMBIE_WALL_HEAD("SKULL", (byte) 2),; private final String modern, modern2, legacy; - private final LegacyAnalouges compatibleMaterial; + private final LegacyMaterialAnalouge compatibleMaterial; private final boolean legacyRequiresData; // some materials (I'm looking at you, GREEN_DYE) have changed ID more than once // minVersion is the min for modern, and minVersion2 is min to use legacyCompat1 @@ -1019,43 +1019,43 @@ public enum LegacyMaterials { // quick test to see if our version is < 1.13 protected static final boolean useLegacy = ServerVersion.isServerVersionBelow(ServerVersion.V1_13); // map to speed up name->material lookups - private static final Map lookupMap = new HashMap(); + private static final Map lookupMap = new HashMap(); static { - for (LegacyMaterials m : values()) { + for (CompatibleMaterial m : values()) { lookupMap.put(m.name(), m); if (!m.usesCompatibility()) { lookupMap.put(m.material + ":" + (m.data == null ? "" : m.data), m); } } - for (LegacyMaterials m : values()) { + for (CompatibleMaterial m : values()) { if (!m.usesCompatibility() && !lookupMap.containsKey(m.legacy)) { lookupMap.put(m.legacy, m); } } } - LegacyMaterials() { + CompatibleMaterial() { this(ServerVersion.UNKNOWN, null, null); } - LegacyMaterials(String legacy) { + CompatibleMaterial(String legacy) { this(ServerVersion.V1_13, null, null, legacy, null); } - LegacyMaterials(String legacy, byte legacyData) { + CompatibleMaterial(String legacy, byte legacyData) { this(ServerVersion.V1_13, null, null, legacy, legacyData); } - LegacyMaterials(ServerVersion modernMinimum, String legacy) { + CompatibleMaterial(ServerVersion modernMinimum, String legacy) { this(modernMinimum, null, null, legacy, null); } - LegacyMaterials(ServerVersion modernMinimum, String legacy, Byte legacyData) { + CompatibleMaterial(ServerVersion modernMinimum, String legacy, Byte legacyData) { this(modernMinimum, null, null, legacy, legacyData); } - LegacyMaterials(ServerVersion modernMinimum, String modern2, ServerVersion modern2Minimum, String legacyMaterial, Byte legacyData) { + CompatibleMaterial(ServerVersion modernMinimum, String modern2, ServerVersion modern2Minimum, String legacyMaterial, Byte legacyData) { this.modern = name(); this.modern2 = modern2; this.minVersion = modernMinimum; @@ -1063,7 +1063,7 @@ public enum LegacyMaterials { this.legacy = legacyMaterial; this.legacyData = legacyData == null ? 0 : legacyData; this.legacyRequiresData = legacyData != null; - this.compatibleMaterial = LegacyAnalouges.lookupAnalouge(modern); + this.compatibleMaterial = LegacyMaterialAnalouge.lookupAnalouge(modern); if (compatibleMaterial != null && ServerVersion.isServerVersionBelow(compatibleMaterial.versionLessThan)) { // server older than this item: use a proxy @@ -1157,7 +1157,7 @@ public enum LegacyMaterials { * @param name item to lookup * @return LegacyMaterial or null if none found */ - public static LegacyMaterials getMaterial(String name) { + public static CompatibleMaterial getMaterial(String name) { return name == null ? null : lookupMap.get(name.toUpperCase()); } @@ -1170,7 +1170,7 @@ public enum LegacyMaterials { * @param def default item if this is not a valid material * @return LegacyMaterial or null if none found */ - public static LegacyMaterials getMaterial(String name, LegacyMaterials def) { + public static CompatibleMaterial getMaterial(String name, CompatibleMaterial def) { return name == null ? def : lookupMap.getOrDefault(name.toUpperCase(), def); } @@ -1180,7 +1180,7 @@ public enum LegacyMaterials { * @param mat item to lookup * @return LegacyMaterial or null if none found */ - public static LegacyMaterials getMaterial(Material mat) { + public static CompatibleMaterial getMaterial(Material mat) { return mat == null ? null : lookupMap.get(mat.name()); } @@ -1190,21 +1190,21 @@ public enum LegacyMaterials { * @param item item to lookup * @return LegacyMaterial or null if none found */ - public static LegacyMaterials getMaterial(ItemStack item) { + public static CompatibleMaterial getMaterial(ItemStack item) { if (item == null) { return null; } String key = item.getType() + ":"; - LegacyMaterials m = lookupMap.get(key); + CompatibleMaterial m = lookupMap.get(key); return m != null ? m : lookupMap.get(key + item.getDurability()); } - static LinkedHashSet all = null; + static LinkedHashSet all = null; - public static Set getAllValidItemMaterials() { + public static Set getAllValidItemMaterials() { if (all == null) { all = new LinkedHashSet(); - for (LegacyMaterials mat : values()) { + for (CompatibleMaterial mat : values()) { if (mat.isValidItem() && !mat.usesCompatibility()) { all.add(mat); } @@ -1226,7 +1226,7 @@ public enum LegacyMaterials { if (name == null) { return null; } - LegacyMaterials m = lookupMap.get(name.toUpperCase()); + CompatibleMaterial m = lookupMap.get(name.toUpperCase()); if (m != null) { return m.getItem(); } @@ -2030,14 +2030,14 @@ public enum LegacyMaterials { return false; } - public static LegacyMaterials getSpawnEgg(EntityType type) { + public static CompatibleMaterial getSpawnEgg(EntityType type) { if(type == EntityType.MUSHROOM_COW) { return MOOSHROOM_SPAWN_EGG; } return lookupMap.get(type.name() + "_SPAWN_EGG"); } - public static LegacyMaterials getGlassPaneColor(int color) { + public static CompatibleMaterial getGlassPaneColor(int color) { switch (color) { case 0: return WHITE_STAINED_GLASS_PANE; @@ -2075,7 +2075,7 @@ public enum LegacyMaterials { return WHITE_STAINED_GLASS_PANE; } - public static LegacyMaterials getGlassColor(int color) { + public static CompatibleMaterial getGlassColor(int color) { switch (color) { case 0: return WHITE_STAINED_GLASS; @@ -2113,7 +2113,7 @@ public enum LegacyMaterials { return WHITE_STAINED_GLASS; } - public static LegacyMaterials getDyeColor(int color) { + public static CompatibleMaterial getDyeColor(int color) { switch (color) { case 0: return BLACK_DYE; diff --git a/src/main/java/com/songoda/core/compatibility/ParticleHandler.java b/src/main/java/com/songoda/core/compatibility/CompatibleParticleHandler.java similarity index 97% rename from src/main/java/com/songoda/core/compatibility/ParticleHandler.java rename to src/main/java/com/songoda/core/compatibility/CompatibleParticleHandler.java index 10d10001..9c761936 100644 --- a/src/main/java/com/songoda/core/compatibility/ParticleHandler.java +++ b/src/main/java/com/songoda/core/compatibility/CompatibleParticleHandler.java @@ -9,7 +9,7 @@ import org.bukkit.Location; import org.bukkit.Particle; import org.bukkit.block.BlockFace; -public class ParticleHandler { +public class CompatibleParticleHandler { public static enum ParticleType { EXPLOSION_NORMAL(), diff --git a/src/main/java/com/songoda/core/compatibility/CompatibleSounds.java b/src/main/java/com/songoda/core/compatibility/CompatibleSound.java similarity index 97% rename from src/main/java/com/songoda/core/compatibility/CompatibleSounds.java rename to src/main/java/com/songoda/core/compatibility/CompatibleSound.java index 47968539..2f2179cc 100644 --- a/src/main/java/com/songoda/core/compatibility/CompatibleSounds.java +++ b/src/main/java/com/songoda/core/compatibility/CompatibleSound.java @@ -14,7 +14,7 @@ import org.bukkit.Sound; * @since 2019-08-25 * @author jascotty2 */ -public enum CompatibleSounds { +public enum CompatibleSound { // some of these values are missing an API value.. // would using the raw strings be better? @@ -820,7 +820,7 @@ public enum CompatibleSounds { protected /*final*/ boolean compatibilityMode; protected static final boolean DEBUG = false; - private CompatibleSounds() { + private CompatibleSound() { // This could get risky, since we haven't finished this //sound = Sound.valueOf(name()); Sound find = null; @@ -838,7 +838,7 @@ public enum CompatibleSounds { } // if the sound ony ever changed from 1.8 -> 1.9 - private CompatibleSounds(String compatibility_18) { + private CompatibleSound(String compatibility_18) { try { compatibilityMode = false; if (ServerVersion.isServerVersionBelow(ServerVersion.V1_9)) { @@ -852,7 +852,7 @@ public enum CompatibleSounds { } } - private CompatibleSounds(Version... versions) { + private CompatibleSound(Version... versions) { try { for (Version v : versions) { if (v.sound != null && ServerVersion.isServerVersionAtLeast(v.version)) { @@ -880,7 +880,7 @@ public enum CompatibleSounds { compatibilityMode = find == null; } - private CompatibleSounds(ServerVersion minVersion, Version... versions) { + private CompatibleSound(ServerVersion minVersion, Version... versions) { try { if (ServerVersion.isServerVersionAtLeast(minVersion)) { // should be good to use this sound diff --git a/src/main/java/com/songoda/core/compatibility/LegacyAnalouges.java b/src/main/java/com/songoda/core/compatibility/LegacyMaterialAnalouge.java similarity index 93% rename from src/main/java/com/songoda/core/compatibility/LegacyAnalouges.java rename to src/main/java/com/songoda/core/compatibility/LegacyMaterialAnalouge.java index 9d171e4d..b457b954 100644 --- a/src/main/java/com/songoda/core/compatibility/LegacyAnalouges.java +++ b/src/main/java/com/songoda/core/compatibility/LegacyMaterialAnalouge.java @@ -10,7 +10,7 @@ import org.bukkit.inventory.ItemStack; * @since 2019-08-23 * @author jascotty2 */ -public enum LegacyAnalouges { +public enum LegacyMaterialAnalouge { ACACIA_BOAT(ServerVersion.V1_9, "BOAT"), ACACIA_BUTTON(ServerVersion.V1_13, "WOOD_BUTTON"), @@ -486,47 +486,47 @@ public enum LegacyAnalouges { final Byte data; // map to speed up name->material lookups - private static final Map lookupMap = new HashMap(); + private static final Map lookupMap = new HashMap(); static { - for (LegacyAnalouges m : values()) { + for (LegacyMaterialAnalouge m : values()) { lookupMap.put(m.name(), m); } } - public static LegacyAnalouges lookupAnalouge(String material) { + public static LegacyMaterialAnalouge lookupAnalouge(String material) { return lookupMap.get(material); } - private LegacyAnalouges(ServerVersion versionLessThan, String legacyMaterial, byte legacyData) { + private LegacyMaterialAnalouge(ServerVersion versionLessThan, String legacyMaterial, byte legacyData) { this(versionLessThan, null, legacyMaterial, legacyData, null, null, null); } - private LegacyAnalouges(ServerVersion versionLessThan, String legacyMaterial) { + private LegacyMaterialAnalouge(ServerVersion versionLessThan, String legacyMaterial) { this(versionLessThan, null, legacyMaterial, null, null, null, null); } - private LegacyAnalouges(ServerVersion versionLessThan, String modernAnalouge, String legacyMaterial) { + private LegacyMaterialAnalouge(ServerVersion versionLessThan, String modernAnalouge, String legacyMaterial) { this(versionLessThan, modernAnalouge, legacyMaterial, null, null, null, null); } - private LegacyAnalouges(ServerVersion versionLessThan, String modernAnalouge, String legacyMaterial, byte legacyData) { + private LegacyMaterialAnalouge(ServerVersion versionLessThan, String modernAnalouge, String legacyMaterial, byte legacyData) { this(versionLessThan, modernAnalouge, legacyMaterial, legacyData, null, null, null); } - private LegacyAnalouges(ServerVersion versionLessThan, String legacyMaterial, byte legacyData, ServerVersion legacyMinimum, String compatMaterial, byte compatData) { + private LegacyMaterialAnalouge(ServerVersion versionLessThan, String legacyMaterial, byte legacyData, ServerVersion legacyMinimum, String compatMaterial, byte compatData) { this(versionLessThan, null, legacyMaterial, legacyData, legacyMinimum, compatMaterial, compatData); } - private LegacyAnalouges(ServerVersion versionLessThan, String legacyMaterial, ServerVersion legacyMinimum, String compatMaterial, byte compatData) { + private LegacyMaterialAnalouge(ServerVersion versionLessThan, String legacyMaterial, ServerVersion legacyMinimum, String compatMaterial, byte compatData) { this(versionLessThan, null, legacyMaterial, null, legacyMinimum, compatMaterial, compatData); } - private LegacyAnalouges(ServerVersion versionLessThan, String legacyMaterial, byte legacyData, ServerVersion legacyMinimum, String compatMaterial) { + private LegacyMaterialAnalouge(ServerVersion versionLessThan, String legacyMaterial, byte legacyData, ServerVersion legacyMinimum, String compatMaterial) { this(versionLessThan, null, legacyMaterial, legacyData, legacyMinimum, compatMaterial, null); } - private LegacyAnalouges(ServerVersion versionLessThan, String legacyMaterial, ServerVersion legacyMinimum, String compatMaterial) { + private LegacyMaterialAnalouge(ServerVersion versionLessThan, String legacyMaterial, ServerVersion legacyMinimum, String compatMaterial) { this(versionLessThan, null, legacyMaterial, null, legacyMinimum, compatMaterial, null); } @@ -537,7 +537,7 @@ public enum LegacyAnalouges { * @param legacyMaterial pre-1.13 material name * @param legacyData data for defining specific legacy items */ - private LegacyAnalouges(ServerVersion versionLessThan, String modernAnalouge, String legacyMaterial, Byte legacyData, ServerVersion legacyMinimum, String compatMaterial, Byte compatData) { + private LegacyMaterialAnalouge(ServerVersion versionLessThan, String modernAnalouge, String legacyMaterial, Byte legacyData, ServerVersion legacyMinimum, String compatMaterial, Byte compatData) { this.versionLessThan = versionLessThan; this.modernMaterial = modernAnalouge; this.legacyMaterial = legacyMaterial; diff --git a/src/main/java/com/songoda/core/compatibility/ServerProject.java b/src/main/java/com/songoda/core/compatibility/ServerProject.java index 82f20df0..e421cc5e 100644 --- a/src/main/java/com/songoda/core/compatibility/ServerProject.java +++ b/src/main/java/com/songoda/core/compatibility/ServerProject.java @@ -6,7 +6,7 @@ import org.bukkit.Bukkit; public enum ServerProject { UNKNOWN, CRAFTBUKKIT, SPIGOT, PAPER, TACO, GLOWSTONE; - private static ServerProject serverProject = checkProject(); + private final static ServerProject serverProject = checkProject(); private static ServerProject checkProject() { String serverPath = Bukkit.getServer().getClass().getName(); diff --git a/src/main/java/com/songoda/core/compatibility/ServerVersion.java b/src/main/java/com/songoda/core/compatibility/ServerVersion.java index bb220220..a7326861 100644 --- a/src/main/java/com/songoda/core/compatibility/ServerVersion.java +++ b/src/main/java/com/songoda/core/compatibility/ServerVersion.java @@ -9,16 +9,16 @@ public enum ServerVersion { private final static String serverPackagePath = Bukkit.getServer().getClass().getPackage().getName(); private final static String serverPackageVersion = serverPackagePath.substring(serverPackagePath.lastIndexOf('.') + 1); - private static ServerVersion serverVersion = UNKNOWN; - private static String serverReleaseVersion; + private final static String serverReleaseVersion = serverPackageVersion.indexOf('R') != -1 ? serverPackageVersion.substring(serverPackageVersion.indexOf('R') + 1) : ""; + private final static ServerVersion serverVersion = getVersion(); - static { + private static ServerVersion getVersion() { for (ServerVersion version : values()) { if (serverPackageVersion.toUpperCase().startsWith(version.name())) { - serverVersion = version; - serverReleaseVersion = serverPackageVersion.substring(version.name().length() + 2); + return version; } } + return UNKNOWN; } public boolean isLessThan(ServerVersion other) { diff --git a/src/main/java/com/songoda/core/configuration/ConfigFileConfigurationAdapter.java b/src/main/java/com/songoda/core/configuration/ConfigFileConfigurationAdapter.java index 7dbd19e0..c076cc8c 100644 --- a/src/main/java/com/songoda/core/configuration/ConfigFileConfigurationAdapter.java +++ b/src/main/java/com/songoda/core/configuration/ConfigFileConfigurationAdapter.java @@ -1,7 +1,6 @@ package com.songoda.core.configuration; -import com.songoda.core.compatibility.LegacyMaterials; -import java.util.Arrays; +import com.songoda.core.compatibility.CompatibleMaterial; import java.util.List; import java.util.Map; import java.util.Set; @@ -257,12 +256,12 @@ public class ConfigFileConfigurationAdapter extends FileConfiguration { } @Nullable - public LegacyMaterials getMaterial(@NotNull String path) { + public CompatibleMaterial getMaterial(@NotNull String path) { return config.getMaterial(path); } @Nullable - public LegacyMaterials getMaterial(@NotNull String path, @Nullable LegacyMaterials def) { + public CompatibleMaterial getMaterial(@NotNull String path, @Nullable CompatibleMaterial def) { return config.getMaterial(path, def); } diff --git a/src/main/java/com/songoda/core/configuration/ConfigSection.java b/src/main/java/com/songoda/core/configuration/ConfigSection.java index baf7f45c..4a25576c 100644 --- a/src/main/java/com/songoda/core/configuration/ConfigSection.java +++ b/src/main/java/com/songoda/core/configuration/ConfigSection.java @@ -1,6 +1,6 @@ package com.songoda.core.configuration; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleMaterial; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -631,16 +631,16 @@ public class ConfigSection extends MemoryConfiguration { } @Nullable - public LegacyMaterials getMaterial(@NotNull String path) { + public CompatibleMaterial getMaterial(@NotNull String path) { String val = getString(path); - LegacyMaterials mat = val != null ? LegacyMaterials.getMaterial(val) : null; + CompatibleMaterial mat = val != null ? CompatibleMaterial.getMaterial(val) : null; return mat; } @Nullable - public LegacyMaterials getMaterial(@NotNull String path, @Nullable LegacyMaterials def) { + public CompatibleMaterial getMaterial(@NotNull String path, @Nullable CompatibleMaterial def) { String val = getString(path); - LegacyMaterials mat = val != null ? LegacyMaterials.getMaterial(val) : null; + CompatibleMaterial mat = val != null ? CompatibleMaterial.getMaterial(val) : null; return mat != null ? mat : def; } diff --git a/src/main/java/com/songoda/core/configuration/ConfigSetting.java b/src/main/java/com/songoda/core/configuration/ConfigSetting.java index 840d9a43..15d0b862 100644 --- a/src/main/java/com/songoda/core/configuration/ConfigSetting.java +++ b/src/main/java/com/songoda/core/configuration/ConfigSetting.java @@ -1,6 +1,6 @@ package com.songoda.core.configuration; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleMaterial; import java.util.List; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -105,16 +105,16 @@ public class ConfigSetting { } @NotNull - public LegacyMaterials getMaterial() { - LegacyMaterials m = getMaterial(null); - return m != null ? m : LegacyMaterials.STONE; + public CompatibleMaterial getMaterial() { + CompatibleMaterial m = getMaterial(null); + return m != null ? m : CompatibleMaterial.STONE; } @Nullable - public LegacyMaterials getMaterial(@Nullable LegacyMaterials def) { + public CompatibleMaterial getMaterial(@Nullable CompatibleMaterial def) { //return config.getMaterial(key, def); String val = config.getString(key); - LegacyMaterials mat = val != null ? LegacyMaterials.getMaterial(val) : null; + CompatibleMaterial mat = val != null ? CompatibleMaterial.getMaterial(val) : null; if (mat == null) { System.out.println(String.format("Config value \"%s\" has an invalid material name: \"%s\"", key, val)); diff --git a/src/main/java/com/songoda/core/configuration/editor/ConfigEditorGui.java b/src/main/java/com/songoda/core/configuration/editor/ConfigEditorGui.java index 64d63ce5..1d226ba3 100644 --- a/src/main/java/com/songoda/core/configuration/editor/ConfigEditorGui.java +++ b/src/main/java/com/songoda/core/configuration/editor/ConfigEditorGui.java @@ -1,6 +1,6 @@ package com.songoda.core.configuration.editor; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleMaterial; import com.songoda.core.gui.Gui; import com.songoda.core.gui.GuiUtils; import com.songoda.core.gui.SimplePagedGui; @@ -49,7 +49,7 @@ public class ConfigEditorGui extends SimplePagedGui { this.file = file; this.config = config; this.node = node; - this.blankItem = GuiUtils.getBorderItem(LegacyMaterials.LIGHT_GRAY_STAINED_GLASS_PANE); + this.blankItem = GuiUtils.getBorderItem(CompatibleMaterial.LIGHT_GRAY_STAINED_GLASS_PANE); // if we have a ConfigSection, we can also grab comments try { @@ -60,10 +60,10 @@ public class ConfigEditorGui extends SimplePagedGui { // decorate header this.setTitle(ChatColor.DARK_BLUE + file); this.setUseHeader(true); - headerBackItem = footerBackItem = GuiUtils.getBorderItem(LegacyMaterials.GRAY_STAINED_GLASS_PANE.getItem()); + headerBackItem = footerBackItem = GuiUtils.getBorderItem(CompatibleMaterial.GRAY_STAINED_GLASS_PANE.getItem()); final String path = node.getCurrentPath(); - this.setItem(4, configItem(LegacyMaterials.FILLED_MAP, !path.isEmpty() ? path : file , config, !path.isEmpty() ? path : null, ChatColor.BLACK.toString())); - this.setButton(8, GuiUtils.createButtonItem(LegacyMaterials.OAK_DOOR, "Exit"), (event) -> event.player.closeInventory()); + this.setItem(4, configItem(CompatibleMaterial.FILLED_MAP, !path.isEmpty() ? path : file , config, !path.isEmpty() ? path : null, ChatColor.BLACK.toString())); + this.setButton(8, GuiUtils.createButtonItem(CompatibleMaterial.OAK_DOOR, "Exit"), (event) -> event.player.closeInventory()); // compile list of settings for (String key : node.getKeys(false)) { @@ -77,7 +77,7 @@ public class ConfigEditorGui extends SimplePagedGui { // next we need to display the config settings int index = 9; for (final String sectionKey : sections) { - setButton(index++, configItem(LegacyMaterials.WRITABLE_BOOK, ChatColor.YELLOW + sectionKey, node, sectionKey, "Click to open this section"), + setButton(index++, configItem(CompatibleMaterial.WRITABLE_BOOK, ChatColor.YELLOW + sectionKey, node, sectionKey, "Click to open this section"), (event) -> event.manager.showGUI(event.player, new ConfigEditorGui(plugin, this, file, config, node.getConfigurationSection(sectionKey)))); } @@ -87,14 +87,14 @@ public class ConfigEditorGui extends SimplePagedGui { if(val == null) continue; else if (val instanceof Boolean) { // toggle switch - setButton(index, configItem(LegacyMaterials.LEVER, ChatColor.YELLOW + settingKey, node, settingKey, String.valueOf((Boolean) val), "Click to toggle this setting"), + setButton(index, configItem(CompatibleMaterial.LEVER, ChatColor.YELLOW + settingKey, node, settingKey, String.valueOf((Boolean) val), "Click to toggle this setting"), (event) -> this.toggle(event.slot, settingKey)); if ((Boolean) val) { highlightItem(index); } } else if (isNumber(val)) { // number dial - this.setButton(index, configItem(LegacyMaterials.CLOCK, ChatColor.YELLOW + settingKey, node, settingKey, String.valueOf((Number) val), "Click to edit this setting"), + this.setButton(index, configItem(CompatibleMaterial.CLOCK, ChatColor.YELLOW + settingKey, node, settingKey, String.valueOf((Number) val), "Click to edit this setting"), (event) -> { event.gui.exit(); ChatPrompt.showPrompt(plugin, event.player, "Enter a new number value for " + settingKey + ":", response -> { @@ -107,14 +107,14 @@ public class ConfigEditorGui extends SimplePagedGui { } else if (isMaterial(val)) { // changing a block // isMaterial is more of a guess, to be honest. - setButton(index, configItem(LegacyMaterials.STONE, ChatColor.YELLOW + settingKey, node, settingKey, val.toString(), "Click to edit this setting"), + setButton(index, configItem(CompatibleMaterial.STONE, ChatColor.YELLOW + settingKey, node, settingKey, val.toString(), "Click to edit this setting"), (event) -> { SimplePagedGui paged = new SimplePagedGui(this); paged.setTitle(ChatColor.BLUE + settingKey); paged.setHeaderBackItem(headerBackItem).setFooterBackItem(footerBackItem).setDefaultItem(blankItem); - paged.setItem(4, configItem(LegacyMaterials.FILLED_MAP, settingKey, node, settingKey, "Choose an item to change this value to")); + paged.setItem(4, configItem(CompatibleMaterial.FILLED_MAP, settingKey, node, settingKey, "Choose an item to change this value to")); int i = 9; - for(LegacyMaterials mat : LegacyMaterials.getAllValidItemMaterials()) { + for(CompatibleMaterial mat : CompatibleMaterial.getAllValidItemMaterials()) { paged.setButton(i++, GuiUtils.createButtonItem(mat, mat.name()), ClickType.LEFT, (matEvent) -> { setMaterial(event.slot, settingKey, matEvent.clickedItem); matEvent.player.closeInventory(); @@ -125,7 +125,7 @@ public class ConfigEditorGui extends SimplePagedGui { } else if (val instanceof String) { // changing a "string" value (or change to a feather for writing quill) - setButton(index, configItem(LegacyMaterials.STRING, ChatColor.YELLOW + settingKey, node, settingKey, val.toString(), "Click to edit this setting"), + setButton(index, configItem(CompatibleMaterial.STRING, ChatColor.YELLOW + settingKey, node, settingKey, val.toString(), "Click to edit this setting"), (event) -> { event.gui.exit(); ChatPrompt.showPrompt(plugin, event.player, "Enter a new value for " + settingKey + ":", response -> { @@ -135,7 +135,7 @@ public class ConfigEditorGui extends SimplePagedGui { .setOnCancel(() -> {event.player.sendMessage(ChatColor.RED + "Edit canceled"); event.manager.showGUI(event.player, this);}); }); } else if (val instanceof List) { - setButton(index, configItem(LegacyMaterials.WRITABLE_BOOK, ChatColor.YELLOW + settingKey, node, settingKey, String.format("(%d values)", ((List) val).size()), "Click to edit this setting"), + setButton(index, configItem(CompatibleMaterial.WRITABLE_BOOK, ChatColor.YELLOW + settingKey, node, settingKey, String.format("(%d values)", ((List) val).size()), "Click to edit this setting"), (event) -> { event.manager.showGUI(event.player, (new ConfigEditorListEditorGui(this, settingKey, (List) val)).setOnClose((gui) -> { if(((ConfigEditorListEditorGui) gui.gui).saveChanges) { @@ -208,9 +208,9 @@ public class ConfigEditorGui extends SimplePagedGui { } void setMaterial(int clickCell, String path, ItemStack item) { - LegacyMaterials mat = LegacyMaterials.getMaterial(item); + CompatibleMaterial mat = CompatibleMaterial.getMaterial(item); if (mat == null) { - node.set(path, LegacyMaterials.STONE.name()); + node.set(path, CompatibleMaterial.STONE.name()); } else { node.set(path, mat.name()); } @@ -244,12 +244,12 @@ public class ConfigEditorGui extends SimplePagedGui { } private boolean isMaterial(Object value) { - LegacyMaterials m; + CompatibleMaterial m; return value instanceof String && value.toString().equals(value.toString().toUpperCase()) - && (m = LegacyMaterials.getMaterial(value.toString())) != null && m.isValidItem(); + && (m = CompatibleMaterial.getMaterial(value.toString())) != null && m.isValidItem(); } - protected ItemStack configItem(LegacyMaterials type, String name, ConfigurationSection node, String path, String def) { + protected ItemStack configItem(CompatibleMaterial type, String name, ConfigurationSection node, String path, String def) { String[] info = null; if (configSection_getCommentString != null) { try { @@ -263,7 +263,7 @@ public class ConfigEditorGui extends SimplePagedGui { return GuiUtils.createButtonItem(type, name, info != null ? info : (def != null ? def.split("\n") : null)); } - protected ItemStack configItem(LegacyMaterials type, String name, ConfigurationSection node, String path, String value, String def) { + protected ItemStack configItem(CompatibleMaterial type, String name, ConfigurationSection node, String path, String value, String def) { if(value == null) value = ""; String[] info = null; if (configSection_getCommentString != null) { diff --git a/src/main/java/com/songoda/core/configuration/editor/ConfigEditorListEditorGui.java b/src/main/java/com/songoda/core/configuration/editor/ConfigEditorListEditorGui.java index c1d9495e..c3904f34 100644 --- a/src/main/java/com/songoda/core/configuration/editor/ConfigEditorListEditorGui.java +++ b/src/main/java/com/songoda/core/configuration/editor/ConfigEditorListEditorGui.java @@ -1,12 +1,11 @@ package com.songoda.core.configuration.editor; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleMaterial; import com.songoda.core.gui.GuiUtils; import com.songoda.core.gui.SimplePagedGui; import com.songoda.core.input.ChatPrompt; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import org.bukkit.ChatColor; import org.bukkit.event.inventory.ClickType; @@ -30,16 +29,16 @@ public class ConfigEditorListEditorGui extends SimplePagedGui { headerBackItem = footerBackItem = current.getHeaderBackItem(); setTitle(ChatColor.DARK_BLUE + "String List Editor"); this.setUseHeader(true); - this.setItem(4, current.configItem(LegacyMaterials.FILLED_MAP, key, current.getCurrentNode(), key, null)); - this.setButton(8, GuiUtils.createButtonItem(LegacyMaterials.OAK_DOOR, "Exit"), (event) -> event.player.closeInventory()); + this.setItem(4, current.configItem(CompatibleMaterial.FILLED_MAP, key, current.getCurrentNode(), key, null)); + this.setButton(8, GuiUtils.createButtonItem(CompatibleMaterial.OAK_DOOR, "Exit"), (event) -> event.player.closeInventory()); this.values = new ArrayList(val); - this.setButton(8, GuiUtils.createButtonItem(LegacyMaterials.LAVA_BUCKET, ChatColor.RED + "Discard Changes"), (event) -> event.player.closeInventory()); - this.setButton(0, GuiUtils.createButtonItem(LegacyMaterials.REDSTONE, ChatColor.GREEN + "Save"), (event) -> { + this.setButton(8, GuiUtils.createButtonItem(CompatibleMaterial.LAVA_BUCKET, ChatColor.RED + "Discard Changes"), (event) -> event.player.closeInventory()); + this.setButton(0, GuiUtils.createButtonItem(CompatibleMaterial.REDSTONE, ChatColor.GREEN + "Save"), (event) -> { saveChanges = true; event.player.closeInventory(); }); - this.setButton(1, GuiUtils.createButtonItem(LegacyMaterials.CHEST, ChatColor.BLUE + "Add Item"), + this.setButton(1, GuiUtils.createButtonItem(CompatibleMaterial.CHEST, ChatColor.BLUE + "Add Item"), (event) -> { event.gui.exit(); ChatPrompt.showPrompt(event.manager.getPlugin(), event.player, "Enter a new value to add:", response -> { @@ -68,7 +67,7 @@ public class ConfigEditorListEditorGui extends SimplePagedGui { int i = 9; for (String item : values) { final int index = i - 9; - setButton(i++, GuiUtils.createButtonItem(LegacyMaterials.PAPER, item, "Right-click to remove"), ClickType.RIGHT, (event) -> { + setButton(i++, GuiUtils.createButtonItem(CompatibleMaterial.PAPER, item, "Right-click to remove"), ClickType.RIGHT, (event) -> { values.remove(index); redraw(); }); diff --git a/src/main/java/com/songoda/core/configuration/editor/PluginConfigGui.java b/src/main/java/com/songoda/core/configuration/editor/PluginConfigGui.java index bccaac59..b980cb38 100644 --- a/src/main/java/com/songoda/core/configuration/editor/PluginConfigGui.java +++ b/src/main/java/com/songoda/core/configuration/editor/PluginConfigGui.java @@ -1,7 +1,7 @@ package com.songoda.core.configuration.editor; import com.songoda.core.SongodaPlugin; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleMaterial; import com.songoda.core.configuration.Config; import com.songoda.core.gui.Gui; import com.songoda.core.gui.GuiUtils; @@ -79,18 +79,18 @@ public class PluginConfigGui extends SimplePagedGui { } private void init() { - this.blankItem = GuiUtils.getBorderItem(LegacyMaterials.LIGHT_GRAY_STAINED_GLASS_PANE); + this.blankItem = GuiUtils.getBorderItem(CompatibleMaterial.LIGHT_GRAY_STAINED_GLASS_PANE); // decorate header this.setTitle(ChatColor.DARK_BLUE + plugin.getName() + " Plugin Config"); this.setUseHeader(true); - headerBackItem = footerBackItem = GuiUtils.getBorderItem(LegacyMaterials.GRAY_STAINED_GLASS_PANE.getItem()); - this.setButton(8, GuiUtils.createButtonItem(LegacyMaterials.OAK_DOOR, "Exit"), (event) -> event.player.closeInventory()); + headerBackItem = footerBackItem = GuiUtils.getBorderItem(CompatibleMaterial.GRAY_STAINED_GLASS_PANE.getItem()); + this.setButton(8, GuiUtils.createButtonItem(CompatibleMaterial.OAK_DOOR, "Exit"), (event) -> event.player.closeInventory()); // List out all config files that this plugin has int i = 9; for (Map.Entry config : configs.entrySet()) { - this.setButton(i++, GuiUtils.createButtonItem(LegacyMaterials.BOOK, ChatColor.YELLOW + config.getKey(), "Click to edit this config"), + this.setButton(i++, GuiUtils.createButtonItem(CompatibleMaterial.BOOK, ChatColor.YELLOW + config.getKey(), "Click to edit this config"), (event) -> event.manager.showGUI(event.player, new ConfigEditorGui(plugin, this, config.getKey(), config.getValue()))); } } diff --git a/src/main/java/com/songoda/core/core/PluginInfo.java b/src/main/java/com/songoda/core/core/PluginInfo.java index 24018cfe..3712b6aa 100644 --- a/src/main/java/com/songoda/core/core/PluginInfo.java +++ b/src/main/java/com/songoda/core/core/PluginInfo.java @@ -1,6 +1,6 @@ package com.songoda.core.core; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleMaterial; import org.bukkit.plugin.java.JavaPlugin; import org.json.simple.JSONObject; @@ -13,7 +13,7 @@ public final class PluginInfo { protected final JavaPlugin javaPlugin; protected final int songodaId; protected final String coreIcon; - protected final LegacyMaterials icon; + protected final CompatibleMaterial icon; private final List modules = new ArrayList<>(); private boolean hasUpdate = false; private String latestVersion; @@ -26,7 +26,7 @@ public final class PluginInfo { this.javaPlugin = javaPlugin; this.songodaId = songodaId; this.coreIcon = icon; - this.icon = LegacyMaterials.getMaterial(icon); + this.icon = CompatibleMaterial.getMaterial(icon); } public String getLatestVersion() { diff --git a/src/main/java/com/songoda/core/core/SongodaCoreOverviewGUI.java b/src/main/java/com/songoda/core/core/SongodaCoreOverviewGUI.java index 0c4d84e9..35e2799c 100644 --- a/src/main/java/com/songoda/core/core/SongodaCoreOverviewGUI.java +++ b/src/main/java/com/songoda/core/core/SongodaCoreOverviewGUI.java @@ -1,7 +1,7 @@ package com.songoda.core.core; import com.songoda.core.SongodaCore; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleMaterial; import com.songoda.core.configuration.editor.PluginConfigGui; import com.songoda.core.gui.Gui; import com.songoda.core.gui.GuiUtils; @@ -23,7 +23,7 @@ final class SongodaCoreOverviewGUI extends Gui { for (int i = 0; i < plugins.size(); i++) { final PluginInfo plugin = plugins.get(i); if (plugin.hasUpdate()) { - setButton(i, GuiUtils.createButtonItem(plugin.icon != null ? plugin.icon : LegacyMaterials.STONE, + setButton(i, GuiUtils.createButtonItem(plugin.icon != null ? plugin.icon : CompatibleMaterial.STONE, ChatColor.GOLD + plugin.getJavaPlugin().getName(), ChatColor.GRAY + "Latest Version: " + plugin.getLatestVersion(), ChatColor.GRAY + "Installed Version: " + plugin.getJavaPlugin().getDescription().getVersion(), @@ -38,7 +38,7 @@ final class SongodaCoreOverviewGUI extends Gui { setAction(i, ClickType.RIGHT, (event) -> event.manager.showGUI(event.player, new PluginConfigGui(plugin.getJavaPlugin(), event.gui))); highlightItem(i); } else { - setButton(i, GuiUtils.createButtonItem(plugin.icon != null ? plugin.icon : LegacyMaterials.STONE, + setButton(i, GuiUtils.createButtonItem(plugin.icon != null ? plugin.icon : CompatibleMaterial.STONE, ChatColor.GOLD + plugin.getJavaPlugin().getName(), ChatColor.GRAY + "Installed Version: " + plugin.getJavaPlugin().getDescription().getVersion(), "", diff --git a/src/main/java/com/songoda/core/gui/CustomizableGui.java b/src/main/java/com/songoda/core/gui/CustomizableGui.java index 777b6477..1afb1431 100644 --- a/src/main/java/com/songoda/core/gui/CustomizableGui.java +++ b/src/main/java/com/songoda/core/gui/CustomizableGui.java @@ -1,6 +1,6 @@ package com.songoda.core.gui; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleMaterial; import com.songoda.core.configuration.DataStoreObject; import com.songoda.core.configuration.SimpleDataStore; import com.songoda.core.gui.methods.Clickable; @@ -52,7 +52,7 @@ public class CustomizableGui extends Gui { @Override public CustomizableGui setDefaultItem(ItemStack item) { if ((blankItem = item) != null) { - buttons.put("__DEFAULT__", (new CustomButton("__DEFAULT__")).setIcon(LegacyMaterials.getMaterial(item))); + buttons.put("__DEFAULT__", (new CustomButton("__DEFAULT__")).setIcon(CompatibleMaterial.getMaterial(item))); } return this; } @@ -72,7 +72,7 @@ public class CustomizableGui extends Gui { public CustomizableGui setItem(int defaultCell, @NotNull String key, @NotNull ItemStack item) { CustomButton btn = key == null ? null : buttons.get(key = key.toLowerCase()); if (btn == null) { - buttons.put(key, btn = (new CustomButton(key, defaultCell)).setIcon(LegacyMaterials.getMaterial(item))); + buttons.put(key, btn = (new CustomButton(key, defaultCell)).setIcon(CompatibleMaterial.getMaterial(item))); } else { ItemStack btnItem = btn.icon.getItem(); ItemMeta itemMeta = item.getItemMeta(); @@ -92,13 +92,13 @@ public class CustomizableGui extends Gui { } @NotNull - public CustomizableGui setItem(int defaultRow, int defaultCol, @NotNull String key, @NotNull LegacyMaterials defaultItem, @NotNull String title, @NotNull String... lore) { + public CustomizableGui setItem(int defaultRow, int defaultCol, @NotNull String key, @NotNull CompatibleMaterial defaultItem, @NotNull String title, @NotNull String... lore) { final int cell = defaultCol + defaultRow * 9; return setItem(cell, key, defaultItem, title, lore); } @NotNull - public CustomizableGui setItem(int defaultCell, @NotNull String key, @NotNull LegacyMaterials defaultItem, @NotNull String title, @NotNull String... lore) { + public CustomizableGui setItem(int defaultCell, @NotNull String key, @NotNull CompatibleMaterial defaultItem, @NotNull String title, @NotNull String... lore) { CustomButton btn = key == null ? null : buttons.get(key = key.toLowerCase()); if (btn == null) { buttons.put(key, btn = (new CustomButton(key, defaultCell)).setIcon(defaultItem)); @@ -129,6 +129,33 @@ public class CustomizableGui extends Gui { return this; } + @NotNull + public Gui updateItemLore(@NotNull String key, @NotNull String... lore) { + CustomButton btn = key == null ? null : buttons.get(key.toLowerCase()); + if (btn != null) { + this.updateItemLore(btn.position, lore); + } + return this; + } + + @NotNull + public Gui updateItemLore(@NotNull String key, @Nullable List lore) { + CustomButton btn = key == null ? null : buttons.get(key.toLowerCase()); + if (btn != null) { + this.updateItemLore(btn.position, lore); + } + return this; + } + + @NotNull + public Gui updateItemName(@NotNull String key, @Nullable String name) { + CustomButton btn = key == null ? null : buttons.get(key.toLowerCase()); + if (btn != null) { + this.updateItemName(btn.position, title); + } + return this; + } + @NotNull public CustomizableGui updateItem(@NotNull String key, @Nullable String title, @NotNull String... lore) { CustomButton btn = key == null ? null : buttons.get(key.toLowerCase()); @@ -148,7 +175,7 @@ public class CustomizableGui extends Gui { } @NotNull - public CustomizableGui updateItem(@NotNull String key, @NotNull LegacyMaterials itemTo, @NotNull String title, @NotNull String... lore) { + public CustomizableGui updateItem(@NotNull String key, @NotNull CompatibleMaterial itemTo, @NotNull String title, @NotNull String... lore) { CustomButton btn = key == null ? null : buttons.get(key.toLowerCase()); if (btn != null) { this.updateItem(btn.position, itemTo, title, lore); @@ -157,7 +184,7 @@ public class CustomizableGui extends Gui { } @NotNull - public CustomizableGui updateItem(@NotNull String key, @NotNull LegacyMaterials itemTo, @NotNull String title, @Nullable List lore) { + public CustomizableGui updateItem(@NotNull String key, @NotNull CompatibleMaterial itemTo, @NotNull String title, @Nullable List lore) { CustomButton btn = key == null ? null : buttons.get(key.toLowerCase()); if (btn != null) { this.updateItem(btn.position, itemTo, title, lore); @@ -224,7 +251,7 @@ public class CustomizableGui extends Gui { public CustomizableGui setNextPage(int cell, @NotNull ItemStack item) { CustomButton btn = buttons.get("__NEXT__"); if (btn == null) { - buttons.put("__NEXT__", btn = (new CustomButton("__NEXT__", cell)).setIcon(LegacyMaterials.getMaterial(item))); + buttons.put("__NEXT__", btn = (new CustomButton("__NEXT__", cell)).setIcon(CompatibleMaterial.getMaterial(item))); } else { ItemStack btnItem = btn.icon.getItem(); ItemMeta itemMeta = item.getItemMeta(); @@ -250,7 +277,7 @@ public class CustomizableGui extends Gui { public CustomizableGui setPrevPage(int cell, @NotNull ItemStack item) { CustomButton btn = buttons.get("__PREV__"); if (btn == null) { - buttons.put("__PREV__", btn = (new CustomButton("__PREV__", cell)).setIcon(LegacyMaterials.getMaterial(item))); + buttons.put("__PREV__", btn = (new CustomButton("__PREV__", cell)).setIcon(CompatibleMaterial.getMaterial(item))); } else { ItemStack btnItem = btn.icon.getItem(); ItemMeta itemMeta = item.getItemMeta(); @@ -278,7 +305,7 @@ public class CustomizableGui extends Gui { boolean _changed = false; final String key; int position = -1; - LegacyMaterials icon = LegacyMaterials.STONE; + CompatibleMaterial icon = CompatibleMaterial.STONE; public CustomButton(String key) { this.key = key; @@ -291,7 +318,7 @@ public class CustomizableGui extends Gui { public static CustomButton loadFromSection(ConfigurationSection sec) { CustomButton dat = new CustomButton(sec.getName()); - dat.icon = sec.contains("icon") ? LegacyMaterials.getMaterial(sec.getString("icon"), LegacyMaterials.STONE) : LegacyMaterials.STONE; + dat.icon = sec.contains("icon") ? CompatibleMaterial.getMaterial(sec.getString("icon"), CompatibleMaterial.STONE) : CompatibleMaterial.STONE; dat.position = sec.getInt("position"); return dat; } @@ -322,12 +349,12 @@ public class CustomizableGui extends Gui { _changed = isChanged; } - public LegacyMaterials getIcon() { + public CompatibleMaterial getIcon() { return icon; } - public CustomButton setIcon(LegacyMaterials icon) { - this.icon = icon != null ? icon : LegacyMaterials.STONE; + public CustomButton setIcon(CompatibleMaterial icon) { + this.icon = icon != null ? icon : CompatibleMaterial.STONE; _changed = true; return this; } diff --git a/src/main/java/com/songoda/core/gui/DoubleGui.java b/src/main/java/com/songoda/core/gui/DoubleGui.java index 9039c927..1dfadfc2 100644 --- a/src/main/java/com/songoda/core/gui/DoubleGui.java +++ b/src/main/java/com/songoda/core/gui/DoubleGui.java @@ -1,6 +1,6 @@ package com.songoda.core.gui; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleMaterial; import com.songoda.core.gui.events.GuiClickEvent; import com.songoda.core.gui.events.GuiDropItemEvent; import com.songoda.core.gui.methods.Clickable; @@ -378,12 +378,12 @@ public class DoubleGui extends Gui { } @Override - public DoubleGui updateItem(int row, int col, LegacyMaterials itemTo, String title, String... lore) { + public DoubleGui updateItem(int row, int col, CompatibleMaterial itemTo, String title, String... lore) { return (DoubleGui) super.updateItem(col + row * 9, itemTo, title, lore); } @Override - public DoubleGui updateItem(int cell, LegacyMaterials itemTo, String title, String... lore) { + public DoubleGui updateItem(int cell, CompatibleMaterial itemTo, String title, String... lore) { return (DoubleGui) super.updateItem(cell, itemTo, title, lore); } @@ -398,12 +398,12 @@ public class DoubleGui extends Gui { } @Override - public DoubleGui updateItem(int row, int col, LegacyMaterials itemTo, String title, List lore) { + public DoubleGui updateItem(int row, int col, CompatibleMaterial itemTo, String title, List lore) { return (DoubleGui) super.updateItem(col + row * 9, itemTo, title, lore); } @Override - public DoubleGui updateItem(int cell, LegacyMaterials itemTo, String title, List lore) { + public DoubleGui updateItem(int cell, CompatibleMaterial itemTo, String title, List lore) { return (DoubleGui) super.updateItem(cell, itemTo, title, lore); } diff --git a/src/main/java/com/songoda/core/gui/Gui.java b/src/main/java/com/songoda/core/gui/Gui.java index 2304d017..151ea1f2 100644 --- a/src/main/java/com/songoda/core/gui/Gui.java +++ b/src/main/java/com/songoda/core/gui/Gui.java @@ -1,6 +1,6 @@ package com.songoda.core.gui; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleMaterial; import com.songoda.core.gui.events.GuiClickEvent; import com.songoda.core.gui.events.GuiCloseEvent; import com.songoda.core.gui.events.GuiDropItemEvent; @@ -330,6 +330,48 @@ public class Gui { return this; } + @NotNull + public Gui updateItemLore(int row, int col, @NotNull String... lore) { + return updateItemLore(col + row * 9, lore); + } + + @NotNull + public Gui updateItemLore(int cell, @NotNull String... lore) { + ItemStack item = cellItems.get(cell); + if (item != null && item.getType() != Material.AIR) { + setItem(cell, GuiUtils.updateItemLore(item, lore)); + } + return this; + } + + @NotNull + public Gui updateItemLore(int row, int col, @Nullable List lore) { + return updateItemLore(col + row * 9, lore); + } + + @NotNull + public Gui updateItemLore(int cell, @Nullable List lore) { + ItemStack item = cellItems.get(cell); + if (item != null && item.getType() != Material.AIR) { + setItem(cell, GuiUtils.updateItemLore(item, lore)); + } + return this; + } + + @NotNull + public Gui updateItemName(int row, int col, @Nullable String name) { + return updateItemName(col + row * 9, name); + } + + @NotNull + public Gui updateItemName(int cell, @Nullable String name) { + ItemStack item = cellItems.get(cell); + if (item != null && item.getType() != Material.AIR) { + setItem(cell, GuiUtils.updateItemName(item, name)); + } + return this; + } + @NotNull public Gui updateItem(int row, int col, @Nullable String name, @NotNull String... lore) { return updateItem(col + row * 9, name, lore); @@ -373,12 +415,12 @@ public class Gui { } @NotNull - public Gui updateItem(int row, int col, @NotNull LegacyMaterials itemTo, @Nullable String title, @NotNull String... lore) { + public Gui updateItem(int row, int col, @NotNull CompatibleMaterial itemTo, @Nullable String title, @NotNull String... lore) { return updateItem(col + row * 9, itemTo, title, lore); } @NotNull - public Gui updateItem(int cell, @NotNull LegacyMaterials itemTo, @Nullable String title, @Nullable String... lore) { + public Gui updateItem(int cell, @NotNull CompatibleMaterial itemTo, @Nullable String title, @Nullable String... lore) { ItemStack item = cellItems.get(cell); if (item != null && item.getType() != Material.AIR) { setItem(cell, GuiUtils.updateItem(item, itemTo, title, lore)); @@ -401,12 +443,12 @@ public class Gui { } @NotNull - public Gui updateItem(int row, int col, @NotNull LegacyMaterials itemTo, @Nullable String title, @Nullable List lore) { + public Gui updateItem(int row, int col, @NotNull CompatibleMaterial itemTo, @Nullable String title, @Nullable List lore) { return updateItem(col + row * 9, itemTo, title, lore); } @NotNull - public Gui updateItem(int cell, @NotNull LegacyMaterials itemTo, @Nullable String title, @Nullable List lore) { + public Gui updateItem(int cell, @NotNull CompatibleMaterial itemTo, @Nullable String title, @Nullable List lore) { ItemStack item = cellItems.get(cell); if (item != null && item.getType() != Material.AIR) { setItem(cell, GuiUtils.updateItem(item, itemTo, title, lore)); diff --git a/src/main/java/com/songoda/core/gui/GuiManager.java b/src/main/java/com/songoda/core/gui/GuiManager.java index d68d2836..17e793a3 100644 --- a/src/main/java/com/songoda/core/gui/GuiManager.java +++ b/src/main/java/com/songoda/core/gui/GuiManager.java @@ -1,8 +1,8 @@ package com.songoda.core.gui; import com.songoda.core.compatibility.ClientVersion; -import com.songoda.core.compatibility.CompatibleSounds; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleSound; +import com.songoda.core.compatibility.CompatibleMaterial; import com.songoda.core.compatibility.ServerVersion; import java.util.HashMap; import java.util.Map; @@ -95,14 +95,14 @@ public class GuiManager { } public void showPopup(Player player, String message) { - showPopup(player, message, LegacyMaterials.NETHER_STAR, BackgroundType.ADVENTURE); + showPopup(player, message, CompatibleMaterial.NETHER_STAR, BackgroundType.ADVENTURE); } - public void showPopup(Player player, String message, LegacyMaterials icon) { + public void showPopup(Player player, String message, CompatibleMaterial icon) { showPopup(player, message, icon, BackgroundType.ADVENTURE); } - public void showPopup(Player player, String message, LegacyMaterials icon, BackgroundType background) { + public void showPopup(Player player, String message, CompatibleMaterial icon, BackgroundType background) { if (ClientVersion.getClientVersion(player).isServerVersionAtLeast(ServerVersion.V1_12)) { PopupMessage popup = new PopupMessage(plugin, icon, message, background); popup.add(); @@ -176,12 +176,12 @@ public class GuiManager { event.setCancelled(!gui.unlockedCells.entrySet().stream().anyMatch(e -> event.getSlot() == e.getKey() && e.getValue())); // process button press if (gui.onClick(manager, player, openInv, event)) { - player.playSound(player.getLocation(), CompatibleSounds.UI_BUTTON_CLICK.getSound(), 1F, 1F); + player.playSound(player.getLocation(), CompatibleSound.UI_BUTTON_CLICK.getSound(), 1F, 1F); } } else { // Player clicked in the bottom inventory while GUI is open if (gui.onClickPlayerInventory(manager, player, openInv, event)) { - player.playSound(player.getLocation(), CompatibleSounds.UI_BUTTON_CLICK.getSound(), 1F, 1F); + player.playSound(player.getLocation(), CompatibleSound.UI_BUTTON_CLICK.getSound(), 1F, 1F); } else if (!gui.acceptsItems || event.getAction() == InventoryAction.MOVE_TO_OTHER_INVENTORY) { event.setCancelled(true); } diff --git a/src/main/java/com/songoda/core/gui/GuiUtils.java b/src/main/java/com/songoda/core/gui/GuiUtils.java index c445fec2..843f3e4e 100644 --- a/src/main/java/com/songoda/core/gui/GuiUtils.java +++ b/src/main/java/com/songoda/core/gui/GuiUtils.java @@ -1,6 +1,6 @@ package com.songoda.core.gui; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleMaterial; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -16,7 +16,7 @@ import org.bukkit.inventory.meta.ItemMeta; public class GuiUtils { public static ItemStack getBorderGlassItem() { - ItemStack glass = LegacyMaterials.LIGHT_BLUE_STAINED_GLASS_PANE.getItem(); + ItemStack glass = CompatibleMaterial.LIGHT_BLUE_STAINED_GLASS_PANE.getItem(); ItemMeta glassmeta = glass.getItemMeta(); glassmeta.setDisplayName(ChatColor.BLACK.toString()); glass.setItemMeta(glassmeta); @@ -30,7 +30,7 @@ public class GuiUtils { return item; } - public static ItemStack getBorderItem(LegacyMaterials mat) { + public static ItemStack getBorderItem(CompatibleMaterial mat) { ItemStack item = mat.getItem(); ItemMeta glassmeta = item.getItemMeta(); glassmeta.setDisplayName(ChatColor.BLACK.toString()); @@ -88,7 +88,7 @@ public class GuiUtils { return newLore; } - public static ItemStack createButtonItem(LegacyMaterials mat, String title, String... lore) { + public static ItemStack createButtonItem(CompatibleMaterial mat, String title, String... lore) { ItemStack item = mat.getItem(); ItemMeta meta = item.getItemMeta(); if (meta != null) { @@ -103,7 +103,7 @@ public class GuiUtils { return item; } - public static ItemStack createButtonItem(LegacyMaterials mat, int amount, String title, String... lore) { + public static ItemStack createButtonItem(CompatibleMaterial mat, int amount, String title, String... lore) { ItemStack item = mat.getItem(); item.setAmount(amount); ItemMeta meta = item.getItemMeta(); @@ -129,12 +129,12 @@ public class GuiUtils { } else { meta.setLore(Collections.EMPTY_LIST); } + item.setItemMeta(meta); } - item.setItemMeta(meta); return item; } - public static ItemStack createButtonItem(LegacyMaterials mat, String title, List lore) { + public static ItemStack createButtonItem(CompatibleMaterial mat, String title, List lore) { ItemStack item = mat.getItem(); ItemMeta meta = item.getItemMeta(); if (meta != null) { @@ -144,12 +144,12 @@ public class GuiUtils { } else { meta.setLore(Collections.EMPTY_LIST); } + item.setItemMeta(meta); } - item.setItemMeta(meta); return item; } - public static ItemStack createButtonItem(LegacyMaterials mat, int amount, String title, List lore) { + public static ItemStack createButtonItem(CompatibleMaterial mat, int amount, String title, List lore) { ItemStack item = mat.getItem(); item.setAmount(amount); ItemMeta meta = item.getItemMeta(); @@ -160,8 +160,8 @@ public class GuiUtils { } else { meta.setLore(Collections.EMPTY_LIST); } + item.setItemMeta(meta); } - item.setItemMeta(meta); return item; } @@ -175,8 +175,8 @@ public class GuiUtils { } else { meta.setLore(Collections.EMPTY_LIST); } + item.setItemMeta(meta); } - item.setItemMeta(meta); return item; } @@ -189,12 +189,47 @@ public class GuiUtils { } else { meta.setLore(Collections.EMPTY_LIST); } + item.setItemMeta(meta); } - item.setItemMeta(meta); return item; } - public static ItemStack updateItem(ItemStack item, LegacyMaterials matTo, String title, String... lore) { + public static ItemStack updateItemName(ItemStack item, String title) { + ItemMeta meta = item.getItemMeta(); + if (meta != null) { + meta.setDisplayName(title); + item.setItemMeta(meta); + } + return item; + } + + public static ItemStack updateItemLore(ItemStack item, String... lore) { + ItemMeta meta = item.getItemMeta(); + if (meta != null) { + if (lore != null && lore.length != 0) { + meta.setLore(getSafeLore(lore)); + } else { + meta.setLore(Collections.EMPTY_LIST); + } + item.setItemMeta(meta); + } + return item; + } + + public static ItemStack updateItemLore(ItemStack item, List lore) { + ItemMeta meta = item.getItemMeta(); + if (meta != null) { + if (lore != null) { + meta.setLore(getSafeLore(lore)); + } else { + meta.setLore(Collections.EMPTY_LIST); + } + item.setItemMeta(meta); + } + return item; + } + + public static ItemStack updateItem(ItemStack item, CompatibleMaterial matTo, String title, String... lore) { if (!matTo.matches(item)) { item = matTo.getItem(); } @@ -206,13 +241,13 @@ public class GuiUtils { } else { meta.setLore(Collections.EMPTY_LIST); } + item.setItemMeta(meta); } - item.setItemMeta(meta); return item; } public static ItemStack updateItem(ItemStack item, ItemStack to, String title, String... lore) { - if (!LegacyMaterials.getMaterial(item).matches(to)) { + if (!CompatibleMaterial.getMaterial(item).matches(to)) { item = to.clone(); } ItemMeta meta = item.getItemMeta(); @@ -223,8 +258,8 @@ public class GuiUtils { } else { meta.setLore(Collections.EMPTY_LIST); } + item.setItemMeta(meta); } - item.setItemMeta(meta); return item; } @@ -237,12 +272,12 @@ public class GuiUtils { } else { meta.setLore(Collections.EMPTY_LIST); } + item.setItemMeta(meta); } - item.setItemMeta(meta); return item; } - public static ItemStack updateItem(ItemStack item, LegacyMaterials matTo, String title, List lore) { + public static ItemStack updateItem(ItemStack item, CompatibleMaterial matTo, String title, List lore) { if (!matTo.matches(item)) { item = matTo.getItem(); } @@ -254,13 +289,13 @@ public class GuiUtils { } else { meta.setLore(Collections.EMPTY_LIST); } + item.setItemMeta(meta); } - item.setItemMeta(meta); return item; } public static ItemStack updateItem(ItemStack item, ItemStack to, String title, List lore) { - if (!LegacyMaterials.getMaterial(item).matches(to)) { + if (!CompatibleMaterial.getMaterial(item).matches(to)) { item = to.clone(); } ItemMeta meta = item.getItemMeta(); @@ -271,8 +306,8 @@ public class GuiUtils { } else { meta.setLore(Collections.EMPTY_LIST); } + item.setItemMeta(meta); } - item.setItemMeta(meta); return item; } diff --git a/src/main/java/com/songoda/core/gui/PopupMessage.java b/src/main/java/com/songoda/core/gui/PopupMessage.java index a678943a..e9d904e9 100644 --- a/src/main/java/com/songoda/core/gui/PopupMessage.java +++ b/src/main/java/com/songoda/core/gui/PopupMessage.java @@ -4,7 +4,7 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleMaterial; import com.songoda.core.compatibility.ServerVersion; import java.util.HashSet; import java.util.UUID; @@ -30,19 +30,19 @@ class PopupMessage { final UUID id = UUID.randomUUID(); private final NamespacedKey key; private final TextComponent title; - LegacyMaterials icon; + CompatibleMaterial icon; int iconAmount = 1; // experimental, untested TriggerType trigger = TriggerType.IMPOSSIBLE; FrameType frame = FrameType.GOAL; BackgroundType background = BackgroundType.ADVENTURE; - PopupMessage(Plugin source, LegacyMaterials icon, String title) { + PopupMessage(Plugin source, CompatibleMaterial icon, String title) { this.key = new NamespacedKey(source, "popup/" + id); this.title = new TextComponent(title.length() < 74 ? title : (title.substring(0, 72) + "...")); this.icon = icon; } - PopupMessage(Plugin source, LegacyMaterials icon, String title, BackgroundType background) { + PopupMessage(Plugin source, CompatibleMaterial icon, String title, BackgroundType background) { this.key = new NamespacedKey(source, "popup/" + id); this.title = new TextComponent(title.length() < 74 ? title : (title.substring(0, 72) + "...")); this.icon = icon; diff --git a/src/main/java/com/songoda/core/gui/SimplePagedGui.java b/src/main/java/com/songoda/core/gui/SimplePagedGui.java index c636a8c6..d7561dd9 100644 --- a/src/main/java/com/songoda/core/gui/SimplePagedGui.java +++ b/src/main/java/com/songoda/core/gui/SimplePagedGui.java @@ -1,6 +1,6 @@ package com.songoda.core.gui; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleMaterial; import static com.songoda.core.gui.Gui.trimTitle; import com.songoda.core.gui.events.GuiClickEvent; import com.songoda.core.gui.methods.Clickable; @@ -35,8 +35,8 @@ public class SimplePagedGui extends Gui { public SimplePagedGui(Gui parent) { super(parent); - nextPage = GuiUtils.createButtonItem(LegacyMaterials.ARROW, "Next Page"); - prevPage = GuiUtils.createButtonItem(LegacyMaterials.ARROW, "Previous Page"); + nextPage = GuiUtils.createButtonItem(CompatibleMaterial.ARROW, "Next Page"); + prevPage = GuiUtils.createButtonItem(CompatibleMaterial.ARROW, "Previous Page"); } public SimplePagedGui setUseHeader(boolean useHeader) { diff --git a/src/main/java/com/songoda/core/utils/ItemUtils.java b/src/main/java/com/songoda/core/utils/ItemUtils.java index 19363f05..389978d2 100644 --- a/src/main/java/com/songoda/core/utils/ItemUtils.java +++ b/src/main/java/com/songoda/core/utils/ItemUtils.java @@ -5,7 +5,7 @@ package com.songoda.core.utils; import com.mojang.authlib.GameProfile; import com.mojang.authlib.properties.Property; -import com.songoda.core.compatibility.LegacyMaterials; +import com.songoda.core.compatibility.CompatibleMaterial; import com.songoda.core.compatibility.ServerVersion; import java.lang.reflect.Field; import java.lang.reflect.Method; @@ -243,7 +243,7 @@ public class ItemUtils { } public static ItemStack getPlayerSkull(OfflinePlayer player) { - ItemStack head = LegacyMaterials.PLAYER_HEAD.getItem(); + ItemStack head = CompatibleMaterial.PLAYER_HEAD.getItem(); if (ServerVersion.isServerVersionBelow(ServerVersion.V1_8)) { return head; } @@ -258,7 +258,7 @@ public class ItemUtils { } public static void setHeadOwner(ItemStack head, OfflinePlayer player) { - if (ServerVersion.isServerVersionBelow(ServerVersion.V1_8) || head == null || !LegacyMaterials.PLAYER_HEAD.matches(head)) { + if (ServerVersion.isServerVersionBelow(ServerVersion.V1_8) || head == null || !CompatibleMaterial.PLAYER_HEAD.matches(head)) { return; } SkullMeta meta = (SkullMeta) head.getItemMeta(); @@ -270,7 +270,7 @@ public class ItemUtils { } public static ItemStack getCustomHead(String texture) { - ItemStack skullItem = LegacyMaterials.PLAYER_HEAD.getItem(); + ItemStack skullItem = CompatibleMaterial.PLAYER_HEAD.getItem(); if (ServerVersion.isServerVersionBelow(ServerVersion.V1_8)) { return skullItem; } @@ -332,8 +332,8 @@ public class ItemUtils { * @return true if both items are of the same material */ public static boolean isSimilarMaterial(ItemStack is1, ItemStack is2) { - LegacyMaterials mat1 = LegacyMaterials.getMaterial(is1); - return mat1 != null && mat1 == LegacyMaterials.getMaterial(is2); + CompatibleMaterial mat1 = CompatibleMaterial.getMaterial(is1); + return mat1 != null && mat1 == CompatibleMaterial.getMaterial(is2); } /** @@ -610,7 +610,7 @@ public class ItemUtils { check = new boolean[3]; - boolean isFuel = !item.getType().name().contains("LOG") && LegacyMaterials.getMaterial(item.getType()).isFuel(); + boolean isFuel = !item.getType().name().contains("LOG") && CompatibleMaterial.getMaterial(item.getType()).isFuel(); // fuel is 2nd slot, input is first if (isFuel) { @@ -800,7 +800,7 @@ public class ItemUtils { check = new boolean[3]; - boolean isFuel = !item.getType().name().contains("LOG") && LegacyMaterials.getMaterial(item.getType()).isFuel(); + boolean isFuel = !item.getType().name().contains("LOG") && CompatibleMaterial.getMaterial(item.getType()).isFuel(); // fuel is 2nd slot, input is first if (isFuel) {