mirror of
https://github.com/ProjectSWGCore/Holocore.git
synced 2026-10-05 20:13:20 -04:00
Big ObjectController refactor to make controllers easier to use
This commit is contained in:
@@ -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<Player> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user