From 432c1de4078fa7c0f9b748b5ecc8c2a6f249cbb7 Mon Sep 17 00:00:00 2001 From: AconiteGodOfSWG Date: Sun, 1 Nov 2020 19:34:32 -0500 Subject: [PATCH] Update setInstanceAuthorized --- .../compiled/game/script/gm/cmd.java | 39 +++++++++++++++---- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/sku.0/sys.server/compiled/game/script/gm/cmd.java b/sku.0/sys.server/compiled/game/script/gm/cmd.java index 5dba483c3..30fe667a6 100755 --- a/sku.0/sys.server/compiled/game/script/gm/cmd.java +++ b/sku.0/sys.server/compiled/game/script/gm/cmd.java @@ -3973,14 +3973,39 @@ public class cmd extends script.base_script { return SCRIPT_CONTINUE; } - if (utils.hasScriptVar(self, gm.INSTANCE_AUTH)) - { - utils.removeScriptVar(self, gm.INSTANCE_AUTH); - sendSystemMessageTestingOnly(self, "You will no longer override instance authorization"); - return SCRIPT_CONTINUE; + if (params.contains(gm.KEYWORD_TARGET)) { + params = gm.removeKeyword(params, gm.KEYWORD_TARGET); + } else { + target = self; + } + String[] instanceFlags = dataTableGetStringColumn(instance.INSTANCE_DATATABLE, "key_required"); + if (instanceFlags != null && instanceFlags.length > 0) { + if(utils.hasScriptVar(target, gm.INSTANCE_AUTH)) { + utils.removeScriptVar(target, gm.INSTANCE_AUTH); + for (String flag : instanceFlags) { + if (flag != null && flag.length() > 0) { + instance.removePlayerFlagForInstance(target, flag); + } + } + sendSystemMessageTestingOnly(target, "You are no longer flagged for or overriding instance authorization."); + if(target != self) { + sendSystemMessageTestingOnly(self, "setInstanceAuthorized: You have removed flags and instance authorization for "+getPlayerName(target)+" ("+target+"). Use this command again to re-grant instance overrides."); + } + return SCRIPT_CONTINUE; + } + else { + utils.setScriptVar(target, gm.INSTANCE_AUTH, 1); + for (String flag : instanceFlags) { + if (flag != null && flag.length() > 0) { + instance.flagPlayerForInstance(target, flag); + } + } + sendSystemMessageTestingOnly(target, "You are now flagged for all instances and overriding instance authorization."); + if(target != self) { + sendSystemMessageTestingOnly(self, "setInstanceAuthorized: You have flagged "+getPlayerName(target)+" ("+target+") to access all instances and overrode their instance authorization. Use this command again to revert this override."); + } + } } - utils.setScriptVar(self, gm.INSTANCE_AUTH, 1); - sendSystemMessageTestingOnly(self, "You are now overriding private instance authorization checks"); return SCRIPT_CONTINUE; } public int cmdCombatDataRecord(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException