From a15c200c00b8931cee3a8bea8fa0f2c1429faf08 Mon Sep 17 00:00:00 2001 From: VENDETTA5 <58639745+VENDETTA5@users.noreply.github.com> Date: Sun, 6 Mar 2022 00:54:38 +0200 Subject: [PATCH 01/52] I made some further translations. --- locale/russian.json | 130 ++++++++++++++++++++++---------------------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/locale/russian.json b/locale/russian.json index 7580425c..31eead10 100644 --- a/locale/russian.json +++ b/locale/russian.json @@ -320,73 +320,73 @@ }, "ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.", - "HeaderPlayerHousesList": "Player Houses ({1})", - "HeaderPlayerStaffFlagsList": "Player Staff Flags ({1})", - "HeaderStaffFlagsList": "Staff Flags", - "NonRPName": "Non-RP name! Choose a new one:", - "InvalidStaffFlag": "Staff flag not found!", - "InvalidClanFlag": "Clan flag not found!", - "InvalidLocale": "Language not found!", - "HeaderJobUniformList": "Job Uniforms ({1})", - "HeaderJobEquipmentList": "Job Equipment ({1})", - "InvalidJobUniform": "Job uniform not found!", - "InvalidJobEquipment": "Job equipment not found!", - "HeaderVehiclesInRangeList": "Vehicles within {1}", - "NoVehiclesWithInRange": "There are no vehicles within {1}", - "AmountNotNumber": "The amount must be a number!", - "NeedToBeWorking": "You need to be working! Use {1} at a job location or near a job vehicle.", - "NeedToBeOnJobRoute": "You need to be doing a job route! Use {1} in a job vehicle", - "CurrentJobRouteDeleted": "The job route you were on has been deleted by an admin", - "CurrentJobRouteVehicleColoursChanged": "Your job route's vehicle colours were changed by an admin", - "NotYourJob": "This is not your job!", - "JobPoints": "You can get a job by going the yellow points on the map.", - "QuitJobToTakeAnother": "If you want this job, use {1} to quit your current job.", - "NotAJobVehicle": "This is not a job vehicle!", - "NotYourJobVehicle": "This is not your job's vehicle!", - "JobRouteDisabled": "The job route you were on has been disabled by an admin", - "HeaderPickupTypes": "Pickup Types", - "HeaderBlipTypes": "Map Icon Types", - "InvalidGPSLocation": "There are no locations with that name or type", - "HeaderBusinessList": "Businesses", - "VehicleForSale": "This {1} is buyable for {2}! Use {3} if you want to buy it", - "VehicleForRent": "This {1} is rentable for {2}! Use {3} if you want to rent it", + "HeaderPlayerHousesList": "Дома Игрока ({1})", + "HeaderPlayerStaffFlagsList": "Флаги игрока персонала ({1})", + "HeaderStaffFlagsList": "Флаги персонала", + "NonRPName": "Ваше имя не подходит для ролевой игры! Выберете другое:", + "InvalidStaffFlag": "Не удалось найти флаг персонала!", + "InvalidClanFlag": "Не удалось найти флаг клана!", + "InvalidLocale": "Не удалось найти язык!", + "HeaderJobUniformList": "Рабочие униформы ({1})", + "HeaderJobEquipmentList": "Рабочие снаряжение ({1})", + "InvalidJobUniform": "Не удалось найти рабочую униформу!", + "InvalidJobEquipment": "Не удалось найти рабочее снаряжение!", + "HeaderVehiclesInRangeList": "Транспорт в пределах {1}", + "NoVehiclesWithInRange": "Нет транспорта в пределах {1}", + "AmountNotNumber": "Количество должно быть введено цифрой!", + "NeedToBeWorking": "Вы должны быть на работе! Используйте {1} на месте работы или возле рабочего транспорта.", + "NeedToBeOnJobRoute": "Вы должны быть на рабочем маршруте! Используйте {1} в рабочем транспорте", + "CurrentJobRouteDeleted": "Рабочий маршрут на котором вы находились был удален администратором", + "CurrentJobRouteVehicleColoursChanged": "Цвет транспорта на маршруте был изменен администратором", + "NotYourJob": "Это работа пренадлежит не вам!", + "JobPoints": "Вы можете устроиться на работу ориентируясь по желтым значкам на карте.", + "QuitJobToTakeAnother": "Если хотите покинуть работу, ипользуйте {1}.", + "NotAJobVehicle": "Это не рабочий транспорт!", + "NotYourJobVehicle": "Этот транспорт пренадлежит не вашей работе!", + "JobRouteDisabled": "Рабочий маршрут на котором вы были был удален администратором", + "HeaderPickupTypes": "Типы подбираемых предметов", + "HeaderBlipTypes": "Типы иконок карты", + "InvalidGPSLocation": "Не существует локаций с таки именем или такого типа", + "HeaderBusinessList": "Бизнесы", + "VehicleForSale": "Этот {1} можно купить за {2}! Используйте {3} если хотите его купить", + "VehicleForRent": "Этот {1} может быть орендован за {2}! Используйте {3} если хотите его орендовать", "ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.", - "LoginFailedInvalidPassword": "Invalid password! {1} attempts remaining", - "LoginFailedNoPassword": "You must enter a password! ! {1} attempts remaining", - "RegistrationFailedNoPassword": "You must enter a password!", - "RegistrationFailedNoPasswordConfirm": "You must confirm the password!", - "RegistrationFailedNoEmail": "You must enter an email!", - "AccountNameAlreadyRegistered": "Your name is already registered!", - "AlreadyLoggedIn": "You are already logged in!", - "RegistrationFailedInvalidEmail": "That email is invalid!", - "RegistrationFailedPasswordMismatch": "The passwords don't match!", - "RegistrationFailedCreateError": "Your account couldn't be created!", - "RegistrationSuccess": "Your account has been created!", - "RegistrationEmailVerifyReminder": "Don't forget to verify your email! A verification code has been sent to you.", - "RegistrationCreateCharReminder": "To play on the server, you will need to make a character.", - "NoCharactersGUIMessage": "You have no characters. Would you like to make one?", - "NoCharactersGUIWindowTitle": "No characters", - "NoCharactersChatMessage": "You have no characters. Use {1} to make one.", - "NeedEmailFor2FA": "You need to add your email to your account to use two-factor authentication.", - "NeedEmailVerifiedFor2FA": "You need to verify your email to use two-factor authentication.", - "SetEmailHelpTip": "Use {1} to set your email.", - "VerifyEmailHelpTip": "Use {1} to verify your email.", + "LoginFailedInvalidPassword": "Неправельный пароль! Осталось {1} попыток", + "LoginFailedNoPassword": "Вы должны ввести пароль! Осталось {1} попыток", + "RegistrationFailedNoPassword": "Вы должны ввести пароль!", + "RegistrationFailedNoPasswordConfirm": "Вы должны подтвердить пароль!", + "RegistrationFailedNoEmail": "Вы должны ввести адрес электронной почты!", + "AccountNameAlreadyRegistered": "Ваше имя уже зарегистрировано!", + "AlreadyLoggedIn": "Вы уже вошли!", + "RegistrationFailedInvalidEmail": "Такого адреса не существует!", + "RegistrationFailedPasswordMismatch": "Пароли не совпадают!", + "RegistrationFailedCreateError": "Не удалось создать аккаунт!", + "RegistrationSuccess": "Ваш аккаунт был успешно создан!", + "RegistrationEmailVerifyReminder": "Не забудьте подтвердить ваш электронный адрес, код подверждения был послан вам на электронную почту.", + "RegistrationCreateCharReminder": "Чтобы играть на сервере, вам нужно будет создать персонажа.", + "NoCharactersGUIMessage": "У вас нет персонажей. Не хотите создать?", + "NoCharactersGUIWindowTitle": "Нет персонажей", + "NoCharactersChatMessage": "У вас нет персонажей. Используйте {1} чтобы создать.", + "NeedEmailFor2FA": "Вам нужно добавить ваш адрес электронной почты чтобы использовать двухфакторную аунтентификацию.", + "NeedEmailVerifiedFor2FA": "Вам нужно подтвердить вашу электронную почту чтобы использовать двухфакторную аунтентификацию.", + "SetEmailHelpTip": "Используйте {1} чтобы установить ваш адрес электронной почты.", + "VerifyEmailHelpTip": "Используйте {1} чтобы подтвердить ваш адрес электронной почты.", "ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.", - "NearbyRadio": "Nearby radio", - "FromRadio": "From radio", - "ToRadio": "To radio", - "NeedToEnterPropertyCommand": "You need to enter the {1} first! Use {2} to enter and exit", - "NeedToEnterPropertyKeyPress": "You need to enter the {1} first! Press {2} to enter and exit", - "InventoryFullCantCarry": "You don't have any space to carry this (full inventory)!", - "NotEnoughCashNeedAmountMore": "You don't have enough money! You need {1} more!", - "AmountMustBeMoreThan": "The amount must be more than {1}!", - "WeaponBanned": "You are not allowed to buy or use weapons!", - "TimeNotNumber": "The time must be a number", - "HeaderDefaultBusinessItemTypes": "Business Item Templates", - "FixingStuck": "Fixing your position and virtual world ...", - "CantUseCommandYet": "You must wait before you can use this command again!", - "NotATester": "You are not a tester!", - "AccessDenied": "AccessDenied" + "NearbyRadio": "Ближайшее радио", + "FromRadio": "Из радио", + "ToRadio": "В радио", + "NeedToEnterPropertyCommand": "Вам нужно сначало ввести {1}! Используйте {2} чтобы выйти", + "NeedToEnterPropertyKeyPress": "Вам нужно сначало ввести {1}! Используйте {2} чтобы выйти", + "InventoryFullCantCarry": "У вас недостаточно места в инвентаре(Инвентарь заполнен)!", + "NotEnoughCashNeedAmountMore": "У вас недостаточно денег! У вас не хватает {1}!", + "AmountMustBeMoreThan": "Количество должно быть больше {1}!", + "WeaponBanned": "Вам нельзя покупать оружие!", + "TimeNotNumber": "Время должно быть назначено цифрой", + "HeaderDefaultBusinessItemTypes": "Шаблоны предметов бизнеса", + "FixingStuck": "Исправляет вашу текущую позицию и виртуальный мир ...", + "CantUseCommandYet": "Подождите некоторое время перед тем как использовать комманду снова!", + "NotATester": "Вы не тестировщик!", + "AccessDenied": "Доступ запрещен" } From cd59a0ea4f01533736b8f20e72829682d9017b8a Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sat, 5 Mar 2022 22:02:56 -0600 Subject: [PATCH 02/52] Add some debug logging --- scripts/server/config.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/scripts/server/config.js b/scripts/server/config.js index e3144882..448b3dfe 100644 --- a/scripts/server/config.js +++ b/scripts/server/config.js @@ -75,9 +75,22 @@ let globalConfig = { // =========================================================================== -function loadGameConfig() { - return gameData; -}; +function initConfigScript() { + logToConsole(LOG_INFO, "[VRR.Config]: Initializing config script ..."); + logToConsole(LOG_DEBUG, "[VRR.Config]: Loading global config ..."); + loadGlobalConfig(); + + logToConsole(LOG_DEBUG, "[VRR.Config]: Loading server config ..."); + serverConfig = loadServerConfigFromGameAndPort(server.game, server.port, getMultiplayerMod()); + + logToConsole(LOG_DEBUG, "[VRR.Config]: Applying server config ..."); + applyConfigToServer(serverConfig); + + logToConsole(LOG_DEBUG, "[VRR.Config]: All config loaded and applied successfully!"); + + logToConsole(LOG_INFO, "[VRR.Config]: Config script initialized!"); +} + // =========================================================================== @@ -89,19 +102,6 @@ function loadGlobalConfig() { // =========================================================================== -function initConfigScript() { - logToConsole(LOG_INFO, "[VRR.Config]: Initializing config script ..."); - gameConfig = loadGameConfig(); - serverConfig = loadServerConfigFromGameAndPort(server.game, server.port, getMultiplayerMod()); - applyConfigToServer(serverConfig); - - loadGlobalConfig(); - - logToConsole(LOG_INFO, "[VRR.Config]: Config script initialized!"); -} - -// =========================================================================== - function loadServerConfigFromGameAndPort(gameId, port, mpMod) { let dbConnection = connectToDatabase(); if(dbConnection) { From 47d7ba1af2bd7eefb1ed5ee0789bf3477b4c5d3a Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sat, 5 Mar 2022 22:11:17 -0600 Subject: [PATCH 03/52] More debug logging --- scripts/server/config.js | 6 ++++-- scripts/server/core.js | 2 +- scripts/server/utilities.js | 14 +++++++++++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/scripts/server/config.js b/scripts/server/config.js index 448b3dfe..d258e5e7 100644 --- a/scripts/server/config.js +++ b/scripts/server/config.js @@ -85,7 +85,7 @@ function initConfigScript() { logToConsole(LOG_DEBUG, "[VRR.Config]: Applying server config ..."); applyConfigToServer(serverConfig); - + logToConsole(LOG_DEBUG, "[VRR.Config]: All config loaded and applied successfully!"); logToConsole(LOG_INFO, "[VRR.Config]: Config script initialized!"); @@ -144,10 +144,12 @@ function loadServerConfigFromId(tempServerId) { function applyConfigToServer(tempServerConfig) { if(isTimeSupported()) { - setGameTime(tempServerConfig.hour, tempServerConfig.minute, tempServerConfig.minuteDuration) + logToConsole(LOG_DEBUG, `[VRR.Config]: Setting time to to ${tempServerConfig.hour}:${tempServerConfig.minute} with minute duration of ${tempServerConfig.minuteDuration}`); + setGameTime(tempServerConfig.hour, tempServerConfig.minute, tempServerConfig.minuteDuration); } if(isWeatherSupported()) { + logToConsole(LOG_DEBUG, `[VRR.Config]: Setting weather to ${tempServerConfig.weather}`); game.forceWeather(tempServerConfig.weather); } diff --git a/scripts/server/core.js b/scripts/server/core.js index ee7b1cac..eff001ab 100644 --- a/scripts/server/core.js +++ b/scripts/server/core.js @@ -9,7 +9,7 @@ let scriptVersion = "1.0"; let serverStartTime = 0; -let logLevel = LOG_ERROR|LOG_WARN|LOG_INFO; +let logLevel = LOG_DEBUG; // =========================================================================== diff --git a/scripts/server/utilities.js b/scripts/server/utilities.js index 7c2ab01f..4238cefc 100644 --- a/scripts/server/utilities.js +++ b/scripts/server/utilities.js @@ -79,17 +79,25 @@ function initAllClients() { // =========================================================================== function updateServerRules() { + logToConsole(LOG_DEBUG, `[VRR.Utilities]: Updating all server rules ...`); if(isTimeSupported()) { - server.setRule("Time", makeReadableTime(getServerConfig().hour, getServerConfig().minute)); + let value = makeReadableTime(getServerConfig().hour, getServerConfig().minute); + logToConsole(LOG_DEBUG, `[VRR.Utilities]: Setting server rule "Time" as ${value}`); + server.setRule("Time", value); } if(isWeatherSupported()) { - server.setRule("Weather", getGameData().weatherNames[getServerGame()][getServerConfig().weather]); + let value = getGameData().weatherNames[getServerGame()][getServerConfig().weather]; + logToConsole(LOG_DEBUG, `[VRR.Utilities]: Setting server rule "Weather" as ${value}`); + server.setRule("Weather", value); } if(isSnowSupported()) { - server.setRule("Snowing", getYesNoFromBool(getServerConfig().fallingSnow)); + let value = getYesNoFromBool(getServerConfig().fallingSnow); + logToConsole(LOG_DEBUG, `[VRR.Utilities]: Setting server rule "Snowing" as ${value}`); + server.setRule("Snowing", value); } + logToConsole(LOG_DEBUG, `[VRR.Utilities]: All server rules updated successfully!`); } // =========================================================================== From f1443f2945ca35db6f2b1a82595698a1ffb61fcf Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sun, 6 Mar 2022 00:02:02 -0600 Subject: [PATCH 04/52] Some config fixes --- scripts/server/config.js | 16 ++++++++-------- scripts/server/startup.js | 3 ++- scripts/server/timers.js | 8 -------- scripts/server/utilities.js | 38 +++++++++++++++++++++++++++---------- 4 files changed, 38 insertions(+), 27 deletions(-) diff --git a/scripts/server/config.js b/scripts/server/config.js index d258e5e7..3c3aebe5 100644 --- a/scripts/server/config.js +++ b/scripts/server/config.js @@ -7,10 +7,10 @@ // TYPE: Server (JavaScript) // =========================================================================== -let serverConfig = {}; -let databaseConfig = {}; -let emailConfig = {}; -let gameConfig = {}; +let serverConfig = false; +let databaseConfig = false; +let emailConfig = false; +let gameConfig = false; // =========================================================================== @@ -222,10 +222,10 @@ function saveServerConfigToDatabase() { * @return {ServerData} - Server configuration data * */ -function getServerConfig(serverId = getServerId()) { - if(serverId != getServerId()) { - return loadServerConfigFromId(serverId); - } +function getServerConfig() { + //if(serverId != getServerId()) { + // return loadServerConfigFromId(serverId); + //} return serverConfig; } diff --git a/scripts/server/startup.js b/scripts/server/startup.js index bed6dc3d..6f051d32 100644 --- a/scripts/server/startup.js +++ b/scripts/server/startup.js @@ -40,11 +40,12 @@ function initServerScripts() { initLocaleScript(); initCommandScript(); - initTimers(); serverStartTime = getCurrentUnixTimestamp(); initAllClients(); + + initTimers(); } // =========================================================================== diff --git a/scripts/server/timers.js b/scripts/server/timers.js index 75a96ef1..699ffa6b 100644 --- a/scripts/server/timers.js +++ b/scripts/server/timers.js @@ -11,14 +11,6 @@ let serverTimers = {}; // =========================================================================== -function updateTimeRule() { - if(isTimeSupported()) { - server.setRule("Time", makeReadableTime(game.time.hour, game.time.minute)); - } -} - -// =========================================================================== - function saveAllServerDataToDatabase() { if(getServerConfig().pauseSavingToDatabase) { return false; diff --git a/scripts/server/utilities.js b/scripts/server/utilities.js index 4238cefc..373979d3 100644 --- a/scripts/server/utilities.js +++ b/scripts/server/utilities.js @@ -80,22 +80,30 @@ function initAllClients() { function updateServerRules() { logToConsole(LOG_DEBUG, `[VRR.Utilities]: Updating all server rules ...`); + + logToConsole(LOG_DEBUG, `[VRR.Utilities]: Time support: ${isTimeSupported()}`); if(isTimeSupported()) { - let value = makeReadableTime(getServerConfig().hour, getServerConfig().minute); - logToConsole(LOG_DEBUG, `[VRR.Utilities]: Setting server rule "Time" as ${value}`); - server.setRule("Time", value); + if(getServerConfig() != false) { + let value = makeReadableTime(getServerConfig().hour, getServerConfig().minute); + logToConsole(LOG_DEBUG, `[VRR.Utilities]: Setting server rule "Time" as ${value}`); + server.setRule("Time", value); + } } if(isWeatherSupported()) { - let value = getGameData().weatherNames[getServerGame()][getServerConfig().weather]; - logToConsole(LOG_DEBUG, `[VRR.Utilities]: Setting server rule "Weather" as ${value}`); - server.setRule("Weather", value); + if(getServerConfig() != false) { + let value = getGameData().weatherNames[getServerGame()][getServerConfig().weather]; + logToConsole(LOG_DEBUG, `[VRR.Utilities]: Setting server rule "Weather" as ${value}`); + server.setRule("Weather", value); + } } if(isSnowSupported()) { - let value = getYesNoFromBool(getServerConfig().fallingSnow); - logToConsole(LOG_DEBUG, `[VRR.Utilities]: Setting server rule "Snowing" as ${value}`); - server.setRule("Snowing", value); + if(getServerConfig() != false) { + let value = getYesNoFromBool(getServerConfig().fallingSnow); + logToConsole(LOG_DEBUG, `[VRR.Utilities]: Setting server rule "Snowing" as ${value}`); + server.setRule("Snowing", value); + } } logToConsole(LOG_DEBUG, `[VRR.Utilities]: All server rules updated successfully!`); } @@ -437,4 +445,14 @@ function kickAllClients() { getClients().forEach((client) => { client.disconnect(); }) -} \ No newline at end of file +} + +// =========================================================================== + +function updateTimeRule() { + if(isTimeSupported()) { + server.setRule("Time", makeReadableTime(game.time.hour, game.time.minute)); + } +} + +// =========================================================================== \ No newline at end of file From d9ae395254cba6d77de8ed22fa5e09c64b39b4b6 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sun, 6 Mar 2022 01:17:37 -0600 Subject: [PATCH 05/52] Rename game config util --- meta.xml | 40 +++++----- scripts/client/content.js | 8 +- scripts/client/gui.js | 13 +++- scripts/client/gui/clanmgr.js | 4 +- scripts/client/gui/login.js | 4 +- scripts/client/native/connected.js | 2 +- scripts/client/sync.js | 2 +- scripts/server/animation.js | 10 +-- scripts/server/config.js | 116 ++++++----------------------- scripts/server/event.js | 4 +- scripts/server/item.js | 2 +- scripts/server/job.js | 4 +- scripts/server/misc.js | 6 +- scripts/server/native/connected.js | 14 ++-- scripts/server/staff.js | 10 +-- scripts/server/subaccount.js | 20 ++--- scripts/server/utilities.js | 32 ++++---- scripts/shared/utilities.js | 40 +++++----- 18 files changed, 136 insertions(+), 195 deletions(-) diff --git a/meta.xml b/meta.xml index a4c5301a..1d3ed971 100644 --- a/meta.xml +++ b/meta.xml @@ -9,6 +9,7 @@