From 757232dc0d6ed45571493fe41ef01beece4c42b0 Mon Sep 17 00:00:00 2001 From: Obique PSWG Date: Sun, 13 Dec 2015 10:59:38 -0600 Subject: [PATCH] Added debug output for various player appearing/disappearing events --- src/services/galaxy/ConnectionService.java | 2 ++ src/services/objects/ObjectAwareness.java | 8 +++++++ src/utilities/DebugUtilities.java | 28 ++++++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 src/utilities/DebugUtilities.java diff --git a/src/services/galaxy/ConnectionService.java b/src/services/galaxy/ConnectionService.java index 41f3028ca..b65048a0a 100644 --- a/src/services/galaxy/ConnectionService.java +++ b/src/services/galaxy/ConnectionService.java @@ -56,6 +56,7 @@ import resources.player.PlayerEvent; import resources.player.PlayerFlags; import resources.player.PlayerState; import resources.server_info.Log; +import utilities.DebugUtilities; import utilities.ThreadUtilities; public class ConnectionService extends Service { @@ -100,6 +101,7 @@ public class ConnectionService extends Service { while (iter.hasNext()) { DisappearPlayer p = iter.next(); if ((System.nanoTime()-p.getTime())/1E6 >= DISAPPEAR_THRESHOLD) { + DebugUtilities.printPlayerCharacterDebug(ConnectionService.this, p.getPlayer(), "Disappearing"); disappear(p.getPlayer(), DisconnectReason.TIMEOUT); iter.remove(); } diff --git a/src/services/objects/ObjectAwareness.java b/src/services/objects/ObjectAwareness.java index 452d02217..f19730f53 100644 --- a/src/services/objects/ObjectAwareness.java +++ b/src/services/objects/ObjectAwareness.java @@ -59,6 +59,7 @@ import resources.objects.staticobject.StaticObject; import resources.player.Player; import resources.player.PlayerEvent; import resources.server_info.Log; +import utilities.DebugUtilities; public class ObjectAwareness extends Service { @@ -112,6 +113,7 @@ public class ObjectAwareness extends Service { return; switch (pei.getEvent()) { case PE_DISAPPEAR: + DebugUtilities.printPlayerCharacterDebug(this, (CreatureObject) creature, "Disappearing"); creature.clearAware(); remove(creature); for (SWGObject obj : creature.getObservers()) @@ -120,10 +122,12 @@ public class ObjectAwareness extends Service { p.setCreatureObject(null); break; case PE_FIRST_ZONE: + DebugUtilities.printPlayerCharacterDebug(this, (CreatureObject) creature, "FirstZone"); if (creature.getParent() == null) creature.createObject(p); break; case PE_ZONE_IN: + DebugUtilities.printPlayerCharacterDebug(this, (CreatureObject) creature, "Zone"); creature.clearAware(); update(creature); break; @@ -226,6 +230,8 @@ public class ObjectAwareness extends Service { * @param object the object to add */ public void add(SWGObject object) { + if (object instanceof CreatureObject && object.hasSlot("ghost")) + DebugUtilities.printPlayerCharacterDebug(this, (CreatureObject) object, "Adding"); update(object); Location l = object.getLocation(); if (invalidLocation(l)) @@ -241,6 +247,8 @@ public class ObjectAwareness extends Service { * @param object the object to remove */ public void remove(SWGObject object) { + if (object instanceof CreatureObject && object.hasSlot("ghost")) + DebugUtilities.printPlayerCharacterDebug(this, (CreatureObject) object, "Removing"); Location l = object.getLocation(); if (invalidLocation(l)) return; diff --git a/src/utilities/DebugUtilities.java b/src/utilities/DebugUtilities.java new file mode 100644 index 000000000..886dc7775 --- /dev/null +++ b/src/utilities/DebugUtilities.java @@ -0,0 +1,28 @@ +package utilities; + +import resources.control.Service; +import resources.objects.creature.CreatureObject; +import resources.player.Player; +import resources.server_info.Log; + +public class DebugUtilities { + + public static void printPlayerCharacterDebug(Service service, Player p, String identifyingText) { + CreatureObject c = p.getCreatureObject(); + boolean hasGhost = c.getSlottedObject("ghost") != null; + Log.d(service, "[%s] PLAY=%s/%d CREO=%s/%d hasGhost=%b", identifyingText, p.getUsername(), p.getUserId(), c.getName(), c.getObjectId(), hasGhost); + } + + public static void printPlayerCharacterDebug(Service service, CreatureObject c, String identifyingText) { + Player p = c.getOwner(); + String username = "null"; + int id = 0; + if (p != null) { + username = p.getUsername(); + id = p.getUserId(); + } + boolean hasGhost = c.getSlottedObject("ghost") != null; + Log.d(service, "[%s] PLAY=%s/%d CREO=%s/%d hasGhost=%b", identifyingText, username, id, c.getName(), c.getObjectId(), hasGhost); + } + +}