From 0a3ebe53a5cfb2df979e1bb955e7d57b6cf76f84 Mon Sep 17 00:00:00 2001 From: Mads Boddum Date: Wed, 19 Oct 2016 10:50:48 +0200 Subject: [PATCH] Fixed callback buffs for buffs --- src/network/PacketType.java | 1 - src/resources/objects/creature/CreatureObject.java | 8 +++++--- src/resources/objects/player/PlayerObject.java | 6 +----- src/services/combat/CombatManager.java | 2 +- src/services/commands/BuffService.java | 8 ++++---- 5 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/network/PacketType.java b/src/network/PacketType.java index 5399ce02..78165506 100644 --- a/src/network/PacketType.java +++ b/src/network/PacketType.java @@ -27,7 +27,6 @@ ***********************************************************************************/ package network; -import network.packets.swg.zone.StopClientEffectObjectByLabelMessage; import network.packets.swg.*; import network.packets.swg.holo.HoloConnectionStarted; import network.packets.swg.holo.HoloConnectionStopped; diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index 395a0209..783eabc4 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -33,6 +33,7 @@ import java.util.Set; import java.io.IOException; import java.io.ObjectInputStream; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import network.packets.swg.zone.UpdatePostureMessage; @@ -62,9 +63,6 @@ import utilities.Encoder.StringType; public class CreatureObject extends TangibleObject { - private static final long serialVersionUID = 3L; - - private transient GroupInviterData inviterData = new GroupInviterData(0, null, "", 0); private transient long lastReserveOperation = 0; private final CreatureObjectClientServerNP creo4 = new CreatureObjectClientServerNP(); @@ -602,6 +600,10 @@ public class CreatureObject extends TangibleObject { creo6.removeBuff(buffCrc, this); } + public boolean hasBuff(String buffName) { + return getBuffByCrc(new CRC(buffName.toLowerCase(Locale.ENGLISH))) != null; + } + public Buff getBuffByCrc(CRC buffCrc) { return creo6.getBuffByCrc(buffCrc); } diff --git a/src/resources/objects/player/PlayerObject.java b/src/resources/objects/player/PlayerObject.java index 2a123a1c..c67f5f15 100644 --- a/src/resources/objects/player/PlayerObject.java +++ b/src/resources/objects/player/PlayerObject.java @@ -90,10 +90,6 @@ public class PlayerObject extends IntangibleObject { sendDelta(3, 7, title, StringType.ASCII); } - /** - * Calling this method will update the playTime field. - * @return the amount of time this PlayerObject has played. - */ public int getPlayTime() { return play3.getPlayTime(); } @@ -103,7 +99,7 @@ public class PlayerObject extends IntangibleObject { play3.setPlayTime(playTime); sendDelta(3, 9, playTime); } - + public int getGcwPoints() { return play3.getGcwPoints(); } diff --git a/src/services/combat/CombatManager.java b/src/services/combat/CombatManager.java index 416875d0..29b73ae4 100644 --- a/src/services/combat/CombatManager.java +++ b/src/services/combat/CombatManager.java @@ -336,7 +336,7 @@ public class CombatManager extends Manager { // We need to handle this differently, depending on whether killedCreature is a player or not if(corpse.isPlayer()) { - if (corpse.getBuffByCrc(new CRC("incapweaken")) != null) { + if (corpse.hasBuff("incapWeaken")) { // Kill this sucka immediately killCreature(killer, corpse); } else { diff --git a/src/services/commands/BuffService.java b/src/services/commands/BuffService.java index 37b0e066..85fc9059 100644 --- a/src/services/commands/BuffService.java +++ b/src/services/commands/BuffService.java @@ -52,10 +52,10 @@ import utilities.ThreadUtilities; public class BuffService extends Service { - // TODO buff slots A, B, C and D + // TODO buff groups and prioritisation // TODO remove buffs on respec. Listen for respec event and remove buffs with BuffData where REMOVE_ON_RESPEC == 1 // TODO remove group buff(s) from receiver when distance between caster and receiver is 100m. Perform same check upon zoning in - // TODO decay buffs on deathblow buffs with BuffData where DECAY_ON_PVP_DEATH == 1 + // TODO on deathblow, decay buffs with BuffData where DECAY_ON_PVP_DEATH == 1 private final ScheduledExecutorService executor; private final Map> buffRemoval; @@ -236,10 +236,10 @@ public class BuffService extends Service { String callback = buffData.getCallback(); - if(callback.isEmpty()) + if(callback.equals("none")) return; - CRC callbackCrc = new CRC(callback); + CRC callbackCrc = new CRC(callback.toLowerCase(Locale.ENGLISH)); if(dataMap.containsKey(callbackCrc)) { // Apply the callback buff addBuff(callbackCrc, creature, creature);