WEBSTORM erkennt .send Funktion nicht?
Bei folgendem Code sind die Methoden .send und .awaitReaction unterstrichen.
"Unresolved function or method send()"
Ich habe discord.js und so schon installiert. Muss man da sonst noch etwas importieren, damit .send usw. funktionieren?
const { Client, MessageEmbed, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
const TOKEN = 'Mein Token';
const channelId = 'ChannelID'; // Die ID des Textkanals, in dem die Nachrichten erstellt werden sollen
const userGroup = []; // Die Liste der Benutzer, die aufgelistet werden sollen
const options = ['Option 1', 'Option 2', 'Option 3', 'Option 4', 'Option 5']; // Die Auswahlmöglichkeiten
let currentIndex = 0; // Aktueller Index der Benutzergruppe
client.on('ready', () => {
console.log(`Eingeloggt als ${client.user.tag}`);
});
client.on('messageCreate', async (message) => {
console.log("P - Start des Event-Handlers");
if (message.author.bot) return;
if (message.content.startsWith('!start')) {
console.log("P - !start erkannt");
if (currentIndex < userGroup.length) {
const user = await client.users.fetch(userGroup[currentIndex]);
// Erstelle eine Nachricht mit den Auswahlmöglichkeiten
const embed = new MessageEmbed() // Hier MessageEmbed verwenden
.setTitle('Wähle eine Option:')
.setDescription(options.join('\n'));
const sentMessage = message.guild.channels.cache.get(channelId);
await sentMessage.send(embed);
console.log("P - Nachricht gesendet");
// Füge Reaktionen hinzu
for (let i = 0; i < options.length; i++) {
await sentMessage.react(String(i + 1) + '\u20E3'); // Emoji-Reaktionen (1️⃣, 2️⃣, usw.)
}
// Warte auf eine Reaktion des aktuellen Benutzers
const filter = (reaction, user) => user.id === userGroup[currentIndex];
const collected = await sentMessage.awaitReactions(filter, { max: 1, time: 60000 }); // 60 Sekunden Zeit zum Reagieren
if (collected.size === 0) {
message.guild.channels.cache.get(channelId).send(`${user.tag} hat keine Option ausgewählt.`);
} else {
const chosenOption = options[parseInt(collected.first().emoji.name) - 1];
message.guild.channels.cache.get(channelId).send(`${user.tag} hat "${chosenOption}" ausgewählt.`);
// Hier kannst du die gewünschte Aktion ausführen, basierend auf der ausgewählten Option
}
// Lösche die ursprüngliche Nachricht und die Auswahl-Nachricht
await message.delete();
sentMessage.delete();
currentIndex++; // Zum nächsten Benutzer in der Gruppe wechseln
} else {
message.channel.send('Alle Benutzer aus der Gruppe wurden aufgelistet.');
}
}
});
console.log('Bot starting');
client.login(TOKEN);
1 Antwort
Embeds werden folgendermaßen versendet:
channel.send({ embeds: [exampleEmbed] });
Außerdem hast du sentMessage als Kanal definiert. .react() ist eine Funktion, die nur bei messages funktioniert.
Woher ich das weiß:eigene Erfahrung – Bin viel (vielleicht zu viel) auf Discord unterwegs