From 9e8af9b0bb9096bcd2aa78d00a15a497b1ad9e7a Mon Sep 17 00:00:00 2001 From: tacef ine Date: Wed, 25 Jan 2017 19:54:29 +0100 Subject: [PATCH] Refactored a few more Services to use the new Intentsystem --- src/services/CoreManager.java | 47 ++++--------- .../collections/CollectionBadgeManager.java | 27 ++++---- .../collections/CollectionService.java | 43 ++++++------ .../collections/ExplorationBadgeService.java | 22 +++--- .../network/InboundNetworkManager.java | 8 +-- .../network/NetworkClientManager.java | 24 ++----- .../network/OutboundNetworkManager.java | 14 ++-- src/services/objects/RadialService.java | 55 +++++++-------- src/services/objects/StaticItemService.java | 45 +++++------- src/services/objects/UniformBoxService.java | 21 ++---- src/services/player/PlayerManager.java | 29 +++----- src/services/spawn/SpawnerService.java | 37 ++++------ src/services/sui/SuiService.java | 69 ++++++++----------- 13 files changed, 168 insertions(+), 273 deletions(-) diff --git a/src/services/CoreManager.java b/src/services/CoreManager.java index 2e7995885..40de4c5f9 100644 --- a/src/services/CoreManager.java +++ b/src/services/CoreManager.java @@ -34,23 +34,22 @@ import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.time.OffsetTime; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; -import network.packets.Packet; -import network.packets.swg.zone.baselines.Baseline; -import network.packets.swg.zone.deltas.DeltasMessage; -import network.packets.swg.zone.object_controller.ObjectController; import intents.network.InboundPacketIntent; import intents.network.OutboundPacketIntent; import intents.server.ServerManagementIntent; import intents.server.ServerStatusIntent; -import java.time.OffsetTime; +import network.packets.Packet; +import network.packets.swg.zone.baselines.Baseline; +import network.packets.swg.zone.deltas.DeltasMessage; +import network.packets.swg.zone.object_controller.ObjectController; import resources.Galaxy; import resources.Galaxy.GalaxyStatus; import resources.config.ConfigFile; -import resources.control.Intent; import resources.control.Manager; import resources.control.ServerStatus; import resources.server_info.Config; @@ -95,9 +94,9 @@ public class CoreManager extends Manager { addChildService(engineManager); addChildService(galacticManager); - registerForIntent(InboundPacketIntent.TYPE); - registerForIntent(OutboundPacketIntent.TYPE); - registerForIntent(ServerManagementIntent.TYPE); + registerForIntent(InboundPacketIntent.class, ipi -> handleInboundPacketIntent(ipi)); + registerForIntent(OutboundPacketIntent.class, opi -> handleOutboundPacketIntent(opi)); + registerForIntent(ServerManagementIntent.class, smi -> handleServerManagementIntent(smi)); } /** @@ -138,39 +137,23 @@ public class CoreManager extends Manager { return super.terminate(); } - @Override - public void onIntentReceived(Intent i) { - switch (i.getType()) { - case ServerManagementIntent.TYPE: - if (i instanceof ServerManagementIntent) - handleServerManagementIntent((ServerManagementIntent) i); - break; - case InboundPacketIntent.TYPE: - handleInboundPacketIntent((InboundPacketIntent) i); - break; - case OutboundPacketIntent.TYPE: - handleOutboundPacketIntent((OutboundPacketIntent) i); - break; - } - } - - private void handleServerManagementIntent(ServerManagementIntent i) { - switch(i.getEvent()) { - case SHUTDOWN: initiateShutdownSequence(i); break; + private void handleServerManagementIntent(ServerManagementIntent smi) { + switch(smi.getEvent()) { + case SHUTDOWN: initiateShutdownSequence(smi); break; default: break; } } - private void handleInboundPacketIntent(InboundPacketIntent i) { + private void handleInboundPacketIntent(InboundPacketIntent ipi) { if (!packetDebug) return; - printPacketStream(true, i.getNetworkId(), createExtendedPacketInformation(i.getPacket())); + printPacketStream(true, ipi.getNetworkId(), createExtendedPacketInformation(ipi.getPacket())); } - private void handleOutboundPacketIntent(OutboundPacketIntent i) { + private void handleOutboundPacketIntent(OutboundPacketIntent opi) { if (!packetDebug) return; - printPacketStream(false, i.getNetworkId(), createExtendedPacketInformation(i.getPacket())); + printPacketStream(false, opi.getNetworkId(), createExtendedPacketInformation(opi.getPacket())); } private void printPacketStream(boolean in, long networkId, String str) { diff --git a/src/services/collections/CollectionBadgeManager.java b/src/services/collections/CollectionBadgeManager.java index d11125ac7..016170a00 100644 --- a/src/services/collections/CollectionBadgeManager.java +++ b/src/services/collections/CollectionBadgeManager.java @@ -67,23 +67,22 @@ public class CollectionBadgeManager extends Manager { addChildService(explorationBadgeService); - registerForIntent(GrantBadgeIntent.TYPE); - registerForIntent(GrantClickyCollectionIntent.TYPE); + registerForIntent(GrantBadgeIntent.class, gbi -> handleGrantBadgeIntent(gbi)); + registerForIntent(GrantClickyCollectionIntent.class, gcci -> handleGrantClickyCollectionIntent(gcci)); } - @Override - public void onIntentReceived(Intent i) { - if (i instanceof GrantBadgeIntent) { - handleCollectionBadge(((GrantBadgeIntent) i).getCreature(), ((GrantBadgeIntent) i).getCollectionBadgeName()); - } else if (i instanceof GrantClickyCollectionIntent) { - CreatureObject creo = ((GrantClickyCollectionIntent) i).getCreature(); - SWGObject inventoryItem = ((GrantClickyCollectionIntent) i).getInventoryItem(); - CollectionItem collection = ((GrantClickyCollectionIntent) i).getCollection(); + private void handleGrantClickyCollectionIntent(GrantClickyCollectionIntent gcci){ + CreatureObject creo = ((GrantClickyCollectionIntent) gcci).getCreature(); + SWGObject inventoryItem = ((GrantClickyCollectionIntent) gcci).getInventoryItem(); + CollectionItem collection = ((GrantClickyCollectionIntent) gcci).getCollection(); - handleCollectionBadge(creo, inventoryItem, collection); - } + handleCollectionBadge(creo, inventoryItem, collection); } - + + private void handleGrantBadgeIntent(GrantBadgeIntent gbi){ + handleCollectionBadge(gbi.getCreature(), gbi.getCollectionBadgeName()); + } + public void grantBadge(PlayerObject player, int beginSlotId, String collectionName, boolean isHidden, String slotName) { BitSet collections = BitSet.valueOf(player.getCollectionBadges()); @@ -174,7 +173,9 @@ public class CollectionBadgeManager extends Manager { checkBadgeBookCount(player, "badge_book", badgeInformation.bookBadgeCount); checkExplorerBadgeCount(player, "bdg_explore", badgeInformation.pageBadgeCount); } + + private void checkBadgeBookCount(PlayerObject player, String collectionName, int badgeCount) { String slotName = ""; diff --git a/src/services/collections/CollectionService.java b/src/services/collections/CollectionService.java index 0d3d9bd3a..a37366556 100644 --- a/src/services/collections/CollectionService.java +++ b/src/services/collections/CollectionService.java @@ -79,33 +79,32 @@ public class CollectionService extends Service { registerClickyCollectionItems(); registerConsumeCollectionItems(); - registerForIntent(RadialRequestIntent.TYPE); - registerForIntent(RadialSelectionIntent.TYPE); + registerForIntent(RadialRequestIntent.class, rri -> handleRadialRequestIntent(rri)); + registerForIntent(RadialSelectionIntent.class, rsi -> handleRadialSelectionIntent(rsi)); } + + private void handleRadialRequestIntent(RadialRequestIntent rri){ + String iff = rri.getTarget().getTemplate(); + String itemName = rri.getTarget().getStringId().getKey(); - @Override - public void onIntentReceived(Intent i) { - if (i instanceof RadialRequestIntent) { - String iff = ((RadialRequestIntent) i).getTarget().getTemplate(); - String itemName = ((RadialRequestIntent) i).getTarget().getStringId().getKey(); - - if (isClickyCollectionItem(iff) || isConsumeCollectionItem(itemName, iff)) { - RadialRequestIntent rri = (RadialRequestIntent) i; - List options = new ArrayList(rri.getRequest().getOptions()); - options.addAll(Radials.getRadialOptions("collection/world_item", rri.getPlayer(), rri.getTarget())); - new RadialResponseIntent(rri.getPlayer(), rri.getTarget(), options, rri.getRequest().getCounter()).broadcast(); - } - } else if (i instanceof RadialSelectionIntent) { - String iff = ((RadialSelectionIntent) i).getTarget().getTemplate(); - String itemName = ((RadialSelectionIntent) i).getTarget().getStringId().getKey(); - boolean isClicky = isClickyCollectionItem(iff); - - if (isClicky || isConsumeCollectionItem(itemName, iff)) { - new GrantClickyCollectionIntent(((RadialSelectionIntent) i).getPlayer().getCreatureObject(), ((RadialSelectionIntent) i).getTarget(), getCollectionDetails(iff, isClicky)).broadcast(); - } + if (isClickyCollectionItem(iff) || isConsumeCollectionItem(itemName, iff)) { + RadialRequestIntent i = (RadialRequestIntent) rri; + List options = new ArrayList(i.getRequest().getOptions()); + options.addAll(Radials.getRadialOptions("collection/world_item", i.getPlayer(), i.getTarget())); + new RadialResponseIntent(i.getPlayer(), i.getTarget(), options, i.getRequest().getCounter()).broadcast(); } } + private void handleRadialSelectionIntent(RadialSelectionIntent rsi){ + String iff = rsi.getTarget().getTemplate(); + String itemName = rsi.getTarget().getStringId().getKey(); + boolean isClicky = isClickyCollectionItem(iff); + + if (isClicky || isConsumeCollectionItem(itemName, iff)) { + new GrantClickyCollectionIntent(rsi.getPlayer().getCreatureObject(), rsi.getTarget(), getCollectionDetails(iff, isClicky)).broadcast(); + } + } + private void registerClickyCollectionItems() { try (ResultSet set = clickyDatabase.executeQuery(GET_CLICKY_COLLECTION_ITEMS_SQL)) { while (set.next()) { diff --git a/src/services/collections/ExplorationBadgeService.java b/src/services/collections/ExplorationBadgeService.java index cbdf356ae..0c791439d 100644 --- a/src/services/collections/ExplorationBadgeService.java +++ b/src/services/collections/ExplorationBadgeService.java @@ -30,17 +30,14 @@ package services.collections; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; +import java.util.TreeMap; import intents.GrantBadgeIntent; import intents.player.PlayerTransformedIntent; - -import java.util.Locale; -import java.util.TreeMap; - import resources.Point3D; -import resources.control.Intent; import resources.control.Service; import resources.objects.creature.CreatureObject; import resources.server_info.Log; @@ -54,16 +51,13 @@ public class ExplorationBadgeService extends Service { public ExplorationBadgeService(){ registerExplorationBadge(); - registerForIntent(PlayerTransformedIntent.TYPE); + registerForIntent(PlayerTransformedIntent.class, pti -> handlePlayerTransformedIntent(pti)); } - - @Override - public void onIntentReceived(Intent i) { - if (i instanceof PlayerTransformedIntent) { - String badgeName = checkExplorationRegions(((PlayerTransformedIntent) i).getPlayer()); - if (badgeName != null){ - new GrantBadgeIntent(((PlayerTransformedIntent) i).getPlayer(), badgeName).broadcast(); - } + + private void handlePlayerTransformedIntent(PlayerTransformedIntent pti){ + String badgeName = checkExplorationRegions(((PlayerTransformedIntent) pti).getPlayer()); + if (badgeName != null){ + new GrantBadgeIntent(pti.getPlayer(), badgeName).broadcast(); } } diff --git a/src/services/network/InboundNetworkManager.java b/src/services/network/InboundNetworkManager.java index fe4fa76c0..777b1f2ec 100644 --- a/src/services/network/InboundNetworkManager.java +++ b/src/services/network/InboundNetworkManager.java @@ -41,13 +41,11 @@ public class InboundNetworkManager extends Service { public InboundNetworkManager(ClientManager clientManager) { this.clientManager = clientManager; - registerForIntent(InboundPacketPendingIntent.TYPE); + registerForIntent(InboundPacketPendingIntent.class, ippi -> handleInboundPacketPendingIntent(ippi)); } - @Override - public void onIntentReceived(Intent i) { - if (i instanceof InboundPacketPendingIntent) - handlePacketPending(((InboundPacketPendingIntent) i).getClient()); + private void handleInboundPacketPendingIntent(InboundPacketPendingIntent ippi){ + handlePacketPending(ippi.getClient()); } public void onInboundData(InetSocketAddress addr, byte [] data) { diff --git a/src/services/network/NetworkClientManager.java b/src/services/network/NetworkClientManager.java index d0cb2abb5..3befbaaa9 100644 --- a/src/services/network/NetworkClientManager.java +++ b/src/services/network/NetworkClientManager.java @@ -27,18 +27,16 @@ ***********************************************************************************/ package services.network; -import intents.network.CloseConnectionIntent; - import java.io.IOException; import java.net.BindException; import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketAddress; +import intents.network.CloseConnectionIntent; import network.NetworkClient; import network.packets.swg.holo.HoloConnectionStopped.ConnectionStoppedReason; import resources.config.ConfigFile; -import resources.control.Intent; import resources.control.Manager; import resources.network.DisconnectReason; import resources.network.TCPServer; @@ -61,7 +59,7 @@ public class NetworkClientManager extends Manager implements TCPCallback { addChildService(inboundManager); addChildService(outboundManager); - registerForIntent(CloseConnectionIntent.TYPE); + registerForIntent(CloseConnectionIntent.class, cci -> handleCloseConnectionIntent(cci)); } @Override @@ -83,21 +81,11 @@ public class NetworkClientManager extends Manager implements TCPCallback { tcpServer.close(); return super.stop(); } - - @Override - public void onIntentReceived(Intent i) { - switch (i.getType()) { - case CloseConnectionIntent.TYPE: - if (i instanceof CloseConnectionIntent) - processCloseConnectionIntent((CloseConnectionIntent) i); - break; - } - } - - private void processCloseConnectionIntent(CloseConnectionIntent i) { - NetworkClient client = clientManager.getClient(i.getNetworkId()); + + private void handleCloseConnectionIntent(CloseConnectionIntent ccii) { + NetworkClient client = clientManager.getClient(ccii.getNetworkId()); if (client != null) - onSessionDisconnect(client.getAddress(), getHolocoreReason(i.getDisconnectReason())); + onSessionDisconnect(client.getAddress(), getHolocoreReason(ccii.getDisconnectReason())); } private ConnectionStoppedReason getHolocoreReason(DisconnectReason reason) { diff --git a/src/services/network/OutboundNetworkManager.java b/src/services/network/OutboundNetworkManager.java index e5ce63657..d2248f543 100644 --- a/src/services/network/OutboundNetworkManager.java +++ b/src/services/network/OutboundNetworkManager.java @@ -44,17 +44,13 @@ public class OutboundNetworkManager extends Service { this.sender = new PacketSender(server); this.clientManager = clientManager; - registerForIntent(OutboundPacketIntent.TYPE); + registerForIntent(OutboundPacketIntent.class, opi -> handleOutboundPacketIntent(opi)); } - @Override - public void onIntentReceived(Intent i) { - if (i instanceof OutboundPacketIntent) { - OutboundPacketIntent opi = (OutboundPacketIntent) i; - NetworkClient client = clientManager.getClient(opi.getNetworkId()); - Assert.notNull(client); - client.addToOutbound(opi.getPacket()); - } + private void handleOutboundPacketIntent(OutboundPacketIntent opi){ + NetworkClient client = clientManager.getClient(opi.getNetworkId()); + Assert.notNull(client); + client.addToOutbound(opi.getPacket()); } public void onSessionCreated(NetworkClient client) { diff --git a/src/services/objects/RadialService.java b/src/services/objects/RadialService.java index e31f05fec..8aec5fde1 100644 --- a/src/services/objects/RadialService.java +++ b/src/services/objects/RadialService.java @@ -31,17 +31,16 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import resources.control.Intent; -import resources.control.Service; -import network.packets.Packet; -import network.packets.swg.zone.ObjectMenuSelect; -import network.packets.swg.zone.object_controller.ObjectMenuRequest; -import network.packets.swg.zone.object_controller.ObjectMenuResponse; import intents.network.GalacticPacketIntent; import intents.radial.RadialRegisterIntent; import intents.radial.RadialRequestIntent; import intents.radial.RadialResponseIntent; import intents.radial.RadialSelectionIntent; +import network.packets.Packet; +import network.packets.swg.zone.ObjectMenuSelect; +import network.packets.swg.zone.object_controller.ObjectMenuRequest; +import network.packets.swg.zone.object_controller.ObjectMenuResponse; +import resources.control.Service; import resources.objects.SWGObject; import resources.objects.creature.CreatureObject; import resources.player.Player; @@ -57,34 +56,30 @@ public class RadialService extends Service { public RadialService() { templatesRegistered = new HashSet<>(); - registerForIntent(GalacticPacketIntent.TYPE); - registerForIntent(RadialResponseIntent.TYPE); - registerForIntent(RadialRegisterIntent.TYPE); + registerForIntent(GalacticPacketIntent.class, gpi -> handleGalacticPacketIntent(gpi)); + registerForIntent(RadialResponseIntent.class, rri -> handleRadialResponseIntent(rri)); + registerForIntent(RadialRegisterIntent.class, rrei -> handleRadialRegisterIntent(rrei)); } - @Override - public void onIntentReceived(Intent i) { - if (i instanceof GalacticPacketIntent) { - GalacticPacketIntent gpi = (GalacticPacketIntent) i; - Packet p = gpi.getPacket(); - if (p instanceof ObjectMenuRequest) { - onRequest(gpi.getObjectManager(), (ObjectMenuRequest) p); - } else if (p instanceof ObjectMenuSelect) { - onSelection(gpi.getGalacticManager(), gpi.getPlayer(), (ObjectMenuSelect) p); - } - } else if (i instanceof RadialResponseIntent) { - onResponse((RadialResponseIntent) i); - } else if (i instanceof RadialRegisterIntent) { - synchronized (templatesRegistered) { - if (((RadialRegisterIntent) i).isRegister()) { - templatesRegistered.addAll(((RadialRegisterIntent) i).getTemplates()); - } else { - templatesRegistered.removeAll(((RadialRegisterIntent) i).getTemplates()); - } + private void handleGalacticPacketIntent(GalacticPacketIntent gpi){ + Packet p = gpi.getPacket(); + if (p instanceof ObjectMenuRequest) { + onRequest(gpi.getObjectManager(), (ObjectMenuRequest) p); + } else if (p instanceof ObjectMenuSelect) { + onSelection(gpi.getGalacticManager(), gpi.getPlayer(), (ObjectMenuSelect) p); + } + } + + private void handleRadialRegisterIntent(RadialRegisterIntent rrei){ + synchronized (templatesRegistered) { + if (rrei.isRegister()) { + templatesRegistered.addAll(rrei.getTemplates()); + } else { + templatesRegistered.removeAll(rrei.getTemplates()); } } } - + private void onRequest(ObjectManager objectManager, ObjectMenuRequest request) { SWGObject requestor = objectManager.getObjectById(request.getRequestorId()); SWGObject target = objectManager.getObjectById(request.getTargetId()); @@ -103,7 +98,7 @@ public class RadialService extends Service { new RadialRequestIntent(player, target, request).broadcast(); } - private void onResponse(RadialResponseIntent response) { + private void handleRadialResponseIntent(RadialResponseIntent response) { Player player = response.getPlayer(); sendResponse(player, response.getTarget(), response.getOptions(), response.getCounter()); } diff --git a/src/services/objects/StaticItemService.java b/src/services/objects/StaticItemService.java index f3284b53b..0206ae76c 100644 --- a/src/services/objects/StaticItemService.java +++ b/src/services/objects/StaticItemService.java @@ -27,21 +27,19 @@ ***********************************************************************************/ package services.objects; -import intents.chat.ChatBroadcastIntent; -import intents.object.ObjectCreatedIntent; -import intents.object.CreateStaticItemIntent; -import intents.server.ConfigChangedIntent; - import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; -import network.packets.swg.zone.object_controller.ShowLootBox; +import intents.chat.ChatBroadcastIntent; +import intents.object.CreateStaticItemIntent; +import intents.object.ObjectCreatedIntent; +import intents.server.ConfigChangedIntent; +import network.packets.swg.zone.object_controller.ShowLootBox; import resources.client_info.ClientFactory; import resources.combat.DamageType; import resources.config.ConfigFile; -import resources.control.Intent; import resources.control.Service; import resources.objects.SWGObject; import resources.objects.creature.CreatureObject; @@ -68,7 +66,8 @@ public final class StaticItemService extends Service { StaticItemService() { objectAttributesMap = new HashMap<>(); - registerForIntent(ConfigChangedIntent.TYPE); + registerForIntent(CreateStaticItemIntent.class, csii -> handleCreateStaticItemIntent(csii)); + registerForIntent(ConfigChangedIntent.class, cci -> handleConfigChangedIntent(cci)); } @Override @@ -83,25 +82,13 @@ public final class StaticItemService extends Service { } } - @Override - public void onIntentReceived(Intent i) { - switch (i.getType()) { - case CreateStaticItemIntent.TYPE: - handleSpawnItemIntent((CreateStaticItemIntent) i); - break; - case ConfigChangedIntent.TYPE: - handleConfigChangedIntent((ConfigChangedIntent) i); - break; - } - } - /** * Static items can be loaded/unloaded at runtime. */ - private void handleConfigChangedIntent(ConfigChangedIntent i) { - if (i.getKey().equals(CONFIG_OPTION_NAME)) { - boolean oldValue = Boolean.valueOf(i.getOldValue()); - boolean newValue = Boolean.valueOf(i.getNewValue()); + private void handleConfigChangedIntent(ConfigChangedIntent cci) { + if (cci.getKey().equals(CONFIG_OPTION_NAME)) { + boolean oldValue = Boolean.valueOf(cci.getOldValue()); + boolean newValue = Boolean.valueOf(cci.getNewValue()); if (newValue != oldValue) { // If the value has changed if (newValue) { // If the new value is to enable static items @@ -171,11 +158,11 @@ public final class StaticItemService extends Service { Log.i(this, "Static items have been disabled"); } - private void handleSpawnItemIntent(CreateStaticItemIntent i) { - SWGObject container = i.getContainer(); - String[] itemNames = i.getItemNames(); - Player requesterOwner = i.getRequester().getOwner(); - ObjectCreationHandler objectCreationHandler = i.getObjectCreationHandler(); + private void handleCreateStaticItemIntent(CreateStaticItemIntent cssi) { + SWGObject container = cssi.getContainer(); + String[] itemNames = cssi.getItemNames(); + Player requesterOwner = cssi.getRequester().getOwner(); + ObjectCreationHandler objectCreationHandler = cssi.getObjectCreationHandler(); // If adding these items to the container would exceed the max capacity... if(!objectCreationHandler.isIgnoreVolume() && container.getVolume() + itemNames.length > container.getMaxContainerSize()) { diff --git a/src/services/objects/UniformBoxService.java b/src/services/objects/UniformBoxService.java index 3baf706d4..4f6b05368 100644 --- a/src/services/objects/UniformBoxService.java +++ b/src/services/objects/UniformBoxService.java @@ -27,20 +27,15 @@ ***********************************************************************************/ package services.objects; - -import intents.object.CreateStaticItemIntent; - import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; - -import intents.object.DestroyObjectIntent; -import intents.radial.RadialSelectionIntent; - import java.util.ArrayList; import java.util.Collection; -import resources.control.Intent; +import intents.object.CreateStaticItemIntent; +import intents.object.DestroyObjectIntent; +import intents.radial.RadialSelectionIntent; import resources.control.Service; import resources.objects.SWGObject; import resources.objects.creature.CreatureObject; @@ -66,13 +61,7 @@ public class UniformBoxService extends Service { getUniformBoxStatement = uniformBoxDatabase.prepareStatement(GET_UNIFORMBOX_SQL); - registerForIntent(RadialSelectionIntent.TYPE); - } - - @Override - public void onIntentReceived(Intent i) { - if (i instanceof RadialSelectionIntent) - processUseUniformBox((RadialSelectionIntent) i); + registerForIntent(RadialSelectionIntent.class, rsi -> handleRadialSelectionIntent(rsi)); } @Override @@ -81,7 +70,7 @@ public class UniformBoxService extends Service { return super.terminate(); } - private void processUseUniformBox(RadialSelectionIntent rsi) { + private void handleRadialSelectionIntent(RadialSelectionIntent rsi) { if (!rsi.getTarget().getTemplate().equals(UNIFORM_BOX_IFF)) return; diff --git a/src/services/player/PlayerManager.java b/src/services/player/PlayerManager.java index d82b7d663..9ab9c8188 100644 --- a/src/services/player/PlayerManager.java +++ b/src/services/player/PlayerManager.java @@ -32,19 +32,18 @@ import java.util.Locale; import java.util.Map; import java.util.function.BiConsumer; -import network.packets.Packet; import intents.NotifyPlayersPacketIntent; import intents.PlayerEventIntent; import intents.network.ConnectionClosedIntent; import intents.network.ConnectionOpenedIntent; +import network.packets.Packet; import resources.Terrain; import resources.control.Assert; -import resources.control.Intent; import resources.control.Manager; import resources.player.Player; +import resources.player.Player.PlayerServer; import resources.player.PlayerEvent; import resources.player.PlayerState; -import resources.player.Player.PlayerServer; import resources.server_info.SynchronizedMap; import services.CoreManager; @@ -62,21 +61,11 @@ public class PlayerManager extends Manager { addChildService(loginService); addChildService(zoneService); - registerForIntent(NotifyPlayersPacketIntent.TYPE); - registerForIntent(ConnectionOpenedIntent.TYPE); - registerForIntent(ConnectionClosedIntent.TYPE); + registerForIntent(NotifyPlayersPacketIntent.class, nppi -> handleNotifyPlayersPacketIntent(nppi)); + registerForIntent(ConnectionOpenedIntent.class, coi -> handleConnectionOpenedIntent(coi)); + registerForIntent(ConnectionClosedIntent.class, cci -> handleConnectionClosedIntent(cci)); } - - @Override - public void onIntentReceived(Intent i) { - if (i instanceof NotifyPlayersPacketIntent) - onNotifyPlayersPacketIntent((NotifyPlayersPacketIntent) i); - else if (i instanceof ConnectionOpenedIntent) - onConnectionOpenedIntent((ConnectionOpenedIntent) i); - else if (i instanceof ConnectionClosedIntent) - onConnectionClosedIntent((ConnectionClosedIntent) i); - } - + public boolean playerExists(String name) { return zoneService.characterExistsForName(name); } @@ -206,7 +195,7 @@ public class PlayerManager extends Manager { return players.get(networkId); } - private void onNotifyPlayersPacketIntent(NotifyPlayersPacketIntent nppi) { + private void handleNotifyPlayersPacketIntent(NotifyPlayersPacketIntent nppi) { if (nppi.getNetworkIds() != null) { if (nppi.getTerrain() != null) notifyPlayersAtPlanet(nppi.getNetworkIds(), nppi.getCondition(), nppi.getTerrain(), nppi.getPacket()); @@ -226,7 +215,7 @@ public class PlayerManager extends Manager { } } - private void onConnectionOpenedIntent(ConnectionOpenedIntent coi) { + private void handleConnectionOpenedIntent(ConnectionOpenedIntent coi) { Player p = new Player(this, coi.getNetworkId()); p.setGalaxyName(CoreManager.getGalaxy().getName()); Assert.isNull(players.put(coi.getNetworkId(), p)); @@ -234,7 +223,7 @@ public class PlayerManager extends Manager { new PlayerEventIntent(p, PlayerEvent.PE_CONNECTED).broadcast(); } - private void onConnectionClosedIntent(ConnectionClosedIntent cci) { + private void handleConnectionClosedIntent(ConnectionClosedIntent cci) { Player p = players.remove(cci.getNetworkId()); Assert.notNull(p); p.setPlayerState(PlayerState.DISCONNECTED); diff --git a/src/services/spawn/SpawnerService.java b/src/services/spawn/SpawnerService.java index 3706c8fc8..73591a643 100644 --- a/src/services/spawn/SpawnerService.java +++ b/src/services/spawn/SpawnerService.java @@ -29,24 +29,23 @@ package services.spawn; import java.sql.ResultSet; import java.sql.SQLException; - -import intents.object.DestroyObjectIntent; -import intents.object.ObjectCreatedIntent; -import intents.server.ConfigChangedIntent; import java.util.HashMap; import java.util.Map; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; + +import intents.object.DestroyObjectIntent; +import intents.object.ObjectCreatedIntent; +import intents.server.ConfigChangedIntent; import resources.Location; import resources.PvpFlag; import resources.Terrain; import resources.config.ConfigFile; import resources.containers.ContainerPermissionsType; -import resources.control.Intent; import resources.control.Service; -import resources.objects.building.BuildingObject; import resources.objects.SWGObject; +import resources.objects.building.BuildingObject; import resources.objects.creature.CreatureDifficulty; import resources.objects.creature.CreatureObject; import resources.objects.custom.AIBehavior; @@ -55,8 +54,8 @@ import resources.objects.tangible.OptionFlag; import resources.server_info.Log; import resources.server_info.RelationalDatabase; import resources.server_info.RelationalServerFactory; -import resources.spawn.SpawnerType; import resources.spawn.Spawner; +import resources.spawn.SpawnerType; import services.objects.ObjectCreator; import services.objects.ObjectManager; import utilities.ThreadUtilities; @@ -82,8 +81,8 @@ public final class SpawnerService extends Service { executorService = Executors.newSingleThreadScheduledExecutor(ThreadUtilities.newThreadFactory("spawner-service")); spawnerMap = new HashMap<>(); - registerForIntent(ConfigChangedIntent.TYPE); - registerForIntent(DestroyObjectIntent.TYPE); + registerForIntent(ConfigChangedIntent.class, cci -> handleConfigChangedIntent(cci)); + registerForIntent(DestroyObjectIntent.class, doi -> handleDestroyObjectIntent(doi)); } @Override @@ -94,14 +93,6 @@ public final class SpawnerService extends Service { return super.initialize(); } - @Override - public void onIntentReceived(Intent i) { - switch(i.getType()) { - case ConfigChangedIntent.TYPE: handleConfigChangedIntent((ConfigChangedIntent) i); break; - case DestroyObjectIntent.TYPE: handleDestroyObjectIntent((DestroyObjectIntent) i); break; - } - } - @Override public boolean terminate() { executorService.shutdown(); @@ -109,12 +100,12 @@ public final class SpawnerService extends Service { return super.terminate(); } - private void handleConfigChangedIntent(ConfigChangedIntent i) { + private void handleConfigChangedIntent(ConfigChangedIntent cci) { String newValue, oldValue; - if (i.getChangedConfig().equals(ConfigFile.FEATURES) && i.getKey().equals("SPAWN-EGGS-ENABLED")) { - newValue = i.getNewValue(); - oldValue = i.getOldValue(); + if (cci.getChangedConfig().equals(ConfigFile.FEATURES) && cci.getKey().equals("SPAWN-EGGS-ENABLED")) { + newValue = cci.getNewValue(); + oldValue = cci.getOldValue(); if (!newValue.equals(oldValue)) { if (Boolean.valueOf(newValue) && spawnerMap.isEmpty()) { // If nothing's been spawned, create it. @@ -126,8 +117,8 @@ public final class SpawnerService extends Service { } } - private void handleDestroyObjectIntent(DestroyObjectIntent i) { - SWGObject destroyedObject = i.getObject(); + private void handleDestroyObjectIntent(DestroyObjectIntent doi) { + SWGObject destroyedObject = doi.getObject(); if(destroyedObject instanceof DefaultAIObject) { DefaultAIObject killedAIObject = (DefaultAIObject) destroyedObject; diff --git a/src/services/sui/SuiService.java b/src/services/sui/SuiService.java index c3be63f1e..040c0d786 100644 --- a/src/services/sui/SuiService.java +++ b/src/services/sui/SuiService.java @@ -27,30 +27,29 @@ ***********************************************************************************/ package services.sui; -import intents.network.GalacticPacketIntent; -import intents.sui.SuiWindowIntent; import java.io.FileNotFoundException; -import network.packets.Packet; -import network.packets.swg.SWGPacket; -import network.packets.swg.zone.server_ui.SuiCreatePageMessage; -import network.packets.swg.zone.server_ui.SuiEventNotification; -import network.packets.swg.zone.server_ui.SuiForceClosePage; -import resources.control.Intent; -import resources.control.Service; -import resources.player.Player; -import resources.server_info.Log; -import resources.sui.ISuiCallback; -import resources.sui.SuiComponent; -import resources.sui.SuiEvent; -import resources.sui.SuiBaseWindow; -import utilities.Scripts; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import intents.network.GalacticPacketIntent; +import intents.sui.SuiWindowIntent; +import network.packets.Packet; +import network.packets.swg.SWGPacket; +import network.packets.swg.zone.server_ui.SuiCreatePageMessage; +import network.packets.swg.zone.server_ui.SuiEventNotification; +import network.packets.swg.zone.server_ui.SuiForceClosePage; +import resources.control.Service; +import resources.player.Player; +import resources.server_info.Log; +import resources.sui.ISuiCallback; +import resources.sui.SuiBaseWindow; +import resources.sui.SuiComponent; +import resources.sui.SuiEvent; +import utilities.Scripts; + public class SuiService extends Service { private final Map> windows; @@ -58,28 +57,14 @@ public class SuiService extends Service { public SuiService() { windows = new ConcurrentHashMap<>(); - registerForIntent(GalacticPacketIntent.TYPE); - registerForIntent(SuiWindowIntent.TYPE); + registerForIntent(GalacticPacketIntent.class, gpi -> handleGalacticPacketIntent(gpi)); + registerForIntent(SuiWindowIntent.class, swi -> handleSuiWindowIntent(swi)); } - @Override - public void onIntentReceived(Intent i) { - switch (i.getType()) { - case GalacticPacketIntent.TYPE: - if (i instanceof GalacticPacketIntent) - processPacket((GalacticPacketIntent) i); - break; - case SuiWindowIntent.TYPE: - if (i instanceof SuiWindowIntent) - handleSuiWindowIntent((SuiWindowIntent) 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) { @@ -93,13 +78,13 @@ public class SuiService extends Service { } } - private void handleSuiWindowIntent(SuiWindowIntent i) { - switch(i.getEvent()) { - case NEW: displayWindow(i.getPlayer(), i.getWindow()); break; + private void handleSuiWindowIntent(SuiWindowIntent swi) { + switch(swi.getEvent()) { + case NEW: displayWindow(swi.getPlayer(), swi.getWindow()); break; case CLOSE: { - SuiBaseWindow window = i.getWindow(); - if (window != null) closeWindow(i.getPlayer(), i.getWindow()); - else closeWindow(i.getPlayer(), i.getWindowId()); + SuiBaseWindow window = swi.getWindow(); + if (window != null) closeWindow(swi.getPlayer(), swi.getWindow()); + else closeWindow(swi.getPlayer(), swi.getWindowId()); } break; default: break; }