如何获取用户/会员加入的公会ID

问题描述 投票:0回答:1

我正在使用触发成员加入的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

discord discord.js
1个回答
0
投票

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)
© www.soinside.com 2019 - 2024. All rights reserved.