diff --git a/scripts/commands/getplayerid.py b/scripts/commands/getplayerid.py index 9b334674..bb4141a4 100644 --- a/scripts/commands/getplayerid.py +++ b/scripts/commands/getplayerid.py @@ -4,22 +4,18 @@ def setup(): return def run(core, actor, target, commandString): - - if commandString.startswith("quart"): - print ('commnad: ' + commandString) - #cmdArgs = commandString.split(" ") - #qY = cmdArgs[1] - #qW = cmdArgs[2] - - quaternion = actor.getOrientation() - #tp = core.travelService.getTravelPointByName(actor.getPlanet().name, "Mos Eisley Starport") - #obj = tp.getShuttle() - target.setOrientation(quaternion) - print ('Orientation: qY- ' + str(quaternion.y) + ' --- qW- ' + str(quaternion.w)) - Console.println('Orientation: qY- ' + str(quaternion.y) + ' --- qW- ' + str(quaternion.w)) - return - - elif commandString.startswith("id"): - print ( str(target.getObjectId())) + commandArgs = commandString.split(" ") + target = core.chatService.getObjectByFirstName(commandArgs[0]) + + if len(commandArgs) > 1: + if commandArgs[1].startswith("id"): + actor.sendSystemMessage('Player Object ID: ' + target.getObjectId()) + return + + elif commandArgs[1].startswith("pid"): + actor.sendSystemMessage('Account ID: ' + str(core.characterService.getAccountId(target.getObjectId())), 0) + return + else: + actor.sendSystemMessage('Player Object ID: ' + str(target.getObjectId()) + ' Account ID: ' + str(core.characterService.getAccountId(target.getObjectId())), 0) return return \ No newline at end of file diff --git a/src/services/CharacterService.java b/src/services/CharacterService.java index b0900a76..ec394752 100644 --- a/src/services/CharacterService.java +++ b/src/services/CharacterService.java @@ -564,7 +564,25 @@ public class CharacterService implements INetworkDispatch { return false; } - + /** + * Checks the database for the Account ID associated with the Object ID. + * Intended for GM use only! + * @param objectId Object ID of the player, used to obtain the Account ID. + * @return Returns Account ID + */ + public int getAccountId(long objectId) { + try { + PreparedStatement ps = databaseConnection.preparedStatement("SELECT * FROM characters WHERE id=?"); + ps.setLong(1, objectId); + ResultSet resultSet = ps.executeQuery(); + resultSet.next(); + return resultSet.getInt("accountId"); + } catch (SQLException e) { + e.printStackTrace(); + } + return 0; + } + private void createStarterClothing(CreatureObject creature, String raceTemplate, String profession) { try { ProfessionTemplateVisitor visitor = ClientFileManager.loadFile("creation/profession_defaults_" + profession + ".iff", ProfessionTemplateVisitor.class); diff --git a/src/services/SimulationService.java b/src/services/SimulationService.java index 5f38d4b7..051f1690 100644 --- a/src/services/SimulationService.java +++ b/src/services/SimulationService.java @@ -168,6 +168,7 @@ public class SimulationService implements INetworkDispatch { core.commandService.registerCommand("eject"); core.commandService.registerGmCommand("broadcast"); core.commandService.registerGmCommand("teleporttarget"); + core.commandService.registerGmCommand("getplayerid"); core.commandService.registerCommand("npcconversationselect"); core.commandService.registerCommand("npcconversationstop");