Add server-specific display names
This commit is contained in:
@@ -62,7 +62,7 @@ namespace PluralKit.Bot {
|
||||
.Build();
|
||||
}
|
||||
|
||||
public async Task<Embed> CreateMemberEmbed(PKSystem system, PKMember member)
|
||||
public async Task<Embed> CreateMemberEmbed(PKSystem system, PKMember member, IGuild guild)
|
||||
{
|
||||
var name = member.Name;
|
||||
if (system.Name != null) name = $"{member.Name} ({system.Name})";
|
||||
@@ -82,6 +82,10 @@ namespace PluralKit.Bot {
|
||||
|
||||
var messageCount = await _data.GetMemberMessageCount(member);
|
||||
|
||||
string guildDisplayName = null;
|
||||
if (guild != null)
|
||||
guildDisplayName = (await _data.GetMemberGuildSettings(member, guild.Id)).DisplayName;
|
||||
|
||||
var proxyTagsStr = string.Join('\n', member.ProxyTags.Select(t => $"`{t.ProxyString}`"));
|
||||
|
||||
var eb = new EmbedBuilder()
|
||||
@@ -92,11 +96,12 @@ namespace PluralKit.Bot {
|
||||
|
||||
if (member.AvatarUrl != null) eb.WithThumbnailUrl(member.AvatarUrl);
|
||||
|
||||
if (member.DisplayName != null) eb.AddField("Display Name", member.DisplayName, true);
|
||||
if (member.DisplayName != null) eb.AddField("Display Name", member.DisplayName.Truncate(1024), true);
|
||||
if (guild != null && guildDisplayName != null) eb.AddField($"Server Nickname (for {guild.Name})", guildDisplayName.Truncate(1024), true);
|
||||
if (member.Birthday != null) eb.AddField("Birthdate", member.BirthdayString, true);
|
||||
if (member.Pronouns != null) eb.AddField("Pronouns", member.Pronouns, true);
|
||||
if (member.Pronouns != null) eb.AddField("Pronouns", member.Pronouns.Truncate(1024), true);
|
||||
if (messageCount > 0) eb.AddField("Message Count", messageCount, true);
|
||||
if (member.HasProxyTags) eb.AddField("Proxy Tags", string.Join('\n', proxyTagsStr), true);
|
||||
if (member.HasProxyTags) eb.AddField("Proxy Tags", string.Join('\n', proxyTagsStr).Truncate(1024), true);
|
||||
if (member.Color != null) eb.AddField("Color", $"#{member.Color}", true);
|
||||
if (member.Description != null) eb.AddField("Description", member.Description, false);
|
||||
|
||||
|
@@ -99,6 +99,10 @@ namespace PluralKit.Bot
|
||||
// Make sure the system hasn't blacklisted the guild either
|
||||
var systemGuildCfg = await _data.GetSystemGuildSettings(match.System, channel.GuildId);
|
||||
if (!systemGuildCfg.ProxyEnabled) return;
|
||||
|
||||
// Also, check if the member has a guild nickname
|
||||
// TODO: roll this into the cached results as well as system/guild settings, maybe? Add a separate cache or something.
|
||||
var memberGuildCfg = await _data.GetMemberGuildSettings(match.Member, channel.GuildId);
|
||||
|
||||
// We know message.Channel can only be ITextChannel as PK doesn't work in DMs/groups
|
||||
// Afterwards we ensure the bot has the right permissions, otherwise bail early
|
||||
@@ -109,7 +113,7 @@ namespace PluralKit.Bot
|
||||
return;
|
||||
|
||||
// Get variables in order and all
|
||||
var proxyName = match.Member.ProxyName(match.System.Tag);
|
||||
var proxyName = match.Member.ProxyName(match.System.Tag, memberGuildCfg.DisplayName);
|
||||
var avatarUrl = match.Member.AvatarUrl ?? match.System.AvatarUrl;
|
||||
|
||||
// If the name's too long (or short), bail
|
||||
|
Reference in New Issue
Block a user