From 1065c70c551551902f59373eb35405f310b0944e Mon Sep 17 00:00:00 2001 From: Waverunner Date: Tue, 10 Dec 2013 18:53:42 -0500 Subject: [PATCH] friendAdd and friendRemove update PlayerObject FriendList now --- scripts/commands/removefriend.py | 2 +- .../objects/player/PlayerObject.java | 2 ++ src/services/SimulationService.java | 2 -- src/services/chat/ChatService.java | 35 ++++++++++--------- 4 files changed, 22 insertions(+), 19 deletions(-) diff --git a/scripts/commands/removefriend.py b/scripts/commands/removefriend.py index d4474d39..0958fd79 100644 --- a/scripts/commands/removefriend.py +++ b/scripts/commands/removefriend.py @@ -6,6 +6,6 @@ def setup(): def run(core, actor, target, commandString): ghost = actor.getSlottedObject('ghost') chatSvc = core.chatService - chatSvc.removeFriend(ghost, commandString, 1) + chatSvc.removeFriend(ghost, commandString) return \ No newline at end of file diff --git a/src/resources/objects/player/PlayerObject.java b/src/resources/objects/player/PlayerObject.java index 5b679a34..eb9d58c5 100644 --- a/src/resources/objects/player/PlayerObject.java +++ b/src/resources/objects/player/PlayerObject.java @@ -417,6 +417,7 @@ public class PlayerObject extends SWGObject { public void friendAdd(String friend) { synchronized(objectMutex) { setFriendListUpdateCounter(getFriendListUpdateCounter() + 1); + friendList.add(friend); getContainer().getClient().getSession().write(messageBuilder.buildFriendAddDelta(friend)); } } @@ -424,6 +425,7 @@ public class PlayerObject extends SWGObject { public void friendRemove(String friend) { synchronized(objectMutex) { setFriendListUpdateCounter(getFriendListUpdateCounter() + 1); + friendList.remove(friend); getContainer().getClient().getSession().write(messageBuilder.buildFriendRemoveDelta(friend)); } } diff --git a/src/services/SimulationService.java b/src/services/SimulationService.java index fc1868a1..a77df390 100644 --- a/src/services/SimulationService.java +++ b/src/services/SimulationService.java @@ -136,8 +136,6 @@ public class SimulationService implements INetworkDispatch { core.commandService.registerCommand("waypoint"); core.commandService.registerCommand("setwaypointactivestatus"); core.commandService.registerCommand("setwaypointname"); - core.commandService.registerCommand("addfriend"); - core.commandService.registerCommand("removefriend"); core.commandService.registerCommand("getfriendlist"); core.commandService.registerCommand("deathblow"); core.commandService.registerCommand("endduel"); diff --git a/src/services/chat/ChatService.java b/src/services/chat/ChatService.java index e9aa0576..a9540675 100644 --- a/src/services/chat/ChatService.java +++ b/src/services/chat/ChatService.java @@ -53,6 +53,7 @@ import protocol.swg.ChatFriendsListUpdate; import protocol.swg.ChatInstantMessageToCharacter; import protocol.swg.ChatInstantMessagetoClient; import protocol.swg.ChatOnAddFriend; +import protocol.swg.ChatOnGetFriendsList; import protocol.swg.ChatOnSendInstantMessage; import protocol.swg.ChatOnSendPersistentMessage; import protocol.swg.ChatPersistentMessageToClient; @@ -75,6 +76,8 @@ public class ChatService implements INetworkDispatch { core.commandService.registerCommand("addignore"); core.commandService.registerCommand("removeignore"); core.commandService.registerCommand("findfriend"); + core.commandService.registerCommand("addfriend"); + core.commandService.registerCommand("removefriend"); mailODB = core.getMailODB(); } @@ -356,7 +359,7 @@ public class ChatService implements INetworkDispatch { } } - public void removeFriend(PlayerObject actor, String friendName, boolean notify) { + public void removeFriend(PlayerObject actor, String friendName) { friendName = friendName.toLowerCase(); @@ -367,15 +370,17 @@ public class ChatService implements INetworkDispatch { List friendList = actor.getFriendList(); - if (notify) { - + if(friendList.contains(friendName)) { + + actor.friendRemove(friendName); + ChatOnChangeFriendStatus removeMessage = new ChatOnChangeFriendStatus(actor.getContainer().getObjectID(), friendName, 0); actor.getContainer().getClient().getSession().write(removeMessage.serialize()); + + ChatOnGetFriendsList sendFriendsList = new ChatOnGetFriendsList(actor); + actor.getContainer().getClient().getSession().write(sendFriendsList.serialize()); - if(friendList.contains(friendName)) { - actor.friendRemove(friendName); - friendList.remove(friendName); - } + } } @@ -422,19 +427,17 @@ public class ChatService implements INetworkDispatch { actorCreature.getClient().getSession().write(updateStatus.serialize()); } } + + actor.friendAdd(friendShortName); - friendList.add(friendShortName); - - //actor.friendAdd(friendShortName); - //actor.friendAdd(friendShortName); - //if (actor.getFriendList().size() != 0) { - //ChatOnGetFriendsList sendFriendsList = new ChatOnGetFriendsList(actor); - //actorCreature.getClient().getSession().write(sendFriendsList.serialize()); - //} + if (actor.getFriendList().size() != 0) { + ChatOnGetFriendsList sendFriendsList = new ChatOnGetFriendsList(actor); + actorCreature.getClient().getSession().write(sendFriendsList.serialize()); + } actorCreature.sendSystemMessage(friendShortName + " has been added to your friends list.", (byte) 0); - //actor.friendAdd(friendShortName); + } public void addToIgnoreList(SWGObject actor, String ignoreName) {