diff --git a/scripts/commands/generic/placeholder.txt b/scripts/commands/generic/placeholder.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/scripts/commands/generic/spatialChatInternal.py b/scripts/commands/generic/spatialChatInternal.py new file mode 100644 index 000000000..caeaf39c7 --- /dev/null +++ b/scripts/commands/generic/spatialChatInternal.py @@ -0,0 +1,7 @@ +from intents.chat import SpatialChatIntent +import sys + +def execute(objManager, player, target, args): + #Args: unkInt chatType moodId unkInt2 langId message + SpatialChatIntent(player, args.split(' ', 5)[5]).broadcast() + return \ No newline at end of file diff --git a/src/intents/chat/SpatialChatIntent.java b/src/intents/chat/SpatialChatIntent.java new file mode 100644 index 000000000..4fb013ee9 --- /dev/null +++ b/src/intents/chat/SpatialChatIntent.java @@ -0,0 +1,20 @@ +package intents.chat; + +import resources.control.Intent; +import resources.player.Player; + +public class SpatialChatIntent extends Intent { + public static final String TYPE = "SpatialChatIntent"; + + private Player player; + private String message; + + public SpatialChatIntent(Player player, String message) { + super(TYPE); + this.player = player; + this.message = message; + } + + public Player getPlayer() { return player; } + public String getMessage() { return message; } +} diff --git a/src/resources/utilities/Scripts.java b/src/resources/utilities/Scripts.java index c7fea7855..7f215d1c3 100644 --- a/src/resources/utilities/Scripts.java +++ b/src/resources/utilities/Scripts.java @@ -56,6 +56,6 @@ public final class Scripts { } private static boolean scriptExists(String file) { - return new File(file).exists(); + return new File(SCRIPTS_PATH + file).exists(); } } diff --git a/src/services/chat/ChatService.java b/src/services/chat/ChatService.java index 58d77628b..90ccf6f57 100644 --- a/src/services/chat/ChatService.java +++ b/src/services/chat/ChatService.java @@ -1,8 +1,11 @@ package services.chat; import intents.GalacticPacketIntent; +import intents.chat.SpatialChatIntent; import network.packets.Packet; import network.packets.swg.zone.ChatRequestRoomList; +import network.packets.swg.zone.object_controller.ObjectController; +import network.packets.swg.zone.object_controller.SpatialChat; import resources.control.Intent; import resources.control.Service; import resources.player.Player; @@ -16,6 +19,7 @@ public class ChatService extends Service { @Override public boolean initialize() { registerForIntent(GalacticPacketIntent.TYPE); + registerForIntent(SpatialChatIntent.TYPE); return super.initialize(); } @@ -28,7 +32,10 @@ public class ChatService extends Service { if (p instanceof ChatRequestRoomList) handleChatRoomListRequest(player, (ChatRequestRoomList) p); } - } + } + else if (i instanceof SpatialChatIntent) + handleSpatialChat((SpatialChatIntent) i); + } private void handleChatRoomListRequest(Player player, ChatRequestRoomList request) { @@ -37,5 +44,13 @@ public class ChatService extends Service { // sendPacket(player, list); } - + private void handleSpatialChat(SpatialChatIntent i) { + // TODO: Update for awareness + Player sender = i.getPlayer(); + + SpatialChat message = new SpatialChat(sender.getCreatureObject().getObjectId(), 0, i.getMessage(), 0); + ObjectController controller = new ObjectController(244, sender.getCreatureObject().getObjectId(), message); + + sender.sendPacket(controller); + } } diff --git a/src/services/commands/CommandService.java b/src/services/commands/CommandService.java index 30a6477cb..e341683a1 100644 --- a/src/services/commands/CommandService.java +++ b/src/services/commands/CommandService.java @@ -78,7 +78,7 @@ public class CommandService extends Service { // TODO: Handle for different targetType - Scripts.execute("commands/generic/" + command.getScriptCallback(), "execute", objManager, playerCreo, target, args); + Scripts.execute("commands/generic/" + command.getScriptCallback(), "execute", objManager, player, target, args); } private void loadBaseCommands() {