Adds a config flag for managing warps

This commit is contained in:
zontreck 2025-01-18 15:34:51 -07:00
parent e561ced568
commit e776a6bb9e
4 changed files with 42 additions and 2 deletions

View file

@ -20,6 +20,9 @@ namespace AriasServerUtils
internal static Dictionary<string, PlayerStorage> mPlayerData = new Dictionary<string, PlayerStorage>();
internal static Warps serverWarps = new Warps();
internal static string[] saveInvTypes = new string[] {
GlobalConstants.hotBarInvClassName,
GlobalConstants.backpackInvClassName,
@ -107,9 +110,16 @@ namespace AriasServerUtils
.HandleWith(Events.HandleUpdateASUBypass)
.EndSubCommand()
.WithDescription("Updates the ASU mod configuration")
.BeginSubCommand("onlyAdminManageWarps")
.RequiresPrivilege(Privilege.controlserver)
.WithArgs(
parsers.Bool("manageWarps")
)
.WithDescription("DANGER: This updates the flag allowing anybody to create warps, even non-admins. It is recommended to leave this alone. The default is true/on/yes")
.HandleWith(Events.HandleUpdateASUMgrWarps)
.EndSubCommand()
.EndSubCommand()
.BeginSubCommand("help")
.RequiresPlayer()
.RequiresPrivilege(Privilege.chat)
.HandleWith(Events.HandleASU)
.WithDescription("Lists all Aria's Server Utils commands")
@ -223,6 +233,8 @@ namespace AriasServerUtils
public void SaveGlobalConfig()
{
API.StoreModConfig<ASUModConfig>(config, GetConfigurationFile("global", ModConfigType.Global));
API.StoreModConfig<Warps>(serverWarps, GetConfigurationFile("warps", ModConfigType.Global));
}
private void OnGameReady()
@ -232,6 +244,10 @@ namespace AriasServerUtils
config = API.LoadModConfig<ASUModConfig>(GetConfigurationFile("global", ModConfigType.Global));
if (config == null) config = new ASUModConfig();
// -> Step 2. Load Mod Warps <-
serverWarps = API.LoadModConfig<Warps>(GetConfigurationFile("warps", ModConfigType.Global));
if (serverWarps == null) serverWarps = new Warps();
}
public string GetConfigurationFile(string sName, ModConfigType type)

View file

@ -211,5 +211,15 @@ namespace AriasServerUtils
return TextCommandResult.Success();
}
internal static TextCommandResult HandleUpdateASUMgrWarps(TextCommandCallingArgs args)
{
if (args[0] is bool mgr)
ServerUtilities.config.onlyAdminsCreateWarps = mgr;
else ServerUtilities.config.onlyAdminsCreateWarps = true;
ServerUtilities.MarkDirty();
return TextCommandResult.Success(Lang.Get($"{ServerUtilities.MOD_ID}:updatedconfig"));
}
}
}

View file

@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
namespace AriasServerUtils
{
@ -13,8 +14,21 @@ namespace AriasServerUtils
{
public int MaxHomes { get; set; } = 20;
public bool AdminsBypassMaxHomes { get; set; } = true;
public bool onlyAdminsCreateWarps { get; set; } = true;
public PlayerPosition Spawn { get; set; }
}
[Serializable]
public class Warp
{
public PlayerPosition Location;
}
[Serializable]
public class Warps
{
public Dictionary<string, Warp> warps = new Dictionary<string, Warp>();
}
}

View file

@ -4,7 +4,7 @@
"name": "Aria's Server Utilities",
"authors": ["zontreck"],
"description": "A collection of server utilities\n\nBuild Date: 01-18-2025 @ 03:18 PM",
"version": "1.0.1",
"version": "1.0.1-dev.1",
"dependencies": {
"game": ""
}