@@ -24,13 +24,22 @@ public class DamageModifiers implements Listener {
2424 private final double oldShovelDamage ;
2525 private final double oldSwordDamage ;
2626
27+ private final boolean oldWeaponDamage ;
28+ private final boolean oldToolDamage ;
29+ private final boolean sweepAttacks ;
30+ private final boolean oldSharp ;
31+
2732 public DamageModifiers (CombatPlus plugin ) {
2833 this .plugin = plugin ;
2934 this .worldUtils = new WorldUtils (plugin );
3035 this .oldPickaxeDamage = plugin .getConfig ().getDouble ("advanced.settings.modifiers.old_pickaxes_damage" );
3136 this .oldAxeDamage = plugin .getConfig ().getDouble ("advanced.settings.modifiers.old_axes_damage" );
3237 this .oldShovelDamage = plugin .getConfig ().getDouble ("advanced.settings.modifiers.old_shovels_damage" );
3338 this .oldSwordDamage = plugin .getConfig ().getDouble ("advanced.settings.modifiers.old_swords_damage" );
39+ this .oldWeaponDamage = plugin .getConfig ().getBoolean ("combat.settings.old_weapon_damage" );
40+ this .oldToolDamage = plugin .getConfig ().getBoolean ("combat.settings.old_tool_damage" );
41+ this .sweepAttacks = plugin .getConfig ().getBoolean ("combat.settings.disable_sweep_attacks.enabled" );
42+ this .oldSharp = plugin .getConfig ().getBoolean ("combat.settings.old_sharpness" );
3443 }
3544
3645 /*
@@ -43,33 +52,57 @@ public void onEntityDamage(EntityDamageByEntityEvent e) {
4352 Player player = (Player ) e .getDamager ();
4453 if (worldUtils .combatDisabledWorlds (player )) return ;
4554 ItemStack handItem = player .getInventory ().getItemInMainHand ();
46- String isWeapon = handItem .getType ().name ();
47- if (plugin .getConfig ().getBoolean ("combat.settings.old_weapon_damage" )) {
48- if (handItem .getType ().name ().endsWith ("_SWORD" )) {
49- oldSwordDmg (e , player );
50- }
51- }
52- if (plugin .getConfig ().getBoolean ("combat.settings.old_tool_damage" )) {
53- if (isWeapon .endsWith ("_PICKAXE" )) {
54- oldPickaxeDmg (e , player );
55- } else if (isWeapon .endsWith ("_AXE" )) {
56- oldAxeDmg (e , player );
57- } else if (isWeapon .endsWith ("_SPADE" ) || isWeapon .endsWith ("_SHOVEL" )) {
58- oldShovelDmg (e , player );
59- }
60- }
61-
62- /*
63- This one disables Sweep Attacks and Reverts Sharpness Damage
64- */
65-
66- if (plugin .getConfig ().getBoolean ("combat.settings.disable_sweep_attacks.enabled" )) {
55+ String weapon = handItem .getType ().name ();
56+ if (sweepAttacks ) {
6757 if (e .getCause ().equals (EntityDamageEvent .DamageCause .ENTITY_SWEEP_ATTACK )) {
6858 disableSweep (e , player , handItem );
6959 }
7060 }
71- if (plugin .getConfig ().getBoolean ("combat.settings.old_sharpness" )) {
72- oldSharpDamage (e , player , handItem );
61+ switch (weapon ) {
62+ case "WOODEN_SWORD" :
63+ case "STONE_SWORD" :
64+ case "IRON_SWORD" :
65+ case "GOLDEN_SWORD" :
66+ case "GOLD_SWORD" :
67+ case "DIAMOND_SWORD" :
68+ if (oldWeaponDamage ) {
69+ oldSwordDmg (e , player , handItem );
70+ break ;
71+ }
72+ case "WOODEN_PICKAXE" :
73+ case "STONE_PICKAXE" :
74+ case "IRON_PICKAXE" :
75+ case "GOLDEN_PICKAXE" :
76+ case "GOLD_PICKAXE" :
77+ case "DIAMOND_PICKAXE" :
78+ if (oldToolDamage ) {
79+ oldPickaxeDmg (e , player , handItem );
80+ break ;
81+ }
82+ case "WOODEN_AXE" :
83+ case "STONE_AXE" :
84+ case "IRON_AXE" :
85+ case "GOLDEN_AXE" :
86+ case "GOLD_AXE" :
87+ case "DIAMOND_AXE" :
88+ if (oldToolDamage ) {
89+ oldAxeDmg (e , player , handItem );
90+ break ;
91+ }
92+ case "WOODEN_SPADE" :
93+ case "WOODEN_SHOVEL" :
94+ case "STONE_SPADE" :
95+ case "STONE_SHOVEL" :
96+ case "IRON_SPADE" :
97+ case "IRON_SHOVEL" :
98+ case "GOLD_SPADE" :
99+ case "GOLDEN_SHOVEL" :
100+ case "DIAMOND_SPADE" :
101+ case "DIAMOND_SHOVEL" :
102+ if (oldToolDamage ) {
103+ oldShovelDmg (e , player , handItem );
104+ break ;
105+ }
73106 }
74107 }
75108
@@ -85,30 +118,62 @@ private void disableSweep(EntityDamageEvent e, Entity player, ItemStack handItem
85118 Messenger .debug ((Player ) player , "&3Damage Modifier &f&l>> &6Canceled Sweep Attack: &a" + e .isCancelled () + " &6Velocity: X = &a" + x + " &6Y = &a" + y + " &6Z = &a" + z );
86119 }
87120
88- private void oldPickaxeDmg (EntityDamageByEntityEvent e , Entity player ) {
121+ private void oldPickaxeDmg (EntityDamageByEntityEvent e , Entity player , ItemStack handItem ) {
89122 double damageDealt = e .getDamage ();
90- double newDmg = damageDealt + oldPickaxeDamage ;
123+ double newDmg ;
124+ if (handItem .containsEnchantment (Enchantment .DAMAGE_ALL ) && oldSharp ) {
125+ double sharpLvl = handItem .getEnchantmentLevel (Enchantment .DAMAGE_ALL );
126+ double oldSharpDmg = sharpLvl >= 1 ? 1 + (sharpLvl - 1 ) * 0.5 : 0 ; //1.9+
127+ double newSharpDmg = sharpLvl >= 1 ? sharpLvl * 1.25 : 0 ; //1.8
128+ newDmg = damageDealt + oldPickaxeDamage + newSharpDmg - oldSharpDmg ;
129+ } else {
130+ newDmg = damageDealt + oldPickaxeDamage ;
131+ }
91132 e .setDamage (newDmg );
92133 Messenger .debug ((Player ) player , "&3Damage Modifier &f&l>> &6Item: &aPickaxe &6Old Damage: &a" + damageDealt + " &6New Damage: &a" + newDmg );
93134 }
94135
95- private void oldAxeDmg (EntityDamageByEntityEvent e , Entity player ) {
136+ private void oldAxeDmg (EntityDamageByEntityEvent e , Entity player , ItemStack handItem ) {
96137 double damageDealt = e .getDamage ();
97- double newDmg = damageDealt + oldAxeDamage ;
138+ double newDmg ;
139+ if (handItem .containsEnchantment (Enchantment .DAMAGE_ALL ) && oldSharp ) {
140+ double sharpLvl = handItem .getEnchantmentLevel (Enchantment .DAMAGE_ALL );
141+ double oldSharpDmg = sharpLvl >= 1 ? 1 + (sharpLvl - 1 ) * 0.5 : 0 ; //1.9+
142+ double newSharpDmg = sharpLvl >= 1 ? sharpLvl * 1.25 : 0 ; //1.8
143+ newDmg = damageDealt + oldAxeDamage + newSharpDmg - oldSharpDmg ;
144+ } else {
145+ newDmg = damageDealt + oldAxeDamage ;
146+ }
98147 e .setDamage (newDmg );
99148 Messenger .debug ((Player ) player , "&3Damage Modifier &f&l>> &6Item: &aAxe &6Old Damage: &a" + damageDealt + " &6New Damage: &a" + newDmg );
100149 }
101150
102- private void oldShovelDmg (EntityDamageByEntityEvent e , Entity player ) {
151+ private void oldShovelDmg (EntityDamageByEntityEvent e , Entity player , ItemStack handItem ) {
103152 double damageDealt = e .getDamage ();
104- double newDmg = damageDealt + oldShovelDamage ;
153+ double newDmg ;
154+ if (handItem .containsEnchantment (Enchantment .DAMAGE_ALL ) && oldSharp ) {
155+ double sharpLvl = handItem .getEnchantmentLevel (Enchantment .DAMAGE_ALL );
156+ double oldSharpDmg = sharpLvl >= 1 ? 1 + (sharpLvl - 1 ) * 0.5 : 0 ; //1.9+
157+ double newSharpDmg = sharpLvl >= 1 ? sharpLvl * 1.25 : 0 ; //1.8
158+ newDmg = damageDealt + oldShovelDamage + newSharpDmg - oldSharpDmg ;
159+ } else {
160+ newDmg = damageDealt + oldShovelDamage ;
161+ }
105162 e .setDamage (newDmg );
106163 Messenger .debug ((Player ) player , "&3Damage Modifier &f&l>> &6Item: &aShovel &6Old Damage: &a" + damageDealt + " &6New Damage: &a" + newDmg );
107164 }
108165
109- private void oldSwordDmg (EntityDamageByEntityEvent e , Entity player ) {
166+ private void oldSwordDmg (EntityDamageByEntityEvent e , Entity player , ItemStack handItem ) {
110167 double damageDealt = e .getDamage ();
111- double newDmg = damageDealt + oldSwordDamage ;
168+ double newDmg ;
169+ if (handItem .containsEnchantment (Enchantment .DAMAGE_ALL ) && oldSharp ) {
170+ double sharpLvl = handItem .getEnchantmentLevel (Enchantment .DAMAGE_ALL );
171+ double oldSharpDmg = sharpLvl >= 1 ? 1 + (sharpLvl - 1 ) * 0.5 : 0 ; //1.9+
172+ double newSharpDmg = sharpLvl >= 1 ? sharpLvl * 1.25 : 0 ; //1.8
173+ newDmg = damageDealt + oldSwordDamage + newSharpDmg - oldSharpDmg ;
174+ } else {
175+ newDmg = damageDealt + oldSwordDamage ;
176+ }
112177 e .setDamage (newDmg );
113178 Messenger .debug ((Player ) player , "&3Damage Modifier &f&l>> &6Item: &aSword &6Old Damage: &a" + damageDealt + " &6New Damage: &a" + newDmg );
114179 }
@@ -119,7 +184,7 @@ private void oldSharpDamage(EntityDamageByEntityEvent e, Entity player, ItemStac
119184 double sharpLvl = handItem .getEnchantmentLevel (Enchantment .DAMAGE_ALL );
120185 double oldSharpDmg = sharpLvl >= 1 ? 1 + (sharpLvl - 1 ) * 0.5 : 0 ; //1.9+
121186 double newSharpDmg = sharpLvl >= 1 ? sharpLvl * 1.25 : 0 ; //1.8
122- double total = damageDealt + newSharpDmg ;
187+ double total = damageDealt + newSharpDmg - oldSharpDmg ;
123188 e .setDamage (total );
124189 Messenger .debug ((Player ) player , "&3Damage Modifier &f&l>> &6Old Sharpness Damage: &a" + oldSharpDmg + " &6New Sharpness Damage: &a" + newSharpDmg );
125190 }
0 commit comments