From 4d58a1c9f77e419b3b3bd9e1c7fc5e5a04e9881d Mon Sep 17 00:00:00 2001 From: Waverunner Date: Mon, 15 Jun 2015 13:49:53 -0400 Subject: [PATCH] Added ability to remove friends from friends list Fixed offline players not able to be added to friends list --- scripts/commands/generic/addFriend.py | 2 +- scripts/commands/generic/removeFriend.py | 20 ++++++++++++++++++++ src/services/chat/ChatService.java | 1 - src/services/player/PlayerManager.java | 6 +++++- src/services/player/ZoneService.java | 2 +- 5 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 scripts/commands/generic/removeFriend.py diff --git a/scripts/commands/generic/addFriend.py b/scripts/commands/generic/addFriend.py index b60887a21..7d2e8980b 100644 --- a/scripts/commands/generic/addFriend.py +++ b/scripts/commands/generic/addFriend.py @@ -18,7 +18,7 @@ def execute(galacticManager, player, target, args): #ChatBroadcastIntent(player, ProsePackage("@cmnty:friend_duplicate", "TT", name)).broadcast() # Need to fix OOB packet crash return - if galacticManager.getPlayerManager().getPlayerByCreatureFirstName(name) is None: + if galacticManager.getPlayerManager().playerExists(name) is False: #ChatBroadcastIntent(player, ProsePackage("@cmnty:friend_not_found", "TT", name)).broadcast() # Need to fix OOB packet crash return diff --git a/scripts/commands/generic/removeFriend.py b/scripts/commands/generic/removeFriend.py new file mode 100644 index 000000000..b51ac1804 --- /dev/null +++ b/scripts/commands/generic/removeFriend.py @@ -0,0 +1,20 @@ +from intents.chat import ChatBroadcastIntent +from resources.encodables import ProsePackage +import sys + +def execute(galacticManager, player, target, args): + ghost = player.getPlayerObject() + + if ghost is None: + return + + name = str(args.split(" ")[0]) + name.lower() + + if ghost.getFriendsList().contains(name) is False: + #ChatBroadcastIntent(player, ProsePackage("@cmnty:friend_not_found", "TT", name)).broadcast() + return + + ghost.removeFriend(name) + #ChatBroadcastIntent(player, ProsePackage("@cmnty:friend_removed", "TT", name)).broadcast() + return diff --git a/src/services/chat/ChatService.java b/src/services/chat/ChatService.java index fc7e3011a..10f33f1b5 100644 --- a/src/services/chat/ChatService.java +++ b/src/services/chat/ChatService.java @@ -411,7 +411,6 @@ public class ChatService extends Service { packet = new ChatPersistentMessageToClient(false, mail.getSender(), galaxy, mail.getId(), mail.getSubject(), mail.getMessage(), mail.getTimestamp(), mail.getStatus()); break; case HEADER_ONLY: - default: packet = new ChatPersistentMessageToClient(true, mail.getSender(), galaxy, mail.getId(), mail.getSubject(), "", mail.getTimestamp(), mail.getStatus()); break; } diff --git a/src/services/player/PlayerManager.java b/src/services/player/PlayerManager.java index 93aa13654..8b884ec29 100644 --- a/src/services/player/PlayerManager.java +++ b/src/services/player/PlayerManager.java @@ -94,7 +94,11 @@ public class PlayerManager extends Manager { else if (i instanceof NotifyPlayersPacketIntent) onNotifyPlayersPacketIntent((NotifyPlayersPacketIntent) i); } - + + public boolean playerExists(String name) { + return zoneService.characterExistsForName(name); + } + public Player getPlayerByCreatureName(String name) { synchronized (players) { for (Player p : players.values()) { diff --git a/src/services/player/ZoneService.java b/src/services/player/ZoneService.java index a6a5c49f4..88bdbb37f 100644 --- a/src/services/player/ZoneService.java +++ b/src/services/player/ZoneService.java @@ -409,7 +409,7 @@ public class ZoneService extends Service { return ErrorMessage.NAME_APPROVED; } - private boolean characterExistsForName(String name) { + public boolean characterExistsForName(String name) { synchronized (getCharacter) { ResultSet set = null; try {