Was ist Falsch bzw was ist mit dem error gemeint?
Hi ich will gerade einen DC bot programmieren und bekomme die ganze Zeit diesen error
/root/invite_tracker_bot/index.js:5
Intents.FLAGS.GUILDS,
^
TypeError: Cannot read properties of undefined (reading 'FLAGS')
at Object.<anonymous> (/root/invite_tracker_bot/index.js:5:17)
at Module._compile (node:internal/modules/cjs/loader:1233:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1287:10)
at Module.load (node:internal/modules/cjs/loader:1091:32)
at Module._load (node:internal/modules/cjs/loader:938:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:83:12)
at node:internal/main/run_main_module:23:47
Node.js v20.5.1
ich habe schon mehrfach npm install discord.js gemacht aber es bringt nicht nodejs ist auch neuste version ich habe keine ahnung was der Fehler ist. den Code Packe ich in als Kommentar an die frage ran
was kann ich machen?
Danke im vorraus
1 Antwort
const { Client, Intents, MessageEmbed } = require('discord.js');
const client = new Client({
intents: [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MESSAGES,
// Hier weitere Intents hinzufügen, wenn benötigt
]
});
const prefix = '/'; // Das Präfix für Bot-Befehle
client.once('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
});
client.on('messageCreate', async message => {
if (message.author.bot) return; // Verhindere, dass der Bot auf seine eigenen Nachrichten reagiert
if (!message.content.startsWith(prefix)) return; // Ignoriere Nachrichten ohne Präfix
const args = message.content.slice(prefix.length).trim().split(/ +/);
const command = args.shift().toLowerCase();
if (command === 'setchannel') {
// Überprüfe, ob der Befehl von einem Administrator gesendet wurde
if (!message.member.permissions.has('ADMINISTRATOR')) {
return message.reply('Du hast nicht die Berechtigung, diesen Befehl auszuführen.');
}
// Überprüfe, ob ein Channel erwähnt wurde
const mentionedChannel = message.mentions.channels.first();
if (!mentionedChannel) {
return message.reply('Du musst einen Channel erwähnen, um ihn als Einladungslink-Channel festzulegen.');
}
// Speichere den erwähnten Channel in einer Datenbank oder einer globalen Variable
// Zum Beispiel: botConfig.inviteChannel = mentionedChannel.id;
// Beachte, dass du die Datenbank-Integration je nach deinen Anforderungen implementieren musst
message.reply(`Der Einladungslink-Channel wurde auf ${mentionedChannel} festgelegt.`);
}
if (command === 'getinvites') {
// Hole die Einladungen für den Server
const invites = await message.guild.fetchInvites();
// Suche nach dem gewünschten Einladungslink
const targetInvite = invites.find(invite => invite.url === 'DEIN_EINLADUNGSLINK');
if (!targetInvite) {
return message.reply('Der angegebene Einladungslink wurde nicht gefunden.');
}
// Hole die Anzahl der beigetretenen Mitglieder über diesen Link
const joinedMembers = targetInvite.uses || 0;
// Berechne die verbleibende Zeit der Einladung
const currentTime = new Date();
const expirationTime = targetInvite.expiresAt || currentTime; // Falls die Einladung nicht abläuft
const timeDifference = expirationTime - currentTime;
const remainingTime = timeDifference > 0 ? timeDifference / 1000 : 0; // In Sekunden
// Erstelle ein Embed mit den Informationen
const embed = new Discord.MessageEmbed()
.setTitle('Einladungslink Informationen')
.setDescription(`Einladungslink: ${targetInvite.url}\nAnzahl der Beigetretenen: ${joinedMembers}\nVerbleibende Zeit: ${remainingTime} Sekunden`)
.setColor('#3498db'); // Beispiel-Farbe, du kannst diese anpassen
message.channel.send({ embeds: [embed] });
}
});
client.login('Hier Steht der Mein eigentlicher Token');