async function botAddBlock(user, bot, guild) { const logChannel = guild.channels.cache.get(raidLogsId); const time = Date.now(); let roles = ''; const userRoles = user.roles.cache.map(a => a).filter(a => a.name !== '@everyone'); if (userRoles.length !== 0) { const allRoles = []; await userRoles.forEach(role => { allRoles.push(`<@&${role.id}>`); }); roles = `${allRoles.join(', ')}` } let privs = 'N/A'; const isChatModerator = user.permissions.has([PermissionsBitField.Flags.ManageMessages, PermissionsBitField.Flags.ModerateMembers, PermissionsBitField.Flags.KickMembers, PermissionsBitField.Flags.BanMembers], true); const isVCModerator = user.permissions.has([PermissionsBitField.Flags.MuteMembers, PermissionsBitField.Flags.DeafenMembers, PermissionsBitField.Flags.MoveMembers], true); if (isChatModerator) privs = 'Chat Moderator'; if (isVCModerator) privs = 'Voice Channel Moderator'; if (isChatModerator && isVCModerator) privs = 'Server Moderator'; if (user.permissions.has(PermissionsBitField.Flags.Administrator)) privs = 'Server Administrator'; if (user.id == guild.ownerId) privs = 'Server Owner'; if (user.user?.bot) privs = 'Bot'; let privsB = 'N/A'; const isChatModeratorB = bot.permissions.has([PermissionsBitField.Flags.ManageMessages, PermissionsBitField.Flags.ModerateMembers, PermissionsBitField.Flags.KickMembers, PermissionsBitField.Flags.BanMembers], true); const isVCModeratorB = bot.permissions.has([PermissionsBitField.Flags.MuteMembers, PermissionsBitField.Flags.DeafenMembers, PermissionsBitField.Flags.MoveMembers], true); if (isChatModeratorB) privsB = 'Chat Moderator'; if (isVCModeratorB) privsB = 'Voice Channel Moderator'; if (isChatModeratorB && isVCModeratorB) privsB = 'Moderator'; if (bot.permissions.has(PermissionsBitField.Flags.Administrator)) privsB = 'Administrator'; const embed = new EmbedBuilder() .setTitle('Unauthorized Bot Addon') .setFooter({ text: 'Anti-Raid Sytem Trigger', iconURL: mainEmoji }) .setDescription(`${user} (@${user.nickname || user.user.globalName || user.user.username}) has added a new bot to the server while not being a trusted member, therefore their roles have been removed entirely and the bot has been kicked.`) .setTimestamp() .setColor(mainColor) .setThumbnail(`${user.displayAvatarURL({ dynamic : true })}`) .addFields( { name: 'Executer', value: `${user}\n(@${user.nickname || user.user.globalName || user.user.username})`, inline: true }, { name: 'Date', value: `\n`, inline: true }, { name: 'Executer Permissions', value: `${privs}`, inline: true }, { name: 'Executer Roles', value: `${roles}`, inline: false }, { name: 'Bot', value: `${bot}\n(@${bot.nickname || bot.user.globalName || bot.user.username})`, inline: true }, { name: 'Bot Created On', value: ``, inline: true }, { name: 'Bot Permissions', value: `${privsB}`, inline: true }, ); await bot.kick('Unauthorized Bot Addon (Anti-Raid Sytem Trigger)').catch( () => { } ); const allRoles = userRoles.map(a => a.id); if (allRoles.length > 0) await user.roles.remove(allRoles, 'Unauthorized Bot Addon (Anti-Raid Sytem Trigger)').catch( () => { } ); const trsted = trustedMembersIds.length > 0 ? `, <@${trustedMembersIds.join('>, <@')}>` : ''; logChannel.send({ embeds: [embed], content: `<@${guild.ownerId}>${trsted}` }); }