From ded93d2f01faa816f300e1d64e0ba75815ab7c34 Mon Sep 17 00:00:00 2001 From: Brianna O'Keefe Date: Tue, 5 Feb 2019 23:32:15 -0500 Subject: [PATCH] poms --- .gitlab-ci.yml | 20 +- EpicBuckets-Legacy-Hooks/pom.xml | 12 +- .../HookPlotSquared.java | 29 - .../HookWorldGuard.java | 27 - .../hooks/legacy/HookPlotSquared.java | 1 + .../hooks/legacy/HookWorldGuard.java | 1 + EpicBuckets-Plugin/pom.xml | 222 ++++ .../com/songoda/epicbuckets/EpicBuckets.java | 18 +- .../listeners/GenbucketPlaceListener.java | 2 +- .../listeners/PlayerJoinListeners.java | 33 +- .../listeners/SourceBlockBreakListener.java | 2 +- .../src}/main/resources/config.yml | 0 .../src}/main/resources/en_US.lang | 1 - .../src}/main/resources/plugin.yml | 10 +- .../src}/main/resources/shops.yml | 0 pom.xml | 250 +--- .../com/songoda/epicbuckets/EpicBuckets.java | 145 --- .../java/com/songoda/epicbuckets/Locale.java | 364 ------ .../com/songoda/epicbuckets/References.java | 8 - .../epicbuckets/command/AbstractCommand.java | 41 - .../epicbuckets/command/CommandManager.java | 78 -- .../command/commands/CommandAdminPanel.java | 36 - .../command/commands/CommandAdminToggle.java | 36 - .../command/commands/CommandEpicBuckets.java | 43 - .../command/commands/CommandGive.java | 36 - .../command/commands/CommandHelp.java | 4 - .../command/commands/CommandReload.java | 44 - .../event/GenbucketPlaceEvent.java | 51 - .../com/songoda/epicbuckets/file/Config.java | 50 - .../epicbuckets/file/ConfigManager.java | 475 -------- .../epicbuckets/genbucket/Genbucket.java | 170 --- .../genbucket/GenbucketManager.java | 105 -- .../epicbuckets/genbucket/GenbucketType.java | 22 - .../genbucket/types/Horizontal.java | 35 - .../epicbuckets/genbucket/types/Infused.java | 57 - .../genbucket/types/PsuedoVertical.java | 36 - .../epicbuckets/genbucket/types/Vertical.java | 41 - .../com/songoda/epicbuckets/gui/GUIBulk.java | 59 - .../com/songoda/epicbuckets/gui/GUIMain.java | 4 - .../com/songoda/epicbuckets/gui/GUIPanel.java | 73 -- .../com/songoda/epicbuckets/gui/GUIShop.java | 59 - .../epicbuckets/hooks/HookASkyBlock.java | 60 - .../epicbuckets/hooks/HookFactions.java | 45 - .../hooks/HookGriefPrevention.java | 30 - .../epicbuckets/hooks/HookKingdoms.java | 38 - .../epicbuckets/hooks/HookPlotSquared.java | 37 - .../epicbuckets/hooks/HookRedProtect.java | 32 - .../epicbuckets/hooks/HookSkyBlockEarth.java | 59 - .../songoda/epicbuckets/hooks/HookTowny.java | 60 - .../epicbuckets/hooks/HookUSkyBlock.java | 38 - .../epicbuckets/hooks/HookWorldGuard.java | 34 - .../listener/GenbucketPlaceListener.java | 130 --- .../listener/SourceBlockBreakListener.java | 30 - .../com/songoda/epicbuckets/shop/Shop.java | 162 --- .../songoda/epicbuckets/shop/ShopManager.java | 220 ---- .../com/songoda/epicbuckets/shop/SubShop.java | 139 --- .../songoda/epicbuckets/util/ChatUtil.java | 93 -- .../epicbuckets/util/ConfigWrapper.java | 67 -- .../songoda/epicbuckets/util/Debugger.java | 34 - .../epicbuckets/util/InventoryHelper.java | 63 - .../songoda/epicbuckets/util/NBTHelper.java | 24 - .../epicbuckets/util/ServerVersion.java | 26 - .../songoda/epicbuckets/util/Validator.java | 61 - .../songoda/epicbuckets/util/XMaterial.java | 1017 ----------------- .../util/gui/AbstractAnvilGUI.java | 272 ----- .../epicbuckets/util/gui/AbstractGUI.java | 226 ---- .../epicbuckets/util/gui/Clickable.java | 11 - .../songoda/epicbuckets/util/gui/OnClose.java | 10 - .../songoda/epicbuckets/util/gui/Range.java | 51 - .../hooks/ClaimableProtectionPluginHook.java | 39 - .../util/hooks/ProtectionPluginHook.java | 49 - .../util/itemnbtapi/ClassWrapper.java | 39 - .../util/itemnbtapi/NBTCompound.java | 200 ---- .../util/itemnbtapi/NBTContainer.java | 35 - .../util/itemnbtapi/NBTEntity.java | 22 - .../epicbuckets/util/itemnbtapi/NBTFile.java | 46 - .../epicbuckets/util/itemnbtapi/NBTItem.java | 53 - .../epicbuckets/util/itemnbtapi/NBTList.java | 114 -- .../util/itemnbtapi/NBTListCompound.java | 102 -- .../util/itemnbtapi/NBTReflectionUtil.java | 348 ------ .../util/itemnbtapi/NBTTileEntity.java | 22 - .../epicbuckets/util/itemnbtapi/NBTType.java | 34 - .../util/itemnbtapi/ObjectCreator.java | 28 - .../util/itemnbtapi/ReflectionMethod.java | 121 -- .../util/itemnbtapi/utils/GsonWrapper.java | 27 - .../itemnbtapi/utils/MinecraftVersion.java | 62 - .../epicbuckets/util/version/NMSUtil.java | 100 -- 87 files changed, 321 insertions(+), 6889 deletions(-) delete mode 100644 EpicBuckets-Legacy-Hooks/src.main/java.com.songoda.epicbuckets.hooks.legacy/HookPlotSquared.java delete mode 100644 EpicBuckets-Legacy-Hooks/src.main/java.com.songoda.epicbuckets.hooks.legacy/HookWorldGuard.java rename {src => EpicBuckets-Plugin/src}/main/resources/config.yml (100%) rename {src => EpicBuckets-Plugin/src}/main/resources/en_US.lang (96%) rename {src => EpicBuckets-Plugin/src}/main/resources/plugin.yml (54%) rename {src => EpicBuckets-Plugin/src}/main/resources/shops.yml (100%) delete mode 100644 src/main/java/com/songoda/epicbuckets/EpicBuckets.java delete mode 100644 src/main/java/com/songoda/epicbuckets/Locale.java delete mode 100644 src/main/java/com/songoda/epicbuckets/References.java delete mode 100644 src/main/java/com/songoda/epicbuckets/command/AbstractCommand.java delete mode 100644 src/main/java/com/songoda/epicbuckets/command/CommandManager.java delete mode 100644 src/main/java/com/songoda/epicbuckets/command/commands/CommandAdminPanel.java delete mode 100644 src/main/java/com/songoda/epicbuckets/command/commands/CommandAdminToggle.java delete mode 100644 src/main/java/com/songoda/epicbuckets/command/commands/CommandEpicBuckets.java delete mode 100644 src/main/java/com/songoda/epicbuckets/command/commands/CommandGive.java delete mode 100644 src/main/java/com/songoda/epicbuckets/command/commands/CommandHelp.java delete mode 100644 src/main/java/com/songoda/epicbuckets/command/commands/CommandReload.java delete mode 100644 src/main/java/com/songoda/epicbuckets/event/GenbucketPlaceEvent.java delete mode 100644 src/main/java/com/songoda/epicbuckets/file/Config.java delete mode 100644 src/main/java/com/songoda/epicbuckets/file/ConfigManager.java delete mode 100644 src/main/java/com/songoda/epicbuckets/genbucket/Genbucket.java delete mode 100644 src/main/java/com/songoda/epicbuckets/genbucket/GenbucketManager.java delete mode 100644 src/main/java/com/songoda/epicbuckets/genbucket/GenbucketType.java delete mode 100644 src/main/java/com/songoda/epicbuckets/genbucket/types/Horizontal.java delete mode 100644 src/main/java/com/songoda/epicbuckets/genbucket/types/Infused.java delete mode 100644 src/main/java/com/songoda/epicbuckets/genbucket/types/PsuedoVertical.java delete mode 100644 src/main/java/com/songoda/epicbuckets/genbucket/types/Vertical.java delete mode 100644 src/main/java/com/songoda/epicbuckets/gui/GUIBulk.java delete mode 100644 src/main/java/com/songoda/epicbuckets/gui/GUIMain.java delete mode 100644 src/main/java/com/songoda/epicbuckets/gui/GUIPanel.java delete mode 100644 src/main/java/com/songoda/epicbuckets/gui/GUIShop.java delete mode 100644 src/main/java/com/songoda/epicbuckets/hooks/HookASkyBlock.java delete mode 100644 src/main/java/com/songoda/epicbuckets/hooks/HookFactions.java delete mode 100644 src/main/java/com/songoda/epicbuckets/hooks/HookGriefPrevention.java delete mode 100644 src/main/java/com/songoda/epicbuckets/hooks/HookKingdoms.java delete mode 100644 src/main/java/com/songoda/epicbuckets/hooks/HookPlotSquared.java delete mode 100644 src/main/java/com/songoda/epicbuckets/hooks/HookRedProtect.java delete mode 100644 src/main/java/com/songoda/epicbuckets/hooks/HookSkyBlockEarth.java delete mode 100644 src/main/java/com/songoda/epicbuckets/hooks/HookTowny.java delete mode 100644 src/main/java/com/songoda/epicbuckets/hooks/HookUSkyBlock.java delete mode 100644 src/main/java/com/songoda/epicbuckets/hooks/HookWorldGuard.java delete mode 100644 src/main/java/com/songoda/epicbuckets/listener/GenbucketPlaceListener.java delete mode 100644 src/main/java/com/songoda/epicbuckets/listener/SourceBlockBreakListener.java delete mode 100644 src/main/java/com/songoda/epicbuckets/shop/Shop.java delete mode 100644 src/main/java/com/songoda/epicbuckets/shop/ShopManager.java delete mode 100644 src/main/java/com/songoda/epicbuckets/shop/SubShop.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/ChatUtil.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/ConfigWrapper.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/Debugger.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/InventoryHelper.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/NBTHelper.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/ServerVersion.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/Validator.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/XMaterial.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/gui/AbstractAnvilGUI.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/gui/AbstractGUI.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/gui/Clickable.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/gui/OnClose.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/gui/Range.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/hooks/ClaimableProtectionPluginHook.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/hooks/ProtectionPluginHook.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/itemnbtapi/ClassWrapper.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTCompound.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTContainer.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTEntity.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTFile.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTItem.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTList.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTListCompound.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTReflectionUtil.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTTileEntity.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTType.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/itemnbtapi/ObjectCreator.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/itemnbtapi/ReflectionMethod.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/itemnbtapi/utils/GsonWrapper.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/itemnbtapi/utils/MinecraftVersion.java delete mode 100644 src/main/java/com/songoda/epicbuckets/util/version/NMSUtil.java diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1aebd83..7b9a6a6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,11 +1,21 @@ stages: - - build +- build + +variables: + name: "EpicBuckets" + path: "/builds/Songoda/$name" + version: "1.4.4" build: stage: build - image: maven:3.3.9-jdk-8 - script: "mvn clean package" + image: maven:3.5.3-jdk-8 + script: + - find $path/ -type f -name "*.xml" -print0 | xargs -0 sed -i -e s/maven-version-number/$version/g + - find $path/ -type f -name "*.yml" -print0 | xargs -0 sed -i -e s/maven-version-number/$version/g + - mvn clean package + - find $path/ -depth -path '*original*' -delete + - mv -v $path/target/*.jar $path artifacts: - name: "EpicBuckets" + name: $name-$version paths: - - "/builds/Songoda/epicbuckets/target/*.jar" + - "$path/*.jar" diff --git a/EpicBuckets-Legacy-Hooks/pom.xml b/EpicBuckets-Legacy-Hooks/pom.xml index 1ec37b0..dae9ff0 100644 --- a/EpicBuckets-Legacy-Hooks/pom.xml +++ b/EpicBuckets-Legacy-Hooks/pom.xml @@ -1,4 +1,4 @@ - 4.0.0 @@ -8,10 +8,10 @@ maven-version-number com.songoda - EpicBuckets-Hooks + EpicBuckets-Legacy-Hooks clean install - EpicBuckets-Hooks + EpicBuckets-Legacy-Hooks @@ -20,6 +20,12 @@ + + com.songoda + EpicBuckets-Plugin + ${project.version} + provided + com.sk89q worldguard diff --git a/EpicBuckets-Legacy-Hooks/src.main/java.com.songoda.epicbuckets.hooks.legacy/HookPlotSquared.java b/EpicBuckets-Legacy-Hooks/src.main/java.com.songoda.epicbuckets.hooks.legacy/HookPlotSquared.java deleted file mode 100644 index 96794d6..0000000 --- a/EpicBuckets-Legacy-Hooks/src.main/java.com.songoda.epicbuckets.hooks.legacy/HookPlotSquared.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.songoda.epicspawners.hooks.legacy; - -import com.intellectualcrafters.plot.api.PlotAPI; -import com.plotsquared.bukkit.BukkitMain; -import com.songoda.epicspawners.api.utils.ProtectionPluginHook; -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -public class HookPlotSquared implements ProtectionPluginHook { - - private final PlotAPI plotSquared; - - public HookPlotSquared() { - this.plotSquared = new PlotAPI(); - } - - @Override - public JavaPlugin getPlugin() { // BukkitMain? Really? - return JavaPlugin.getPlugin(BukkitMain.class); - } - - @Override - public boolean canBuild(Player player, Location location) { - return plotSquared.getPlot(location) != null && plotSquared.isInPlot(player) - && plotSquared.getPlot(location) == plotSquared.getPlot(player); - } - -} \ No newline at end of file diff --git a/EpicBuckets-Legacy-Hooks/src.main/java.com.songoda.epicbuckets.hooks.legacy/HookWorldGuard.java b/EpicBuckets-Legacy-Hooks/src.main/java.com.songoda.epicbuckets.hooks.legacy/HookWorldGuard.java deleted file mode 100644 index 4ab2794..0000000 --- a/EpicBuckets-Legacy-Hooks/src.main/java.com.songoda.epicbuckets.hooks.legacy/HookWorldGuard.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.songoda.epicspawners.hooks.legacy; - -import com.sk89q.worldguard.bukkit.WorldGuardPlugin; -import com.songoda.epicspawners.api.utils.ProtectionPluginHook; -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -public class HookWorldGuard implements ProtectionPluginHook { - - private final WorldGuardPlugin worldGuard; - - public HookWorldGuard() { - this.worldGuard = WorldGuardPlugin.inst(); - } - - @Override - public JavaPlugin getPlugin() { - return worldGuard; - } - - @Override - public boolean canBuild(Player player, Location location) { - return worldGuard.canBuild(player, location); - } - -} \ No newline at end of file diff --git a/EpicBuckets-Legacy-Hooks/src/main/java/com/songoda/epicbuckets/hooks/legacy/HookPlotSquared.java b/EpicBuckets-Legacy-Hooks/src/main/java/com/songoda/epicbuckets/hooks/legacy/HookPlotSquared.java index 5b3a8dd..78afa93 100644 --- a/EpicBuckets-Legacy-Hooks/src/main/java/com/songoda/epicbuckets/hooks/legacy/HookPlotSquared.java +++ b/EpicBuckets-Legacy-Hooks/src/main/java/com/songoda/epicbuckets/hooks/legacy/HookPlotSquared.java @@ -2,6 +2,7 @@ package com.songoda.epicbuckets.hooks.legacy; import com.intellectualcrafters.plot.api.PlotAPI; import com.plotsquared.bukkit.BukkitMain; +import com.songoda.epicbuckets.util.hooks.ProtectionPluginHook; import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; diff --git a/EpicBuckets-Legacy-Hooks/src/main/java/com/songoda/epicbuckets/hooks/legacy/HookWorldGuard.java b/EpicBuckets-Legacy-Hooks/src/main/java/com/songoda/epicbuckets/hooks/legacy/HookWorldGuard.java index a617ea6..fa75ffd 100644 --- a/EpicBuckets-Legacy-Hooks/src/main/java/com/songoda/epicbuckets/hooks/legacy/HookWorldGuard.java +++ b/EpicBuckets-Legacy-Hooks/src/main/java/com/songoda/epicbuckets/hooks/legacy/HookWorldGuard.java @@ -1,6 +1,7 @@ package com.songoda.epicbuckets.hooks.legacy; import com.sk89q.worldguard.bukkit.WorldGuardPlugin; +import com.songoda.epicbuckets.util.hooks.ProtectionPluginHook; import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; diff --git a/EpicBuckets-Plugin/pom.xml b/EpicBuckets-Plugin/pom.xml index e69de29..28f2296 100644 --- a/EpicBuckets-Plugin/pom.xml +++ b/EpicBuckets-Plugin/pom.xml @@ -0,0 +1,222 @@ + + 4.0.0 + + + com.songoda + EpicBuckets-Parent + maven-version-number + + + EpicBuckets-Plugin + + + + private + http://repo.songoda.com/artifactory/private/ + + + + + com.gmail.filoghost.holographicdisplays + holographicdisplays-api + LATEST + provided + + + com.songoda + EpicBuckets-Legacy-Hooks + ${project.version} + compile + + + net.arcaniax + liquidtanks + LATEST + + + com.songoda + arconix + LATEST + provided + + + org + kingdoms + LATEST + provided + + + net.milkbowl + vault + LATEST + provided + + + me.ryanhamshire + GriefPrevention + LATEST + provided + + + com.sk89q + worldedit + LATEST + provided + + + com.sk89q + worldguard + 6.2.2 + provided + + + com + plotsquared + 3.5.0 + provided + + + com.songoda + skyblockearth + LATEST + provided + + + com.palmergames.bukkit + towny + LATEST + provided + + + com.wasteofplastic + askyblock + 3.0.6.8 + provided + + + us.talabrek + ultimateskyblock + LATEST + provided + + + me.markeh + factionsframework + 1.2.0 + provided + + + br.net.fabiozumbi12 + RedProtect + 7.3.0 + provided + + + com.gmail.nossr50 + mcmmo + LATEST + provided + + + com.gamingmesh + jobs + LATEST + provided + + + me.botsko + prism + LATEST + provided + + + de.diddiz + logblock + LATEST + provided + + + net + coreprotect + LATEST + provided + + + uk.antiperson + stackmob + LATEST + provided + + + net.sothatsit + blockstore + LATEST + provided + + + org.black_ixx + playerpoints + 2.1.4 + provided + + + xyz.wildseries + wildstacker + b6 + provided + + + me.clip + placeholderapi + 2.5.1 + provided + + + + + clean install + EpicBuckets-Legacy-${project.version} + + + com.google.code.maven-replacer-plugin + replacer + 1.5.3 + + + prepare-package + + replace + + + + + ${project.build.directory}/classes/plugin.yml + ${project.basedir}/../.gitlab-ci.yml + + + maven-version-number + ${project.version} + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.0 + + + package + + shade + + + false + + + + + + + diff --git a/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/EpicBuckets.java b/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/EpicBuckets.java index 9ced1cd..7d4be4d 100644 --- a/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/EpicBuckets.java +++ b/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/EpicBuckets.java @@ -5,8 +5,9 @@ import com.songoda.epicbuckets.command.CommandManager; import com.songoda.epicbuckets.file.ConfigManager; import com.songoda.epicbuckets.genbucket.GenbucketManager; import com.songoda.epicbuckets.hooks.*; -import com.songoda.epicbuckets.listener.GenbucketPlaceListener; -import com.songoda.epicbuckets.listener.SourceBlockBreakListener; +import com.songoda.epicbuckets.listeners.GenbucketPlaceListener; +import com.songoda.epicbuckets.listeners.PlayerJoinListeners; +import com.songoda.epicbuckets.listeners.SourceBlockBreakListener; import com.songoda.epicbuckets.shop.ShopManager; import com.songoda.epicbuckets.util.ChatUtil; import com.songoda.epicbuckets.util.ConfigWrapper; @@ -77,18 +78,27 @@ public class EpicBuckets extends JavaPlugin { // Event registration pluginManager.registerEvents(new GenbucketPlaceListener(this), this); pluginManager.registerEvents(new SourceBlockBreakListener(), this); + pluginManager.registerEvents(new PlayerJoinListeners(this), this); // Register default hooks if (pluginManager.isPluginEnabled("ASkyBlock")) aSkyblockHook = (ClaimableProtectionPluginHook) this.register(HookASkyBlock::new); if (pluginManager.isPluginEnabled("FactionsFramework")) factionsHook = (ClaimableProtectionPluginHook) this.register(HookFactions::new); if (pluginManager.isPluginEnabled("GriefPrevention")) this.register(HookGriefPrevention::new); if (pluginManager.isPluginEnabled("Kingdoms")) this.register(HookKingdoms::new); - if (pluginManager.isPluginEnabled("PlotSquared")) this.register(HookPlotSquared::new); if (pluginManager.isPluginEnabled("RedProtect")) this.register(HookRedProtect::new); if (pluginManager.isPluginEnabled("Towny")) townyHook = (ClaimableProtectionPluginHook) this.register(HookTowny::new); if (pluginManager.isPluginEnabled("USkyBlock")) uSkyblockHook = (ClaimableProtectionPluginHook) this.register(HookUSkyBlock::new); if (pluginManager.isPluginEnabled("SkyBlock")) skyBlockEarhHook = (ClaimableProtectionPluginHook) this.register(HookSkyBlockEarth::new); - if (pluginManager.isPluginEnabled("WorldGuard")) this.register(HookWorldGuard::new); + + if (isServerVersionAtLeast(ServerVersion.V1_13)) { + if (pluginManager.isPluginEnabled("WorldGuard")) this.register(HookWorldGuard::new); + if (pluginManager.isPluginEnabled("PlotSquared")) this.register(HookPlotSquared::new); + } else { + if (pluginManager.isPluginEnabled("WorldGuard")) + this.register(com.songoda.epicbuckets.hooks.legacy.HookWorldGuard::new); + if (pluginManager.isPluginEnabled("PlotSquared")) + this.register(com.songoda.epicbuckets.hooks.legacy.HookPlotSquared::new); + } console.sendMessage(ChatUtil.colorString("&a=============================")); } diff --git a/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/listeners/GenbucketPlaceListener.java b/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/listeners/GenbucketPlaceListener.java index ddeeaaf..9c6a794 100644 --- a/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/listeners/GenbucketPlaceListener.java +++ b/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/listeners/GenbucketPlaceListener.java @@ -1,4 +1,4 @@ -package com.songoda.epicbuckets.listener; +package com.songoda.epicbuckets.listeners; import com.songoda.epicbuckets.EpicBuckets; diff --git a/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/listeners/PlayerJoinListeners.java b/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/listeners/PlayerJoinListeners.java index bc64f32..a6dce98 100644 --- a/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/listeners/PlayerJoinListeners.java +++ b/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/listeners/PlayerJoinListeners.java @@ -1,9 +1,8 @@ -package com.songoda.epicspawners.listeners; +package com.songoda.epicbuckets.listeners; -import com.songoda.epicspawners.EpicSpawnersPlugin; -import com.songoda.epicspawners.References; -import com.songoda.epicspawners.utils.Debugger; -import com.songoda.epicspawners.utils.Methods; +import com.songoda.epicbuckets.EpicBuckets; +import com.songoda.epicbuckets.References; +import com.songoda.epicbuckets.util.ChatUtil; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -14,31 +13,27 @@ import org.bukkit.event.player.PlayerJoinEvent; */ public class PlayerJoinListeners implements Listener { - private EpicSpawnersPlugin instance; + private EpicBuckets instance; - public PlayerJoinListeners(EpicSpawnersPlugin instance) { + public PlayerJoinListeners(EpicBuckets instance) { this.instance = instance; } @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { - try { Player player = event.getPlayer(); - if (player.isOp() && instance.getConfig().getBoolean("Main.Display Helpful Tips For Operators")) { + if (player.isOp()) { if (instance.getServer().getPluginManager().getPlugin("Factions") != null && instance.getServer().getPluginManager().getPlugin("FactionsFramework") == null) { player.sendMessage(""); - player.sendMessage(Methods.formatText(References.getPrefix() + "&7Here's the deal,")); - player.sendMessage(Methods.formatText("&7I cannot give you full support for Factions out of the box.")); - player.sendMessage(Methods.formatText("&7Things will work without it but if you wan't a flawless")); - player.sendMessage(Methods.formatText("&7experience you need to download")); - player.sendMessage(Methods.formatText("&7&6https://www.spigotmc.org/resources/54337/&7.")); - player.sendMessage(Methods.formatText("&7If you don't care and don't want to see this message again")); - player.sendMessage(Methods.formatText("&7turn &6Helpful-Tips &7off in the config.")); + player.sendMessage(ChatUtil.colorString(References.getPrefix() + "&7Here's the deal,")); + player.sendMessage(ChatUtil.colorString("&7I cannot give you full support for Factions out of the box.")); + player.sendMessage(ChatUtil.colorString("&7Things will work without it but if you wan't a flawless")); + player.sendMessage(ChatUtil.colorString("&7experience you need to download")); + player.sendMessage(ChatUtil.colorString("&7&6https://www.spigotmc.org/resources/54337/&7.")); + player.sendMessage(ChatUtil.colorString("&7If you don't care and don't want to see this message again")); + player.sendMessage(ChatUtil.colorString("&7turn &6Helpful-Tips &7off in the config.")); player.sendMessage(""); } } - } catch (Exception ee) { - Debugger.runReport(ee); - } } } \ No newline at end of file diff --git a/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/listeners/SourceBlockBreakListener.java b/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/listeners/SourceBlockBreakListener.java index b6573ba..451741f 100644 --- a/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/listeners/SourceBlockBreakListener.java +++ b/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/listeners/SourceBlockBreakListener.java @@ -1,4 +1,4 @@ -package com.songoda.epicbuckets.listener; +package com.songoda.epicbuckets.listeners; import com.songoda.epicbuckets.EpicBuckets; import org.bukkit.event.EventHandler; diff --git a/src/main/resources/config.yml b/EpicBuckets-Plugin/src/main/resources/config.yml similarity index 100% rename from src/main/resources/config.yml rename to EpicBuckets-Plugin/src/main/resources/config.yml diff --git a/src/main/resources/en_US.lang b/EpicBuckets-Plugin/src/main/resources/en_US.lang similarity index 96% rename from src/main/resources/en_US.lang rename to EpicBuckets-Plugin/src/main/resources/en_US.lang index cb72798..454d7ca 100644 --- a/src/main/resources/en_US.lang +++ b/EpicBuckets-Plugin/src/main/resources/en_US.lang @@ -6,7 +6,6 @@ general.nametag.prefix = "&8[&6EpicBuckets&8]" command.reload.success = "&7You've reloaded the config" command.admin.toggle = "&7Spy mode: %mode%" -command.general.invalidsyntax = "&7Invalid command syntax!" command.give.genbucketnotfound = "&7A genbucket with that combination was not registered!" #Interface Messages diff --git a/src/main/resources/plugin.yml b/EpicBuckets-Plugin/src/main/resources/plugin.yml similarity index 54% rename from src/main/resources/plugin.yml rename to EpicBuckets-Plugin/src/main/resources/plugin.yml index 0b9b0e7..4f7ed7d 100644 --- a/src/main/resources/plugin.yml +++ b/EpicBuckets-Plugin/src/main/resources/plugin.yml @@ -1,7 +1,13 @@ name: EpicBuckets -version: 1.4.4 +version: maven-version-number description: Generate walls fast and efficient with beautiful guis! author: Songoda main: com.songoda.epicbuckets.EpicBuckets softdepend: [WorldGuard, WorldEdit, Factions, MassiveCore, GriefPrevention] -depend: [Vault] \ No newline at end of file +depend: [Vault] +commands: + EpicBuckets: + description: Main command. + default: true + aliases: [eb, genbucket, gen] + usage: / [reload] \ No newline at end of file diff --git a/src/main/resources/shops.yml b/EpicBuckets-Plugin/src/main/resources/shops.yml similarity index 100% rename from src/main/resources/shops.yml rename to EpicBuckets-Plugin/src/main/resources/shops.yml diff --git a/pom.xml b/pom.xml index 8946bb7..5abb3bb 100644 --- a/pom.xml +++ b/pom.xml @@ -1,224 +1,44 @@ - - com.songoda - EpicBuckets + 4.0.0 - 1.4.4 - - clean package - - - 3.6.1 - org.apache.maven.plugins - maven-compiler-plugin - - 1.8 - 1.8 - - - - org.apache.maven.plugins - maven-shade-plugin - 3.2.1 - - - package - - shade - - - true - - - *:* - - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - - - - true - shaded - - - fr.minuskube.inv:smart-invs - co.aikar - me.lucko:helper - com.github.tr7zw.Item-NBT-API - net.jodah:expiringmap - org.jetbrains:annotations - com.flowpowered:flow-math - com.google.code.findbugs - com.google.guava - com.google.code.gson - - - - - org.intellij - ${project.groupId}.${project.artifactId}.intellij - - - javax.annotation - ${project.groupId}.${project.artifactId}.annotation - - - me.lucko.helper - ${project.groupId}.${project.artifactId}.helper - - - org.jetbrains - ${project.groupId}.${project.artifactId}.jetbrains - - - com.flowpowered - ${project.groupId}.${project.artifactId}.flowpowered - - - net.jodah - ${project.groupId}.${project.artifactId}.jodah - - - com.google - ${project.groupId}.${project.artifactId}.google - - - fr.minuskube.inv - ${project.groupId}.${project.artifactId}.inv - - - co.aikar.timings.lib - ${project.groupId}.${project.artifactId}.acf.timings - - - co.aikar.commands - ${project.groupId}.${project.artifactId}.acf.commands - - - de.tr7zw.itemnbtapi - ${project.groupId}.${project.artifactId}.itemnbtapi - - - - - - - - - - src/main/resources - true - - - src/main/java - - - - 11_private - http://repo.songoda.com/artifactory/private - - - 22_vault - http://nexus.hc.to/content/repositories/pub_releases - - - 33_aikar - https://repo.aikar.co/content/groups/aikar/ - - - 44_jitpack.io - https://jitpack.io - - + + com.songoda + EpicBuckets-Parent + pom + maven-version-number + + + EpicBuckets-Legacy-Hooks + EpicBuckets-Plugin + + - - fr.minuskube.inv - smart-invs - 1.2.5 - compile - - - co.aikar - acf-bukkit - 0.5.0-SNAPSHOT - compile - - - me.lucko - helper - LATEST - compile - - - com.github.tr7zw - Item-NBT-API - master-SNAPSHOT - compile - org.spigotmc spigot 1.13.2 provided - - com.songoda - arconix - LATEST - provided - - - net.milkbowl.vault - VaultAPI - LATEST - provided - - - me.ryanhamshire - GriefPrevention - LATEST - provided - - - com.sk89q - worldedit - LATEST - provided - - - com.sk89q - worldguard - 6.2.2 - provided - - - com - plotsquared - RELEASE - provided - - - - com.github.ProSavage - SavageFactions - 1.6.x-0.1.21-gbdd5473-400 - provided - - - com.massivecraft. - factions - system - 2.14.1-SNAPSHOT - ${project.basedir}/dependencies/Factions.jar - - - com.massivecraft - massivecore - system - 2.14.1-SNAPSHOT - ${project.basedir}/dependencies/MassiveCore.jar - - - - + + + clean install + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + 1.8 + 1.8 + + + + + + + private + http://repo.songoda.com/artifactory/private/ + + + \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/EpicBuckets.java b/src/main/java/com/songoda/epicbuckets/EpicBuckets.java deleted file mode 100644 index c7ce853..0000000 --- a/src/main/java/com/songoda/epicbuckets/EpicBuckets.java +++ /dev/null @@ -1,145 +0,0 @@ -package com.songoda.epicbuckets; - -import co.aikar.commands.BukkitCommandManager; -import com.songoda.epicbuckets.command.CommandGenbucket; -import com.songoda.epicbuckets.command.CommandTabbing; -import com.songoda.epicbuckets.file.ConfigManager; -import com.songoda.epicbuckets.genbucket.GenbucketManager; -import com.songoda.epicbuckets.listener.GenbucketPlaceListener; -import com.songoda.epicbuckets.listener.SourceBlockBreakListener; -import com.songoda.epicbuckets.shop.ShopManager; -import com.songoda.epicbuckets.util.ChatUtil; -import com.songoda.epicbuckets.util.Debugger; -import fr.minuskube.inv.InventoryManager; -import me.lucko.helper.plugin.ExtendedJavaPlugin; -import net.milkbowl.vault.economy.Economy; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.plugin.RegisteredServiceProvider; - -public class EpicBuckets extends ExtendedJavaPlugin { - - private static EpicBuckets instance; - private static CommandSender console = Bukkit.getConsoleSender(); - - private ConfigManager configManager; - private ShopManager shopManager; - private Debugger debugger; - private GenbucketManager genbucketManager; - private Economy econ; - private BukkitCommandManager commandManager; - private InventoryManager inventoryManager; - - private Locale locale; - - public static EpicBuckets getInstance() { return instance; } - - @Override - protected void enable() { - console.sendMessage(ChatUtil.colorString("&a=============================")); - console.sendMessage(ChatUtil.colorString("&7EpicBuckets " + this.getDescription().getVersion() + " by &5Songoda <3!")); - console.sendMessage(ChatUtil.colorString("&7Action: &aEnabling&7...")); - instance = this; - - if (!isEnabled()) { - return; - } - - saveDefaultConfig(); - - Locale.init(this); - Locale.saveDefaultLocale("en_US"); - this.locale = Locale.getLocale(getConfig().getString("Locale", "en_US")); - - debugger = new Debugger(); - configManager = new ConfigManager(); - shopManager = new ShopManager(); - configManager.setup(); - genbucketManager = new GenbucketManager(); - commandManager = new BukkitCommandManager(this); - - inventoryManager = new InventoryManager(this); - inventoryManager.init(); - - CommandTabbing.registerCommandCompletions(); - commandManager.registerCommand(new CommandGenbucket()); - - getServer().getPluginManager().registerEvents(new GenbucketPlaceListener(), this); - getServer().getPluginManager().registerEvents(new SourceBlockBreakListener(), this); - - setupEconomy(); - - console.sendMessage(ChatUtil.colorString("&a=============================")); - } - - @Override - protected void disable() { - console.sendMessage(ChatUtil.colorString("&a=============================")); - console.sendMessage(ChatUtil.colorString("&7EpicBuckets " + this.getDescription().getVersion() + " by &5Songoda <3!")); - console.sendMessage(ChatUtil.colorString("&7Action: &cDisabling&7...")); - console.sendMessage(ChatUtil.colorString("&a=============================")); - } - - public void reload() { - this.locale.reloadMessages(); - this.getConfigManager().reload(); - this.getShopManager().reload(); - } - - public double getBalance(Player player) { - return econ.getBalance(player); - } - - public void withdrawBalance(Player player, int amount, boolean sendMessage) { - - if (sendMessage) - player.sendMessage(locale.getMessage("interface.withdrawl.success").replace("{amount}", String.valueOf(amount))); - - econ.withdrawPlayer(player, amount); - } - - private boolean setupEconomy() { - if (getServer().getPluginManager().getPlugin("Vault") == null) { - return false; - } - RegisteredServiceProvider rsp = getServer().getServicesManager().getRegistration(Economy.class); - if (rsp == null) { - return false; - } - econ = rsp.getProvider(); - return econ != null; - } - - public ConfigManager getConfigManager() { - return configManager; - } - - public ShopManager getShopManager() { - return shopManager; - } - - public Debugger getDebugger() { - return debugger; - } - - public GenbucketManager getGenbucketManager() { - return genbucketManager; - } - - public InventoryManager getInventoryManager() { - return inventoryManager; - } - - public Economy getEcon() { - return econ; - } - - public Locale getLocale() { - return locale; - } - - public BukkitCommandManager getCommandManager() { - return commandManager; - } -} diff --git a/src/main/java/com/songoda/epicbuckets/Locale.java b/src/main/java/com/songoda/epicbuckets/Locale.java deleted file mode 100644 index 866f1d3..0000000 --- a/src/main/java/com/songoda/epicbuckets/Locale.java +++ /dev/null @@ -1,364 +0,0 @@ -package com.songoda.epicbuckets; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Lists; -import org.apache.commons.io.IOUtils; -import org.bukkit.ChatColor; -import org.bukkit.plugin.java.JavaPlugin; - -import java.io.*; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - -/** - * Assists in the creation of multiple localizations and languages, - * as well as the generation of default .lang files - * - * @author Parker Hawke - 2008Choco - */ -public class Locale { - - private static JavaPlugin plugin; - private static final List LOCALES = Lists.newArrayList(); - - private static final Pattern NODE_PATTERN = Pattern.compile("(\\w+(?:\\.{1}\\w+)*)\\s*=\\s*\"(.*)\""); - private static final String FILE_EXTENSION = ".lang"; - private static File localeFolder; - - private static String defaultLocale; - - private final Map nodes = new HashMap<>(); - - private final File file; - private final String name, region; - - private Locale(String name, String region) { - if (plugin == null) - throw new IllegalStateException("Cannot generate locales without first initializing the class (Locale#init(JavaPlugin))"); - - this.name = name.toLowerCase(); - this.region = region.toUpperCase(); - - String fileName = name + "_" + region + FILE_EXTENSION; - this.file = new File(localeFolder, fileName); - - if (this.reloadMessages()) return; - - plugin.getLogger().info("Loaded locale " + fileName); - } - - /** - * Get the name of the language that this locale is based on. - * (i.e. "en" for English, or "fr" for French) - * - * @return the name of the language - */ - public String getName() { - return name; - } - - /** - * Get the name of the region that this locale is from. - * (i.e. "US" for United States or "CA" for Canada) - * - * @return the name of the region - */ - public String getRegion() { - return region; - } - - /** - * Return the entire locale tag (i.e. "en_US") - * - * @return the language tag - */ - public String getLanguageTag() { - return name + "_" + region; - } - - /** - * Get the file that represents this locale - * - * @return the locale file (.lang) - */ - public File getFile() { - return file; - } - - /** - * Get a message set for a specific node - * - * @param node the node to get - * @return the message for the specified node - */ - public String getMessage(String node) { - return ChatColor.translateAlternateColorCodes('&', this.getMessageOrDefault(node, node)); - } - - /** - * Get a message set for a specific node and replace its params with a supplied arguments. - * - * @param node the node to get - * @param args the replacement arguments - * @return the message for the specified node - */ - public String getMessage(String node, Object... args) { - String message = getMessage(node); - for (Object arg : args) { - message = message.replaceFirst("\\%.*?\\%", arg.toString()); - } - return message; - } - - /** - * Get a message set for a specific node - * - * @param node the node to get - * @param defaultValue the default value given that a value for the node was not found - * @return the message for the specified node. Default if none found - */ - public String getMessageOrDefault(String node, String defaultValue) { - return this.nodes.getOrDefault(node, defaultValue); - } - - /** - * Get the key-value map of nodes to messages - * - * @return node-message map - */ - public Map getMessageNodeMap() { - return ImmutableMap.copyOf(nodes); - } - - /** - * Clear the previous message cache and load new messages directly from file - * - * @return reload messages from file - */ - public boolean reloadMessages() { - if (!this.file.exists()) { - plugin.getLogger().warning("Could not find file for locale " + this.name); - return false; - } - - this.nodes.clear(); // Clear previous data (if any) - - try (BufferedReader reader = new BufferedReader(new FileReader(file))) { - String line; - for (int lineNumber = 0; (line = reader.readLine()) != null; lineNumber++) { - if (line.isEmpty() || line.startsWith("#") /* Comment */) continue; - - Matcher matcher = NODE_PATTERN.matcher(line); - if (!matcher.find()) { - System.err.println("Invalid locale syntax at (line=" + lineNumber + ")"); - continue; - } - - nodes.put(matcher.group(1), matcher.group(2)); - } - } catch (IOException e) { - e.printStackTrace(); - return false; - } - return true; - } - - /** - * Initialize the locale class to generate information and search for localizations. - * This must be called before any other methods in the Locale class can be invoked. - * Note that this will also call {@link #searchForLocales()}, so there is no need to - * invoke it for yourself after the initialization - * - * @param plugin the plugin instance - */ - public static void init(JavaPlugin plugin) { - Locale.plugin = plugin; - - if (localeFolder == null) { - localeFolder = new File(plugin.getDataFolder(), "locales/"); - } - - localeFolder.mkdirs(); - Locale.searchForLocales(); - } - - /** - * Find all .lang file locales under the "locales" folder - */ - public static void searchForLocales() { - if (!localeFolder.exists()) localeFolder.mkdirs(); - - for (File file : localeFolder.listFiles()) { - String name = file.getName(); - if (!name.endsWith(".lang")) continue; - - String fileName = name.substring(0, name.lastIndexOf('.')); - String[] localeValues = fileName.split("_"); - - if (localeValues.length != 2) continue; - if (localeExists(localeValues[0] + "_" + localeValues[1])) continue; - - LOCALES.add(new Locale(localeValues[0], localeValues[1])); - plugin.getLogger().info("Found and loaded locale \"" + fileName + "\""); - } - } - - /** - * Get a locale by its entire proper name (i.e. "en_US") - * - * @param name the full name of the locale - * @return locale of the specified name - */ - public static Locale getLocale(String name) { - for (Locale locale : LOCALES) - if (locale.getLanguageTag().equalsIgnoreCase(name)) return locale; - return null; - } - - /** - * Get a locale from the cache by its name (i.e. "en" from "en_US") - * - * @param name the name of the language - * @return locale of the specified language. Null if not cached - */ - public static Locale getLocaleByName(String name) { - for (Locale locale : LOCALES) - if (locale.getName().equalsIgnoreCase(name)) return locale; - return null; - } - - /** - * Get a locale from the cache by its region (i.e. "US" from "en_US") - * - * @param region the name of the region - * @return locale of the specified region. Null if not cached - */ - public static Locale getLocaleByRegion(String region) { - for (Locale locale : LOCALES) - if (locale.getRegion().equalsIgnoreCase(region)) return locale; - return null; - } - - /** - * Check whether a locale exists and is registered or not - * - * @param name the whole language tag (i.e. "en_US") - * @return true if it exists - */ - public static boolean localeExists(String name) { - for (Locale locale : LOCALES) - if (locale.getLanguageTag().equals(name)) return true; - return false; - } - - /** - * Get an immutable list of all currently loaded locales - * - * @return list of all locales - */ - public static List getLocales() { - return ImmutableList.copyOf(LOCALES); - } - - /** - * Save a default locale file from the project source directory, to the locale folder - * - * @param path the path to the file to save - * @param fileName the name of the file to save - * @return true if the operation was successful, false otherwise - */ - public static boolean saveDefaultLocale(String path, String fileName) { - if (!localeFolder.exists()) localeFolder.mkdirs(); - - if (!fileName.endsWith(FILE_EXTENSION)) - fileName = (fileName.lastIndexOf(".") == -1 ? fileName : fileName.substring(0, fileName.lastIndexOf('.'))) + FILE_EXTENSION; - - File destinationFile = new File(localeFolder, fileName); - if (destinationFile.exists()) { - return compareFiles(plugin.getResource(fileName), destinationFile); - } - - try (OutputStream outputStream = new FileOutputStream(destinationFile)) { - IOUtils.copy(plugin.getResource(fileName), outputStream); - - fileName = fileName.substring(0, fileName.lastIndexOf('.')); - String[] localeValues = fileName.split("_"); - - if (localeValues.length != 2) return false; - - LOCALES.add(new Locale(localeValues[0], localeValues[1])); - if (defaultLocale == null) defaultLocale = fileName; - - return true; - } catch (IOException e) { - return false; - } - } - - /** - * Save a default locale file from the project source directory, to the locale folder - * - * @param fileName the name of the file to save - * @return true if the operation was successful, false otherwise - */ - public static boolean saveDefaultLocale(String fileName) { - return saveDefaultLocale("", fileName); - } - - /** - * Clear all current locale data - */ - public static void clearLocaleData() { - for (Locale locale : LOCALES) - locale.nodes.clear(); - LOCALES.clear(); - } - - // Write new changes to existing files, if any at all - private static boolean compareFiles(InputStream defaultFile, File existingFile) { - // Look for default - if (defaultFile == null) { - defaultFile = plugin.getResource(defaultLocale != null ? defaultLocale : "en_US"); - if (defaultFile == null) return false; // No default at all - } - - boolean changed = false; - - List defaultLines, existingLines; - try (BufferedReader defaultReader = new BufferedReader(new InputStreamReader(defaultFile)); - BufferedReader existingReader = new BufferedReader(new FileReader(existingFile)); - BufferedWriter writer = new BufferedWriter(new FileWriter(existingFile, true))) { - defaultLines = defaultReader.lines().collect(Collectors.toList()); - existingLines = existingReader.lines().map(s -> s.split("\\s*=")[0]).collect(Collectors.toList()); - - for (String defaultValue : defaultLines) { - if (defaultValue.isEmpty() || defaultValue.startsWith("#")) continue; - - String key = defaultValue.split("\\s*=")[0]; - - if (!existingLines.contains(key)) { - if (!changed) { - writer.newLine(); - writer.newLine(); - writer.write("# New messages for " + plugin.getName() + " v" + plugin.getDescription().getVersion()); - } - - writer.newLine(); - writer.write(defaultValue); - - changed = true; - } - } - } catch (IOException e) { - return false; - } - - return changed; - } - -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/References.java b/src/main/java/com/songoda/epicbuckets/References.java deleted file mode 100644 index 85569bf..0000000 --- a/src/main/java/com/songoda/epicbuckets/References.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.songoda.epicspawners; - -public class References { - - public static String getPrefix() { - return EpicSpawnersPlugin.getInstance().getLocale().getMessage("general.nametag.prefix") + " "; - } -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/command/AbstractCommand.java b/src/main/java/com/songoda/epicbuckets/command/AbstractCommand.java deleted file mode 100644 index f9d8135..0000000 --- a/src/main/java/com/songoda/epicbuckets/command/AbstractCommand.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.songoda.epicfarming.command; - -import com.songoda.epicfarming.EpicFarmingPlugin; -import org.bukkit.command.CommandSender; - -public abstract class AbstractCommand { - - public enum ReturnType { SUCCESS, FAILURE, SYNTAX_ERROR } - - private final AbstractCommand parent; - - private final String command; - - private final boolean noConsole; - - protected AbstractCommand(String command, AbstractCommand parent, boolean noConsole) { - this.command = command; - this.parent = parent; - this.noConsole = noConsole; - } - - public AbstractCommand getParent() { - return parent; - } - - public String getCommand() { - return command; - } - - public boolean isNoConsole() { - return noConsole; - } - - protected abstract ReturnType runCommand(EpicFarmingPlugin instance, CommandSender sender, String... args); - - public abstract String getPermissionNode(); - - public abstract String getSyntax(); - - public abstract String getDescription(); -} diff --git a/src/main/java/com/songoda/epicbuckets/command/CommandManager.java b/src/main/java/com/songoda/epicbuckets/command/CommandManager.java deleted file mode 100644 index b1edbcc..0000000 --- a/src/main/java/com/songoda/epicbuckets/command/CommandManager.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.songoda.epicfarming.command; - -import com.songoda.epicfarming.EpicFarmingPlugin; -import com.songoda.epicfarming.command.commands.*; -import com.songoda.epicfarming.utils.Methods; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -public class CommandManager implements CommandExecutor { - - private EpicFarmingPlugin instance; - - private List commands = new ArrayList<>(); - - public CommandManager(EpicFarmingPlugin instance) { - this.instance = instance; - - instance.getCommand("EpicFarming").setExecutor(this); - - AbstractCommand commandEpicFarming = addCommand(new CommandEpicFarming()); - - addCommand(new CommandReload(commandEpicFarming)); - addCommand(new CommandSettings(commandEpicFarming)); - addCommand(new CommandGiveFarmItem(commandEpicFarming)); - addCommand(new CommandBoost(commandEpicFarming)); - } - - private AbstractCommand addCommand(AbstractCommand abstractCommand) { - commands.add(abstractCommand); - return abstractCommand; - } - - @Override - public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) { - for (AbstractCommand abstractCommand : commands) { - if (abstractCommand.getCommand().equalsIgnoreCase(command.getName())) { - if (strings.length == 0) { - processRequirements(abstractCommand, commandSender, strings); - return true; - } - } else if (strings.length != 0 && abstractCommand.getParent() != null && abstractCommand.getParent().getCommand().equalsIgnoreCase(command.getName())) { - String cmd = strings[0]; - if (cmd.equalsIgnoreCase(abstractCommand.getCommand())) { - processRequirements(abstractCommand, commandSender, strings); - return true; - } - } - } - commandSender.sendMessage(instance.getReferences().getPrefix() + Methods.formatText("&7The command you entered does not exist or is spelt incorrectly.")); - return true; - } - - private void processRequirements(AbstractCommand command, CommandSender sender, String[] strings) { - if (!(sender instanceof Player) && command.isNoConsole()) { - sender.sendMessage("You must be a player to use this command."); - return; - } - if (command.getPermissionNode() == null || sender.hasPermission(command.getPermissionNode())) { - AbstractCommand.ReturnType returnType = command.runCommand(instance, sender, strings); - if (returnType == AbstractCommand.ReturnType.SYNTAX_ERROR) { - sender.sendMessage(instance.getReferences().getPrefix() + Methods.formatText("&cInvalid Syntax!")); - sender.sendMessage(instance.getReferences().getPrefix() + Methods.formatText("&7The valid syntax is: &6" + command.getSyntax() + "&7.")); - } - return; - } - sender.sendMessage(instance.getReferences().getPrefix() + instance.getLocale().getMessage("event.general.nopermission")); - } - - public List getCommands() { - return Collections.unmodifiableList(commands); - } -} diff --git a/src/main/java/com/songoda/epicbuckets/command/commands/CommandAdminPanel.java b/src/main/java/com/songoda/epicbuckets/command/commands/CommandAdminPanel.java deleted file mode 100644 index 28951ab..0000000 --- a/src/main/java/com/songoda/epicbuckets/command/commands/CommandAdminPanel.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.songoda.epicbuckets.command.commands; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.References; -import com.songoda.epicbuckets.command.AbstractCommand; -import com.songoda.epicbuckets.util.ChatUtil; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public class CommandAdminToggle extends AbstractCommand { - - public CommandAdminToggle(AbstractCommand parent) { - super(parent, true, "admin toggle"); - } - - @Override - protected ReturnType runCommand(EpicBuckets instance, CommandSender sender, String... args) { - instance.getGenbucketManager().toggleAdmin((Player)sender); - return ReturnType.SUCCESS; - } - - @Override - public String getPermissionNode() { - return "epicbuckets.admin"; - } - - @Override - public String getSyntax() { - return "/eb admin toggle"; - } - - @Override - public String getDescription() { - return "Toggles your admin status to receive genbucket placement notifications"; - } -} diff --git a/src/main/java/com/songoda/epicbuckets/command/commands/CommandAdminToggle.java b/src/main/java/com/songoda/epicbuckets/command/commands/CommandAdminToggle.java deleted file mode 100644 index a4964c3..0000000 --- a/src/main/java/com/songoda/epicbuckets/command/commands/CommandAdminToggle.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.songoda.epicbuckets.command.commands; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.References; -import com.songoda.epicbuckets.command.AbstractCommand; -import com.songoda.epicbuckets.util.ChatUtil; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public class CommandToggle extends AbstractCommand { - - public CommandToggle(AbstractCommand parent) { - super(parent, true, "admin toggle"); - } - - @Override - protected ReturnType runCommand(EpicBuckets instance, CommandSender sender, String... args) { - instance.getGenbucketManager().toggleAdmin((Player)sender); - return ReturnType.SUCCESS; - } - - @Override - public String getPermissionNode() { - return "epicbuckets.admin"; - } - - @Override - public String getSyntax() { - return "/eb admin toggle"; - } - - @Override - public String getDescription() { - return "Toggles your admin status to receive genbucket placement notifications"; - } -} diff --git a/src/main/java/com/songoda/epicbuckets/command/commands/CommandEpicBuckets.java b/src/main/java/com/songoda/epicbuckets/command/commands/CommandEpicBuckets.java deleted file mode 100644 index ab92eda..0000000 --- a/src/main/java/com/songoda/epicbuckets/command/commands/CommandEpicBuckets.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.songoda.epicbuckets.command.commands; - -import com.songoda.epicfarming.EpicFarmingPlugin; -import com.songoda.epicfarming.command.AbstractCommand; -import com.songoda.epicfarming.utils.Methods; -import org.bukkit.command.CommandSender; - -public class CommandEpicFarming extends AbstractCommand { - - public CommandEpicFarming() { - super("EpicFarming", null, false); - } - - @Override - protected ReturnType runCommand(EpicFarmingPlugin instance, CommandSender sender, String... args) { - sender.sendMessage(""); - sender.sendMessage(Methods.formatText(instance.getReferences().getPrefix() + "&7Version " + instance.getDescription().getVersion() + " Created with <3 by &5&l&oBrianna")); - - for (AbstractCommand command : instance.getCommandManager().getCommands()) { - if (command.getPermissionNode() == null || sender.hasPermission(command.getPermissionNode())) { - sender.sendMessage(Methods.formatText("&8 - &a" + command.getSyntax() + "&7 - " + command.getDescription())); - } - } - sender.sendMessage(""); - - return ReturnType.SUCCESS; - } - - @Override - public String getPermissionNode() { - return null; - } - - @Override - public String getSyntax() { - return "/EpicFarming"; - } - - @Override - public String getDescription() { - return "Displays this page."; - } -} diff --git a/src/main/java/com/songoda/epicbuckets/command/commands/CommandGive.java b/src/main/java/com/songoda/epicbuckets/command/commands/CommandGive.java deleted file mode 100644 index 0ed6be0..0000000 --- a/src/main/java/com/songoda/epicbuckets/command/commands/CommandGive.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.songoda.epicbuckets.command.commands; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.References; -import com.songoda.epicbuckets.command.AbstractCommand; -import com.songoda.epicbuckets.util.ChatUtil; -import org.bukkit.command.CommandSender; - -public class CommandReload extends AbstractCommand { - - public CommandReload(AbstractCommand parent) { - super(parent, false, "reload"); - } - - @Override - protected ReturnType runCommand(EpicBuckets instance, CommandSender sender, String... args) { - instance.reload(); - sender.sendMessage(ChatUtil.colorPrefix(instance.getLocale().getMessage("command.reload.success"))); - return ReturnType.SUCCESS; - } - - @Override - public String getPermissionNode() { - return "epicbuckets.admin"; - } - - @Override - public String getSyntax() { - return "/eb reload"; - } - - @Override - public String getDescription() { - return "Reloads the messages & config files"; - } -} diff --git a/src/main/java/com/songoda/epicbuckets/command/commands/CommandHelp.java b/src/main/java/com/songoda/epicbuckets/command/commands/CommandHelp.java deleted file mode 100644 index 50bc25a..0000000 --- a/src/main/java/com/songoda/epicbuckets/command/commands/CommandHelp.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.songoda.epicbuckets.command.commands; - -public class CommandHelp { -} diff --git a/src/main/java/com/songoda/epicbuckets/command/commands/CommandReload.java b/src/main/java/com/songoda/epicbuckets/command/commands/CommandReload.java deleted file mode 100644 index cffadd8..0000000 --- a/src/main/java/com/songoda/epicbuckets/command/commands/CommandReload.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.songoda.epicbuckets.command.commands; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.References; -import com.songoda.epicbuckets.command.AbstractCommand; -import com.songoda.epicbuckets.util.ChatUtil; -import org.bukkit.command.CommandSender; - -public class CommandHelp extends AbstractCommand { - - public CommandHelp(AbstractCommand parent) { - super(parent, true, "help", "?"); - } - - @Override - protected ReturnType runCommand(EpicBuckets instance, CommandSender sender, String... args) { - sender.sendMessage(""); - sender.sendMessage(ChatUtil.colorString(References.getPrefix() + "&7Version " + instance.getDescription().getVersion() + " Created with <3 by &5&l&oBrianna")); - - for (AbstractCommand command : instance.getCommandManager().getCommands()) { - if (command.getPermissionNode() == null || sender.hasPermission(command.getPermissionNode())) { - sender.sendMessage(ChatUtil.colorString("&8 - &a" + command.getSyntax() + "&7 - " + command.getDescription())); - } - } - sender.sendMessage(""); - - return ReturnType.SUCCESS; - } - - @Override - public String getPermissionNode() { - return null; - } - - @Override - public String getSyntax() { - return "/Eb help/?"; - } - - @Override - public String getDescription() { - return "Displays this page."; - } -} diff --git a/src/main/java/com/songoda/epicbuckets/event/GenbucketPlaceEvent.java b/src/main/java/com/songoda/epicbuckets/event/GenbucketPlaceEvent.java deleted file mode 100644 index 89d8f55..0000000 --- a/src/main/java/com/songoda/epicbuckets/event/GenbucketPlaceEvent.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.songoda.epicbuckets.event; - -import com.songoda.epicbuckets.genbucket.Genbucket; -import org.bukkit.entity.Player; -import org.bukkit.event.Cancellable; -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -public class GenbucketPlaceEvent extends Event implements Cancellable { - - private final Player player; - private final Genbucket genbucket; - private boolean isCancelled; - - public GenbucketPlaceEvent(Player player, Genbucket genbucket) { - this.player = player; - this.genbucket = genbucket; - this.isCancelled = false; - } - - public Player getPlayer() { - return this.player; - } - - public Genbucket getGenbucket() { - return this.genbucket; - } - - /* - Needed for the event - */ - private static final HandlerList HANDLERS = new HandlerList(); - - public HandlerList getHandlers() { - return HANDLERS; - } - - public static HandlerList getHandlerList() { - return HANDLERS; - } - - @Override - public boolean isCancelled() { - return this.isCancelled; - } - - @Override - public void setCancelled(boolean b) { - this.isCancelled = b; - } -} diff --git a/src/main/java/com/songoda/epicbuckets/file/Config.java b/src/main/java/com/songoda/epicbuckets/file/Config.java deleted file mode 100644 index 8a8a099..0000000 --- a/src/main/java/com/songoda/epicbuckets/file/Config.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.songoda.epicbuckets.file; - -import com.songoda.epicbuckets.EpicBuckets; -import org.bukkit.configuration.InvalidConfigurationException; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; - -import java.io.File; -import java.io.IOException; - -public class Config { - - private FileConfiguration handler; - private File file; - private boolean isResource; - - public Config(File file, boolean resource) { - this.file = file; - this.isResource = resource; - initializeHandler(); - } - - private void initializeHandler() { - if (!file.exists()) { - try { - if (isResource) { - EpicBuckets.getInstance().saveResource(file.getName(), false); - } else { - file.createNewFile(); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - handler = YamlConfiguration.loadConfiguration(file); - } - - public void reloadConfig() { - try { - handler.load(file); - } catch (InvalidConfigurationException | IOException e) { - e.printStackTrace(); - } - } - - public FileConfiguration getConfig() { - return handler; - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/file/ConfigManager.java b/src/main/java/com/songoda/epicbuckets/file/ConfigManager.java deleted file mode 100644 index a293ea6..0000000 --- a/src/main/java/com/songoda/epicbuckets/file/ConfigManager.java +++ /dev/null @@ -1,475 +0,0 @@ -package com.songoda.epicbuckets.file; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.genbucket.GenbucketType; -import com.songoda.epicbuckets.util.InventoryHelper; -import com.songoda.epicbuckets.util.Validator; -import com.songoda.epicbuckets.util.XMaterial; -import me.lucko.helper.cooldown.Cooldown; -import me.lucko.helper.cooldown.CooldownMap; -import me.lucko.helper.item.ItemStackBuilder; -import org.bukkit.block.BlockFace; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.entity.Item; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - -import java.io.File; -import java.util.*; -import java.util.concurrent.TimeUnit; -import java.util.function.Consumer; -import java.util.stream.Collectors; - -public class ConfigManager { - - private EpicBuckets epicBuckets; - private HashMap configDatabase; - - private HashMap> settingsGenbucketBooleans; - private HashMap> settingsGenbucketIntegers; - - private HashMap> settingsHooks; - - private HashMap> settingsShop; - - private String backButtonPath = "BACK-BUTTON"; - private String fillItemPath = "FILL-ITEM"; - private String bulkShopIncreasePath = "BULK-SHOP-INVENTORY.increase-item"; - private String bulkShopDecreasePath = "BULK-SHOP-INVENTORY.decrease-item"; - private String bulkShopPurchasePath = "BULK-SHOP-INVENTORY.purchase-item"; - private String menuItemsPath = "MENU-ITEMS"; - - private List ignoredMaterials; - private List psuedoMaterials; - - private LinkedHashMap genbucketGroups; - - private HashMap> genbucketValidFaces; - private HashMap genbucketDefaultFace; - private HashMap> genbucketLogicalFaces; - - private boolean supportFactions; - private boolean supportWorldGuard; - private boolean supportGriefPrevention; - - private boolean gensInWilderness; - private boolean enchantGenbuckets; - private boolean spongeCheck; - private int spongeRadius; - private int maxGenbucketsPerPlayer; - private boolean unlimitedGenbuckets; - - private boolean infiniteUse; - private boolean chargeInfiniteUse; - private HashMap> infiniteUseCost; - - private int genbucketDelay; - private CooldownMap cooldownMap; - - private int maxVerticalHeight; - private int maxHorizontalLength; - private int delay; - private boolean genbucketsDisabled; - private int inventorySize; - private String inventoryName; - private boolean fillInventory; - - private ItemStack backButton; - private ItemStack fillItem; - - public ConfigManager() { - this.epicBuckets = EpicBuckets.getInstance(); - } - - public void setup() { - configDatabase = new HashMap<>(); - createConfig("shops", true); - loadData(); - setupBackButton(); - setupFillItem(); - - loadBooleanSettings(); - loadIntegerSettings(); - - epicBuckets.getShopManager().init(); - } - - private void loadIntegerSettings() { - /* - Genbucket - */ - settingsGenbucketIntegers = new HashMap<>(); - settingsGenbucketIntegers.put("Cooldown between placements", this::setCooldown); - settingsGenbucketIntegers.put("Sponge radius", this::setSpongeRadius); - settingsGenbucketIntegers.put("Max active gens per player", this::setMaxGenbucketsPerPlayer); - settingsGenbucketIntegers.put("Max vertical height", this::setMaxVerticalHeight); - settingsGenbucketIntegers.put("Max horizontal length", this::setMaxHorizontalLength); - settingsGenbucketIntegers.put("Genbucket Speed", this::setDelay); - } - - private void loadBooleanSettings() { - /* - Genbucket - */ - settingsGenbucketBooleans = new HashMap<>(); - settingsGenbucketBooleans.put("Gens in Wilderness", this::setGensInWilderness); - settingsGenbucketBooleans.put("Infinite genbucket use", this::setInfiniteUse); - settingsGenbucketBooleans.put("Charge infinite use placement", this::setChargeInfiniteUse); - settingsGenbucketBooleans.put("Sponge check", this::setSpongeCheck); - settingsGenbucketBooleans.put("Unlimited active gens", this::setUnlimitedGenbuckets); - settingsGenbucketBooleans.put("Disable genbuckets", this::setGenbucketsDisabled); - - /* - Hooks - */ - settingsHooks = new HashMap<>(); - settingsHooks.put("Factions Support", this::setSupportFactions); - settingsHooks.put("Worldguard Support", this::setSupportWorldGuard); - settingsHooks.put("GriefPrevention Support", this::setSupportGriefPrevention); - - /* - Shop - */ - settingsShop = new HashMap<>(); - settingsShop.put("Close GUI after purchase", epicBuckets.getShopManager()::setCloseAfterPurchase); - settingsShop.put("Fill bulk shop", epicBuckets.getShopManager()::setBulkFillInventory); - settingsShop.put("Fill shops", this::setFillInventory); - settingsShop.put("Use back buttons in shops", epicBuckets.getShopManager()::setUseBackButtons); - } - - public void reload() { - reloadConfig("shops"); - epicBuckets.reloadConfig(); - loadData(); - setupBackButton(); - setupFillItem(); - } - - private void loadData() { - ignoredMaterials = new ArrayList<>(); - psuedoMaterials = new ArrayList<>(); - genbucketGroups = new LinkedHashMap<>(); - infiniteUseCost = new HashMap<>(); - - loadValidFaces(); - - ignoredMaterials = InventoryHelper.convertMaterialList(epicBuckets.getConfig().getStringList("IGNORE-MATERIALS"), "IGNORE-MATERIALS"); - psuedoMaterials = InventoryHelper.convertMaterialList(epicBuckets.getConfig().getStringList("PSUEDO-MATERIALS"), "PSUEDO-MATERIALS"); - supportFactions = epicBuckets.getConfig().getBoolean("FACTIONS-SUPPORT"); - supportWorldGuard = epicBuckets.getConfig().getBoolean("WORLDGUARD-SUPPORT"); - supportGriefPrevention = epicBuckets.getConfig().getBoolean("GRIEFPREVENTION-SUPPORT"); - gensInWilderness = epicBuckets.getConfig().getBoolean("ENABLE-GENS-IN-WILDERNESS"); - enchantGenbuckets = epicBuckets.getConfig().getBoolean("ENCHANT"); - spongeCheck = epicBuckets.getConfig().getBoolean("USE-SPONGE-SUPPORT"); - spongeRadius = epicBuckets.getConfig().getInt("SPONGE-RADIUS"); - maxGenbucketsPerPlayer = epicBuckets.getConfig().getInt("MAX-ACTIVE-GEN-PER-PLAYER"); - unlimitedGenbuckets = epicBuckets.getConfig().getBoolean("PLACE-UNLIMTED-GENS"); - infiniteUse = epicBuckets.getConfig().getBoolean("INFINITE-USE"); - maxVerticalHeight = epicBuckets.getConfig().getInt("MAX-VERTICAL-HEIGHT"); - maxHorizontalLength = epicBuckets.getConfig().getInt("MAX-HORIZONTAL-LENGTH"); - delay = epicBuckets.getConfig().getInt("DELAY"); - setGenbucketsDisabled(epicBuckets.getConfig().getBoolean("DISABLE-GENBUCKETS")); - inventorySize = epicBuckets.getConfig().getInt(menuItemsPath + ".size"); - inventoryName = epicBuckets.getConfig().getString(menuItemsPath + ".inventory-name"); - fillInventory = epicBuckets.getConfig().getBoolean(menuItemsPath + ".fill"); - chargeInfiniteUse = epicBuckets.getConfig().getBoolean("CHARGE-FOR-INFINITE-USE"); - - epicBuckets.getConfig().getConfigurationSection("CUSTOM-ACTIVE-GEN-PER-PLAY").getKeys(false) - .forEach(s -> genbucketGroups.put(epicBuckets.getConfig().getString("CUSTOM-ACTIVE-GEN-PER-PLAY." + s).split(":")[1], - Integer.parseInt(epicBuckets.getConfig().getString("CUSTOM-ACTIVE-GEN-PER-PLAY." + s).split(":")[0]))); - - epicBuckets.getConfig().getConfigurationSection("COST-FOR-INFINITE-USE").getKeys(false) - .forEach(bucket -> { - HashMap chargingCostsPerItem = new HashMap<>(); - epicBuckets.getConfig().getConfigurationSection("COST-FOR-INFINITE-USE." + bucket).getKeys(false) - .forEach(item -> chargingCostsPerItem.put(XMaterial.valueOf(item).parseItem(), epicBuckets.getConfig().getDouble("COST-FOR-INFINITE-USE." + bucket + "." + item))); - infiniteUseCost.put(GenbucketType.valueOf(bucket), chargingCostsPerItem); - }); - - setCooldown(epicBuckets.getConfig().getInt("GENBUCKET-DELAY")); - } - - private void loadValidFaces() { - genbucketValidFaces = new HashMap<>(); - genbucketDefaultFace = new HashMap<>(); - genbucketLogicalFaces = new HashMap<>(); - - epicBuckets.getConfig().getConfigurationSection("VALID-FACES").getKeys(false).forEach(s -> { - genbucketDefaultFace.put(GenbucketType.valueOf(s), BlockFace.valueOf(epicBuckets.getConfig().getString("VALID-FACES." + s + ".DEFAULT"))); - genbucketValidFaces.put(GenbucketType.valueOf(s), epicBuckets.getConfig().getStringList("VALID-FACES." + s + ".WHITELIST").stream().map(s1 -> BlockFace.valueOf(s1)).collect(Collectors.toList())); - }); - - genbucketLogicalFaces.put(GenbucketType.HORIZONTAL, new ArrayList<>(Arrays.asList(BlockFace.EAST, BlockFace.NORTH, BlockFace.WEST, BlockFace.SOUTH))); - genbucketLogicalFaces.put(GenbucketType.VERTICAL, new ArrayList<>(Arrays.asList(BlockFace.UP, BlockFace.DOWN))); - genbucketLogicalFaces.put(GenbucketType.INFUSED, new ArrayList<>(Arrays.asList(BlockFace.EAST, BlockFace.NORTH, BlockFace.WEST, BlockFace.SOUTH))); - genbucketLogicalFaces.put(GenbucketType.PSUEDO, new ArrayList<>(Arrays.asList(BlockFace.UP, BlockFace.DOWN))); - } - - private void setCooldown(int genbucketDelay) { - setGenbucketDelay(genbucketDelay); - if (getGenbucketDelay() > 0) { - cooldownMap = CooldownMap.create(Cooldown.of(getGenbucketDelay() / 20, TimeUnit.SECONDS)); - } else { - cooldownMap = null; - } - } - - private void setupFillItem() { - boolean m = Validator.isMaterial(epicBuckets.getConfig().getString(getFillItemPath() + ".material")); - - fillItem = ((!m) ? XMaterial.BLACK_STAINED_GLASS_PANE.parseItem() : XMaterial.valueOf(epicBuckets.getConfig().getString(getFillItemPath() + ".material")).parseItem()); - fillItem = InventoryHelper.setDisplayName(fillItem, epicBuckets.getConfig().getString(getFillItemPath() + ".name")); - } - - private void setupBackButton() { - boolean m = Validator.isMaterial(epicBuckets.getConfig().getString(getBackButtonPath() + ".material")); - - backButton = ((!m) ? XMaterial.BARRIER.parseItem() : XMaterial.valueOf(epicBuckets.getConfig().getString(getBackButtonPath() + ".material")).parseItem()); - backButton = InventoryHelper.setDisplayName(backButton, epicBuckets.getConfig().getString(getBackButtonPath() + ".name")); - } - - public boolean isOnCooldown(Player player) { - if (cooldownMap == null) return false; - return !cooldownMap.test(player); - } - - public void createConfig(String name, boolean resource) { - File f = new File(epicBuckets.getDataFolder(), name + ".yml"); - configDatabase.put(name, new Config(f, resource)); - } - - public void reloadConfig(String name) { - if (!configDatabase.containsKey(name)) return; - configDatabase.get(name).reloadConfig(); - } - - public FileConfiguration getConfig(String name) { - if (!configDatabase.containsKey(name)) return null; - return configDatabase.get(name).getConfig(); - } - - public String getBackButtonPath() { - return backButtonPath; - } - - public String getFillItemPath() { - return fillItemPath; - } - - public String getBulkShopIncreasePath() { - return bulkShopIncreasePath; - } - - public String getBulkShopDecreasePath() { - return bulkShopDecreasePath; - } - - public String getBulkShopPurchasePath() { - return bulkShopPurchasePath; - } - - public List getIgnoredMaterials() { - return ignoredMaterials; - } - - public List getPsuedoMaterials() { - return psuedoMaterials; - } - - public boolean isSupportFactions() { - return supportFactions; - } - - public boolean isSupportWorldGuard() { - return supportWorldGuard; - } - - public boolean isSupportGriefPrevention() { - return supportGriefPrevention; - } - - public boolean isGensInWilderness() { - return gensInWilderness; - } - - public boolean isEnchantGenbuckets() { - return enchantGenbuckets; - } - - public boolean isSpongeCheck() { - return spongeCheck; - } - - public int getSpongeRadius() { - return spongeRadius; - } - - public int getMaxGenbucketsPerPlayer() { - return maxGenbucketsPerPlayer; - } - - public boolean isUnlimitedGenbuckets() { - return unlimitedGenbuckets; - } - - public int getMaxVerticalHeight() { - return maxVerticalHeight; - } - - public int getMaxHorizontalLength() { - return maxHorizontalLength; - } - - public int getDelay() { - return delay; - } - - public void setGenbucketsDisabled(boolean enabled) { - this.genbucketsDisabled = enabled; - } - - public boolean isGenbucketsDisabled() { - return genbucketsDisabled; - } - - public ItemStack getBackButton() { - return backButton; - } - - public String getMenuItemsPath() { - return menuItemsPath; - } - - public int getInventorySize() { - return inventorySize; - } - - public String getInventoryName() { - return inventoryName; - } - - public boolean isFillInventory() { - return fillInventory; - } - - public ItemStack getFillItem() { - return fillItem; - } - - public LinkedHashMap getGenbucketGroups() { - return genbucketGroups; - } - - public List getValidFacesForGenbucket(GenbucketType genbucketType) { - return genbucketValidFaces.get(genbucketType); - } - - public BlockFace getDefaultFaceForGenbucket(GenbucketType genbucketType) { - return genbucketDefaultFace.get(genbucketType); - } - - public List getLogicalFacesForGenbucket(GenbucketType genbucketType) { - return genbucketLogicalFaces.get(genbucketType); - } - - public boolean isInfiniteUse() { - return infiniteUse; - } - - public boolean isChargeInfiniteUse() { - return chargeInfiniteUse; - } - - public double getInfiniteUseCostForGenbucketType(GenbucketType genbucketType, ItemStack item) { - for (ItemStack itemStack : infiniteUseCost.get(genbucketType).keySet()) { - if (itemStack.getType() == item.getType() && itemStack.getData() == item.getData()) { - return infiniteUseCost.get(genbucketType).get(itemStack); - } - } - return 0; - } - - public int getGenbucketDelay() { - return genbucketDelay; - } - - public void setBackButtonPath(String backButtonPath) { - this.backButtonPath = backButtonPath; - } - - public void setSupportFactions(boolean supportFactions) { - this.supportFactions = supportFactions; - } - - public void setSupportWorldGuard(boolean supportWorldGuard) { - this.supportWorldGuard = supportWorldGuard; - } - - public void setSupportGriefPrevention(boolean supportGriefPrevention) { - this.supportGriefPrevention = supportGriefPrevention; - } - - public void setGensInWilderness(boolean gensInWilderness) { - this.gensInWilderness = gensInWilderness; - } - - public void setSpongeCheck(boolean spongeCheck) { - this.spongeCheck = spongeCheck; - } - - public void setSpongeRadius(int spongeRadius) { - this.spongeRadius = spongeRadius; - } - - public void setMaxGenbucketsPerPlayer(int maxGenbucketsPerPlayer) { - this.maxGenbucketsPerPlayer = maxGenbucketsPerPlayer; - } - - public void setUnlimitedGenbuckets(boolean unlimitedGenbuckets) { - this.unlimitedGenbuckets = unlimitedGenbuckets; - } - - public void setInfiniteUse(boolean infiniteUse) { - this.infiniteUse = infiniteUse; - } - - public void setChargeInfiniteUse(boolean chargeInfiniteUse) { - this.chargeInfiniteUse = chargeInfiniteUse; - } - - public void setGenbucketDelay(int genbucketDelay) { - this.genbucketDelay = genbucketDelay; - } - - public void setMaxVerticalHeight(int maxVerticalHeight) { - this.maxVerticalHeight = maxVerticalHeight; - } - - public void setMaxHorizontalLength(int maxHorizontalLength) { - this.maxHorizontalLength = maxHorizontalLength; - } - - public void setDelay(int delay) { - this.delay = delay; - } - - public void setFillInventory(boolean fillInventory) { - this.fillInventory = fillInventory; - } - - public HashMap> getSettingsGenbucketBooleans() { - return settingsGenbucketBooleans; - } - - public HashMap> getSettingsGenbucketIntegers() { - return settingsGenbucketIntegers; - } - - public HashMap> getSettingsHooks() { - return settingsHooks; - } - - public HashMap> getSettingsShop() { - return settingsShop; - } -} diff --git a/src/main/java/com/songoda/epicbuckets/genbucket/Genbucket.java b/src/main/java/com/songoda/epicbuckets/genbucket/Genbucket.java deleted file mode 100644 index edcbf9b..0000000 --- a/src/main/java/com/songoda/epicbuckets/genbucket/Genbucket.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.songoda.epicbuckets.genbucket; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.shop.SubShop; -import com.songoda.epicbuckets.util.XMaterial; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.scheduler.BukkitTask; - -import java.util.UUID; - -public abstract class Genbucket { - - protected EpicBuckets epicBuckets; - private Player owner; - private GenbucketType genbucketType; - private BlockFace blockFace; - private Block clickedBlock; - private Block sourceBlock; - private Block currentBlock; - private SubShop subShop; - private UUID genUUID; - private Location playerLocation; - private BukkitTask generation; - private boolean isGravityGen; - - public Genbucket(GenbucketType genbucketType, Block clickedBlock, BlockFace blockFace, SubShop s, Player owner) { - epicBuckets = EpicBuckets.getInstance(); - this.genUUID = UUID.randomUUID(); - this.owner = owner; - this.genbucketType = genbucketType; - this.blockFace = blockFace; - this.clickedBlock = clickedBlock; - this.currentBlock = clickedBlock; - this.sourceBlock = clickedBlock.getRelative(blockFace); - this.subShop = s; - this.playerLocation = owner.getLocation(); - isGravityGen = s.getGenItem().getType().hasGravity(); - } - - public abstract void generate(); - - public Block getSourceBlock() { - return sourceBlock; - } - - public Player getOwner() { - return owner; - } - - public Location getPlayerLocation() { - return playerLocation; - } - - public Location getClickedLocation() { - return clickedBlock.getLocation(); - } - - public UUID getGenUUID() { - return genUUID; - } - - public GenbucketType getGenbucketType() { - return genbucketType; - } - - public boolean isValidBlockFace() { - return epicBuckets.getConfigManager().getValidFacesForGenbucket(getGenbucketType()).contains(getBlockFace()); - } - - public boolean calculateBlockFace() { - if (!isValidBlockFace()) return false; - if (!epicBuckets.getConfigManager().getLogicalFacesForGenbucket(getGenbucketType()).contains(getBlockFace())) { - blockFace = epicBuckets.getConfigManager().getDefaultFaceForGenbucket(genbucketType); - clickedBlock = sourceBlock.getRelative(getBlockFace().getOppositeFace()); - currentBlock = clickedBlock; - } - return true; - } - - public BukkitTask getGeneration() { - return generation; - } - - public void setGeneration(BukkitTask task) { - generation = task; - } - - protected boolean isBelowVoid(int moved) { - if (blockFace != BlockFace.DOWN) return false; - return sourceBlock.getRelative(0, -moved, 0).getLocation().getBlockY() < 0; - } - - protected boolean gravityGen(int moved) { - Block b = getNextBlock(); - if (isBelowVoid(moved + 1)) return false; - if (b.getRelative(getBlockFace()).getType() != Material.AIR) { - if (b.getRelative(getBlockFace()).getType() != XMaterial.COBBLESTONE.parseMaterial()) { - b.setType(getGenItem().getType()); - return false; - } - } - b.getRelative(getBlockFace()).setType(XMaterial.COBBLESTONE.parseMaterial()); - b.setType(getGenItem().getType()); - return true; - } - - protected boolean gravityGenInfused(int moved, BlockFace blockFace) { - Block b = getNextBlock(moved, blockFace); - if (isBelowVoid(moved + 1)) return false; - if (b.getRelative(BlockFace.DOWN).getType() != Material.AIR) { - if (b.getRelative(BlockFace.DOWN).getType() != XMaterial.COBBLESTONE.parseMaterial()) { - b.setType(getGenItem().getType()); - return false; - } - } - b.getRelative(BlockFace.DOWN).setType(XMaterial.COBBLESTONE.parseMaterial()); - b.setType(getGenItem().getType()); - return true; - } - - protected Block getNextBlock(int moved, BlockFace blockFace) { - return clickedBlock.getRelative(blockFace).getRelative(0, moved, 0); - } - - protected Block getNextBlock() { - currentBlock = currentBlock.getRelative(getBlockFace()); - return currentBlock; - } - - protected void fixHole(Block block) { - if (block.getType() == XMaterial.AIR.parseMaterial()) block.setType(getGenItem().getType()); - } - - protected boolean spongeInRange(Block block) { - if (!epicBuckets.getConfigManager().isSpongeCheck()) return false; - int radius = (epicBuckets.getConfigManager().getSpongeRadius() - 1) / 2; - for (int x = -radius; x <= radius; x++) { - for (int z = -radius; z <= radius; z++) { - if (block.getRelative(x, 0, z).getType() == XMaterial.SPONGE.parseMaterial()) return true; - } - } - return false; - } - - protected boolean placeGen(Block block) { - if (!epicBuckets.getConfigManager().getIgnoredMaterials().contains(XMaterial.requestXMaterial(block.getType().name(), block.getData()))) return false; - if (spongeInRange(block)) return false; - block.setType(getGenItem().getType()); - return true; - } - - public ItemStack getGenItem() { - return subShop.getGenItem(); - } - - protected BlockFace getBlockFace() { - return blockFace; - } - - protected boolean isGravityGen() { - return isGravityGen && getBlockFace() == BlockFace.DOWN; - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/genbucket/GenbucketManager.java b/src/main/java/com/songoda/epicbuckets/genbucket/GenbucketManager.java deleted file mode 100644 index 28afcac..0000000 --- a/src/main/java/com/songoda/epicbuckets/genbucket/GenbucketManager.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.songoda.epicbuckets.genbucket; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.regionhandler.*; -import com.songoda.epicbuckets.util.ChatUtil; -import org.apache.commons.lang.StringUtils; -import org.bukkit.Location; -import org.bukkit.entity.Player; - -import java.util.*; - -public class GenbucketManager { - - private EpicBuckets epicBuckets; - private HashMap> activeGens; - private List admins; - - public GenbucketManager() { - this.epicBuckets = EpicBuckets.getInstance(); - activeGens = new HashMap<>(); - admins = new ArrayList<>(); - } - - public void notifyAdmins(Player user, Genbucket genbucket) { - admins.forEach(player -> player.sendMessage(ChatUtil.colorPrefix(epicBuckets.getLocale().getMessage("event.genbucket.admin").replace("%player%", user.getName()).replace("%genbucket%", StringUtils.capitalize(genbucket.getGenbucketType().name.toLowerCase()) + " genbucket")))); - } - - public void toggleAdmin(Player player) { - if (admins.contains(player)) { - removeAdmin(player); - player.sendMessage(ChatUtil.colorPrefix(epicBuckets.getLocale().getMessage("command.admin.toggle").replace("%mode%", "&cdisabled"))); - return; - } - addAdmin(player); - player.sendMessage(ChatUtil.colorPrefix(epicBuckets.getLocale().getMessage("command.admin.toggle").replace("%mode%", "&aenabled"))); - } - - private void removeAdmin(Player player) { - admins.remove(player); - } - - private void addAdmin(Player player) { - admins.add(player); - } - - public List activeGensInOneList() { - List gens = new ArrayList<>(); - activeGens.forEach((uuid, genbuckets) -> gens.addAll(genbuckets)); - return gens; - } - - public int getTotalActiveGenbuckets(HashMap> gens) { - int total = 0; - for (UUID uuid : gens.keySet()) { - total += gens.get(uuid).size(); - } - return total; - } - - public void unregisterGenbucketForPlayer(Player owner, UUID genUUID) { - List genbuckets = activeGens.get(owner.getUniqueId()); - List newGenbuckets = new ArrayList<>(); - genbuckets.stream().filter(genbucket -> genbucket.getGenUUID() != genUUID).forEach(newGenbuckets::add); - activeGens.put(owner.getUniqueId(), newGenbuckets); - } - - public void registerGenbucketForPlayer(Player owner, Genbucket genbucket) { - if (!activeGens.containsKey(owner.getUniqueId())) activeGens.put(owner.getUniqueId(), new ArrayList<>(Arrays.asList(genbucket))); - List genbucketItems = activeGens.get(owner.getUniqueId()); - genbucketItems.add(genbucket); - activeGens.put(owner.getUniqueId(), genbucketItems); - } - - public boolean canRegisterNewGenbucket(Player owner) { - if (epicBuckets.getConfigManager().isUnlimitedGenbuckets()) return true; - if (!activeGens.containsKey(owner.getUniqueId())) return true; - if (activeGens.get(owner.getUniqueId()).size() <= getMaxGenbucketsForPlayer(owner)) return true; - return false; - } - - public int getMaxGenbucketsForPlayer(Player owner) { - LinkedHashMap groups = epicBuckets.getConfigManager().getGenbucketGroups(); - for (String perm : groups.keySet()) { - if (owner.hasPermission(perm)) return groups.get(perm); - } - return epicBuckets.getConfigManager().getMaxGenbucketsPerPlayer(); - } - - public boolean canPlaceGenbucket(Player player, Location location) { - boolean factionsCheck = RegionFactions.canBuild(player, location); - boolean griefPreventionCheck = RegionGriefPrevention.canBuild(player, location); - boolean worldGuardCheck = RegionWorldGuard.canBuild(player, location); - boolean worldBorderCheck = RegionWorldBorder.isOutsideOfBorder(location); - - if (!factionsCheck || !griefPreventionCheck || !worldGuardCheck || worldBorderCheck) { - return false; - } - - return true; - } - - public HashMap> getActiveGens() { - return activeGens; - } -} diff --git a/src/main/java/com/songoda/epicbuckets/genbucket/GenbucketType.java b/src/main/java/com/songoda/epicbuckets/genbucket/GenbucketType.java deleted file mode 100644 index 24076e3..0000000 --- a/src/main/java/com/songoda/epicbuckets/genbucket/GenbucketType.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.songoda.epicbuckets.genbucket; - -public enum GenbucketType { - - HORIZONTAL("HORIZONTAL"), - INFUSED("INFUSED"), - PSUEDO("PSUEDO"), - VERTICAL("VERTICAL"); - - public final String name; - - GenbucketType(String name) { - this.name = name; - } - - @Override - public String toString() { - return name; - } - -} - diff --git a/src/main/java/com/songoda/epicbuckets/genbucket/types/Horizontal.java b/src/main/java/com/songoda/epicbuckets/genbucket/types/Horizontal.java deleted file mode 100644 index cd7a21f..0000000 --- a/src/main/java/com/songoda/epicbuckets/genbucket/types/Horizontal.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.songoda.epicbuckets.genbucket.types; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.genbucket.Genbucket; -import com.songoda.epicbuckets.genbucket.GenbucketType; -import com.songoda.epicbuckets.shop.SubShop; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; - -public class Horizontal extends Genbucket { - - private int blocksPlaced = 0; - - public Horizontal(Player owner, Block clickedBlock, BlockFace blockFace, SubShop s) { - super(GenbucketType.HORIZONTAL, clickedBlock, blockFace, s, owner); - } - - @Override - public void generate() { - BukkitRunnable runnable = new BukkitRunnable() { - @Override - public void run() { - if (blocksPlaced >= epicBuckets.getConfigManager().getMaxHorizontalLength() || !placeGen(getNextBlock())) { - epicBuckets.getGenbucketManager().unregisterGenbucketForPlayer(getOwner(), getGenUUID()); - cancel(); - return; - } - blocksPlaced++; - } - }; - setGeneration(runnable.runTaskTimer(EpicBuckets.getInstance(), 0, epicBuckets.getConfigManager().getDelay())); - } -} diff --git a/src/main/java/com/songoda/epicbuckets/genbucket/types/Infused.java b/src/main/java/com/songoda/epicbuckets/genbucket/types/Infused.java deleted file mode 100644 index be84682..0000000 --- a/src/main/java/com/songoda/epicbuckets/genbucket/types/Infused.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.songoda.epicbuckets.genbucket.types; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.genbucket.Genbucket; -import com.songoda.epicbuckets.genbucket.GenbucketType; -import com.songoda.epicbuckets.shop.SubShop; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; - -public class Infused extends Genbucket { - - private int blocksPlaced = 0; - private boolean side1 = true; - private boolean side2 = true; - - public Infused(Player owner, Block clickedBlock, BlockFace blockFace, SubShop s) { - super(GenbucketType.INFUSED, clickedBlock, blockFace, s, owner); - } - - @Override - public void generate() { - BukkitRunnable runnable = new BukkitRunnable() { - @Override - public void run() { -// if (isGravityGen()) { -// if (!side1 && !side2) { -// epicBuckets.getGenbucketManager().unregisterGenbucketForPlayer(getOwner(), getGenUUID()); -// cancel(); -// return; -// } -// if (side1 && !gravityGenInfused(blocksPlaced, getBlockFace())) { -// side1 = false; -// } -// if (side2 && !gravityGenInfused(blocksPlaced, getBlockFace().getOppositeFace())) { -// side2 = false; -// } -// } else { - if ((!side1 && !side2) || blocksPlaced >= epicBuckets.getConfigManager().getMaxVerticalHeight()) { - epicBuckets.getGenbucketManager().unregisterGenbucketForPlayer(getOwner(), getGenUUID()); - cancel(); - return; - } - if (side1 && !placeGen(getNextBlock(blocksPlaced, getBlockFace()))) { - side1 = false; - } - if (side2 && !placeGen(getNextBlock(blocksPlaced, getBlockFace().getOppositeFace()))) { - side2 = false; - } - blocksPlaced++; -// } - } - }; - setGeneration(runnable.runTaskTimer(EpicBuckets.getInstance(), 0, epicBuckets.getConfigManager().getDelay())); - } -} diff --git a/src/main/java/com/songoda/epicbuckets/genbucket/types/PsuedoVertical.java b/src/main/java/com/songoda/epicbuckets/genbucket/types/PsuedoVertical.java deleted file mode 100644 index 9419aca..0000000 --- a/src/main/java/com/songoda/epicbuckets/genbucket/types/PsuedoVertical.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.songoda.epicbuckets.genbucket.types; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.genbucket.Genbucket; -import com.songoda.epicbuckets.genbucket.GenbucketType; -import com.songoda.epicbuckets.shop.SubShop; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; - -public class PsuedoVertical extends Genbucket { - - private int blocksUp = 0; - - public PsuedoVertical(Player owner, Block clickedBlock, BlockFace blockFace, SubShop s) { - super(GenbucketType.PSUEDO, clickedBlock, blockFace, s, owner); - } - - @Override - public void generate() { - BukkitRunnable runnable = new BukkitRunnable() { - @Override - public void run() { - if (isBelowVoid(blocksUp) || blocksUp >= epicBuckets.getConfigManager().getMaxVerticalHeight()) { - epicBuckets.getGenbucketManager().unregisterGenbucketForPlayer(getOwner(), getGenUUID()); - cancel(); - return; - } - fixHole(getNextBlock()); - blocksUp++; - } - }; - setGeneration(runnable.runTaskTimer(EpicBuckets.getInstance(), 0, epicBuckets.getConfigManager().getDelay())); - } -} diff --git a/src/main/java/com/songoda/epicbuckets/genbucket/types/Vertical.java b/src/main/java/com/songoda/epicbuckets/genbucket/types/Vertical.java deleted file mode 100644 index 7353130..0000000 --- a/src/main/java/com/songoda/epicbuckets/genbucket/types/Vertical.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.songoda.epicbuckets.genbucket.types; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.genbucket.Genbucket; -import com.songoda.epicbuckets.genbucket.GenbucketType; -import com.songoda.epicbuckets.shop.SubShop; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; - -public class Vertical extends Genbucket { - - private int blocksPlaced = 0; - - public Vertical(Player owner, Block clickedBlock, BlockFace blockFace, SubShop s) { - super(GenbucketType.VERTICAL, clickedBlock, blockFace, s, owner); - } - - @Override - public void generate() { - BukkitRunnable runnable = new BukkitRunnable() { - @Override - public void run() { - if (isGravityGen()) { - if (!gravityGen(blocksPlaced)) { - epicBuckets.getGenbucketManager().unregisterGenbucketForPlayer(getOwner(), getGenUUID()); - cancel(); - return; - } - } else if (isBelowVoid(blocksPlaced + 1) || blocksPlaced >= epicBuckets.getConfigManager().getMaxVerticalHeight() || !placeGen(getNextBlock())) { - epicBuckets.getGenbucketManager().unregisterGenbucketForPlayer(getOwner(), getGenUUID()); - cancel(); - return; - } - blocksPlaced++; - } - }; - setGeneration(runnable.runTaskTimer(EpicBuckets.getInstance(), 0, epicBuckets.getConfigManager().getDelay())); - } -} diff --git a/src/main/java/com/songoda/epicbuckets/gui/GUIBulk.java b/src/main/java/com/songoda/epicbuckets/gui/GUIBulk.java deleted file mode 100644 index 0c26e3f..0000000 --- a/src/main/java/com/songoda/epicbuckets/gui/GUIBulk.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.songoda.epicbuckets.gui; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.file.ConfigManager; -import com.songoda.epicbuckets.shop.Shop; -import com.songoda.epicbuckets.shop.ShopManager; -import com.songoda.epicbuckets.util.gui.AbstractGUI; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - -public class GUIMain extends AbstractGUI { - - private EpicBuckets epicBuckets; - private ConfigManager configManager; - private ShopManager shopManager; - - private int size; - - public GUIMain(Player player) { - super(player); - this.epicBuckets = EpicBuckets.getInstance(); - configManager = epicBuckets.getConfigManager(); - shopManager = epicBuckets.getShopManager(); - this.size = configManager.getInventorySize() * 9; - - init(EpicBuckets.getInstance().getConfigManager().getInventoryName(), size); - } - - @Override - protected void constructGUI() { - int num = 0; - while (num != size) { - ItemStack glass = configManager.getFillItem(); - inventory.setItem(num, glass); - num++; - } - - epicBuckets.getShopManager().getShops().stream().filter(Shop::isEnabled).forEach(shop -> { - inventory.setItem(shop.getSlot(), shop.getShopItem()); - }); - - } - - @Override - protected void registerClickables() { - epicBuckets.getShopManager().getShops().stream().filter(Shop::isEnabled).forEach(shop -> { - - registerClickable(shop.getSlot(), ((player1, inventory1, cursor, slot, type) -> { - new GUIShop(player, shop); - })); - }); - - } - - @Override - protected void registerOnCloses() { - - } -} diff --git a/src/main/java/com/songoda/epicbuckets/gui/GUIMain.java b/src/main/java/com/songoda/epicbuckets/gui/GUIMain.java deleted file mode 100644 index f652bb6..0000000 --- a/src/main/java/com/songoda/epicbuckets/gui/GUIMain.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.songoda.epicbuckets.gui; - -public class GUIMain { -} diff --git a/src/main/java/com/songoda/epicbuckets/gui/GUIPanel.java b/src/main/java/com/songoda/epicbuckets/gui/GUIPanel.java deleted file mode 100644 index 4a58497..0000000 --- a/src/main/java/com/songoda/epicbuckets/gui/GUIPanel.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.songoda.epicbuckets.gui; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.file.ConfigManager; -import com.songoda.epicbuckets.shop.Shop; -import com.songoda.epicbuckets.shop.ShopManager; -import com.songoda.epicbuckets.shop.SubShop; -import com.songoda.epicbuckets.util.gui.AbstractGUI; -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.ClickType; -import org.bukkit.inventory.ItemStack; - -public class GUIShop extends AbstractGUI { - - private EpicBuckets epicBuckets; - private ConfigManager configManager; - private ShopManager shopManager; - - private Shop shop; - - private int size; - - public GUIShop(Player player, Shop shop) { - super(player); - this.epicBuckets = EpicBuckets.getInstance(); - configManager = epicBuckets.getConfigManager(); - shopManager = epicBuckets.getShopManager(); - this.size = shop.getInventorySize() * 9; - this.shop = shop; - - init(shop.getInventoryName(), size); - } - - @Override - protected void constructGUI() { - if (shop.isFillInventory()) { - int num = 0; - while (num != size) { - ItemStack glass = configManager.getFillItem(); - inventory.setItem(num, glass); - num++; - } - } - if (shopManager.isUseBackButtons()) { - inventory.setItem(shop.getBackButtonSlot(), configManager.getBackButton()); - } - - shop.getSubShops().stream().filter(SubShop::isEnabled).forEach(subShop -> - inventory.setItem(subShop.getSlot(), subShop.getShopItem())); - - } - - @Override - protected void registerClickables() { - if (shopManager.isUseBackButtons()) { - registerClickable(shop.getBackButtonSlot(), ((player, inventory, cursor, slot, type) -> new GUIMain(player))); - } - - shop.getSubShops().stream().filter(SubShop::isEnabled).forEach(subShop -> { - registerClickable(subShop.getSlot(), ClickType.LEFT, ((player1, inventory1, cursor, slot, type) -> { - if (shopManager.hasEnoughFunds(player1, subShop, 1) && !shopManager.inventoryFull(player)) shopManager.buyFromShop(player, subShop, 1); - if (shopManager.isCloseAfterPurchase()) new GUIMain(player); - })); - registerClickable(subShop.getSlot(), ClickType.RIGHT, ((player1, inventory1, cursor, slot, type) -> new GUIBulk(player, shop, subShop))); - }); - - } - - @Override - protected void registerOnCloses() { - - } -} diff --git a/src/main/java/com/songoda/epicbuckets/gui/GUIShop.java b/src/main/java/com/songoda/epicbuckets/gui/GUIShop.java deleted file mode 100644 index 40dabaf..0000000 --- a/src/main/java/com/songoda/epicbuckets/gui/GUIShop.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.songoda.epicbuckets.gui; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.file.ConfigManager; -import com.songoda.epicbuckets.shop.Shop; -import com.songoda.epicbuckets.shop.ShopManager; -import com.songoda.epicbuckets.util.gui.AbstractGUI; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - -public class GUIMain extends AbstractGUI { - - private EpicBuckets epicBuckets; - private ConfigManager configManager; - private ShopManager shopManager; - - private int size; - - public GUIMain(Player player) { - super(player); - this.epicBuckets = EpicBuckets.getInstance(); - configManager = epicBuckets.getConfigManager(); - shopManager = epicBuckets.getShopManager(); - this.size = configManager.getInventorySize() * 9; - - init(EpicBuckets.getInstance().getConfigManager().getInventoryName(), size); - } - - @Override - protected void constructGUI() { - int num = 0; - while (num != size) { - ItemStack glass = configManager.getFillItem(); - inventory.setItem(num, glass); - num++; - } - - epicBuckets.getShopManager().getShops().stream().filter(Shop::isEnabled).forEach(shop -> { - inventory.setItem(shop.getSlot(), shop.getShopItem()); - }); - - } - - @Override - protected void registerClickables() { - epicBuckets.getShopManager().getShops().stream().filter(Shop::isEnabled).forEach(shop -> { - - new GUIShop(shop, player).open(); - - getSlot(shop.getSlot()).bind(ClickType.LEFT, () -> handleClick(shop)); - }); - - } - - @Override - protected void registerOnCloses() { - - } -} diff --git a/src/main/java/com/songoda/epicbuckets/hooks/HookASkyBlock.java b/src/main/java/com/songoda/epicbuckets/hooks/HookASkyBlock.java deleted file mode 100644 index c8c01ab..0000000 --- a/src/main/java/com/songoda/epicbuckets/hooks/HookASkyBlock.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.songoda.epicspawners.hooks; - -import com.songoda.epicspawners.api.utils.ClaimableProtectionPluginHook; -import com.wasteofplastic.askyblock.ASkyBlock; -import com.wasteofplastic.askyblock.ASkyBlockAPI; -import com.wasteofplastic.askyblock.Island; -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -import java.util.List; -import java.util.Set; -import java.util.UUID; - -public class HookASkyBlock implements ClaimableProtectionPluginHook { - - private final ASkyBlockAPI skyblock; - - public HookASkyBlock() { - this.skyblock = ASkyBlockAPI.getInstance(); - } - - @Override - public JavaPlugin getPlugin() { - return ASkyBlock.getPlugin(); - } - - @Override - public boolean canBuild(Player player, Location location) { - Island island = skyblock.getIslandAt(location); - if (island == null) return true; - - UUID owner = island.getOwner(); - UUID playerUUID = player.getUniqueId(); - if (owner == null || owner.equals(playerUUID)) return true; - - List teamMembers = skyblock.getTeamMembers(owner); - if (teamMembers.contains(playerUUID)) return true; - - Set coopIslands = skyblock.getCoopIslands(player); - for (Location islandLocation : coopIslands) { - if (skyblock.getIslandAt(islandLocation).getOwner().equals(playerUUID)) { - return true; - } - } - - return false; - } - - @Override - public boolean isInClaim(Location location, String id) { - return skyblock.getOwner(location).toString().equals(id); - } - - @Override - public String getClaimID(String name) { - return null; - } - -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/hooks/HookFactions.java b/src/main/java/com/songoda/epicbuckets/hooks/HookFactions.java deleted file mode 100644 index addf76a..0000000 --- a/src/main/java/com/songoda/epicbuckets/hooks/HookFactions.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.songoda.epicspawners.hooks; - -import com.songoda.epicspawners.api.utils.ClaimableProtectionPluginHook; -import me.markeh.factionsframework.FactionsFramework; -import me.markeh.factionsframework.entities.FPlayer; -import me.markeh.factionsframework.entities.FPlayers; -import me.markeh.factionsframework.entities.Faction; -import me.markeh.factionsframework.entities.Factions; -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -public class HookFactions implements ClaimableProtectionPluginHook { - - private final FactionsFramework factions; - - public HookFactions() { - this.factions = FactionsFramework.get(); - } - - @Override - public JavaPlugin getPlugin() { - return factions; - } - - @Override - public boolean canBuild(Player player, Location location) { - FPlayer fPlayer = FPlayers.getBySender(player); - Faction faction = Factions.getFactionAt(location); - - return faction.isNone() || fPlayer.getFaction().equals(faction); - } - - @Override - public boolean isInClaim(Location location, String id) { - return Factions.getFactionAt(location).getId().equals(id); - } - - @Override - public String getClaimID(String name) { - Faction faction = Factions.getByName(name, ""); - return (faction != null) ? faction.getId() : null; - } - -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/hooks/HookGriefPrevention.java b/src/main/java/com/songoda/epicbuckets/hooks/HookGriefPrevention.java deleted file mode 100644 index 0c4ee04..0000000 --- a/src/main/java/com/songoda/epicbuckets/hooks/HookGriefPrevention.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.songoda.epicspawners.hooks; - -import com.songoda.epicspawners.api.utils.ProtectionPluginHook; -import me.ryanhamshire.GriefPrevention.Claim; -import me.ryanhamshire.GriefPrevention.GriefPrevention; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -public class HookGriefPrevention implements ProtectionPluginHook { - - private final GriefPrevention griefPrevention; - - public HookGriefPrevention() { - this.griefPrevention = GriefPrevention.instance; - } - - @Override - public JavaPlugin getPlugin() { - return griefPrevention; - } - - @Override - public boolean canBuild(Player player, Location location) { - Claim claim = griefPrevention.dataStore.getClaimAt(location, false, null); - return claim != null && claim.allowBuild(player, Material.SPAWNER) == null; - } - -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/hooks/HookKingdoms.java b/src/main/java/com/songoda/epicbuckets/hooks/HookKingdoms.java deleted file mode 100644 index 7437835..0000000 --- a/src/main/java/com/songoda/epicbuckets/hooks/HookKingdoms.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.songoda.epicspawners.hooks; - -import com.songoda.epicspawners.api.utils.ProtectionPluginHook; -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; -import org.kingdoms.constants.land.Land; -import org.kingdoms.constants.land.SimpleChunkLocation; -import org.kingdoms.constants.player.KingdomPlayer; -import org.kingdoms.main.Kingdoms; -import org.kingdoms.manager.game.GameManagement; - -public class HookKingdoms implements ProtectionPluginHook { - - private final Kingdoms kingdoms; - - public HookKingdoms() { - this.kingdoms = Kingdoms.getInstance(); - } - - @Override - public JavaPlugin getPlugin() { - return kingdoms; - } - - @Override - public boolean canBuild(Player player, Location location) { - KingdomPlayer kPlayer = GameManagement.getPlayerManager().getOfflineKingdomPlayer(player).getKingdomPlayer(); - if (kPlayer.getKingdom() == null) return true; - - SimpleChunkLocation chunkLocation = new SimpleChunkLocation(location.getChunk()); - Land land = GameManagement.getLandManager().getOrLoadLand(chunkLocation); - String owner = land.getOwner(); - - return owner == null || kPlayer.getKingdom().getKingdomName().equals(owner); - } - -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/hooks/HookPlotSquared.java b/src/main/java/com/songoda/epicbuckets/hooks/HookPlotSquared.java deleted file mode 100644 index cf12b66..0000000 --- a/src/main/java/com/songoda/epicbuckets/hooks/HookPlotSquared.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.songoda.epicspawners.hooks; - -import com.github.intellectualsites.plotsquared.api.PlotAPI; -import com.github.intellectualsites.plotsquared.bukkit.BukkitMain; -import com.github.intellectualsites.plotsquared.plot.object.Plot; -import com.songoda.epicspawners.api.utils.ProtectionPluginHook; -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -public class HookPlotSquared implements ProtectionPluginHook { - - private final PlotAPI plotSquared; - - public HookPlotSquared() { - this.plotSquared = new PlotAPI(); - } - - @Override - public JavaPlugin getPlugin() { // BukkitMain? Really? - return JavaPlugin.getPlugin(BukkitMain.class); - } - - @Override - public boolean canBuild(Player player, Location location) { - com.github.intellectualsites.plotsquared.plot.object.Location plotLocation = - new com.github.intellectualsites.plotsquared.plot.object.Location(location.getWorld().getName(), - location.getBlockX(), location.getBlockY(), location.getBlockZ()); - - Plot plot = plotLocation.getPlot(); - - return plot != null - && plot.getOwners().contains(player.getUniqueId()) - && plot.getMembers().contains(player.getUniqueId()); - } - -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/hooks/HookRedProtect.java b/src/main/java/com/songoda/epicbuckets/hooks/HookRedProtect.java deleted file mode 100644 index 9d6ad5b..0000000 --- a/src/main/java/com/songoda/epicbuckets/hooks/HookRedProtect.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.songoda.epicspawners.hooks; - -import br.net.fabiozumbi12.RedProtect.Bukkit.API.RedProtectAPI; -import br.net.fabiozumbi12.RedProtect.Bukkit.RedProtect; -import br.net.fabiozumbi12.RedProtect.Bukkit.Region; -import com.songoda.epicspawners.api.utils.ProtectionPluginHook; -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -public class HookRedProtect implements ProtectionPluginHook { - - private final RedProtect redProtect; - - public HookRedProtect() { - this.redProtect = RedProtect.get(); - } - - @Override - public JavaPlugin getPlugin() { - return redProtect; - } - - @Override - public boolean canBuild(Player player, Location location) { - RedProtectAPI api = redProtect.getAPI(); - Region region = api.getRegion(location); - - return region != null && region.canBuild(player); - } - -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/hooks/HookSkyBlockEarth.java b/src/main/java/com/songoda/epicbuckets/hooks/HookSkyBlockEarth.java deleted file mode 100644 index bb40836..0000000 --- a/src/main/java/com/songoda/epicbuckets/hooks/HookSkyBlockEarth.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.songoda.epicspawners.hooks; - -import com.songoda.epicspawners.api.utils.ClaimableProtectionPluginHook; -import me.goodandevil.skyblock.SkyBlock; -import me.goodandevil.skyblock.island.Island; -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -import java.util.List; -import java.util.Set; -import java.util.UUID; - -public class HookSkyBlockEarth implements ClaimableProtectionPluginHook { - - private final SkyBlock skyblock; - - public HookSkyBlockEarth() { - this.skyblock = SkyBlock.getInstance(); - } - - @Override - public JavaPlugin getPlugin() { - return SkyBlock.getInstance(); - } - - @Override - public boolean canBuild(Player player, Location location) { - Island island = skyblock.getIslandManager().getIslandAtLocation(location); - if (island == null) return true; - - UUID owner = island.getOwnerUUID(); - UUID playerUUID = player.getUniqueId(); - if (owner == null || owner.equals(playerUUID)) return true; - - Set teamMembers = island.getCoopPlayers(); - if (teamMembers.contains(playerUUID)) return true; - - List coopIslands = skyblock.getIslandManager().getCoopIslands(player); - for (Island is : coopIslands) { - if (is.getOwnerUUID().equals(playerUUID)) { - return true; - } - } - - return false; - } - - @Override - public boolean isInClaim(Location location, String id) { - return skyblock.getIslandManager().getIslandAtLocation(location).getOwnerUUID().toString().equals(id); - } - - @Override - public String getClaimID(String name) { - return null; - } - -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/hooks/HookTowny.java b/src/main/java/com/songoda/epicbuckets/hooks/HookTowny.java deleted file mode 100644 index 1b03d33..0000000 --- a/src/main/java/com/songoda/epicbuckets/hooks/HookTowny.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.songoda.epicspawners.hooks; - -import com.palmergames.bukkit.towny.Towny; -import com.palmergames.bukkit.towny.exceptions.NotRegisteredException; -import com.palmergames.bukkit.towny.object.Resident; -import com.palmergames.bukkit.towny.object.TownyUniverse; -import com.songoda.epicspawners.api.utils.ClaimableProtectionPluginHook; -import com.songoda.epicspawners.utils.Debugger; -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -public class HookTowny implements ClaimableProtectionPluginHook { - - private final Towny towny; - - public HookTowny() { - this.towny = Towny.getPlugin(); - } - - @Override - public JavaPlugin getPlugin() { - return towny; - } - - @Override - public boolean canBuild(Player player, Location location) { - if (TownyUniverse.isWilderness(location.getBlock()) || !TownyUniverse.getTownBlock(location).hasTown()) - return true; - - try { - Resident resident = TownyUniverse.getDataSource().getResident(player.getName()); - return resident.hasTown() && TownyUniverse.getTownName(location).equals(resident.getTown().getName()); - } catch (NotRegisteredException e) { - Debugger.runReport(e); - return false; - } - } - - @Override - public boolean isInClaim(Location location, String id) { - try { - return TownyUniverse.isWilderness(location.getBlock()) && TownyUniverse.getTownBlock(location).getTown().getUID().toString().equals(id); - } catch (NotRegisteredException e) { - Debugger.runReport(e); - return false; - } - } - - @Override - public String getClaimID(String name) { - try { - return TownyUniverse.getDataSource().getTown(name).getUID().toString(); - } catch (NotRegisteredException e) { - Debugger.runReport(e); - return null; - } - } - -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/hooks/HookUSkyBlock.java b/src/main/java/com/songoda/epicbuckets/hooks/HookUSkyBlock.java deleted file mode 100644 index dee6e68..0000000 --- a/src/main/java/com/songoda/epicbuckets/hooks/HookUSkyBlock.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.songoda.epicspawners.hooks; - -import com.songoda.epicspawners.api.utils.ClaimableProtectionPluginHook; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; -import us.talabrek.ultimateskyblock.api.uSkyBlockAPI; - -public class HookUSkyBlock implements ClaimableProtectionPluginHook { - - private final uSkyBlockAPI uSkyblock; - - public HookUSkyBlock() { - this.uSkyblock = (uSkyBlockAPI) Bukkit.getPluginManager().getPlugin("USkyBlock"); - } - - @Override - public JavaPlugin getPlugin() { // uSkyBlockAPI is also an instance of JavaPlugin - return (JavaPlugin) uSkyblock; - } - - @Override - public boolean canBuild(Player player, Location location) { - return uSkyblock.getIslandInfo(location).getOnlineMembers().contains(player) || uSkyblock.getIslandInfo(location).isLeader(player); - } - - @Override - public boolean isInClaim(Location location, String id) { - return uSkyblock.getIslandInfo(location).getLeader().equals(id); - } - - @Override - public String getClaimID(String name) { - return null; - } - -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/hooks/HookWorldGuard.java b/src/main/java/com/songoda/epicbuckets/hooks/HookWorldGuard.java deleted file mode 100644 index b53afbd..0000000 --- a/src/main/java/com/songoda/epicbuckets/hooks/HookWorldGuard.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.songoda.epicspawners.hooks; - -import com.sk89q.worldedit.bukkit.BukkitAdapter; -import com.sk89q.worldguard.WorldGuard; -import com.sk89q.worldguard.bukkit.WorldGuardPlugin; -import com.sk89q.worldguard.protection.ApplicableRegionSet; -import com.sk89q.worldguard.protection.flags.Flags; -import com.sk89q.worldguard.protection.regions.RegionQuery; -import com.songoda.epicspawners.api.utils.ProtectionPluginHook; -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -public class HookWorldGuard implements ProtectionPluginHook { - - private final WorldGuard worldGuard; - - public HookWorldGuard() { - this.worldGuard = WorldGuard.getInstance(); - } - - @Override - public JavaPlugin getPlugin() { - return WorldGuardPlugin.inst(); - } - - @Override - public boolean canBuild(Player player, Location location) { - RegionQuery q = worldGuard.getPlatform().getRegionContainer().createQuery(); - ApplicableRegionSet ars = q.getApplicableRegions(BukkitAdapter.adapt(player.getLocation())); - return ars.testState(WorldGuardPlugin.inst().wrapPlayer(player), Flags.BUILD); - } - -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/listener/GenbucketPlaceListener.java b/src/main/java/com/songoda/epicbuckets/listener/GenbucketPlaceListener.java deleted file mode 100644 index 7aa3a64..0000000 --- a/src/main/java/com/songoda/epicbuckets/listener/GenbucketPlaceListener.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.songoda.epicbuckets.listener; - - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.event.GenbucketPlaceEvent; -import com.songoda.epicbuckets.genbucket.Genbucket; -import com.songoda.epicbuckets.genbucket.GenbucketType; -import com.songoda.epicbuckets.genbucket.types.Horizontal; -import com.songoda.epicbuckets.genbucket.types.Infused; -import com.songoda.epicbuckets.genbucket.types.PsuedoVertical; -import com.songoda.epicbuckets.genbucket.types.Vertical; -import com.songoda.epicbuckets.util.XMaterial; -import de.tr7zw.itemnbtapi.NBTItem; -import org.bukkit.Bukkit; -import org.bukkit.GameMode; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.block.Action; -import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerInteractEvent; - -public class GenbucketPlaceListener implements Listener { - - @EventHandler - public void emptyBucket(PlayerBucketEmptyEvent e) { - NBTItem nbtItem = new NBTItem(e.getItemStack()); - if (nbtItem.hasKey("Genbucket")) { - e.setCancelled(true); - e.getBlockClicked().getRelative(e.getBlockFace()).getState().update(); - e.getBlockClicked().getState().update(); - } - } - - @EventHandler - public void onInteract(PlayerInteractEvent e) { - if (e.getAction() != Action.RIGHT_CLICK_BLOCK || e.getItem() == null) return; - - NBTItem nbtItem = new NBTItem(e.getItem()); - if (!nbtItem.hasKey("Genbucket")) return; - - e.setCancelled(true); - - boolean isInfiniteUse = EpicBuckets.getInstance().getConfigManager().isInfiniteUse(); - boolean isInfiniteUseCharge = EpicBuckets.getInstance().getConfigManager().isChargeInfiniteUse(); - - if (!e.getPlayer().hasPermission("epicbuckets.place")) { - e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.place.nothere")); - return; - } - if (EpicBuckets.getInstance().getConfigManager().isOnCooldown(e.getPlayer())) { - e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.place.delay")); - return; - } - if (EpicBuckets.getInstance().getConfigManager().isGenbucketsDisabled()) { - e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.genbucket.disabled")); - return; - } - if (!EpicBuckets.getInstance().getGenbucketManager().canRegisterNewGenbucket(e.getPlayer())) { - e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.place.wait")); - return; - } - if (!EpicBuckets.getInstance().getGenbucketManager().canPlaceGenbucket(e.getPlayer(), e.getClickedBlock().getLocation())) { - e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.place.nothere")); - return; - } - - Genbucket genbucket = null; - - switch (GenbucketType.valueOf(nbtItem.getString("Type"))) { - case PSUEDO: - genbucket = new PsuedoVertical(e.getPlayer(), e.getClickedBlock(), e.getBlockFace(), EpicBuckets.getInstance().getShopManager().getShop(nbtItem.getString("Shop")).getSubShop(nbtItem.getString("SubShop"))); - break; - case INFUSED: - genbucket = new Infused(e.getPlayer(), e.getClickedBlock(), e.getBlockFace(), EpicBuckets.getInstance().getShopManager().getShop(nbtItem.getString("Shop")).getSubShop(nbtItem.getString("SubShop"))); - break; - case VERTICAL: - genbucket = new Vertical(e.getPlayer(), e.getClickedBlock(), e.getBlockFace(), EpicBuckets.getInstance().getShopManager().getShop(nbtItem.getString("Shop")).getSubShop(nbtItem.getString("SubShop"))); - break; - case HORIZONTAL: - genbucket = new Horizontal(e.getPlayer(), e.getClickedBlock(), e.getBlockFace(), EpicBuckets.getInstance().getShopManager().getShop(nbtItem.getString("Shop")).getSubShop(nbtItem.getString("SubShop"))); - } - - if (!genbucket.calculateBlockFace()) { - e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.genbucket.placedwrong").replace("%genbucket%", genbucket.getGenbucketType().name.toUpperCase() + " genbucket")); - return; - } - if (genbucket.getGenbucketType() == GenbucketType.PSUEDO && !EpicBuckets.getInstance().getConfigManager().getPsuedoMaterials().contains(XMaterial.requestXMaterial(e.getClickedBlock().getType().name(), e.getClickedBlock().getData()))) { - e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.genbucket.wrongmaterialpsuedo")); - return; - } - - double infiniteUseCost = EpicBuckets.getInstance().getConfigManager().getInfiniteUseCostForGenbucketType(genbucket.getGenbucketType(), genbucket.getGenItem()); - - if (isInfiniteUse && isInfiniteUseCharge && EpicBuckets.getInstance().getEcon().getBalance(Bukkit.getOfflinePlayer(e.getPlayer().getUniqueId())) < infiniteUseCost) { - e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.genbucket.infiniteuse.notenough")); - return; - } - - /* - Call event and check if cancelled before proceeding to start the gen and charging the player - */ - GenbucketPlaceEvent placeEvent = new GenbucketPlaceEvent(e.getPlayer(), genbucket); - Bukkit.getPluginManager().callEvent(placeEvent); - if (placeEvent.isCancelled()) return; - - /* - Subtract bucket from players inventory - */ - if (e.getPlayer().getGameMode() != GameMode.CREATIVE && !isInfiniteUse) { - if (e.getItem().getAmount() > 1) { - e.getItem().setAmount(e.getItem().getAmount() - 1); - } else { - e.getPlayer().getInventory().setItem(e.getPlayer().getInventory().getHeldItemSlot(), null); - } - } - - /* - Charge for infinite use placement - */ - if (isInfiniteUse && isInfiniteUseCharge && infiniteUseCost > 0) { - EpicBuckets.getInstance().getEcon().withdrawPlayer(Bukkit.getOfflinePlayer(e.getPlayer().getUniqueId()), infiniteUseCost); - e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.genbucket.infiniteuse.charge").replace("%charge%", infiniteUseCost + "")); - } - - EpicBuckets.getInstance().getGenbucketManager().registerGenbucketForPlayer(e.getPlayer(), genbucket); - EpicBuckets.getInstance().getGenbucketManager().notifyAdmins(e.getPlayer(), genbucket); - genbucket.generate(); - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/listener/SourceBlockBreakListener.java b/src/main/java/com/songoda/epicbuckets/listener/SourceBlockBreakListener.java deleted file mode 100644 index b6573ba..0000000 --- a/src/main/java/com/songoda/epicbuckets/listener/SourceBlockBreakListener.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.songoda.epicbuckets.listener; - -import com.songoda.epicbuckets.EpicBuckets; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.block.BlockBreakEvent; - -public class SourceBlockBreakListener implements Listener { - - private EpicBuckets epicBuckets; - - public SourceBlockBreakListener() { - epicBuckets = EpicBuckets.getInstance(); - } - - @EventHandler - public void onBlockBreak(BlockBreakEvent e) { - epicBuckets.getGenbucketManager().getActiveGens().forEach((uuid, genbuckets) -> { - if (genbuckets.size() > 0) { - genbuckets.forEach(genbucket -> { - if (genbucket.getSourceBlock().getLocation().equals(e.getBlock().getLocation())) { - genbucket.getGeneration().cancel(); - return; - } - }); - } - }); - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/shop/Shop.java b/src/main/java/com/songoda/epicbuckets/shop/Shop.java deleted file mode 100644 index 83a4787..0000000 --- a/src/main/java/com/songoda/epicbuckets/shop/Shop.java +++ /dev/null @@ -1,162 +0,0 @@ -package com.songoda.epicbuckets.shop; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.genbucket.GenbucketType; -import com.songoda.epicbuckets.util.InventoryHelper; -import com.songoda.epicbuckets.util.Validator; -import com.songoda.epicbuckets.util.XMaterial; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.inventory.ItemStack; - -import java.util.Collection; -import java.util.HashMap; - -public class Shop { - - private EpicBuckets epicBuckets; - private FileConfiguration shops; - - private HashMap subShops; - - private ItemStack shopItem; - private String menuItem; - private String shopName; - private int slot; - - private String path; - private String shopPath; - - private int backButtonSlot; - private GenbucketType trait; - private int inventorySize; - private boolean fillInventory; - private String inventoryName; - - private boolean enabled; - - public Shop(String menuItem, String name, String path) { - this.epicBuckets = EpicBuckets.getInstance(); - this.shops = EpicBuckets.getInstance().getConfigManager().getConfig("shops"); - - this.subShops = new HashMap<>(); - - this.menuItem = menuItem; - this.shopName = name; - - this.path = path; - this.shopPath = epicBuckets.getShopManager().getShopPath() + "." + shopName; - this.enabled = shops.getBoolean(shopPath + ".enabled"); - - loadData(); - setupShopItem(); - loadSubShops(); - } - - private void loadData() { - trait = Validator.genbucketType(shops.getString(shopPath + ".trait")); - backButtonSlot = Validator.slot(shops.getString(shopPath + ".goBackButton")); - inventorySize = Validator.inventorySize(shops.getString(shopPath + ".size")); - fillInventory = shops.getBoolean(shopPath + ".fill"); - inventoryName = shops.getString(shopPath + ".inventory-name"); - - if (trait == null) { - epicBuckets.getDebugger().invalidGenbucketType(shopPath + ".trait"); - setEnabled(false); - } - if (backButtonSlot == -1) { - epicBuckets.getDebugger().invalidSlot(shopPath + ".goBackButton"); - setEnabled(false); - } - if (inventorySize == -1) { - epicBuckets.getDebugger().invalidInventorySize(shopPath + ".size"); - setEnabled(false); - } - } - - private void loadSubShops() { - for (String shop : shops.getConfigurationSection(shopPath).getKeys(false)) { - if (!shops.isConfigurationSection(shopPath + "." + shop)) { - continue; - } - - subShops.put(shop, new SubShop(this, shop)); - } - } - - private void setupShopItem() { - String itemPath = path + ".item"; - - slot = Validator.slot(epicBuckets.getConfig().getString(path + ".slot")); - boolean m = Validator.isMaterial(epicBuckets.getConfig().getString(itemPath + ".material")); - - if (slot == -1) { - epicBuckets.getDebugger().invalidSlot(itemPath + ".slot"); - setEnabled(false); - } - - shopItem = ((!m) ? XMaterial.WATER_BUCKET.parseItem() : XMaterial.valueOf(epicBuckets.getConfig().getString(itemPath + ".material")).parseItem()); - shopItem = InventoryHelper.setLore(InventoryHelper.setDisplayName(shopItem, epicBuckets.getConfig().getString(itemPath + ".name")), epicBuckets.getConfig().getStringList(itemPath + ".lore")); - } - - public Collection getSubShops() { - return subShops.values(); - } - - public SubShop getSubShop(String shop) { - return subShops.get(shop); - } - - public SubShop getSubShop(XMaterial mat) { - for (SubShop subShop : subShops.values()) { - if (subShop.getGenItem().getType() == mat.parseMaterial() && - subShop.getGenItem().getDurability() == mat.parseItem().getDurability()) { - return subShop; - } - } - return null; - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } - - public boolean isEnabled() { - return enabled; - } - - public int getSlot() { - return slot; - } - - public String getShopName() { - return shopName; - } - - public String getMenuItem() { - return menuItem; - } - - public ItemStack getShopItem() { - return shopItem; - } - - public int getBackButtonSlot() { - return backButtonSlot; - } - - public GenbucketType getTrait() { - return trait; - } - - public int getInventorySize() { - return inventorySize; - } - - public boolean isFillInventory() { - return fillInventory; - } - - public String getInventoryName() { - return inventoryName; - } -} diff --git a/src/main/java/com/songoda/epicbuckets/shop/ShopManager.java b/src/main/java/com/songoda/epicbuckets/shop/ShopManager.java deleted file mode 100644 index 8ea2953..0000000 --- a/src/main/java/com/songoda/epicbuckets/shop/ShopManager.java +++ /dev/null @@ -1,220 +0,0 @@ -package com.songoda.epicbuckets.shop; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.genbucket.GenbucketType; -import com.songoda.epicbuckets.util.*; -import org.bukkit.Bukkit; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - -import java.lang.reflect.Array; -import java.util.*; - -public class ShopManager { - - private HashMap shopDatabase; - private FileConfiguration shops; - private EpicBuckets epicBuckets; - - private String shopPath = "shops"; - private String bulkShopPath = "BULK-SHOP-INVENTORY"; - - private ItemStack increaseItem; - private ItemStack decreaseItem; - private ItemStack purchaseItem; - - private List increaseSlots; - private List decreaseSlots; - private List bulkAmounts = new ArrayList<>(Arrays.asList(1, 10, 64)); - private int purchaseSlot; - - private String bulkInventoryName; - private int bulkInventorySize; - private boolean bulkFillInventory; - private int bulkBackButtonSlot; - private int bulkMainItemSlot; - - private boolean useBackButtons; - private boolean closeAfterPurchase; - - public ShopManager() { - epicBuckets = EpicBuckets.getInstance(); - } - - public void init() { - shops = epicBuckets.getConfigManager().getConfig("shops"); - shopDatabase = new HashMap<>(); - increaseSlots = new ArrayList<>(); - decreaseSlots = new ArrayList<>(); - loadData(); - loadShops(); - setupBulkShop(); - } - - public void reload() { - init(); - } - - private void setupBulkShop() { - boolean i = Validator.isMaterial(epicBuckets.getConfigManager().getBulkShopIncreasePath() + ".material"); - boolean d = Validator.isMaterial(epicBuckets.getConfigManager().getBulkShopDecreasePath() + ".material"); - boolean p = Validator.isMaterial(epicBuckets.getConfigManager().getBulkShopPurchasePath() + ".material"); - purchaseSlot = Validator.slot(epicBuckets.getConfig().getString(epicBuckets.getConfigManager().getBulkShopPurchasePath() + ".slot")); - - if (purchaseSlot == -1) { - purchaseSlot = 40; - } - - increaseItem = ((!i) ? XMaterial.GREEN_STAINED_GLASS_PANE.parseItem() : XMaterial.valueOf(epicBuckets.getConfig().getString(epicBuckets.getConfigManager().getBulkShopIncreasePath() + ".material")).parseItem()); - decreaseItem = ((!d) ? XMaterial.RED_STAINED_GLASS_PANE.parseItem() : XMaterial.valueOf(epicBuckets.getConfig().getString(epicBuckets.getConfigManager().getBulkShopDecreasePath() + ".material")).parseItem()); - purchaseItem = ((!p) ? XMaterial.YELLOW_STAINED_GLASS.parseItem() : XMaterial.valueOf(epicBuckets.getConfig().getString(epicBuckets.getConfigManager().getBulkShopPurchasePath() + ".material")).parseItem()); - purchaseItem = InventoryHelper.setDisplayName(purchaseItem, epicBuckets.getConfig().getString(epicBuckets.getConfigManager().getBulkShopPurchasePath() + ".name")); - - for (String s : epicBuckets.getConfig().getString(epicBuckets.getConfigManager().getBulkShopIncreasePath() + ".slots").split(",")) { - increaseSlots.add(Integer.parseInt(s)); - } - for (String s : epicBuckets.getConfig().getString(epicBuckets.getConfigManager().getBulkShopDecreasePath() + ".slots").split(",")) { - decreaseSlots.add(Integer.parseInt(s)); - } - - - } - - private void loadData() { - useBackButtons = shops.getBoolean("use-back-buttons"); - closeAfterPurchase = epicBuckets.getConfig().getBoolean("CLOSE-GUI-AFTER-PURCHASE"); - bulkInventoryName = epicBuckets.getConfig().getString(bulkShopPath + ".inventory-name"); - bulkInventorySize = epicBuckets.getConfig().getInt(bulkShopPath + ".size"); - bulkBackButtonSlot = epicBuckets.getConfig().getInt(bulkShopPath + ".return-back-slot"); - bulkFillInventory = epicBuckets.getConfig().getBoolean(bulkShopPath + ".fill"); - bulkMainItemSlot = epicBuckets.getConfig().getInt(bulkShopPath + ".main-item-slot"); - } - - private void loadShops() { - System.out.println("Loading shops.."); - for (String key : epicBuckets.getConfig().getConfigurationSection(epicBuckets.getConfigManager().getMenuItemsPath()).getKeys(false)) { - if (!epicBuckets.getConfig().isConfigurationSection(epicBuckets.getConfigManager().getMenuItemsPath() + "." + key)) { - continue; - } - shopDatabase.put(key, new Shop(key, epicBuckets.getConfig().getString(epicBuckets.getConfigManager().getMenuItemsPath() + "." + key + ".shop"), epicBuckets.getConfigManager().getMenuItemsPath() + "." + key)); - } - System.out.println("Loaded " + shopDatabase.size() + " shop(s)"); - } - - public boolean inventoryFull(Player buyer) { - if (buyer.getInventory().firstEmpty() == -1) { - buyer.sendMessage(ChatUtil.colorPrefix(epicBuckets.getLocale().getMessage("event.purchase.inventoryfull"))); - return true; - } - return false; - } - - public boolean hasEnoughFunds(Player buyer, SubShop s, int amount) { - if (epicBuckets.getEcon().getBalance(Bukkit.getOfflinePlayer(buyer.getUniqueId())) >= (s.getPrice() * amount)) return true; - buyer.sendMessage(ChatUtil.colorPrefix(epicBuckets.getLocale().getMessage("event.purchase.notenoughmoney").replace("%money%", (s.getPrice() * amount) - epicBuckets.getBalance(buyer) + ""))); - return false; - } - - public void buyFromShop(Player buyer, SubShop s, int amount) { - epicBuckets.getEcon().withdrawPlayer(Bukkit.getOfflinePlayer(buyer.getUniqueId()), s.getPrice() * amount); - giveGenbucketToPlayer(buyer, s, amount); - } - - public void giveGenbucketToPlayer(Player buyer, SubShop s, int amount) { - ItemStack genBucket = s.getGenShopItem(); - genBucket.setAmount(amount); - buyer.getInventory().addItem(NBTHelper.addGenbucketData(genBucket, s.getParent().getTrait(), s)); - } - - public Collection getShops() { - return shopDatabase.values(); - } - - public Shop getShop(String shop) { - return shopDatabase.get(shop); - } - - public Shop getShop(GenbucketType genbucketType) { - for (Shop shop : shopDatabase.values()) { - if (shop.getTrait() == genbucketType) return shop; - } - return null; - } - - public String getShopPath() { - return shopPath; - } - - public ItemStack getIncreaseItem() { - return increaseItem; - } - - public ItemStack getDecreaseItem() { - return decreaseItem; - } - - public ItemStack getPurchaseItem() { - return purchaseItem; - } - - public List getIncreaseSlots() { - return increaseSlots; - } - - public List getDecreaseSlots() { - return decreaseSlots; - } - - public int getPurchaseSlot() { - return purchaseSlot; - } - - public boolean isUseBackButtons() { - return useBackButtons; - } - - public boolean isCloseAfterPurchase() { - return closeAfterPurchase; - } - - public String getBulkInventoryName() { - return bulkInventoryName; - } - - public int getBulkInventorySize() { - return bulkInventorySize; - } - - public boolean isBulkFillInventory() { - return bulkFillInventory; - } - - public int getBulkBackButtonSlot() { - return bulkBackButtonSlot; - } - - public int getBulkMainItemSlot() { - return bulkMainItemSlot; - } - - public List getBulkAmounts() { - return bulkAmounts; - } - - public void setShopDatabase(HashMap shopDatabase) { - this.shopDatabase = shopDatabase; - } - - public void setBulkFillInventory(boolean bulkFillInventory) { - this.bulkFillInventory = bulkFillInventory; - } - - public void setUseBackButtons(boolean useBackButtons) { - this.useBackButtons = useBackButtons; - } - - public void setCloseAfterPurchase(boolean closeAfterPurchase) { - this.closeAfterPurchase = closeAfterPurchase; - } -} diff --git a/src/main/java/com/songoda/epicbuckets/shop/SubShop.java b/src/main/java/com/songoda/epicbuckets/shop/SubShop.java deleted file mode 100644 index 2846bbd..0000000 --- a/src/main/java/com/songoda/epicbuckets/shop/SubShop.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.songoda.epicbuckets.shop; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.util.InventoryHelper; -import com.songoda.epicbuckets.util.Validator; -import com.songoda.epicbuckets.util.XMaterial; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.inventory.ItemStack; - -import java.util.ArrayList; -import java.util.List; - -public class SubShop { - - private EpicBuckets epicBuckets; - - private String subShopPath; - private boolean enabled; - - private ItemStack shopItem; - private ItemStack genItem; - private ItemStack genShopItem; - private XMaterial type; - - private Shop parent; - private String item; - private String shopName; - private int slot; - private double price; - private List description; - private List genItemLore; - - - public SubShop(Shop parent, String item) { - this.epicBuckets = EpicBuckets.getInstance(); - - this.parent = parent; - this.item = item; - this.description = new ArrayList<>(); - this.genItemLore = new ArrayList<>(); - - init(); - } - - private void init() { - FileConfiguration shops = EpicBuckets.getInstance().getConfigManager().getConfig("shops"); - subShopPath = epicBuckets.getShopManager().getShopPath() + "." + parent.getShopName() + "." + item; - - setEnabled(true); - - loadData(shops); - setupShopItem(shops); - } - - private void loadData(FileConfiguration shops) { - price = Validator.price(shops.getString(subShopPath + ".price")); - - if (price == -1.0) { - epicBuckets.getDebugger().invalidPrice(subShopPath); - setEnabled(false); - } - - this.type = XMaterial.valueOf(shops.getString(subShopPath + ".type")); - this.shopName = shops.getString(subShopPath + ".name"); - this.description = shops.getStringList(subShopPath + ".description"); - this.genItemLore = shops.getStringList(subShopPath + ".item-lore"); - } - - private void setupShopItem(FileConfiguration shops) { - slot = Validator.slot(shops.getString(subShopPath + ".slot")); - boolean m = Validator.isMaterial(shops.getString(subShopPath + ".icon")); - boolean t = Validator.isMaterial(shops.getString(subShopPath + ".type")); - - if (slot == -1) { - epicBuckets.getDebugger().invalidSlot(subShopPath); - setEnabled(false); - } - - shopItem = ((!m) ? XMaterial.WATER_BUCKET.parseItem() : XMaterial.valueOf(shops.getString(subShopPath + ".icon")).parseItem()); - shopItem = InventoryHelper.setDisplayName(InventoryHelper.setSubShopLore(shopItem, getDescription(), this), getShopName()); - - genItem = ((!t) ? XMaterial.WATER_BUCKET.parseItem() : XMaterial.valueOf(shops.getString(subShopPath + ".type")).parseItem()); - - genShopItem = ((!m) ? XMaterial.WATER_BUCKET.parseItem() : XMaterial.valueOf(shops.getString(subShopPath + ".icon")).parseItem()); - genShopItem = InventoryHelper.setDisplayName(InventoryHelper.setLore(genShopItem, getGenItemLore()), getShopName()); - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } - - public boolean isEnabled() { - return enabled; - } - - public ItemStack getShopItem() { - return shopItem; - } - - public ItemStack getGenItem() { - return genItem; - } - - public Shop getParent() { - return parent; - } - - public String getShopName() { - return shopName; - } - - public int getSlot() { - return slot; - } - - public double getPrice() { - return price; - } - - public List getDescription() { - return description; - } - - public List getGenItemLore() { - return genItemLore; - } - - public ItemStack getGenShopItem() { - return genShopItem; - } - - public String getItem() { - return item; - } - - public XMaterial getType() { - return type; - } -} diff --git a/src/main/java/com/songoda/epicbuckets/util/ChatUtil.java b/src/main/java/com/songoda/epicbuckets/util/ChatUtil.java deleted file mode 100644 index 6c411f9..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/ChatUtil.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.songoda.epicbuckets.util; - -import com.songoda.epicbuckets.EpicBuckets; -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.entity.Player; - -import java.util.ArrayList; -import java.util.List; -import java.util.StringJoiner; - -/** - * ChatUtil created by: SoFocused - * Date Created: oktober 02 2018 - * Time created: 22:54 - */ -public class ChatUtil { - - public static String colorPrefix(String msg) { - return ChatColor.translateAlternateColorCodes('&', getPrefix() + msg); - } - - public static String colorString(String msg) { - return ChatColor.translateAlternateColorCodes('&', msg); - - } - - public static List colorList(List list) { - - List newList = new ArrayList<>(); - - list.forEach(string -> newList.add(colorString(string))); - - return newList; - - } - - public static List colorList(List list, Material material, int price) { - - List newList = new ArrayList<>(); - - list.forEach(string -> newList.add(colorString(string.replace("{material}", properMaterialName(material).toLowerCase()).replace("{price}", String.valueOf(price))))); - - return newList; - - } - - public static String stripColor(String input) { - return ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', input)); - } - - public static String getPrefix() { - return EpicBuckets.getInstance().getLocale().getMessage("general.nametag.prefix").equals("none") ? "" : EpicBuckets.getInstance().getLocale().getMessage("general.nametag.prefix") + " "; - } - - public static void debugMSG(Player player, Object... args) { - - StringJoiner stringBuilder = new StringJoiner("§8:"); - - for (int i = 0; i < args.length; i++) - stringBuilder.add("§a" + args[i].toString()); - - - player.sendMessage(stringBuilder.toString()); - - } - - public static String getCoordinatesFromLocation(Location l) { - return "X: " + l.getBlockX() + " Y: " + l.getBlockY() + " Z: " + l.getBlockZ(); - } - - public static String properMaterialName(Material material) { - - String materialName; - - if (material.name().split("_").length > 1) { - - StringJoiner stringJoiner = new StringJoiner(" "); - - for (String str : material.name().split("_")) - stringJoiner.add(str); - - materialName = stringJoiner.toString(); - } else - materialName = material.name(); - - return materialName; - - } - - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/ConfigWrapper.java b/src/main/java/com/songoda/epicbuckets/util/ConfigWrapper.java deleted file mode 100644 index 3eda105..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/ConfigWrapper.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.songoda.epicspawners.utils; - -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.plugin.java.JavaPlugin; - -import java.io.File; -import java.io.IOException; -import java.util.logging.Level; - -/** - * ConfigWrapper made by @clip - */ -public class ConfigWrapper { - - private final JavaPlugin plugin; - private final String folderName, fileName; - private FileConfiguration config; - private File configFile; - - public ConfigWrapper(final JavaPlugin instance, final String folderName, final String fileName) { - this.plugin = instance; - this.folderName = folderName; - this.fileName = fileName; - } - - public void createNewFile(final String message, final String header) { - reloadConfig(); - saveConfig(); - loadConfig(header); - - if (message != null) { - plugin.getLogger().info(message); - } - } - - public FileConfiguration getConfig() { - if (config == null) { - reloadConfig(); - } - return config; - } - - public void loadConfig(final String header) { - config.options().header(header); - config.options().copyDefaults(true); - saveConfig(); - } - - public void reloadConfig() { - if (configFile == null) { - configFile = new File(plugin.getDataFolder() + folderName, fileName); - } - config = YamlConfiguration.loadConfiguration(configFile); - } - - public void saveConfig() { - if (config == null || configFile == null) { - return; - } - try { - getConfig().save(configFile); - } catch (final IOException ex) { - plugin.getLogger().log(Level.SEVERE, "Could not save config to " + configFile, ex); - } - } -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/util/Debugger.java b/src/main/java/com/songoda/epicbuckets/util/Debugger.java deleted file mode 100644 index 85671fb..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/Debugger.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.songoda.epicbuckets.util; - -import com.songoda.epicbuckets.EpicBuckets; -import org.bukkit.ChatColor; - -public class Debugger { - - private EpicBuckets epicBuckets; - - public Debugger() { - epicBuckets = EpicBuckets.getInstance(); - } - - public void sendConsole(String message) { - epicBuckets.getLogger().info(ChatColor.translateAlternateColorCodes('&', message)); - } - - public void invalidInventorySize(String item) { - sendConsole(item + " has an invalid inventory size, disabling shop.."); - } - - public void invalidGenbucketType(String item) { - sendConsole(item + " has an invalid Genbucket type, disabling shop.."); - } - - public void invalidSlot(String item) { - sendConsole(item + " has an invalid slot, disabling shop.."); - } - - public void invalidPrice(String item) { - sendConsole(item + " has an invalid price set, disabling shop.."); - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/InventoryHelper.java b/src/main/java/com/songoda/epicbuckets/util/InventoryHelper.java deleted file mode 100644 index ef0905f..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/InventoryHelper.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.songoda.epicbuckets.util; - -import com.songoda.epicbuckets.EpicBuckets; -import com.songoda.epicbuckets.shop.SubShop; -import org.bukkit.ChatColor; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.IntStream; - -public class InventoryHelper { - - public static List convertMaterialList(List toConvert, String item) { - List converted = new ArrayList<>(); - for (String s : toConvert) { - if (!Validator.isMaterial(s.toUpperCase())) { - EpicBuckets.getInstance().getDebugger().sendConsole("Invalid material " + s.toUpperCase() + " in " + item + ", skipping.."); - continue; - } - converted.add(XMaterial.valueOf(s.toUpperCase())); - } - return converted; - } - - public static int[] emptySlots(int size) { - List slots = new ArrayList<>(); - IntStream.range(0, size).forEach(slots::add); - return slots.stream().mapToInt(i -> i).toArray(); - } - - public static ItemStack setDisplayName(ItemStack item, String s) { - ItemMeta im = item.getItemMeta(); - im.setDisplayName(ChatColor.translateAlternateColorCodes('&', s)); - item.setItemMeta(im); - return item; - } - - public static ItemStack setLore(ItemStack item, List lore) { - ItemMeta im = item.getItemMeta(); - List newLore = new ArrayList<>(); - lore.forEach(s -> newLore.add(ChatColor.translateAlternateColorCodes('&', s))); - im.setLore(newLore); - item.setItemMeta(im); - return item; - } - - public static ItemStack setSubShopLore(ItemStack item, List lore, SubShop subShop) { - ItemMeta im = item.getItemMeta(); - List newLore = new ArrayList<>(); - lore.forEach(s -> { - String line = s; - if (line.contains("%price%")) line = line.replace("%price%", subShop.getPrice() + ""); - if (line.contains("%material%")) line = line.replace("%material%", subShop.getType().parseMaterial().name()); - newLore.add(ChatColor.translateAlternateColorCodes('&', line)); - }); - im.setLore(newLore); - item.setItemMeta(im); - return item; - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/NBTHelper.java b/src/main/java/com/songoda/epicbuckets/util/NBTHelper.java deleted file mode 100644 index c04bcca..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/NBTHelper.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.songoda.epicbuckets.util; - -import com.songoda.epicbuckets.genbucket.GenbucketType; -import com.songoda.epicbuckets.shop.SubShop; -import de.tr7zw.itemnbtapi.NBTItem; -import org.bukkit.inventory.ItemStack; - -public class NBTHelper { - - public static ItemStack addGenbucketData(ItemStack item, GenbucketType genbucketType, SubShop s) { - NBTItem nbtItem = new NBTItem(item); - nbtItem.setBoolean("Genbucket", true); - nbtItem.setString("Type", genbucketType.name); - nbtItem.setString("SubShop", s.getItem()); - nbtItem.setString("Shop", s.getParent().getMenuItem()); - return nbtItem.getItem(); - } - - public static boolean isGenbucket(ItemStack item) { - NBTItem nbtItem = new NBTItem(item); - return nbtItem.hasKey("Genbucket"); - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/ServerVersion.java b/src/main/java/com/songoda/epicbuckets/util/ServerVersion.java deleted file mode 100644 index bf2dc1e..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/ServerVersion.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.songoda.ultimatekits.utils; - -public enum ServerVersion { - - UNKNOWN("unknown_server_version"), - V1_7("org.bukkit.craftbukkit.v1_7"), - V1_8("org.bukkit.craftbukkit.v1_8"), - V1_9("org.bukkit.craftbukkit.v1_9"), - V1_10("org.bukkit.craftbukkit.v1_10"), - V1_11("org.bukkit.craftbukkit.v1_11"), - V1_12("org.bukkit.craftbukkit.v1_12"), - V1_13("org.bukkit.craftbukkit.v1_13"); - - - private final String packagePrefix; - - private ServerVersion(String packagePrefix) { - this.packagePrefix = packagePrefix; - } - - public static ServerVersion fromPackageName(String packageName) { - for (ServerVersion version : values()) - if (packageName.startsWith(version.packagePrefix)) return version; - return ServerVersion.UNKNOWN; - } -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/util/Validator.java b/src/main/java/com/songoda/epicbuckets/util/Validator.java deleted file mode 100644 index 6e29634..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/Validator.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.songoda.epicbuckets.util; - -import com.songoda.epicbuckets.genbucket.GenbucketType; - -public class Validator { - - public static int inventorySize(String s) { - int i; - if (isInt(s)) { - i = Integer.parseInt(s); - if (i<=6) return i; - } - return -1; - } - - public static GenbucketType genbucketType(String s) { - try { - return GenbucketType.valueOf(s); - } catch (Exception e) { - return null; - } - } - - public static double price(String s) { - if (isDouble(s)) return Double.parseDouble(s); - return -1; - } - - public static boolean isDouble(String s) { - try { - Double.parseDouble(s); - return true; - } catch (Exception e) { - return false; - } - } - - public static boolean isInt(String s) { - try { - Integer.parseInt(s); - return true; - } catch (Exception e) { - return false; - } - } - - public static boolean isMaterial(String mat) { - try { - XMaterial.valueOf(mat); - return true; - } catch (IllegalArgumentException e) { - return false; - } - } - - public static int slot(String s) { - if (isInt(s)) return Integer.parseInt(s); - return -1; - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/XMaterial.java b/src/main/java/com/songoda/epicbuckets/util/XMaterial.java deleted file mode 100644 index 60e6c41..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/XMaterial.java +++ /dev/null @@ -1,1017 +0,0 @@ -package com.songoda.epicbuckets.util; -/** The MIT License (MIT) - * - * Copyright (c) 2018 Hex_27 - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - **/ - -import java.util.HashMap; - -import org.bukkit.Material; -import org.bukkit.inventory.ItemStack; - -public enum XMaterial { - - ACACIA_BOAT("BOAT_ACACIA", 0), - ACACIA_BUTTON("WOOD_BUTTON", 0), - ACACIA_DOOR("ACACIA_DOOR", 0), - ACACIA_FENCE("ACACIA_FENCE", 0), - ACACIA_FENCE_GATE("ACACIA_FENCE_GATE", 0), - ACACIA_LEAVES("LEAVES_2", 0), - ACACIA_LOG("LOG_2", 0), - ACACIA_PLANKS("WOOD", 4), - ACACIA_PRESSURE_PLATE("WOOD_PLATE", 0), - ACACIA_SAPLING("SAPLING", 4), - ACACIA_SLAB("WOOD_STEP", 4), - ACACIA_STAIRS("ACACIA_STAIRS", 4), - ACACIA_TRAPDOOR("TRAP_DOOR", 0), - ACACIA_WOOD("LOG_2", 0), - ACTIVATOR_RAIL("ACTIVATOR_RAIL", 0), - AIR("AIR", 0), - ALLIUM("STONE", 0), - ANDESITE("STONE", 5), - ANVIL("ANVIL", 0), - APPLE("APPLE", 0), - ARMOR_STAND("ARMOR_STAND", 0), - ARROW("ARROW", 0), - ATTACHED_MELON_STEM("MELON_STEM", 7), - ATTACHED_PUMPKIN_STEM("PUMPKIN_STEM", 7), - AZURE_BLUET("RED_ROSE", 3), - BAKED_POTATO("BAKED_POTATO", 0), - BARRIER("BARRIER", 0), - BAT_SPAWN_EGG("MONSTER_EGG", 0), - BEACON("BEACON", 0), - BEDROCK("BEDROCK", 0), - BEEF("RAW_BEEF", 0), - BEETROOT("BEETROOT", 0), - BEETROOTS("BEETROOT", 0), - BEETROOT_SEEDS("BEETROOT_SEEDS", 0), - BEETROOT_SOUP("BEETROOT_SOUP", 0), - BIRCH_BOAT("BOAT_BIRCH", 0), - BIRCH_BUTTON("WOOD_BUTTON", 0), - BIRCH_DOOR("BIRCH_DOOR", 0), - BIRCH_FENCE("BIRCH_FENCE", 0), - BIRCH_FENCE_GATE("BIRCH_FENCE_GATE", 0), - BIRCH_LEAVES("LEAVES", 2), - BIRCH_LOG("LOG", 2), - BIRCH_PLANKS("WOOD", 2), - BIRCH_PRESSURE_PLATE("WOOD_PLATE", 0), - BIRCH_SAPLING("SAPLING", 2), - BIRCH_SLAB("WOOD_STEP", 2), - BIRCH_STAIRS("BIRCH_WOOD_STAIRS", 0), - BIRCH_TRAPDOOR("TRAP_DOOR", 0), - BIRCH_WOOD("LOG", 2), - BLACK_BANNER("BANNER", 0), - BLACK_BED("BED", 15), - BLACK_CARPET("CARPET", 15), - BLACK_CONCRETE("CONCRETE", 15), - BLACK_CONCRETE_POWDER("CONCRETE_POWDER", 15), - BLACK_GLAZED_TERRACOTTA("BLACK_GLAZED_TERRACOTTA", 0), - BLACK_SHULKER_BOX("BLACK_SHULKER_BOX", 0), - BLACK_STAINED_GLASS("STAINED_GLASS", 15), - BLACK_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 15), - BLACK_TERRACOTTA("STAINED_CLAY", 15), - BLACK_WALL_BANNER("WALL_BANNER", 0), - BLACK_WOOL("WOOL", 15), - BLAZE_POWDER("BLAZE_POWDER", 0), - BLAZE_ROD("BLAZE_ROD", 0), - BLAZE_SPAWN_EGG("MONSTER_EGG", 0), - BLUE_BANNER("BANNER", 11), - BLUE_BED("BED", 4), - BLUE_CARPET("CARPET", 11), - BLUE_CONCRETE("CONCRETE", 11), - BLUE_CONCRETE_POWDER("CONCRETE_POWDER", 11), - BLUE_GLAZED_TERRACOTTA("BLUE_GLAZED_TERRACOTTA", 0), - BLUE_ICE("PACKED_ICE", 0), - BLUE_ORCHID("RED_ROSE", 1), - BLUE_SHULKER_BOX("BLUE_SHULKER_BOX", 0), - BLUE_STAINED_GLASS("STAINED_GLASS", 11), - BLUE_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 11), - BLUE_TERRACOTTA("STAINED_CLAY", 11), - BLUE_WALL_BANNER("WALL_BANNER", 11), - BLUE_WOOL("WOOL", 11), - BONE("BONE", 0), - BONE_BLOCK("BONE_BLOCK", 0), - BONE_MEAL("INK_SACK", 15), - BOOK("BOOK", 0), - BOOKSHELF("BOOKSHELF", 0), - BOW("BOW", 0), - BOWL("BOWL", 0), - BRAIN_CORAL("STONE", 0), - BRAIN_CORAL_BLOCK("STONE", 0), - BRAIN_CORAL_FAN("STONE", 0), - BREAD("BREAD", 0), - BREWING_STAND("BREWING_STAND", 0), - BRICK("CLAY_BRICK", 0), - BRICKS("BRICK", 0), - BRICK_SLAB("STEP", 4), - BRICK_STAIRS("BRICK_STAIRS", 0), - BROWN_BANNER("BANNER", 3), - BROWN_BED("BED", 12), - BROWN_CARPET("CARPET", 12), - BROWN_CONCRETE("CONCRETE", 12), - BROWN_CONCRETE_POWDER("CONCRETE_POWDER", 12), - BROWN_GLAZED_TERRACOTTA("BROWN_GLAZED_TERRACOTTA", 0), - BROWN_MUSHROOM("BROWN_MUSHROOM", 0), - BROWN_MUSHROOM_BLOCK("BROWN_MUSHROOM", 0), //UNSURE - BROWN_SHULKER_BOX("BROWN_SHULKER_BOX", 0), - BROWN_STAINED_GLASS("STAINED_GLASS", 12), - BROWN_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 12), - BROWN_TERRACOTTA("STAINED_CLAY", 12), - BROWN_WALL_BANNER("WALL_BANNER", 3), - BROWN_WOOL("WOOL", 12), - BUBBLE_COLUMN("STONE", 0), - BUBBLE_CORAL("STONE", 0), - BUBBLE_CORAL_BLOCK("STONE", 0), - BUBBLE_CORAL_FAN("STONE", 0), - BUCKET("BUCKET", 0), - CACTUS("CACTUS", 0), - CACTUS_GREEN("INK_SACK", 2), - CAKE("CAKE", 0), - CARROT("CARROT_ITEM", 0), - CARROTS("CARROT", 0), - CARROT_ON_A_STICK("CARROT_STICK", 0), - CARVED_PUMPKIN("PUMPKIN", 0), - CAULDRON("CAULDRON", 0), - CAVE_AIR("AIR", 0), - CAVE_SPIDER_SPAWN_EGG("MONSTER_EGG", 0), - CHAINMAIL_BOOTS("CHAINMAIL_BOOTS", 0), - CHAINMAIL_CHESTPLATE("CHAINMAIL_CHESTPLATE", 0), - CHAINMAIL_HELMET("CHAINMAIL_HELMET", 0), - CHAINMAIL_LEGGINGS("CHAINMAIL_LEGGINGS", 0), - CHAIN_COMMAND_BLOCK("COMMAND_CHAIN", 0), - CHARCOAL("COAL", 1), - CHEST("CHEST", 0), - CHEST_MINECART("STORAGE_MINECART", 0), - CHICKEN("RAW_CHICKEN", 0), - CHICKEN_SPAWN_EGG("MONSTER_EGG", 0), - CHIPPED_ANVIL("ANVIL", 1), - CHISELED_QUARTZ_BLOCK("QUARTZ_BLOCK", 1), - CHISELED_RED_SANDSTONE("RED_SANDSTONE", 1), - CHISELED_SANDSTONE("SANDSTONE", 1), - CHISELED_STONE_BRICKS("SMOOTH_BRICK", 3), - CHORUS_FLOWER("CHORUS_FLOWER", 0), - CHORUS_FRUIT("CHORUS_FRUIT", 0), - CHORUS_PLANT("CHORUS_PLANT", 0), - CLAY("CLAY", 0), - CLAY_BALL("CLAY_BALL", 0), - CLOCK("WATCH", 0), - COAL("COAL", 0), - COAL_BLOCK("COAL_BLOCK", 0), - COAL_ORE("COAL_ORE", 0), - COARSE_DIRT("DIRT", 1), - COBBLESTONE("COBBLESTONE", 0), - COBBLESTONE_SLAB("STEP", 3), - COBBLESTONE_STAIRS("COBBLESTONE_STAIRS", 0), - COBBLESTONE_WALL("COBBLE_WALL", 0), - COBWEB("WEB", 0), - COCOA("COCOA", 0), - COCOA_BEANS("INK_SACK", 3), - COD("RAW_FISH", 0), - COD_BUCKET("BUCKET", 0), - COD_SPAWN_EGG("MONSTER_EGG", 0), - COMMAND_BLOCK("COMMAND", 0), - COMMAND_BLOCK_MINECART("COMMAND_MINECART", 0), - COMPARATOR("REDSTONE_COMPARATOR", 0), - COMPASS("COMPASS", 0), - CONDUIT("STONE", 0), - COOKED_BEEF("COOKED_BEEF", 0), - COOKED_CHICKEN("COOKED_CHICKEN", 0), - COOKED_COD("COOKED_FISH", 0), - COOKED_MUTTON("COOKED_MUTTON", 0), - COOKED_PORKCHOP("GRILLED_PORK", 0), - COOKED_RABBIT("COOKED_RABBIT", 0), - COOKED_SALMON("COOKED_FISH", 1), - COOKIE("COOKIE", 0), - COW_SPAWN_EGG("MONSTER_EGG", 0), - CRACKED_STONE_BRICKS("SMOOTH_BRICK", 2), - CRAFTING_TABLE("WORKBENCH", 0), - CREEPER_HEAD("SKULL", 0), - CREEPER_SPAWN_EGG("MONSTER_EGG", 0), - CREEPER_WALL_HEAD("SKULL", 0), - CUT_RED_SANDSTONE("STONE", 0), - CUT_SANDSTONE("STONE", 0), - CYAN_BANNER("BANNER", 6), - CYAN_BED("BED", 9), - CYAN_CARPET("CARPET", 9), - CYAN_CONCRETE("CONCRETE", 9), - CYAN_CONCRETE_POWDER("CONCRETE_POWDER", 9), - CYAN_DYE("INK_SACK", 6), - CYAN_GLAZED_TERRACOTTA("CYAN_GLAZED_TERRACOTTA", 0), - CYAN_SHULKER_BOX("CYAN_SHULKER_BOX", 0), - CYAN_STAINED_GLASS("STAINED_GLASS", 9), - CYAN_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 9), - CYAN_TERRACOTTA("STAINED_CLAY", 9), - CYAN_WALL_BANNER("WALL_BANNER", 0), - CYAN_WOOL("WOOL", 9), - DAMAGED_ANVIL("ANVIL", 2), - DANDELION("YELLOW_FLOWER", 0), - DANDELION_YELLOW("INK_SACK", 11), - DARK_OAK_BOAT("BOAT_DARK_OAK", 0), - DARK_OAK_BUTTON("WOOD_BUTTON", 0), - DARK_OAK_DOOR("DARK_OAK_DOOR", 0), - DARK_OAK_FENCE("DARK_OAK_FENCE", 0), - DARK_OAK_FENCE_GATE("DARK_OAK_FENCE_GATE", 0), - DARK_OAK_LEAVES("LEAVES_2", 1), - DARK_OAK_LOG("LOG_2", 1), - DARK_OAK_PLANKS("WOOD", 5), - DARK_OAK_PRESSURE_PLATE("WOOD_PLATE", 0), - DARK_OAK_SAPLING("SAPLING", 5), - DARK_OAK_SLAB("WOOD_STEP", 0), - DARK_OAK_STAIRS("DARK_OAK_STAIRS", 0), - DARK_OAK_TRAPDOOR("TRAP_DOOR", 0), - DARK_OAK_WOOD("LOG_2", 1), - DARK_PRISMARINE("PRISMARINE", 2), - DARK_PRISMARINE_SLAB("STONE", 0), - DARK_PRISMARINE_STAIRS("STONE", 0), - DAYLIGHT_DETECTOR("DAYLIGHT_DETECTOR", 0), - DEAD_BRAIN_CORAL_BLOCK("STONE", 0), - DEAD_BUBBLE_CORAL_BLOCK("STONE", 0), - DEAD_BUSH("DEAD_BUSH", 0), - DEAD_FIRE_CORAL_BLOCK("STONE", 0), - DEAD_HORN_CORAL_BLOCK("STONE", 0), - DEAD_TUBE_CORAL_BLOCK("STONE", 0), - DEBUG_STICK("STICK", 0), - DETECTOR_RAIL("DETECTOR_RAIL", 0), - DIAMOND("DIAMOND", 0), - DIAMOND_AXE("DIAMOND_AXE", 0), - DIAMOND_BLOCK("DIAMOND_BLOCK", 0), - DIAMOND_BOOTS("DIAMOND_BOOTS", 0), - DIAMOND_CHESTPLATE("DIAMOND_CHESTPLATE", 0), - DIAMOND_HELMET("DIAMOND_HELMET", 0), - DIAMOND_HOE("DIAMOND_HOE", 0), - DIAMOND_HORSE_ARMOR("DIAMOND_BARDING", 0), - DIAMOND_LEGGINGS("DIAMOND_LEGGINGS", 0), - DIAMOND_ORE("DIAMOND_ORE", 0), - DIAMOND_PICKAXE("DIAMOND_PICKAXE", 0), - DIAMOND_SHOVEL("DIAMOND_SPADE", 0), - DIAMOND_SWORD("DIAMOND_SWORD", 0), - DIORITE("STONE", 3), - DIRT("DIRT", 0), - DISPENSER("DISPENSER", 0), - DOLPHIN_SPAWN_EGG("MONSTER_EGG", 0), - DONKEY_SPAWN_EGG("MONSTER_EGG", 0), - DRAGON_BREATH("DRAGONS_BREATH", 0), - DRAGON_EGG("DRAGON_EGG", 0), - DRAGON_HEAD("SKULL", 5), - DRAGON_WALL_HEAD("SKULL", 0), - DRIED_KELP("STONE", 0), - DRIED_KELP_BLOCK("STONE", 0), - DROPPER("DROPPER", 0), - DROWNED_SPAWN_EGG("MONSTER_EGG", 0), - EGG("EGG", 0), - ELDER_GUARDIAN_SPAWN_EGG("MONSTER_EGG", 0), - ELYTRA("ELYTRA", 0), - EMERALD("EMERALD", 0), - EMERALD_BLOCK("EMERALD_BLOCK", 0), - EMERALD_ORE("EMERALD_ORE", 0), - ENCHANTED_BOOK("ENCHANTED_BOOK", 0), - ENCHANTED_GOLDEN_APPLE("GOLDEN_APPLE", 1), - ENCHANTING_TABLE("ENCHANTMENT_TABLE", 0), - ENDERMAN_SPAWN_EGG("MONSTER_EGG", 0), - ENDERMITE_SPAWN_EGG("MONSTER_EGG", 0), - ENDER_CHEST("ENDER_CHEST", 0), - ENDER_EYE("EYE_OF_ENDER", 0), - ENDER_PEARL("ENDER_PEARL", 0), - END_CRYSTAL("END_CRYSTAL", 0), - END_GATEWAY("END_GATEWAY", 0), - END_PORTAL("ENDER_PORTAL", 0), - END_PORTAL_FRAME("ENDER_PORTAL_FRAME", 0), - END_ROD("END_ROD", 0), - END_STONE("ENDER_STONE", 0), - END_STONE_BRICKS("END_BRICKS", 0), - EVOKER_SPAWN_EGG("MONSTER_EGG", 0), - EXPERIENCE_BOTTLE("EXP_BOTTLE", 0), - FARMLAND("SOIL", 0), - FEATHER("FEATHER", 0), - FERMENTED_SPIDER_EYE("FERMENTED_SPIDER_EYE", 0), - FERN("LONG_GRASS", 2), - FILLED_MAP("MAP", 0), - FIRE("FIRE", 0), - FIREWORK_ROCKET("FIREWORK", 0), - FIREWORK_STAR("FIREWORK_CHARGE", 0), - FIRE_CHARGE("FIREBALL", 0), - FIRE_CORAL("STONE", 0), - FIRE_CORAL_BLOCK("STONE", 0), - FIRE_CORAL_FAN("STONE", 0), - FISHING_ROD("FISHING_ROD", 0), - FLINT("FLINT", 0), - FLINT_AND_STEEL("FLINT_AND_STEEL", 0), - FLOWER_POT("FLOWER_POT", 0), - FROSTED_ICE("FROSTED_ICE", 0), - FURNACE("FURNACE", 0), - FURNACE_MINECART("POWERED_MINECART", 0), - GHAST_SPAWN_EGG("MONSTER_EGG", 0), - GHAST_TEAR("GHAST_TEAR", 0), - GLASS("GLASS", 0), - GLASS_BOTTLE("GLASS_BOTTLE", 0), - GLASS_PANE("THIN_GLASS", 0), - GLISTERING_MELON_SLICE("SPECKLED_MELON", 0), - GLOWSTONE("GLOWSTONE", 0), - GLOWSTONE_DUST("GLOWSTONE_DUST", 0), - GOLDEN_APPLE("GOLDEN_APPLE", 0), - GOLDEN_AXE("GOLD_AXE", 0), - GOLDEN_BOOTS("GOLD_BOOTS", 0), - GOLDEN_CARROT("GOLDEN_CARROT", 0), - GOLDEN_CHESTPLATE("GOLD_CHESTPLATE", 0), - GOLDEN_HELMET("GOLD_HELMET", 0), - GOLDEN_HOE("GOLD_HOE", 0), - GOLDEN_HORSE_ARMOR("GOLD_BARDING", 0), - GOLDEN_LEGGINGS("GOLD_LEGGINGS", 0), - GOLDEN_PICKAXE("GOLD_PICKAXE", 0), - GOLDEN_SHOVEL("GOLD_SPADE", 0), - GOLDEN_SWORD("GOLD_SWORD", 0), - GOLD_BLOCK("GOLD_BLOCK", 0), - GOLD_INGOT("GOLD_INGOT", 0), - GOLD_NUGGET("GOLD_NUGGET", 0), - GOLD_ORE("GOLD_ORE", 0), - GRANITE("STONE", 1), - GRASS("GRASS", 0), - GRASS_BLOCK("GRASS", 0), - GRASS_PATH("GRASS_PATH", 0), - GRAVEL("GRAVEL", 0), - GRAY_BANNER("BANNER", 8), - GRAY_BED("BED", 7), - GRAY_CARPET("CARPET", 7), - GRAY_CONCRETE("CONCRETE", 7), - GRAY_CONCRETE_POWDER("CONCRETE_POWDER", 7), - GRAY_DYE("INK_SACK", 8), - GRAY_GLAZED_TERRACOTTA("GRAY_GLAZED_TERRACOTTA", 0), - GRAY_SHULKER_BOX("GRAY_SHULKER_BOX", 0), - GRAY_STAINED_GLASS("STAINED_GLASS", 7), - GRAY_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 7), - GRAY_TERRACOTTA("STAINED_CLAY", 7), - GRAY_WALL_BANNER("WALL_BANNER", 0), - GRAY_WOOL("WOOL", 7), - GREEN_BANNER("BANNER", 2), - GREEN_BED("BED", 13), - GREEN_CARPET("CARPET", 13), - GREEN_CONCRETE("CONCRETE", 13), - GREEN_CONCRETE_POWDER("CONCRETE_POWDER", 13), - GREEN_GLAZED_TERRACOTTA("GREEN_GLAZED_TERRACOTTA", 0), - GREEN_SHULKER_BOX("GREEN_SHULKER_BOX", 0), - GREEN_STAINED_GLASS("STAINED_GLASS", 13), - GREEN_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 13), - GREEN_TERRACOTTA("STAINED_CLAY", 13), - GREEN_WALL_BANNER("WALL_BANNER", 0), - GREEN_WOOL("WOOL", 13), - GUARDIAN_SPAWN_EGG("MONSTER_EGG", 0), - GUNPOWDER("SULPHUR", 0), - HAY_BLOCK("HAY_BLOCK", 0), - HEART_OF_THE_SEA("STONE", 0), - HEAVY_WEIGHTED_PRESSURE_PLATE("IRON_PLATE", 0), - HOPPER("HOPPER", 0), - HOPPER_MINECART("HOPPER_MINECART", 0), - HORN_CORAL("STONE", 0), - HORN_CORAL_BLOCK("STONE", 0), - HORN_CORAL_FAN("STONE", 0), - HORSE_SPAWN_EGG("MONSTER_EGG", 0), - HUSK_SPAWN_EGG("MONSTER_EGG", 0), - ICE("ICE", 0), - INFESTED_CHISELED_STONE_BRICKS("MONSTER_EGGS", 5), - INFESTED_COBBLESTONE("MONSTER_EGGS", 1), - INFESTED_CRACKED_STONE_BRICKS("MONSTER_EGGS", 4), - INFESTED_MOSSY_STONE_BRICKS("MONSTER_EGGS", 3), - INFESTED_STONE("MONSTER_EGGS", 0), - INFESTED_STONE_BRICKS("MONSTER_EGGS", 2), - INK_SAC("INK_SACK", 0), - IRON_AXE("IRON_AXE", 0), - IRON_BARS("IRON_FENCE", 0), - IRON_BLOCK("IRON_BLOCK", 0), - IRON_BOOTS("IRON_BOOTS", 0), - IRON_CHESTPLATE("IRON_CHESTPLATE", 0), - IRON_DOOR("IRON_DOOR", 0), - IRON_HELMET("IRON_HELMET", 0), - IRON_HOE("IRON_HOE", 0), - IRON_HORSE_ARMOR("IRON_BARDING", 0), - IRON_INGOT("IRON_INGOT", 0), - IRON_LEGGINGS("IRON_LEGGINGS", 0), - IRON_NUGGET("IRON_NUGGET", 0), - IRON_ORE("IRON_ORE", 0), - IRON_PICKAXE("IRON_PICKAXE", 0), - IRON_SHOVEL("IRON_SPADE", 0), - IRON_SWORD("IRON_SWORD", 0), - IRON_TRAPDOOR("IRON_TRAPDOOR", 0), - ITEM_FRAME("ITEM_FRAME", 0), - JACK_O_LANTERN("JACK_O_LANTERN", 0), - JUKEBOX("JUKEBOX", 0), - JUNGLE_BOAT("BOAT_JUNGLE", 0), - JUNGLE_BUTTON("WOOD_BUTTON", 0), - JUNGLE_DOOR("JUNGLE_DOOR", 0), - JUNGLE_FENCE("JUNGLE_FENCE", 0), - JUNGLE_FENCE_GATE("JUNGLE_FENCE_GATE", 0), - JUNGLE_LEAVES("LEAVES", 3), - JUNGLE_LOG("LOG", 3), - JUNGLE_PLANKS("WOOD", 3), - JUNGLE_PRESSURE_PLATE("WOOD_PLATE", 0), - JUNGLE_SAPLING("SAPLING", 3), - JUNGLE_SLAB("WOOD_STEP", 3), - JUNGLE_STAIRS("JUNGLE_WOOD_STAIRS", 0), - JUNGLE_TRAPDOOR("TRAP_DOOR", 0), - JUNGLE_WOOD("LOG", 3), - KELP("STONE", 0), - KELP_PLANT("STONE", 0), - KNOWLEDGE_BOOK("KNOWLEDGE_BOOK", 0), - LADDER("LADDER", 0), - LAPIS_BLOCK("LAPIS_BLOCK", 0), - LAPIS_LAZULI("INK_SACK", 4), - LAPIS_ORE("LAPIS_ORE", 0), - LARGE_FERN("DOUBLE_PLANT", 3), - LAVA("LAVA", 0), - LAVA_BUCKET("LAVA_BUCKET", 0), - LEAD("LEASH", 0), - LEATHER("LEATHER", 0), - LEATHER_BOOTS("LEATHER_BOOTS", 0), - LEATHER_CHESTPLATE("LEATHER_CHESTPLATE", 0), - LEATHER_HELMET("LEATHER_HELMET", 0), - LEATHER_LEGGINGS("LEATHER_LEGGINGS", 0), - LEVER("LEVER", 0), - LIGHT_BLUE_BANNER("BANNER", 12), - LIGHT_BLUE_BED("BED", 3), - LIGHT_BLUE_CARPET("CARPET", 3), - LIGHT_BLUE_CONCRETE("CONCRETE", 3), - LIGHT_BLUE_CONCRETE_POWDER("CONCRETE_POWDER", 3), - LIGHT_BLUE_DYE("INK_SACK", 12), - LIGHT_BLUE_GLAZED_TERRACOTTA("LIGHT_BLUE_GLAZED_TERRACOTTA", 0), - LIGHT_BLUE_SHULKER_BOX("LIGHT_BLUE_SHULKER_BOX", 0), - LIGHT_BLUE_STAINED_GLASS("STAINED_GLASS", 3), - LIGHT_BLUE_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 3), - LIGHT_BLUE_TERRACOTTA("STAINED_CLAY", 3), - LIGHT_BLUE_WALL_BANNER("BANNER", 0), - LIGHT_BLUE_WOOL("WOOL", 3), - LIGHT_GRAY_BANNER("BANNER", 7), - LIGHT_GRAY_BED("BED", 8), - LIGHT_GRAY_CARPET("CARPET", 8), - LIGHT_GRAY_CONCRETE("CONCRETE", 8), - LIGHT_GRAY_CONCRETE_POWDER("CONCRETE_POWDER", 8), - LIGHT_GRAY_DYE("INK_SACK", 7), - LIGHT_GRAY_GLAZED_TERRACOTTA("SILVER_GLAZED_TERRACOTTA", 0), - LIGHT_GRAY_SHULKER_BOX("SILVER_SHULKER_BOX", 0), - LIGHT_GRAY_STAINED_GLASS("STAINED_GLASS", 8), - LIGHT_GRAY_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 8), - LIGHT_GRAY_TERRACOTTA("STAINED_CLAY", 8), - LIGHT_GRAY_WALL_BANNER("WALL_BANNER", 0), - LIGHT_GRAY_WOOL("WOOL", 8), - LIGHT_WEIGHTED_PRESSURE_PLATE("GOLD_PLATE", 0), - LILAC("DOUBLE_PLANT", 1), - LILY_PAD("WATER_LILY", 0), - LIME_BANNER("BANNER", 10), - LIME_BED("BED", 5), - LIME_CARPET("CARPET", 5), - LIME_CONCRETE("CONCRETE", 5), - LIME_CONCRETE_POWDER("CONCRETE_POWDER", 5), - LIME_DYE("INK_SACK", 10), - LIME_GLAZED_TERRACOTTA("LIME_GLAZED_TERRACOTTA", 0), - LIME_SHULKER_BOX("LIME_SHULKER_BOX", 0), - LIME_STAINED_GLASS("STAINED_GLASS", 5), - LIME_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 5), - LIME_TERRACOTTA("STAINED_CLAY", 5), - LIME_WALL_BANNER("WALL_BANNER", 0), - LIME_WOOL("WOOL", 5), - LINGERING_POTION("LINGERING_POTION", 0), - LLAMA_SPAWN_EGG("MONSTER_EGG", 0), - MAGENTA_BANNER("BANNER", 13), - MAGENTA_BED("BED", 2), - MAGENTA_CARPET("CARPET", 2), - MAGENTA_CONCRETE("CONCRETE", 2), - MAGENTA_CONCRETE_POWDER("CONCRETE_POWDER", 2), - MAGENTA_DYE("INK_SACK", 13), - MAGENTA_GLAZED_TERRACOTTA("MAGENTA_GLAZED_TERRACOTTA", 0), - MAGENTA_SHULKER_BOX("MAGENTA_SHULKER_BOX", 0), - MAGENTA_STAINED_GLASS("STAINED_GLASS", 2), - MAGENTA_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 2), - MAGENTA_TERRACOTTA("STAINED_CLAY", 2), - MAGENTA_WALL_BANNER("WALL_BANNER", 0), - MAGENTA_WOOL("WOOL", 2), - MAGMA_BLOCK("MAGMA", 0), - MAGMA_CREAM("MAGMA_CREAM", 0), - MAGMA_CUBE_SPAWN_EGG("MONSTER_EGG", 0), - MAP("MAP", 0), - MELON("MELON_BLOCK", 0), - MELON_SEEDS("MELON_SEEDS", 0), - MELON_SLICE("MELON", 0), - MELON_STEM("MELON_STEM", 0), - MILK_BUCKET("MILK_BUCKET", 0), - MINECART("MINECART", 0), - MOOSHROOM_SPAWN_EGG("MONSTER_EGG", 0), - MOSSY_COBBLESTONE("MOSSY_COBBLESTONE", 0), - MOSSY_COBBLESTONE_WALL("COBBLE_WALL", 1), - MOSSY_STONE_BRICKS("SMOOTH_BRICK", 1), - MOVING_PISTON("PISTON_MOVING_PIECE", 0), - MULE_SPAWN_EGG("MONSTER_EGG", 0), - MUSHROOM_STEM("BROWN_MUSHROOM", 0), - MUSHROOM_STEW("MUSHROOM_SOUP", 0), - MUSIC_DISC_11("GOLD_RECORD", 0), - MUSIC_DISC_13("GREEN_RECORD", 0), - MUSIC_DISC_BLOCKS("RECORD_3", 0), - MUSIC_DISC_CAT("RECORD_4", 0), - MUSIC_DISC_CHIRP("RECORD_5", 0), - MUSIC_DISC_FAR("RECORD_6", 0), - MUSIC_DISC_MALL("RECORD_7", 0), - MUSIC_DISC_MELLOHI("RECORD_8", 0), - MUSIC_DISC_STAL("RECORD_9", 0), - MUSIC_DISC_STRAD("RECORD_10", 0), - MUSIC_DISC_WAIT("RECORD_11", 0), - MUSIC_DISC_WARD("RECORD_12", 0), - MUTTON("MUTTON", 0), - MYCELIUM("MYCEL", 0), - NAME_TAG("NAME_TAG", 0), - NAUTILUS_SHELL("STONE", 0), - NETHERRACK("NETHERRACK", 0), - NETHER_BRICK("NETHER_BRICK", 0), - NETHER_BRICKS("NETHER_BRICK", 0), - NETHER_BRICK_FENCE("NETHER_FENCE", 0), - NETHER_BRICK_SLAB("STEP", 6), - NETHER_BRICK_STAIRS("NETHER_BRICK_STAIRS", 0), - NETHER_PORTAL("PORTAL", 0), - NETHER_QUARTZ_ORE("QUARTZ_ORE", 0), - NETHER_STAR("NETHER_STAR", 0), - NETHER_WART("NETHER_STALK", 0), - NETHER_WART_BLOCK("NETHER_WART_BLOCK", 0), - NOTE_BLOCK("NOTE_BLOCK", 0), - OAK_BOAT("BOAT", 0), - OAK_BUTTON("WOOD_BUTTON", 0), - OAK_DOOR("WOOD_DOOR", 0), - OAK_FENCE("FENCE", 0), - OAK_FENCE_GATE("FENCE_GATE", 0), - OAK_LEAVES("LEAVES", 0), - OAK_LOG("LOG", 0), - OAK_PLANKS("WOOD", 0), - OAK_PRESSURE_PLATE("WOOD_PLATE", 0), - OAK_SAPLING("SAPLING", 0), - OAK_SLAB("WOOD_STEP", 0), - OAK_STAIRS("WOOD_STAIRS", 0), - OAK_TRAPDOOR("TRAP_DOOR", 0), - OAK_WOOD("LOG", 0), - OBSERVER("OBSERVER", 0), - OBSIDIAN("OBSIDIAN", 0), - OCELOT_SPAWN_EGG("RECORD_12", 0), - ORANGE_BANNER("BANNER", 14), - ORANGE_BED("BED", 1), - ORANGE_CARPET("CARPET", 1), - ORANGE_CONCRETE("CONCRETE", 1), - ORANGE_CONCRETE_POWDER("CONCRETE_POWDER", 1), - ORANGE_DYE("INK_SACK", 14), - ORANGE_GLAZED_TERRACOTTA("ORANGE_GLAZED_TERRACOTTA", 0), - ORANGE_SHULKER_BOX("ORANGE_SHULKER_BOX", 0), - ORANGE_STAINED_GLASS("STAINED_GLASS", 1), - ORANGE_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 1), - ORANGE_TERRACOTTA("STAINED_CLAY", 1), - ORANGE_TULIP("RED_ROSE", 5), - ORANGE_WALL_BANNER("WALL_BANNER", 0), - ORANGE_WOOL("WOOL", 1), - OXEYE_DAISY("RED_ROSE", 8), - PACKED_ICE("PACKED_ICE", 0), - PAINTING("PAINTING", 0), - PAPER("PAPER", 0), - PARROT_SPAWN_EGG("MONSTER_EGG", 0), - PEONY("DOUBLE_PLANT", 5), - PETRIFIED_OAK_SLAB("STONE", 0), - PHANTOM_MEMBRANE("STONE", 0), - PHANTOM_SPAWN_EGG("MONSTER_EGG", 0), - PIG_SPAWN_EGG("MONSTER_EGG", 0), - PINK_BANNER("BANNER", 9), - PINK_BED("BED", 6), - PINK_CARPET("CARPET", 6), - PINK_CONCRETE("CONCRETE", 6), - PINK_CONCRETE_POWDER("CONCRETE_POWDER", 6), - PINK_DYE("INK_SACK", 9), - PINK_GLAZED_TERRACOTTA("PINK_GLAZED_TERRACOTTA", 0), - PINK_SHULKER_BOX("PINK_SHULKER_BOX", 0), - PINK_STAINED_GLASS("STAINED_GLASS", 6), - PINK_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 6), - PINK_TERRACOTTA("STAINED_CLAY", 6), - PINK_TULIP("RED_ROSE", 7), - PINK_WALL_BANNER("WALL_BANNER", 0), - PINK_WOOL("WOOL", 6), - PISTON("PISTON_BASE", 0), - PISTON_HEAD("PISTON_EXTENSION", 0), - PLAYER_HEAD("SKULL", 0), - PLAYER_WALL_HEAD("SKULL", 0), - PODZOL("DIRT", 2), - POISONOUS_POTATO("POISONOUS_POTATO", 0), - POLAR_BEAR_SPAWN_EGG("MONSTER_EGG", 0), - POLISHED_ANDESITE("STONE", 6), - POLISHED_DIORITE("STONE", 4), - POLISHED_GRANITE("STONE", 2), - POPPED_CHORUS_FRUIT("CHORUS_FRUIT_POPPED", 0), - POPPY("RED_ROSE", 0), - PORKCHOP("PORK", 0), - POTATO("POTATO_ITEM", 0), - POTATOES("POTATO", 0), - POTION("POTION", 0), - POTTED_ACACIA_SAPLING("FLOWER_POT", 0), - POTTED_ALLIUM("FLOWER_POT", 0), - POTTED_AZURE_BLUET("FLOWER_POT", 0), - POTTED_BIRCH_SAPLING("FLOWER_POT", 0), - POTTED_BLUE_ORCHID("FLOWER_POT", 0), - POTTED_BROWN_MUSHROOM("FLOWER_POT", 0), - POTTED_CACTUS("FLOWER_POT", 0), - POTTED_DANDELION("FLOWER_POT", 0), - POTTED_DARK_OAK_SAPLING("FLOWER_POT", 0), - POTTED_DEAD_BUSH("FLOWER_POT", 0), - POTTED_FERN("FLOWER_POT", 0), - POTTED_JUNGLE_SAPLING("FLOWER_POT", 0), - POTTED_OAK_SAPLING("FLOWER_POT", 0), - POTTED_ORANGE_TULIP("FLOWER_POT", 0), - POTTED_OXEYE_DAISY("FLOWER_POT", 0), - POTTED_PINK_TULIP("FLOWER_POT", 0), - POTTED_POPPY("FLOWER_POT", 0), - POTTED_RED_MUSHROOM("FLOWER_POT", 0), - POTTED_RED_TULIP("FLOWER_POT", 0), - POTTED_SPRUCE_SAPLING("FLOWER_POT", 0), - POTTED_WHITE_TULIP("FLOWER_POT", 0), - POWERED_RAIL("POWERED_RAIL", 0), - PRISMARINE("PRISMARINE", 0), - PRISMARINE_BRICKS("PRISMARINE", 1), - PRISMARINE_BRICK_SLAB("STONE", 0), - PRISMARINE_BRICK_STAIRS("STONE", 0), - PRISMARINE_CRYSTALS("PRISMARINE_CRYSTALS", 0), - PRISMARINE_SHARD("PRISMARINE_SHARD", 0), - PRISMARINE_SLAB("STONE", 0), - PRISMARINE_STAIRS("STONE", 0), - PUFFERFISH("RAW_FISH", 3), - PUFFERFISH_BUCKET("STONE", 0), - PUFFERFISH_SPAWN_EGG("MONSTER_EGG", 0), - PUMPKIN("PUMPKIN", 0), - PUMPKIN_PIE("PUMPKIN_PIE", 0), - PUMPKIN_SEEDS("PUMPKIN_SEEDS", 0), - PUMPKIN_STEM("PUMPKIN_STEM", 0), - PURPLE_BANNER("BANNER", 5), - PURPLE_BED("BED", 10), - PURPLE_CARPET("CARPET", 10), - PURPLE_CONCRETE("CONCRETE", 10), - PURPLE_CONCRETE_POWDER("CONCRETE_POWDER", 10), - PURPLE_DYE("INK_SACK", 5), - PURPLE_GLAZED_TERRACOTTA("PURPLE_GLAZED_TERRACOTTA", 0), - PURPLE_SHULKER_BOX("PURPLE_SHULKER_BOX", 0), - PURPLE_STAINED_GLASS("STAINED_GLASS", 10), - PURPLE_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 10), - PURPLE_TERRACOTTA("STAINED_CLAY", 10), - PURPLE_WALL_BANNER("WALL_BANNER", 0), - PURPLE_WOOL("WOOL", 10), - PURPUR_BLOCK("PURPUR_BLOCK", 0), - PURPUR_PILLAR("PURPUR_PILLAR", 0), - PURPUR_SLAB("PURPUR_SLAB", 0), - PURPUR_STAIRS("PURPUR_STAIRS", 0), - QUARTZ("QUARTZ", 0), - QUARTZ_BLOCK("QUARTZ_BLOCK", 0), - QUARTZ_PILLAR("QUARTZ_BLOCK", 2), - QUARTZ_SLAB("STEP", 7), - QUARTZ_STAIRS("QUARTZ_STAIRS", 0), - RABBIT("RABBIT", 0), - RABBIT_FOOT("RABBIT_FOOT", 0), - RABBIT_HIDE("RABBIT_HIDE", 0), - RABBIT_SPAWN_EGG("MONSTER_EGG", 0), - RABBIT_STEW("RABBIT_STEW", 0), - RAIL("RAILS", 0), - REDSTONE("REDSTONE", 0), - REDSTONE_BLOCK("REDSTONE_BLOCK", 0), - REDSTONE_LAMP("REDSTONE_LAMP_OFF", 0), - REDSTONE_ORE("REDSTONE_ORE", 0), - REDSTONE_TORCH("REDSTONE_TORCH_ON", 0), - REDSTONE_WALL_TORCH("REDSTONE_TORCH_ON", 1), - REDSTONE_WIRE("REDSTONE_WIRE", 0), - RED_BANNER("BANNER", 1), - RED_BED("BED", 14), - RED_CARPET("CARPET", 14), - RED_CONCRETE("CONCRETE", 14), - RED_CONCRETE_POWDER("CONCRETE_POWDER", 14), - RED_GLAZED_TERRACOTTA("RED_GLAZED_TERRACOTTA", 0), - RED_MUSHROOM("RED_MUSHROOM", 0), - RED_MUSHROOM_BLOCK("RED_MUSHROOM", 0), - RED_NETHER_BRICKS("RED_NETHER_BRICK", 0), - RED_SAND("SAND", 1), - RED_SANDSTONE("RED_SANDSTONE", 0), - RED_SANDSTONE_SLAB("STONE_SLAB2", 0), - RED_SANDSTONE_STAIRS("RED_SANDSTONE_STAIRS", 0), - RED_SHULKER_BOX("RED_SHULKER_BOX", 0), - RED_STAINED_GLASS("STAINED_GLASS", 14), - RED_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 14), - RED_TERRACOTTA("STAINED_CLAY", 14), - RED_TULIP("RED_ROSE", 4), - RED_WALL_BANNER("WALL_BANNER", 0), - RED_WOOL("WOOL", 14), - REPEATER("DIODE", 0), - REPEATING_COMMAND_BLOCK("COMMAND_REPEATING", 0), - ROSE_BUSH("DOUBLE_PLANT", 4), - ROSE_RED("INK_SACK", 1), - ROTTEN_FLESH("ROTTEN_FLESH", 0), - SADDLE("SADDLE", 0), - SALMON("RAW_FISH", 1), - SALMON_BUCKET("BUCKET", 0), - SALMON_SPAWN_EGG("MONSTER_EGG", 0), - SAND("SAND", 0), - SANDSTONE("SANDSTONE", 0), - SANDSTONE_SLAB("STEP", 1), - SANDSTONE_STAIRS("SANDSTONE_STAIRS", 0), - SCUTE("STONE", 0), - SEAGRASS("STONE", 0), - SEA_LANTERN("SEA_LANTERN", 0), - SEA_PICKLE("STONE", 0), - SHEARS("SHEARS", 0), - SHEEP_SPAWN_EGG("MONSTER_EGG", 0), - SHIELD("SHIELD", 0), - SHULKER_BOX("PURPLE_SHULKER_BOX", 0), - SHULKER_SHELL("SHULKER_SHELL", 0), - SHULKER_SPAWN_EGG("MONSTER_EGG", 0), - SIGN("SIGN", 0), - SILVERFISH_SPAWN_EGG("MONSTER_EGG", 0), - SKELETON_HORSE_SPAWN_EGG("MONSTER_EGG", 0), - SKELETON_SKULL("SKULL", 0), - SKELETON_SPAWN_EGG("MONSTER_EGG", 0), - SKELETON_WALL_SKULL("SKULL", 0), - SLIME_BALL("SLIME_BALL", 0), - SLIME_BLOCK("SLIME_BLOCK", 0), - SLIME_SPAWN_EGG("MONSTER_EGG", 0), - SMOOTH_QUARTZ("STONE", 0), - SMOOTH_RED_SANDSTONE("RED_SANDSTONE", 2), - SMOOTH_SANDSTONE("SANDSTONE", 2), - SMOOTH_STONE("STEP", 0), - SNOW("SNOW", 0), - SNOWBALL("SNOW_BALL", 0), - SNOW_BLOCK("SNOW_BLOCK", 0), - SOUL_SAND("SOUL_SAND", 0), - SPAWNER("MOB_SPAWNER", 0), - SPECTRAL_ARROW("SPECTRAL_ARROW", 0), - SPIDER_EYE("SPIDER_EYE", 0), - SPIDER_SPAWN_EGG("MONSTER_EGG", 0), - SPLASH_POTION("SPLASH_POTION", 0), - SPONGE("SPONGE", 0), - SPRUCE_BOAT("BOAT_SPRUCE", 0), - SPRUCE_BUTTON("WOOD_BUTTON", 0), - SPRUCE_DOOR("SPRUCE_DOOR", 0), - SPRUCE_FENCE("SPRUCE_FENCE", 0), - SPRUCE_FENCE_GATE("SPRUCE_FENCE_GATE", 0), - SPRUCE_LEAVES("LEAVES", 1), - SPRUCE_LOG("LOG", 1), - SPRUCE_PLANKS("WOOD", 1), - SPRUCE_PRESSURE_PLATE("WOOD_PLATE", 0), - SPRUCE_SAPLING("SAPLING", 1), - SPRUCE_SLAB("WOOD_STEP", 1), - SPRUCE_STAIRS("SPRUCE_WOOD_STAIRS", 0), - SPRUCE_TRAPDOOR("TRAP_DOOR", 0), - SPRUCE_WOOD("LOG", 1), - SQUID_SPAWN_EGG("MONSTER_EGG", 0), - STICK("STICK", 0), - STICKY_PISTON("PISTON_STICKY_BASE", 0), - STONE("STONE", 0), - STONE_AXE("STONE_AXE", 0), - STONE_BRICKS("SMOOTH_BRICK", 0), - STONE_BRICK_SLAB("STEP", 5), - STONE_BRICK_STAIRS("SMOOTH_STAIRS", 0), - STONE_BUTTON("STONE_BUTTON", 0), - STONE_HOE("STONE_HOE", 0), - STONE_PICKAXE("STONE_PICKAXE", 0), - STONE_PRESSURE_PLATE("STONE_PLATE", 0), - STONE_SHOVEL("STONE_SPADE", 0), - STONE_SLAB("STEP", 0), - STONE_SWORD("STONE_SWORD", 0), - STRAY_SPAWN_EGG("MONSTER_EGG", 0), - STRING("STRING", 0), - STRIPPED_ACACIA_LOG("STONE", 0), - STRIPPED_ACACIA_WOOD("STONE", 0), - STRIPPED_BIRCH_LOG("STONE", 0), - STRIPPED_BIRCH_WOOD("STONE", 0), - STRIPPED_DARK_OAK_LOG("STONE", 0), - STRIPPED_DARK_OAK_WOOD("STONE", 0), - STRIPPED_JUNGLE_LOG("STONE", 0), - STRIPPED_JUNGLE_WOOD("STONE", 0), - STRIPPED_OAK_LOG("STONE", 0), - STRIPPED_OAK_WOOD("STONE", 0), - STRIPPED_SPRUCE_LOG("STONE", 0), - STRIPPED_SPRUCE_WOOD("STONE", 0), - STRUCTURE_BLOCK("STRUCTURE_BLOCK", 0), - STRUCTURE_VOID("STRUCTURE_VOID", 0), - SUGAR("SUGAR", 0), - SUGAR_CANE("SUGAR_CANE", 0), - SUNFLOWER("DOUBLE_PLANT", 0), - TALL_GRASS("DOUBLE_PLANT", 2), - TALL_SEAGRASS("STONE", 0), - TERRACOTTA("HARD_CLAY", 0), - TIPPED_ARROW("TIPPED_ARROW", 0), - TNT("TNT", 0), - TNT_MINECART("EXPLOSIVE_MINECART", 0), - TORCH("TORCH", 0), - TOTEM_OF_UNDYING("TOTEM", 0), - TRAPPED_CHEST("TRAPPED_CHEST", 0), - TRIDENT("STONE", 0), - TRIPWIRE("TRIPWIRE", 0), - TRIPWIRE_HOOK("TRIPWIRE_HOOK", 0), - TROPICAL_FISH("RAW_FISH", 0), - TROPICAL_FISH_BUCKET("BUCKET", 0), - TROPICAL_FISH_SPAWN_EGG("MONSTER_EGG", 0), - TUBE_CORAL("STONE", 0), - TUBE_CORAL_BLOCK("STONE", 0), - TUBE_CORAL_FAN("STONE", 0), - TURTLE_EGG("MONSTER_EGG", 0), - TURTLE_HELMET("STONE", 0), - TURTLE_SPAWN_EGG("MONSTER_EGG", 0), - VEX_SPAWN_EGG("MONSTER_EGG", 0), - VILLAGER_SPAWN_EGG("MONSTER_EGG", 0), - VINDICATOR_SPAWN_EGG("MONSTER_EGG", 0), - VINE("VINE", 0), - VOID_AIR("AIR", 0), - WALL_SIGN("WALL_SIGN", 0), - WALL_TORCH("TORCH", 1), - WATER("WATER", 0), - WATER_BUCKET("WATER_BUCKET", 0), - WET_SPONGE("SPONGE", 1), - WHEAT("WHEAT", 0), - WHEAT_SEEDS("SEEDS", 0), - WHITE_BANNER("BANNER", 15), - WHITE_BED("BED", 0), - WHITE_CARPET("CARPET", 0), - WHITE_CONCRETE("CONCRETE", 0), - WHITE_CONCRETE_POWDER("CONCRETE_POWDER", 0), - WHITE_GLAZED_TERRACOTTA("WHITE_GLAZED_TERRACOTTA", 0), - WHITE_SHULKER_BOX("WHITE_SHULKER_BOX", 0), - WHITE_STAINED_GLASS("STAINED_GLASS", 0), - WHITE_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 0), - WHITE_TERRACOTTA("TERRACOTTA", 0), - WHITE_TULIP("RED_ROSE", 6), - WHITE_WALL_BANNER("WALL_BANNER", 0), - WHITE_WOOL("WOOL", 0), - WITCH_SPAWN_EGG("MONSTER_EGG", 0), - WITHER_SKELETON_SKULL("SKULL", 0), - WITHER_SKELETON_SPAWN_EGG("MONSTER_EGG", 0), - WITHER_SKELETON_WALL_SKULL("SKULL", 0), - WOLF_SPAWN_EGG("MONSTER_EGG", 0), - WOODEN_AXE("WOOD_AXE", 0), - WOODEN_HOE("WOOD_HOE", 0), - WOODEN_PICKAXE("WOOD_PICKAXE", 0), - WOODEN_SHOVEL("WOOD_SPADE", 0), - WOODEN_SWORD("WOOD_SWORD", 0), - WRITABLE_BOOK("BOOK_AND_QUILL", 0), - WRITTEN_BOOK("WRITTEN_BOOK", 0), - YELLOW_BANNER("BANNER", 11), - YELLOW_BED("BED", 4), - YELLOW_CARPET("CARPET", 4), - YELLOW_CONCRETE("CONCRETE", 4), - YELLOW_CONCRETE_POWDER("CONCRETE_POWDER", 4), - YELLOW_GLAZED_TERRACOTTA("YELLOW_GLAZED_TERRACOTTA", 0), - YELLOW_SHULKER_BOX("YELLOW_SHULKER_BOX", 0), - YELLOW_STAINED_GLASS("STAINED_GLASS", 4), - YELLOW_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 4), - YELLOW_TERRACOTTA("STAINED_CLAY", 4), - YELLOW_WALL_BANNER("WALL_BANNER", 0), - YELLOW_WOOL("WOOL", 4), - ZOMBIE_HEAD("SKULL", 0), - ZOMBIE_HORSE_SPAWN_EGG("MONSTER_EGG", 0), - ZOMBIE_PIGMAN_SPAWN_EGG("MONSTER_EGG", 0), - ZOMBIE_SPAWN_EGG("MONSTER_EGG", 0), - ZOMBIE_VILLAGER_SPAWN_EGG("MONSTER_EGG", 0), - ZOMBIE_WALL_HEAD("SKULL", 0), - ; - String m; - int data; - - XMaterial(String m, int data ){ - this.m = m; - this.data = data; - } - - public ItemStack parseItem(){ - Material mat = parseMaterial(); - if(isNewVersion()){ - return new ItemStack(mat); - } - return new ItemStack(mat,1,(byte) data); - } - static int newV = -1; - public static boolean isNewVersion(){ - if(newV == 0) return false; - if(newV == 1) return true; - Material mat = Material.matchMaterial("RED_WOOL"); - if(mat != null){ - newV = 1; - return true; - } - newV = 0; - return false; - } - - private static HashMap cachedSearch = new HashMap<>(); - public static XMaterial requestXMaterial(String name, byte data){ - if(cachedSearch.containsKey(name.toUpperCase()+","+data)){ - return cachedSearch.get(name.toUpperCase()+","+data); - } - for(XMaterial mat:XMaterial.values()){ - if(name.toUpperCase().equals(mat.m) && ((byte)mat.data) == data){ - cachedSearch.put(mat.m+","+data,mat); - return mat; - } - } - return null; - } - - public boolean isSameMaterial(ItemStack comp){ - if(isNewVersion()){ - return comp.getType() == this.parseMaterial(); - } - if(comp.getType() == this.parseMaterial() && - (int) comp.getData().getData() == (int) this.data){ - return true; - } - XMaterial xmat = fromMaterial(comp.getType()); - if(isDamageable(xmat)){ - if(this.parseMaterial() == comp.getType()){ - return true; - } - } - return false; - } - - public XMaterial fromMaterial(Material mat){ - try{ - return XMaterial.valueOf(mat.toString()); - }catch(IllegalArgumentException e){ - for(XMaterial xmat:XMaterial.values()){ - if(xmat.m.equals(mat.toString())){ - return xmat; - } - } - } - return null; - } - - public static XMaterial fromString(String key){ - XMaterial xmat = null; - try{ - xmat = XMaterial.valueOf(key); - return xmat; - }catch(IllegalArgumentException e){ - String[] split = key.split(":"); - if(split.length == 1){ - xmat = requestXMaterial(key,(byte) 0); - }else{ - xmat = requestXMaterial(split[0],(byte) Integer.parseInt(split[1])); - } - return xmat; - } - - } - - public boolean isDamageable(XMaterial type){ - String[] split = type.toString().split("_"); - int length = split.length; - switch(split[length-1]){ - case "HELMET": - return true; - case "CHESTPLATE": - return true; - case "LEGGINGS": - return true; - case "BOOTS": - return true; - case "SWORD": - return true; - case "AXE": - return true; - case "PICKAXE": - return true; - case "SHOVEL": - return true; - case "HOE": - return true; - case "ELYTRA": - return true; - case "TURTLE_HELMET": - return true; - case "TRIDENT": - return true; - case "HORSE_ARMOR": - return true; - case "SHEARS": - return true; - default: - return false; - } - } - - public Material parseMaterial(){ - Material mat = Material.matchMaterial(this.toString()); - if(mat != null){ - return mat; - } - return Material.matchMaterial(m); - } - -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/util/gui/AbstractAnvilGUI.java b/src/main/java/com/songoda/epicbuckets/util/gui/AbstractAnvilGUI.java deleted file mode 100644 index de8ade0..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/gui/AbstractAnvilGUI.java +++ /dev/null @@ -1,272 +0,0 @@ -package com.songoda.ultimatekits.utils.gui; - -import com.songoda.ultimatekits.UltimateKits; -import com.songoda.ultimatekits.utils.ServerVersion; -import com.songoda.ultimatekits.utils.version.NMSUtil; -import org.bukkit.Bukkit; -import org.bukkit.Sound; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.HandlerList; -import org.bukkit.event.Listener; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.Map; - -public class AbstractAnvilGUI { - - private static Class BlockPosition; - private static Class PacketPlayOutOpenWindow; - private static Class ContainerAnvil; - private static Class ChatMessage; - private static Class EntityHuman; - private static boolean loadedClasses = false; - private Player player; - @SuppressWarnings("unused") - private AnvilClickEventHandler handler; - private Map items = new HashMap<>(); - private OnClose onClose = null; - private Inventory inv; - private Listener listener; - - private Sound closeSound; - - public AbstractAnvilGUI(final Player player, final AnvilClickEventHandler handler) { - loadClasses(); - this.player = player; - this.handler = handler; - - this.listener = new Listener() { - @EventHandler - public void onInventoryClick(InventoryClickEvent event) { - if (UltimateKits.getInstance().isServerVersionAtLeast(ServerVersion.V1_9)) closeSound = Sound.ENTITY_PLAYER_LEVELUP; - if (!(event.getWhoClicked() instanceof Player) || !event.getInventory().equals(inv)) return; - - event.setCancelled(true); - - ItemStack item = event.getCurrentItem(); - int slot = event.getRawSlot(); - String name = ""; - - if (item != null) { - if (item.hasItemMeta()) { - ItemMeta meta = item.getItemMeta(); - - if (meta.hasDisplayName()) { - name = meta.getDisplayName(); - } - } - } - - AnvilClickEvent clickEvent = new AnvilClickEvent(AnvilSlot.bySlot(slot), name); - - handler.onAnvilClick(clickEvent); - - if (clickEvent.getWillClose()) { - event.getWhoClicked().closeInventory(); - } - - if (clickEvent.getWillDestroy()) { - destroy(); - } - } - - @EventHandler - public void onInventoryClose(InventoryCloseEvent event) { - if (!(event.getPlayer() instanceof Player)) return; - Inventory inv = event.getInventory(); - player.setLevel(player.getLevel() - 1); - if (!inv.equals(AbstractAnvilGUI.this.inv)) return; - inv.clear(); - OnClose onClose = getOnClose(); - if (UltimateKits.getInstance().isServerVersionAtLeast(ServerVersion.V1_9)) player.playSound(player.getLocation(), closeSound, 1F, 1F); - Bukkit.getScheduler().scheduleSyncDelayedTask(UltimateKits.getInstance(), () -> { - if (onClose != null) onClose.OnClose(player, inv); - destroy(); - }, 1L); - } - - @EventHandler - public void onPlayerQuit(PlayerQuitEvent event) { - if (!event.getPlayer().equals(getPlayer())) return; - player.setLevel(player.getLevel() - 1); - destroy(); - } - }; - - Bukkit.getPluginManager().registerEvents(listener, UltimateKits.getInstance()); - } - - private void loadClasses() { - if (loadedClasses) return; - BlockPosition = NMSUtil.getNMSClass("BlockPosition"); - PacketPlayOutOpenWindow = NMSUtil.getNMSClass("PacketPlayOutOpenWindow"); - ContainerAnvil = NMSUtil.getNMSClass("ContainerAnvil"); - EntityHuman = NMSUtil.getNMSClass("EntityHuman"); - ChatMessage = NMSUtil.getNMSClass("ChatMessage"); - loadedClasses = true; - } - - public Player getPlayer() { - return player; - } - - public void setSlot(AnvilSlot slot, ItemStack item) { - items.put(slot, item); - } - - public void open() { - player.setLevel(player.getLevel() + 1); - - try { - Object craftPlayer = NMSUtil.getCraftClass("entity.CraftPlayer").cast(player); - Method getHandleMethod = craftPlayer.getClass().getMethod("getHandle", new Class[0]); - Object entityPlayer = getHandleMethod.invoke(craftPlayer, new Object[0]); - - Object container; - - if (NMSUtil.getVersionNumber() == 7) { - container = ContainerAnvil.getConstructor(new Class[]{NMSUtil.getNMSClass("PlayerInventory"), NMSUtil.getNMSClass("World"), Integer.TYPE, Integer.TYPE, Integer.TYPE, EntityHuman}).newInstance(new Object[]{NMSUtil.getFieldObject(entityPlayer, NMSUtil.getField(entityPlayer.getClass(), "inventory", false)), NMSUtil.getFieldObject(entityPlayer, NMSUtil.getField(entityPlayer.getClass(), "world", false)), Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0), entityPlayer}); - } else { - container = ContainerAnvil.getConstructor(NMSUtil.getNMSClass("PlayerInventory"), NMSUtil.getNMSClass("World"), BlockPosition, EntityHuman).newInstance(NMSUtil.getFieldObject(entityPlayer, NMSUtil.getField(entityPlayer.getClass(), "inventory", false)), NMSUtil.getFieldObject(entityPlayer, NMSUtil.getField(entityPlayer.getClass(), "world", false)), BlockPosition.getConstructor(int.class, int.class, int.class).newInstance(0, 0, 0), entityPlayer); - } - - NMSUtil.getField(NMSUtil.getNMSClass("Container"), "checkReachable", true).set(container, false); - - Method getBukkitViewMethod = container.getClass().getMethod("getBukkitView", new Class[0]); - Object bukkitView = getBukkitViewMethod.invoke(container); - Method getTopInventoryMethod = bukkitView.getClass().getMethod("getTopInventory", new Class[0]); - inv = (Inventory) getTopInventoryMethod.invoke(bukkitView); - - for (AnvilSlot slot : items.keySet()) { - inv.setItem(slot.getSlot(), items.get(slot)); - } - - Method nextContainerCounterMethod = entityPlayer.getClass().getMethod("nextContainerCounter", new Class[0]); - int c = (int) nextContainerCounterMethod.invoke(entityPlayer); - - Constructor chatMessageConstructor = ChatMessage.getConstructor(String.class, Object[].class); - Object packet; - - if (NMSUtil.getVersionNumber() == 7) { - packet = PacketPlayOutOpenWindow.getConstructor(new Class[]{Integer.TYPE, Integer.TYPE, String.class, Integer.TYPE, Boolean.TYPE, Integer.TYPE}).newInstance(new Object[]{Integer.valueOf(c), Integer.valueOf(8), "Repairing", Integer.valueOf(0), Boolean.valueOf(true), Integer.valueOf(0)}); - } else { - packet = PacketPlayOutOpenWindow.getConstructor(int.class, String.class, NMSUtil.getNMSClass("IChatBaseComponent"), int.class).newInstance(c, "minecraft:anvil", chatMessageConstructor.newInstance("Repairing", new Object[]{}), 0); - } - - NMSUtil.sendPacket(player, packet); - - Field activeContainerField = NMSUtil.getField(EntityHuman, "activeContainer", true); - - if (activeContainerField != null) { - activeContainerField.set(entityPlayer, container); - NMSUtil.getField(NMSUtil.getNMSClass("Container"), "windowId", true).set(activeContainerField.get(entityPlayer), c); - - Method addSlotListenerMethod = activeContainerField.get(entityPlayer).getClass().getMethod("addSlotListener", NMSUtil.getNMSClass("ICrafting")); - addSlotListenerMethod.invoke(activeContainerField.get(entityPlayer), entityPlayer); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - public void destroy() { - onClose = null; - player = null; - handler = null; - items = null; - - HandlerList.unregisterAll(listener); - - listener = null; - } - - private OnClose getOnClose() { - return onClose; - } - - public void setOnClose(OnClose onClose) { - this.onClose = onClose; - } - - public void setCloseSound(Sound sound) { - closeSound = sound; - } - - public enum AnvilSlot { - INPUT_LEFT(0), - INPUT_RIGHT(1), - OUTPUT(2); - - private int slot; - - private AnvilSlot(int slot) { - this.slot = slot; - } - - public static AnvilSlot bySlot(int slot) { - for (AnvilSlot anvilSlot : values()) { - if (anvilSlot.getSlot() == slot) { - return anvilSlot; - } - } - - return null; - } - - public int getSlot() { - return slot; - } - } - - public interface AnvilClickEventHandler { - void onAnvilClick(AnvilClickEvent event); - } - - public class AnvilClickEvent { - private AnvilSlot slot; - - private String name; - - private boolean close = true; - private boolean destroy = true; - - public AnvilClickEvent(AnvilSlot slot, String name) { - this.slot = slot; - this.name = name; - } - - public AnvilSlot getSlot() { - return slot; - } - - public String getName() { - return name; - } - - public boolean getWillClose() { - return close; - } - - public void setWillClose(boolean close) { - this.close = close; - } - - public boolean getWillDestroy() { - return destroy; - } - - public void setWillDestroy(boolean destroy) { - this.destroy = destroy; - } - } -} diff --git a/src/main/java/com/songoda/epicbuckets/util/gui/AbstractGUI.java b/src/main/java/com/songoda/epicbuckets/util/gui/AbstractGUI.java deleted file mode 100644 index 9f05ec4..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/gui/AbstractGUI.java +++ /dev/null @@ -1,226 +0,0 @@ -package com.songoda.ultimatekits.utils.gui; - -import com.songoda.arconix.api.methods.formatting.TextComponent; -import com.songoda.ultimatekits.UltimateKits; -import com.songoda.ultimatekits.utils.ServerVersion; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryType; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.plugin.java.JavaPlugin; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public abstract class AbstractGUI implements Listener { - - private static boolean listenersInitialized = false; - protected Player player; - protected Inventory inventory = null; - protected boolean cancelBottom = false; - private Map clickables = new HashMap<>(); - private List onCloses = new ArrayList<>(); - private Map draggableRanges = new HashMap<>(); - - public AbstractGUI(Player player) { - this.player = player; - } - - public static void initializeListeners(JavaPlugin plugin) { - if (listenersInitialized) return; - - Bukkit.getPluginManager().registerEvents(new Listener() { - @EventHandler - public void onClickGUI(InventoryClickEvent event) { - Inventory inventory = event.getClickedInventory(); - if (inventory == null) return; - AbstractGUI gui = getGUIFromInventory(inventory); - Player player = (Player) event.getWhoClicked(); - - boolean bottom = false; - - InventoryType type = event.getClickedInventory().getType(); - if (type != InventoryType.CHEST && type != InventoryType.PLAYER) return; - - if (gui == null && event.getWhoClicked().getOpenInventory().getTopInventory() != null) { - Inventory top = event.getWhoClicked().getOpenInventory().getTopInventory(); - gui = getGUIFromInventory(top); - - if (gui != null && gui.cancelBottom) event.setCancelled(true); - bottom = true; - } - - if (gui == null) return; - - if (!bottom) event.setCancelled(true); - - if (!gui.draggableRanges.isEmpty() && !bottom) { - for (Map.Entry entry : gui.draggableRanges.entrySet()) { - Range range = entry.getKey(); - if (range.getMax() == range.getMin() && event.getSlot() == range.getMin() - || event.getSlot() >= range.getMin() && event.getSlot() <= range.getMax()) { - event.setCancelled(!entry.getValue()); - if (!entry.getValue()) break; - } - } - } - - Map entries = new HashMap<>(gui.clickables); - - for (Map.Entry entry : entries.entrySet()) { - Range range = entry.getKey(); - if (range.isBottom() && !bottom || !range.isBottom() && bottom || range.getClickType() != null && range.getClickType() != event.getClick()) - continue; - if (event.getSlot() >= range.getMin() && event.getSlot() <= range.getMax()) { - entry.getValue().Clickable(player, inventory, event.getCursor(), event.getSlot(), event.getClick()); - if (UltimateKits.getInstance().isServerVersionAtLeast(ServerVersion.V1_12)) - player.playSound(player.getLocation(), entry.getKey().getOnClickSound(), 1F, 1F); - } - } - } - - @EventHandler - public void onCloseGUI(InventoryCloseEvent event) { - Inventory inventory = event.getInventory(); - AbstractGUI gui = getGUIFromInventory(inventory); - - if (gui == null || gui.inventory == null) return; - - for (OnClose onClose : gui.onCloses) { - onClose.OnClose((Player) event.getPlayer(), inventory); - } - } - - private AbstractGUI getGUIFromInventory(Inventory inventory) { - if (inventory.getHolder() == null) return null; - InventoryHolder holder = inventory.getHolder(); - if (!(holder instanceof GUIHolder)) return null; - - return ((AbstractGUI.GUIHolder) holder).getGUI(); - } - }, plugin); - listenersInitialized = true; - } - - public void init(String title, int slots) { - if (inventory == null - || inventory.getSize() != slots - || ChatColor.translateAlternateColorCodes('&', title) != inventory.getTitle()) { - this.inventory = Bukkit.getServer().createInventory(new GUIHolder(), slots, TextComponent.formatTitle(title)); - if (this.clickables.size() == 0) - registerClickables(); - if (this.onCloses.size() == 0) - registerOnCloses(); - } - constructGUI(); - initializeListeners(UltimateKits.getInstance()); - player.openInventory(inventory); - } - - protected abstract void constructGUI(); - - protected void addDraggable(Range range, boolean option) { - this.draggableRanges.put(range, option); - } - - protected void removeDraggable() { - this.draggableRanges.clear(); - } - - protected abstract void registerClickables(); - - protected abstract void registerOnCloses(); - - protected ItemStack createButton(int slot, Inventory inventory, ItemStack item, String name, String... lore) { - ItemMeta meta = item.getItemMeta(); - meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', name)); - if (lore != null && lore.length != 0) { - List newLore = new ArrayList<>(); - for (String line : lore) newLore.add(ChatColor.translateAlternateColorCodes('&', line)); - meta.setLore(newLore); - } - item.setItemMeta(meta); - inventory.setItem(slot, item); - return item; - } - - protected ItemStack createButton(int slot, ItemStack item, String name, String... lore) { - return createButton(slot, inventory, item, name, lore); - } - - protected ItemStack createButton(int slot, Inventory inventory, Material material, String name, String... lore) { - return createButton(slot, inventory, new ItemStack(material), name, lore); - } - - protected ItemStack createButton(int slot, Material material, String name, String... lore) { - return createButton(slot, inventory, new ItemStack(material), name, lore); - } - - protected ItemStack createButton(int slot, Material material, String name, ArrayList lore) { - return createButton(slot, material, name, lore.toArray(new String[0])); - } - - protected ItemStack createButton(int slot, ItemStack item, String name, ArrayList lore) { - return createButton(slot, item, name, lore.toArray(new String[0])); - } - - protected void registerClickable(int min, int max, ClickType clickType, boolean bottom, Clickable clickable) { - clickables.put(new Range(min, max, clickType, bottom), clickable); - } - - protected void registerClickable(int min, int max, ClickType clickType, Clickable clickable) { - registerClickable(min, max, clickType, false, clickable); - } - - protected void registerClickable(int slot, ClickType clickType, Clickable clickable) { - registerClickable(slot, slot, clickType, false, clickable); - } - - protected void registerClickable(int min, int max, Clickable clickable) { - registerClickable(min, max, null, false, clickable); - } - - protected void registerClickable(int slot, boolean bottom, Clickable clickable) { - registerClickable(slot, slot, null, bottom, clickable); - } - - protected void registerClickable(int slot, Clickable clickable) { - registerClickable(slot, slot, null, false, clickable); - } - - protected void resetClickables() { - clickables.clear(); - } - - protected void registerOnClose(OnClose onClose) { - onCloses.add(onClose); - } - - public Inventory getInventory() { - return inventory; - } - - public class GUIHolder implements InventoryHolder { - - @Override - public Inventory getInventory() { - return inventory; - } - - public AbstractGUI getGUI() { - return AbstractGUI.this; - } - } -} diff --git a/src/main/java/com/songoda/epicbuckets/util/gui/Clickable.java b/src/main/java/com/songoda/epicbuckets/util/gui/Clickable.java deleted file mode 100644 index 5b8bd8d..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/gui/Clickable.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.songoda.ultimatekits.utils.gui; - -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.ClickType; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; - -public interface Clickable { - - void Clickable(Player player, Inventory inventory, ItemStack cursor, int slot, ClickType type); -} diff --git a/src/main/java/com/songoda/epicbuckets/util/gui/OnClose.java b/src/main/java/com/songoda/epicbuckets/util/gui/OnClose.java deleted file mode 100644 index 26e75eb..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/gui/OnClose.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.songoda.ultimatekits.utils.gui; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - -public interface OnClose { - - void OnClose(Player player, Inventory inventory); - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/gui/Range.java b/src/main/java/com/songoda/epicbuckets/util/gui/Range.java deleted file mode 100644 index 7411943..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/gui/Range.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.songoda.ultimatekits.utils.gui; - -import com.songoda.ultimatekits.UltimateKits; -import com.songoda.ultimatekits.utils.ServerVersion; -import org.bukkit.Sound; -import org.bukkit.event.inventory.ClickType; - -public class Range { - - private int min; - private int max; - private ClickType clickType; - private boolean bottom; - private Sound onClickSound; - - public Range(int min, int max, ClickType clickType, boolean bottom) { - this.min = min; - this.max = max; - this.clickType = clickType; - this.bottom = bottom; - if (UltimateKits.getInstance().isServerVersionAtLeast(ServerVersion.V1_9)) onClickSound = Sound.UI_BUTTON_CLICK; - } - - public Range(int min, int max, Sound onClickSound, ClickType clickType, boolean bottom) { - this.min = min; - this.max = max; - this.onClickSound = onClickSound; - this.clickType = clickType; - this.bottom = bottom; - } - - public int getMin() { - return min; - } - - public int getMax() { - return max; - } - - public ClickType getClickType() { - return clickType; - } - - public boolean isBottom() { - return bottom; - } - - public Sound getOnClickSound() { - return onClickSound; - } -} diff --git a/src/main/java/com/songoda/epicbuckets/util/hooks/ClaimableProtectionPluginHook.java b/src/main/java/com/songoda/epicbuckets/util/hooks/ClaimableProtectionPluginHook.java deleted file mode 100644 index cc3f8f2..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/hooks/ClaimableProtectionPluginHook.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.songoda.epicspawners.api.utils; - -import org.bukkit.Location; - -/** - * A more specific implementation of {@link ProtectionPluginHook} used internally by - * EpicSpawners to retain more information about default hooks. Often times this - * interface is not recommended over the ProtectionPluginHook interface as its methods - * will not often be used by implementation, though they are available if more information - * is desired. It is, however, recommended to use the former - * - * @author Parker Hawke - 2008Choco - */ -public interface ClaimableProtectionPluginHook extends ProtectionPluginHook { - - /** - * Check whether the provided location is in the claim with the given String ID - * - * @param location the location to check - * @param id the ID of the claim to check - * - * @return true if the location is within the claim, false otherwise or if the - * claim ID does not exist - */ - public boolean isInClaim(Location location, String id); - - /** - * Get the ID of the claim with the given name. Often times this is unnecessary - * as unique IDs are not provided by a claim implementation, though for plugins - * such as factions, the passed parameter is the name of the faction and the - * returned String is its unique ID - * - * @param name the name of the claim to check - * - * @return the unique String ID. null if no claim exists - */ - public String getClaimID(String name); - -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/util/hooks/ProtectionPluginHook.java b/src/main/java/com/songoda/epicbuckets/util/hooks/ProtectionPluginHook.java deleted file mode 100644 index 937c1c6..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/hooks/ProtectionPluginHook.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.songoda.epicspawners.api.utils; - -import com.songoda.epicspawners.api.EpicSpawners; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -/** - * Represents a hook for a protection plugin. This is used by EpicSpawners to determine - * whether a block break should be successful or not according to the current state of - * another plugin. For plugins providing claims with unique String IDs, see the - * {@link ClaimableProtectionPluginHook} for a more detailed implementation. To register - * a protection hook implementation, see - * {@link EpicSpawners#registerProtectionHook(ProtectionPluginHook)} - */ -public interface ProtectionPluginHook { - - /** - * The plugin to which this plugin hook belongs. Must not be null - * - * @return the hooking plugin - */ - public JavaPlugin getPlugin(); - - /** - * Check whether the provided player may build at the specified location - * - * @param player the player to check - * @param location the location to check - * - * @return true if player is permitted to build, false otherwise - */ - public boolean canBuild(Player player, Location location); - - /** - * Check whether the provided player may build at the specified block - * - * @param player the player to check - * @param block the block to check - * - * @return true if player is permitted to build, false otherwise - */ - public default boolean canBuild(Player player, Block block) { - return block != null && canBuild(player, block.getLocation()); - } - -} \ No newline at end of file diff --git a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/ClassWrapper.java b/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/ClassWrapper.java deleted file mode 100644 index 79aeebe..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/ClassWrapper.java +++ /dev/null @@ -1,39 +0,0 @@ -package de.tr7zw.itemnbtapi; - -import org.bukkit.Bukkit; - -public enum ClassWrapper { -CRAFT_ITEMSTACK("org.bukkit.craftbukkit.", ".inventory.CraftItemStack"), -CRAFT_ENTITY("org.bukkit.craftbukkit.", ".entity.CraftEntity"), -CRAFT_WORLD("org.bukkit.craftbukkit.", ".CraftWorld"), -NMS_NBTBASE("net.minecraft.server.", ".NBTBase"), -NMS_NBTTAGSTRING("net.minecraft.server.", ".NBTTagString"), -NMS_ITEMSTACK("net.minecraft.server.", ".ItemStack"), -NMS_NBTTAGCOMPOUND("net.minecraft.server.", ".NBTTagCompound"), -NMS_NBTTAGLIST("net.minecraft.server.", ".NBTTagList"), -NMS_NBTCOMPRESSEDSTREAMTOOLS("net.minecraft.server.", ".NBTCompressedStreamTools"), -NMS_MOJANGSONPARSER("net.minecraft.server.", ".MojangsonParser"), -NMS_TILEENTITY("net.minecraft.server.", ".TileEntity"), -NMS_BLOCKPOSITION("net.minecraft.server.", ".BlockPosition"), -NMS_WORLD("net.minecraft.server.", ".WorldServer"), -NMS_ENTITY("net.minecraft.server.", ".Entity"), -; - - - - private Class clazz; - - ClassWrapper(String pre, String suffix){ - try{ - String version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3]; - clazz = Class.forName(pre + version + suffix); - }catch(Exception ex){ - ex.printStackTrace(); - } - } - - public Class getClazz(){ - return clazz; - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTCompound.java b/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTCompound.java deleted file mode 100644 index f526df0..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTCompound.java +++ /dev/null @@ -1,200 +0,0 @@ -package de.tr7zw.itemnbtapi; - -import java.util.Set; - -import de.tr7zw.itemnbtapi.utils.MinecraftVersion; - - -public class NBTCompound { - - private String compundName; - private NBTCompound parent; - - protected NBTCompound(NBTCompound owner, String name) { - this.compundName = name; - this.parent = owner; - } - - public String getName() { - return compundName; - } - - protected Object getCompound() { - return parent.getCompound(); - } - - protected void setCompound(Object compound) { - parent.setCompound(compound); - } - - public NBTCompound getParent() { - return parent; - } - - public void mergeCompound(NBTCompound comp){ - NBTReflectionUtil.addOtherNBTCompound(this, comp); - } - - public void setString(String key, String value) { - NBTReflectionUtil.setData(this, ReflectionMethod.COMPOUND_SET_STRING, key, value); - } - - public String getString(String key) { - return (String) NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_GET_STRING, key); - } - - protected String getContent(String key) { - return NBTReflectionUtil.getContent(this, key); - } - - public void setInteger(String key, Integer value) { - NBTReflectionUtil.setData(this, ReflectionMethod.COMPOUND_SET_INT, key, value); - } - - public Integer getInteger(String key) { - return (Integer) NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_GET_INT, key); - } - - public void setDouble(String key, Double value) { - NBTReflectionUtil.setData(this, ReflectionMethod.COMPOUND_SET_DOUBLE, key, value); - } - - public Double getDouble(String key) { - return (Double) NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_GET_DOUBLE, key); - } - - public void setByte(String key, Byte value) { - NBTReflectionUtil.setData(this, ReflectionMethod.COMPOUND_SET_BYTE, key, value); - } - - public Byte getByte(String key) { - return (Byte) NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_GET_BYTE, key); - } - - public void setShort(String key, Short value) { - NBTReflectionUtil.setData(this, ReflectionMethod.COMPOUND_SET_SHORT, key, value); - } - - public Short getShort(String key) { - return (Short) NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_GET_SHORT, key); - } - - public void setLong(String key, Long value) { - NBTReflectionUtil.setData(this, ReflectionMethod.COMPOUND_SET_LONG, key, value); - } - - public Long getLong(String key) { - return (Long) NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_GET_LONG, key); - } - - public void setFloat(String key, Float value) { - NBTReflectionUtil.setData(this, ReflectionMethod.COMPOUND_SET_FLOAT, key, value); - } - - public Float getFloat(String key) { - return (Float) NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_GET_FLOAT, key); - } - - public void setByteArray(String key, byte[] value) { - NBTReflectionUtil.setData(this, ReflectionMethod.COMPOUND_SET_BYTEARRAY, key, value); - } - - public byte[] getByteArray(String key) { - return (byte[]) NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_GET_BYTEARRAY, key); - } - - public void setIntArray(String key, int[] value) { - NBTReflectionUtil.setData(this, ReflectionMethod.COMPOUND_SET_INTARRAY, key, value); - } - - public int[] getIntArray(String key) { - return (int[]) NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_GET_INTARRAY, key); - } - - public void setBoolean(String key, Boolean value) { - NBTReflectionUtil.setData(this, ReflectionMethod.COMPOUND_SET_BOOLEAN, key, value); - } - - protected void set(String key, Object val) { - NBTReflectionUtil.set(this, key, val); - } - - public Boolean getBoolean(String key) { - return (Boolean) NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_GET_BOOLEAN, key); - } - - public void setObject(String key, Object value) { - NBTReflectionUtil.setObject(this, key, value); - } - - public T getObject(String key, Class type) { - return NBTReflectionUtil.getObject(this, key, type); - } - - public Boolean hasKey(String key) { - Boolean b = (Boolean) NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_HAS_KEY, key); - if(b == null)return false; - return b; - } - - public void removeKey(String key) { - NBTReflectionUtil.remove(this, key); - } - - public Set getKeys() { - return NBTReflectionUtil.getKeys(this); - } - - public NBTCompound addCompound(String name) { - if(getType(name) == NBTType.NBTTagCompound)return getCompound(name); - NBTReflectionUtil.addNBTTagCompound(this, name); - return getCompound(name); - } - - public NBTCompound getCompound(String name) { - NBTCompound next = new NBTCompound(this, name); - if (NBTReflectionUtil.valideCompound(next)) return next; - return null; - } - - public NBTList getList(String name, NBTType type) { - return NBTReflectionUtil.getList(this, name, type); - } - - public NBTType getType(String name) { - if (MinecraftVersion.getVersion() == MinecraftVersion.MC1_7_R4) return null; - Object o = NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_GET_TYPE, name); - if(o == null)return null; - return NBTType.valueOf((byte) o); - } - - @Override - public String toString() { - StringBuilder result = new StringBuilder(); - for (String key : getKeys()) { - result.append(toString(key)); - } - return result.toString(); - } - - public String toString(String key) { - StringBuilder result = new StringBuilder(); - NBTCompound compound = this; - while (compound.getParent() != null) { - result.append(" "); - compound = compound.getParent(); - } - if (this.getType(key) == NBTType.NBTTagCompound) { - return this.getCompound(key).toString(); - } else { - return result + "-" + key + ": " + getContent(key) + System.lineSeparator(); - } - } - - public String asNBTString(){ - Object comp = NBTReflectionUtil.gettoCompount(getCompound(), this); - if(comp == null)return "{}"; - return comp.toString(); - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTContainer.java b/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTContainer.java deleted file mode 100644 index 451bd1c..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTContainer.java +++ /dev/null @@ -1,35 +0,0 @@ -package de.tr7zw.itemnbtapi; - -public class NBTContainer extends NBTCompound{ - - private Object nbt; - - public NBTContainer() { - super(null, null); - nbt = ObjectCreator.NMS_NBTTAGCOMPOUND.getInstance(); - } - - protected NBTContainer(Object nbt){ - super(null, null); - this.nbt = nbt; - } - - public NBTContainer(String nbtString) throws IllegalArgumentException { - super(null, null); - try{ - nbt = ReflectionMethod.PARSE_NBT.run(null, nbtString); - }catch(Exception ex){ - ex.printStackTrace(); - throw new IllegalArgumentException("Malformed Json: " + ex.getMessage()); - } - } - - protected Object getCompound() { - return nbt; - } - - protected void setCompound(Object tag) { - nbt = tag; - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTEntity.java b/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTEntity.java deleted file mode 100644 index 521ac34..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTEntity.java +++ /dev/null @@ -1,22 +0,0 @@ -package de.tr7zw.itemnbtapi; - -import org.bukkit.entity.Entity; - -public class NBTEntity extends NBTCompound { - - private final Entity ent; - - public NBTEntity(Entity entity) { - super(null, null); - ent = entity; - } - - protected Object getCompound() { - return NBTReflectionUtil.getEntityNBTTagCompound(NBTReflectionUtil.getNMSEntity(ent)); - } - - protected void setCompound(Object compound) { - NBTReflectionUtil.setEntityNBTTag(compound, NBTReflectionUtil.getNMSEntity(ent)); - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTFile.java b/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTFile.java deleted file mode 100644 index 3de581f..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTFile.java +++ /dev/null @@ -1,46 +0,0 @@ -package de.tr7zw.itemnbtapi; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; - -public class NBTFile extends NBTCompound { - - private final File file; - private Object nbt; - - public NBTFile(File file) throws IOException { - super(null, null); - this.file = file; - if (file.exists()) { - FileInputStream inputsteam = new FileInputStream(file); - nbt = NBTReflectionUtil.readNBTFile(inputsteam); - } else { - nbt = ObjectCreator.NMS_NBTTAGCOMPOUND.getInstance(); - save(); - } - } - - public void save() throws IOException { - if (!file.exists()) { - file.getParentFile().mkdirs(); - file.createNewFile(); - } - FileOutputStream outStream = new FileOutputStream(file); - NBTReflectionUtil.saveNBTFile(nbt, outStream); - } - - public File getFile() { - return file; - } - - protected Object getCompound() { - return nbt; - } - - protected void setCompound(Object compound) { - nbt = compound; - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTItem.java b/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTItem.java deleted file mode 100644 index c291735..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTItem.java +++ /dev/null @@ -1,53 +0,0 @@ -package de.tr7zw.itemnbtapi; - -import org.bukkit.inventory.ItemStack; - -public class NBTItem extends NBTCompound { - - private ItemStack bukkitItem; - - public NBTItem(ItemStack item) { - super(null, null); - if(item == null){ - throw new NullPointerException("ItemStack can't be null!"); - } - bukkitItem = item.clone(); - } - - protected Object getCompound() { - return NBTReflectionUtil.getItemRootNBTTagCompound(ReflectionMethod.ITEMSTACK_NMSCOPY.run(null, bukkitItem)); - } - - protected void setCompound(Object compound) { - Object stack = ReflectionMethod.ITEMSTACK_NMSCOPY.run(null, bukkitItem); - ReflectionMethod.ITEMSTACK_SET_TAG.run(stack, compound); - bukkitItem = (ItemStack) ReflectionMethod.ITEMSTACK_BUKKITMIRROR.run(null, stack); - } - - public ItemStack getItem() { - return bukkitItem; - } - - protected void setItem(ItemStack item) { - bukkitItem = item; - } - - - /** - * This may return true even when the NBT is empty. - * - * @return Does the ItemStack have a NBTCompound. - */ - public boolean hasNBTData(){ - return getCompound() != null; - } - - public static NBTContainer convertItemtoNBT(ItemStack item){ - return NBTReflectionUtil.convertNMSItemtoNBTCompound(ReflectionMethod.ITEMSTACK_NMSCOPY.run(null, item)); - } - - public static ItemStack convertNBTtoItem(NBTCompound comp){ - return (ItemStack) ReflectionMethod.ITEMSTACK_BUKKITMIRROR.run(null, NBTReflectionUtil.convertNBTCompoundtoNMSItem(comp)); - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTList.java b/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTList.java deleted file mode 100644 index b837a71..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTList.java +++ /dev/null @@ -1,114 +0,0 @@ -package de.tr7zw.itemnbtapi; - -public class NBTList { - - private String listName; - private NBTCompound parent; - private NBTType type; - private Object listObject; - - protected NBTList(NBTCompound owner, String name, NBTType type, Object list) { - parent = owner; - listName = name; - this.type = type; - this.listObject = list; - if (!(type == NBTType.NBTTagString || type == NBTType.NBTTagCompound)) { - System.err.println("List types != String/Compound are currently not implemented!"); - } - } - - protected void save() { - parent.set(listName, listObject); - } - - public NBTListCompound addCompound() { - if (type != NBTType.NBTTagCompound) { - new Throwable("Using Compound method on a non Compound list!").printStackTrace(); - return null; - } - try { - Object compound = ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz().newInstance(); - ReflectionMethod.LIST_ADD.run(listObject, compound); - return new NBTListCompound(this, compound); - } catch (Exception ex) { - ex.printStackTrace(); - } - return null; - } - - public NBTListCompound getCompound(int id) { - if (type != NBTType.NBTTagCompound) { - new Throwable("Using Compound method on a non Compound list!").printStackTrace(); - return null; - } - try { - Object compound = ReflectionMethod.LIST_GET.run(listObject, id); - return new NBTListCompound(this, compound); - } catch (Exception ex) { - ex.printStackTrace(); - } - return null; - } - - public String getString(int i) { - if (type != NBTType.NBTTagString) { - new Throwable("Using String method on a non String list!").printStackTrace(); - return null; - } - try { - return (String) ReflectionMethod.LIST_GET_STRING.run(listObject, i); - } catch (Exception ex) { - ex.printStackTrace(); - } - return null; - } - - public void addString(String s) { - if (type != NBTType.NBTTagString) { - new Throwable("Using String method on a non String list!").printStackTrace(); - return; - } - try { - ReflectionMethod.LIST_ADD.run(listObject, ClassWrapper.NMS_NBTTAGSTRING.getClazz().getConstructor(String.class).newInstance(s)); - save(); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - public void setString(int i, String s) { - if (type != NBTType.NBTTagString) { - new Throwable("Using String method on a non String list!").printStackTrace(); - return; - } - try { - ReflectionMethod.LIST_SET.run(listObject, i, ClassWrapper.NMS_NBTTAGSTRING.getClazz().getConstructor(String.class).newInstance(s)); - save(); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - public void remove(int i) { - try { - ReflectionMethod.LIST_REMOVE_KEY.run(listObject, i); - save(); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - public int size() { - try { - return (int) ReflectionMethod.LIST_SIZE.run(listObject); - } catch (Exception ex) { - ex.printStackTrace(); - } - return -1; - } - - public NBTType getType() { - return type; - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTListCompound.java b/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTListCompound.java deleted file mode 100644 index 1258835..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTListCompound.java +++ /dev/null @@ -1,102 +0,0 @@ -package de.tr7zw.itemnbtapi; - -import java.util.HashSet; -import java.util.Set; - -public class NBTListCompound { - - private NBTList owner; - private Object compound; - - protected NBTListCompound(NBTList parent, Object obj) { - owner = parent; - compound = obj; - } - - public void setString(String key, String value) { - if (value == null) { - remove(key); - return; - } - try { - compound.getClass().getMethod("setString", String.class, String.class).invoke(compound, key, value); - owner.save(); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - public void setInteger(String key, int value) { - try { - compound.getClass().getMethod("setInt", String.class, int.class).invoke(compound, key, value); - owner.save(); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - public int getInteger(String value) { - try { - return (int) compound.getClass().getMethod("getInt", String.class).invoke(compound, value); - } catch (Exception ex) { - ex.printStackTrace(); - } - return 0; - } - - public void setDouble(String key, double value) { - try { - compound.getClass().getMethod("setDouble", String.class, double.class).invoke(compound, key, value); - owner.save(); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - public double getDouble(String key) { - try { - return (double) compound.getClass().getMethod("getDouble", String.class).invoke(compound, key); - } catch (Exception ex) { - ex.printStackTrace(); - } - return 0; - } - - - public String getString(String key) { - try { - return (String) compound.getClass().getMethod("getString", String.class).invoke(compound, key); - } catch (Exception ex) { - ex.printStackTrace(); - } - return ""; - } - - public boolean hasKey(String key) { - try { - return (boolean) compound.getClass().getMethod("hasKey", String.class).invoke(compound, key); - } catch (Exception ex) { - ex.printStackTrace(); - } - return false; - } - - @SuppressWarnings("unchecked") - public Set getKeys() { - try { - return (Set) ReflectionMethod.LISTCOMPOUND_GET_KEYS.run(compound); - } catch (Exception ex) { - ex.printStackTrace(); - } - return new HashSet<>(); - } - - public void remove(String key) { - try { - compound.getClass().getMethod("remove", String.class).invoke(compound, key); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTReflectionUtil.java b/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTReflectionUtil.java deleted file mode 100644 index 54feb5f..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTReflectionUtil.java +++ /dev/null @@ -1,348 +0,0 @@ -package de.tr7zw.itemnbtapi; - -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; -import java.util.Set; -import java.util.Stack; - -import org.bukkit.block.BlockState; -import org.bukkit.entity.Entity; - -import de.tr7zw.itemnbtapi.utils.GsonWrapper; -import de.tr7zw.itemnbtapi.utils.MinecraftVersion; - -public class NBTReflectionUtil { - - public static Object getNMSEntity(Entity entity) { - try { - return ReflectionMethod.CRAFT_ENTITY_GET_HANDLE.run(ClassWrapper.CRAFT_ENTITY.getClazz().cast(entity)); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - public static Object readNBTFile(FileInputStream stream) { - try { - return ReflectionMethod.NBTFILE_READ.run(null, stream); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - public static Object saveNBTFile(Object nbt, FileOutputStream stream) { - try { - return ReflectionMethod.NBTFILE_WRITE.run(null, nbt, stream); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - @SuppressWarnings({"unchecked"}) - public static Object getItemRootNBTTagCompound(Object nmsitem) { - @SuppressWarnings("rawtypes") - Class clazz = nmsitem.getClass(); - Method method; - try { - method = clazz.getMethod("getTag"); - Object answer = method.invoke(nmsitem); - return answer; - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - @SuppressWarnings({"unchecked"}) - public static Object convertNBTCompoundtoNMSItem(NBTCompound nbtcompound) { - @SuppressWarnings("rawtypes") - Class clazz = ClassWrapper.NMS_ITEMSTACK.getClazz(); - try { - if(MinecraftVersion.getVersion().getVersionId() >= MinecraftVersion.MC1_12_R1.getVersionId()){ - Constructor constructor = clazz.getConstructor(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz()); - constructor.setAccessible(true); - return constructor.newInstance(nbtcompound.getCompound()); - }else{ - Method method = clazz.getMethod("createStack", ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz()); - method.setAccessible(true); - return method.invoke(null, nbtcompound.getCompound()); - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - @SuppressWarnings({"unchecked"}) - public static NBTContainer convertNMSItemtoNBTCompound(Object nmsitem) { - @SuppressWarnings("rawtypes") - Class clazz = nmsitem.getClass(); - Method method; - try { - method = clazz.getMethod("save", ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz()); - Object answer = method.invoke(nmsitem, ObjectCreator.NMS_NBTTAGCOMPOUND.getInstance()); - return new NBTContainer(answer); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - public static Object getEntityNBTTagCompound(Object NMSEntity) { - try { - Object nbt = ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz().newInstance(); - Object answer = ReflectionMethod.NMS_ENTITY_GET_NBT.run(NMSEntity, nbt); - if (answer == null) - answer = nbt; - return answer; - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - public static Object setEntityNBTTag(Object NBTTag, Object NMSEntity) { - try { - ReflectionMethod.NMS_ENTITY_SET_NBT.run(NMSEntity, NBTTag); - return NMSEntity; - } catch (Exception ex) { - ex.printStackTrace(); - } - return null; - } - - public static Object getTileEntityNBTTagCompound(BlockState tile) { - try { - Object pos = ObjectCreator.NMS_BLOCKPOSITION.getInstance(tile.getX(), tile.getY(), tile.getZ()); - Object cworld = ClassWrapper.CRAFT_WORLD.getClazz().cast(tile.getWorld()); - Object nmsworld = ReflectionMethod.CRAFT_WORLD_GET_HANDLE.run(cworld); - Object o = ReflectionMethod.NMS_WORLD_GET_TILEENTITY.run(nmsworld, pos); - Object tag = ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz().newInstance(); - Object answer = ReflectionMethod.TILEENTITY_GET_NBT.run(o, tag); - if (answer == null) - answer = tag; - return answer; - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - public static void setTileEntityNBTTagCompound(BlockState tile, Object comp) { - try { - Object pos = ObjectCreator.NMS_BLOCKPOSITION.getInstance(tile.getX(), tile.getY(), tile.getZ()); - Object cworld = ClassWrapper.CRAFT_WORLD.getClazz().cast(tile.getWorld()); - Object nmsworld = ReflectionMethod.CRAFT_WORLD_GET_HANDLE.run(cworld); - Object o = ReflectionMethod.NMS_WORLD_GET_TILEENTITY.run(nmsworld, pos); - ReflectionMethod.TILEENTITY_SET_NBT.run(o, comp); - } catch (Exception e) { - e.printStackTrace(); - } - } - - - @SuppressWarnings("unchecked") - public static Object getSubNBTTagCompound(Object compound, String name) { - @SuppressWarnings("rawtypes") - Class c = compound.getClass(); - Method method; - try { - method = c.getMethod("getCompound", String.class); - Object answer = method.invoke(compound, name); - return answer; - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - public static void addNBTTagCompound(NBTCompound comp, String name) { - if (name == null) { - remove(comp, name); - return; - } - Object nbttag = comp.getCompound(); - if (nbttag == null) { - nbttag = ObjectCreator.NMS_NBTTAGCOMPOUND.getInstance(); - } - if (!valideCompound(comp)) return; - Object workingtag = gettoCompount(nbttag, comp); - Method method; - try { - method = workingtag.getClass().getMethod("set", String.class, ClassWrapper.NMS_NBTBASE.getClazz()); - method.invoke(workingtag, name, ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz().newInstance()); - comp.setCompound(nbttag); - return; - } catch (Exception ex) { - ex.printStackTrace(); - } - return; - } - - public static Boolean valideCompound(NBTCompound comp) { - Object root = comp.getCompound(); - if (root == null) { - root = ObjectCreator.NMS_NBTTAGCOMPOUND.getInstance(); - } - return (gettoCompount(root, comp)) != null; - } - - static Object gettoCompount(Object nbttag, NBTCompound comp) { - Stack structure = new Stack<>(); - while (comp.getParent() != null) { - structure.add(comp.getName()); - comp = comp.getParent(); - } - while (!structure.isEmpty()) { - nbttag = getSubNBTTagCompound(nbttag, structure.pop()); - if (nbttag == null) { - return null; - } - } - return nbttag; - } - - public static void addOtherNBTCompound(NBTCompound comp, NBTCompound nbtcompound) { - Object rootnbttag = comp.getCompound(); - if (rootnbttag == null) { - rootnbttag = ObjectCreator.NMS_NBTTAGCOMPOUND.getInstance(); - } - if (!valideCompound(comp)) return; - Object workingtag = gettoCompount(rootnbttag, comp); - try { - ReflectionMethod.COMPOUND_ADD.run(workingtag, nbtcompound.getCompound()); - comp.setCompound(rootnbttag); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - public static String getContent(NBTCompound comp, String key) { - Object rootnbttag = comp.getCompound(); - if (rootnbttag == null) { - rootnbttag = ObjectCreator.NMS_NBTTAGCOMPOUND.getInstance(); - } - if (!valideCompound(comp)) return null; - Object workingtag = gettoCompount(rootnbttag, comp); - Method method; - try { - method = workingtag.getClass().getMethod("get", String.class); - return method.invoke(workingtag, key).toString(); - } catch (Exception ex) { - ex.printStackTrace(); - } - return null; - } - - public static void set(NBTCompound comp, String key, Object val) { - if (val == null) { - remove(comp, key); - return; - } - Object rootnbttag = comp.getCompound(); - if (rootnbttag == null) { - rootnbttag = ObjectCreator.NMS_NBTTAGCOMPOUND.getInstance(); - } - if (!valideCompound(comp)) { - new Throwable("InvalideCompound").printStackTrace(); - return; - } - Object workingtag = gettoCompount(rootnbttag, comp); - Method method; - try { - method = workingtag.getClass().getMethod("set", String.class, ClassWrapper.NMS_NBTBASE.getClazz()); - method.invoke(workingtag, key, val); - comp.setCompound(rootnbttag); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - public static NBTList getList(NBTCompound comp, String key, NBTType type) { - Object rootnbttag = comp.getCompound(); - if (rootnbttag == null) { - rootnbttag = ObjectCreator.NMS_NBTTAGCOMPOUND.getInstance(); - } - if (!valideCompound(comp)) return null; - Object workingtag = gettoCompount(rootnbttag, comp); - Method method; - try { - method = workingtag.getClass().getMethod("getList", String.class, int.class); - return new NBTList(comp, key, type, method.invoke(workingtag, key, type.getId())); - } catch (Exception ex) { - ex.printStackTrace(); - } - return null; - } - - public static void setObject(NBTCompound comp, String key, Object value) { - if (!MinecraftVersion.hasGsonSupport()) return; - try { - String json = GsonWrapper.getString(value); - setData(comp, ReflectionMethod.COMPOUND_SET_STRING, key, json); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - public static T getObject(NBTCompound comp, String key, Class type) { - if (!MinecraftVersion.hasGsonSupport()) return null; - String json = (String) getData(comp, ReflectionMethod.COMPOUND_GET_STRING, key); - if (json == null) { - return null; - } - return GsonWrapper.deserializeJson(json, type); - } - - public static void remove(NBTCompound comp, String key) { - Object rootnbttag = comp.getCompound(); - if (rootnbttag == null) { - rootnbttag = ObjectCreator.NMS_NBTTAGCOMPOUND.getInstance(); - } - if (!valideCompound(comp)) return; - Object workingtag = gettoCompount(rootnbttag, comp); - ReflectionMethod.COMPOUND_REMOVE_KEY.run(workingtag, key); - comp.setCompound(rootnbttag); - } - - @SuppressWarnings("unchecked") - public static Set getKeys(NBTCompound comp) { - Object rootnbttag = comp.getCompound(); - if (rootnbttag == null) { - rootnbttag = ObjectCreator.NMS_NBTTAGCOMPOUND.getInstance(); - } - if (!valideCompound(comp)) return null; - Object workingtag = gettoCompount(rootnbttag, comp); - return (Set) ReflectionMethod.COMPOUND_GET_KEYS.run(workingtag); - } - - public static void setData(NBTCompound comp, ReflectionMethod type, String key, Object data) { - if (data == null) { - remove(comp, key); - return; - } - Object rootnbttag = comp.getCompound(); - if (rootnbttag == null) { - rootnbttag = ObjectCreator.NMS_NBTTAGCOMPOUND.getInstance(); - } - if (!valideCompound(comp)) return; - Object workingtag = gettoCompount(rootnbttag, comp); - type.run(workingtag, key, data); - comp.setCompound(rootnbttag); - } - - public static Object getData(NBTCompound comp, ReflectionMethod type, String key) { - Object rootnbttag = comp.getCompound(); - if (rootnbttag == null) { - return null; - } - if (!valideCompound(comp)) return null; - Object workingtag = gettoCompount(rootnbttag, comp); - return type.run(workingtag, key); - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTTileEntity.java b/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTTileEntity.java deleted file mode 100644 index 5216458..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTTileEntity.java +++ /dev/null @@ -1,22 +0,0 @@ -package de.tr7zw.itemnbtapi; - -import org.bukkit.block.BlockState; - -public class NBTTileEntity extends NBTCompound { - - private final BlockState tile; - - public NBTTileEntity(BlockState tile) { - super(null, null); - this.tile = tile; - } - - protected Object getCompound() { - return NBTReflectionUtil.getTileEntityNBTTagCompound(tile); - } - - protected void setCompound(Object compound) { - NBTReflectionUtil.setTileEntityNBTTagCompound(tile, compound); - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTType.java b/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTType.java deleted file mode 100644 index d5c541a..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/NBTType.java +++ /dev/null @@ -1,34 +0,0 @@ -package de.tr7zw.itemnbtapi; - -public enum NBTType { - NBTTagEnd(0), - NBTTagByte(1), - NBTTagShort(2), - NBTTagInt(3), - NBTTagLong(4), - NBTTagFloat(5), - NBTTagDouble(6), - NBTTagByteArray(7), - NBTTagIntArray(11), - NBTTagString(8), - NBTTagList(9), - NBTTagCompound(10); - - NBTType(int i) { - id = i; - } - - private final int id; - - public int getId() { - return id; - } - - public static NBTType valueOf(int id) { - for (NBTType t : values()) - if (t.getId() == id) - return t; - return NBTType.NBTTagEnd; - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/ObjectCreator.java b/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/ObjectCreator.java deleted file mode 100644 index e9e0b3f..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/ObjectCreator.java +++ /dev/null @@ -1,28 +0,0 @@ -package de.tr7zw.itemnbtapi; - -import java.lang.reflect.Constructor; - -public enum ObjectCreator { - NMS_NBTTAGCOMPOUND(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz()), - NMS_BLOCKPOSITION(ClassWrapper.NMS_BLOCKPOSITION.getClazz(), int.class, int.class, int.class); - - private Constructor construct; - - ObjectCreator(Class clazz, Class... args){ - try{ - construct = clazz.getConstructor(args); - }catch(Exception ex){ - ex.printStackTrace(); - } - } - - public Object getInstance(Object... args){ - try{ - return construct.newInstance(args); - }catch(Exception ex){ - ex.printStackTrace(); - } - return null; - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/ReflectionMethod.java b/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/ReflectionMethod.java deleted file mode 100644 index ba88a30..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/ReflectionMethod.java +++ /dev/null @@ -1,121 +0,0 @@ -package de.tr7zw.itemnbtapi; - -import java.io.InputStream; -import java.io.OutputStream; -import java.lang.reflect.Method; - -import org.bukkit.inventory.ItemStack; - -import de.tr7zw.itemnbtapi.utils.MinecraftVersion; - -public enum ReflectionMethod { - - COMPOUND_SET_FLOAT(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class, float.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setFloat")), - COMPOUND_SET_STRING(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class, String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setString")), - COMPOUND_SET_INT(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class, int.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setInt")), - COMPOUND_SET_BYTEARRAY(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class, byte[].class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setByteArray")), - COMPOUND_SET_INTARRAY(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class, int[].class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setIntArray")), - COMPOUND_SET_LONG(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class, long.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setLong")), - COMPOUND_SET_SHORT(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class, short.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setShort")), - COMPOUND_SET_BYTE(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class, byte.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setByte")), - COMPOUND_SET_DOUBLE(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class, double.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setDouble")), - COMPOUND_SET_BOOLEAN(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class, boolean.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setBoolean")), - COMPOUND_ADD(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz()}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "a")), //FIXME: No Spigot mapping! - - COMPOUND_GET_FLOAT(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getFloat")), - COMPOUND_GET_STRING(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getString")), - COMPOUND_GET_INT(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getInt")), - COMPOUND_GET_BYTEARRAY(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getByteArray")), - COMPOUND_GET_INTARRAY(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getIntArray")), - COMPOUND_GET_LONG(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getLong")), - COMPOUND_GET_SHORT(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getShort")), - COMPOUND_GET_BYTE(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getByte")), - COMPOUND_GET_DOUBLE(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getDouble")), - COMPOUND_GET_BOOLEAN(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getBoolean")), - - COMPOUND_REMOVE_KEY(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "remove")), - COMPOUND_HAS_KEY(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "hasKey")), - COMPOUND_GET_TYPE(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_8_R3, new Since(MinecraftVersion.MC1_8_R3, "b"), new Since(MinecraftVersion.MC1_9_R1, "d")), //FIXME: No Spigot mapping! - COMPOUND_GET_KEYS(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "c"), new Since(MinecraftVersion.MC1_13_R1, "getKeys")), - - LISTCOMPOUND_GET_KEYS(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "c"), new Since(MinecraftVersion.MC1_13_R1, "getKeys")), - LIST_REMOVE_KEY(ClassWrapper.NMS_NBTTAGLIST.getClazz(), new Class[]{int.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "a"), new Since(MinecraftVersion.MC1_9_R1, "remove")), - LIST_SIZE(ClassWrapper.NMS_NBTTAGLIST.getClazz(), new Class[]{}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "size")), - LIST_SET(ClassWrapper.NMS_NBTTAGLIST.getClazz(), new Class[]{int.class, ClassWrapper.NMS_NBTBASE.getClazz()}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "a"), new Since(MinecraftVersion.MC1_13_R1, "set")), - LIST_ADD(ClassWrapper.NMS_NBTTAGLIST.getClazz(), new Class[]{ClassWrapper.NMS_NBTBASE.getClazz()}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "add")), - LIST_GET_STRING(ClassWrapper.NMS_NBTTAGLIST.getClazz(), new Class[]{int.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getString")), - LIST_GET(ClassWrapper.NMS_NBTTAGLIST.getClazz(), new Class[]{int.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "get")), - - ITEMSTACK_SET_TAG(ClassWrapper.NMS_ITEMSTACK.getClazz(), new Class[]{ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz()}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setTag")), - ITEMSTACK_NMSCOPY(ClassWrapper.CRAFT_ITEMSTACK.getClazz(), new Class[]{ItemStack.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "asNMSCopy")), - ITEMSTACK_BUKKITMIRROR(ClassWrapper.CRAFT_ITEMSTACK.getClazz(), new Class[]{ClassWrapper.NMS_ITEMSTACK.getClazz()}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "asCraftMirror")), - - CRAFT_WORLD_GET_HANDLE(ClassWrapper.CRAFT_WORLD.getClazz(), new Class[]{}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getHandle")), - NMS_WORLD_GET_TILEENTITY(ClassWrapper.NMS_WORLD.getClazz(), new Class[]{ClassWrapper.NMS_BLOCKPOSITION.getClazz()}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getTileEntity")), - - TILEENTITY_GET_NBT(ClassWrapper.NMS_TILEENTITY.getClazz(), new Class[]{ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz()}, MinecraftVersion.MC1_8_R3, new Since(MinecraftVersion.MC1_8_R3, "b"), new Since(MinecraftVersion.MC1_9_R1, "save")), - TILEENTITY_SET_NBT(ClassWrapper.NMS_TILEENTITY.getClazz(), new Class[]{ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz()}, MinecraftVersion.MC1_8_R3, new Since(MinecraftVersion.MC1_8_R3, "a"), new Since(MinecraftVersion.MC1_12_R1, "load")), - - CRAFT_ENTITY_GET_HANDLE(ClassWrapper.CRAFT_ENTITY.getClazz(), new Class[]{}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getHandle")), - NMS_ENTITY_SET_NBT(ClassWrapper.NMS_ENTITY.getClazz(), new Class[]{ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz()}, MinecraftVersion.MC1_8_R3, new Since(MinecraftVersion.MC1_8_R3, "f")), //FIXME: No Spigot mapping! - NMS_ENTITY_GET_NBT(ClassWrapper.NMS_ENTITY.getClazz(), new Class[]{ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz()}, MinecraftVersion.MC1_8_R3, new Since(MinecraftVersion.MC1_8_R3, "e"), new Since(MinecraftVersion.MC1_12_R1, "save")), - - NBTFILE_READ(ClassWrapper.NMS_NBTCOMPRESSEDSTREAMTOOLS.getClazz(), new Class[]{InputStream.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "a")), //FIXME: No Spigot mapping! - NBTFILE_WRITE(ClassWrapper.NMS_NBTCOMPRESSEDSTREAMTOOLS.getClazz(), new Class[]{ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), OutputStream.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "a")), //FIXME: No Spigot mapping! - - - PARSE_NBT(ClassWrapper.NMS_MOJANGSONPARSER.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "parse")), - - ; - - private Since targetVersion; - private Method method; - private boolean loaded = false; - private boolean compatible = false; - - ReflectionMethod(Class targetClass, Class[] args, MinecraftVersion addedSince, Since... methodnames){ - MinecraftVersion server = MinecraftVersion.getVersion(); - if(server.compareTo(addedSince) < 0)return; - compatible = true; - Since target = methodnames[0]; - for(Since s : methodnames){ - if(s.version.getVersionId() <= server.getVersionId() && target.version.getVersionId() < s.version.getVersionId()) - target = s; - } - targetVersion = target; - try{ - method = targetClass.getMethod(targetVersion.name, args); - method.setAccessible(true); - loaded = true; - }catch(NullPointerException | NoSuchMethodException | SecurityException ex){ - ex.printStackTrace(); - } - } - - public Object run(Object target, Object... args){ - try{ - return method.invoke(target, args); - }catch(Exception ex){ - ex.printStackTrace(); - } - return null; - } - - public boolean isLoaded() { - return loaded; - } - - public boolean isCompatible() { - return compatible; - } - - public static class Since{ - public final MinecraftVersion version; - public final String name; - public Since(MinecraftVersion version, String name) { - this.version = version; - this.name = name; - } - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/utils/GsonWrapper.java b/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/utils/GsonWrapper.java deleted file mode 100644 index d34edfd..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/utils/GsonWrapper.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.tr7zw.itemnbtapi.utils; - -import com.google.gson.Gson; - -public class GsonWrapper { - - private static final Gson gson = new Gson(); - - public static String getString(Object obj) { - return gson.toJson(obj); - } - - public static T deserializeJson(String json, Class type) { - try { - if (json == null) { - return null; - } - - T obj = gson.fromJson(json, type); - return type.cast(obj); - } catch (Exception ex) { - ex.printStackTrace(); - return null; - } - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/utils/MinecraftVersion.java b/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/utils/MinecraftVersion.java deleted file mode 100644 index 13ab9f8..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/itemnbtapi/utils/MinecraftVersion.java +++ /dev/null @@ -1,62 +0,0 @@ -package de.tr7zw.itemnbtapi.utils; - -import org.bukkit.Bukkit; - -public enum MinecraftVersion { - Unknown(Integer.MAX_VALUE),//Use the newest known mappings - MC1_7_R4(174), - MC1_8_R3(183), - MC1_9_R1(191), - MC1_9_R2(192), - MC1_10_R1(1101), - MC1_11_R1(1111), - MC1_12_R1(1121), - MC1_13_R1(1131), - MC1_13_R2(1132); - - private static MinecraftVersion version; - private static Boolean hasGsonSupport; - - private final int versionId; - - MinecraftVersion(int versionId) { - this.versionId = versionId; - } - - public int getVersionId() { - return versionId; - } - - public static MinecraftVersion getVersion() { - if (version != null) { - return version; - } - final String ver = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3]; - System.out.println("[NBTAPI] Found Spigot: " + ver + "! Trying to find NMS support"); - try { - version = MinecraftVersion.valueOf(ver.replace("v", "MC")); - } catch (IllegalArgumentException ex) { - version = MinecraftVersion.Unknown; - } - if (version != Unknown) { - System.out.println("[NBTAPI] NMS support '" + version.name() + "' loaded!"); - } else { - System.out.println("[NBTAPI] Wasn't able to find NMS Support! Some functions may not work!"); - } - return version; - } - - public static boolean hasGsonSupport() { - if (hasGsonSupport != null) { - return hasGsonSupport; - } - try { - System.out.println("Found Gson: " + Class.forName("com.google.gson.Gson")); - hasGsonSupport = true; - } catch (Exception ex) { - hasGsonSupport = false; - } - return hasGsonSupport; - } - -} diff --git a/src/main/java/com/songoda/epicbuckets/util/version/NMSUtil.java b/src/main/java/com/songoda/epicbuckets/util/version/NMSUtil.java deleted file mode 100644 index 23b1239..0000000 --- a/src/main/java/com/songoda/epicbuckets/util/version/NMSUtil.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.songoda.ultimatekits.utils.version; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -import java.lang.reflect.Field; - -public class NMSUtil { - - public static String getVersion() { - String name = Bukkit.getServer().getClass().getPackage().getName(); - return name.substring(name.lastIndexOf('.') + 1) + "."; - } - - public static int getVersionNumber() { - String name = getVersion().substring(3); - return Integer.valueOf(name.substring(0, name.length() - 4)); - } - - public static int getVersionReleaseNumber() { - String NMSVersion = getVersion(); - return Integer.valueOf(NMSVersion.substring(NMSVersion.length() - 2).replace(".", "")); - } - - public static Class getNMSClass(String className) { - try { - String fullName = "net.minecraft.server." + getVersion() + className; - Class clazz = Class.forName(fullName); - return clazz; - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - public static Class getCraftClass(String className) throws ClassNotFoundException { - try { - String fullName = "org.bukkit.craftbukkit." + getVersion() + className; - Class clazz = Class.forName(fullName); - return clazz; - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - public static Field getField(Class clazz, String name, boolean declared) { - try { - Field field; - - if (declared) { - field = clazz.getDeclaredField(name); - } else { - field = clazz.getField(name); - } - - field.setAccessible(true); - return field; - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - public static Object getFieldObject(Object object, Field field) { - try { - return field.get(object); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - public static void setField(Object object, String fieldName, Object fieldValue, boolean declared) { - try { - Field field; - - if (declared) { - field = object.getClass().getDeclaredField(fieldName); - } else { - field = object.getClass().getField(fieldName); - } - - field.setAccessible(true); - field.set(object, fieldValue); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public static void sendPacket(Player player, Object packet) { - try { - Object handle = player.getClass().getMethod("getHandle").invoke(player); - Object playerConnection = handle.getClass().getField("playerConnection").get(handle); - playerConnection.getClass().getMethod("sendPacket", getNMSClass("Packet")).invoke(playerConnection, packet); - } catch (Exception e) { - e.printStackTrace(); - } - } -}