diff --git a/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaClasses.cs b/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaClasses.cs index d9f9be6ff..5b30c980a 100644 --- a/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaClasses.cs +++ b/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaClasses.cs @@ -6,6 +6,7 @@ using Microsoft.Xna.Framework; using Barotrauma.Networking; using System.Threading.Tasks; using Barotrauma.Items.Components; +using System.IO; namespace Barotrauma { @@ -397,6 +398,26 @@ namespace Barotrauma } + private class LuaFile + { + // TODO: SANDBOXING + + public static string Read(string path) + { + return File.ReadAllText(path); + } + + public static void Write(string path, string text) + { + File.WriteAllText(path, text); + } + + public static bool Exists(string path) + { + return File.Exists(path); + } + } + // hooks: // chatMessage // think diff --git a/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaSetup.cs b/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaSetup.cs index f50fb1966..f5853193c 100644 --- a/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaSetup.cs +++ b/Barotrauma/BarotraumaServer/ServerSource/Lua/LuaSetup.cs @@ -7,6 +7,7 @@ using MoonSharp.Interpreter; using Microsoft.Xna.Framework; using System.Threading.Tasks; using Barotrauma.Items.Components; +using System.Diagnostics; namespace Barotrauma { @@ -92,6 +93,7 @@ namespace Barotrauma } + public LuaSetup() { PrintMessage("Lua!"); @@ -122,6 +124,7 @@ namespace Barotrauma UserData.RegisterType(); UserData.RegisterType(); UserData.RegisterType(); + UserData.RegisterType(); UserData.RegisterType(); UserData.RegisterType(); UserData.RegisterType(); @@ -174,6 +177,7 @@ namespace Barotrauma lua.Globals["Hook"] = hook; lua.Globals["Random"] = new LuaRandom(); lua.Globals["Timer"] = new LuaTimer(this); + lua.Globals["File"] = UserData.CreateStatic(); lua.Globals["WayPoint"] = UserData.CreateStatic(); lua.Globals["SpawnType"] = UserData.CreateStatic(); lua.Globals["ChatMessageType"] = UserData.CreateStatic();