Skip to content

Commit b46502f

Browse files
committed
Commit
1 parent 2516192 commit b46502f

1 file changed

Lines changed: 49 additions & 40 deletions

File tree

src/main/java/me/nik/combatplus/listeners/DamageModifiers.java

Lines changed: 49 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ public class DamageModifiers implements Listener {
1919
private final WorldUtils worldUtils;
2020
private final CombatPlus plugin;
2121

22-
private final double oldPickaxeDamage;
23-
private final double oldAxeDamage;
24-
private final double oldShovelDamage;
25-
private final double oldSwordDamage;
22+
private final String oldPickaxeDamage;
23+
private final String oldAxeDamage;
24+
private final String oldShovelDamage;
25+
private final String oldSwordDamage;
2626

2727
private final boolean oldWeaponDamage;
2828
private final boolean oldToolDamage;
@@ -32,10 +32,10 @@ public class DamageModifiers implements Listener {
3232
public DamageModifiers(CombatPlus plugin) {
3333
this.plugin = plugin;
3434
this.worldUtils = new WorldUtils(plugin);
35-
this.oldPickaxeDamage = plugin.getConfig().getDouble("advanced.settings.modifiers.old_pickaxes_damage");
36-
this.oldAxeDamage = plugin.getConfig().getDouble("advanced.settings.modifiers.old_axes_damage");
37-
this.oldShovelDamage = plugin.getConfig().getDouble("advanced.settings.modifiers.old_shovels_damage");
38-
this.oldSwordDamage = plugin.getConfig().getDouble("advanced.settings.modifiers.old_swords_damage");
35+
this.oldPickaxeDamage = plugin.getConfig().getString("advanced.settings.modifiers.old_pickaxes_damage");
36+
this.oldAxeDamage = plugin.getConfig().getString("advanced.settings.modifiers.old_axes_damage");
37+
this.oldShovelDamage = plugin.getConfig().getString("advanced.settings.modifiers.old_shovels_damage");
38+
this.oldSwordDamage = plugin.getConfig().getString("advanced.settings.modifiers.old_swords_damage");
3939
this.oldWeaponDamage = plugin.getConfig().getBoolean("combat.settings.old_weapon_damage");
4040
this.oldToolDamage = plugin.getConfig().getBoolean("combat.settings.old_tool_damage");
4141
this.sweepAttacks = plugin.getConfig().getBoolean("combat.settings.disable_sweep_attacks.enabled");
@@ -106,7 +106,7 @@ public void onEntityDamage(EntityDamageByEntityEvent e) {
106106
}
107107
}
108108

109-
private void disableSweep(EntityDamageEvent e, Entity player, ItemStack handItem) {
109+
private void disableSweep(EntityDamageEvent e, Player player, ItemStack handItem) {
110110
if (handItem.containsEnchantment(Enchantment.SWEEPING_EDGE) && plugin.getConfig().getBoolean("combat.settings.disable_sweep_attacks.ignore_sweeping_edge"))
111111
return;
112112
Entity ent = e.getEntity();
@@ -115,78 +115,87 @@ private void disableSweep(EntityDamageEvent e, Entity player, ItemStack handItem
115115
double z = ent.getVelocity().getZ();
116116
e.setCancelled(true);
117117
ent.setVelocity(new Vector().zero());
118-
Messenger.debug((Player) player, "&3Damage Modifier &f&l>> &6Canceled Sweep Attack: &a" + e.isCancelled() + " &6Velocity: X = &a" + x + " &6Y = &a" + y + " &6Z = &a" + z);
118+
Messenger.debug(player, "&3Damage Modifier &f&l>> &6Canceled Sweep Attack: &a" + e.isCancelled() + " &6Velocity: X = &a" + x + " &6Y = &a" + y + " &6Z = &a" + z);
119119
}
120120

121-
private void oldPickaxeDmg(EntityDamageByEntityEvent e, Entity player, ItemStack handItem) {
121+
private void oldPickaxeDmg(EntityDamageByEntityEvent e, Player player, ItemStack handItem) {
122122
double damageDealt = e.getDamage();
123123
double newDmg;
124+
if (divide(oldPickaxeDamage)) {
125+
newDmg = damageDealt / convertToDivide(oldPickaxeDamage);
126+
} else {
127+
newDmg = damageDealt + Double.parseDouble(oldPickaxeDamage);
128+
}
124129
if (handItem.containsEnchantment(Enchantment.DAMAGE_ALL) && oldSharp) {
125130
double sharpLvl = handItem.getEnchantmentLevel(Enchantment.DAMAGE_ALL);
126131
double oldSharpDmg = sharpLvl >= 1 ? 1 + (sharpLvl - 1) * 0.5 : 0; //1.9+
127132
double newSharpDmg = sharpLvl >= 1 ? sharpLvl * 1.25 : 0; //1.8
128-
newDmg = damageDealt + oldPickaxeDamage + newSharpDmg - oldSharpDmg;
129-
} else {
130-
newDmg = damageDealt + oldPickaxeDamage;
133+
newDmg = newDmg + newSharpDmg - oldSharpDmg;
131134
}
132135
e.setDamage(newDmg);
133-
Messenger.debug((Player) player, "&3Damage Modifier &f&l>> &6Item: &aPickaxe &6Old Damage: &a" + damageDealt + " &6New Damage: &a" + newDmg);
136+
Messenger.debug(player, "&3Damage Modifier &f&l>> &6Item: &aPickaxe &6Old Damage: &a" + damageDealt + " &6New Damage: &a" + newDmg);
134137
}
135138

136-
private void oldAxeDmg(EntityDamageByEntityEvent e, Entity player, ItemStack handItem) {
139+
private void oldAxeDmg(EntityDamageByEntityEvent e, Player player, ItemStack handItem) {
137140
double damageDealt = e.getDamage();
138141
double newDmg;
142+
if (divide(oldAxeDamage)) {
143+
newDmg = damageDealt / convertToDivide(oldAxeDamage);
144+
} else {
145+
newDmg = damageDealt + Double.parseDouble(oldAxeDamage);
146+
}
139147
if (handItem.containsEnchantment(Enchantment.DAMAGE_ALL) && oldSharp) {
140148
double sharpLvl = handItem.getEnchantmentLevel(Enchantment.DAMAGE_ALL);
141149
double oldSharpDmg = sharpLvl >= 1 ? 1 + (sharpLvl - 1) * 0.5 : 0; //1.9+
142150
double newSharpDmg = sharpLvl >= 1 ? sharpLvl * 1.25 : 0; //1.8
143-
newDmg = damageDealt + oldAxeDamage + newSharpDmg - oldSharpDmg;
144-
} else {
145-
newDmg = damageDealt + oldAxeDamage;
151+
newDmg = newDmg + newSharpDmg - oldSharpDmg;
146152
}
147153
e.setDamage(newDmg);
148-
Messenger.debug((Player) player, "&3Damage Modifier &f&l>> &6Item: &aAxe &6Old Damage: &a" + damageDealt + " &6New Damage: &a" + newDmg);
154+
Messenger.debug(player, "&3Damage Modifier &f&l>> &6Item: &aAxe &6Old Damage: &a" + damageDealt + " &6New Damage: &a" + newDmg);
149155
}
150156

151-
private void oldShovelDmg(EntityDamageByEntityEvent e, Entity player, ItemStack handItem) {
157+
private void oldShovelDmg(EntityDamageByEntityEvent e, Player player, ItemStack handItem) {
152158
double damageDealt = e.getDamage();
153159
double newDmg;
160+
if (divide(oldShovelDamage)) {
161+
newDmg = damageDealt / convertToDivide(oldShovelDamage);
162+
} else {
163+
newDmg = damageDealt + Double.parseDouble(oldShovelDamage);
164+
}
154165
if (handItem.containsEnchantment(Enchantment.DAMAGE_ALL) && oldSharp) {
155166
double sharpLvl = handItem.getEnchantmentLevel(Enchantment.DAMAGE_ALL);
156167
double oldSharpDmg = sharpLvl >= 1 ? 1 + (sharpLvl - 1) * 0.5 : 0; //1.9+
157168
double newSharpDmg = sharpLvl >= 1 ? sharpLvl * 1.25 : 0; //1.8
158-
newDmg = damageDealt + oldShovelDamage + newSharpDmg - oldSharpDmg;
159-
} else {
160-
newDmg = damageDealt + oldShovelDamage;
169+
newDmg = newDmg + newSharpDmg - oldSharpDmg;
161170
}
162171
e.setDamage(newDmg);
163-
Messenger.debug((Player) player, "&3Damage Modifier &f&l>> &6Item: &aShovel &6Old Damage: &a" + damageDealt + " &6New Damage: &a" + newDmg);
172+
Messenger.debug(player, "&3Damage Modifier &f&l>> &6Item: &aShovel &6Old Damage: &a" + damageDealt + " &6New Damage: &a" + newDmg);
164173
}
165174

166-
private void oldSwordDmg(EntityDamageByEntityEvent e, Entity player, ItemStack handItem) {
175+
private void oldSwordDmg(EntityDamageByEntityEvent e, Player player, ItemStack handItem) {
167176
double damageDealt = e.getDamage();
168177
double newDmg;
178+
if (divide(oldSwordDamage)) {
179+
newDmg = damageDealt / convertToDivide(oldSwordDamage);
180+
} else {
181+
newDmg = damageDealt + Double.parseDouble(oldSwordDamage);
182+
}
169183
if (handItem.containsEnchantment(Enchantment.DAMAGE_ALL) && oldSharp) {
170184
double sharpLvl = handItem.getEnchantmentLevel(Enchantment.DAMAGE_ALL);
171185
double oldSharpDmg = sharpLvl >= 1 ? 1 + (sharpLvl - 1) * 0.5 : 0; //1.9+
172186
double newSharpDmg = sharpLvl >= 1 ? sharpLvl * 1.25 : 0; //1.8
173-
newDmg = damageDealt + oldSwordDamage + newSharpDmg - oldSharpDmg;
174-
} else {
175-
newDmg = damageDealt + oldSwordDamage;
187+
newDmg = newDmg + newSharpDmg - oldSharpDmg;
176188
}
177189
e.setDamage(newDmg);
178-
Messenger.debug((Player) player, "&3Damage Modifier &f&l>> &6Item: &aSword &6Old Damage: &a" + damageDealt + " &6New Damage: &a" + newDmg);
190+
Messenger.debug(player, "&3Damage Modifier &f&l>> &6Item: &aSword &6Old Damage: &a" + damageDealt + " &6New Damage: &a" + newDmg);
179191
}
180192

181-
private void oldSharpDamage(EntityDamageByEntityEvent e, Entity player, ItemStack handItem) {
182-
if (handItem.containsEnchantment(Enchantment.DAMAGE_ALL)) {
183-
double damageDealt = e.getDamage();
184-
double sharpLvl = handItem.getEnchantmentLevel(Enchantment.DAMAGE_ALL);
185-
double oldSharpDmg = sharpLvl >= 1 ? 1 + (sharpLvl - 1) * 0.5 : 0; //1.9+
186-
double newSharpDmg = sharpLvl >= 1 ? sharpLvl * 1.25 : 0; //1.8
187-
double total = damageDealt + newSharpDmg - oldSharpDmg;
188-
e.setDamage(total);
189-
Messenger.debug((Player) player, "&3Damage Modifier &f&l>> &6Old Sharpness Damage: &a" + oldSharpDmg + " &6New Sharpness Damage: &a" + newSharpDmg);
190-
}
193+
private boolean divide(String value) {
194+
return value.contains("/");
195+
}
196+
197+
private double convertToDivide(String value) {
198+
String s = value.replaceAll("/", "");
199+
return Double.parseDouble(s);
191200
}
192201
}

0 commit comments

Comments
 (0)