From 279d5bbd37d5696b196ac4619d0a4b9ae66a3ff9 Mon Sep 17 00:00:00 2001 From: Egezenn Date: Thu, 15 Oct 2026 12:08:24 +0300 Subject: [PATCH] Save Region.Id instead of Region struct in PlayerConfig - Store numeric Region.Id (ushort) when setting RSBot.Area.Region in training areas - Ensures clean serialization and avoids type mismatch when parsing configuration --- Application/OasisBot/Views/Main.cs | 2 +- .../RSBot.Training/Components/TrainingAreaScriptCommand.cs | 4 ++-- Botbases/RSBot.Training/TrainingManager.cs | 4 ++-- Botbases/RSBot.Training/Views/Dialogs/TrainingAreasDialog.cs | 4 ++-- Botbases/RSBot.Training/Views/Main.cs | 2 +- .../Components/Command/AreaCommandExecutor.cs | 4 ++-- .../RSBot.Python/Components/API/Core/Training/API.Training.cs | 4 ++-- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Application/OasisBot/Views/Main.cs b/Application/OasisBot/Views/Main.cs index e89cad07..6782d7dd 100644 --- a/Application/OasisBot/Views/Main.cs +++ b/Application/OasisBot/Views/Main.cs @@ -589,7 +589,7 @@ private void btnStartSetArea_Click(object sender, EventArgs e) if (!Kernel.Bot.Running) { var pos = Game.Player.Position; - PlayerConfig.Set("RSBot.Area.Region", pos.Region); + PlayerConfig.Set("RSBot.Area.Region", pos.Region.Id); PlayerConfig.Set("RSBot.Area.X", pos.XOffset); PlayerConfig.Set("RSBot.Area.Y", pos.YOffset); PlayerConfig.Set("RSBot.Area.Z", pos.ZOffset); diff --git a/Botbases/RSBot.Training/Components/TrainingAreaScriptCommand.cs b/Botbases/RSBot.Training/Components/TrainingAreaScriptCommand.cs index d68c7616..5e10156e 100644 --- a/Botbases/RSBot.Training/Components/TrainingAreaScriptCommand.cs +++ b/Botbases/RSBot.Training/Components/TrainingAreaScriptCommand.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using RSBot.Core; using RSBot.Core.Components.Scripting; using RSBot.Core.Event; @@ -59,7 +59,7 @@ public bool Execute(string[] arguments = null) ) return false; - PlayerConfig.Set("RSBot.Area.Region", region); + PlayerConfig.Set("RSBot.Area.Region", region.Id); PlayerConfig.Set("RSBot.Area.X", xPos); PlayerConfig.Set("RSBot.Area.Y", yPos); PlayerConfig.Set("RSBot.Area.Z", zPos); diff --git a/Botbases/RSBot.Training/TrainingManager.cs b/Botbases/RSBot.Training/TrainingManager.cs index cf9bce54..b6a5fdeb 100644 --- a/Botbases/RSBot.Training/TrainingManager.cs +++ b/Botbases/RSBot.Training/TrainingManager.cs @@ -1,4 +1,4 @@ -using System.Timers; +using System.Timers; using RSBot.Core; using RSBot.Core.Components; using RSBot.Core.Event; @@ -22,7 +22,7 @@ public static void ApplyTrainingArea(float x, float y, ushort region) { Position pos = new(x, y, region); - PlayerConfig.Set("RSBot.Area.Region", pos.Region); + PlayerConfig.Set("RSBot.Area.Region", pos.Region.Id); PlayerConfig.Set("RSBot.Area.X", pos.XOffset); PlayerConfig.Set("RSBot.Area.Y", pos.YOffset); PlayerConfig.Set("RSBot.Area.Z", pos.ZOffset); diff --git a/Botbases/RSBot.Training/Views/Dialogs/TrainingAreasDialog.cs b/Botbases/RSBot.Training/Views/Dialogs/TrainingAreasDialog.cs index c3afc9ee..10c756d8 100644 --- a/Botbases/RSBot.Training/Views/Dialogs/TrainingAreasDialog.cs +++ b/Botbases/RSBot.Training/Views/Dialogs/TrainingAreasDialog.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Linq; using System.Windows.Forms; using RSBot.Core; @@ -35,7 +35,7 @@ private void buttonAccept_Click(object sender, EventArgs e) return; } - PlayerConfig.Set("RSBot.Area.Region", trainingArea.Position.Region); + PlayerConfig.Set("RSBot.Area.Region", trainingArea.Position.Region.Id); PlayerConfig.Set("RSBot.Area.X", trainingArea.Position.XOffset); PlayerConfig.Set("RSBot.Area.Y", trainingArea.Position.YOffset); PlayerConfig.Set("RSBot.Area.Z", trainingArea.Position.ZOffset); diff --git a/Botbases/RSBot.Training/Views/Main.cs b/Botbases/RSBot.Training/Views/Main.cs index 39ded006..4adf8bc5 100644 --- a/Botbases/RSBot.Training/Views/Main.cs +++ b/Botbases/RSBot.Training/Views/Main.cs @@ -212,7 +212,7 @@ private void btnGetCurrent_Click(object sender, EventArgs e) { var pos = Game.Player.Position; - PlayerConfig.Set("RSBot.Area.Region", pos.Region); + PlayerConfig.Set("RSBot.Area.Region", pos.Region.Id); PlayerConfig.Set("RSBot.Area.X", pos.XOffset); PlayerConfig.Set("RSBot.Area.Y", pos.YOffset); PlayerConfig.Set("RSBot.Area.Z", pos.ZOffset); diff --git a/Plugins/RSBot.CommandCenter/Components/Command/AreaCommandExecutor.cs b/Plugins/RSBot.CommandCenter/Components/Command/AreaCommandExecutor.cs index 56c17447..e6af1c8a 100644 --- a/Plugins/RSBot.CommandCenter/Components/Command/AreaCommandExecutor.cs +++ b/Plugins/RSBot.CommandCenter/Components/Command/AreaCommandExecutor.cs @@ -1,4 +1,4 @@ -using RSBot.Core; +using RSBot.Core; using RSBot.Core.Components.Command; using RSBot.Core.Event; @@ -17,7 +17,7 @@ public bool Execute(bool silent) $"[RSBot] Setting training area to X={Game.Player.Position.X:0.00} Y={Game.Player.Position.Y:0.00} R=50" ); - PlayerConfig.Set("RSBot.Area.Region", Game.Player.Position.Region); + PlayerConfig.Set("RSBot.Area.Region", Game.Player.Position.Region.Id); PlayerConfig.Set("RSBot.Area.X", Game.Player.Position.XOffset.ToString("0.0")); PlayerConfig.Set("RSBot.Area.Y", Game.Player.Position.YOffset.ToString("0.0")); PlayerConfig.Set("RSBot.Area.Z", Game.Player.Position.ZOffset.ToString("0.0")); diff --git a/Plugins/RSBot.Python/Components/API/Core/Training/API.Training.cs b/Plugins/RSBot.Python/Components/API/Core/Training/API.Training.cs index 38fe2aac..8625b5a1 100644 --- a/Plugins/RSBot.Python/Components/API/Core/Training/API.Training.cs +++ b/Plugins/RSBot.Python/Components/API/Core/Training/API.Training.cs @@ -1,4 +1,4 @@ -using System; +using System; using Python.Runtime; using RSBot.Core; using RSBot.Core.Event; @@ -65,7 +65,7 @@ private bool SetTrainingPosition(float x, float y, ushort region, int radius) var area = Kernel.Bot.Botbase.Area; Position pos = new(x, y, region); - PlayerConfig.Set("RSBot.Area.Region", pos.Region); + PlayerConfig.Set("RSBot.Area.Region", pos.Region.Id); PlayerConfig.Set("RSBot.Area.X", pos.XOffset); PlayerConfig.Set("RSBot.Area.Y", pos.YOffset); PlayerConfig.Set("RSBot.Area.Z", pos.ZOffset);