Lots of stuff

This commit is contained in:
Vortrex
2020-12-11 01:51:55 -06:00
parent ecc495de5c
commit fbaafa6c0c
67 changed files with 5755 additions and 4208 deletions

View File

@@ -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;
}