feat: implement claimlink delete

This commit is contained in:
2026-07-12 19:54:13 +02:00
parent 4e97e25b38
commit acbc45483e
+24 -1
View File
@@ -291,7 +291,30 @@ public static class ClaimLinkChatCommand
});
}
public static TextCommandResult Delete(TextCommandCallingArgs args) => TextCommandResult.Success("stub: claimlink delete");
public static TextCommandResult Delete(TextCommandCallingArgs args)
{
string groupName = (string)args[0];
string playerUid = args.Caller.Player.PlayerUID;
TextCommandResult? err = TryResolveGroup(groupName, out PlayerGroup group);
if (err != null) return err;
err = TryResolveClaimLink(group, out ClaimLink link);
if (err != null) return err;
err = RequireOwner(args.Caller.Player, group);
if (err != null) return err;
int groupId = group.Uid;
return Stage(playerUid, $"'{groupName}' will be deleted as a claim link.", () =>
{
foreach (ClaimLinkMember member in link.Members)
RemovePending(member.OwnerPlayerUid);
ClaimLinkModSystem.Registry.Remove(groupId);
return TextCommandResult.Success($"'{groupName}' is no longer a claim link.");
});
}
public static TextCommandResult TransferOwnership(TextCommandCallingArgs args) => TextCommandResult.Success("stub: claimlink transferownership");
public static TextCommandResult Info(TextCommandCallingArgs args)