From 5dab50b799301c9d380e0fd956a227c4a032e01e Mon Sep 17 00:00:00 2001 From: Waverunner Date: Tue, 20 Jan 2015 20:41:59 -0500 Subject: [PATCH] Added /broadcastGalaxy, /broadcastPlanet, and /broadcastArea, as well as changed /broadcast to broadcast based off of the planet instead of area --- scripts/commands/generic/cmdBroadcast.py | 2 +- .../commands/generic/cmdBroadcastGalaxy.py | 7 +++++++ .../commands/generic/cmdBroadcastPlanet.py | 8 ++++++++ src/services/chat/ChatService.java | 19 ++++++++++++------- 4 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 scripts/commands/generic/cmdBroadcastGalaxy.py create mode 100644 scripts/commands/generic/cmdBroadcastPlanet.py diff --git a/scripts/commands/generic/cmdBroadcast.py b/scripts/commands/generic/cmdBroadcast.py index 3b5f33ef1..87ca0b33a 100644 --- a/scripts/commands/generic/cmdBroadcast.py +++ b/scripts/commands/generic/cmdBroadcast.py @@ -3,5 +3,5 @@ from intents.chat.ChatBroadcastIntent import BroadcastType import sys def execute(objManager, player, target, args): - ChatBroadcastIntent(args, player.getCreatureObject(), None, BroadcastType.AREA).broadcast() + ChatBroadcastIntent(args, player.getCreatureObject(), player.getCreatureObject().getLocation().getTerrain(), BroadcastType.PLANET).broadcast() return \ No newline at end of file diff --git a/scripts/commands/generic/cmdBroadcastGalaxy.py b/scripts/commands/generic/cmdBroadcastGalaxy.py new file mode 100644 index 000000000..de125b8b1 --- /dev/null +++ b/scripts/commands/generic/cmdBroadcastGalaxy.py @@ -0,0 +1,7 @@ +from intents.chat import ChatBroadcastIntent +from intents.chat.ChatBroadcastIntent import BroadcastType +import sys + +def execute(objManager, player, target, args): + ChatBroadcastIntent(args, player.getCreatureObject(), None, BroadcastType.GALAXY).broadcast() + return \ No newline at end of file diff --git a/scripts/commands/generic/cmdBroadcastPlanet.py b/scripts/commands/generic/cmdBroadcastPlanet.py new file mode 100644 index 000000000..61ec97690 --- /dev/null +++ b/scripts/commands/generic/cmdBroadcastPlanet.py @@ -0,0 +1,8 @@ +from intents.chat import ChatBroadcastIntent +from intents.chat.ChatBroadcastIntent import BroadcastType + +import sys + +def execute(objManager, player, target, args): + ChatBroadcastIntent(args, player.getCreatureObject(), player.getCreatureObject().getLocation().getTerrain(), BroadcastType.PLANET).broadcast() + return \ No newline at end of file diff --git a/src/services/chat/ChatService.java b/src/services/chat/ChatService.java index 8ba519443..5bd5460dd 100644 --- a/src/services/chat/ChatService.java +++ b/src/services/chat/ChatService.java @@ -5,8 +5,10 @@ import java.util.Date; import java.util.List; import intents.GalacticPacketIntent; +import intents.NotifyPlayersPacketIntent; import intents.PlayerEventIntent; import intents.chat.ChatBroadcastIntent; +import intents.chat.ChatBroadcastIntent.BroadcastType; import intents.chat.PersistentMessageIntent; import intents.chat.SpatialChatIntent; import network.packets.Packet; @@ -23,6 +25,7 @@ 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; import resources.control.Service; import resources.encodables.player.Mail; @@ -101,14 +104,11 @@ public class ChatService extends Service { } private void handleChatBroadcast(ChatBroadcastIntent i) { - switch(i.getBroadcastType()) { - case AREA: broadcastAreaMessage(i.getMessage(), i.getBroadcaster()); break; - default: break; - //case PLANET: broadcastPlanetMessage(i.getMessage(), i.getTerrain()); break; - //case GALAXY: broadcastGalaxyMessage(i.getMessage()); break; - } + if (i.getBroadcastType() == BroadcastType.AREA) + broadcastAreaMessage(i.getMessage(), i.getBroadcaster()); + else broadcastGalaxyMessage(i.getMessage(), i.getTerrain()); } - + private void handleChatRoomListRequest(Player player, ChatRequestRoomList request) { // ChatRoomList list = new ChatRoomList(); // list.addChatRoom(new ChatRoom(1, 0, 0, "SWG.Josh Wifi.Chat.tcpa", "SWG", "Josh Wifi", player.getCreatureObject().getName(), player.getCreatureObject().getName(), "Chat")); @@ -229,6 +229,11 @@ public class ChatService extends Service { } } + private void broadcastGalaxyMessage(String message, Terrain terrain) { + ChatSystemMessage packet = new ChatSystemMessage(SystemChatType.SCREEN_AND_CHAT.ordinal(), message); + new NotifyPlayersPacketIntent(packet, terrain).broadcast(); + } + private void sendPersistentMessageHeaders(Player player, String galaxy) { if (player == null || player.getCreatureObject() == null)