fix(bot): make tag enforcement check name formatting

This commit is contained in:
Iris System 2024-11-12 21:20:36 +13:00
parent a8c90cea8e
commit b26ca69071
2 changed files with 28 additions and 4 deletions

View file

@ -125,11 +125,17 @@ public class ProxyService
if (ctx.RequireSystemTag)
{
var tag = ctx.SystemGuildTag ?? ctx.SystemTag;
if (tag == null)
return "This server requires PluralKit users to have a system tag, but you do not have one set.";
if (!ctx.TagEnabled)
return "This server requires PluralKit users to have a system tag, but your system tag is disabled in this server.";
{
return "This server requires PluralKit users to have a system tag, but your system tag is disabled in this server. " +
"Use `pk;s servertag -enable` to enable it for this server.";
}
if (!ctx.HasProxyableTag())
{
return "This server requires PluralKit users to have a system tag, but you do not have one set. " +
"A system tag can be set for all servers with `pk;s tag`, or for just this server with `pk;s servertag`.";
}
}
var guild = await _cache.GetGuild(channel.GuildId.Value);

View file

@ -0,0 +1,18 @@
#nullable enable
namespace PluralKit.Core;
public static class MessageContextExt
{
public static bool HasProxyableTag(this MessageContext ctx)
{
var tag = ctx.SystemGuildTag ?? ctx.SystemTag;
if (!ctx.TagEnabled || tag == null)
return false;
var format = ctx.NameFormat ?? ProxyMember.DefaultFormat;
if (!format.Contains("{tag}"))
return false;
return true;
}
}