Skip to content

Commit 2516192

Browse files
committed
Commit
1 parent bcc5d37 commit 2516192

3 files changed

Lines changed: 99 additions & 34 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public void onJoin(PlayerJoinEvent e) {
5151
Resets the attribute of the player to the New Attack Speed (On Leave)
5252
*/
5353

54-
@EventHandler(ignoreCancelled = true)
54+
@EventHandler
5555
public void onLeave(PlayerQuitEvent e) {
5656
if (isOldPvpEnabled) {
5757
resetStats.resetAttackSpeed(e.getPlayer());

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

Lines changed: 97 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

src/main/resources/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: CombatPlus
2-
version: 1.4.3
2+
version: 1.4.4
33
main: me.nik.combatplus.CombatPlus
44
api-version: 1.13
55
authors: [Nik]

0 commit comments

Comments
 (0)