Lots of stuff
This commit is contained in:
@@ -8,14 +8,104 @@
|
||||
// TYPE: Server (JavaScript)
|
||||
// ===========================================================================
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
let serverBitFlags = {
|
||||
staffFlags: {},
|
||||
moderationFlags: {},
|
||||
factionFlags: {},
|
||||
clanFlags: {},
|
||||
accountSettingsFlags: {},
|
||||
subAccountSettingsFlags: {},
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
let serverBitFlagKeys = {
|
||||
staffFlagKeys: [
|
||||
"none",
|
||||
"basicModeration",
|
||||
"manageHouses",
|
||||
"manageVehicles",
|
||||
"manageBusinesses",
|
||||
"manageFactions",
|
||||
"manageClans",
|
||||
"manageServer",
|
||||
"manageAdmins",
|
||||
"developer"
|
||||
],
|
||||
moderationFlagKeys: [
|
||||
"none",
|
||||
"muted",
|
||||
"frozen",
|
||||
"hackerBox",
|
||||
"jobBanned",
|
||||
"ammuBanned",
|
||||
"policeBanned",
|
||||
"fireBanned",
|
||||
"gunBanned",
|
||||
],
|
||||
factionFlagKeys: [
|
||||
"none",
|
||||
"police",
|
||||
"medical",
|
||||
"fire",
|
||||
"government"
|
||||
],
|
||||
clanFlagKeys: [
|
||||
"none",
|
||||
"illegal",
|
||||
"legal",
|
||||
"mafia",
|
||||
"streetGang",
|
||||
"weapons",
|
||||
"drugs",
|
||||
"humanTrafficking",
|
||||
"vigilante",
|
||||
"hitContracts"
|
||||
],
|
||||
clanPermissionFlagKeys: [
|
||||
"none",
|
||||
"inviteMember",
|
||||
"removeMember",
|
||||
"memberRank",
|
||||
"memberFlags",
|
||||
"memberTag",
|
||||
"memberTitle",
|
||||
"rankFlags",
|
||||
"rankTag",
|
||||
"rankTitle",
|
||||
"clanTag",
|
||||
"clanName",
|
||||
"manageVehicles",
|
||||
"manageHouses",
|
||||
"manageBusinesses",
|
||||
"owner"
|
||||
],
|
||||
accountSettingsFlagKeys: [
|
||||
"none",
|
||||
"useWhiteList",
|
||||
"useBlackList",
|
||||
"twoStepAuth",
|
||||
"authAttemptAlert",
|
||||
"alertWithGUI",
|
||||
"errorWithGUI",
|
||||
"askWithGUI",
|
||||
"autoLoginIP",
|
||||
],
|
||||
subAccountSettingsFlagKeys: [],
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
function initBitFlagScript() {
|
||||
serverData.staffFlags = createBitFlagTable(serverData.staffFlagKeys);
|
||||
serverData.moderationFlags = createBitFlagTable(serverData.moderationFlagKeys);
|
||||
serverData.accountSettingsFlags = createBitFlagTable(serverData.accountSettingsFlagKeys);
|
||||
//serverData.subAccountSettingsFlags = createBitFlagTable(serverData.subAccountSettingsFlagKeys);
|
||||
serverData.clanFlags = createBitFlagTable(serverData.clanFlagKeys);
|
||||
serverData.clanPermissionFlags = createBitFlagTable(serverData.clanPermissionFlagKeys);
|
||||
serverData.factionFlags = createBitFlagTable(serverData.factionFlagKeys);
|
||||
getServerData().staffFlags = createBitFlagTable(getServerData().staffFlagKeys);
|
||||
getServerData().moderationFlags = createBitFlagTable(getServerData().moderationFlagKeys);
|
||||
getServerData().accountSettingsFlags = createBitFlagTable(getServerData().accountSettingsFlagKeys);
|
||||
//getServerData().subAccountSettingsFlags = createBitFlagTable(getServerData().subAccountSettingsFlagKeys);
|
||||
getServerData().clanFlags = createBitFlagTable(getServerData().clanFlagKeys);
|
||||
getServerData().clanPermissionFlags = createBitFlagTable(getServerData().clanPermissionFlagKeys);
|
||||
getServerData().factionFlags = createBitFlagTable(getServerData().factionFlagKeys);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -43,16 +133,26 @@ function createBitFlagTable(keyNames) {
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
function hasBitFlag(allFlags, checkForFlag) {
|
||||
return (allFlags & checkForFlag);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
function doesClientHaveStaffPermission(client, requiredFlags) {
|
||||
if(client.console) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if(requiredFlags == getStaffFlagValue("none")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
let staffFlags = 0;
|
||||
if(!isClientFromDiscord(client)) {
|
||||
staffFlags = serverData.clients[client.index].accountData.staffFlags;
|
||||
staffFlags = getServerData().clients[client.index].accountData.flags.admin;
|
||||
} else {
|
||||
staffFlags = getDiscordUserData(client).accountData.staffFlags;
|
||||
staffFlags = getDiscordUserData(client).accountData.flags.admin;
|
||||
}
|
||||
|
||||
// -1 is automatic override (having -1 for staff flags is basically god mode admin level)
|
||||
@@ -74,11 +174,39 @@ function getStaffFlagValue(flagName) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if(typeof serverData.staffFlags[flagName] === "undefined") {
|
||||
if(typeof getServerData().staffFlags[flagName] === "undefined") {
|
||||
return false;
|
||||
}
|
||||
|
||||
return serverData.staffFlags[flagName];
|
||||
return getServerData().staffFlags[flagName];
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
function getAccountSettingsFlagValue(flagName) {
|
||||
if(flagName == "all") {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if(typeof getServerData().accountSettingsFlags[flagName] === "undefined") {
|
||||
return false;
|
||||
}
|
||||
|
||||
return getServerData().accountSettingsFlags[flagName];
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
function getAccountFlagsFlagValue(flagName) {
|
||||
if(flagName == "all") {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if(typeof getServerData().accountFlags[flagName] === "undefined") {
|
||||
return false;
|
||||
}
|
||||
|
||||
return getServerData().accountFlags[flagName];
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -88,7 +216,7 @@ function giveClientStaffFlag(client, flagName) {
|
||||
return false;
|
||||
}
|
||||
|
||||
getClientData(client).accountData.staffFlags = getClientData(client).accountData.staffFlags | getStaffFlagValue(flagName);
|
||||
getClientData(client).accountData.flags.admin = getClientData(client).accountData.flags.admin | getStaffFlagValue(flagName);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -99,14 +227,37 @@ function takeClientStaffFlag(client, flagName) {
|
||||
return false;
|
||||
}
|
||||
|
||||
getClientData(client).accountData.staffFlags = getClientData(client).accountData.staffFlags & ~getStaffFlagValue(flagName);
|
||||
getClientData(client).accountData.flags.admin = getClientData(client).accountData.flags.admin & ~getStaffFlagValue(flagName);
|
||||
return true;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
function addBitFlag(allFlags, flagValue) {
|
||||
return allFlags | flagValue;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
function removeBitFlag(allFlags, flagValue) {
|
||||
return allFlags & ~flagValue;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
function takeClientStaffFlag(client, flagName) {
|
||||
if(!getStaffFlagValue(flagName)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
getClientData(client).accountData.flags.admin = getClientData(client).accountData.flags.admin & ~getStaffFlagValue(flagName);
|
||||
return true;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
function clearClientStaffFlags(client) {
|
||||
getClientData(client).accountData.staffFlags = getStaffFlagValue("none");
|
||||
getClientData(client).accountData.flags.admin = getStaffFlagValue("none");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user