Discord-Bot: Wie kann ich bei Rollenzuweisung automatisch eine Nachricht herausschicken lassen?
Ich habe mit diesem Code:
const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
const token = 'Bla Bla Bla'; // Ersetze dies durch deinen Bot-Token
const roleIdToMonitor = '1159625793589215232'; // Ersetze dies durch die ID der zu überwachenden Rolle
client.once('ready', () => {
console.log(`Eingeloggt als ${client.user.tag}`);
});
client.on('guildMemberUpdate', (oldMember, newMember) => {
const addedRoles = newMember.roles.cache.filter((role) => !oldMember.roles.cache.has(role.id));
if (addedRoles.has(roleIdToMonitor)) {
const user = newMember.user;
user.send('Herzlichen Glückwunsch! Du hast Access bekommen.');
}
});
client.login(token);
versucht, auf meinem Discord-Bot automatisch jemanden eine Nachricht zu senden, wenn ich ihm eine bestimmte Rolle zuweise. Der Bot ist online, das Skript aktiv, aber es passiert einfach nichts.
2 Antworten
Ich kann leider deinen Code aktuell nicht testen, da ich im Urlaub bin, aber probiere mal bitte aus
console.log("Output1")
an unterschiedliche Stellen in deinem Code zu packen umtuschauen eo das Problem genau liegt. Danach weißt bis wohin dein Code durchlaufen wird und kannst somit den Fehler lokalisieren.
Z.B. wenn in deinem Guildmemberupdate Event etwas ausgegeben wird aber in der If Abzweigung nicht dann liegt dein Problem sehr wahrscheinlich an den addedRoles
Du hast zwar Intents angegeben, aber ich würde es mal so probieren:
Discord.GatewayIntentBits.Guilds
Hier noch ein paar Infos über Intents:
https://discordjs.guide/popular-topics/intents.html
https://discord.com/developers/docs/topics/gateway#list-of-intents