mirror of
https://github.com/ProjectSWGCore/Holocore.git
synced 2026-10-21 11:03:13 -04:00
Refactored a few more Services to use the new Intentsystem
This commit is contained in:
@@ -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 = "";
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user