From 3e97857bfffe1e8f69491ab2739f80b3e6be1f8d Mon Sep 17 00:00:00 2001 From: Collin Date: Fri, 23 Jun 2023 16:42:31 -0400 Subject: [PATCH] Allow custom items to be used as armor --- build.gradle.kts | 8 ++++---- .../java/me/cjcrafter/armormechanics/ArmorSerializer.java | 5 +++++ src/main/resources/ArmorMechanics/Armor.yml | 6 +++--- src/main/resources/ArmorMechanics/config.yml | 5 +++++ 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 6307cfd..3e41ad1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar group = "me.cjcrafter" -version = "2.0.3" +version = "2.1.0" plugins { `java-library` @@ -58,9 +58,9 @@ repositories { dependencies { compileOnly("org.spigotmc:spigot-api:1.19.3-R0.1-SNAPSHOT") implementation("io.lumine:Mythic-Dist:5.0.1-SNAPSHOT") - compileOnly("me.deecaad:mechanicscore:2.0.1") - compileOnly("me.deecaad:weaponmechanics:2.0.1") - implementation("org.bstats:bstats-bukkit:3.0.0") + compileOnly("me.deecaad:mechanicscore:2.4.1") + compileOnly("me.deecaad:weaponmechanics:2.4.1") + implementation("org.bstats:bstats-bukkit:3.0.1") implementation("me.cjcrafter:mechanicsautodownload:1.1.2") } diff --git a/src/main/java/me/cjcrafter/armormechanics/ArmorSerializer.java b/src/main/java/me/cjcrafter/armormechanics/ArmorSerializer.java index e0e82c9..d0c02d9 100644 --- a/src/main/java/me/cjcrafter/armormechanics/ArmorSerializer.java +++ b/src/main/java/me/cjcrafter/armormechanics/ArmorSerializer.java @@ -39,6 +39,11 @@ public ItemStack serialize(SerializeData data) throws SerializerException { public static boolean isArmor(ItemStack item) { String name = item.getType().name(); + // Let people turn off the isArmor() check since *technically* + // any item can be equipped. + if (!ArmorMechanics.INSTANCE.getConfig().getBoolean("Prevent_Illegal_Armor", true)) + return true; + return name.equals("PLAYER_HEAD") || name.equals("CARVED_PUMPKIN") || name.endsWith("_HELMET") || name.endsWith("_CHESTPLATE") || name.endsWith("_LEGGINGS") || name.endsWith("_BOOTS"); diff --git a/src/main/resources/ArmorMechanics/Armor.yml b/src/main/resources/ArmorMechanics/Armor.yml index fa06d40..0c6d43e 100644 --- a/src/main/resources/ArmorMechanics/Armor.yml +++ b/src/main/resources/ArmorMechanics/Armor.yml @@ -251,7 +251,7 @@ Heavy_Chestplate: - " [-] Decreased movement speed" - " " - "&6Full Set Bonus: &oNone" - - "Prevents you from getting poisoned or withered" + - "It's plenty strong already" Hide_Flags: true Unbreakable: true Attributes: @@ -271,7 +271,7 @@ Heavy_Leggings: - " [-] Decreased movement speed" - " " - "&6Full Set Bonus: &oNone" - - "Prevents you from getting poisoned or withered" + - "It's plenty strong already" Hide_Flags: true Unbreakable: true Attributes: @@ -291,7 +291,7 @@ Heavy_Boots: - " [-] Decreased movement speed" - " " - "&6Full Set Bonus: &oNone" - - "Prevents you from getting poisoned or withered" + - "It's plenty strong already" Hide_Flags: true Unbreakable: true Attributes: diff --git a/src/main/resources/ArmorMechanics/config.yml b/src/main/resources/ArmorMechanics/config.yml index ff242a9..855057a 100644 --- a/src/main/resources/ArmorMechanics/config.yml +++ b/src/main/resources/ArmorMechanics/config.yml @@ -9,6 +9,11 @@ Print_Traces: false # Setting this to false will allow players to place heads on the ground Prevent_Armor_Place: true +# Setting this to false will allow you to use non-armor items. Players will +# not be able to manually click to equip these armors, but you can use commands +# to force equip the item. In general, I recommend you keep this as true +Prevent_Illegal_Armor: true + # Settings this to true will cause ArmorMechanics to delete any armor item that # no longer exists in config. We have this disabled by default, as this may annoy your playerbase #