Bonjour, en ce moment j'essaie de coder un bot disocrd en .js et je n'arrive pas à mettre une commande dans un embed.
j'aimerai mettre tout particulièrement ces commandes dans un embed (différents embed bien-sûr):
if (!message.member.hasPermission('KICK_MEMBERS')) return message.channel.send('Vous n\'avez pas la permission d\'utiliser cette commande.')
const member = message.mentions.members.first()
if (!member) return message.channel.send('Veuillez mentionner le membre à exclure.')
if (member.id === message.guild.ownerID) return message.channel.send('Vous ne pouvez pas exclure le propriétaire du serveur.')
if (message.member.roles.highest.comparePositionTo(member.roles.highest) < 1 && message.author.id !== message.guild.ownerID) return message.channel.send('Vous ne pouvez pas exclure ce membre.')
if (!member.kickable) return message.channel.send('Le bot ne peut pas exclure ce membre.')
-
Bonjour, merci de m'avoir aider, mais quand je veux lancer le bot ça me met ça :
C:\Users\prénom\Documents\BOT H and A\commands\truc.js:19
if (!message.member.hasPermission('KICK_MEMBERS')) {
^
ReferenceError: message is not defined
at Object.<anonymous> (C:\Users\prénom\Documents\BOT H and A\commands\truc.js:19:1)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at C:\Users\prénom\Documents\BOT H and A\index.js:17:25
at Array.forEach (<anonymous>)
at C:\Users\prénom\Documents\BOT H and A\index.js:15:11
Bonjour est ce que tu as cette erreur depuis que tu as essayé d'ajouté la fonctionnalité du MessageEmbed dans ton code où tu l'avait déjà avant ?
L'erreur ReferenceError indique que tu as essayé de faire référence à une donnée qui n'existe pas (où plus) ici c'est la donnée message qui et mis en cause à ligne 19 du fichier:
C:\Users\prénom\Documents\BOT H and A\commands\truc.js
dans le code précédent que tu as montré on ne voit pas d'où provient la donnée message en principe avec l'api de discord les messages sont accessible via les paramètres de certains événement que le bot peut écouté, ton code complet doit ressemblé à peut près à ça:
// importe les composants depuis le package de discordjs
const {MessageEmbed, Client} = require('discord.js');
// instancie un nouveau client (le bot)
const client = new Client();
// prépare une fonction qui envoie des Message Embed
function sendEmbedMessage(channel, options) {
const embed = new MessageEmbed();
embed
.setTitle(options.title || "default title")
.setColor(options.color || 0xff0000)
.setDescription(options.description || "default description")
;
channel.send(embed);
return embed;
}
// écoute l'événement "ready" du client (le bot)
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
});
// écoute les erreurs émise par le client (le bot)
client.on('error', error => {
console.error(`le bot à crash avec le status: ${error.message}`);
throw new Error('le bot à crash :\'(');
});
// écoute les nouveaux messages sur le client (le bot)
client.on('message', message => {
// ici un nouveau message envoyé à était écouté
// le code d'exemple de la doc
// renvoi un message en retour
// <https://discord.js.org/#/docs/main/stable/general/welcome>
// if (msg.content === 'ping') {
// msg.reply('pong');
// }
// ci-dessous le traitement du message:
if (!message.member.hasPermission('KICK_MEMBERS')) {
return sendEmbedMessage(
message.channel,
{
title: "...",
description: "Vous n\'avez pas la permission d\'utiliser cette commande.",
// color: ...
}
);
}
const member = message.mentions.members.first();
if (!member) {
return sendEmbedMessage(
message.channel,
{
title: "...",
description: "Veuillez mentionner le membre à exclure.",
// color: ...
}
);
}
if (member.id === message.guild.ownerID) {
return sendEmbedMessage(
message.channel,
{
title: "...",
description: "Vous ne pouvez pas exclure le propriétaire du serveur.",
// color: ...
}
);
}
if (
message.member.roles.highest.comparePositionTo(member.roles.highest) < 1 &&
message.author.id !== message.guild.ownerID
) {
return sendEmbedMessage(
message.channel,
{
title: "...",
description: "Vous ne pouvez pas exclure ce membre.",
// color: ...
}
);
}
if (!member.kickable) {
return sendEmbedMessage(
message.channel,
{
title: "...",
description: "Le bot ne peut pas exclure ce membre.",
// color: ...
}
);
}
});
client.login('<TOKEN>');
Même si il y à plusieurs façon de l'écrire, le client dois se connecté à l'api puis on pose des écouteurs d'événement dessus et dans les fonctions de rappel on effectue des traitement en retour aux événements.
Et la référence de l'objet Client tu pourras retrouvé notamment tous les événements qui sont écoutable sur le client et les paramètres qui lui sont envoyé.
suggestion de présentation.
comment mettre une commande dans un embed
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
suggestion de présentation.
suggestion de présentation.