From a04cd30b97b2eba5a813ef7e214cdbe1721f79fc Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Fri, 25 Dec 2020 18:16:34 -0600 Subject: [PATCH] Add clanflag bitflag funcs --- scripts/server/bitflag.js | 44 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/scripts/server/bitflag.js b/scripts/server/bitflag.js index d5843fc1..22d7c507 100644 --- a/scripts/server/bitflag.js +++ b/scripts/server/bitflag.js @@ -169,6 +169,36 @@ function doesClientHaveStaffPermission(client, requiredFlags) { // --------------------------------------------------------------------------- +function doesClientHaveClanPermission(client, requiredFlags) { + if(client.console) { + return true; + } + + if(requiredFlags == getClanFlagValue("none")) { + return true; + } + + if(doesClientHaveStaffPermission(client, getStaffFlagValue("manageClans"))) { + return true; + } + + let clanFlags = 0; + clanFlags = getClientCurrentSubAccount(client).clanFlags | getClanRankFlags(getClientCurrentSubAccount(client).clanRank); + + // -1 is automatic override (having -1 for staff flags is basically god mode admin level) + if(clanFlags == getClanFlagValue("all")) { + return true; + } + + if(clanFlags & requiredFlags) { + return true; + } + + return false; +} + +// --------------------------------------------------------------------------- + function getStaffFlagValue(flagName) { if(flagName == "all") { return -1; @@ -183,6 +213,20 @@ function getStaffFlagValue(flagName) { // --------------------------------------------------------------------------- +function getClanFlagValue(flagName) { + if(flagName == "all") { + return -1; + } + + if(typeof getServerBitFlags().clanFlags[flagName] === "undefined") { + return false; + } + + return getServerBitFlags().clanFlags[flagName]; +} + +// --------------------------------------------------------------------------- + function getAccountSettingsFlagValue(flagName) { if(flagName == "all") { return -1;