From 61a8c872cbbe175c674b0439d98003a44c8cb83a Mon Sep 17 00:00:00 2001 From: Pim van der Loos Date: Mon, 2 Oct 2017 17:41:05 +0200 Subject: [PATCH] - Fixed leather elytra being unenchantable. - Added color codes support --- pom.xml | 2 +- .../armoredElytra/ArmoredElytra.java | 16 +++++++------ .../armoredElytra/EventHandlers.java | 23 ++++++------------- src/main/resources/plugin.yml | 2 +- 4 files changed, 18 insertions(+), 25 deletions(-) diff --git a/pom.xml b/pom.xml index 5bead8d..996c91b 100644 --- a/pom.xml +++ b/pom.xml @@ -1,7 +1,7 @@ 4.0.0 nl.pim16aap2 ArmoredElytra - 1.7.0-SNAPSHOT + 1.7.2-SNAPSHOT diff --git a/src/main/java/nl/pim16aap2/armoredElytra/ArmoredElytra.java b/src/main/java/nl/pim16aap2/armoredElytra/ArmoredElytra.java index fa53031..414f782 100644 --- a/src/main/java/nl/pim16aap2/armoredElytra/ArmoredElytra.java +++ b/src/main/java/nl/pim16aap2/armoredElytra/ArmoredElytra.java @@ -47,11 +47,11 @@ public class ArmoredElytra extends JavaPlugin implements Listener config.addDefault("allowCurses", true); config.addDefault("allowedEnchantments", new String[]{"DURABILITY","PROTECTION_FIRE","PROTECTION_EXPLOSIONS", "PROTECTION_PROJECTILE","PROTECTION_ENVIRONMENTAL","THORNS"}); - config.addDefault("usageDeniedMessage", "You do not have the required permissions to wear %ARMOR_TIER% armored elytras!"); - config.addDefault("elytraReceivedMessage", "A(n) %ARMOR_TIER% armored elytra has been bestowed upon you!"); + config.addDefault("usageDeniedMessage", "&CYou do not have the required permissions to wear %ARMOR_TIER% armored elytras!"); + config.addDefault("elytraReceivedMessage", "&2A(n) %ARMOR_TIER% armored elytra has been bestowed upon you!"); config.addDefault("elytraName", "%ARMOR_TIER% Armored Elytra"); - config.addDefault("elytraLore", "Elytra with %ARMOR_TIER% level protection."); + config.addDefault("elytraLore", "&DElytra with %ARMOR_TIER% level protection."); config.addDefault("checkForUpdates", true); saveDefaultConfig(); @@ -63,10 +63,12 @@ public class ArmoredElytra extends JavaPlugin implements Listener cursesAllowed = config.getBoolean("allowCurses", true); List list = config.getStringList("allowedEnchantments"); allowedEnchants = list.toArray(new String[0]); - usageDeniedMessage = config.getString("usageDeniedMessage"); - elytraReceivedMessage = config.getString("elytraReceivedMessage"); - elytraName = config.getString("elytraName"); - elytraLore = config.getString("elytraLore"); + + usageDeniedMessage = config.getString("usageDeniedMessage").replaceAll("(&([a-f0-9]))", "\u00A7$2");; + elytraReceivedMessage = config.getString("elytraReceivedMessage").replaceAll("(&([a-f0-9]))", "\u00A7$2");; + elytraName = config.getString("elytraName").replaceAll("(&([a-f0-9]))", "\u00A7$2");; + elytraLore = config.getString("elytraLore").replaceAll("(&([a-f0-9]))", "\u00A7$2");; + checkForUpdates = config.getBoolean("checkForUpdates"); usageDeniedMessage = (Objects.equals(usageDeniedMessage, new String("NONE")) ? null : usageDeniedMessage); diff --git a/src/main/java/nl/pim16aap2/armoredElytra/EventHandlers.java b/src/main/java/nl/pim16aap2/armoredElytra/EventHandlers.java index bfd3d30..b0f25ed 100644 --- a/src/main/java/nl/pim16aap2/armoredElytra/EventHandlers.java +++ b/src/main/java/nl/pim16aap2/armoredElytra/EventHandlers.java @@ -49,7 +49,6 @@ public class EventHandlers implements Listener this.IRON_TO_FULL = IRON_TO_FULL; } - // Clear the anvil's inventory (destroy all the items in all 3 slots (second slot is not emptied, when repairing you can safely give multiple items)). public void cleanAnvil(AnvilInventory anvilInventory) { @@ -58,7 +57,6 @@ public class EventHandlers implements Listener anvilInventory.getItem(2).setAmount(0); } - // Check if the enchantment is allowed on elytras. public boolean isAllowedEnchantment(Enchantment enchant) { @@ -75,7 +73,6 @@ public class EventHandlers implements Listener return false; } - // Check if the enchantment is a curse. public boolean isCursedEnchantment(Enchantment enchant) { @@ -168,7 +165,6 @@ public class EventHandlers implements Listener return result; } - // Copy enchants of 2 items to one item. public ItemStack repairItem(ItemStack one, ItemStack two) { @@ -201,7 +197,6 @@ public class EventHandlers implements Listener return result; } - // Handle the anvil related parts. @EventHandler public void onInventoryClick(InventoryClickEvent e) @@ -253,8 +248,7 @@ public class EventHandlers implements Listener result = null; } } - - + // Check if there are items in both input slots. if (itemA != null && itemB != null) { @@ -305,7 +299,7 @@ public class EventHandlers implements Listener } // If the player tries to repair an armored elytra. Check if the armor tier and the repair item match. // If the repair item is leather it can only repair - else if ((itemB.getType() == Material.LEATHER && (!isArmoredElytra(itemA)) || currentArmorTier == 1) || + else if ((itemB.getType() == Material.LEATHER && isArmoredElytra(itemA) && currentArmorTier == 1) || (itemB.getType() == Material.GOLD_INGOT && isArmoredElytra(itemA) && currentArmorTier == 2) || (itemB.getType() == Material.IRON_INGOT && isArmoredElytra(itemA) && currentArmorTier == 3) || (itemB.getType() == Material.IRON_INGOT && isArmoredElytra(itemA) && currentArmorTier == 4) || @@ -364,8 +358,6 @@ public class EventHandlers implements Listener } } - - // Because the armored elytra doesn't actually give any armor, the damage received by players wearing an armored elytra is calculated here. @EventHandler public void onPlayerDamage(EntityDamageEvent e) @@ -418,7 +410,6 @@ public class EventHandlers implements Listener p.getInventory().getChestplate().setAmount(0); } - // Check if the player tries to equip armor by richt clicking it. @SuppressWarnings("deprecation") @EventHandler @@ -433,11 +424,11 @@ public class EventHandlers implements Listener if (item.getType() == Material.ELYTRA && isArmoredElytra(item)) { int armorTier = nbtEditor.getArmorTier(item); - if ((armorTier == 1 && !player.hasPermission("armoredelytra.wear.leather")) || - (armorTier == 2 && !player.hasPermission("armoredelytra.wear.gold")) || - (armorTier == 3 && !player.hasPermission("armoredelytra.wear.chain")) || - (armorTier == 4 && !player.hasPermission("armoredelytra.wear.iron")) || - (armorTier == 5 && !player.hasPermission("armoredelytra.wear.diamond"))) + if ((armorTier == 1 && !player.hasPermission("armoredelytra.wear.leather")) || + (armorTier == 2 && !player.hasPermission("armoredelytra.wear.gold")) || + (armorTier == 3 && !player.hasPermission("armoredelytra.wear.chain")) || + (armorTier == 4 && !player.hasPermission("armoredelytra.wear.iron")) || + (armorTier == 5 && !player.hasPermission("armoredelytra.wear.diamond"))) { plugin.usageDeniedMessage(player, armorTier); event.setCancelled(true); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 9d5b2a3..269515e 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: ArmoredElytra main: nl.pim16aap2.armoredElytra.ArmoredElytra -version: 1.7.0 +version: 1.7.2 author: Pim commands: ArmoredElytra: