From dbfc89c1601079f1227bcabdeb62acf9b5f4da67 Mon Sep 17 00:00:00 2001 From: Obique Date: Mon, 11 Aug 2014 00:17:51 -0500 Subject: [PATCH 1/4] Set a session variable for determining if the client is ready for updates --- src/services/PlayerService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/PlayerService.java b/src/services/PlayerService.java index 71944c7b..fb2ef276 100644 --- a/src/services/PlayerService.java +++ b/src/services/PlayerService.java @@ -525,7 +525,7 @@ public class PlayerService implements INetworkDispatch { }); swgOpcodes.put(Opcodes.CmdSceneReady, (session, data) -> { - + session.setAttribute("CmdSceneReady", true); }); /*swgOpcodes.put(Opcodes.ExpertiseRequestMessage, new INetworkRemoteEvent() { From 5ea48e1c2e7e4904d75410571748a182d5b7b3d5 Mon Sep 17 00:00:00 2001 From: Obique Date: Mon, 11 Aug 2014 00:18:27 -0500 Subject: [PATCH 2/4] Fixed a null pointer exception due to objectMutex being null --- .../objects/waypoint/WaypointObject.java | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/resources/objects/waypoint/WaypointObject.java b/src/resources/objects/waypoint/WaypointObject.java index 8dd5337d..cbf48ff2 100644 --- a/src/resources/objects/waypoint/WaypointObject.java +++ b/src/resources/objects/waypoint/WaypointObject.java @@ -153,19 +153,17 @@ public class WaypointObject extends IntangibleObject implements IDelta, Serializ } - public byte[] getBytes() { - synchronized(objectMutex) { - IoBuffer buffer = Baseline.createBuffer(38 + StringUtilities.getUnicodeString(getName()).length); - buffer.putInt(getCellNumber()); - buffer.put(Baseline.toBytes(getBaseline(3).get("position"))); - buffer.putLong(getTargetId()); - buffer.putInt(getPlanetCrc()); - buffer.put(StringUtilities.getUnicodeString(getName())); - buffer.putLong(getObjectID()); - buffer.put(getColor()); - buffer.put(Baseline.getBoolean(isActive())); - return buffer.flip().array(); - } + public synchronized byte[] getBytes() { + IoBuffer buffer = Baseline.createBuffer(38 + StringUtilities.getUnicodeString(getName()).length); + buffer.putInt(getCellNumber()); + buffer.put(Baseline.toBytes(getBaseline(3).get("position"))); + buffer.putLong(getTargetId()); + buffer.putInt(getPlanetCrc()); + buffer.put(StringUtilities.getUnicodeString(getName())); + buffer.putLong(getObjectID()); + buffer.put(getColor()); + buffer.put(Baseline.getBoolean(isActive())); + return buffer.flip().array(); } @Deprecated public int getCellId() { return getCellNumber(); } From cbe7372c957d79ba555242454766d47a1a4ef394 Mon Sep 17 00:00:00 2001 From: Zing Date: Fri, 15 Aug 2014 20:03:46 -0700 Subject: [PATCH 3/4] Added getStationName admin command. --- scripts/commands/getStationName.py | 16 ++++++++++++++++ src/services/AdminService.java | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 scripts/commands/getStationName.py diff --git a/scripts/commands/getStationName.py b/scripts/commands/getStationName.py new file mode 100644 index 00000000..57ca7fdb --- /dev/null +++ b/scripts/commands/getStationName.py @@ -0,0 +1,16 @@ +import sys +import main.NGECore +import services.AdminService + +def setup(): + return + + +def run(core, actor, target, commandString): + if target: + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Command Completed Successfully: Account name for target is ' + core.adminService.getAccountNameFromDB(target.getClient().getAccountId()) + '.', 0) + + + else: + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF getStationName: Invalid Syntax. Syntax is: /getStationName ', 0) + return \ No newline at end of file diff --git a/src/services/AdminService.java b/src/services/AdminService.java index 3763a874..eef276f7 100644 --- a/src/services/AdminService.java +++ b/src/services/AdminService.java @@ -55,6 +55,22 @@ public class AdminService implements INetworkDispatch { return accessLevel; } + public String getAccountNameFromDB(long id) { + String accountName = null; + PreparedStatement preparedStatement; + + try { + preparedStatement = NGECore.getInstance().getDatabase1().preparedStatement("SELECT * FROM accounts WHERE id=" + id + ""); + ResultSet resultSet = preparedStatement.executeQuery(); + if(resultSet.next()) + accountName = resultSet.getString("user"); + } catch (SQLException e) { + e.printStackTrace(); + } + + return accountName; + } + @Override public void insertOpcodes(Map arg0, Map arg1) { From cbcb28e00a257f2bbb7ba96414661c00f7e0c8fd Mon Sep 17 00:00:00 2001 From: Zing Date: Sat, 16 Aug 2014 03:43:36 -0700 Subject: [PATCH 4/4] Added blocked admin commands --- src/services/command/CommandService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/services/command/CommandService.java b/src/services/command/CommandService.java index c3c622a8..3ae01441 100644 --- a/src/services/command/CommandService.java +++ b/src/services/command/CommandService.java @@ -688,7 +688,8 @@ public class CommandService implements INetworkDispatch { public void processCommand(CreatureObject actor, SWGObject target, BaseSWGCommand command, int actionCounter, String commandArgs) { - if (command.getGodLevel() > 0 || command.getCommandName().equals("setgodmode")) { + if (command.getGodLevel() > 0 || command.getCommandName().equals("setgodmode") || command.getCommandName().equals("server") || command.getCommandName().equals("teleport") + || command.getCommandName().equals("teleportto") || command.getCommandName().equals("teleporttarget") ) { String accessLevel = core.adminService.getAccessLevelFromDB(actor.getClient().getAccountId()); String filePath = "accesslevels/" + accessLevel + ".txt";