From 83403ed193c9b4119ab2018374bdd75ac18d091e Mon Sep 17 00:00:00 2001 From: PdeBot Date: Thu, 23 Apr 2020 22:14:42 +0200 Subject: [PATCH] Moved method to set item unbreakable to VersionUtils. --- .../scenariolisteners/GoneFishingListener.java | 16 +++++++++------- .../com/gmail/val59000mc/utils/VersionUtils.java | 2 ++ .../val59000mc/utils/VersionUtils_1_12.java | 5 +++++ .../val59000mc/utils/VersionUtils_1_13.java | 5 +++++ .../gmail/val59000mc/utils/VersionUtils_1_8.java | 16 ++++++++++++++++ 5 files changed, 37 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/gmail/val59000mc/scenarios/scenariolisteners/GoneFishingListener.java b/src/main/java/com/gmail/val59000mc/scenarios/scenariolisteners/GoneFishingListener.java index 9b6470879..1ab2abed4 100644 --- a/src/main/java/com/gmail/val59000mc/scenarios/scenariolisteners/GoneFishingListener.java +++ b/src/main/java/com/gmail/val59000mc/scenarios/scenariolisteners/GoneFishingListener.java @@ -5,6 +5,7 @@ import com.gmail.val59000mc.exceptions.UhcPlayerNotOnlineException; import com.gmail.val59000mc.players.UhcPlayer; import com.gmail.val59000mc.scenarios.ScenarioListener; +import com.gmail.val59000mc.utils.VersionUtils; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; import org.bukkit.event.EventHandler; @@ -18,20 +19,21 @@ public void onGameStarted(UhcStartedEvent e){ ItemStack rod = new ItemStack(Material.FISHING_ROD); rod.addUnsafeEnchantment(Enchantment.LURE, 8); rod.addUnsafeEnchantment(Enchantment.LUCK, 255); + ItemMeta meta = rod.getItemMeta(); - // Set item unbreakable code change in 1.15 and older versions - if(UhcCore.getVersion() < 15){ - meta.spigot().setUnbreakable(true); - }else{ - meta.setUnbreakable(true); - } + VersionUtils.getVersionUtils().setItemUnbreakable(meta, true); rod.setItemMeta(meta); + ItemStack anvils = new ItemStack(Material.ANVIL, 64); + for (UhcPlayer uhcPlayer : e.getPlayersManager().getOnlinePlayingPlayers()){ try { + // Give the rod uhcPlayer.getPlayer().getInventory().addItem(rod); + // Give player 10000 xl levels uhcPlayer.getPlayer().setLevel(10000); + // Give player 64 anvils uhcPlayer.getPlayer().getInventory().addItem(anvils); }catch (UhcPlayerNotOnlineException ex){ @@ -40,4 +42,4 @@ public void onGameStarted(UhcStartedEvent e){ } } -} +} \ No newline at end of file diff --git a/src/main/java/com/gmail/val59000mc/utils/VersionUtils.java b/src/main/java/com/gmail/val59000mc/utils/VersionUtils.java index 57f306c7c..1cb9061c8 100644 --- a/src/main/java/com/gmail/val59000mc/utils/VersionUtils.java +++ b/src/main/java/com/gmail/val59000mc/utils/VersionUtils.java @@ -115,4 +115,6 @@ public static VersionUtils getVersionUtils(){ public abstract ItemMeta applySuspiciousStewEffects(ItemMeta meta, JsonArray effects) throws ParseException; + public abstract void setItemUnbreakable(ItemMeta meta, boolean b); + } \ No newline at end of file diff --git a/src/main/java/com/gmail/val59000mc/utils/VersionUtils_1_12.java b/src/main/java/com/gmail/val59000mc/utils/VersionUtils_1_12.java index 37b957d11..78b8e0893 100644 --- a/src/main/java/com/gmail/val59000mc/utils/VersionUtils_1_12.java +++ b/src/main/java/com/gmail/val59000mc/utils/VersionUtils_1_12.java @@ -330,4 +330,9 @@ public ItemMeta applySuspiciousStewEffects(ItemMeta meta, JsonArray effects){ return meta; } + @Override + public void setItemUnbreakable(ItemMeta meta, boolean b){ + meta.setUnbreakable(b); + } + } \ No newline at end of file diff --git a/src/main/java/com/gmail/val59000mc/utils/VersionUtils_1_13.java b/src/main/java/com/gmail/val59000mc/utils/VersionUtils_1_13.java index 468535584..04129615d 100644 --- a/src/main/java/com/gmail/val59000mc/utils/VersionUtils_1_13.java +++ b/src/main/java/com/gmail/val59000mc/utils/VersionUtils_1_13.java @@ -315,4 +315,9 @@ public ItemMeta applySuspiciousStewEffects(ItemMeta meta, JsonArray effects) thr return meta; } + @Override + public void setItemUnbreakable(ItemMeta meta, boolean b){ + meta.setUnbreakable(b); + } + } \ No newline at end of file diff --git a/src/main/java/com/gmail/val59000mc/utils/VersionUtils_1_8.java b/src/main/java/com/gmail/val59000mc/utils/VersionUtils_1_8.java index 7fb7f9dd6..938e971a8 100644 --- a/src/main/java/com/gmail/val59000mc/utils/VersionUtils_1_8.java +++ b/src/main/java/com/gmail/val59000mc/utils/VersionUtils_1_8.java @@ -317,4 +317,20 @@ public ItemMeta applySuspiciousStewEffects(ItemMeta meta, JsonArray effects){ return meta; } + @Override + public void setItemUnbreakable(ItemMeta meta, boolean b){ + if (!SpigotUtils.isSpigotServer()){ + return; // Unable to set item as unbreakable on a none spigot server. + } + + try { + Method spigot = NMSUtils.getMethod(meta.getClass(), "spigot"); + Object spigotInstance = spigot.invoke(meta); + Method setUnbreakable = NMSUtils.getMethod(spigotInstance.getClass(), "setUnbreakable", boolean.class); + setUnbreakable.invoke(spigotInstance, b); + }catch (ReflectiveOperationException ex){ + ex.printStackTrace(); + } + } + } \ No newline at end of file