From 8db2d5025aab7f822846298a5ad6534f14f259cb Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Wed, 1 Apr 2020 17:21:42 -0500 Subject: [PATCH] Configurable enchantment max level --- src/main/java/net/minecraft/server/Enchantment.java | 12 ++++++++++-- .../net/minecraft/server/EnchantmentArrowDamage.java | 6 +----- .../minecraft/server/EnchantmentArrowKnockback.java | 6 +----- .../net/minecraft/server/EnchantmentBinding.java | 6 +----- .../minecraft/server/EnchantmentDepthStrider.java | 6 +----- .../net/minecraft/server/EnchantmentDigging.java | 6 +----- .../net/minecraft/server/EnchantmentDurability.java | 6 +----- .../java/net/minecraft/server/EnchantmentFire.java | 6 +----- .../net/minecraft/server/EnchantmentFlameArrows.java | 6 +----- .../net/minecraft/server/EnchantmentFrostWalker.java | 6 +----- .../minecraft/server/EnchantmentInfiniteArrows.java | 6 +----- .../net/minecraft/server/EnchantmentKnockback.java | 6 +----- .../net/minecraft/server/EnchantmentLootBonus.java | 6 +----- .../java/net/minecraft/server/EnchantmentLure.java | 6 +----- .../net/minecraft/server/EnchantmentMending.java | 6 +----- .../net/minecraft/server/EnchantmentMultishot.java | 6 +----- .../java/net/minecraft/server/EnchantmentOxygen.java | 6 +----- .../net/minecraft/server/EnchantmentPiercing.java | 6 +----- .../net/minecraft/server/EnchantmentProtection.java | 7 +------ .../net/minecraft/server/EnchantmentQuickCharge.java | 6 +----- .../net/minecraft/server/EnchantmentSilkTouch.java | 6 +----- .../net/minecraft/server/EnchantmentSweeping.java | 6 +----- .../java/net/minecraft/server/EnchantmentThorns.java | 6 +----- .../server/EnchantmentTridentChanneling.java | 6 +----- .../minecraft/server/EnchantmentTridentImpaling.java | 6 +----- .../minecraft/server/EnchantmentTridentLoyalty.java | 6 +----- .../minecraft/server/EnchantmentTridentRiptide.java | 6 +----- .../net/minecraft/server/EnchantmentVanishing.java | 6 +----- .../net/minecraft/server/EnchantmentWaterWorker.java | 6 +----- .../minecraft/server/EnchantmentWeaponDamage.java | 6 +----- src/main/java/net/pl3x/purpur/PurpurConfig.java | 10 ++++++++++ .../craftbukkit/enchantments/CraftEnchantment.java | 7 +++++++ 32 files changed, 56 insertions(+), 148 deletions(-) diff --git a/src/main/java/net/minecraft/server/Enchantment.java b/src/main/java/net/minecraft/server/Enchantment.java index 70cd4a4837..0ab96ea34e 100644 --- a/src/main/java/net/minecraft/server/Enchantment.java +++ b/src/main/java/net/minecraft/server/Enchantment.java @@ -44,9 +44,17 @@ public abstract class Enchantment { return 1; } - public int getMaxLevel() { - return 1; + // Purpur start + private int maxLevel = 1; + + public final int getMaxLevel() { + return maxLevel; + } + + public final void setMaxLevel(int maxLevel) { + this.maxLevel = maxLevel; } + // Purpur end public int a(int i) { return 1 + i * 10; diff --git a/src/main/java/net/minecraft/server/EnchantmentArrowDamage.java b/src/main/java/net/minecraft/server/EnchantmentArrowDamage.java index ffa1d19cb9..1040e7e08b 100644 --- a/src/main/java/net/minecraft/server/EnchantmentArrowDamage.java +++ b/src/main/java/net/minecraft/server/EnchantmentArrowDamage.java @@ -4,6 +4,7 @@ public class EnchantmentArrowDamage extends Enchantment { public EnchantmentArrowDamage(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.BOW, aenumitemslot); + setMaxLevel(5); // Purpur } @Override @@ -15,9 +16,4 @@ public class EnchantmentArrowDamage extends Enchantment { public int b(int i) { return this.a(i) + 15; } - - @Override - public int getMaxLevel() { - return 5; - } } diff --git a/src/main/java/net/minecraft/server/EnchantmentArrowKnockback.java b/src/main/java/net/minecraft/server/EnchantmentArrowKnockback.java index 9103f3c614..67f487b9e4 100644 --- a/src/main/java/net/minecraft/server/EnchantmentArrowKnockback.java +++ b/src/main/java/net/minecraft/server/EnchantmentArrowKnockback.java @@ -4,6 +4,7 @@ public class EnchantmentArrowKnockback extends Enchantment { public EnchantmentArrowKnockback(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.BOW, aenumitemslot); + setMaxLevel(2); // Purpur } @Override @@ -15,9 +16,4 @@ public class EnchantmentArrowKnockback extends Enchantment { public int b(int i) { return this.a(i) + 25; } - - @Override - public int getMaxLevel() { - return 2; - } } diff --git a/src/main/java/net/minecraft/server/EnchantmentBinding.java b/src/main/java/net/minecraft/server/EnchantmentBinding.java index b49154b13e..ec4dad3cf2 100644 --- a/src/main/java/net/minecraft/server/EnchantmentBinding.java +++ b/src/main/java/net/minecraft/server/EnchantmentBinding.java @@ -4,6 +4,7 @@ public class EnchantmentBinding extends Enchantment { public EnchantmentBinding(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.WEARABLE, aenumitemslot); + setMaxLevel(1); // Purpur } @Override @@ -16,11 +17,6 @@ public class EnchantmentBinding extends Enchantment { return 50; } - @Override - public int getMaxLevel() { - return 1; - } - @Override public boolean isTreasure() { return true; diff --git a/src/main/java/net/minecraft/server/EnchantmentDepthStrider.java b/src/main/java/net/minecraft/server/EnchantmentDepthStrider.java index 669fbd2685..07d566cd9e 100644 --- a/src/main/java/net/minecraft/server/EnchantmentDepthStrider.java +++ b/src/main/java/net/minecraft/server/EnchantmentDepthStrider.java @@ -4,6 +4,7 @@ public class EnchantmentDepthStrider extends Enchantment { public EnchantmentDepthStrider(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.ARMOR_FEET, aenumitemslot); + setMaxLevel(3); // Purpur } @Override @@ -16,11 +17,6 @@ public class EnchantmentDepthStrider extends Enchantment { return this.a(i) + 15; } - @Override - public int getMaxLevel() { - return 3; - } - @Override public boolean a(Enchantment enchantment) { return super.a(enchantment) && enchantment != Enchantments.FROST_WALKER; diff --git a/src/main/java/net/minecraft/server/EnchantmentDigging.java b/src/main/java/net/minecraft/server/EnchantmentDigging.java index 798b3c250c..16a7c38bc0 100644 --- a/src/main/java/net/minecraft/server/EnchantmentDigging.java +++ b/src/main/java/net/minecraft/server/EnchantmentDigging.java @@ -4,6 +4,7 @@ public class EnchantmentDigging extends Enchantment { protected EnchantmentDigging(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.DIGGER, aenumitemslot); + setMaxLevel(5); // Purpur } @Override @@ -16,11 +17,6 @@ public class EnchantmentDigging extends Enchantment { return super.a(i) + 50; } - @Override - public int getMaxLevel() { - return 5; - } - @Override public boolean canEnchant(ItemStack itemstack) { return itemstack.getItem() == Items.SHEARS ? true : super.canEnchant(itemstack); diff --git a/src/main/java/net/minecraft/server/EnchantmentDurability.java b/src/main/java/net/minecraft/server/EnchantmentDurability.java index c946326fbc..6deccef554 100644 --- a/src/main/java/net/minecraft/server/EnchantmentDurability.java +++ b/src/main/java/net/minecraft/server/EnchantmentDurability.java @@ -6,6 +6,7 @@ public class EnchantmentDurability extends Enchantment { protected EnchantmentDurability(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.BREAKABLE, aenumitemslot); + setMaxLevel(3); // Purpur } @Override @@ -18,11 +19,6 @@ public class EnchantmentDurability extends Enchantment { return super.a(i) + 50; } - @Override - public int getMaxLevel() { - return 3; - } - @Override public boolean canEnchant(ItemStack itemstack) { return itemstack.e() ? true : super.canEnchant(itemstack); diff --git a/src/main/java/net/minecraft/server/EnchantmentFire.java b/src/main/java/net/minecraft/server/EnchantmentFire.java index c4da4378cb..f2664c18e2 100644 --- a/src/main/java/net/minecraft/server/EnchantmentFire.java +++ b/src/main/java/net/minecraft/server/EnchantmentFire.java @@ -4,6 +4,7 @@ public class EnchantmentFire extends Enchantment { protected EnchantmentFire(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.WEAPON, aenumitemslot); + setMaxLevel(2); // Purpur } @Override @@ -15,9 +16,4 @@ public class EnchantmentFire extends Enchantment { public int b(int i) { return super.a(i) + 50; } - - @Override - public int getMaxLevel() { - return 2; - } } diff --git a/src/main/java/net/minecraft/server/EnchantmentFlameArrows.java b/src/main/java/net/minecraft/server/EnchantmentFlameArrows.java index a0b4da25b8..af3db770f8 100644 --- a/src/main/java/net/minecraft/server/EnchantmentFlameArrows.java +++ b/src/main/java/net/minecraft/server/EnchantmentFlameArrows.java @@ -4,6 +4,7 @@ public class EnchantmentFlameArrows extends Enchantment { public EnchantmentFlameArrows(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.BOW, aenumitemslot); + setMaxLevel(1); // Purpur } @Override @@ -15,9 +16,4 @@ public class EnchantmentFlameArrows extends Enchantment { public int b(int i) { return 50; } - - @Override - public int getMaxLevel() { - return 1; - } } diff --git a/src/main/java/net/minecraft/server/EnchantmentFrostWalker.java b/src/main/java/net/minecraft/server/EnchantmentFrostWalker.java index b5de6c740c..8c4fd331c8 100644 --- a/src/main/java/net/minecraft/server/EnchantmentFrostWalker.java +++ b/src/main/java/net/minecraft/server/EnchantmentFrostWalker.java @@ -10,6 +10,7 @@ public class EnchantmentFrostWalker extends Enchantment { public EnchantmentFrostWalker(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.ARMOR_FEET, aenumitemslot); + setMaxLevel(2); // Purpur } @Override @@ -27,11 +28,6 @@ public class EnchantmentFrostWalker extends Enchantment { return true; } - @Override - public int getMaxLevel() { - return 2; - } - public static void a(EntityLiving entityliving, World world, BlockPosition blockposition, int i) { if (entityliving.onGround) { IBlockData iblockdata = Blocks.FROSTED_ICE.getBlockData(); diff --git a/src/main/java/net/minecraft/server/EnchantmentInfiniteArrows.java b/src/main/java/net/minecraft/server/EnchantmentInfiniteArrows.java index 408cfa4609..1dbedc0adb 100644 --- a/src/main/java/net/minecraft/server/EnchantmentInfiniteArrows.java +++ b/src/main/java/net/minecraft/server/EnchantmentInfiniteArrows.java @@ -4,6 +4,7 @@ public class EnchantmentInfiniteArrows extends Enchantment { public EnchantmentInfiniteArrows(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.BOW, aenumitemslot); + setMaxLevel(1); // Purpur } @Override @@ -16,11 +17,6 @@ public class EnchantmentInfiniteArrows extends Enchantment { return 50; } - @Override - public int getMaxLevel() { - return 1; - } - @Override public boolean a(Enchantment enchantment) { return enchantment instanceof EnchantmentMending ? false : super.a(enchantment); diff --git a/src/main/java/net/minecraft/server/EnchantmentKnockback.java b/src/main/java/net/minecraft/server/EnchantmentKnockback.java index 362ce7bc47..04062c2557 100644 --- a/src/main/java/net/minecraft/server/EnchantmentKnockback.java +++ b/src/main/java/net/minecraft/server/EnchantmentKnockback.java @@ -4,6 +4,7 @@ public class EnchantmentKnockback extends Enchantment { protected EnchantmentKnockback(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.WEAPON, aenumitemslot); + setMaxLevel(2); // Purpur } @Override @@ -15,9 +16,4 @@ public class EnchantmentKnockback extends Enchantment { public int b(int i) { return super.a(i) + 50; } - - @Override - public int getMaxLevel() { - return 2; - } } diff --git a/src/main/java/net/minecraft/server/EnchantmentLootBonus.java b/src/main/java/net/minecraft/server/EnchantmentLootBonus.java index b5232faccc..c27e20e066 100644 --- a/src/main/java/net/minecraft/server/EnchantmentLootBonus.java +++ b/src/main/java/net/minecraft/server/EnchantmentLootBonus.java @@ -4,6 +4,7 @@ public class EnchantmentLootBonus extends Enchantment { protected EnchantmentLootBonus(Enchantment.Rarity enchantment_rarity, EnchantmentSlotType enchantmentslottype, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, enchantmentslottype, aenumitemslot); + setMaxLevel(3); // Purpur } @Override @@ -16,11 +17,6 @@ public class EnchantmentLootBonus extends Enchantment { return super.a(i) + 50; } - @Override - public int getMaxLevel() { - return 3; - } - @Override public boolean a(Enchantment enchantment) { return super.a(enchantment) && enchantment != Enchantments.SILK_TOUCH; diff --git a/src/main/java/net/minecraft/server/EnchantmentLure.java b/src/main/java/net/minecraft/server/EnchantmentLure.java index 1ffb91c570..c5a9e61f9a 100644 --- a/src/main/java/net/minecraft/server/EnchantmentLure.java +++ b/src/main/java/net/minecraft/server/EnchantmentLure.java @@ -4,6 +4,7 @@ public class EnchantmentLure extends Enchantment { protected EnchantmentLure(Enchantment.Rarity enchantment_rarity, EnchantmentSlotType enchantmentslottype, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, enchantmentslottype, aenumitemslot); + setMaxLevel(3); // Purpur } @Override @@ -15,9 +16,4 @@ public class EnchantmentLure extends Enchantment { public int b(int i) { return super.a(i) + 50; } - - @Override - public int getMaxLevel() { - return 3; - } } diff --git a/src/main/java/net/minecraft/server/EnchantmentMending.java b/src/main/java/net/minecraft/server/EnchantmentMending.java index dafc29399f..ace2e19a6f 100644 --- a/src/main/java/net/minecraft/server/EnchantmentMending.java +++ b/src/main/java/net/minecraft/server/EnchantmentMending.java @@ -4,6 +4,7 @@ public class EnchantmentMending extends Enchantment { public EnchantmentMending(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.BREAKABLE, aenumitemslot); + setMaxLevel(1); // Purpur } @Override @@ -20,9 +21,4 @@ public class EnchantmentMending extends Enchantment { public boolean isTreasure() { return true; } - - @Override - public int getMaxLevel() { - return 1; - } } diff --git a/src/main/java/net/minecraft/server/EnchantmentMultishot.java b/src/main/java/net/minecraft/server/EnchantmentMultishot.java index 6f423e7536..5fb8a624c2 100644 --- a/src/main/java/net/minecraft/server/EnchantmentMultishot.java +++ b/src/main/java/net/minecraft/server/EnchantmentMultishot.java @@ -4,6 +4,7 @@ public class EnchantmentMultishot extends Enchantment { public EnchantmentMultishot(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.CROSSBOW, aenumitemslot); + setMaxLevel(1); // Purpur } @Override @@ -16,11 +17,6 @@ public class EnchantmentMultishot extends Enchantment { return 50; } - @Override - public int getMaxLevel() { - return 1; - } - @Override public boolean a(Enchantment enchantment) { return super.a(enchantment) && enchantment != Enchantments.PIERCING; diff --git a/src/main/java/net/minecraft/server/EnchantmentOxygen.java b/src/main/java/net/minecraft/server/EnchantmentOxygen.java index c1bc97f6ef..a5726d36df 100644 --- a/src/main/java/net/minecraft/server/EnchantmentOxygen.java +++ b/src/main/java/net/minecraft/server/EnchantmentOxygen.java @@ -4,6 +4,7 @@ public class EnchantmentOxygen extends Enchantment { public EnchantmentOxygen(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.ARMOR_HEAD, aenumitemslot); + setMaxLevel(3);// Purpur } @Override @@ -15,9 +16,4 @@ public class EnchantmentOxygen extends Enchantment { public int b(int i) { return this.a(i) + 30; } - - @Override - public int getMaxLevel() { - return 3; - } } diff --git a/src/main/java/net/minecraft/server/EnchantmentPiercing.java b/src/main/java/net/minecraft/server/EnchantmentPiercing.java index 1a2e8e31f9..0e8993e86e 100644 --- a/src/main/java/net/minecraft/server/EnchantmentPiercing.java +++ b/src/main/java/net/minecraft/server/EnchantmentPiercing.java @@ -4,6 +4,7 @@ public class EnchantmentPiercing extends Enchantment { public EnchantmentPiercing(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.CROSSBOW, aenumitemslot); + setMaxLevel(4); // Purpur } @Override @@ -16,11 +17,6 @@ public class EnchantmentPiercing extends Enchantment { return 50; } - @Override - public int getMaxLevel() { - return 4; - } - @Override public boolean a(Enchantment enchantment) { return super.a(enchantment) && enchantment != Enchantments.MULTISHOT; diff --git a/src/main/java/net/minecraft/server/EnchantmentProtection.java b/src/main/java/net/minecraft/server/EnchantmentProtection.java index 416e57caa0..b29cb54677 100644 --- a/src/main/java/net/minecraft/server/EnchantmentProtection.java +++ b/src/main/java/net/minecraft/server/EnchantmentProtection.java @@ -10,7 +10,7 @@ public class EnchantmentProtection extends Enchantment { if (enchantmentprotection_damagetype == EnchantmentProtection.DamageType.FALL) { this.itemTarget = EnchantmentSlotType.ARMOR_FEET; } - + setMaxLevel(4); // Purpur } @Override @@ -23,11 +23,6 @@ public class EnchantmentProtection extends Enchantment { return this.a(i) + this.a.c(); } - @Override - public int getMaxLevel() { - return 4; - } - @Override public int a(int i, DamageSource damagesource) { return damagesource.ignoresInvulnerability() ? 0 : (this.a == EnchantmentProtection.DamageType.ALL ? i : (this.a == EnchantmentProtection.DamageType.FIRE && damagesource.isFire() ? i * 2 : (this.a == EnchantmentProtection.DamageType.FALL && damagesource == DamageSource.FALL ? i * 3 : (this.a == EnchantmentProtection.DamageType.EXPLOSION && damagesource.isExplosion() ? i * 2 : (this.a == EnchantmentProtection.DamageType.PROJECTILE && damagesource.b() ? i * 2 : 0))))); diff --git a/src/main/java/net/minecraft/server/EnchantmentQuickCharge.java b/src/main/java/net/minecraft/server/EnchantmentQuickCharge.java index e624b63aaf..762642ce5a 100644 --- a/src/main/java/net/minecraft/server/EnchantmentQuickCharge.java +++ b/src/main/java/net/minecraft/server/EnchantmentQuickCharge.java @@ -4,6 +4,7 @@ public class EnchantmentQuickCharge extends Enchantment { public EnchantmentQuickCharge(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.CROSSBOW, aenumitemslot); + setMaxLevel(3); // Purpur } @Override @@ -15,9 +16,4 @@ public class EnchantmentQuickCharge extends Enchantment { public int b(int i) { return 50; } - - @Override - public int getMaxLevel() { - return 3; - } } diff --git a/src/main/java/net/minecraft/server/EnchantmentSilkTouch.java b/src/main/java/net/minecraft/server/EnchantmentSilkTouch.java index 04aa8e1d5d..d0eac6dbc1 100644 --- a/src/main/java/net/minecraft/server/EnchantmentSilkTouch.java +++ b/src/main/java/net/minecraft/server/EnchantmentSilkTouch.java @@ -4,6 +4,7 @@ public class EnchantmentSilkTouch extends Enchantment { protected EnchantmentSilkTouch(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.DIGGER, aenumitemslot); + setMaxLevel(1); // Purpur } @Override @@ -16,11 +17,6 @@ public class EnchantmentSilkTouch extends Enchantment { return super.a(i) + 50; } - @Override - public int getMaxLevel() { - return 1; - } - @Override public boolean a(Enchantment enchantment) { return super.a(enchantment) && enchantment != Enchantments.LOOT_BONUS_BLOCKS; diff --git a/src/main/java/net/minecraft/server/EnchantmentSweeping.java b/src/main/java/net/minecraft/server/EnchantmentSweeping.java index a20b1c8f5b..7804e0a0a8 100644 --- a/src/main/java/net/minecraft/server/EnchantmentSweeping.java +++ b/src/main/java/net/minecraft/server/EnchantmentSweeping.java @@ -4,6 +4,7 @@ public class EnchantmentSweeping extends Enchantment { public EnchantmentSweeping(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.WEAPON, aenumitemslot); + setMaxLevel(3); // Purpur } @Override @@ -16,11 +17,6 @@ public class EnchantmentSweeping extends Enchantment { return this.a(i) + 15; } - @Override - public int getMaxLevel() { - return 3; - } - public static float e(int i) { return 1.0F - 1.0F / (float) (i + 1); } diff --git a/src/main/java/net/minecraft/server/EnchantmentThorns.java b/src/main/java/net/minecraft/server/EnchantmentThorns.java index fd0255c890..df7c9b24b5 100644 --- a/src/main/java/net/minecraft/server/EnchantmentThorns.java +++ b/src/main/java/net/minecraft/server/EnchantmentThorns.java @@ -7,6 +7,7 @@ public class EnchantmentThorns extends Enchantment { public EnchantmentThorns(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.ARMOR_CHEST, aenumitemslot); + setMaxLevel(3); // Purpur } @Override @@ -19,11 +20,6 @@ public class EnchantmentThorns extends Enchantment { return super.a(i) + 50; } - @Override - public int getMaxLevel() { - return 3; - } - @Override public boolean canEnchant(ItemStack itemstack) { return itemstack.getItem() instanceof ItemArmor ? true : super.canEnchant(itemstack); diff --git a/src/main/java/net/minecraft/server/EnchantmentTridentChanneling.java b/src/main/java/net/minecraft/server/EnchantmentTridentChanneling.java index 14115ecc78..2533b2cab2 100644 --- a/src/main/java/net/minecraft/server/EnchantmentTridentChanneling.java +++ b/src/main/java/net/minecraft/server/EnchantmentTridentChanneling.java @@ -4,6 +4,7 @@ public class EnchantmentTridentChanneling extends Enchantment { public EnchantmentTridentChanneling(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.TRIDENT, aenumitemslot); + setMaxLevel(1); // Purpur } @Override @@ -16,11 +17,6 @@ public class EnchantmentTridentChanneling extends Enchantment { return 50; } - @Override - public int getMaxLevel() { - return 1; - } - @Override public boolean a(Enchantment enchantment) { return super.a(enchantment); diff --git a/src/main/java/net/minecraft/server/EnchantmentTridentImpaling.java b/src/main/java/net/minecraft/server/EnchantmentTridentImpaling.java index f64fc401e8..b47d8284f8 100644 --- a/src/main/java/net/minecraft/server/EnchantmentTridentImpaling.java +++ b/src/main/java/net/minecraft/server/EnchantmentTridentImpaling.java @@ -4,6 +4,7 @@ public class EnchantmentTridentImpaling extends Enchantment { public EnchantmentTridentImpaling(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.TRIDENT, aenumitemslot); + setMaxLevel(5); // Purpur } @Override @@ -16,11 +17,6 @@ public class EnchantmentTridentImpaling extends Enchantment { return this.a(i) + 20; } - @Override - public int getMaxLevel() { - return 5; - } - @Override public float a(int i, EnumMonsterType enummonstertype) { return enummonstertype == EnumMonsterType.e ? (float) i * 2.5F : 0.0F; diff --git a/src/main/java/net/minecraft/server/EnchantmentTridentLoyalty.java b/src/main/java/net/minecraft/server/EnchantmentTridentLoyalty.java index dd91bed6e4..826f4d8750 100644 --- a/src/main/java/net/minecraft/server/EnchantmentTridentLoyalty.java +++ b/src/main/java/net/minecraft/server/EnchantmentTridentLoyalty.java @@ -4,6 +4,7 @@ public class EnchantmentTridentLoyalty extends Enchantment { public EnchantmentTridentLoyalty(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.TRIDENT, aenumitemslot); + setMaxLevel(3); // Purpur } @Override @@ -16,11 +17,6 @@ public class EnchantmentTridentLoyalty extends Enchantment { return 50; } - @Override - public int getMaxLevel() { - return 3; - } - @Override public boolean a(Enchantment enchantment) { return super.a(enchantment); diff --git a/src/main/java/net/minecraft/server/EnchantmentTridentRiptide.java b/src/main/java/net/minecraft/server/EnchantmentTridentRiptide.java index 0f669dc7ac..81d6ccc35b 100644 --- a/src/main/java/net/minecraft/server/EnchantmentTridentRiptide.java +++ b/src/main/java/net/minecraft/server/EnchantmentTridentRiptide.java @@ -4,6 +4,7 @@ public class EnchantmentTridentRiptide extends Enchantment { public EnchantmentTridentRiptide(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.TRIDENT, aenumitemslot); + setMaxLevel(3); // Purpur } @Override @@ -16,11 +17,6 @@ public class EnchantmentTridentRiptide extends Enchantment { return 50; } - @Override - public int getMaxLevel() { - return 3; - } - @Override public boolean a(Enchantment enchantment) { return super.a(enchantment) && enchantment != Enchantments.LOYALTY && enchantment != Enchantments.CHANNELING; diff --git a/src/main/java/net/minecraft/server/EnchantmentVanishing.java b/src/main/java/net/minecraft/server/EnchantmentVanishing.java index 4ef59d7f17..5d7b6ca57a 100644 --- a/src/main/java/net/minecraft/server/EnchantmentVanishing.java +++ b/src/main/java/net/minecraft/server/EnchantmentVanishing.java @@ -4,6 +4,7 @@ public class EnchantmentVanishing extends Enchantment { public EnchantmentVanishing(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.ALL, aenumitemslot); + setMaxLevel(1); // Purpur } @Override @@ -16,11 +17,6 @@ public class EnchantmentVanishing extends Enchantment { return 50; } - @Override - public int getMaxLevel() { - return 1; - } - @Override public boolean isTreasure() { return true; diff --git a/src/main/java/net/minecraft/server/EnchantmentWaterWorker.java b/src/main/java/net/minecraft/server/EnchantmentWaterWorker.java index cf0999095e..bea57861bf 100644 --- a/src/main/java/net/minecraft/server/EnchantmentWaterWorker.java +++ b/src/main/java/net/minecraft/server/EnchantmentWaterWorker.java @@ -4,6 +4,7 @@ public class EnchantmentWaterWorker extends Enchantment { public EnchantmentWaterWorker(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.ARMOR_HEAD, aenumitemslot); + setMaxLevel(1); // Purpur } @Override @@ -15,9 +16,4 @@ public class EnchantmentWaterWorker extends Enchantment { public int b(int i) { return this.a(i) + 40; } - - @Override - public int getMaxLevel() { - return 1; - } } diff --git a/src/main/java/net/minecraft/server/EnchantmentWeaponDamage.java b/src/main/java/net/minecraft/server/EnchantmentWeaponDamage.java index 4571cdf021..aa3cbd523a 100644 --- a/src/main/java/net/minecraft/server/EnchantmentWeaponDamage.java +++ b/src/main/java/net/minecraft/server/EnchantmentWeaponDamage.java @@ -11,6 +11,7 @@ public class EnchantmentWeaponDamage extends Enchantment { public EnchantmentWeaponDamage(Enchantment.Rarity enchantment_rarity, int i, EnumItemSlot... aenumitemslot) { super(enchantment_rarity, EnchantmentSlotType.WEAPON, aenumitemslot); this.a = i; + setMaxLevel(5); // Purpur } @Override @@ -23,11 +24,6 @@ public class EnchantmentWeaponDamage extends Enchantment { return this.a(i) + EnchantmentWeaponDamage.g[this.a]; } - @Override - public int getMaxLevel() { - return 5; - } - @Override public float a(int i, EnumMonsterType enummonstertype) { return this.a == 0 ? 1.0F + (float) Math.max(0, i - 1) * 0.5F : (this.a == 1 && enummonstertype == EnumMonsterType.UNDEAD ? (float) i * 2.5F : (this.a == 2 && enummonstertype == EnumMonsterType.ARTHROPOD ? (float) i * 2.5F : 0.0F)); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index 7bea362132..68bad6a13a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -1,6 +1,8 @@ package net.pl3x.purpur; import com.google.common.base.Throwables; +import net.minecraft.server.Enchantment; +import net.minecraft.server.IRegistry; import net.minecraft.server.MinecraftServer; import net.pl3x.purpur.command.PurpurCommand; import org.bukkit.Bukkit; @@ -194,4 +196,12 @@ public class PurpurConfig { private static void timingsSettings() { getString("settings.timings.url", "https://timings.pl3x.net"); } + + private static void enchantmentSettings() { + for (Enchantment enchantment : IRegistry.ENCHANTMENT) { + String name = IRegistry.ENCHANTMENT.getKey(enchantment).getKey(); + int maxLevel = getInt("settings.enchantment." + name + ".max-level", enchantment.getMaxLevel()); + enchantment.setMaxLevel(maxLevel); + } + } } diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java index 64ceeda1af..0e9fa34411 100644 --- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java +++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java @@ -23,6 +23,13 @@ public class CraftEnchantment extends Enchantment { return target.getMaxLevel(); } + // Purpur start + @Override + public void setMaxLevel(int maxLevel) { + target.setMaxLevel(maxLevel); + } + // Purpur end + @Override public int getStartLevel() { return target.getStartLevel(); -- 2.24.0