From 29856cf03e4618c57b174c9f706e30e09e9ba625 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sat, 30 Apr 2022 13:18:26 -0500 Subject: [PATCH] Server-configurable nametag distance --- scripts/client/nametag.js | 6 +++++ scripts/client/server.js | 1 + scripts/server/client.js | 6 +++++ scripts/server/command.js | 1 + scripts/server/config.js | 47 +++++++++++++++++++++++++++------------ scripts/server/event.js | 3 +++ 6 files changed, 50 insertions(+), 14 deletions(-) diff --git a/scripts/client/nametag.js b/scripts/client/nametag.js index ccc8347c..9e53676c 100644 --- a/scripts/client/nametag.js +++ b/scripts/client/nametag.js @@ -231,4 +231,10 @@ function createColour(alpha, red, green, blue) { return alpha << 24 | red << 16 | green << 8 | blue; } +// =========================================================================== + +function setNameTagDistance(distance) { + nametagDistance = distance; +} + // =========================================================================== \ No newline at end of file diff --git a/scripts/client/server.js b/scripts/client/server.js index e36f3b0c..ae888203 100644 --- a/scripts/client/server.js +++ b/scripts/client/server.js @@ -114,6 +114,7 @@ function addAllNetworkHandlers() { addNetworkEventHandler("vrr.logLevel", setLogLevel); addNetworkEventHandler("vrr.hideAllGUI", hideAllGUI); addNetworkEventHandler("vrr.nametag", updatePlayerNameTag); + addNetworkEventHandler("vrr.nametagDistance", setNameTagDistance); addNetworkEventHandler("vrr.ping", updatePlayerPing); addNetworkEventHandler("vrr.pedAnim", makePedPlayAnimation); addNetworkEventHandler("vrr.pedStopAnim", makePedStopAnimation); diff --git a/scripts/server/client.js b/scripts/server/client.js index bbbe71ef..bcd01a3d 100644 --- a/scripts/server/client.js +++ b/scripts/server/client.js @@ -1177,4 +1177,10 @@ function sendPlayerLocaleStrings(client) { } } +// ========================================================================== + +function sendNameTagDistanceToClient(client, distance) { + sendNetworkEventToPlayer("vrr.nameTagDistance", client, distance); +} + // ========================================================================== \ No newline at end of file diff --git a/scripts/server/command.js b/scripts/server/command.js index 0643be01..a0cd2913 100644 --- a/scripts/server/command.js +++ b/scripts/server/command.js @@ -178,6 +178,7 @@ function loadCommands() { new CommandData("setbizpickups", toggleServerBusinessPickupsCommand, "<0/1 state>", getStaffFlagValue("ManageServer"), true, true, "Toggles all business pickups on/off"), new CommandData("sethousepickups", toggleServerHousePickupsCommand, "<0/1 state>", getStaffFlagValue("ManageServer"), true, true, "Toggles all house pickups on/off"), new CommandData("setjobpickups", toggleServerJobPickupsCommand, "<0/1 state>", getStaffFlagValue("ManageServer"), true, true, "Toggles all job pickups on/off"), + new CommandData("nametagdistance", setServerNameTagDistanceCommand, "", getStaffFlagValue("ManageServer"), true, true, "Sets the distance at which name tags are displayed"), ], core: [], database: [ diff --git a/scripts/server/config.js b/scripts/server/config.js index 196cc097..5d8d0dbd 100644 --- a/scripts/server/config.js +++ b/scripts/server/config.js @@ -196,20 +196,11 @@ function loadServerConfigFromId(tempServerId) { function applyConfigToServer(tempServerConfig) { logToConsole(LOG_INFO, "[VRR.Config]: Applying server config ..."); getServerConfig().devServer = intToBool(toInteger(server.getCVar("vrr_devserver"))); - getServerConfig().fallingSnow = intToBool(toInteger(server.getCVar("vrr_fallingsnow"))); - getServerConfig().groundSnow = intToBool(toInteger(server.getCVar("vrr_groundsnow"))); - getServerConfig().useGUI = intToBool(toInteger(server.getCVar("vrr_gui"))); - getServerConfig().showLogo = false; getServerConfig().testerOnly = intToBool(toInteger(server.getCVar("vrr_testeronly"))); - getServerConfig().discordEnabled = false; - getServerConfig().createJobPickups = intToBool(toInteger(server.getCVar("vrr_jobpickups"))); - getServerConfig().createBusinessPickups = intToBool(toInteger(server.getCVar("vrr_businesspickups"))); - getServerConfig().createHousePickups = intToBool(toInteger(server.getCVar("vrr_housepickups"))); - getServerConfig().createJobBlips = intToBool(toInteger(server.getCVar("vrr_jobblips"))); - getServerConfig().createBusinessBlips = intToBool(toInteger(server.getCVar("vrr_businessblips"))); - getServerConfig().createHouseBlips = intToBool(toInteger(server.getCVar("vrr_houseblips"))); + getServerConfig().useRealTime = intToBool(toInteger(server.getCVar("vrr_realtime"))); getServerConfig().antiCheat.enabled = intToBool(toInteger(server.getCVar("vrr_anticheat"))); + logToConsole(LOG_DEBUG, "[VRR.Config]: Server config applied successfully!"); if(isTimeSupported()) { @@ -648,7 +639,7 @@ function toggleServerGUICommand(command, params, client) { getServerConfig().needsSaved = true; - announceAdminAction(`${getPlayerName(client)}{MAINCOLOUR} turned GUI ${toLowerCase(getOnOffFromBool(getServerConfig().useGUI))} for this server`); + announceAdminAction(`ServerGUISet`, `${getPlayerName(client)}{MAINCOLOUR}`, `{adminOrange}${getPlayerName(client)}{MAINCOLOUR}`, `${getBoolRedGreenInlineColour(getServerConfig().useGUI)}${toUpperCase(getOnOffFromBool(getServerConfig().useGUI))}{MAINCOLOUR}`); updateServerRules(); return true; } @@ -672,6 +663,7 @@ function toggleServerUseRealWorldTimeCommand(command, params, client) { //announceAdminAction(`${getPlayerName(client)}{MAINCOLOUR} turned real-world time ${getServerConfig().useRealTime} for this server (GMT ${addPositiveNegativeSymbol(getServerConfig().realTimeZone)})`); updateServerGameTime(); updateServerRules(); + messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} turned real-world time ${getOnOffFromBool(getServerConfig().useRealTime)} for this server (GMT ${addPositiveNegativeSymbol(getServerConfig().realTimeZone)})`); return true; } @@ -698,6 +690,8 @@ function setServerRealWorldTimeZoneCommand(command, params, client) { //announceAdminAction(`${getPlayerName(client)} {MAINCOLOUR}set the time zone for in-game's real-world time to GMT ${addPositiveNegativeSymbol(getServerConfig().realTimeZone)}`); updateServerGameTime(); updateServerRules(); + + messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} set the timezone for in-game real-world time to GMT ${addPositiveNegativeSymbol(getServerConfig().realTimeZone)}`); return true; } @@ -718,6 +712,7 @@ function reloadServerConfigurationCommand(command, params, client) { updateServerRules(); messagePlayerSuccess(client, `You reloaded the server configuration!`); + messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} reloaded the server config`); return true; } @@ -734,7 +729,7 @@ function reloadServerConfigurationCommand(command, params, client) { */ function reloadEmailConfigurationCommand(command, params, client) { getGlobalConfig().email = loadEmailConfig(); - messagePlayerSuccess(client, `You reloaded the email configuration!`); + messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} reloaded the email config`); return true; } @@ -757,12 +752,36 @@ function reloadDatabaseConfigurationCommand(command, params, client) { } databaseEnabled = false; getGlobalConfig().database = loadDatabaseConfig(); - messagePlayerSuccess(client, `You reloaded the database configuration!`); + messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} reloaded the database config`); databaseEnabled = true; if(getDatabaseConfig().usePersistentConnection) { connectToDatabase(); } + return true; +} +// =========================================================================== + +/** + * This is a command handler function. + * + * @param {string} command - The command name used by the player + * @param {string} params - The parameters/args string used with the command by the player + * @param {Client} client - The client/player that used the command + * @return {bool} Whether or not the command was successful + * + */ + function setServerNameTagDistanceCommand(command, params, client) { + if(areParamsEmpty(params)) { + messagePlayerSyntax(client, getCommandSyntaxText(command)); + return false; + } + + getServerConfig().nameTagDistance = toFloat(params); + getServerConfig().needsSaved = true; + + sendNameTagDistanceToClient(null, getServerConfig().nameTagDistance); + messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} set the name tag distance to ${getServerConfig().nameTagDistance}`); return true; } diff --git a/scripts/server/event.js b/scripts/server/event.js index 68ffb1ba..c799b4fe 100644 --- a/scripts/server/event.js +++ b/scripts/server/event.js @@ -605,6 +605,9 @@ function onPlayerSpawn(client) { logToConsole(LOG_DEBUG, `[VRR.Event] Updating all player name tags`); updateAllPlayerNameTags(); + logToConsole(LOG_DEBUG, `[VRR.Event] Sending player nametag distance to ${getPlayerDisplayForConsole(client)}`); + sendNameTagDistanceToClient(client, getServerConfig().nameTagDistance); + if(!areServerElementsSupported()) { sendAllBusinessesToPlayer(client); sendAllHousesToPlayer(client);