feat: implement claimlink new

This commit is contained in:
2026-07-12 18:49:54 +02:00
parent 3b63c5b4af
commit deafd98f40
2 changed files with 19 additions and 1 deletions
+17 -1
View File
@@ -113,7 +113,23 @@ public static class ClaimLinkChatCommand
admin.EndSubCommand();
}
public static TextCommandResult New(TextCommandCallingArgs args) => TextCommandResult.Success("stub: claimlinknew");
public static TextCommandResult New(TextCommandCallingArgs args)
{
string groupName = (string)args[0];
PlayerGroup? group = ClaimLinkModSystem.Groups.GetPlayerGroupByName(groupName);
if (group == null)
return TextCommandResult.Error($"No group named '{groupName}' exists.");
if (group.OwnerUID != args.Caller.Player.PlayerUID)
return TextCommandResult.Error($"You do not own the group '{groupName}'.");
if (ClaimLinkModSystem.Registry.Get(group.Uid) != null)
return TextCommandResult.Error($"'{groupName}' is already a claim link.");
ClaimLinkModSystem.Registry.Add(new ClaimLink { GroupId = group.Uid });
return TextCommandResult.Success($"'{groupName}' is now a claim link.");
}
public static TextCommandResult Link(TextCommandCallingArgs args) => TextCommandResult.Success("stub: claimlink link");
public static TextCommandResult Confirm(TextCommandCallingArgs args) => TextCommandResult.Success("stub: claimlink confirm");
public static TextCommandResult Cancel(TextCommandCallingArgs args) => TextCommandResult.Success("stub: claimlink cancel");
+2
View File
@@ -9,6 +9,7 @@ public class ClaimLinkModSystem : ModSystem
internal static ILandClaimAPI LandClaimAPI = null!;
internal static ILogger Logger = null!;
internal static ClaimLinkRegistry Registry = null!;
internal static IGroupManager Groups = null!;
internal ClaimLinkCommandListener? cmdListener;
public override bool ShouldLoad(EnumAppSide forSide) => forSide == EnumAppSide.Server;
@@ -18,6 +19,7 @@ public class ClaimLinkModSystem : ModSystem
LandClaimAPI = api.World.Claims;
Logger = api.Logger;
Registry = new ClaimLinkRegistry(api.WorldManager.SaveGame);
Groups = api.Groups;
cmdListener = new ClaimLinkCommandListener();
CommandHookModSystem.Register(cmdListener);