mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 18:54:31 +00:00
Discord: add PluralKit sender identity resolver (#5838)
* Discord: add PluralKit sender identity resolver * fix: resolve PluralKit sender identities (#5838) (thanks @thewilloftheshadow)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import type { Guild, Message, User } from "@buape/carbon";
|
||||
import { formatAgentEnvelope, type EnvelopeFormatOptions } from "../../auto-reply/envelope.js";
|
||||
import { formatDiscordUserTag, resolveTimestampMs } from "./format.js";
|
||||
import { resolveTimestampMs } from "./format.js";
|
||||
import { resolveDiscordSenderIdentity } from "./sender-identity.js";
|
||||
|
||||
export function resolveReplyContext(
|
||||
message: Message,
|
||||
@@ -17,8 +18,12 @@ export function resolveReplyContext(
|
||||
if (!referencedText) {
|
||||
return null;
|
||||
}
|
||||
const fromLabel = referenced.author ? buildDirectLabel(referenced.author) : "Unknown";
|
||||
const body = `${referencedText}\n[discord message id: ${referenced.id} channel: ${referenced.channelId} from: ${formatDiscordUserTag(referenced.author)} user id:${referenced.author?.id ?? "unknown"}]`;
|
||||
const sender = resolveDiscordSenderIdentity({
|
||||
author: referenced.author,
|
||||
pluralkitInfo: null,
|
||||
});
|
||||
const fromLabel = referenced.author ? buildDirectLabel(referenced.author, sender.tag) : "Unknown";
|
||||
const body = `${referencedText}\n[discord message id: ${referenced.id} channel: ${referenced.channelId} from: ${sender.tag ?? sender.label} user id:${sender.id}]`;
|
||||
return formatAgentEnvelope({
|
||||
channel: "Discord",
|
||||
from: fromLabel,
|
||||
@@ -28,9 +33,10 @@ export function resolveReplyContext(
|
||||
});
|
||||
}
|
||||
|
||||
export function buildDirectLabel(author: User) {
|
||||
const username = formatDiscordUserTag(author);
|
||||
return `${username} user id:${author.id}`;
|
||||
export function buildDirectLabel(author: User, tagOverride?: string) {
|
||||
const username =
|
||||
tagOverride?.trim() || resolveDiscordSenderIdentity({ author, pluralkitInfo: null }).tag;
|
||||
return `${username ?? "unknown"} user id:${author.id}`;
|
||||
}
|
||||
|
||||
export function buildGuildLabel(params: { guild?: Guild; channelName: string; channelId: string }) {
|
||||
|
||||
Reference in New Issue
Block a user