Track LocalMods as part of monolith

This commit is contained in:
2026-06-08 18:50:16 +03:00
parent 143f2fed7c
commit 1b214b44c2
1287 changed files with 139255 additions and 1 deletions
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<text language="Chinese">
<luacs.enforced.kickmessage>需要客戶端 LuaCs 才能在此伺服器上玩!在 Barotrauma Steam 工作坊頁面上搜尋「Lua For Barotrauma」,並按照說明進行安裝。</luacs.enforced.kickmessage>
<luacs.svenforced.heartbeat>已收到來自的客戶端 LuaCs 心跳 </luacs.svenforced.heartbeat>
</text>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<text language="ChineseSimplified">
<luacs.enforced.kickmessage>需要客户端 LuaCs 才能在此服务器上玩! 在 Barotrauma steam 创意工坊页面上搜索“Lua For Barotrauma”,然后按照说明进行安装。</luacs.enforced.kickmessage>
<luacs.svenforced.heartbeat>收到来自的客户端 LuaCs 心跳 </luacs.svenforced.heartbeat>
</text>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<text language="English">
<luacs.enforced.kickmessage>Client-side LuaCs is required to play on this server! Search for "Lua For Barotrauma" on the Barotrauma steam workshop page and follow the instructions on how to install it.</luacs.enforced.kickmessage>
<luacs.svenforced.heartbeat>Received Client-side LuaCs heartbeat from </luacs.svenforced.heartbeat>
</text>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<text language="French">
<luacs.enforced.kickmessage>LuaCs côté client est requis pour jouer sur ce serveur ! Recherchez "Lua For Barotrauma" sur la page du workshop Steam de Barotrauma et suivez les instructions pour l'installer.</luacs.enforced.kickmessage>
<luacs.svenforced.heartbeat>Heartbeat LuaCs côté client reçu de </luacs.svenforced.heartbeat>
</text>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<text language="German">
<luacs.enforced.kickmessage>Client-seitiges LuaCs ist erforderlich, um auf diesem Server zu spielen! Suchen Sie auf der Steam-Workshop-Seite von Barotrauma nach "Lua For Barotrauma" und befolgen Sie die Installationsanweisungen.</luacs.enforced.kickmessage>
<luacs.svenforced.heartbeat>Client-seitiger LuaCs-Heartbeat empfangen von </luacs.svenforced.heartbeat>
</text>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<text language="Japanese">
<luacs.enforced.kickmessage>このサーバーでプレイするには、クライアント側のLuaCsが必要です!Barotrauma Steamワークショップページで「Lua For Barotrauma」を検索し、インストール方法の指示に従ってください。</luacs.enforced.kickmessage>
<luacs.svenforced.heartbeat>クライアント側のLuaCsハートビートを受信しました </luacs.svenforced.heartbeat>
</text>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<text language="Korean">
<luacs.enforced.kickmessage>이 서버에서 플레이하려면 클라이언트 측 LuaCs가 필요합니다! Barotrauma Steam 창작마당 페이지에서 "Lua For Barotrauma"를 검색하고 설치 방법에 대한 지침을 따르십시오.</luacs.enforced.kickmessage>
<luacs.svenforced.heartbeat>클라이언트 측 LuaCs 하트비트 수신: </luacs.svenforced.heartbeat>
</text>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<text language="Russian">
<luacs.enforced.kickmessage>Для игры на этом сервере требуется клиентский LuaCs! Найдите "Lua For Barotrauma" в мастерской Barotrauma в Steam и следуйте инструкциям по установке. (и не забудьте изучить описание)</luacs.enforced.kickmessage>
<luacs.svenforced.heartbeat>Получен сигнал от клиентского LuaCs от </luacs.svenforced.heartbeat>
</text>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<text language="Ukrainian">
<luacs.enforced.kickmessage>Для гри на цьому сервері потрібен клієнтський LuaCs! Знайдіть "Lua For Barotrauma" на сторінці майстерні Steam для Barotrauma та дотримуйтесь інструкцій зі встановлення.</luacs.enforced.kickmessage>
<luacs.svenforced.heartbeat>Отримано heartbeat клієнтського LuaCs від </luacs.svenforced.heartbeat>
</text>
@@ -0,0 +1,5 @@
if SERVER then return end
if Game.IsSingleplayer then return end
local message = Networking.Start("client_side_enforced")
Networking.Send(message)
@@ -0,0 +1,61 @@
if CLIENT then return end
LuaCsClientSideEnforced = {}
LuaCsClientSideEnforced.KickTimer = 30
LuaUserData.RegisterType("Barotrauma.Networking.FileSender")
local function IsDownloading(client)
for key, value in pairs(Game.Server.FileSender.ActiveTransfers) do
if value.Connection == client.Connection then
return true
end
end
return false
end
local clients = {}
local function GetOrCreateData(client)
if not clients[client] then
clients[client] = {}
clients[client].HasInstalled = false
clients[client].KickTimer = 0
end
return clients[client]
end
-- assume every already connected client has already client-side installed
for _, client in pairs(Client.ClientList) do
local data = GetOrCreateData(client)
data.HasInstalled = true
data.KickTimer = 0
end
Networking.Receive("client_side_enforced", function(message, client)
local data = GetOrCreateData(client)
if data.HasInstalled then return end
data.HasInstalled = true
data.KickTimer = 0
Logger.Log(TextManager.Get("luacs.svenforced.heartbeat").Value .. client.Name, Color.Green)
end)
Hook.Add("client.connected", "ClientSideEnforced", function (client)
GetOrCreateData(client)
end)
Hook.Add("think", "ClientSideEnforced", function(client)
for client, data in pairs(clients) do
if not data.HasInstalled and not IsDownloading(client) then
if data.KickTimer > LuaCsClientSideEnforced.KickTimer then
client.Kick(TextManager.Get("luacs.enforced.kickmessage").Value)
else
data.KickTimer = data.KickTimer + 1/60
end
end
end
end)
+2
View File
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<Items></Items>
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<contentpackage name="LuaCsClientSideEnforced" modversion="1.2" corepackage="False" steamworkshopid="3088784724" gameversion="1.11.5.0" expectedhash="2041F2E740C7ADE69E7BBB6CF2CC1403">
<Item file="%ModDir%/dummyitem.xml" />
<Text file="%ModDir%/Content/Texts/English.xml" />
<Text file="%ModDir%/Content/Texts/Russian.xml" />
<Text file="%ModDir%/Content/Texts/Chinese.xml" />
<Text file="%ModDir%/Content/Texts/ChineseSimplified.xml" />
<Text file="%ModDir%/Content/Texts/Ukrainian.xml" />
<Text file="%ModDir%/Content/Texts/German.xml" />
<Text file="%ModDir%/Content/Texts/French.xml" />
<Text file="%ModDir%/Content/Texts/Korean.xml" />
<Text file="%ModDir%/Content/Texts/Japanese.xml" />
</contentpackage>