mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 13:53:45 +03:00
Upload
This commit is contained in:
110
addons/vyhub-gmod/lua/vyhub/shared/sh_lang.lua
Normal file
110
addons/vyhub-gmod/lua/vyhub/shared/sh_lang.lua
Normal file
@@ -0,0 +1,110 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
local f = string.format
|
||||
local json = VyHub.Lib.json
|
||||
|
||||
VyHub.Lang = VyHub.Lang or {}
|
||||
VyHub.lang = VyHub.lang or nil
|
||||
|
||||
if SERVER then
|
||||
util.AddNetworkString("vyhub_lang")
|
||||
|
||||
VyHub.Lang.compressed = VyHub.Lang.compressed or nil
|
||||
|
||||
function VyHub.Lang:load()
|
||||
local f_en = file.Open("vyhub/lang/en.json", "r", "LUA")
|
||||
|
||||
if f_en == nil then
|
||||
VyHub:msg("Missing language file en.json!!! PLEASE MAKE SURE TO DOWNLOAD VYHUB-GMOD ON THE GITHUB RELESES PAGE! https://github.com/matbyte-com/vyhub-gmod/releases", "error")
|
||||
return
|
||||
end
|
||||
|
||||
local en = json.decode(f_en:Read())
|
||||
f_en:Close()
|
||||
|
||||
if not istable(en) then
|
||||
VyHub:msg("Could not load language file en.json!", "error")
|
||||
return
|
||||
end
|
||||
|
||||
VyHub.lang = en
|
||||
|
||||
VyHub:msg("Loaded language en.")
|
||||
|
||||
if VyHub.Config.lang != 'en' then
|
||||
local f_custom = file.Open(f("vyhub/lang/%s.json", VyHub.Config.lang), "r", "LUA")
|
||||
|
||||
if f_custom != nil then
|
||||
local custom = json.decode(f_custom:Read())
|
||||
f_custom:Close()
|
||||
|
||||
if istable(custom) then
|
||||
table.Merge(VyHub.lang, custom)
|
||||
VyHub:msg(f("Loaded language %s.", VyHub.Config.lang))
|
||||
else
|
||||
VyHub:msg(f("Could not load language file %s.json!", VyHub.Config.lang), "warning")
|
||||
end
|
||||
else
|
||||
VyHub:msg(f("Missing language file %s.json.", VyHub.Config.lang), "warning")
|
||||
end
|
||||
end
|
||||
|
||||
VyHub.Lang.compressed = util.Compress(json.encode(VyHub.lang))
|
||||
end
|
||||
|
||||
if VyHub.lang == nil then
|
||||
VyHub.Lang:load()
|
||||
end
|
||||
|
||||
net.Receive("vyhub_lang", function(_, ply)
|
||||
if not IsValid(ply) then return end
|
||||
if not VyHub.Lang.compressed then return end
|
||||
|
||||
local len = #VyHub.Lang.compressed
|
||||
|
||||
net.Start("vyhub_lang")
|
||||
net.WriteUInt(len, 16)
|
||||
net.WriteData(VyHub.Lang.compressed, len)
|
||||
net.Send(ply)
|
||||
end)
|
||||
end
|
||||
|
||||
if CLIENT then
|
||||
function VyHub.Lang:load()
|
||||
net.Start("vyhub_lang")
|
||||
net.SendToServer()
|
||||
end
|
||||
|
||||
net.Receive("vyhub_lang", function()
|
||||
timer.Remove("vyhub_lang_load")
|
||||
|
||||
local len = net.ReadUInt(16)
|
||||
local lang_compr = net.ReadData(len)
|
||||
|
||||
VyHub.lang = json.decode(util.Decompress(lang_compr))
|
||||
|
||||
VyHub:msg("Loaded language.")
|
||||
|
||||
hook.Run("vyhub_lang_loaded")
|
||||
end)
|
||||
|
||||
hook.Add("Initialize", "vyhub_lang_Initialize", function ()
|
||||
VyHub.Lang:load()
|
||||
|
||||
timer.Create("vyhub_lang_load", 5, 5, function ()
|
||||
if VyHub.lang == nil then
|
||||
VyHub.Lang:load()
|
||||
else
|
||||
timer.Remove("vyhub_lang_load")
|
||||
end
|
||||
end)
|
||||
end)
|
||||
end
|
||||
Reference in New Issue
Block a user