mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-08-20 13:05:35 +02:00
Trying to clean up duplicate checks & whatnot in our listeners.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.gmail.nossr50.skills.axes;
|
||||
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Tameable;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
@@ -21,7 +22,7 @@ public class AxeManager extends SkillManager {
|
||||
* @param event The event to modify
|
||||
*/
|
||||
public void bonusDamage(EntityDamageByEntityEvent event) {
|
||||
if (Misc.isNPCPlayer(player) || !Permissions.axeBonus(player)) {
|
||||
if (!Permissions.axeBonus(player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -36,20 +37,16 @@ public class AxeManager extends SkillManager {
|
||||
*
|
||||
* @param event The event to modify
|
||||
*/
|
||||
public void criticalHitCheck(EntityDamageByEntityEvent event) {
|
||||
if (Misc.isNPCPlayer(player) || !Permissions.criticalHit(player)) {
|
||||
public void criticalHitCheck(EntityDamageByEntityEvent event, LivingEntity target) {
|
||||
if (target.isDead() || (target instanceof Tameable && Misc.isFriendlyPet(player, (Tameable) target)) || !Permissions.criticalHit(player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
CriticalHitEventHandler eventHandler = new CriticalHitEventHandler(this, event);
|
||||
|
||||
if (eventHandler.defender instanceof Tameable && Misc.isFriendlyPet(player, (Tameable) eventHandler.defender)) {
|
||||
return;
|
||||
}
|
||||
CriticalHitEventHandler eventHandler = new CriticalHitEventHandler(this, event, target);
|
||||
|
||||
double chance = (Axes.criticalHitMaxChance / Axes.criticalHitMaxBonusLevel) * eventHandler.skillModifier;
|
||||
|
||||
if (chance > Misc.getRandom().nextInt(activationChance) && !eventHandler.defender.isDead()) {
|
||||
if (chance > Misc.getRandom().nextInt(activationChance)) {
|
||||
eventHandler.modifyEventDamage();
|
||||
eventHandler.sendAbilityMessages();
|
||||
}
|
||||
@@ -60,18 +57,14 @@ public class AxeManager extends SkillManager {
|
||||
*
|
||||
* @param event The event to modify
|
||||
*/
|
||||
public void impact(EntityDamageByEntityEvent event) {
|
||||
if (Misc.isNPCPlayer(player) || !Permissions.impact(player)) {
|
||||
public void impact(EntityDamageByEntityEvent event, LivingEntity target) {
|
||||
if (target.isDead() || !Permissions.impact(player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
ImpactEventHandler eventHandler = new ImpactEventHandler(this, event);
|
||||
ImpactEventHandler eventHandler = new ImpactEventHandler(this, event, target);
|
||||
|
||||
if (eventHandler.livingDefender == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (Misc.hasArmor(eventHandler.livingDefender)) {
|
||||
if (Misc.hasArmor(target)) {
|
||||
eventHandler.damageArmor();
|
||||
}
|
||||
else {
|
||||
@@ -84,12 +77,12 @@ public class AxeManager extends SkillManager {
|
||||
*
|
||||
* @param event The event to process
|
||||
*/
|
||||
public void skullSplitter(EntityDamageByEntityEvent event) {
|
||||
if (Misc.isNPCPlayer(player) || !Permissions.skullSplitter(player) || !profile.getAbilityMode(AbilityType.SKULL_SPLIITER)) {
|
||||
public void skullSplitter(LivingEntity target, int damage) {
|
||||
if (target.isDead() || !profile.getAbilityMode(AbilityType.SKULL_SPLIITER) || !Permissions.skullSplitter(player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
SkullSplitterEventHandler eventHandler = new SkullSplitterEventHandler(this, event);
|
||||
SkullSplitterEventHandler eventHandler = new SkullSplitterEventHandler(player, damage, target);
|
||||
eventHandler.applyAbilityEffects();
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package com.gmail.nossr50.skills.axes;
|
||||
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
|
||||
public class Axes {
|
||||
public static int bonusDamageMaxBonus = AdvancedConfig.getInstance().getBonusDamageAxesBonusMax();
|
||||
@@ -19,4 +20,7 @@ public class Axes {
|
||||
public static int greaterImpactBonusDamage = AdvancedConfig.getInstance().getGreaterImpactBonusDamage();
|
||||
|
||||
public static int skullSplitterModifier = AdvancedConfig.getInstance().getSkullSplitterModifier();
|
||||
|
||||
public static boolean pvpEnabled = Config.getInstance().getAxesPVP();
|
||||
public static boolean pveEnabled = Config.getInstance().getAxesPVE();
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
package com.gmail.nossr50.skills.axes;
|
||||
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
|
||||
@@ -12,13 +12,13 @@ public class CriticalHitEventHandler {
|
||||
private EntityDamageByEntityEvent event;
|
||||
private int damage;
|
||||
|
||||
protected Entity defender;
|
||||
protected LivingEntity defender;
|
||||
protected int skillModifier;
|
||||
|
||||
public CriticalHitEventHandler(AxeManager manager, EntityDamageByEntityEvent event) {
|
||||
public CriticalHitEventHandler(AxeManager manager, EntityDamageByEntityEvent event, LivingEntity defender) {
|
||||
this.manager = manager;
|
||||
this.event = event;
|
||||
this.defender = event.getEntity();
|
||||
this.defender = defender;
|
||||
this.damage = event.getDamage();
|
||||
|
||||
calculateSkillModifier();
|
||||
|
@@ -1,7 +1,6 @@
|
||||
package com.gmail.nossr50.skills.axes;
|
||||
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
@@ -20,20 +19,15 @@ public class ImpactEventHandler {
|
||||
private EntityEquipment equipment;
|
||||
private ItemStack[] armorContents;
|
||||
|
||||
protected Entity defender;
|
||||
protected LivingEntity livingDefender;
|
||||
protected LivingEntity defender;
|
||||
|
||||
public ImpactEventHandler(AxeManager manager, EntityDamageByEntityEvent event) {
|
||||
public ImpactEventHandler(AxeManager manager, EntityDamageByEntityEvent event, LivingEntity defender) {
|
||||
this.manager = manager;
|
||||
this.player = manager.getPlayer();
|
||||
this.event = event;
|
||||
this.defender = event.getEntity();
|
||||
|
||||
if (defender instanceof LivingEntity) {
|
||||
this.livingDefender = (LivingEntity) defender;
|
||||
this.equipment = livingDefender.getEquipment();
|
||||
this.armorContents = equipment.getArmorContents();
|
||||
}
|
||||
this.defender = defender;
|
||||
this.equipment = defender.getEquipment();
|
||||
this.armorContents = equipment.getArmorContents();
|
||||
}
|
||||
|
||||
protected void damageArmor() {
|
||||
@@ -70,14 +64,14 @@ public class ImpactEventHandler {
|
||||
|
||||
private void handleGreaterImpactEffect() {
|
||||
event.setDamage(event.getDamage() + Axes.greaterImpactBonusDamage);
|
||||
livingDefender.setVelocity(player.getLocation().getDirection().normalize().multiply(Axes.greaterImpactKnockbackMultiplier));
|
||||
defender.setVelocity(player.getLocation().getDirection().normalize().multiply(Axes.greaterImpactKnockbackMultiplier));
|
||||
}
|
||||
|
||||
private void sendAbilityMessge() {
|
||||
player.sendMessage(LocaleLoader.getString("Axes.Combat.GI.Proc"));
|
||||
|
||||
if (livingDefender instanceof Player) {
|
||||
((Player) livingDefender).sendMessage(LocaleLoader.getString("Axes.Combat.GI.Struck"));
|
||||
if (defender instanceof Player) {
|
||||
((Player) defender).sendMessage(LocaleLoader.getString("Axes.Combat.GI.Struck"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -2,7 +2,6 @@ package com.gmail.nossr50.skills.axes;
|
||||
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
|
||||
import com.gmail.nossr50.skills.Combat;
|
||||
import com.gmail.nossr50.skills.SkillType;
|
||||
@@ -12,10 +11,10 @@ public class SkullSplitterEventHandler {
|
||||
private LivingEntity target;
|
||||
private int damage;
|
||||
|
||||
protected SkullSplitterEventHandler(AxeManager manager, EntityDamageByEntityEvent event) {
|
||||
this.player = manager.getPlayer();
|
||||
this.target = (LivingEntity) event.getEntity();
|
||||
this.damage = event.getDamage();
|
||||
protected SkullSplitterEventHandler(Player player, int damage, LivingEntity target) {
|
||||
this.player = player;
|
||||
this.target = target;
|
||||
this.damage = damage;
|
||||
}
|
||||
|
||||
protected void applyAbilityEffects() {
|
||||
|
Reference in New Issue
Block a user