From de8bcc012890de9308348b7797ab37b56fbe151c Mon Sep 17 00:00:00 2001 From: Rob Taylor Date: Wed, 10 Feb 2021 23:06:26 +0000 Subject: [PATCH] Merging locale.lua into messaging.lua. This is an attempt to fix a messaging.lua bug, being unable to load getTranslations function. --- lua/autorun/shared.lua | 11 ++--- lua/discord/utils/locale.lua | 82 --------------------------------- lua/discord/utils/messaging.lua | 81 +++++++++++++++++++++++++++++++- 3 files changed, 85 insertions(+), 89 deletions(-) delete mode 100644 lua/discord/utils/locale.lua diff --git a/lua/autorun/shared.lua b/lua/autorun/shared.lua index af90797..756b0f5 100644 --- a/lua/autorun/shared.lua +++ b/lua/autorun/shared.lua @@ -1,5 +1,10 @@ AddCSLuaFile() +include("discord/utils/logging.lua") +include("discord/utils/messaging.lua") +include("discord/utils/discord_connection.lua") +include("discord/utils/http.lua") + resource.AddFile("materials/icon256/mute.png") if (CLIENT) then shouldDrawMute = false @@ -20,12 +25,6 @@ if (CLIENT) then return end -include("discord/utils/locale.lua") -include("discord/utils/messaging.lua") -include("discord/utils/logging.lua") -include("discord/utils/discord_connection.lua") -include("discord/utils/http.lua") - util.AddNetworkString("drawMute") util.AddNetworkString("connectDiscordID") util.AddNetworkString("discordPlayerTable") diff --git a/lua/discord/utils/locale.lua b/lua/discord/utils/locale.lua deleted file mode 100644 index a11f332..0000000 --- a/lua/discord/utils/locale.lua +++ /dev/null @@ -1,82 +0,0 @@ -include("./logging.lua") - -CreateConVar("discord_language", "english", 1, "Set the language you want user prompts to be in.") - -local availableLanguages = {} -function getAvailableLanguages() - if (table.Count(availableLanguages) <= 0) then - local foundLocaleFiles, _ = file.Find("discord/locale/*.lua", "lsv") - for i, localeFileName in ipairs(foundLocaleFiles) do - table.insert(availableLanguages, string.Replace(localeFileName, ".lua", "")) - end - end - return availableLanguages -end -getAvailableLanguages() -print_debug("Available languages: ", util.TableToJSON(availableLanguages)) - -local selectedLanguage = "english" -function getSelectedLanguage() - local selectedLanguage = GetConVar("discord_language"):GetString() - if (table.HasValue(getAvailableLanguages(), selectedLanguage)) then - selectedLanguage = selectedLanguage - end - return selectedLanguage -end -getSelectedLanguage() -print_debug("Selected language: ", selectedLanguage) - -local translationsCache = {} -local function getTranslationsCache() - if (table.Count(translationsCache) <= 0) then - print_debug("Caching language files:") - local localesTable = getAvailableLanguages() - for i, localeFileName in ipairs(localesTable) do - translationsCache[localeFileName] = include("discord/locale/" .. localeFileName .. ".lua") - print_debug(" -", "discord/locale/" .. localeFileName .. ".lua") - end - end - return translationsCache -end -getTranslationsCache() - -local translations = {} -function getTranslations() - local selectedLanguage = getSelectedLanguage() - local translationsCache = getTranslationsCache() - translations = translationsCache[selectedLanguage] - return translations -end -getTranslations() -print_debug("Translations:", util.TableToJSON(translations, true)) - -util.AddNetworkString("discordAvailableLanguages") -util.AddNetworkString("request_discordAvailableLanguages") -net.Receive("request_discordAvailableLanguages", function( len, calling_ply ) - if (!calling_ply:IsSuperAdmin()) then - return - end - local availableLanguages = getAvailableLanguages() - local availableLanguagesJSON = util.TableToJSON(availableLanguages) - local availableLanguagesCompressed = util.Compress(availableLanguagesJSON) - - net.Start("discordAvailableLanguages") - net.WriteUInt(#availableLanguagesCompressed, 32) - net.WriteData(availableLanguagesCompressed, #availableLanguagesCompressed) - net.Send(calling_ply) -end) - -util.AddNetworkString("discordSelectedLanguage") -util.AddNetworkString("request_discordSelectedLanguage") -net.Receive("request_discordSelectedLanguage", function( len, calling_ply ) - if (!calling_ply:IsSuperAdmin()) then - return - end - local selectedLanguage = getSelectedLanguage() - local selectedLanguageCompressed = util.Compress(selectedLanguage) - - net.Start("discordSelectedLanguage") - net.WriteUInt(#selectedLanguageCompressed, 32) - net.WriteData(selectedLanguageCompressed, #selectedLanguageCompressed) - net.Send(calling_ply) -end) diff --git a/lua/discord/utils/messaging.lua b/lua/discord/utils/messaging.lua index 3e40767..a61faa7 100644 --- a/lua/discord/utils/messaging.lua +++ b/lua/discord/utils/messaging.lua @@ -1,4 +1,83 @@ -include("./locale.lua") +CreateConVar("discord_language", "english", 1, "Set the language you want user prompts to be in.") + +local availableLanguages = {} +function getAvailableLanguages() + if (table.Count(availableLanguages) <= 0) then + local foundLocaleFiles, _ = file.Find("discord/locale/*.lua", "lsv") + for i, localeFileName in ipairs(foundLocaleFiles) do + table.insert(availableLanguages, string.Replace(localeFileName, ".lua", "")) + end + end + return availableLanguages +end +getAvailableLanguages() +print_debug("Available languages: ", util.TableToJSON(availableLanguages)) + +local selectedLanguage = "english" +function getSelectedLanguage() + local selectedLanguage = GetConVar("discord_language"):GetString() + if (table.HasValue(getAvailableLanguages(), selectedLanguage)) then + selectedLanguage = selectedLanguage + end + return selectedLanguage +end +getSelectedLanguage() +print_debug("Selected language: ", selectedLanguage) + +local translationsCache = {} +local function getTranslationsCache() + if (table.Count(translationsCache) <= 0) then + print_debug("Caching language files:") + local localesTable = getAvailableLanguages() + for i, localeFileName in ipairs(localesTable) do + translationsCache[localeFileName] = include("discord/locale/" .. localeFileName .. ".lua") + print_debug(" -", "discord/locale/" .. localeFileName .. ".lua") + end + end + return translationsCache +end +getTranslationsCache() + +local translations = {} +function getTranslations() + local selectedLanguage = getSelectedLanguage() + local translationsCache = getTranslationsCache() + translations = translationsCache[selectedLanguage] + return translations +end +getTranslations() +print_debug("Translations:", util.TableToJSON(translations, true)) + +util.AddNetworkString("discordAvailableLanguages") +util.AddNetworkString("request_discordAvailableLanguages") +net.Receive("request_discordAvailableLanguages", function( len, calling_ply ) + if (!calling_ply:IsSuperAdmin()) then + return + end + local availableLanguages = getAvailableLanguages() + local availableLanguagesJSON = util.TableToJSON(availableLanguages) + local availableLanguagesCompressed = util.Compress(availableLanguagesJSON) + + net.Start("discordAvailableLanguages") + net.WriteUInt(#availableLanguagesCompressed, 32) + net.WriteData(availableLanguagesCompressed, #availableLanguagesCompressed) + net.Send(calling_ply) +end) + +util.AddNetworkString("discordSelectedLanguage") +util.AddNetworkString("request_discordSelectedLanguage") +net.Receive("request_discordSelectedLanguage", function( len, calling_ply ) + if (!calling_ply:IsSuperAdmin()) then + return + end + local selectedLanguage = getSelectedLanguage() + local selectedLanguageCompressed = util.Compress(selectedLanguage) + + net.Start("discordSelectedLanguage") + net.WriteUInt(#selectedLanguageCompressed, 32) + net.WriteData(selectedLanguageCompressed, #selectedLanguageCompressed) + net.Send(calling_ply) +end) function playerMessage(translation_key, target_ply, ...) local translations = getTranslations()