mirror of
https://github.com/ProjectSWGCore/Holocore.git
synced 2026-09-28 13:12:59 -04:00
Started to refactor Services to use the new Intentsystem
This commit is contained in:
@@ -27,8 +27,6 @@
|
||||
***********************************************************************************/
|
||||
package services.admin;
|
||||
|
||||
import intents.PlayerEventIntent;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.InetAddress;
|
||||
import java.net.MalformedURLException;
|
||||
@@ -43,17 +41,17 @@ import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import intents.PlayerEventIntent;
|
||||
import resources.common.BCrypt;
|
||||
import resources.config.ConfigFile;
|
||||
import resources.control.Intent;
|
||||
import resources.control.Service;
|
||||
import resources.server_info.Config;
|
||||
import resources.server_info.Log;
|
||||
import services.admin.http.HttpServer;
|
||||
import services.admin.http.HttpServer.HttpServerCallback;
|
||||
import services.admin.http.HttpSession;
|
||||
import services.admin.http.HttpSocket;
|
||||
import services.admin.http.HttpSocket.HttpRequest;
|
||||
import services.admin.http.HttpSession;
|
||||
import services.admin.http.HttpsServer;
|
||||
import utilities.ThreadUtilities;
|
||||
|
||||
@@ -97,7 +95,7 @@ public class OnlineInterfaceService extends Service implements HttpServerCallbac
|
||||
return false;
|
||||
}
|
||||
executor = Executors.newSingleThreadScheduledExecutor(ThreadUtilities.newThreadFactory("ServerInterface-DataCollection"));
|
||||
registerForIntent(PlayerEventIntent.TYPE);
|
||||
registerForIntent(PlayerEventIntent.class, pei -> handlePlayerEventIntent(pei));
|
||||
return super.initialize();
|
||||
}
|
||||
|
||||
@@ -164,22 +162,18 @@ public class OnlineInterfaceService extends Service implements HttpServerCallbac
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onIntentReceived(Intent i) {
|
||||
if (i instanceof PlayerEventIntent) {
|
||||
PlayerEventIntent pei = (PlayerEventIntent) i;
|
||||
switch (pei.getEvent()) {
|
||||
case PE_ZONE_IN_CLIENT:
|
||||
data.addOnlinePlayer(pei.getPlayer());
|
||||
break;
|
||||
case PE_LOGGED_OUT:
|
||||
data.removeOnlinePlayer(pei.getPlayer());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
private void handlePlayerEventIntent(PlayerEventIntent pei){
|
||||
switch (pei.getEvent()) {
|
||||
case PE_ZONE_IN_CLIENT:
|
||||
data.addOnlinePlayer(pei.getPlayer());
|
||||
break;
|
||||
case PE_LOGGED_OUT:
|
||||
data.removeOnlinePlayer(pei.getPlayer());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void collectData() {
|
||||
data.updateResourceUsage();
|
||||
|
||||
@@ -47,7 +47,6 @@ import network.packets.swg.zone.chat.ChatPersistentMessageToClient;
|
||||
import network.packets.swg.zone.chat.ChatPersistentMessageToServer;
|
||||
import network.packets.swg.zone.chat.ChatRequestPersistentMessage;
|
||||
import resources.chat.ChatResult;
|
||||
import resources.control.Intent;
|
||||
import resources.control.Service;
|
||||
import resources.encodables.player.Mail;
|
||||
import resources.objects.SWGObject;
|
||||
@@ -76,9 +75,9 @@ public class ChatMailService extends Service {
|
||||
insertChatLog = chatLogs.prepareStatement("INSERT INTO chat_log VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
||||
maxMailId = 1;
|
||||
|
||||
registerForIntent(GalacticPacketIntent.TYPE);
|
||||
registerForIntent(PersistentMessageIntent.TYPE);
|
||||
registerForIntent(PlayerEventIntent.TYPE);
|
||||
registerForIntent(GalacticPacketIntent.class, gpi -> handleGalacticPacketIntent(gpi));
|
||||
registerForIntent(PersistentMessageIntent.class, pmi -> handlePersistentMessageIntent(pmi));
|
||||
registerForIntent(PlayerEventIntent.class, pei -> handlePlayerEventIntent(pei));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -97,30 +96,12 @@ public class ChatMailService extends Service {
|
||||
return super.terminate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onIntentReceived(Intent i) {
|
||||
switch (i.getType()) {
|
||||
case GalacticPacketIntent.TYPE:
|
||||
if (i instanceof GalacticPacketIntent)
|
||||
processPacket((GalacticPacketIntent) i);
|
||||
break;
|
||||
case PersistentMessageIntent.TYPE:
|
||||
if (i instanceof PersistentMessageIntent)
|
||||
handlePersistentMessageIntent((PersistentMessageIntent) i);
|
||||
break;
|
||||
case PlayerEventIntent.TYPE:
|
||||
if (i instanceof PlayerEventIntent)
|
||||
handlePlayerEventIntent((PlayerEventIntent) i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void handlePlayerEventIntent(PlayerEventIntent intent) {
|
||||
Player player = intent.getPlayer();
|
||||
private void handlePlayerEventIntent(PlayerEventIntent pei) {
|
||||
Player player = pei.getPlayer();
|
||||
if (player == null)
|
||||
return;
|
||||
|
||||
switch (intent.getEvent()) {
|
||||
switch (pei.getEvent()) {
|
||||
case PE_FIRST_ZONE:
|
||||
sendPersistentMessageHeaders(player);
|
||||
break;
|
||||
@@ -129,8 +110,8 @@ public class ChatMailService extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
private void processPacket(GalacticPacketIntent intent) {
|
||||
Packet p = intent.getPacket();
|
||||
private void handleGalacticPacketIntent(GalacticPacketIntent gpi){
|
||||
Packet p = gpi.getPacket();
|
||||
if (!(p instanceof SWGPacket))
|
||||
return;
|
||||
SWGPacket swg = (SWGPacket) p;
|
||||
@@ -139,11 +120,11 @@ public class ChatMailService extends Service {
|
||||
/* Mails */
|
||||
case CHAT_PERSISTENT_MESSAGE_TO_SERVER:
|
||||
if (p instanceof ChatPersistentMessageToServer)
|
||||
handleSendPersistentMessage(intent.getPlayerManager(), intent.getPlayer(), galaxyName, (ChatPersistentMessageToServer) p);
|
||||
handleSendPersistentMessage(gpi.getPlayerManager(), gpi.getPlayer(), galaxyName, (ChatPersistentMessageToServer) p);
|
||||
break;
|
||||
case CHAT_REQUEST_PERSISTENT_MESSAGE:
|
||||
if (p instanceof ChatRequestPersistentMessage)
|
||||
handlePersistentMessageRequest(intent.getPlayer(), galaxyName, (ChatRequestPersistentMessage) p);
|
||||
handlePersistentMessageRequest(gpi.getPlayer(), galaxyName, (ChatRequestPersistentMessage) p);
|
||||
break;
|
||||
case CHAT_DELETE_PERSISTENT_MESSAGE:
|
||||
if (p instanceof ChatDeletePersistentMessage)
|
||||
@@ -188,23 +169,23 @@ public class ChatMailService extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
private void handlePersistentMessageIntent(PersistentMessageIntent intent) {
|
||||
if (intent.getReceiver() == null)
|
||||
private void handlePersistentMessageIntent(PersistentMessageIntent pmi) {
|
||||
if (pmi.getReceiver() == null)
|
||||
return;
|
||||
|
||||
Player recipient = intent.getReceiver().getOwner();
|
||||
Player recipient = pmi.getReceiver().getOwner();
|
||||
|
||||
if (recipient == null)
|
||||
return;
|
||||
|
||||
Mail mail = intent.getMail();
|
||||
Mail mail = pmi.getMail();
|
||||
mail.setId(maxMailId);
|
||||
maxMailId++;
|
||||
mail.setTimestamp((int) (new Date().getTime() / 1000));
|
||||
|
||||
mails.add(mail);
|
||||
|
||||
sendPersistentMessage(recipient, mail, MailFlagType.HEADER_ONLY, intent.getGalaxy());
|
||||
sendPersistentMessage(recipient, mail, MailFlagType.HEADER_ONLY, pmi.getGalaxy());
|
||||
}
|
||||
|
||||
private void handlePersistentMessageRequest(Player player, String galaxy, ChatRequestPersistentMessage request) {
|
||||
|
||||
@@ -27,24 +27,29 @@
|
||||
***********************************************************************************/
|
||||
package services.chat;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Locale;
|
||||
|
||||
import intents.NotifyPlayersPacketIntent;
|
||||
import intents.PlayerEventIntent;
|
||||
import intents.chat.ChatAvatarRequestIntent;
|
||||
import intents.chat.ChatBroadcastIntent;
|
||||
import intents.chat.PersistentMessageIntent;
|
||||
import intents.chat.SpatialChatIntent;
|
||||
import intents.network.GalacticPacketIntent;
|
||||
import intents.server.ServerStatusIntent;
|
||||
import network.packets.Packet;
|
||||
import network.packets.swg.SWGPacket;
|
||||
import network.packets.swg.zone.chat.*;
|
||||
import network.packets.swg.zone.chat.ChatFriendsListUpdate;
|
||||
import network.packets.swg.zone.chat.ChatInstantMessageToCharacter;
|
||||
import network.packets.swg.zone.chat.ChatInstantMessageToClient;
|
||||
import network.packets.swg.zone.chat.ChatOnSendInstantMessage;
|
||||
import network.packets.swg.zone.chat.ChatSystemMessage;
|
||||
import network.packets.swg.zone.chat.ChatSystemMessage.SystemChatType;
|
||||
import network.packets.swg.zone.object_controller.SpatialChat;
|
||||
import resources.Terrain;
|
||||
import resources.chat.ChatAvatar;
|
||||
import resources.chat.ChatResult;
|
||||
import resources.collections.SWGList;
|
||||
import resources.control.Intent;
|
||||
import resources.control.Manager;
|
||||
import resources.encodables.OutOfBandPackage;
|
||||
import resources.encodables.ProsePackage;
|
||||
@@ -58,10 +63,6 @@ import resources.server_info.RelationalServerFactory;
|
||||
import services.CoreManager;
|
||||
import services.player.PlayerManager;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Locale;
|
||||
|
||||
public class ChatManager extends Manager {
|
||||
|
||||
private final ChatRoomService roomService;
|
||||
@@ -78,61 +79,34 @@ public class ChatManager extends Manager {
|
||||
addChildService(roomService);
|
||||
addChildService(mailService);
|
||||
|
||||
registerForIntent(GalacticPacketIntent.TYPE);
|
||||
registerForIntent(SpatialChatIntent.TYPE);
|
||||
registerForIntent(PersistentMessageIntent.TYPE);
|
||||
registerForIntent(PlayerEventIntent.TYPE);
|
||||
registerForIntent(ChatBroadcastIntent.TYPE);
|
||||
registerForIntent(ServerStatusIntent.TYPE);
|
||||
registerForIntent(ChatAvatarRequestIntent.TYPE);
|
||||
registerForIntent(GalacticPacketIntent.class, gpi -> handleGalacticPacketIntent(gpi));
|
||||
registerForIntent(SpatialChatIntent.class, spi -> handleSpatialChatIntent(spi));
|
||||
registerForIntent(PlayerEventIntent.class, pei -> handlePlayerEventIntent(pei));
|
||||
registerForIntent(ChatBroadcastIntent.class, cbi -> handleChatBroadcastIntent(cbi));
|
||||
registerForIntent(ChatAvatarRequestIntent.class, cari -> handleChatAvatarRequestIntent(cari));
|
||||
}
|
||||
|
||||
public void onIntentReceived(Intent i) {
|
||||
switch (i.getType()) {
|
||||
case GalacticPacketIntent.TYPE:
|
||||
if (i instanceof GalacticPacketIntent)
|
||||
processPacket((GalacticPacketIntent) i);
|
||||
break;
|
||||
case SpatialChatIntent.TYPE:
|
||||
if (i instanceof SpatialChatIntent)
|
||||
handleSpatialChat((SpatialChatIntent) i);
|
||||
break;
|
||||
case PlayerEventIntent.TYPE:
|
||||
if (i instanceof PlayerEventIntent)
|
||||
handlePlayerEventIntent((PlayerEventIntent) i);
|
||||
break;
|
||||
case ChatBroadcastIntent.TYPE:
|
||||
if (i instanceof ChatBroadcastIntent)
|
||||
handleChatBroadcast((ChatBroadcastIntent) i);
|
||||
break;
|
||||
case ChatAvatarRequestIntent.TYPE:
|
||||
if (i instanceof ChatAvatarRequestIntent)
|
||||
handleChatAvatarStatusRequestIntent((ChatAvatarRequestIntent) i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void processPacket(GalacticPacketIntent intent) {
|
||||
Packet p = intent.getPacket();
|
||||
private void handleGalacticPacketIntent(GalacticPacketIntent gpi) {
|
||||
Packet p = gpi.getPacket();
|
||||
if (!(p instanceof SWGPacket))
|
||||
return;
|
||||
SWGPacket swg = (SWGPacket) p;
|
||||
switch (swg.getPacketType()) {
|
||||
case CHAT_INSTANT_MESSAGE_TO_CHARACTER:
|
||||
if (p instanceof ChatInstantMessageToCharacter)
|
||||
handleInstantMessage(intent.getPlayerManager(), intent.getPlayer(), (ChatInstantMessageToCharacter) p);
|
||||
handleInstantMessage(gpi.getPlayerManager(), gpi.getPlayer(), (ChatInstantMessageToCharacter) p);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void handlePlayerEventIntent(PlayerEventIntent intent) {
|
||||
Player player = intent.getPlayer();
|
||||
private void handlePlayerEventIntent(PlayerEventIntent pei) {
|
||||
Player player = pei.getPlayer();
|
||||
if (player == null)
|
||||
return;
|
||||
|
||||
switch (intent.getEvent()) {
|
||||
switch (pei.getEvent()) {
|
||||
case PE_FIRST_ZONE:
|
||||
updateChatAvatarStatus(player, true);
|
||||
break;
|
||||
@@ -145,51 +119,51 @@ public class ChatManager extends Manager {
|
||||
}
|
||||
}
|
||||
|
||||
private void handleChatBroadcast(ChatBroadcastIntent i) {
|
||||
switch(i.getBroadcastType()) {
|
||||
private void handleChatBroadcastIntent(ChatBroadcastIntent cbi) {
|
||||
switch(cbi.getBroadcastType()) {
|
||||
case AREA:
|
||||
broadcastAreaMessage(i.getMessage(), i.getBroadcaster());
|
||||
logChat(i.getBroadcaster(), ChatType.SYSTEM, ChatRange.LOCAL, i.getMessage());
|
||||
broadcastAreaMessage(cbi.getMessage(), cbi.getBroadcaster());
|
||||
logChat(cbi.getBroadcaster(), ChatType.SYSTEM, ChatRange.LOCAL, cbi.getMessage());
|
||||
break;
|
||||
case PLANET:
|
||||
broadcastPlanetMessage(i.getMessage(), i.getTerrain());
|
||||
logChat(i.getBroadcaster(), ChatType.SYSTEM, ChatRange.TERRAIN, i.getMessage());
|
||||
broadcastPlanetMessage(cbi.getMessage(), cbi.getTerrain());
|
||||
logChat(cbi.getBroadcaster(), ChatType.SYSTEM, ChatRange.TERRAIN, cbi.getMessage());
|
||||
break;
|
||||
case GALAXY:
|
||||
broadcastGalaxyMessage(i.getMessage());
|
||||
logChat(i.getBroadcaster(), ChatType.SYSTEM, ChatRange.GALAXY, i.getMessage());
|
||||
broadcastGalaxyMessage(cbi.getMessage());
|
||||
logChat(cbi.getBroadcaster(), ChatType.SYSTEM, ChatRange.GALAXY, cbi.getMessage());
|
||||
break;
|
||||
case PERSONAL:
|
||||
broadcastPersonalMessage(i.getProse(), i.getBroadcaster(), i.getMessage());
|
||||
logChat(i.getBroadcaster(), ChatType.SYSTEM, ChatRange.PERSONAL, i.getMessage());
|
||||
broadcastPersonalMessage(cbi.getProse(), cbi.getBroadcaster(), cbi.getMessage());
|
||||
logChat(cbi.getBroadcaster(), ChatType.SYSTEM, ChatRange.PERSONAL, cbi.getMessage());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void handleChatAvatarStatusRequestIntent(ChatAvatarRequestIntent i) {
|
||||
switch (i.getRequestType()) {
|
||||
private void handleChatAvatarRequestIntent(ChatAvatarRequestIntent cari) {
|
||||
switch (cari.getRequestType()) {
|
||||
case TARGET_STATUS: {
|
||||
Player player = i.getPlayer();
|
||||
sendTargetAvatarStatus(player, new ChatAvatar(0, i.getTarget(), CoreManager.getGalaxy().getName()));
|
||||
Player player = cari.getPlayer();
|
||||
sendTargetAvatarStatus(player, new ChatAvatar(0, cari.getTarget(), CoreManager.getGalaxy().getName()));
|
||||
break;
|
||||
}
|
||||
case FRIEND_ADD_TARGET:
|
||||
handleAddFriend(i.getPlayer(), i.getTarget());
|
||||
handleAddFriend(cari.getPlayer(), cari.getTarget());
|
||||
break;
|
||||
case FRIEND_REMOVE_TARGET:
|
||||
handleRemoveFriend(i.getPlayer(), i.getTarget());
|
||||
handleRemoveFriend(cari.getPlayer(), cari.getTarget());
|
||||
break;
|
||||
case FRIEND_LIST:
|
||||
handleRequestFriendList(i.getPlayer());
|
||||
handleRequestFriendList(cari.getPlayer());
|
||||
break;
|
||||
case IGNORE_REMOVE_TARGET:
|
||||
handleRemoveIgnored(i.getPlayer(), i.getTarget());
|
||||
handleRemoveIgnored(cari.getPlayer(), cari.getTarget());
|
||||
break;
|
||||
case IGNORE_ADD_TARGET:
|
||||
handleAddIgnored(i.getPlayer(), i.getTarget());
|
||||
handleAddIgnored(cari.getPlayer(), cari.getTarget());
|
||||
break;
|
||||
case IGNORE_LIST:
|
||||
handleRequestIgnoreList(i.getPlayer());
|
||||
handleRequestIgnoreList(cari.getPlayer());
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -305,14 +279,14 @@ public class ChatManager extends Manager {
|
||||
new ChatBroadcastIntent(player, new ProsePackage("StringId", stringId, "TT", target)).broadcast();
|
||||
}
|
||||
|
||||
private void handleSpatialChat(SpatialChatIntent i) {
|
||||
Player sender = i.getPlayer();
|
||||
private void handleSpatialChatIntent(SpatialChatIntent spi) {
|
||||
Player sender = spi.getPlayer();
|
||||
SWGObject actor = sender.getCreatureObject();
|
||||
|
||||
// Send to self
|
||||
SpatialChat message = new SpatialChat(actor.getObjectId(), actor.getObjectId(), 0, i.getMessage(), (short) i.getChatType(), (short) i.getMoodId());
|
||||
SpatialChat message = new SpatialChat(actor.getObjectId(), actor.getObjectId(), 0, spi.getMessage(), (short) spi.getChatType(), (short) spi.getMoodId());
|
||||
sender.sendPacket(message);
|
||||
logChat(sender, ChatType.SPATIAL, ChatRange.LOCAL, i.getMessage());
|
||||
logChat(sender, ChatType.SPATIAL, ChatRange.LOCAL, spi.getMessage());
|
||||
|
||||
String senderName = ChatAvatar.getFromPlayer(sender).getName();
|
||||
|
||||
|
||||
@@ -114,9 +114,9 @@ public class ChatRoomService extends Service {
|
||||
insertChatLog = chatLogs.prepareStatement("INSERT INTO chat_log VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
||||
maxChatRoomId = 1;
|
||||
|
||||
registerForIntent(ChatRoomUpdateIntent.TYPE);
|
||||
registerForIntent(GalacticPacketIntent.TYPE);
|
||||
registerForIntent(PlayerEventIntent.TYPE);
|
||||
registerForIntent(ChatRoomUpdateIntent.class, crui -> handleChatRoomUpdateIntent(crui));
|
||||
registerForIntent(GalacticPacketIntent.class, gpi -> handleGalacticPacketIntent(gpi));
|
||||
registerForIntent(PlayerEventIntent.class, pei -> handlePlayerEventIntent(pei));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -138,28 +138,10 @@ public class ChatRoomService extends Service {
|
||||
return super.terminate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onIntentReceived(Intent i) {
|
||||
switch(i.getType()) {
|
||||
case ChatRoomUpdateIntent.TYPE:
|
||||
if (i instanceof ChatRoomUpdateIntent)
|
||||
processChatRoomUpdateIntent((ChatRoomUpdateIntent) i);
|
||||
break;
|
||||
case GalacticPacketIntent.TYPE:
|
||||
if (i instanceof GalacticPacketIntent)
|
||||
processPacket((GalacticPacketIntent) i);
|
||||
break;
|
||||
case PlayerEventIntent.TYPE:
|
||||
if (i instanceof PlayerEventIntent)
|
||||
handlePlayerEventIntent((PlayerEventIntent) i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void processPacket(GalacticPacketIntent intent) {
|
||||
Packet p = intent.getPacket();
|
||||
private void handleGalacticPacketIntent(GalacticPacketIntent gpi) {
|
||||
Packet p = gpi.getPacket();
|
||||
if (p instanceof SWGPacket)
|
||||
processSwgPacket(intent.getPlayer(), (SWGPacket) p);
|
||||
processSwgPacket(gpi.getPlayer(), (SWGPacket) p);
|
||||
}
|
||||
|
||||
private void processSwgPacket(Player player, SWGPacket p) {
|
||||
@@ -212,12 +194,12 @@ public class ChatRoomService extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
private void handlePlayerEventIntent(PlayerEventIntent intent) {
|
||||
Player player = intent.getPlayer();
|
||||
private void handlePlayerEventIntent(PlayerEventIntent pei) {
|
||||
Player player = pei.getPlayer();
|
||||
if (player == null)
|
||||
return;
|
||||
|
||||
switch (intent.getEvent()) {
|
||||
switch (pei.getEvent()) {
|
||||
case PE_ZONE_IN_SERVER:
|
||||
enterPlanetaryChatChannels(player);
|
||||
break;
|
||||
@@ -230,13 +212,13 @@ public class ChatRoomService extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
private void processChatRoomUpdateIntent(ChatRoomUpdateIntent i) {
|
||||
switch(i.getUpdateType()) {
|
||||
case CREATE: createRoom(i.getAvatar(), i.isPublic(), i.getPath(), i.getTitle()); break;
|
||||
case DESTROY: notifyDestroyRoom(i.getAvatar(), i.getPath(), 0); break;
|
||||
case JOIN: enterChatChannel(i.getPlayer(), i.getPath(), i.isIgnoreInvitation()); break;
|
||||
case LEAVE: leaveChatChannel(i.getPlayer(), i.getPath()); break;
|
||||
case SEND_MESSAGE: sendMessageToRoom(i.getPlayer(), getRoom(i.getPath()), 0, i.getMessage(), new OutOfBandPackage()); break;
|
||||
private void handleChatRoomUpdateIntent(ChatRoomUpdateIntent crui) {
|
||||
switch(crui.getUpdateType()) {
|
||||
case CREATE: createRoom(crui.getAvatar(), crui.isPublic(), crui.getPath(), crui.getTitle()); break;
|
||||
case DESTROY: notifyDestroyRoom(crui.getAvatar(), crui.getPath(), 0); break;
|
||||
case JOIN: enterChatChannel(crui.getPlayer(), crui.getPath(), crui.isIgnoreInvitation()); break;
|
||||
case LEAVE: leaveChatChannel(crui.getPlayer(), crui.getPath()); break;
|
||||
case SEND_MESSAGE: sendMessageToRoom(crui.getPlayer(), getRoom(crui.getPath()), 0, crui.getMessage(), new OutOfBandPackage()); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,6 @@ import intents.network.ConnectionOpenedIntent;
|
||||
import intents.network.GalacticPacketIntent;
|
||||
import intents.network.InboundPacketIntent;
|
||||
import resources.control.Assert;
|
||||
import resources.control.Intent;
|
||||
import resources.control.Manager;
|
||||
import resources.player.Player;
|
||||
import resources.server_info.SynchronizedMap;
|
||||
@@ -76,9 +75,9 @@ public class GalacticManager extends Manager {
|
||||
addChildService(developerService);
|
||||
addChildService(uniformBox);
|
||||
|
||||
registerForIntent(InboundPacketIntent.TYPE);
|
||||
registerForIntent(ConnectionOpenedIntent.TYPE);
|
||||
registerForIntent(ConnectionClosedIntent.TYPE);
|
||||
registerForIntent(InboundPacketIntent.class, ipi -> handleInboundPacketIntent(ipi));
|
||||
registerForIntent(ConnectionOpenedIntent.class, coi -> handleConnectionOpenedIntent(coi));
|
||||
registerForIntent(ConnectionClosedIntent.class, cci -> handleConnectionClosedIntent(cci));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -87,21 +86,22 @@ public class GalacticManager extends Manager {
|
||||
return super.initialize();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onIntentReceived(Intent i) {
|
||||
if (i instanceof InboundPacketIntent) {
|
||||
Player player = playerManager.getPlayerFromNetworkId(((InboundPacketIntent) i).getNetworkId());
|
||||
Assert.notNull(player);
|
||||
GalacticPacketIntent g = new GalacticPacketIntent(((InboundPacketIntent) i).getPacket(), player);
|
||||
g.setGalacticManager(this);
|
||||
prevIntentMap.get(player.getNetworkId()).broadcastAfter(g);
|
||||
} else if (i instanceof ConnectionClosedIntent) {
|
||||
prevIntentMap.remove(((ConnectionClosedIntent) i).getNetworkId()).reset();
|
||||
} else if (i instanceof ConnectionOpenedIntent) {
|
||||
IntentChain chain = new IntentChain();
|
||||
chain.waitUntilComplete(i);
|
||||
prevIntentMap.put(((ConnectionOpenedIntent) i).getNetworkId(), chain);
|
||||
}
|
||||
private void handleInboundPacketIntent(InboundPacketIntent ipi){
|
||||
Player player = playerManager.getPlayerFromNetworkId(((InboundPacketIntent) ipi).getNetworkId());
|
||||
Assert.notNull(player);
|
||||
GalacticPacketIntent g = new GalacticPacketIntent(((InboundPacketIntent) ipi).getPacket(), player);
|
||||
g.setGalacticManager(this);
|
||||
prevIntentMap.get(player.getNetworkId()).broadcastAfter(g);
|
||||
}
|
||||
|
||||
private void handleConnectionOpenedIntent(ConnectionOpenedIntent coi){
|
||||
IntentChain chain = new IntentChain();
|
||||
chain.waitUntilComplete(coi);
|
||||
prevIntentMap.put(((ConnectionOpenedIntent) coi).getNetworkId(), chain);
|
||||
}
|
||||
|
||||
private void handleConnectionClosedIntent(ConnectionClosedIntent cci){
|
||||
prevIntentMap.remove(((ConnectionClosedIntent) cci).getNetworkId()).reset();
|
||||
}
|
||||
|
||||
public ObjectManager getObjectManager() {
|
||||
|
||||
Reference in New Issue
Block a user