我正在使用触发成员加入的discordX 事件。
@Discord()
abstract class MemberEvent {
@On({ event: "guildMemberAdd" })
private async onJoin(member: GuildMember): Promise<void> {
console.log(member)
console.log(member.guild)
console.log(member.guild.id)
当我尝试获取会员时 - 一切正常,我得到完整的格式信息
[
GuildMember {
guild: Guild {
id: '...',
name: '...',
icon: null,
...
user: User {
id: '...',
bot: true,
system: false,
...
}
]
但是当我尝试获取
member.guild
或 member.guild.id
以便进一步使用时 - 我得到 undefined
代表 member.guild
或 TypeError: Cannot read properties of undefined (reading 'id')
代表 member.guild.id
。
Discord 开发门户上的Server Members Intent
已启用,机器人初始化也规定了GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.GuildMembers
DiscordX 处理事件的方式与 dicord.js 略有不同 您需要包装在数组中并使用 ArgsOf
[member]: ArgsOf<"guildMemberAdd">
像这样
@Discord()
abstract class MemberEvent {
@On({ event: "guildMemberAdd" })
private async onJoin([member]: ArgsOf<"guildMemberAdd">): Promise<void> {
console.log(member)
console.log(member.guild.id)