* Added clans * Fixed interior exit labels * Disabled nametags on games without 3D label support * Fixed mouse cursor toggle command * Fixed SA fight-style not being applied * Added manageRanks clan permission bitflag * Added interior lights toggle * Fixed clan chat * Added real-time support with optional timezone offset * Added lots of JSDoc stuff * Added command for managers to set server GUI colour * Added GeoIP command for admins * Added command for admins to force an immediate payday * Added admins gotospawn command * Added return player command for teleported players * Added pizza delivery job const * Fixed biz/house set pickup & interior type * Fixed inventory showing ammo count for melee weapons * Fixed SA using wrong pickup types * Fixed char select screen breaking when in a clan * Added +/- symbol util for number display * Added get current timestamp for timezone offset util * Fixed vehicle owner ID being set wrong for job veh
208 lines
8.3 KiB
JavaScript
208 lines
8.3 KiB
JavaScript
// ===========================================================================
|
||
// Vortrex's Roleplay Resource
|
||
// https://github.com/VortrexFTW/gtac_roleplay
|
||
// ===========================================================================
|
||
// FILE: messaging.js
|
||
// DESC: Provides messaging functions and usage
|
||
// TYPE: Server (JavaScript)
|
||
// ===========================================================================
|
||
|
||
function initMessagingScript() {
|
||
logToConsole(LOG_INFO, "[VRR.Messaging]: Initializing messaging script ...");
|
||
logToConsole(LOG_INFO, "[VRR.Messaging]: Messaging script initialized successfully!");
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messageAdminAction(messageText) {
|
||
messagePlayerNormal(null, `⚠️ ${messageText}`, getColourByName("orange"));
|
||
if(getServerConfig().discordEnabled) {
|
||
messageDiscord(`:warning: ${messageText}`);
|
||
}
|
||
//logToConsole(LOG_INFO, `[VRR.Messaging] ADMIN: ${messageText}`);
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerNormal(client, messageText, colour = COLOUR_WHITE) {
|
||
if(isConsole(client)) {
|
||
logToConsole(LOG_INFO, `[VRR.Messaging] ${messageText}`);
|
||
return true;
|
||
}
|
||
|
||
sendChatBoxMessageToPlayer(client, `${messageText}`, colour);
|
||
|
||
//if(!isClientFromDiscord(client)) {
|
||
//
|
||
//} else {
|
||
// messageDiscordUser(client, `${messageText}`);
|
||
//}
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messageAdmins(messageText, colour = COLOUR_WHITE) {
|
||
let clients = getClients();
|
||
for(let i in clients) {
|
||
if(isConsole(clients[i])) {
|
||
logToConsole(LOG_INFO, `[VRR.Messaging] ADMINS: ${messageText}`);
|
||
} else {
|
||
if(doesPlayerHaveStaffPermission(clients[i], getStaffFlagValue("basicModeration"))) {
|
||
sendChatBoxMessageToPlayer(clients[i], `🛡️ ${messageText}`, getColourByName("softRed"));
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerError(client, messageText) {
|
||
if(isConsole(client)) {
|
||
logToConsole(LOG_INFO, `[VRR.Messaging] ERROR: ${messageText}`);
|
||
return true;
|
||
}
|
||
|
||
if(!isClientFromDiscord(client)) {
|
||
messagePlayerNormal(client, `🚫 ${messageText}`, getColourByName("white"));
|
||
} else {
|
||
messageDiscordUser(client, `:no_entry_sign: ${messageText}`);
|
||
}
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerSyntax(client, messageText) {
|
||
if(isConsole(client)) {
|
||
logToConsole(LOG_INFO, `[VRR.Messaging] USAGE: ${messageText}`);
|
||
return true;
|
||
}
|
||
|
||
if(!isClientFromDiscord(client)) {
|
||
messagePlayerNormal(client, `⌨️ USAGE: ${getInlineChatColourByName("white")} ${messageText}`, getColourByType("syntaxMessage"));
|
||
} else {
|
||
messageDiscordUser(client, `:keyboard: ${messageText}`);
|
||
}
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerAlert(client, messageText) {
|
||
if(isConsole(client)) {
|
||
logToConsole(LOG_INFO, `[VRR.Messaging] ALERT: ${messageText}`);
|
||
return true;
|
||
}
|
||
|
||
if(!isClientFromDiscord(client)) {
|
||
messagePlayerNormal(client, `⚠️ ${getInlineChatColourByName("white")} ${messageText}`, getColourByName("white"));
|
||
} else {
|
||
messageDiscordUser(client, `:warning: ${messageText}`);
|
||
}
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerSuccess(client, messageText) {
|
||
if(isConsole(client)) {
|
||
logToConsole(LOG_INFO, `[VRR.Messaging] SUCCESS: ${messageText}`);
|
||
return true;
|
||
}
|
||
|
||
if(!isClientFromDiscord(client)) {
|
||
messagePlayerNormal(client, `👍 ${getInlineChatColourByName("white")} ${messageText}`, getColourByName("white"));
|
||
} else {
|
||
messageDiscordUser(client, `:thumbsup: ${messageText}`);
|
||
}
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerInfo(client, messageText) {
|
||
if(isConsole(client)) {
|
||
logToConsole(LOG_INFO, `[VRR.Messaging] INFO: ${messageText}`);
|
||
return true;
|
||
}
|
||
|
||
if(!isClientFromDiscord(client)) {
|
||
messagePlayerNormal(client, `ℹ️ ${getInlineChatColourByName("white")} ${messageText}`, getColourByName("white"));
|
||
} else {
|
||
messageDiscordUser(client, `:information_source: ${messageText}`);
|
||
}
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerTip(client, messageText) {
|
||
if(isConsole(client)) {
|
||
logToConsole(LOG_INFO, `[VRR.Messaging] TIP: ${messageText}`);
|
||
return true;
|
||
}
|
||
|
||
if(!isClientFromDiscord(client)) {
|
||
messagePlayerNormal(client, `ℹ️ ${getInlineChatColourByName("white")} ${messageText}`, getColourByName("white"));
|
||
} else {
|
||
messageDiscordUser(client, `:information_source: ${messageText}`);
|
||
}
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerTalk(client, talkingClient, messageText) {
|
||
messagePlayerNormal(client, `🗣️ ${getPlayerAccentInlineOutput(client)}${getClientSubAccountName(talkingClient)} says: ${messageText}`, getColourByType("talkMessage"));
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerWhisper(client, whisperingClient, messageText) {
|
||
messagePlayerNormal(client, `🤫 ${getPlayerAccentInlineOutput(client)}${getClientSubAccountName(whisperingClient)} whispers: ${messageText}`, getColourByType("whisperMessage"));
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerShout(client, shoutingClient, messageText) {
|
||
messagePlayerNormal(client, `🗣️ ${getPlayerAccentInlineOutput(client)}${getClientSubAccountName(shoutingClient)} shouts: ${messageText}!`, getColourByType("shoutMessage"));
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerDoAction(client, doingActionClient, messageText) {
|
||
if(!isClientFromDiscord(client)) {
|
||
messagePlayerNormal(client, `${messageText} * (${getClientSubAccountName(doingActionClient)})`, getColourByType("doActionMessage"));
|
||
}
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerMeAction(client, doingActionClient, messageText) {
|
||
messagePlayerNormal(client, `${getClientSubAccountName(doingActionClient)} ${messageText}`, getColourByType("meActionMessage"));
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerClanChat(client, clanChattingClient, messageText) {
|
||
messagePlayerNormal(client, `👥 ${getInlineChatColourByName("clanOrange")}${(getPlayerClanRankName(clanChattingClient) != false) ? getPlayerClanRankName(clanChattingClient) : "No Rank"} ${getCharacterFullName(clanChattingClient)} ${getInlineChatColourByName("white")}says (clan): ${getInlineChatColourByName("lightGrey")}${messageText}`, getColourByType("clanChatMessage"));
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerAdminChat(client, adminChattingClient, messageText) {
|
||
messagePlayerNormal(client, `🛡️ [ADMIN CHAT] ${getInlineChatColourByName("lightGrey")}${getPlayerData(adminChattingClient).accountData.staffTitle} [#CCCCCC]${getPlayerData(adminChattingClient).accountData.name}: ${getInlineChatColourByName("white")}${messageText}`, getColourByType("orange"));
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerNewbieTip(client, message) {
|
||
if(!hasBitFlag(getPlayerData(client).accountData.settings, getAccountSettingsFlagValue("noActionTips"))) {
|
||
messagePlayerNormal(client, `💡 TIP: ${message}`);
|
||
}
|
||
}
|
||
|
||
// ===========================================================================
|
||
|
||
function messagePlayerTimedRandomTip(client, message) {
|
||
if(!hasBitFlag(getPlayerData(client).accountData.settings, getAccountSettingsFlagValue("noTimedRandomTips"))) {
|
||
messagePlayerNormal(client, `💡 TIP: ${message}`);
|
||
}
|
||
}
|
||
|
||
// ===========================================================================
|