How do I get the guild Id that user/member join to

34 views Asked by At

I'm using discordX events that triggers a member join .

@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)
        

When I try to get member - everything works fine, I get the full format information

[
  GuildMember {
    guild: Guild {
      id: '...',
      name: '...',
      icon: null,
...
    user: User {
      id: '...',
      bot: true,
      system: false,
...
  }
]

But when I try to get member.guild or member.guild.id for further use - I get undefined for member.guild or TypeError: Cannot read properties of undefined (reading 'id') for member.guild.id.

Server Members Intent on discord dev portal is enabled, also GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.GuildMembers is prescribed on bot initialisation

1

There are 1 answers

0
saccul On

DiscordX handles events a bit differently from discord.js. You need to wrap in an array and use ArgsOf [member]: ArgsOf<"guildMemberAdd">

Like this

@Discord()
abstract class MemberEvent {
    @On({ event: "guildMemberAdd" })
    private async onJoin([member]: ArgsOf<"guildMemberAdd">): Promise<void> {
        console.log(member)
        console.log(member.guild.id)