Advertisement
Techmo

translator_server

Jul 26th, 2018
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.15 KB | None | 0 0
  1. local translator_url = ''
  2. local verbose = true
  3. local lang_table = {}
  4.  
  5. AddCSLuaFile('autorun/client/utranslator_init.lua')
  6.  
  7. if(!file.Exists('utranslator', 'DATA')) then
  8.     file.CreateDir('utranslator')
  9. end
  10.  
  11. if(!file.Exists('utranslator/config.txt', 'DATA')) then
  12.     file.Write('utranslator/config.txt', '{\n"url": "http://127.0.0.1:1313/translate"\n}')
  13. end
  14.  
  15. translator_url = util.JSONToTable(file.Read('utranslator/config.txt', 'DATA'))['url']
  16.  
  17. if(translator_url == 'http://127.0.0.1:1313/translate') then
  18.     print('UniversalTranslator: [SERVER][WARNING] Default config file is being used. Located at "<gmod_directory>/data/utranslator/config.txt"')
  19. end
  20.  
  21. if(translator_url == '') then
  22.     print('UniversalTranslator: [SERVER][ERROR] Got empty string reading from config file, writing default config.')
  23.     file.Write('utranslator/config.txt', '{\n"url": "http://127.0.0.1:1313/translate"\n}')
  24. end
  25.  
  26. util.AddNetworkString("TranslatorURL")
  27. util.AddNetworkString("LanguageTable")
  28. util.AddNetworkString("LanguageEntry")
  29. util.AddNetworkString("PlayerLanguage")
  30.  
  31. hook.Add("PlayerInitialSpawn", "player_spawn_translator_hook", function(ply)
  32.     if IsValid(ply) then
  33.         if verbose then
  34.             print("Sending translation url to client: " .. translator_url)
  35.         end
  36.         net.Start("TranslatorURL")
  37.         net.WriteString(translator_url)
  38.         net.Send(ply)
  39.  
  40.         if verbose then
  41.             print("Sending language table to client")
  42.         end
  43.  
  44.  
  45.         --if #player.GetAll() > 1 then -- Don't send an empty table to the first player
  46.             net.Start("LanguageTable")
  47.             net.WriteTable(lang_table)
  48.             net.Send(ply)
  49.         --end
  50.     end
  51. end )
  52.  
  53. net.Receive("PlayerLanguage", function()
  54.     local lang_e = net.ReadTable()
  55.  
  56.     if lang_e["name"] != nil and lang_e["language"] != nil then
  57.         lang_table[lang_e["name"]] = lang_e["language"]
  58.         net.Start("LanguageEntry")
  59.         net.WriteTable({name = lang_e["name"], language = lang_e["language"]})
  60.         net.Broadcast()
  61.     else
  62.         print('UniversalTranslator: [SERVER][ERROR] Received invalid language entry from client')
  63.     end
  64. end )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement