diff --git a/.gitignore b/.gitignore index 457d26b91..c504d1f04 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ packets.txt log.txt /target/ +*.db-journal diff --git a/scripts/commands/generic/endduel.js b/scripts/commands/generic/endduel.js index 87ff97cca..5de23f969 100644 --- a/scripts/commands/generic/endduel.js +++ b/scripts/commands/generic/endduel.js @@ -5,6 +5,8 @@ function executeCommand(galacticManager, player, target, args) { if (player.getCreatureObject().sentDuelRequestToPlayer(target) && !player.getCreatureObject().isInDuelWithPlayer(target)) { new DuelPlayerIntent(player.getCreatureObject(), target, DuelEventType.CANCEL).broadcast(); + } else if (target.getSentDuelRequestToPlayer(player.getCreatureObject()) && !player.getCreatureObject.sentDuelRequestToPlayer(target)) { + new DuelPlayerIntent(player.getCreatureObject(), target, DuelEventType.DECLINE).broadcast(); } else { new DuelPlayerIntent(player.getCreatureObject(), target, DuelEventType.END).broadcast(); } diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index 61c6a40da..b83be51d6 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -30,6 +30,7 @@ package resources.objects.creature; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.List; import java.util.Set; import java.util.Locale; import java.util.function.Predicate; @@ -79,13 +80,13 @@ public class CreatureObject extends TangibleObject { private long statesBitmask = 0; private long lastTransform = 0; - private SWGSet skills = new SWGSet(1, 3, StringType.ASCII); + private SWGSet skills = new SWGSet(1, 3, StringType.ASCII); - private SWGList baseAttributes = new SWGList(1, 2); + private SWGList baseAttributes = new SWGList(1, 2); - private ArrayList activeDuels = new ArrayList(); + private List activeDuels = new ArrayList<>(); - private ArrayList sentDuels = new ArrayList(); + private List sentDuels = new ArrayList<>(); public CreatureObject(long objectId) { super(objectId, BaselineType.CREO); @@ -810,11 +811,11 @@ public class CreatureObject extends TangibleObject { return activeDuels.contains(player); } - public ArrayList getActiveDuels() { + public List getActiveDuels() { return activeDuels; } - public ArrayList getSentDuels() { + public List getSentDuels() { return sentDuels; } diff --git a/src/services/combat/DuelPlayerService.java b/src/services/combat/DuelPlayerService.java index 0104bfc5e..a8bd11448 100644 --- a/src/services/combat/DuelPlayerService.java +++ b/src/services/combat/DuelPlayerService.java @@ -25,7 +25,6 @@ * along with Holocore. If not, see . * * * ***********************************************************************************/ - package services.combat; import intents.chat.ChatBroadcastIntent; @@ -86,7 +85,9 @@ public class DuelPlayerService extends Service { } private void handleDeclineDuel(CreatureObject decliner, CreatureObject target) { - // TODO: Implement + target.getSentDuels().remove(decliner); + sendSystemMessage(decliner, target, "reject_self"); + sendSystemMessage(target, decliner, "reject_target"); } private void handleRequestDuel(CreatureObject requester, CreatureObject target) {