Changes
This commit is contained in:
@@ -13,3 +13,15 @@ function getPlayerAccentText(client) {
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function setPlayerAccentText(client, text) {
|
||||
getPlayerCurrentSubAccount(client).accent = text;
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function doesPlayerHaveAccent(client, text) {
|
||||
return (getPlayerCurrentSubAccount(client).accent != "");
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -22,6 +22,7 @@ function initClassScript() {
|
||||
|
||||
function initClassTable() {
|
||||
let tempClasses = {
|
||||
/** @class serverConfigData Representing server configuration loaded/saved in database */
|
||||
serverConfigData: class {
|
||||
constructor(dbAssoc) {
|
||||
this.databaseId = 0;
|
||||
@@ -132,6 +133,8 @@ function initClassTable() {
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/** @class clientData Representing extra data for a client */
|
||||
clientData: class {
|
||||
constructor(client, accountData, subAccounts) {
|
||||
this.accountData = accountData;
|
||||
@@ -208,6 +211,8 @@ function initClassTable() {
|
||||
this.returnToDimension = null;
|
||||
}
|
||||
},
|
||||
|
||||
/** @class clientData Representing an account, loaded/saved in the database */
|
||||
accountData: class {
|
||||
constructor(dbAssoc) {
|
||||
this.databaseId = 0;
|
||||
@@ -267,6 +272,7 @@ function initClassTable() {
|
||||
}
|
||||
}
|
||||
},
|
||||
/** @class accountContactData Representing an account's contact list, loaded/saved in the database */
|
||||
accountContactData: class {
|
||||
constructor(dbAssoc) {
|
||||
this.databaseId = 0;
|
||||
@@ -285,6 +291,7 @@ function initClassTable() {
|
||||
}
|
||||
}
|
||||
},
|
||||
/** @class accountMessageData Representing an account's messages, loaded/saved in the database */
|
||||
accountMessageData: class {
|
||||
constructor(dbAssoc) {
|
||||
this.databaseId = 0;
|
||||
@@ -311,6 +318,7 @@ function initClassTable() {
|
||||
}
|
||||
}
|
||||
},
|
||||
/** @class accountStaffNoteData Representing an account's staff notes. Visible only to staff and loaded/saved in the database */
|
||||
accountStaffNoteData: class {
|
||||
constructor(dbAssoc) {
|
||||
this.databaseId = 0;
|
||||
@@ -335,6 +343,7 @@ function initClassTable() {
|
||||
}
|
||||
}
|
||||
},
|
||||
/** @class subAccountData Representing a character's (subaccount) data. Loaded and saved in the database */
|
||||
subAccountData: class {
|
||||
constructor(dbAssoc) {
|
||||
this.databaseId = 0;
|
||||
@@ -437,6 +446,7 @@ function initClassTable() {
|
||||
}
|
||||
}
|
||||
},
|
||||
/** @class businessData Representing a businesses' data. Loaded and saved in the database */
|
||||
businessData: class {
|
||||
constructor(dbAssoc) {
|
||||
this.databaseId = 0;
|
||||
@@ -500,6 +510,7 @@ function initClassTable() {
|
||||
}
|
||||
}
|
||||
},
|
||||
/** @class businessLocationData Representing a business's location data. Multiple can be used for a single business. Used for things like doors, fuel pumps, drive thru positions, etc. Loaded and saved in the database */
|
||||
businessLocationData: class {
|
||||
constructor(dbAssoc) {
|
||||
this.databaseId = 0;
|
||||
@@ -528,6 +539,7 @@ function initClassTable() {
|
||||
}
|
||||
}
|
||||
},
|
||||
/** @class houseData Representing a house's data. Loaded and saved in the database */
|
||||
houseData: class {
|
||||
constructor(dbAssoc) {
|
||||
this.databaseId = 0
|
||||
@@ -588,6 +600,36 @@ function initClassTable() {
|
||||
}
|
||||
}
|
||||
},
|
||||
/** @class houseLocationData Representing a houses's location data. Multiple can be used for a single house. Used for things like doors, garage entry/exit/vehspawn, gates, etc. Loaded and saved in the database */
|
||||
houseLocationData: class {
|
||||
constructor(dbAssoc) {
|
||||
this.databaseId = 0;
|
||||
this.name = "";
|
||||
this.type = 0;
|
||||
this.house = 0;
|
||||
this.enabled = false;
|
||||
this.index = -1;
|
||||
this.needsSaved = false;
|
||||
|
||||
this.position = toVector3(0.0, 0.0, 0.0);
|
||||
this.interior = 0;
|
||||
this.dimension = 0;
|
||||
|
||||
if(dbAssoc) {
|
||||
this.databaseId = toInteger(dbAssoc("house_loc_id"));
|
||||
this.name = toString(dbAssoc("house_loc_name"));
|
||||
this.type = toInteger(dbAssoc("house_loc_type"));
|
||||
this.house = toInteger(dbAssoc("house_loc_house"));
|
||||
this.enabled = intToBool(toInteger(dbAssoc("house_loc_enabled")));
|
||||
this.index = -1;
|
||||
|
||||
this.position = toVector3(toFloat(dbAssoc["house_loc_pos_x"]), toFloat(dbAssoc["house_loc_pos_y"]), toFloat(dbAssoc["house_loc_pos_z"]));
|
||||
this.interior = toInteger(dbAssoc["house_loc_int"]);
|
||||
this.dimension = toInteger(dbAssoc["house_loc_vw"]);
|
||||
}
|
||||
}
|
||||
},
|
||||
/** @class clanData Representing a clan's data. Loaded and saved in the database */
|
||||
clanData: class {
|
||||
constructor(dbAssoc) {
|
||||
this.databaseId = 0;
|
||||
@@ -612,6 +654,7 @@ function initClassTable() {
|
||||
}
|
||||
}
|
||||
},
|
||||
/** @class clanRankData Representing a clan rank's data. Loaded and saved in the database */
|
||||
clanRankData: class {
|
||||
constructor(dbAssoc) {
|
||||
this.databaseId = 0;
|
||||
@@ -637,6 +680,7 @@ function initClassTable() {
|
||||
}
|
||||
}
|
||||
},
|
||||
/** @class clanMemberData Representing a clan member's data. Loaded and saved in the database */
|
||||
clanMemberData: class {
|
||||
constructor(dbAssoc) {
|
||||
this.databaseId = 0;
|
||||
@@ -664,6 +708,7 @@ function initClassTable() {
|
||||
}
|
||||
}
|
||||
},
|
||||
/** @class vehicleData Representing a vehicle's data. Loaded and saved in the database */
|
||||
vehicleData: class {
|
||||
constructor(dbAssoc = false, vehicle = false) {
|
||||
// General Info
|
||||
@@ -798,6 +843,7 @@ function initClassTable() {
|
||||
this.streamingRadioStation = -1;
|
||||
}
|
||||
},
|
||||
/** @class commandData Representing a command's data. Loaded and saved in the database */
|
||||
commandData: class {
|
||||
enable() {
|
||||
this.enabled = true;
|
||||
@@ -811,16 +857,19 @@ function initClassTable() {
|
||||
this.enabled = !this.enabled;
|
||||
}
|
||||
|
||||
constructor(command, handlerFunction, syntaxString, requiredStaffFlags, requireLogin, allowOnDiscord) {
|
||||
constructor(command, handlerFunction, syntaxString, requiredStaffFlags, requireLogin, allowOnDiscord, helpDescription) {
|
||||
this.command = command;
|
||||
this.handlerFunction = handlerFunction;
|
||||
this.syntaxString = syntaxString;
|
||||
this.requiredStaffFlags = requiredStaffFlags;
|
||||
this.enabled = true;
|
||||
this.requireLogin = requireLogin;
|
||||
this.allowOnDiscord = allowOnDiscord
|
||||
this.allowOnDiscord = allowOnDiscord;
|
||||
this.helpDescription = helpDescription;
|
||||
this.aliases = [];
|
||||
}
|
||||
},
|
||||
/** @class crimeData Representing a crime's data. Loaded and saved in the database */
|
||||
crimeData: class {
|
||||
constructor(suspectId, crimeType, reporterId = 0) {
|
||||
this.crimeType = crimeType;
|
||||
@@ -831,6 +880,7 @@ function initClassTable() {
|
||||
this.databaseId = 0;
|
||||
}
|
||||
},
|
||||
/** @class jobData Representing a job's data. Loaded and saved in the database */
|
||||
jobData: class {
|
||||
constructor(dbAssoc = false) {
|
||||
this.databaseId = 0;
|
||||
@@ -872,6 +922,7 @@ function initClassTable() {
|
||||
}
|
||||
}
|
||||
},
|
||||
/** @class jobEquipmentData Representing a job equipment set's data. Loaded and saved in the database */
|
||||
jobEquipmentData: class {
|
||||
constructor(dbAssoc = false) {
|
||||
this.databaseId = 0;
|
||||
@@ -893,6 +944,7 @@ function initClassTable() {
|
||||
}
|
||||
}
|
||||
},
|
||||
/** @class jobEquipmentItemData Representing a job equipment set item's data. Loaded and saved in the database */
|
||||
jobEquipmentItemData: class {
|
||||
constructor(dbAssoc = false) {
|
||||
this.databaseId = 0;
|
||||
@@ -913,6 +965,7 @@ function initClassTable() {
|
||||
}
|
||||
}
|
||||
},
|
||||
/** @class jobUniformData Representing a job uniform's data. Loaded and saved in the database */
|
||||
jobUniformData: class {
|
||||
constructor(dbAssoc = false) {
|
||||
this.databaseId = 0;
|
||||
@@ -925,6 +978,26 @@ function initClassTable() {
|
||||
this.jobIndex = -1;
|
||||
this.needsSaved = false;
|
||||
|
||||
this.bodyParts = {
|
||||
hair: [0,0],
|
||||
head: [0,0],
|
||||
upper: [0,0],
|
||||
lower: [0,0],
|
||||
};
|
||||
|
||||
this.bodyProps = {
|
||||
hair: [0,0],
|
||||
eyes: [0,0],
|
||||
head: [0,0],
|
||||
leftHand: [0,0],
|
||||
rightHand: [0,0],
|
||||
leftWrist: [0,0],
|
||||
rightWrist: [0,0],
|
||||
hip: [0,0],
|
||||
leftFoot: [0,0],
|
||||
rightFoot: [0,0],
|
||||
};
|
||||
|
||||
if(dbAssoc) {
|
||||
this.databaseId = dbAssoc["job_uniform_id"];
|
||||
this.job = dbAssoc["job_uniform_job"];
|
||||
@@ -932,6 +1005,26 @@ function initClassTable() {
|
||||
this.requiredRank = dbAssoc["job_uniform_minrank"];
|
||||
this.skin = dbAssoc["job_uniform_skin"];
|
||||
this.enabled = intToBool(dbAssoc["job_uniform_enabled"]);
|
||||
|
||||
this.bodyParts = {
|
||||
hair: [toInteger(dbAssoc["job_uniform_hd_part_hair_model"]) || 0, toInteger(dbAssoc["job_uniform_hd_part_hair_texture"]) || 0],
|
||||
head: [toInteger(dbAssoc["job_uniform_hd_part_head_model"]) || 0, toInteger(dbAssoc["job_uniform_hd_part_head_texture"]) || 0],
|
||||
upper: [toInteger(dbAssoc["job_uniform_hd_part_upper_model"]) || 0, toInteger(dbAssoc["job_uniform_hd_part_upper_texture"]) || 0],
|
||||
lower: [toInteger(dbAssoc["job_uniform_hd_part_lower_model"]) || 0, toInteger(dbAssoc["job_uniform_hd_part_lower_texture"]) || 0],
|
||||
};
|
||||
|
||||
this.bodyProps = {
|
||||
hair: [toInteger(dbAssoc["job_uniform_hd_prop_hair_model"]) || 0, toInteger(dbAssoc["job_uniform_hd_prop_hair_texture"]) || 0],
|
||||
eyes: [toInteger(dbAssoc["job_uniform_hd_prop_eyes_model"]) || 0, toInteger(dbAssoc["job_uniform_hd_prop_eyes_texture"]) || 0],
|
||||
head: [toInteger(dbAssoc["job_uniform_hd_prop_head_model"]) || 0, toInteger(dbAssoc["job_uniform_hd_prop_head_texture"]) || 0],
|
||||
leftHand: [toInteger(dbAssoc["job_uniform_hd_prop_lefthand_model"]) || 0, toInteger(dbAssoc["job_uniform_hd_prop_lefthand_texture"]) || 0],
|
||||
rightHand: [toInteger(dbAssoc["job_uniform_hd_prop_righthand_model"]) || 0, toInteger(dbAssoc["job_uniform_hd_prop_righthand_texture"]) || 0],
|
||||
leftWrist: [toInteger(dbAssoc["job_uniform_hd_prop_leftwrist_model"]) || 0, toInteger(dbAssoc["job_uniform_hd_prop_leftwrist_texture"]) || 0],
|
||||
rightWrist: [toInteger(dbAssoc["job_uniform_hd_prop_rightwrist_model"]) || 0, toInteger(dbAssoc["job_uniform_hd_prop_rightwrist_texture"]) || 0],
|
||||
hip: [toInteger(dbAssoc["job_uniform_hd_prop_hip_model"]) || 0, toInteger(dbAssoc["job_uniform_hd_prop_hip_texture"]) || 0],
|
||||
leftFoot: [toInteger(dbAssoc["job_uniform_hd_prop_leftfoot_model"]) || 0, toInteger(dbAssoc["job_uniform_hd_prop_leftfoot_texture"]) || 0],
|
||||
rightFoot: [toInteger(dbAssoc["job_uniform_hd_prop_rightfoot_model"]) || 0, toInteger(dbAssoc["job_uniform_hd_prop_rightfoot_texture"]) || 0],
|
||||
};
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -62,11 +62,11 @@ function loadCommands() {
|
||||
//commandData("ac", getGlobalAntiCheatStatusCommand, "<0/1 state>", getStaffFlagValue("developer"), true, true),
|
||||
],
|
||||
ban: [
|
||||
commandData("aban", accountBanCommand, "<player name/id> <reason>", getStaffFlagValue("manageBans"), true, true, "Bans a player's account."),
|
||||
commandData("cban", subAccountBanCommand, "<player name/id> <reason>", getStaffFlagValue("manageBans"), true, true, "Bans a player's character."),
|
||||
commandData("saban", subAccountBanCommand, "<player name/id> <reason>", getStaffFlagValue("manageBans"), true, true, "Bans a player's character (subaccount)."),
|
||||
commandData("ipban", ipBanCommand, "<player name/id> <reason>", getStaffFlagValue("manageBans"), true, true, "Bans a player's IP."),
|
||||
commandData("subnetban", subNetBanCommand, "<player name/id> <range> <reason>", getStaffFlagValue("manageBans"), true, true, "Bans a player's subnet."),
|
||||
commandData("aban", accountBanCommand, "<player name/id> <reason>", getStaffFlagValue("basicModeration"), true, true, "Bans a player's account."),
|
||||
commandData("cban", subAccountBanCommand, "<player name/id> <reason>", getStaffFlagValue("basicModeration"), true, true, "Bans a player's character."),
|
||||
commandData("saban", subAccountBanCommand, "<player name/id> <reason>", getStaffFlagValue("basicModeration"), true, true, "Bans a player's character (subaccount)."),
|
||||
commandData("ipban", ipBanCommand, "<player name/id> <reason>", getStaffFlagValue("basicModeration"), true, true, "Bans a player's IP."),
|
||||
commandData("subnetban", subNetBanCommand, "<player name/id> <range> <reason>", getStaffFlagValue("basicModeration"), true, true, "Bans a player's subnet."),
|
||||
],
|
||||
bitFlag: [],
|
||||
business: [
|
||||
@@ -102,36 +102,36 @@ function loadCommands() {
|
||||
commandData("bizdelstorageitems", deleteBusinessStorageItemsCommand, "", getStaffFlagValue("manageItems"), true, true, "Destroys all items in the business's storage"),
|
||||
],
|
||||
chat: [
|
||||
commandData("me", meActionCommand, "<message>", getStaffFlagValue("none"), true, false),
|
||||
commandData("do", doActionCommand, "<message>", getStaffFlagValue("none"), true, false),
|
||||
commandData("s", shoutCommand, "<message>", getStaffFlagValue("none"), true, false),
|
||||
commandData("shout", shoutCommand, "<message>", getStaffFlagValue("none"), true, false),
|
||||
commandData("talk", talkCommand, "<message>", getStaffFlagValue("none"), true, false),
|
||||
commandData("local", talkCommand, "<message>", getStaffFlagValue("none"), true, false),
|
||||
commandData("l", talkCommand, "<message>", getStaffFlagValue("none"), true, false),
|
||||
commandData("w", whisperCommand, "<message>", getStaffFlagValue("none"), true, false),
|
||||
commandData("whisper", whisperCommand, "<message>", getStaffFlagValue("none"), true, false),
|
||||
commandData("clanchat", clanChatCommand, "<message>", getStaffFlagValue("none"), true, false),
|
||||
commandData("clan", clanChatCommand, "<message>", getStaffFlagValue("none"), true, false),
|
||||
commandData("c", clanChatCommand, "<message>", getStaffFlagValue("none"), true, false),
|
||||
commandData("adminchat", adminChatCommand, "<message>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("a", adminChatCommand, "<message>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("achat", adminChatCommand, "<message>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("me", meActionCommand, "<message>", getStaffFlagValue("none"), true, false, "Shows a custom action message in chat"),
|
||||
commandData("do", doActionCommand, "<message>", getStaffFlagValue("none"), true, false, "Shows a custom action description in chat"),
|
||||
commandData("s", shoutCommand, "<message>", getStaffFlagValue("none"), true, false, "Shout a message to others in the area"),
|
||||
commandData("shout", shoutCommand, "<message>", getStaffFlagValue("none"), true, false, "Shout a message to others in the area"),
|
||||
commandData("talk", talkCommand, "<message>", getStaffFlagValue("none"), true, false, "Say a message to others nearby"),
|
||||
commandData("local", talkCommand, "<message>", getStaffFlagValue("none"), true, false, "Say a message to others nearby"),
|
||||
commandData("l", talkCommand, "<message>", getStaffFlagValue("none"), true, false, "Say a message to others nearby"),
|
||||
commandData("w", whisperCommand, "<message>", getStaffFlagValue("none"), true, false, "Whisper a message to players very close to you"),
|
||||
commandData("whisper", whisperCommand, "<message>", getStaffFlagValue("none"), true, false, "Whisper a message to players very close to you"),
|
||||
commandData("clanchat", clanChatCommand, "<message>", getStaffFlagValue("none"), true, false, "Sends an OOC chat message to members in your clan"),
|
||||
commandData("clan", clanChatCommand, "<message>", getStaffFlagValue("none"), true, false, "Sends an OOC chat message to members in your clan"),
|
||||
commandData("c", clanChatCommand, "<message>", getStaffFlagValue("none"), true, false, "Sends an OOC chat message to members in your clan"),
|
||||
commandData("adminchat", adminChatCommand, "<message>", getStaffFlagValue("basicModeration"), true, true, "Sends an OOC chat message to other admins"),
|
||||
commandData("a", adminChatCommand, "<message>", getStaffFlagValue("basicModeration"), true, true, "Sends an OOC chat message to other admins"),
|
||||
commandData("achat", adminChatCommand, "<message>", getStaffFlagValue("basicModeration"), true, true, "Sends an OOC chat message to other admins"),
|
||||
],
|
||||
clan: [
|
||||
commandData("addclan", createClanCommand, "<name>", getStaffFlagValue("manageClans"), true, true),
|
||||
commandData("delclan", deleteClanCommand, "<clan id>", getStaffFlagValue("manageClans"), true, true),
|
||||
commandData("addclan", createClanCommand, "<name>", getStaffFlagValue("manageClans"), true, true, "Creates an new empty, unowned clan."),
|
||||
commandData("delclan", deleteClanCommand, "<clan id>", getStaffFlagValue("manageClans"), true, true, "Deletes a clan by ID or name"),
|
||||
|
||||
commandData("clanowner", setClanOwnerCommand, "<clan id> <player name/id>", getStaffFlagValue("none"), true, true),
|
||||
commandData("clantag", setClanTagCommand, "<tag>", getStaffFlagValue("none"), true, true),
|
||||
commandData("clanranktag", setClanRankTagCommand, "<rank id> <tag>", getStaffFlagValue("none"), true, true),
|
||||
commandData("clanmembertag", setClanMemberTagCommand, "<player name/id> <tag>", getStaffFlagValue("none"), true, true),
|
||||
commandData("clanranktitle", setClanRankTitleCommand, "<rank id> <title>", getStaffFlagValue("none"), true, true),
|
||||
commandData("clanmembertitle", setClanMemberTitleCommand, "<player name/id> <title>", getStaffFlagValue("none"), true, true),
|
||||
commandData("addclanrankflag", addClanRankFlagCommand, "<rank name/id> <flag name>", getStaffFlagValue("none"), true, true),
|
||||
commandData("delclanrankflag", removeClanRankFlagCommand, "<rank name/id> <flag name>", getStaffFlagValue("none"), true, true),
|
||||
commandData("addclanmemberflag", addClanMemberFlagCommand, "<player name/id> <flag name>", getStaffFlagValue("none"), true, true),
|
||||
commandData("delclanmemberflag", removeClanMemberFlagCommand, "<player name/id> <flag name>", getStaffFlagValue("none"), true, true),
|
||||
commandData("clanowner", setClanOwnerCommand, "<clan id> <player name/id>", getStaffFlagValue("none"), true, true, "Gives ownership of the clan to a player"),
|
||||
commandData("clantag", setClanTagCommand, "<tag>", getStaffFlagValue("none"), true, true, "Sets a clan's main tag"),
|
||||
commandData("clanranktag", setClanRankTagCommand, "<rank id> <tag>", getStaffFlagValue("none"), true, true, "Sets a clan rank's custom tag"),
|
||||
commandData("clanmembertag", setClanMemberTagCommand, "<player name/id> <tag>", getStaffFlagValue("none"), true, true, "Sets a clan members's custom tag"),
|
||||
commandData("clanranktitle", setClanRankTitleCommand, "<rank id> <title>", getStaffFlagValue("none"), true, true, "Sets a clan rank's title"),
|
||||
commandData("clanmembertitle", setClanMemberTitleCommand, "<player name/id> <title>", getStaffFlagValue("none"), true, true, "Sets a clan members's custom title"),
|
||||
commandData("addclanrankflag", addClanRankFlagCommand, "<rank name/id> <flag name>", getStaffFlagValue("none"), true, true, "Gives a clan rank a clan permission."),
|
||||
commandData("delclanrankflag", removeClanRankFlagCommand, "<rank name/id> <flag name>", getStaffFlagValue("none"), true, true, "Takes a clan permission from a clan rank"),
|
||||
commandData("addclanmemberflag", addClanMemberFlagCommand, "<player name/id> <flag name>", getStaffFlagValue("none"), true, true, "Gives a clan member a clan permission"),
|
||||
commandData("delclanmemberflag", removeClanMemberFlagCommand, "<player name/id> <flag name>", getStaffFlagValue("none"), true, true, "Takes a clan permission from a clan member"),
|
||||
],
|
||||
class: [],
|
||||
client: [],
|
||||
@@ -228,8 +228,6 @@ function loadCommands() {
|
||||
commandData("itemuseval", setItemTypeUseValueCommand, "<item type> <use value>", getStaffFlagValue("manageItems"), true, false),
|
||||
commandData("itemorderprice", setItemTypeOrderPriceCommand, "<item type> <price>", getStaffFlagValue("manageItems"), true, false),
|
||||
commandData("itemriskmult", setItemTypeRiskMultiplierCommand, "<item type> <risk multiplier>", getStaffFlagValue("manageItems"), true, false),
|
||||
|
||||
|
||||
],
|
||||
job: [
|
||||
commandData("takejob", takeJobCommand, "", getStaffFlagValue("none"), true, false),
|
||||
@@ -291,35 +289,38 @@ function loadCommands() {
|
||||
commandData("radiovolume", setStreamingRadioVolumeCommand, "<volume level>", getStaffFlagValue("none"), true, false),
|
||||
],
|
||||
moderation: [
|
||||
commandData("kick", kickClientCommand, "<player name/id> [reason]", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("mute", muteClientCommand, "<player name/id> [reason]", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("freeze", freezeClientCommand, "<player name/id> [reason]", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("unmute", unMuteClientCommand, "<player name/id> [reason]", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("unfreeze", unFreezeClientCommand, "<player name/id> [reason]", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("goto", gotoPlayerCommand, "<player name/id>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("gethere", getPlayerCommand, "<player name/id>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("gotopos", gotoPositionCommand, "<x> <y> <z> [int] [vw]", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("gotoveh", gotoVehicleCommand, "<vehicle id>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("gotobiz", gotoBusinessCommand, "<business id/name>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("gotohouse", gotoHouseCommand, "<house id/name>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("gotojob", gotoJobLocationCommand, "<job id/name> <location id>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("gotoloc", gotoGameLocationCommand, "<location name>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("fr", teleportForwardCommand, "<distance in meters>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("ba", teleportBackwardCommand, "<distance in meters>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("lt", teleportLeftCommand, "<distance in meters>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("rt", teleportRightCommand, "<distance in meters>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("up", teleportUpCommand, "<distance in meters>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("dn", teleportDownCommand, "<distance in meters>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("int", playerInteriorCommand, "<interior id>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("vw", playerVirtualWorldCommand, "<virtual world id>", getStaffFlagValue("basicModeration"), true, true),
|
||||
commandData("kick", kickClientCommand, "<player name/id> [reason]", getStaffFlagValue("basicModeration"), true, true, "Kicks a player from the server"),
|
||||
commandData("mute", muteClientCommand, "<player name/id> [reason]", getStaffFlagValue("basicModeration"), true, true, "Mutes a player, preventing them from using any chat."),
|
||||
commandData("freeze", freezeClientCommand, "<player name/id> [reason]", getStaffFlagValue("basicModeration"), true, true, "Freeze a player, preventing them from moving."),
|
||||
commandData("unmute", unMuteClientCommand, "<player name/id> [reason]", getStaffFlagValue("basicModeration"), true, true, "Unmutes a player, allowing them to chat again."),
|
||||
commandData("unfreeze", unFreezeClientCommand, "<player name/id> [reason]", getStaffFlagValue("basicModeration"), true, true, "Unfreezes a player, allowing them to move again."),
|
||||
commandData("goto", gotoPlayerCommand, "<player name/id>", getStaffFlagValue("basicModeration"), true, true, "Teleports you to a player."),
|
||||
commandData("gethere", getPlayerCommand, "<player name/id>", getStaffFlagValue("basicModeration"), true, true, "Teleports a player to you."),
|
||||
commandData("gotopos", gotoPositionCommand, "<x> <y> <z> [int] [vw]", getStaffFlagValue("basicModeration"), true, true, "Teleports you to specific coordinates with optional interior and dimension."),
|
||||
commandData("gotoveh", gotoVehicleCommand, "<vehicle id>", getStaffFlagValue("basicModeration"), true, true, "Teleports you to a vehicle by ID."),
|
||||
commandData("gotobiz", gotoBusinessCommand, "<business id/name>", getStaffFlagValue("basicModeration"), true, true, "Teleports you to a business by ID or name."),
|
||||
commandData("gotohouse", gotoHouseCommand, "<house id/name>", getStaffFlagValue("basicModeration"), true, true, "Teleports you to a house by ID or description."),
|
||||
commandData("gotojob", gotoJobLocationCommand, "<job id/name> <location id>", getStaffFlagValue("basicModeration"), true, true, "Teleports you to a job location by name and location ID."),
|
||||
commandData("gotoloc", gotoGameLocationCommand, "<location name>", getStaffFlagValue("basicModeration"), true, true, "Teleports you to a game location by name."),
|
||||
commandData("fr", teleportForwardCommand, "<distance in meters>", getStaffFlagValue("basicModeration"), true, true, "Teleports you forward a certain distance in meters."),
|
||||
commandData("ba", teleportBackwardCommand, "<distance in meters>", getStaffFlagValue("basicModeration"), true, true, "Teleports you backward a certain distance in meters."),
|
||||
commandData("lt", teleportLeftCommand, "<distance in meters>", getStaffFlagValue("basicModeration"), true, true, "Teleports you to the left a certain distance in meters."),
|
||||
commandData("rt", teleportRightCommand, "<distance in meters>", getStaffFlagValue("basicModeration"), true, true, "Teleports you to the right a certain distance in meters."),
|
||||
commandData("up", teleportUpCommand, "<distance in meters>", getStaffFlagValue("basicModeration"), true, true, "Teleports you upward a certain distance in meters."),
|
||||
commandData("dn", teleportDownCommand, "<distance in meters>", getStaffFlagValue("basicModeration"), true, true, "Teleports you downward a certain distance in meters."),
|
||||
commandData("int", playerInteriorCommand, "<interior id>", getStaffFlagValue("basicModeration"), true, true, "Gets or sets a player's game interior."),
|
||||
commandData("vw", playerVirtualWorldCommand, "<virtual world id>", getStaffFlagValue("basicModeration"), true, true, "Gets or sets a player's virtual world/dimension."),
|
||||
|
||||
commandData("addstaffflag", addStaffFlagCommand, "<player name/id> [flag name]", getStaffFlagValue("manageAdmins"), true, true),
|
||||
commandData("delstaffflag", takeStaffFlagCommand, "<player name/id> [flag name]", getStaffFlagValue("manageAdmins"), true, true),
|
||||
commandData("getstaffflags", getStaffFlagsCommand, "<player name/id>", getStaffFlagValue("manageAdmins"), true, true),
|
||||
commandData("clearstaffflags", clearStaffFlagsCommand, "<player name/id>", getStaffFlagValue("manageAdmins"), true, true),
|
||||
commandData("staffflags", allStaffFlagsCommand, "", getStaffFlagValue("manageAdmins"), true, true),
|
||||
commandData("addstaffflag", addStaffFlagCommand, "<player name/id> <flag name>", getStaffFlagValue("manageAdmins"), true, true, "Gives a player a staff flaf (this server only)."),
|
||||
commandData("delstaffflag", takeStaffFlagCommand, "<player name/id> <flag name>", getStaffFlagValue("manageAdmins"), true, true, "Takes a player's staff flag by name (this server only)."),
|
||||
commandData("getstaffflags", getStaffFlagsCommand, "<player name/id>", getStaffFlagValue("manageAdmins"), true, true, "Shows a list of all staff flags a player has (this server only)."),
|
||||
commandData("clearstaffflags", clearStaffFlagsCommand, "<player name/id>", getStaffFlagValue("manageAdmins"), true, true, "Removes all staff flags for a player (this server only)."),
|
||||
commandData("staffflags", allStaffFlagsCommand, "", getStaffFlagValue("manageAdmins"), true, true, "Shows a list of all valid staff flag names."),
|
||||
|
||||
commandData("givemoney", givePlayerMoneyCommand, "<player name/id> <amount>", getStaffFlagValue("serverManager"), true, true),
|
||||
|
||||
commandData("nonrpname", forceCharacterNameChangeCommand, "<player name/id>", getStaffFlagValue("basicModeration"), true, true, "Forces a player to change their current character's name."),
|
||||
commandData("forcename", forceCharacterNameCommand, "<player name/id> <first name> <last name>", getStaffFlagValue("basicModeration"), true, true, "Changes a character's name directly."),
|
||||
],
|
||||
security: [],
|
||||
startup: [],
|
||||
@@ -627,3 +628,31 @@ function doesCommandExist(command) {
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function cacheAllCommandsAliases() {
|
||||
for(let i in serverCommands) {
|
||||
for(let j in serverCommands[i]) {
|
||||
for(let k in serverCommands) {
|
||||
for(let m in serverCommands[k]) {
|
||||
if(serverCommands[i][j].handlerFunction == serverCommands[k][m].handlerFunction) {
|
||||
serverCommands[i][j].aliases.push(serverCommands[k][m]);
|
||||
serverCommands[k][m].aliases.push(serverCommands[i][j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function getCommandAliasesNames(command) {
|
||||
let commandAliases = [];
|
||||
for(let i in command.aliases) {
|
||||
commandAliases.push(command.aliases[i].name);
|
||||
}
|
||||
|
||||
return commandAliases;
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -16,21 +16,10 @@ function initHelpScript() {
|
||||
// ===========================================================================
|
||||
|
||||
let randomTips = [
|
||||
//`[#FFFFFF]Hold [#0066FF]E [#FFFFFF]to hail a nearby taxi if you need a ride.`,
|
||||
//`[#FFFFFF]Press [#0066FF]G [#FFFFFF]to enter a vehicle as passenger.`,
|
||||
//`[#FFFFFF]Banks can provide loans. Use [#AAAAAA]/help loans [#FFFFFF] for more details.`,
|
||||
//`[#FFFFFF]Want to make a clan? Use [#AAAAAA]/help clans [#FFFFFF] for details.`,
|
||||
//`[#FFFFFF]Weapons can be legally purchased at ammunation, if you have a weapon license.`,
|
||||
`[#FFFFFF]Look for yellow dots on your map for job locations.`,
|
||||
`[#FFFFFF]You can set custom key binds. Use [#AAAAAA]/help keys [#FFFFFF] for details.`,
|
||||
//`[#FFFFFF]Tax is based on your total wealth. This includes money, vehicles, businesses and more.`,
|
||||
//`[#FFFFFF]Don't go broke because of a hospital bill! Get insured today by visiting an insurance agency!`,
|
||||
//`[#FFFFFF]Don't go broke because your car was destroyed. Visit an insurance agency today!`,
|
||||
//`[#FFFFFF]You can find most locations by using [#AAAAAA]/gps`,
|
||||
`[#FFFFFF]Use /notips if you don't want to see tips and extra information`,
|
||||
//`[#FFFFFF]Want to advertise your business? Visit the news station and place an /ad today!`,
|
||||
`[#FFFFFF]You can edit your keybinds using [#AAAAAA]/keybinds`,
|
||||
//`[#FFFFFF]You can change your quick item display. Choices are GTAV-style pie menu or Minecraft-style hotbar`,
|
||||
`[#FFFFFF]Press I to see your inventory, and use number keys to select an item`,
|
||||
`[#FFFFFF]Use /buy at a business to purchase items.`,
|
||||
`[#FFFFFF]Found a bug? Report it with [#AAAAAA]/bug`,
|
||||
@@ -38,6 +27,19 @@ let randomTips = [
|
||||
`[#FFFFFF]Want to buy a business? Use /bizbuy at one for sale`,
|
||||
`[#FFFFFF]Want to buy a house? Use /housebuy at one for sale`,
|
||||
`[#FFFFFF]Want to buy a vehicle? Visit a dealership and enter one for info on how to buy it!`,
|
||||
`[#FFFFFF]Visit the forum at [#AAAAAA]asshatgaming.com`,
|
||||
`[#FFFFFF]Chat with us on discord: [#AAAAAA]discord.asshatgaming.com`,
|
||||
//`[#FFFFFF]Tax is based on your total wealth. This includes money, vehicles, businesses and more.`,
|
||||
//`[#FFFFFF]Don't go broke because of a hospital bill! Get insured today by visiting an insurance agency!`,
|
||||
//`[#FFFFFF]Don't go broke because your car was destroyed. Visit an insurance agency today!`,
|
||||
//`[#FFFFFF]You can find most locations by using [#AAAAAA]/gps`,
|
||||
//`[#FFFFFF]Want to advertise your business? Visit the news station and place an /ad today!`,
|
||||
//`[#FFFFFF]You can change your quick item display. Choices are GTAV-style pie menu or Minecraft-style hotbar`,
|
||||
//`[#FFFFFF]Hold [#0066FF]E [#FFFFFF]to hail a nearby taxi if you need a ride.`,
|
||||
//`[#FFFFFF]Press [#0066FF]G [#FFFFFF]to enter a vehicle as passenger.`,
|
||||
//`[#FFFFFF]Banks can provide loans. Use [#AAAAAA]/help loans [#FFFFFF] for more details.`,
|
||||
//`[#FFFFFF]Want to make a clan? Use [#AAAAAA]/help clans [#FFFFFF] for details.`,
|
||||
//`[#FFFFFF]Weapons can be legally purchased at ammunation, if you have a weapon license.`,
|
||||
];
|
||||
|
||||
// ===========================================================================
|
||||
@@ -48,7 +50,9 @@ function helpCommand(command, params, client) {
|
||||
return false;
|
||||
}
|
||||
|
||||
switch(toLowerCase(params)) {
|
||||
let splitParams = params.split(" ");
|
||||
|
||||
switch(toLowerCase(splitParams[0])) {
|
||||
case "account":
|
||||
showAccountHelpMessage(client);
|
||||
break;
|
||||
@@ -109,6 +113,15 @@ function helpCommand(command, params, client) {
|
||||
showBindKeysHelpMessage(client);
|
||||
break;
|
||||
|
||||
case "command":
|
||||
case "cmd":
|
||||
if(areThereEnoughParams(params, 2, " ")) {
|
||||
showCommandHelpMessage(client, splitParams[2]);
|
||||
} else {
|
||||
showCommandHelpMessage(client, false);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
showMainHelpMessage(client);
|
||||
break;
|
||||
@@ -130,6 +143,7 @@ function helpCommand(command, params, client) {
|
||||
// == Bindable Keys ============================
|
||||
// == Clothes ==================================
|
||||
// == Business =================================
|
||||
// == Command Info =============================
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
@@ -265,6 +279,39 @@ function showBusinessHelpMessage(client) {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function showCommandHelpMessage(client, commandName) {
|
||||
if(!commandName) {
|
||||
messagePlayerSyntax(client, `${getCommandSyntaxText("help")} <command name>`);
|
||||
return false;
|
||||
}
|
||||
|
||||
commandName = toLowerCase(commandName);
|
||||
commandName = commandName.trim();
|
||||
|
||||
if(commandName.slice(0, 1) == "/") {
|
||||
commandName = commandName.slice(1);
|
||||
}
|
||||
|
||||
let command = getCommandData(commandName);
|
||||
let aliases = getCommandAliasesNames(command);
|
||||
|
||||
messagePlayerInfo(client, "[#FF9900]== [#FFFF00]Command Info [#FF9900]=============================");
|
||||
messagePlayerNormal(client, `[#FF9900]• [#FFFFFF]Description: ${command.description}`);
|
||||
|
||||
if(aliases.length > 0) {
|
||||
messagePlayerNormal(client, `[#FF9900]• [#FFFFFF]Aliases: ${aliases.join(", ")}`);
|
||||
} else {
|
||||
messagePlayerNormal(client, `[#FF9900]• [#FFFFFF]Aliases: (None)`);
|
||||
}
|
||||
|
||||
if(doesPlayerHaveStaffPermission(client, getStaffFlagValue("basicModeration"))) {
|
||||
//messagePlayerNormal(client, `[#FF9900]• [#FFFFFF]Required Flags: `);
|
||||
messagePlayerNormal(client, `[#FF9900]• [#FFFFFF]Usable on Discord: ${getYesNoFromBool(command.allowOnDiscord)}`);
|
||||
}
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function showEnteredDriverSeatHasKeysHelpTip(client) {
|
||||
if(getPlayerData(client).accountData.shownTips & !shownTipsFlags.enteredDriverSeat) {
|
||||
messagePlayerInfo(client, `You can press K for engine, I for lights, and L to lock/unlock the car.`);
|
||||
|
||||
@@ -707,3 +707,89 @@ function givePlayerMoneyCommand(command, params, client) {
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function forcePlayerAccentCommand(command, params, client) {
|
||||
if(areParamsEmpty(params)) {
|
||||
messagePlayerSyntax(client, getCommandSyntaxText(command));
|
||||
return false;
|
||||
}
|
||||
|
||||
let splitParams = params.split(" ");
|
||||
let targetClient = getPlayerFromParams(splitParams[0]);
|
||||
let newAccent = splitParams[1] || "none";
|
||||
|
||||
if(!targetClient) {
|
||||
messagePlayerError(client, "That player is not connected!");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(toLowerCase(newAccent) == "none") {
|
||||
newAccent = "";
|
||||
}
|
||||
|
||||
setPlayerAccentText(client, newAccent);
|
||||
|
||||
if(newAccent == "") {
|
||||
messagePlayerSuccess(client, `You removed [#AAAAAA]${getCharacterFullName(targetClient)}'s [#FFFFFF]accent.`);
|
||||
messagePlayerAlert(client, `An admin removed your accent.`);
|
||||
} else {
|
||||
messagePlayerSuccess(client, `You set [#AAAAAA]${getCharacterFullName(targetClient)}'s [#FFFFFF]accent to [#AAAAAA]${newAccent}`);
|
||||
messagePlayerAlert(client, `An admin set your accent to [#AAAAAA]${newAccent}`);
|
||||
}
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function forceCharacterNameChangeCommand(command, params, client) {
|
||||
if(areParamsEmpty(params)) {
|
||||
messagePlayerSyntax(client, getCommandSyntaxText(command));
|
||||
return false;
|
||||
}
|
||||
|
||||
let splitParams = params.split(" ");
|
||||
let targetClient = getPlayerFromParams(splitParams[0]);
|
||||
|
||||
if(!targetClient) {
|
||||
messagePlayerError(client, "That player is not connected!");
|
||||
return false;
|
||||
}
|
||||
|
||||
messagePlayerSuccess(client, `You forced [#AAAAAA]${targetClient.name} (${getCharacterFullName(targetClient)}) [#FFFFFF]to change their character's name.`);
|
||||
showPlayerNewCharacterFailedGUI(client, "Non-RP name! Choose a new one:");
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function forceCharacterNameCommand(command, params, client) {
|
||||
if(areParamsEmpty(params)) {
|
||||
messagePlayerSyntax(client, getCommandSyntaxText(command));
|
||||
return false;
|
||||
}
|
||||
|
||||
if(areThereEnoughParams(params, 3, " ")) {
|
||||
messagePlayerSyntax(client, getCommandSyntaxText(command));
|
||||
return false;
|
||||
}
|
||||
|
||||
let splitParams = params.split(" ");
|
||||
let targetClient = getPlayerFromParams(splitParams[0]);
|
||||
let firstName = splitParams[1];
|
||||
let lastName = splitParams[2];
|
||||
|
||||
if(!targetClient) {
|
||||
messagePlayerError(client, "That player is not connected!");
|
||||
return false;
|
||||
}
|
||||
|
||||
firstName = fixCharacterName(firstName);
|
||||
lastName = fixCharacterName(lastName);
|
||||
let newName = `${firstName} ${lastName}`;
|
||||
let oldName = getCharacterFullName(targetClient);
|
||||
|
||||
getPlayerCurrentSubAccount(client).firstName = firstName;
|
||||
getPlayerCurrentSubAccount(client).lastName = lastName;
|
||||
|
||||
messagePlayerSuccess(client, `You forced [#AAAAAA]${targetClient.name}'s [#FFFFFF]current character name from [#AAAAAA]${oldName} [#FFFFFF]to [#AAAAAA]${newName}`);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -1582,7 +1582,7 @@ function doesNameContainInvalidCharacters(name) {
|
||||
// ===========================================================================
|
||||
|
||||
function fixCharacterName(name) {
|
||||
return String(name.charAt(0).toUpperCase()) + String(name.slice(1));
|
||||
return String(name.charAt(0).toUpperCase()) + String(name.slice(1).toLowerCase());
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
Reference in New Issue
Block a user