add auto role for new member and member in vocal

This commit is contained in:
Arthur Puechberty
2026-01-16 00:25:06 +01:00
parent 2164c13a04
commit cfa4f05a2d
8 changed files with 688 additions and 248 deletions
+48
View File
@@ -42,6 +42,18 @@ client.on(Events.GuildMemberAdd, member => {
}
}
);
db.get(
"SELECT enabled, role_id FROM autorole_newuser_config WHERE guild_id = ?",
[member.guild.id],
(err, row) => {
if (err || !row || !row.enabled) return;
const role = member.guild.roles.cache.get(row.role_id);
if (role) {
member.roles.add(role);
}
}
);
});
@@ -67,6 +79,42 @@ client.on(Events.GuildMemberRemove, member => {
});
client.on(Events.VoiceStateUpdate, (oldState, newState) => {
if (newState.member.user.bot) return;
const guildId = newState.guild.id;
db.get(
"SELECT enabled, role_id, exclude_channel_ids FROM autorole_vocal_config WHERE guild_id = ?",
[guildId],
(err, row) => {
if (err || !row || !row.enabled) return;
let excludeChannelIds = [];
try {
excludeChannelIds = row.exclude_channel_ids
? JSON.parse(row.exclude_channel_ids)
: [];
} catch (err) {
console.error("Erreur parsing exclude_channel_ids", err);
excludeChannelIds = [];
}
const role = newState.guild.roles.cache.get(row.role_id);
if (!role) return;
// User joins a voice channel and it's not excluded et a pas déjà le rôle
if (newState.channelId && !excludeChannelIds.includes(newState.channelId) && !newState.member.roles.cache.has(role.id)) {
newState.member.roles.add(role);
}
// User leaves a voice channel or joins an excluded one
else if (!newState.channelId || excludeChannelIds.includes(newState.channelId)) {
newState.member.roles.remove(role);
}
}
);
});
client.login(process.env.BOT_TOKEN);
module.exports = client;