From 3b5495e49a5a30d5c82aaecc3197ba3801d00a4f Mon Sep 17 00:00:00 2001 From: Obique Date: Wed, 18 Feb 2015 13:40:20 -0600 Subject: [PATCH] Big ObjectController refactor to make controllers easier to use --- .../callbacks/SocialInternalCmdCallback.java | 8 ++++---- src/services/chat/ChatService.java | 9 ++++----- src/services/commands/CommandService.java | 12 ++++-------- src/services/objects/ObjectManager.java | 8 +++----- src/services/sui/SuiService.java | 10 +++------- 5 files changed, 18 insertions(+), 29 deletions(-) diff --git a/src/resources/commands/callbacks/SocialInternalCmdCallback.java b/src/resources/commands/callbacks/SocialInternalCmdCallback.java index cb90df10d..bda1d6053 100644 --- a/src/resources/commands/callbacks/SocialInternalCmdCallback.java +++ b/src/resources/commands/callbacks/SocialInternalCmdCallback.java @@ -2,7 +2,6 @@ package resources.commands.callbacks; import java.util.List; -import network.packets.swg.zone.object_controller.ObjectController; import network.packets.swg.zone.object_controller.PlayerEmote; import resources.commands.ICmdCallback; import resources.objects.SWGObject; @@ -19,15 +18,16 @@ public class SocialInternalCmdCallback implements ICmdCallback { if (!cmd[0].equals("0")) target = objManager.getObjectById(Long.parseLong(cmd[0])); - PlayerEmote emote = new PlayerEmote(player.getCreatureObject().getObjectId(), ((target == null) ? 0 : target.getObjectId()), Short.valueOf(cmd[1])); - player.sendPacket(new ObjectController(PlayerEmote.CRC, player.getCreatureObject().getObjectId(), emote)); + long objectId = player.getCreatureObject().getObjectId(); + PlayerEmote emote = new PlayerEmote(objectId, objectId, ((target == null) ? 0 : target.getObjectId()), Short.valueOf(cmd[1])); + player.sendPacket(emote); List observers = player.getCreatureObject().getObservers(); for (Player observer : observers) { if (observer.getCreatureObject() == null) continue; - observer.sendPacket(new ObjectController(PlayerEmote.CRC, observer.getCreatureObject().getObjectId(), emote)); + observer.sendPacket(emote); } } } diff --git a/src/services/chat/ChatService.java b/src/services/chat/ChatService.java index 549c8f81c..8386151cf 100644 --- a/src/services/chat/ChatService.java +++ b/src/services/chat/ChatService.java @@ -29,7 +29,6 @@ import network.packets.swg.zone.chat.ChatPersistentMessageToServer; import network.packets.swg.zone.chat.ChatRequestPersistentMessage; import network.packets.swg.zone.chat.ChatSystemMessage; import network.packets.swg.zone.chat.ChatSystemMessage.SystemChatType; -import network.packets.swg.zone.object_controller.ObjectController; import network.packets.swg.zone.object_controller.SpatialChat; import resources.Terrain; import resources.control.Intent; @@ -174,15 +173,15 @@ public class ChatService extends Service { SWGObject actor = sender.getCreatureObject(); // Send to self - SpatialChat message = new SpatialChat(actor.getObjectId(), 0, i.getMessage(), i.getChatType(), i.getMoodId()); - sender.sendPacket(new ObjectController(SpatialChat.CRC, actor.getObjectId(), message)); + SpatialChat message = new SpatialChat(actor.getObjectId(), actor.getObjectId(), 0, i.getMessage(), (short) i.getChatType(), (short) i.getMoodId()); + sender.sendPacket(message); // Notify observers of the chat message for (Player observer : actor.getObservers()) { if (observer.getCreatureObject() == null) continue; - long id = observer.getCreatureObject().getObjectId(); - observer.sendPacket(new ObjectController(SpatialChat.CRC, id, message)); + message.setObjectId(observer.getCreatureObject().getObjectId()); + observer.sendPacket(message); } } diff --git a/src/services/commands/CommandService.java b/src/services/commands/CommandService.java index 5e2c483ce..6083046c6 100644 --- a/src/services/commands/CommandService.java +++ b/src/services/commands/CommandService.java @@ -6,7 +6,6 @@ import java.util.concurrent.ConcurrentHashMap; import network.packets.Packet; import network.packets.swg.zone.object_controller.CommandQueueEnqueue; -import network.packets.swg.zone.object_controller.ObjectController; import intents.GalacticPacketIntent; import resources.client_info.ClientFactory; import resources.client_info.visitors.DatatableData; @@ -47,11 +46,8 @@ public class CommandService extends Service { long netId = ((GalacticPacketIntent) i).getNetworkId(); Player player = ((GalacticPacketIntent) i).getPlayerManager().getPlayerFromNetworkId(netId); if (player != null) { - if (p instanceof ObjectController) { - ObjectController controller = ((ObjectController) p).getController(); - if (controller == null) - return; - + if (p instanceof CommandQueueEnqueue) { + CommandQueueEnqueue controller = (CommandQueueEnqueue) p; if (controller instanceof CommandQueueEnqueue) handleCommandRequest(player, ((GalacticPacketIntent) i).getObjectManager(), (CommandQueueEnqueue) controller); } @@ -61,13 +57,13 @@ public class CommandService extends Service { } private void handleCommandRequest(Player player, ObjectManager objManager, CommandQueueEnqueue request) { - if (!commands.containsKey(request.getCrc())) + if (!commands.containsKey(request.getCommandCrc())) return; // System.out.println(commands.get(request.getCrc()).toString()); SWGObject target = null; if (request.getTargetId() != 0) { target = objManager.getObjectById(request.getTargetId()); } - executeCommand(objManager, player, commands.get(request.getCrc()), target, request.getArguments()); + executeCommand(objManager, player, commands.get(request.getCommandCrc()), target, request.getArguments()); } private void executeCommand(ObjectManager objManager, Player player, Command command, SWGObject target, String args) { diff --git a/src/services/objects/ObjectManager.java b/src/services/objects/ObjectManager.java index 95b74bce3..9cafbe426 100644 --- a/src/services/objects/ObjectManager.java +++ b/src/services/objects/ObjectManager.java @@ -138,11 +138,9 @@ public class ObjectManager extends Manager { long characterId = ((SelectCharacter) packet).getCharacterId(); zoneInCharacter(pm, galaxy, gpi.getNetworkId(), characterId); } else if (packet instanceof ObjectController) { - ObjectController controller = (ObjectController) packet; - ObjectController contData = controller.getControllerData(); - if (contData instanceof DataTransform) { - DataTransform trans = (DataTransform) contData; - SWGObject obj = getObjectById(controller.getObjectId()); + if (packet instanceof DataTransform) { + DataTransform trans = (DataTransform) packet; + SWGObject obj = getObjectById(trans.getObjectId()); moveObject(obj, trans); } } diff --git a/src/services/sui/SuiService.java b/src/services/sui/SuiService.java index 8b5c3de41..f94cb6f83 100644 --- a/src/services/sui/SuiService.java +++ b/src/services/sui/SuiService.java @@ -78,17 +78,13 @@ public class SuiService extends Service { } private void handleObjectController(Player player, ObjectController objController) { - ObjectController controller = objController.getController(); - if (controller instanceof ObjectMenuRequest) - handleRadialMenuRequest(player, (ObjectMenuRequest) controller); + if (objController instanceof ObjectMenuRequest) + handleRadialMenuRequest(player, (ObjectMenuRequest) objController); } private void handleRadialMenuRequest(Player player, ObjectMenuRequest request) { // TODO: Modify when object scripts are in to accept a createRadial definition for radials - ObjectMenuResponse response = new ObjectMenuResponse(request.getTargetId(), request.getRequesterId(), request.getOptions(), request.getCounter()); - ObjectController controller = new ObjectController(ObjectMenuResponse.CRC, player.getCreatureObject().getObjectId(), response); - - player.sendPacket(controller); + player.sendPacket(new ObjectMenuResponse(player.getCreatureObject().getObjectId(), request.getTargetId(), request.getRequesterId(), request.getOptions(), request.getCounter())); } private void handleSuiWindowIntent(SuiWindowIntent i) {