diff --git a/MCGalaxy/Bots/BotsFile.cs b/MCGalaxy/Bots/BotsFile.cs index d8e1e6203..a5f4438e7 100644 --- a/MCGalaxy/Bots/BotsFile.cs +++ b/MCGalaxy/Bots/BotsFile.cs @@ -29,7 +29,8 @@ namespace MCGalaxy.Bots { return "extra/bots/" + mapName + ".json"; } - public static void Load(Level lvl) { + public static void Load(Level lvl) { lock (lvl.botsIOLock) { LoadCore(lvl); } } + static void LoadCore(Level lvl) { string path = BotsPath(lvl.MapName); if (!File.Exists(path)) return; string json = File.ReadAllText(path); @@ -49,7 +50,8 @@ namespace MCGalaxy.Bots { } } - public static void Save(Level lvl) { + public static void Save(Level lvl) { lock (lvl.botsIOLock) { SaveCore(lvl); } } + static void SaveCore(Level lvl) { PlayerBot[] bots = lvl.Bots.Items; string path = BotsPath(lvl.MapName); if (!File.Exists(path) && bots.Length == 0) return; @@ -67,7 +69,7 @@ namespace MCGalaxy.Bots { } catch (Exception ex) { Logger.Log(LogType.Warning, "Failed to save bots file"); Logger.LogError(ex); - } + } } static void LoadAi(BotProperties props, PlayerBot bot) { diff --git a/MCGalaxy/Levels/Level.Fields.cs b/MCGalaxy/Levels/Level.Fields.cs index d472b48b7..829e4aab8 100644 --- a/MCGalaxy/Levels/Level.Fields.cs +++ b/MCGalaxy/Levels/Level.Fields.cs @@ -74,7 +74,7 @@ namespace MCGalaxy { /// true if both worldChat and Server.worldChat are true. public bool SeesServerWideChat { get { return Config.ServerWideChat && ServerConfig.ServerWideChat; } } - internal readonly object queueLock = new object(), saveLock = new object(), savePropsLock = new object(); + internal readonly object queueLock = new object(), saveLock = new object(), savePropsLock = new object(), botsIOLock = new object(); public List blockqueue = new List(); BufferedBlockSender bulkSender;