Refactored a few more Services to use the new Intentsystem

This commit is contained in:
tacef ine
2017-01-25 19:54:29 +01:00
parent e23bbc3055
commit 9e8af9b0bb
13 changed files with 168 additions and 273 deletions
+15 -32
View File
@@ -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) {
@@ -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 = "";
+21 -22
View File
@@ -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<RadialOption> options = new ArrayList<RadialOption>(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<RadialOption> options = new ArrayList<RadialOption>(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()) {
@@ -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();
}
}
@@ -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) {
+6 -18
View File
@@ -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) {
@@ -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) {
+25 -30
View File
@@ -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());
}
+16 -29
View File
@@ -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()) {
+5 -16
View File
@@ -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;
+9 -20
View File
@@ -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);
+14 -23
View File
@@ -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;
+27 -42
View File
@@ -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<Long, List<SuiBaseWindow>> 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;
}