Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Server Boost Tracker Bot Discord [closed]

Help me to send a message when someone Boost The Server, here some code for example. Please help me, guys :)

bot.on('guildMemberUpdate', (oldMember, newMember) => {
    if(oldMember.roles.size < newmember.roles.size) {
        const fetchedLogs = await oldMember.guild.fetchAuditLogs({
        limit: 1,
        type: 'MEMBER_ROLE_UPDATE',
    });

        const roleAddLog = fetchedLogs.entries.first();
        if (!roleAddLog ) return;
        const { executor, target, extra } = kickLog;
        console.log(`Role ${extra.name} added to ${<@target.id>} by ${<@executor.id>}`)
    }
});
like image 459
tototot DEV Avatar asked Jun 12 '26 23:06

tototot DEV


2 Answers

You can use GuildMember#premiumSince for an approach that does not rely on roles:

bot.on('guildMemberUpdate', (oldMember, newMember) => {
  if (oldMember.premiumSince !== newMember.premiumSince) {
    //your code here
  }
});
like image 152
Levi_OP Avatar answered Jun 15 '26 12:06

Levi_OP


You can check if the Nitro Booster role gets assigned to a member:

bot.on('guildMemberUpdate', async (oldMember, newMember) => {
  const hadRole = oldMember.roles.find(role => role.name === 'Nitro Booster');
  const hasRole = newMember.roles.find(role => role.name === 'Nitro Booster');

  if (!hadRole && hasRole) {
    newMember.guild.channels.get(/* channel ID */).send('Someone boosted the server');
  }

  // if you want to check which members are boosted, you can check how many have the `Nitro Booster` role:
  const boostedUsers = newMember.guild.members.array().filter(member => member.roles.find(role => role.name === 'Nitro Booster'));

  console.log(boostedUsers.length); // how many members are boosted
});
like image 37
Daemon Beast Avatar answered Jun 15 '26 12:06

Daemon Beast



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!