mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2025-10-14 21:22:49 +00:00
Refactoring Settings.cs
This commit is contained in:
parent
f16b1c118b
commit
16c1d1fd77
59 changed files with 3425 additions and 2180 deletions
|
|
@ -5,41 +5,59 @@ using System.Globalization;
|
|||
using System.IO;
|
||||
using MinecraftClient.Mapping;
|
||||
using MinecraftClient.Protocol.Handlers;
|
||||
using Tomlet.Attributes;
|
||||
|
||||
namespace MinecraftClient.ChatBots
|
||||
{
|
||||
class Map : ChatBot
|
||||
public class Map : ChatBot
|
||||
{
|
||||
public static Configs Config = new();
|
||||
|
||||
[TomlDoNotInlineObject]
|
||||
public class Configs
|
||||
{
|
||||
[NonSerialized]
|
||||
private const string BotName = "Map";
|
||||
|
||||
public bool Enabled = false;
|
||||
|
||||
[TomlInlineComment("$config.ChatBot.Map.Should_Resize$")]
|
||||
public bool Should_Resize = false;
|
||||
|
||||
[TomlInlineComment("$config.ChatBot.Map.Resize_To$")]
|
||||
public int Resize_To = 256;
|
||||
|
||||
[TomlInlineComment("$config.ChatBot.Map.Auto_Render_On_Update$")]
|
||||
public bool Auto_Render_On_Update = false;
|
||||
|
||||
[TomlInlineComment("$config.ChatBot.Map.Delete_All_On_Unload$")]
|
||||
public bool Delete_All_On_Unload = true;
|
||||
|
||||
[TomlInlineComment("$config.ChatBot.Map.Notify_On_First_Update$")]
|
||||
public bool Notify_On_First_Update = true;
|
||||
|
||||
public void OnSettingUpdate()
|
||||
{
|
||||
if (Resize_To < 128)
|
||||
Resize_To = 128;
|
||||
}
|
||||
}
|
||||
|
||||
private readonly string baseDirectory = @"Rendered_Maps";
|
||||
|
||||
private readonly Dictionary<int, McMap> cachedMaps = new();
|
||||
private bool shouldResize = true;
|
||||
private int resizeTo = 256;
|
||||
private bool autoRenderOnUpdate = true;
|
||||
private bool deleteAllOnExit = true;
|
||||
private bool notifyOnFirstUpdate = true;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
if (!Directory.Exists(baseDirectory))
|
||||
Directory.CreateDirectory(baseDirectory);
|
||||
|
||||
shouldResize = Settings.Map_Should_Resize;
|
||||
resizeTo = Settings.Map_Resize_To;
|
||||
|
||||
if (resizeTo < 128)
|
||||
resizeTo = 128;
|
||||
|
||||
autoRenderOnUpdate = Settings.Map_Auto_Render_On_Update;
|
||||
deleteAllOnExit = Settings.Map_Delete_All_On_Unload;
|
||||
notifyOnFirstUpdate = Settings.Map_Notify_On_First_Update;
|
||||
|
||||
RegisterChatBotCommand("maps", "bot.map.cmd.desc", "maps list|render <id> or maps l|r <id>", OnMapCommand);
|
||||
}
|
||||
|
||||
public override void OnUnload()
|
||||
{
|
||||
if (deleteAllOnExit)
|
||||
if (Config.Delete_All_On_Unload)
|
||||
{
|
||||
DirectoryInfo di = new(baseDirectory);
|
||||
FileInfo[] files = di.GetFiles();
|
||||
|
|
@ -124,7 +142,7 @@ namespace MinecraftClient.ChatBots
|
|||
{
|
||||
cachedMaps.Add(mapid, map);
|
||||
|
||||
if (notifyOnFirstUpdate)
|
||||
if (Config.Notify_On_First_Update)
|
||||
LogToConsoleTranslated("bot.map.received_map", map.MapId);
|
||||
}
|
||||
else
|
||||
|
|
@ -133,7 +151,7 @@ namespace MinecraftClient.ChatBots
|
|||
cachedMaps.Add(mapid, map);
|
||||
}
|
||||
|
||||
if (autoRenderOnUpdate)
|
||||
if (Config.Auto_Render_On_Update)
|
||||
GenerateMapImage(map);
|
||||
}
|
||||
|
||||
|
|
@ -165,8 +183,8 @@ namespace MinecraftClient.ChatBots
|
|||
|
||||
// Resize, double the image
|
||||
|
||||
if (shouldResize)
|
||||
image = ResizeBitmap(image, resizeTo, resizeTo);
|
||||
if (Config.Should_Resize)
|
||||
image = ResizeBitmap(image, Config.Resize_To, Config.Resize_To);
|
||||
|
||||
image.Save(fileName);
|
||||
LogToConsole(Translations.TryGet("bot.map.rendered", map.MapId, fileName));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue