#javascript-typescript
1 messages · Page 3 of 1
if(!interaction.member.permissions.has("BanMembers")) return interaction.reply("Vous n'avez pas les permissions de ban ce membre !", { ephemeral: true })
j'ai bien mis BanMembers
GatewayIntentBits tu parles bien de ça ?
mon bot a les perm admin de base donc c'est pour ça je comprends pas
bon j'ai pas reussi a importer le dossier ini oes fichier ou quois du coup j'ai fais un doubleen txt
comme sa sa s'ouvre partout
les commandes
et le events
@neat lintel tu serais dispo demain pour qu’on regarde ça ?
@civic fractal du coup tout y ets ^^
désolé pour ma presence un pex aléatoir je faisez plusieure truc a cotév x'3
normalement demain j'ai rien a fair donc si sa te derange pas ^^`
*au passage, jsp si on peux sa peux fonctionner en ajtant juste un truc dan sle messagecreate, pour que quand un gif, est envoye ( un lein qui commace par https://tenor.com/view/ blablabla, )le lein se mette en message avat l'embed , pour que le gif s'affiche
@copper pagoda Ah ça ne fonctionne pas pour les fields ?
try {
const invalidFieldID = new EmbedBuilder()
.setColor(0x2f3136)
.setDescription(`Désolé. Field invalide`)
if (!(/[0-9]/g).test(embedService2)) {
return interaction.reply({ embeds: invalidFieldID, ephemeral: true })
}
embedService.addFields({
name: ':invite: Vendu par :', value: `<@${embedService2}>`, inline: true
})
}
catch (error) {
embedService.addFields({
name: 'ID du membre invalide', value: null, inline: true
})
}
En gros si l'utilisateur ne rentre pas un ID valide ça envoi une erreur en embed Désolé. Field invalide mais je sais pas si ça fonctionne comme ça avec les fields
TypeError: this.options.embeds?.map is not a function
Il faut mettre un array dans le fields non ?
Où est l'handler ?
Bah l'array est fait non ? avec name, valeur et inline ?
Peux-tu mettre tout ton code dans un Pastebin pour mieux comprendre ?
Hastebin is a free web-based pastebin service for storing and sharing text and code snippets with anyone. Get started now.
@left forum
Pour envoyer du code sur Discord c'est très simple !
||Il vous faut d'abord du code... Et deux cubes de Kubor !
||
En vrai, il faut utiliser les blocs de code de Discord :
Pour cela entoure ton code de ceci : ```
Par exemple :
```js
console.log("Salut Creators Area !")
```
Le résultat sera le suivant :
console.log("Salut Creators Area !")
```*Si tu es sur téléphone, tu ne verras pas le bloc de code*
> *TIPS: Si ton code est trop long, tu peux le coller sur [pastebin.com](https://pastebin.com/) et envoyer le lien par message.*
Oui ?
Il faut les [].
embedService.addFields([{
name: ':invite: Vendu par :', value: `<@${embedService2}>`, inline: true
}])
Comme ça parce que je sais que si je fais l'embed en json il me les faut.
ah car je t'avoue j'ai suivi la doc pour la v14 et ils disent de faire ça :
c'est pour cela que je n'ai pas mis de []
Peut être que ça vient du null alors mais bon ça m'étonnerai car l'erreur correspond pas le map correspond aux array.
Ici tu as oublié les []
Dans le reply pour l'embed
Punaise le boubourse ..
Merci bcp grand .. erreur bête en plus 
De rien écoute.
Et j'y pense, au lieu de faire comme ça :
if (!(/[0-9]/g).test(embedService2)) {
return interaction.reply({ embeds: [invalidFieldID], ephemeral: true })
Je peux peut être diretcement vérifier si ce que entre un utilisateur est un ID valide ou non ? (avec interaction.user.id) non ?
Tu peux vérifier avec la méthode fetch si elle te retourne quelque chose c'est que l'user existe sinon il existe pas.
en v14 on l'écrit différemment ?
Euh je ne pense pas je vérifie dans la doc.
Non y a rien qui change.
Bonjour
Je sais pas trop, il est sûrement ailleurs car il y avait rien d'autre dans ces deux dossiers
Il faut donc chercher
Étant en vacances, je répondrais dans la soirée sûrement
Bonjour, j'aimerais savoir comment faire car le setActivity ne marche pas mais je n'ai aucune erreurs
const Discord = require("discord.js")
module.exports = async bot => {
console.log(`${bot.user.tag} est en ligne !`)
bot.user.setActivity(`${bot.guilds.cache.size} serveurs`, { type: 'WATCHING' });
}
Merci d'avance pour l'aide
Bonjour, tu es en quelle version de discord.js ?
v14 😬
ah
Remplace WATCHING par 3
J'ai remplacer par du coup ActivityType.Watching et sa marche
Tu as vu sa sur la doc ?
Oki nickel alors.
Ouais.
Ah bah je l'avais même pas vu, bon bah merci et désolé du dérangement pour pas grand choses ^^
De rien écoute tout le plaisir est pour moi 😉
😁
Tout est passé en number dans la v14 j’ai remarqué
C'est la nouveauté ouais que ça soit pour les channels, les boutons, les intents y a pas mal de truc
ca marche.
bon j'ai pas trouver le ffichier que tu m'as dit, j'ai un peux farfouiller et je trouve rien qui a ll'aire de correspondre dans tout ca, du coup je peux imite envoyer directement tout le truc, vu que y'as quasiment rine.
mais peux etre que le dev ne me l'as pas mis dans le dossier qu'il m'avais envoyé, et dans ce cas je ne sais comment faire
Bonjours je viens tout juste de me lancer dans un développement d'un bot discord j'ai suivi donc des tuto y tb pour commencé mais le code ne fonctionne quelqu'un c'est ou il a une erreur svp ?
Avec l'erreur c'est mieux, et attention au fautes de frappe
à mon avis tu regardes un tuto pour V13 et tu as installé la V14 de discord.js
a je fait comment ducoup ?
Euh sachant que tu débutes essaye plutôt de trouver un tuto en V14 pour que tu comprennes mieux après si tu tiens à rester en V13.
Tu mets dans ton package.json là où tu as discord.js tu mets ^13.9.1
Et après tu fais npm i dans ton terminale.
Pour récupérer le embedService.setImage(embedImage4) sur un embed dans un autre fichier
Est ce que ceci est bon :
const imageService = await interaction.channel.fetch(embedService.image.url)
Tu as eu le code sur GitHub ?
Bonjour je voudrais savoir si c'est possible avec une commande de édit un embed a l'aide de son id
Genre de juste changer son title er sa couleur ma il garde la même description
C'est juste pour savoir si on peut le faire
Après je me débrouille
Ok mrc et il a des code déjà fait pour des tickets discord en discord.js 14.0.0?
Bonjour, est ce qu'un bot peut régir à un message qui lui meme à envoyer ?
non du tout
c'est quelun qui a coder le bot pour moi directement
enfin je lui est dit ce que je voulais, ce que j'avais besoin que le bot fasse les fonctions a mettre comment il fonctioneras ect... et le gar c'est occuper de me coder tout ca
mais c'est pas moi qui l'es mis en ligne la 1er fois, vu que y'avais des test a fair de mon coté ect.. et que j'avais rien pour le host au debut, du coup bha il avais host le truc chez lui au 1er demarage a la base
c'est pour ca que je demandez si j'avasi pas une commanede a faire hors discord de mon coté pour que ca dise au truc de se syncro pour les commandes ect... vu que j'ai pas fais la mise en service, je sais pas si il y a effectivement quelque chose de spécifique a faire pour que les commandes soit syncro ou si c'est sensé le fair tout seul
(car pour le resumer, j'ai donc ce bot qui a les commandes et qui fonctione, et , j'ai fais un deuxiemme bot qui lui sera dédié a des evenement ,et on en revein a ce que je disez, c'est exactement le meme code que le permier, c'est le meme dosier qui est importer dans termux ect... j'ai juste changer le token, mais du coup, bah le 2eme qui est simplement la copie de celui de base, bien qu'il apparais en ligne , bha discord ne lui trouve pas de commandes intégrés)
Wow
donc, c'est ce que je cherche a comepredre :
- pk bien que ca soit le meme code, les commande n'apparaisse pas
- et du coup, es-ce que au moment ou je le lance j'ai une action a faire pour lui dire d'envoyer les info a discord pour dire qu'il a tel commande ?
car , bah , le seul defaut qu'il a c'est que il plante a chaque erreur et que le fichier data sa fais pas le ménage correctement, mais en soit , tout fonctionne et il tourne impec, et bah les commandes fonctionnne nikel
donc a ce niveau pas de pb, ca marche correctement
donc techiquement, vu que c'est exactement le meme dossier pour le deuxiemme, bah en soit il " fonctionne " aussi, seul probleme, c'est que j'ai pas les commande qui se synco
et sans sa je peux rien en faire vu qu'il focntionnne que comme ca
module.exports = {
name: 'interactionCreate',
once: false,
async execute(client, interaction) {
if(interaction.isButton()){
if(interaction.customId.startsWith('buttonService')){
interaction.guild.channels.create({
name: `commande #${interaction.user.username}`,
type: 0,
permission_overwrites: undefined,
}).then(c => { // // then : est une fonction qui est appelée lorsque la promesse est résolue. || c = channel qui a été créé
let embedService;
const commandChannel = new EmbedBuilder ()
.setColor(0x2f3136)
.setDescription(`Nouvelle commande\n\n a été prévenu et va vous envoyer le lien du paiement.`)
.setThumbnail(`${embedService.image.url}`)
const commandArticle = new EmbedBuilder ()
.setColor(0x2f3136)
.setDescription(`Votre commande se trouve ici : <#${c.id}>`)
c.send({ embeds: [commandChannel], ephemeral: false });
interaction.reply({ embeds: [commandArticle], ephemeral: true });
});
}
}
}
}```
Petite erreur :
.setThumbnail(`${embedService.image.url}`)
^
TypeError: Cannot read properties of undefined (reading 'image')
Oui c'est possible, tu peux regarder du côté de EmbedBuilder.from pour commencer
Ok merci
Je vais regarder
Je sais que moi j'ai fait le miens après des tutos je ne sais pas.
Oui
Oui c'est bizzare, au pire si tu as les fichiers je peux essayer de regarder ça (sans le token) mais ça sera pas avant dimanche
d'accoes
si sa te derange pas je veux bien oui
Ça me dérange pas, envoie moi ça en mp
Bonjour 
Pour ceux qui s’y connaissent bien en 
J'ai une commande qui ouvre un modal pour créer un menu de selection avec une seule catégorie à l'intérieur.
Ma question est : Est-il possible de faire une commande telle que /add_category pour ajouter une categorie à ce menu de sélection et si oui, peut-on utiliser l'ID du menu de Sélection ou alors faut il utiliser obligatoirement une base de donnée ?
Merci à vous
Tu ne peux pas modifier un modal en direct
Tu dois le construire d’abord, puis l’afficher
Tu peux toujours essayer de le fermer et de le re-ouvrir, à voir si Discord te laisse le faire 2 fois sur la même interaction.
@gentle zinc
Bonjour alors j'ai un petit souci mais je ne sais absolument pas d'où sa viens
En gros mon embed ne s'actualise pas il reste sur hors ligne alors que dans la console il met que le serveur est en ligne
const loadStatut = async function (client) {
client.on("ready", async (client, message , args) =>{
let channelstatus = client.channels.cache.get("993457517482999878");
let status = await channelstatus.send('**Le status se chargera dans 60 secondes🕜**');
setInterval(async () => {
Gamedig.query({
type: "garrysmod",
host: "game3-fr.hosterfy.com",
port: "63573"
}).then((state) => {
console.log(state);
let StatusEmbed = new client.discord.MessageEmbed()
.setColor('ORANGE')
.setTitle(`${state.name}`)
.addField("🟠Statut", `En Dev`, false)
.addField("👥Joueurs", `${state.players.length} / ${state.maxplayers}`, true)
.addField("📶Latence", `${state.ping}`, true)
.addField("🗺️Map", `${state.map}`, true)
.addField("🔒Mot de passe", `${state.password}`, true)
.addField("🎮Lien de connexion", "gg", false)
.addField("🔧Workshop", "ddddd", false)
.setThumbnail("https://media.discordapp.net/attachments /993457596201705482/999670341238542466/logosm.png")
.setFooter('🕛Derniere actualisation:')
.setTimestamp();
status.edit({embeds: [StatusEmbed]});
}).catch((error) => {
console.log("Serveur Off");
let StatusEmbedOff = new client.discord.MessageEmbed()
.setColor('RED')
.setTitle(`Hors-Ligne`)
.addField(`🔴Statut`, "Hors-Ligne", false)
.addField("🔧Workshop", "ddddd", false)
.setThumbnail("https://media.discordapp.net/attachments/993457596201705482/999670341238542466/logosm.png")
.setFooter('🕛Derniere actualisation:')
.setTimestamp();
status.edit({embeds: [StatusEmbedOff]});
}, 60000);
});
}
Bonjour, tu as une erreur ?
Je pense que tu dois surtout faire un if (error) { } dans ton catch
Salut, j'ai réussi à régler mon souci de commande ban donc je viens poster la source du problème si jamais quelqu'un venait à avoir le même souci. Voici l'erreur qui m'était retournée : Expected the value to be an object, but received string instead
Received:
| 'DiscordBOT'
L'erreur venait enfait de mon embed et notamment du .setFooter, apparemment on ne peut pas mettre une valeur string comme paramètre c'était ça qui causait une erreur dans mon code.
Même en passant par une base de donnée ? Du genre crée une table pour ce menu de sélection puis avec la commande, ajouter une ligne dans les colonnes dont le label, la description et l’ID de l’emoji ?
Ça ne fonctionnerai pas comme ça tu pense ?
Si mais tu devrais refaire ouvrir le modal, tu pourras pas le modifier en direct
Ah oui effectivement merci
Mais je ne comprend pas pourquoi
Avant le .catch fonctionné bine
Je sais pas mais c'est une solution "temporaire"
Ok ok
Et aussi j'ai essayé de faire ceci dans un field
Test
Mais il me met une erreur
quelqu'un peut me dire svp c'est quoi la différence entre un noeud et un élément, en js ? J'ai l'impression c'est la même chose. apparemment non
Tu as fait comment ?
.addField("👥Joueurs", ${state.players.length} / ${state.maxplayers}, true)
Et je voulais savoir si on peut whitelist des autres type de lien
Comme
steam://connect
Par exemple
Comment tu fais pour générer ce genre d’image ?
SnapCode sur VSCode
Merci bg
Pas de soucis
C'est-à-dire whitelist ?
Autorisé car si tu met pas un lien https il crash le bot
Tu mets que si c'est http alors ça retourne.
Bah moi sa serait plutôt si c'est steam :// sa return
Bah tu as juste à faire ça du coup
Ok ok merci
Bah sa marche que dans un sens
Il send l'embed quand le serveur est on
Mais pas quand il est off
Hey ! Je fais une commande clear et j'ai cette erreur quelqu'un pourrait maider ?
run: async (interaction, client) => {
let deleteAmount = interaction.options.getNumber('number_of_messages');
const user = interaction.options.getUser('user');
const role = interaction.options.getRole('role');
if (deleteAmount > 100) {
deleteAmount = 100;
}
const fetchedMessage = await interaction.channel.messages.fetch({ limit: deleteAmount });
if (user) {
fetchedMessage.filter((r) => r.author.id === user.id).forEach((msg) => msg.delete());
return interaction.reply({ content: `✅ Successfully deleted ${fetchedMessage.size} messages` });
}
if (role) {
fetchedMessage.filter((r) => r.member.roles.cache.has(role.id)).forEach((msg) => msg.delete());
return interaction.reply({ content: `✅ Successfully deleted ${fetchedMessage.size} messages` });
}
fetchedMessage.forEach((msg) => msg.delete());
interaction.reply({ content: `✅ Successfully deleted ${fetchedMessage.size} messages` });
},```
at Object.run (g:\Drunk Guys\Drunk's Bot\slashCommands\moderation\clear.js:28:44)
at Client.<anonymous> (g:\Drunk Guys\Drunk's Bot\events\interactionCreate.js:58:25)
at Client.emit (node:events:538:35)
at InteractionCreateAction.handle (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\actions\InteractionCreate.js:81:12)
at Object.module.exports [as INTERACTION_CREATE] (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\handlers\INTERACTION_CREATE.js:4:36)
at WebSocketManager.handlePacket (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31)
at WebSocketShard.onPacket (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:481:22)
at WebSocketShard.onMessage (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:321:10)
at WebSocket.onMessage (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\event-target.js:199:18)
at WebSocket.emit (node:events:526:28) {stack: 'TypeError: interaction.options.getNumber is n…8)
at WebSocket.emit (node:events:526:28)', message: 'interaction.options.getNumber is not a function'}```
C'est un code que j'ai récupérer et chui en v14
let deleteAmount = interaction.options.getString('number_of_messages');
at Object.run (g:\Drunk Guys\Drunk's Bot\slashCommands\moderation\clear.js:28:42)
at Client.<anonymous> (g:\Drunk Guys\Drunk's Bot\events\interactionCreate.js:58:25)
at Client.emit (node:events:538:35)
at InteractionCreateAction.handle (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\actions\InteractionCreate.js:81:12)
at Object.module.exports [as INTERACTION_CREATE] (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\handlers\INTERACTION_CREATE.js:4:36)
at WebSocketManager.handlePacket (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31)
at WebSocketShard.onPacket (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:481:22)
at WebSocketShard.onMessage (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:321:10)
at WebSocket.onMessage (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\event-target.js:199:18)
at WebSocket.emit (node:events:526:28) {stack: 'TypeError: interaction.options.getString is n…8)
at WebSocket.emit (node:events:526:28)', message: 'interaction.options.getString is not a function'}```
Marche pas
ah mais ok je vois
tu n'ajoutes pas de .addStringOption()
donc tu récupères une valeur vide là
J'ajoute sa ou ?
envoie tout ton code pour voir
Attend je tenvoie le coe en entier
const Discord = require('discord.js');
module.exports = {
name: 'clear',
permissions: 'MANAGE_MESSAGES',
description: 'Cleans messages from a channel',
options: [
{
name: 'number_of_messages',
description: 'number of messages to clean',
type: 10,
required: true,
},
{
name: 'user',
description: 'User to clear messsages for',
type: 6,
},
{
name: 'role',
description: 'Clear messages from role',
type: 8,
},
],
timeout: 5000,
category: 'mod',
run: async (interaction, client) => {
let deleteAmount = interaction.options.getString('number_of_messages');
const user = interaction.options.getUser('user');
const role = interaction.options.getRole('role');
if (deleteAmount > 100) {
deleteAmount = 100;
}
const fetchedMessage = await interaction.channel.messages.fetch({ limit: deleteAmount });
if (user) {
fetchedMessage.filter((r) => r.author.id === user.id).forEach((msg) => msg.delete());
return interaction.reply({ content: `✅ Successfully deleted ${fetchedMessage.size} messages` });
}
if (role) {
fetchedMessage.filter((r) => r.member.roles.cache.has(role.id)).forEach((msg) => msg.delete());
return interaction.reply({ content: `✅ Successfully deleted ${fetchedMessage.size} messages` });
}
fetchedMessage.forEach((msg) => msg.delete());
interaction.reply({ content: `✅ Successfully deleted ${fetchedMessage.size} messages` });
},
};
tu as mélangé deux types de commandes là sa risque pas de marcher
c'est pas comme ça la structure d'une slashcommand
const { SlashCommandBuilder } = require('discord.js')
module.exports = {
data: new SlashCommandBuilder()
.setName('deleterole')
.setDescription("Permet de supprimer un rôle de votre serveur discord")
.addStringOption((option) => option.setName('roleid').setDescription("L'ID du rôle que vous souhaitez supprimer").setRequired('true')),
async execute(interaction, client) {
let owner = interaction.guild.ownerId;
let roleid = interaction.options.getString('roleid')
if (interaction.user.id != interaction.guild.ownerId) return interaction.reply({content: "Vous n'avez pas la permission d'exécuter cette commande !", ephemeral: true})
if(owner){
interaction.guild.roles.delete(roleid).then(interaction.reply(`**🚨 Le rôle à été supprimé avec succès !**`)).catch(err => {console.log(err)})
}
}
}
normalement ça doit ressembler à ça
Je sais pas quel genre de tuto tu as recopier mais si tu veux faire des slashcommand je t'invite à a te référer à la docs de DJS https://discordjs.guide/interactions/slash-commands.html
Ok merci et pourrais tu m'aider pour sa aussi
Je suis entrain de faire un systeme de ticket et j'ai sa comme erreur :
at BaseError (g:\Drunk Guys\Drunk's Bot\node_modules\@sapphire\shapeshift\dist\index.js:174:17)
at UnknownEnumValueError (g:\Drunk Guys\Drunk's Bot\node_modules\@sapphire\shapeshift\dist\index.js:1758:5)
at handle (g:\Drunk Guys\Drunk's Bot\node_modules\@sapphire\shapeshift\dist\index.js:1823:66)
at parse (g:\Drunk Guys\Drunk's Bot\node_modules\@sapphire\shapeshift\dist\index.js:142:88)
at setStyle (g:\Drunk Guys\Drunk's Bot\node_modules\@discordjs\builders\dist\index.js:493:44)
at run (g:\Drunk Guys\Drunk's Bot\commands\setup\ticket-setup.js:23:5)
at <anonymous> (g:\Drunk Guys\Drunk's Bot\events\messageCreate.js:35:13)
at emit (events:526:28)
at handle (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\actions\MessageCreate.js:23:14)
at module.exports (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at handlePacket (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31)
at onPacket (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:481:22)
at onMessage (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:321:10)
at onMessage (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\event-target.js:199:18)
at emit (events:526:28)
at receiverOnMessage (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\websocket.js:1178:20)
at emit (events:526:28)
at getData (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\receiver.js:446:17)
at startLoop (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\receiver.js:148:22)
at _write (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\receiver.js:83:10)
at writeOrBuffer (internal/streams/writable:389:12)
at _write (internal/streams/writable:330:10)
at Writable.write (internal/streams/writable:334:10)
at socketOnData (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\websocket.js:1272:35)
at emit (events:526:28)
at addChunk (internal/streams/readable:315:12)
at readableAddChunk (internal/streams/readable:289:9)
at Readable.push (internal/streams/readable:228:10)
at onStreamRead (internal/stream_base_commons:190:23)
at callbackTrampoline (internal/async_hooks:130:17)```
const { ActionRowBuilder } = require('@discordjs/builders');
const { EmbedBuilder, SelectMenuBuilder, ApplicationCommandType, SelectMenuOptionBuilder, ButtonBuilder } = require('discord.js');
module.exports = {
name: 'ticket-setup',
description: "Commande pour setup le système de ticket.",
cooldown: 3000,
type: ApplicationCommandType.ChatInput,
userPerms: ['Administrator'],
botPerms: ['Administrator'],
run: async (client, interaction, message) => {
const embed = new EmbedBuilder()
.setTitle('Open a ticket')
.setDescription(`Welcome on the Drunk Guys Support Discord ! For continue, please select your own language. \n\nSincerly,\nDrunk Guys Staff`)
.setColor('#0aaaff')
.setTimestamp()
.setThumbnail(client.user.displayAvatarURL())
.setFooter({ text: client.user.tag })
const button = new ButtonBuilder()
.setCustomId('ticket-menu')
.setLabel("Open a ticket")
.setStyle("PRIMARY")
.setEmoji("📥")
await interaction.channel.send({
embeds: [embed],
components: [new ActionRowBuilder().addComponents(ticket-menu)],
});
},
};```
j'me suis jamais essayé à ce genre de commande et je n'arrive pas à bien comprendre ton erreur donc sur ça j'pourrais pas t'aider
Si tu es en V14 pour le style du bouton tu peux remplacer PRIMARY par 1.
Salut, vous savez pourquoi j'ai cette erreur ? ValidationError: Expected a boolean primitive alors que je return bien un boolean
const { SlashCommandBuilder } = require('discord.js')
module.exports = {
data: new SlashCommandBuilder()
.setName('clear')
.setDescription("Permet d'effacer un nombre de message en grande quantité")
.addIntegerOption(option => option.setName('amount').setDescription('Le nombre de message que vous souhaitez supprimer').setRequired(true)),
async execute(interaction, client){
if(!interaction.member.permissions.has('ManageMessages')) return interaction.reply({ contenet: "Vous n'avez pas la permission nécessaire pour exécuter cette commande !", ephemeral: true })
if(interaction.guild.me.permissions.has('ManageMessages')) return interaction.reply({ content: "Je n'ai malheureusement pas les permissions d'effectuer ce genre d'action !", ephemeral: true })
let amount = interaction.options.getInteger('amount')
if(isNaN(amount)) interaction.reply({ content: "Merci de spécifier un nombre / chiffre comme valeur d'entrée", ephemeral: true })
if(parseInt(amount) > 99) {
interaction.reply({ content: "Je peux seulement supprimer 99 messages à la fois !", ephemeral: true })
} else {
try {
let { size } = await interaction.channel.bulkDelete(amount)
await interaction.reply({ content: `**${size}** Message(s) supprimé(s) !` })
} catch(e){
console.log(e)
interaction.reply({ content: "Je ne peux pas supprimer des messages datant de plus de deux semaines !", ephemeral: true })
}
}
}
}
c'est au niveau de addIntegerOption que sa bloque
C'est bizarre c'est correct pourtant.
bah j'me suis dis la même chose
Hola ! T'as peut-être une erreur de syntaxe ici: return interaction.reply({ contenet: "Vous n'avez[...]" => content: "Vous n'avez [...]" ?
Ou mettre Primary
Non l’erreur vient du setRequired c’est le seul endroit où je return une valeur boolean
Bonjour tout le monde,
Petit question ?
Peut-on attribuer un id unique a un embed et afficher cette id en Footer pour pouvoir l’update via un modal avec une commande.
Oui oui renvoyer un embed par dessus pour le modifier mais je veux dire est ce qu’on peut lui intégrer un id à cet embed ou pas utile ?
Comme ça avec l’id tu sais qu’elle embed modifier
Bah tu peux récupérer tous les embeds d’un salon et vérifier lequel a un ID spécifique en footer oui
Mais c’est pas la meilleure solution dans ton cas je pense
D’accord, donc oui pour mon cas je crée un embed avec le menu de sélection puis ensuite je fais une commande pour faire un édit de cet embed avec un nouvel embed à envoyer à la place en lui ajoutant des labels à son menu de sélection en gros quoi
Salut, j'ai fais un petit système de suggestion que voici
Sauf que ce que je veux moi c'est que le thread commence sur l'embed en lui meme et pas à partir de rien
voici mon code
Ça peut être intéressant moi qui apprend aussi ! Peut être crée le thread avant et lui envoyer l’embed à l’intérieur ? 🤔
Ouais euh moi je veux faire comme ici quoi ^^
Il suffit de faire un .then()
bah c'est ce que j'ai fais
Autant pour moi, je n'avais pas vu
https://discordjs.guide/popular-topics/threads.html#public-and-private-threads avec message.startThread
Hey ! J'ai cette erreur quand j'appui sur le button :
name[BASE_TYPE_REQUIRED]: This field is required
at DiscordAPIError (g:\Drunk Guys\Drunk's Bot\node_modules\@discordjs\rest\dist\index.js:289:5)
at runRequest (g:\Drunk Guys\Drunk's Bot\node_modules\@discordjs\rest\dist\index.js:748:15)
at processTicksAndRejections (internal/process/task_queues:96:5)```
client.on('interactionCreate', async interaction => {
if (!interaction.isButton()) return;
if (interaction.customId === 'create-ticket') {
let ticketName = `ticket-${interaction.user.username}`.toLowerCase();
await interaction.reply({ content: `Creating ticket...`, ephemeral: true });
if (interaction.guild.channels.cache.find(c => c.topic == interaction.user.id && c.name.includes("ticket"))) return interaction.editReply({ content: `You have already created a ticket!`, ephemeral: true });
const createdChannel = await interaction.guild.channels.create(ticketName, {
type: "text",
topic: `${interaction.user.id}`,
parent: "1000125211162718228",
permissionOverwrites: [
{
allow: ["VIEW_CHANNEL", "SEND_MESSAGES", "ATTACH_FILES", "EMBED_LINKS"],
id: interaction.user.id,
},
{
deny: "VIEW_CHANNEL",
id: interaction.guild.id,
},
],
});
await interaction.editReply({ content: `Ticket created successfully in ${createdChannel}!` , ephemeral: true });
const row = new ActionRowBuilder()
.addComponents(
new ButtonBuilder()
.setStyle("1")
.setEmoji("🔒")
.setCustomId("ticket-close")
);
const embed = new EmbedBuilder()
.setTitle("New Ticket!")
.setDescription(`Hello <@!${interaction.user.id}>, a staff will assist you shortly!\n\n**Press the 🔒 button to close the ticket!**`)
.setColor("#FFD74E")
await createdChannel.send({ content: `New Ticket!`, embeds: [embed], components: [row] });
}
});```
ce serait pas ici : new ButtonBuilder()
.setStyle("1")
.setEmoji("🔒")
.setCustomId("ticket-close") ?
ou il faudrait mettre une couleur genre RED
je suis pas sur que ça s'écrive red
y a moyen c'est danger
Danger
ouais c'est ça
new ButtonBuilder()
.setStyle("DANGER")
.setEmoji(":lock:")
.setCustomId("ticket-close")```
Un truc comme ça
Oui mais en v14 ça à changé, donc ça dépend de sa version
Chui en V14
Donc non c'est pas sa
Ducoup le numéro c'est bon
Et ducoup tu saurais rsoudre l'erreur
Mais Thitis tu as raison en v13 c'est ça
ah merde je pensais que c'était ça vu l'erreur et sur la doc c'était comme ça aussi dsl 😅
C'est rien de grave
Ducoup re la 3g du seigneur est de retour
Essaye de mettre un .setLabel('ce que tu veux comme texte sur ton bouton')
Parceque j'ai l'impression que tu peux pas juste avoir un émoji
Après si tu veux vraiment pas de texte mais un caractère invisible
Marche pas
Ah
.setLabel('Primary')
.setStyle(ButtonStyle.Primary)
.setEmoji('123456789012345678');``` si tu veux mettre un emoji seul c'est ça
donc je vois pas ce qui cloche
Essaye avec ButtonStyle.Danger en style
Marche tjrs pas
Ok pas grave merci quand meme
Met 1 sans les "" pour le bouton et pour l'embed les couleurs Hex chez moi marche plus essaye de mettre en nombre décimale donc ça : 16766798 sans les "" aussi
Et tu as aussi le .setLabel pour le bouton.
bonjour tout le monde je viens de commencer javascript parce que c'est un langage que j'aime beaucoup et j'aimerais en faire mon métier plus tard (16 actuellement) j'aimerais m'exercer mais je ne trouve aucun exercice pour débutant comme moi y aurait il quelqu'un qui pourrait m'aider?
Le mieux pour apprendre c'est de faire plein de petits projets qui t'amuses, tu verras ça rentrera tout seul
Pour commencer tu peux déjà apprendre à manipuler du javascript depuis un navigateur avec le DOM, ensuite tu peux soit apprendre NodeJS qui est très intéressant (ex: backend, création de bot discord avec la lib DJS) ou alors t'orienter vers l'un des framework JS comme React, Vue, Express etc
ok merci beaucoup tout le monde
Bonjour, je début en programmation et Jsp où est l'erreur quelqu’un peut m'aider svp ?
Enlève le pwa avant le node
ok mrc il a plmus de msg d'erreur mais le bot se mais pas en ligne c'est normal ?
Ici, nous allons voir les prérequis afin de commencer à développer votre propre bot discord ! Avec discord.js v14
----- Serveur partenaire -----
Creators Area : https://discord.gg/K3qyS4jDwc
------- Mon serveur discord ------
https://discord.gg/4GxNn7MWmz
------- Liens utiles -------
Discord developer : https://discord.com/developers/applic...
Tu as bien fais node . dans ton terminal à la racine de ton dossier ?
ok mrc sa fonctionne
entait j’aimerais crée un bot qui fait des ticket et comme je debute j'ai pris un code sur internet et jsp ou le mettre, je le mais dans index.js ou je cree un autre .js ? svp
qui pour m'aider pls ?
Le mieux c'est de pas c/c du code comme ca sans comprendre, essaie de suivre un tuto plutot
Aucune utilité d'en prendre sur internet. Pour apprendre, il faut pratiquer
pas grave merci des conseil
Bonjour, j'ai une erreur qui fait en sorte que mon bot ne réponde plus au message depuis que j'ai écris cette commande. Quelqu'un saurait me dire d'ou elle vient ? Bonne aprém.
C'est quoi l'erreur ?
Enfaite je la cherche
Dans le terminal tu as rien ?
C'est client avec un c minuscule pour Client.application.commands
Salut les boys, actuellement, j'essaie de récupérer le système d'exploitation d'un utilisateur en js (Les navigateurs ne détectant pas w11 avec http_user_agent en php), j'ai donc trouvé sur le site de microsoft un code qui permet de détecter la version de l'os et le code marche sur certains navigateurs mais pas tous (en particulier sur firefox), il s'agit de userAgentData https://developer.mozilla.org/en-US/docs/Web/API/Navigator/userAgentData je voulais donc savoir si vous auriez une alternative pour pouvoir détecter si l'utilisateur est sur w11 ?
Je fais un systeme de voice channel creator et je sais pas comment faire pour que lorsque je quitte le channel il ce delete automatiquement
client.on("voiceStateUpdate", async (oldState, newState) => {
const user = await client.users.fetch(newState.id)
const member = newState.guild.members.cache.get(user.id);
if(!oldState.channel && newState.channel.id === '999659692726952086') {
const channel = await newState.guild.channels.create(user.tag, {
type: 'GUILD_VOICE',
parent: newState.channel.parent,
});
member.voice.setChannel(channel);
voiceCollection.set(user.id, channel.id);
} else if(!newState.channel) {
if(oldState.channel === voiceCollection.get(newState.id)) return oldState.channel.delete()
}
})```
Tu test ça.
else if(newState.channel != oldState.channel) {
if(oldState.channelId == "999659692726952086") return;
const a = [];
bot.voiceCollect.each((e) => a.push(`${e}`));
setTimeout(() => {
if(oldState.channel == null) return;
if(oldState.channel.members.size > 0) return;
if(a.find(d => d == oldState.channel.id)){
bot.voiceCollect.set(owner, null);
oldState.channel.delete();
return;
}
}, 1000);
}
Bonjour j'ai un gros pronleme
est ce que les interval trop élevés ne marchent pas ?
Car j'ai fais qui doit envoyer un message 1 fois par mois
donc j'ai mis le temps en millisecondes sauf qu'il spam le messages, comme si il y avait 0 secondes d'interval
J'ai une erreur comme quoi bot n'est pas définie
Enlève bot je l'ai rajouté mais j'avais pas vu toi tu as direct défini VoiceCollection
else if(newState.channel != oldState.channel) {
if(oldState.channelId == "999659692726952086") return;
const a = [];
voiceCollection.each((e) => a.push(`${e}`));
setTimeout(() => {
if(oldState.channel == null) return;
if(oldState.channel.members.size > 0) return;
if(a.find(d => d == oldState.channel.id)){
voiceCollection.set(owner, null);
oldState.channel.delete();
return;
}
}, 1000);
}
Voilà.
Ouais j'ai fais sa mais mtn j'ai sa comme erreur : Uncaught ReferenceError ReferenceError: owner is not defined
Ah oui mince tu as owner
C'est un module ?
Faut que tu récupère le créateur du channel que tu as mis dans ton collector pour pouvoir le mettre à null.
Moi j'avais utilisé l'intermédiaire d'un fichier json si jamais le bot redem trql.
Non c'est chez moi l'équivalent de ton user.id
chepa faire mdrr tu sais ce qui faut que je mette ?
else if(newState.channel != oldState.channel) {
if(oldState.channelId == "999659692726952086") return;
const a = [];
voiceCollection.each((e) => a.push(`${e}`));
setTimeout(() => {
if(oldState.channel == null) return;
if(a.find(d => d == oldState.channel.id)){
voiceCollection.set(user.id, null);
oldState.channel.delete();
return;
}
}, 1000);
}
Essaye ça.
Nickel sa marche t'es le boss
De rien écoute.
Hey ! J'avais une question, je n'arrive pas à faire quelqur chose de tout bête. Je voudrais faire en sorte que ça n'envoie pas toujours le même message. Un peu comme quand quelqu'un join (#general)
J'ai commencé par définir mes messages mais, je ne sais pas comment faire avec Math.random(). Désolé, mon explication n'est pas clair 😅
Envoie ton code voir.
Je n'ai pas vraiment de code pour le coup. Mais il ressemblerai à cela
const MyMessageForJoin = [
"Ceci est la phrase 1",
"Ceci est la phrase 2",
"Ceci est la phrase 3",
]
message.channel.send({ content: `Math.random(${MyMessageForJoin})` })```
Je n'ai jamais utilisé Math.random, c'est pour cela que je ne sais pas comment faire
const MyMessageForJoin = [
"Ceci est la phrase 1",
"Ceci est la phrase 2",
"Ceci est la phrase 3",
]
message.channel.send({ content: MyMessageForJoin[Math.floor(Math.random() * MyMessageForJoin.length)] })
Tu peux test comme ça.
Je vais essayer ! Je te remercie
De rien 😉
Ça à l'air de fonctionner ! Merci
math.floor va impacter les résultats du rng en faisant ça
Ah non en fait vu que le random en js n’inclus pas le 1 ^^
Quelqu’un a déjà su faire du 3D-2D avec du Canvas sur node et saurait nous aiguiller sur comment ça marche ?
ça évite d'avoir les nombres décimaux, ça arrondi le résultat.
Yes yes j’ai vu après mb
Salut, j'ai un problème avec mon bot, dés lors que mon bot envois un message a un joueur ayant bloqué le bot ou que les messages privées du joueur en question sois bloqué le bot crash, j'ai essayé avec un try catch mais le bot crash toujours, avez vous une solution ?
client.users.cache.get(member.id).send("test");
DiscordAPIError: Cannot send messages to this user
at RequestHandler.execute (/home/rytrak/bot/utility/node_modules/discord.js/src/rest/RequestHandler.js:154:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (/home/rytrak/bot/utility/node_modules/discord.js/src/rest/RequestHandler.js:39:14) {
method: 'post',
path: '/channels/772129344520323102/messages',
code: 50007,
httpStatus: 403
tu fais une condition if else
si tu n'as pas de await tu n'as pas bessoin de try
Et je crois que createdm est plus optimisé mais à vérifier
ouais tu fais un await function().catch()
comme ça ton bot ne crash pas
@weak grove
Ok merci les gars je vais faire ça 👍
Salut, vous savez pourquoi ça me fait ça ?
je n'ai pas d'erreur console et je ne remarque pas d'erreur flagrante dans mon code
const { SlashCommandBuilder } = require('discord.js')
module.exports = {
data: new SlashCommandBuilder()
.setName('addrole')
.setDescription("Permet d'assigner un rôle à un membre du discord")
.addStringOption((option) => option.setName('user').setDescription("L'utilisateur souhaité").setRequired(true))
.addStringOption((option) => option.setName('roleid').setDescription("L'ID du rôle que vous souhaitez attribuez").setRequired(true)),
async execute(interaction, client){
let user = interaction.options.getString('user')
let role = interaction.options.getString('roleid');
let member = interaction.guild.members.cache.get(user.id) || await interaction.guild.members.fetch(user.id).catch(error => {console.log(error)})
if(!role) interaction.reply({ content: "Je ne trouve pas ce rôle !", ephemeral: true })
if(!interaction.member.permissions.has("ManageRoles")) interaction.reply({ content: "Vous n'avez pas la permission d'exécuter cette commande!", ephemeral: true })
if(interaction.member.roles.highest.position <= member.roles.highest.position) return interaction.reply("Ce membre est supérieur à vous je ne peux donc pas lui assigner de rôle !")
await user.roles.set([role]).then(interaction.reply({ content: `Le rôle ${role} à bien été attribué à ${user}` })).catch((err) => { console.log(err) })
}
}
Tu as tout simplement pas mis de interaction.reply
Ah si j'ai rien dit tu as tout mis sur la même ligne.
const { SlashCommandBuilder } = require('discord.js')
module.exports = {
data: new SlashCommandBuilder()
.setName('addrole')
.setDescription("Permet d'assigner un rôle à un membre du discord")
.addStringOption((option) => option.setName('user').setDescription("L'utilisateur souhaité").setRequired(true))
.addStringOption((option) => option.setName('roleid').setDescription("L'ID du rôle que vous souhaitez attribuez").setRequired(true)),
async execute(interaction, client){
let user = interaction.options.getString('user')
let role = interaction.options.getString('roleid');
let member = interaction.guild.members.cache.get(user.id) || await interaction.guild.members.fetch(user.id).catch(error => {console.log(error)})
if(!role) interaction.reply({ content: "Je ne trouve pas ce rôle !", ephemeral: true })
if(!interaction.member.permissions.has("ManageRoles")) interaction.reply({ content: "Vous n'avez pas la permission d'exécuter cette commande!", ephemeral: true })
if(interaction.member.roles.highest.position <= member.roles.highest.position) return interaction.reply("Ce membre est supérieur à vous je ne peux donc pas lui assigner de rôle !")
await member.roles.set([role]).then(interaction.reply({ content: `Le rôle ${role} à bien été attribué à ${member}` })).catch((err) => { console.log(err) })
}
}
j'ai modifier mon code il avait quelques erreurs
yep
c'est tout sur la même ligne
mais je comprends pas j'ai pas d'erreur console juste mon application qui ne veut pas répondre
mes autres slashcommand fonctionne parfaitement pourtant
C'est bizarre j'ai jamais vu la fonction set pour ajouter un rôle.
je me réfère a la docs djs après
TypeError: Cannot read properties of undefined (reading 'roles')
j'ai enfin une erreur
J'ai changer mon code mais mon application ne répond toujours pas
const { SlashCommandBuilder } = require('discord.js')
module.exports = {
data: new SlashCommandBuilder()
.setName('addrole')
.setDescription("Permet d'assigner un rôle à un membre du discord")
.addStringOption((option) => option.setName('user').setDescription("L'utilisateur souhaité").setRequired(true))
.addStringOption((option) => option.setName('roleid').setDescription("L'ID du rôle que vous souhaitez attribuez").setRequired(true)),
async execute(interaction, client){
let user = interaction.options.getString('user')
let role = interaction.options.getString('roleid');
let member = interaction.guild.members.cache.get(user.id) || await interaction.guild.members.fetch(user.id).catch(error => {console.log(error)})
if(!role) interaction.reply({ content: "Je ne trouve pas ce rôle !", ephemeral: true })
if(!interaction.member.permissions.has("ManageRoles")) interaction.reply({ content: "Vous n'avez pas la permission d'exécuter cette commande!", ephemeral: true })
await member.add(role)
.then(interaction.reply({ content: `Le rôle ${role} à bien été attribué à ${member}` }))
.catch((err) => { console.log(err) })
}
}
TypeError: Cannot read properties of undefined (reading 'add')
Tu es en v13 ou bien v14
member.roles.add
c'est ce que j'ai fais et toujours le même problème
je suis bien en V14
ça te mets quoi ?
Hum, c'est tout de même bizarre
C'est pas le await.
l'erreur met du temps à s'afficher en console je sais pas pourquoi mais dès que j'ai quelques choses j'te tiens au jus
TypeError: Cannot read properties of undefined (reading 'roles')
Error [GuildMembersTimeout]: Members didn't arrive in time.
DiscordAPIError[10062]: Unknown interaction
j'ai 3 erreurs principales je pense
ça vient de ton member alors.
Il n'arrive pas à temps c'est bizarre.
ouais
Perso je bloque sur le pourquoi du comment j’ai pas tellement de solution qui me viennent en tête
Au lieu de mettre un string pour l'user pour tu mets pas direct user ?
ok je viens de régler le plus gros avec ta remarque en effet j'avais pas remarqué mon erreur
TypeError [CommandInteractionOptionType]: Option "user" is of type: 3; expected 6.
m'ai j'ai encore cette erreur
Tu as fait le code comment ?
const { SlashCommandBuilder } = require('discord.js')
module.exports = {
data: new SlashCommandBuilder()
.setName('addrole')
.setDescription("Permet d'assigner un rôle à un membre du discord")
.addUserOption((option) => option.setName('user').setDescription("L'utilisateur souhaité").setRequired(true))
.addStringOption((option) => option.setName('roleid').setDescription("L'ID du rôle que vous souhaitez attribuez").setRequired(true)),
async execute(interaction, client){
let user = interaction.options.getUser('user')
let role = interaction.options.getString('roleid');
let member = interaction.guild.members.cache.get(user.id) || await interaction.guild.members.fetch(user.id).catch(error => {console.log(error)})
if(!role) interaction.reply({ content: "Je ne trouve pas ce rôle !", ephemeral: true })
if(!interaction.member.permissions.has("ManageRoles")) interaction.reply({ content: "Vous n'avez pas la permission d'exécuter cette commande!", ephemeral: true })
await member.roles.add(role)
.then(interaction.reply({ content: `Le rôle ${role} à bien été attribué à ${member}` }))
.catch((err) => { console.log(err) })
}
}
oki nickel.
salut je cherche une personne qui peux me debugé un mods minecraft
#java-jvm
bonjour a tous, je suis novice dans le domaine du JS et je me lance dans la création d'un bot discord complet. Je viens de suivre un tuto du créateur du serveur, mais j'ai une couillette quelques part dans le code mais je n'arrive pas a trouver où ? je suis dans la phase entrée d'un membre avec l'incorporation d'une image
Hello, je rencontre actuellement quelques soucis avec mon code, qui refuse d'envoyer un message via un webhook lorsque je l'execute et qui ne return pourtant aucune erreur ;
Je n'ai pas vraiment d'idée d'où le souci peut venir, donc je suis ouvert à toute suggestion
c'est quoi le meilleur hebergeur pour un bot discord javascrip
https://www.scaleway.com/ EU https://www.linode.com/ US/EU/Asie
https://www.digitalocean.com/ US https://www.vultr.com/ US
https://www.ovh.co.uk/ EU/Canada https://www.hetzner.com/ Allemagne/US
https://www.time4vps.eu/ Lithuanie
Après y'a pas vraiment de "meilleur hébergeur" tu choisis celui que tu veux
en gros je veut un hebergeur ou je peut mettre dessus plusieurs petit bot pour pas tres chers tu me conseil lequel ?
Ducoup prend un vps, parceque sinon tu va payer 10 000 hébergement pour des bots, le vps sera plus rentable (en gros c'est comme un pc mais à distance)
Ok merci tu en a un a me conseiller ?
OVH en fait de bon, après je suis pas un expert en hébergement x)
Attend aussi l'avis de Shuttle
(Et prend ton temps avant d'acheter)
ok ok merci
Mon avis n'a aucune valeur mdr j'ai encore jamais hébergé de bot ou truc similaire
https://contabo.com/en/ @keen narwhal Je te conseille celui là si tu veux
les vps y sont pas si chers et tu peux mettre pas mal de bots dessus
n'importe quel hébergeur qui supporte Node.Js est suffisant, un bot discord c'est pas grand chose
tout dépends lequel, mais pas besoin de payer 50€ ton hébergement pour un petit bot,; si c'est pas un Mee6 bis te fais pas trop chier
Ah ok
ok merci beaucoup
np
Sûrement une erreur avec tes webhooks
Il ne trouve pas ton token
mais pas tout le temps
Ah
Il y a peut être une limite imposé par discord je sais pas du tout
T’as commande c’est pour quoi ? Tu peux peut être passer par autre chose que les webhooks
Regarde sur internet perso je sais pas du tout
Mais y a moyen
tu connais tupperbox comme bot?
Non pas du tout
c'est un bot pour le RP sur discord, tu enregistres ton personnage via une commande ( avec préfixe, nom, et URL d'avatar ), et dès lors que tu envoies un message commençant par ton préfixe, un webhook envoie un message avec la suite de ton message
Déjà pour le début tu peux utiliser une BDD et en vrai au lieu de passer par un webhooks passe par un embed non ?
Exemple plus concret, si tu enregistres un pesonnage comme ça : prefixe = 'IB!', nom='LDB',
En écrivant ceci :
IB! Hello! Je suis un webhook
Le rendu sera le suivant :
LDB -- Hello! Je suis un webhook```
en fait le souci étant que la personne auprès de qui je fais ça ( plus ou moins le client si tu veux, bien que ce soit plus pour du fun qu'uatre chose ) le veut absolument de la même manière que tupperbox
à savoir en webhooks
toute ma partie BDD est déjà gérée à vrai dire, pour l'insertion, ça se passe via une commande slash
Ouais mais au lieu de copier coller un bot et d’avoir des perfs horrible explique lui et montre lui la différence
Après si il est têtu tant pis pour lui il restera avec un bot qui envoie des messages 1h après l’envoie de la commande
et puis même après pour l'immersion dans le RP, un "vrai" message ( via webhook ) fait plus correct qu'un embed x)
sinon si j'essaie de créer plusieurs webhooks ? genre un dédié par personnage ?
à savoir que chaque membre peut avoir pas mal de perso ( 5 ~6 )
Je sais pas du tout à toi de faire des test et de voir ce qui rend le mieux pour ton client
ok ok,merci de ton aide ^^
Salut tu es en quelle version de discordjs ?
v13
La fonction existe plus en c13
Faut passer par un await guild.members.fetch(user.id)
ok
pour quelle ligen ?
ligen 9
Tu as envoyé une erreur plus haut… avec une ligne….
oui mais laisse tomber chui con
oui
On est d'accord qu'il n'est pas possible de fetch (et du coup modifier) un message envoyé avant que le bot ait été allumé?
Si tu peux
La réponse est dans ta question
.fetch
Bonsoir, je voulai savoir si c'etait possible ou il y a le ping d'afficher de reduire le nombre de chiffre apres la virgule ?
Je suis pas très connaisseur du js alors faudra essayer de m'expliquer 😉
Ptn j'adore le système je cherche justement à le faire
x)
Tu utilises quel module ?
Les demandes d’aides elles ont changé aussi
Pour le ping tcp-ping
D’habitude les gens montrent leur code déjà ´
Ok ok merci
Bah non je pose une question légitime, y a pas besoin de parler comme ça
Et pour ton ping faudrait montré la ligne ou ya la fonction du ping
Et je parlais d'un truc en général, pas par rapport à un code précis
Oui et j’te donne une réponse légitime aussi mais tu me dis « je sais », si tu sais bah résous le problème demande pas de l’aide ^^
Bah pourtant c’est ton code le problème
Parce que c’est bien fetch qu’il faut utiliser
Okay 😉
Ok, je vais recheck
Envoie le code et éventuellement l’erreur on pourra peut-être t’aider plus concrètement
ping.toFixed(2)
2 = nombre de chiffres après la virgule
(service.online
? (${service.pingResult.avg}ms)
: "")
Dans mon code ces quelque chose du genre 😉
.avg.toFixed(2)
Okay je vais test 🙂
check et tu me dis
Yes 😉
Super ça marche merci beaucoup !
np
Quelqu'un peut m'aider ?
Quand je lance mon bot en local il marche mais dès que je le mais en machine il beug.
@copper pagoda T'es dispo ?
Erreur ?
Je sais pas comment accèder au log donc je sais pas si y'a une erreur mais en tout cas le bot ne fais pas les actions mais reste en ligne
Tu utilises quoi pour start ton bot ? pm2 ?
Oui
Error: Cannot enqueue Query after fatal error.
0|server | at Protocol._validateEnqueue (/home/adminuser/www/server/node_modules/mysql/lib/protocol/Protocol.js:212:16)
0|server | at Protocol._enqueue (/home/adminuser/www/server/node_modules/mysql/lib/protocol/Protocol.js:138:13)
0|server | at Connection.query (/home/adminuser/www/server/node_modules/mysql/lib/Connection.js:198:25)
0|server | at /home/adminuser/www/server/server.js:333:8
0|server | at Layer.handle [as handle_request] (/home/adminuser/www/server/node_modules/express/lib/router/layer.js:95:5)
0|server | at next (/home/adminuser/www/server/node_modules/express/lib/router/route.js:144:13)
0|server | at Route.dispatch (/home/adminuser/www/server/node_modules/express/lib/router/route.js:114:3)
0|server | at Layer.handle [as handle_request] (/home/adminuser/www/server/node_modules/express/lib/router/layer.js:95:5)
0|server | at /home/adminuser/www/server/node_modules/express/lib/router/index.js:284:15
0|server | at Function.process_params (/home/adminuser/www/server/node_modules/express/lib/router/index.js:346:12) {
0|server | code: 'PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR',
0|server | fatal: false
0|server | }
Fait pm2 logs --lines 100 comme ça tu verras tout
ça vient de ton express ça non ?
Je sais pas, d'habitude c'est pas moi qui gère sa et j'ai besoin de le mettre
Donc bizzare
Tu peut passer vocal ?
J'ai jamais eu cette erreur je sais pas à quoi elle correspond
Faut que j'avance sur un montage pour demain.
Ah ok
Je peut écrire
XD oula
XD
C'est bon tenez mdr
T'es disponible en vocal ?
Il mets que les logs de pm2 ou je rêves XD.
On ma dit de faire sa après
Nope déso
Ah pas grave
Ah mais faut que je download le fichier j'suis con XD.
Chelou les logs pm2 mdr
Déjà tu as ça
Je pense savoir c'est quoi mais je saurai vraiment pas le règle
Ah
Et ça.
Et tu regards le nombre à gauche
Ducoups pm2 logs 0 --lines 200
C'est un problème avec la requête ?
Aucune idée.
En tout cas il aime pas ton bot XD
Je vois sa
Tu as utilisé express où ?
Dans mon VPS
Dans mon autre site
Franchement je suis vraiment pas trop fort, fini ton montage et dès que t'es disponible, essaye de venir vocale stp.
C'est vraiment reloue.
Oui
Ouais après j'ai rendez vous avec mon kiné je sais pas si je serai là.
Ah ok pas grave
Yes idk
Quelqu'un de dispo ?
Quelqu'un connait une bonne lib Javascript pour transformer un channel discord en HTML ?
De la même manière que fait Ticket Tool
Peut-être @queen ocean si vous avez développer le votre 😏
discord-html-transcripts 👀
Je l'ai vu passer
Elle est bien maintenue ?
Perso je l'utilise j'ai juste du edit le module pour la V14.
On va partir là-dessus alors, j'espère que ça tient la route leur truc
Jamais vérif mdr
Fais une pull request du coup 😄
Une pull request ?
Tu participes à la communauté open source en envoyant pour vérification (auprès des créateurs de la lib), une ou plusieurs fonctionnalité
Ici une compatibilité DJS14
Enfin, j'ai l'impression que ça l'est déjà d'après leur github :
This module is designed to work with discord.js v13 and v14.
Et ben ils sont toujours pas à jour.
Salut les copains j'ai un soucis en faite je souhaite faire en sorte que quand on clique sur une option d'un selectMenu ça modifie le premier embed d'une série de 3 embeds, pour ce faire, j'ai fias ça
sauf que redUpdate est undefined
Normal, fields c'est un tableau avec chaque champs
donc fields[0] pour le premier, etc
@misty parcel
🤔
Hm ?
Mh ?
Tu me met un emoji pensif, donc, je suppose que t'as pas capté
Mais faut m'en dire plus
j'ai tester
Combien de champs as-tu ?
3
oui
Fais un screen de ce que tu appeles "embed"
oui je sais j'ai 3 embeds
Tes fields ne sont pas chargés, ca explique déjà les undefined
okok
Est ce que quelqu'un aurais des connaissance en bot vinted par hasard ici ?
Hey quelqu'un saurait comment je peux faire pour que le lien ce deploi de cette facon dans mon embed https://gyazo.com/82f7a500f2dd6d8ffeb09451eb6c29e5
tu parles de ton site web ou un autre truc ?
Ouep
c'est un meta en html
https://stackoverflow.com/questions/54266598/meta-tags-for-url-with-description-and-image-in-skype-discord
ce lien t'aidera 😉
Merci
Salem, quelqu'un s'y connait bien avec recharts les gars ?
Tu l’as déclare jamais t’as variable message
ouais bien vu il etait tard
salut
j'ai un problème, je communique avec une libraire d'un jeu de guerre, quand on est en guerre contre une autre équipe je veux que ça me renvoie le nom des deux équipes qui s'affrontent, sauf que ça me spam complètement la réponse car les guerres durent deux jours, du coup quand le bot revérifie moins de 2 jours après si les équipes sont toujours en guerre, ça renvoie true (je suppose)
meme avec le return
ok bon j'ai contourner le pb
Salut, j'aimerais savoir si c'était possible de spécifier au bot ou créer un channel, j'ai déjà la commande de base sauf que les channels se créent en dehors des catégories
const { SlashCommandBuilder, ChannelType } = require('discord.js')
module.exports = {
data: new SlashCommandBuilder()
.setName('createchannel')
.setDescription("Permet de créer un channel discord")
.addStringOption((option) => option.setName('channelname').setDescription("Le nom souhaitez pour le channel discord").setRequired(true))
.addStringOption((option) => option.setName('channeltype').setDescription("Le type de channel discord souhaitez").setRequired(true)),
async execute(interaction, client) {
let channelname = interaction.options.getString('channelname');
let channeltype = interaction.options.getString('channeltype');
let writechannel = ChannelType.GuildText;
let voicechannel = ChannelType.GuildVoice;
let owner = interaction.guild.ownerId;
if (interaction.user.id != interaction.guild.ownerId) return interaction.reply({content: "Vous n'avez pas la permission d'exécuter cette commande !", ephemeral: true});
if(channeltype === 'voice' && owner) {
interaction.guild.channels.create({
name: channelname,
type: voicechannel
})
} else if(channeltype === 'text' && owner) {
interaction.guild.channels.create({
name: channelname,
type: writechannel,
})
} else {
interaction.reply({ content: "Je ne connais pas ce type de salon, merci de spécifier votre choix entre voice & text !", ephemeral: true })
}
}
}
voilà mon code
tu peux passer une option "parent" pour indiquer la catégorie
ah oui ok je l'avais zappé sur la docs merci je vais essayer
j'ai essayer avec ce code
const { SlashCommandBuilder, ChannelType } = require('discord.js')
module.exports = {
data: new SlashCommandBuilder()
.setName('createchannel')
.setDescription("Permet de créer un channel discord")
.addStringOption((option) => option.setName('channelname').setDescription("Le nom souhaitez pour le channel discord").setRequired(true))
.addStringOption((option) => option.setName('channeltype').setDescription("Le type de channel discord souhaitez").setRequired(true)),
async execute(interaction, client) {
let channelname = interaction.options.getString('channelname');
let channeltype = interaction.options.getString('channeltype');
let writechannel = ChannelType.GuildText;
let voicechannel = ChannelType.GuildVoice;
let owner = interaction.guild.ownerId;
if (interaction.user.id != interaction.guild.ownerId) return interaction.reply({content: "Vous n'avez pas la permission d'exécuter cette commande !", ephemeral: true});
if(channeltype === 'voice' && owner) {
let voiceChannel = interaction.guild.channels.create({
name: channelname,
type: voicechannel,
})
voiceChannel.parent('1005161613214634166')
} else if(channeltype === 'text' && owner) {
interaction.guild.channels.create({
name: channelname,
type: writechannel,
})
} else {
interaction.reply({ content: "Je ne connais pas ce type de salon, merci de spécifier votre choix entre voice & text !", ephemeral: true })
}
}
}
mais il me retourne une erreur
TypeError: voiceChannel.parent is not a function
c'est pas une fonction parent mais une option
let voiceChannel = interaction.guild.channels.create({
name: channelname,
parent: "1005161613214634166",
type: voicechannel,
})
C'est comme ça il me semble.
tu as peut être setParent pour choisir la catégorie
voicechannel est un nombre ici
faut un channel resolvable
j'ai essayer avec ça aussi ça ne marche pas
Je l'ai mis en string.
ah nn pardon c'est moi qui lis pas les bonnes lignes
ça peut arriver je t'en veux pas.
oui car tu gères pas l'async, mais utilises plutot ce que Killer Jumper a envoyé c'est plus opti dans ce cas
ah oui ok sa marche merci j'avais pensé à faire comme ça mais j'me suis dis que ça n'allais pas marcher donc j'ai changer de manière de faire
Bonjourrr, en ce momment j'essaie de fetch le contenu d'une api mais j'obtiens toujours cette erreur, pouvez vous m'aider ?
Code complet : cf Pj (message.txt) (La fonction qui nous intéresse : LoadDrink() (searchById())
Code : ```jsx
const SearchById = async (id) => {
await fetch(https://www.thecocktaildb.com/api/json/v1/1/lookup.php?i=${id})
.then(response => {
console.log(response.body)
console.log(response.json())
response.json()
})
.then(data => {
setDrinkData(data["drinks"])
})
console.log(drinkData)
setOneDrink(true)
setAllDrinks(false)
}
Erreur (je l'obtiens plusieurs fois juste en chargant la page, lors du chargement je ne demande meme pas de lancer le fetch) :
Salut, j'ai une question pour les dev JS ; Comment avez vous appris JS ? Merci ;))
Salut, je suis pas un développeur expérimenté mais personnellement j’ai commencé par apprendre les bases, ensuite j’me suis pencher sur tout ce qui est arrow function, await, async, etc comprendre leurs fonctionnements et leurs utilisations et après je me suis dirigé vers DJS
J’ai ciblé certains concepts de JS en fonction du projet que je prévoyais (ici DJS) je sais pas si c’est une bonne méthode mais elle a été efficace pour ma part
A premiere vue ce que tu get contient une erreur
Cest pas ton code qui merde, mis a pars que tu essaie d’acceder a l’index drinks qui n’existe pas vu que tu as une erreur dans la promesse
salut merci de ta réponse , tu entend quoi par les bases ?
Apprendre les conditions, les variables, les boucles, les fonctions etc
Le json existe, si tu veux je te laisse entrer le liens dans ta barre google
On m'a dit que le probleme c'etait que le navigateur n'aime pas les requettes fetch sur une api comme ça et qu'il fallait dire au navigateur que la requette est safe
Jr ne sais juste pas comment faire
Cherche sur internet tu auras sûrement la réponse
quel id n'est pas null stp
merci
J'ai pas trouve :/
Comment ça ?
Aucuns id que j'utilise est null
Ahhh
Att
12450 @placid wind
Hey ! Connaissez-vous un bon module pour un système de level ?
Tu veux pas le faire depuis une DB ?
Pourquoi pas, mais je pense ne pas savoir comment faire
Il y a des tutos sur YouTube pour faire ça tu peux regarder le fonctionnement de base et ajuster à tes besoins
Ok merci ! Je vais me renseigner
Salut, vous savez pourquoi j'ai cette erreur ? j'ai suivi l'exemple de la docs DJS pourtant : TypeError: Cannot read properties of undefined (reading 'getTextInputValue')
Hastebin is a free web-based pastebin service for storing and sharing text and code snippets with anyone. Get started now.
Tu es en quelle version de Discord.JS ?
14
Tu as bien suivi la documentation en v14 ?
oui
Hum, tu as la ligne où se situe l'erreur ?
c'est bon j'ai plus d'erreur console mais les valeurs de mon modal ne s'envoie pas dans mon embed
fin mon embed ne s'envoie pas tout court
ouais impossible d'envoyer mes valeurs dans un embed si quelqu'un pourrait m'aider
Tu pourrais renvoyer ton code ?
ouais
Hastebin is a free web-based pastebin service for storing and sharing text and code snippets with anyone. Get started now.
c'est embêtant si la docs de DJS n'est pas bonne
@neat lintel salut excuse de te déranger mais tu as déjà bosser avec les modals ?
Où est ton embed 
Error [InteractionAlreadyReplied]: The reply to this interaction has already been sent or deferred.
j'ai tout changer j'essaye de voir où sa coince
Hastebin is a free web-based pastebin service for storing and sharing text and code snippets with anyone. Get started now.
tien le code actuelle avec l'embed
j'suis pas aider avec une docs qui est fausse

Il faut mettre l'embed dans un interactionCreate 
C’est déjà le cas toutes mes slash command sont automatiquement assigner à la fonction interactionCreate
Oui, mais il faut le faire dans un event séparé (learn the doc)
J’ai du louper un épisode ou alors j’ai pas la bonne logique mais pourquoi faire 2 interactionCreate si mon fichier actuelle prend déjà en charge cette fonction
J'en ai aucune idée. Pratiquement tout le monde fais cette technique mais parfois ça ne fonctionne pas parfois l'inverse
C'est un peu le bordel
Ça va pas être chiant ça encore

Salut, oui, tu as un problème ?
En gros là il faut que tu modifies ton handler pour qu'il prenne aussi en charge les modals, parce que là tu fais await interaction.showModal(modal); qui équivaut à une réponse à l'interaction de ta commande, puis tu veux récupérer les valeurs de ton modal. Dcp ici tu dois dans ton interactionCreate faire que si interaction.isModal() (ou qqc comme ça regarde la doc), bah là tu pourra récupérer les valeurs de ton modal
si t'as pas compris dis moi
C'est if (interaction.type == InteractionType.ModalSubmit) en v14 (avant en v13 y'avais un ''client.on'' pour mais il à été retiré à l'ajout des modals à disocrd js
(Mais oui c'est ça la solution)
J'ai fais comme ça du coup:
index.js
client.on('interactionCreate', async interaction => {
if (!interaction.isChatInputCommand()) return;
const command = client.commands.get(interaction.commandName);
if (!command) return;
if(interaction.customId === 'myModal'){
console.log(interaction)
}
try {
await command.execute(interaction)
} catch(error) {
console.log(error);
await interaction.reply({ content: 'Une erreur s\'est produite lors de l\'exécution de cette commande !', ephemeral: true});
}
});
mais j'ai cette erreur DiscordAPIError[40060]: Interaction has already been acknowledged.
yep j'ai tout poster au dessus
Error [InteractionAlreadyReplied]: The reply to this interaction has already been sent or deferred.
je comprends plus rien au erreur c'est aberrant
Je n'ai jamais la même erreur

La dernière erreur que j'ai eu : TypeError: Cannot read properties of undefined (reading 'getTextInputValue')
Non parce que avant tu as un if (!interaction.isChatInputCommand()) return; donc si c'est une interaction de modal tu arrivera pas à ton if(interaction.customId === 'myModal'){
je supprime cette condition ?
je l'ai supprimé mais toujours la même erreur
TypeError: Cannot read properties of undefined (reading 'getTextInputValue') dans modal.js
Error [InteractionAlreadyReplied]: The reply to this interaction has already been sent or deferred. dans index.js
Oui je te l'ai déjà dit c'est normal, tu dois gérer ton interaction pour le modal ailleurs c'est pas une commande
donc ça
let codePin = interaction.fields.getTextInputValue('codePinInput');
let number = interaction.fields.getTextInputValue('numberInput');
let email = interaction.fields.getTextInputValue('emailInput');
let ping = interaction.fields.getTextInputValue('pingInput');
let ModalEmbed = new EmbedBuilder()
.setTitle("Modal")
.setFields(
{ name: "Code Pin", value: codePin },
{ name: "Nombre Choisi", value: number },
{ name: "Email", value: email },
{ name: "L'utilisateur souhaite-t-il être ping ?", value: ping }
)
.setColor("Aqua")
.setTimestamp()
await interaction.reply({ embeds: [ModalEmbed] })
je dois le mettre dans mon index ?
@fading glacier
du coup je l'ai mis dans mon index j'ai plus d'erreur console sauf ça
mets ça dans ton interactionCreate, dans ta condition if(interaction.customId === 'myModal'){ console.log(interaction) }
et btw, mets ton const command = client.commands.get(interaction.commandName); if (!command) return; juste après la condition vu que c'est pas une commande ça va return avant de check le customId sinon
good comme ça ?
client.on('interactionCreate', async interaction => {
if(interaction.customId === 'myModal'){
console.log(interaction)
let codePin = interaction.fields.getTextInputValue('codePinInput');
let number = interaction.fields.getTextInputValue('numberInput');
let email = interaction.fields.getTextInputValue('emailInput');
let ping = interaction.fields.getTextInputValue('pingInput');
let ModalEmbed = new EmbedBuilder()
.setTitle("Modal")
.setFields(
{ name: "Code Pin", value: codePin },
{ name: "Nombre Choisi", value: number },
{ name: "Email", value: email },
{ name: "L'utilisateur souhaite-t-il être ping ?", value: ping }
)
.setColor("Aqua")
.setTimestamp()
await interaction.reply({ embeds: [ModalEmbed] })
}
const command = client.commands.get(interaction.commandName);
if (!command) return;
try {
await command.execute(interaction)
} catch(error) {
console.log(error);
await interaction.reply({ content: 'Une erreur s\'est produite lors de l\'exécution de cette commande !', ephemeral: true});
}
});
ok c'est good merci
Return après ton await interaction.reply
Sinon ça continue et check si c’est une commande
C’est useless
ok merci
Et pourquoi pas ```js
const modalSubmitInteraction = await interaction.awaitModalSubmit();
Plutôt que de s'embêter avec l'événement ?
Aussi oui
Bonsoir ! Je débute en js et j'aimerais boucler autour d'un tableau pour récup les données et ensuite les push dans un tableau ( qui ensuite affichera les données dans un graph ) 🙂
Voici mon code : ```js
const dataBenefits = useSelector(state => state.pannelBenefits.value)
const dataTurnover = useSelector(state => state.pannelTurnover.value)
console.log('ababa', dataBenefits, dataTurnover)
const data = []
useEffect(() => {
dataBenefits.forEach(item => {
console.log(item.name, item.value)
data.push({ name: item.name, benefits: item.value })
})
})```
Voici ce que me return le console.log ( 1ère ligne ) ainsi que l'erreur ^^
Bonsoir tt le monde j'ai un problème que je dois régler en urgence avec react ma fonction like dislike fonctionne sur ma page d'accueil mais pas sur ma page tendance quelqu'un de disponible pour m'éclairer sur le prblm svp ?
Comment ça mon reuf ?
En gros sur ma page d'accueil la requête like ce fait et s'affiche correctement avec react quand je clique il devient rouge je reclique deviens blanc sauf que sur ma page tendance la requête fonctionne cependant je dois recharger ma page pour avoir le remplissage pareil pour les commentaire de cette page :/ j'envoie quelque capture la
donc déjà d'après ce que je constate le prblm vient du front mtn ce qui bloque je ne sais pas vu que je reprends des components qui fonctionnent sur la page d'accueil
Īsan — Aujourd’hui à 03:38
Hey ! J'ai un problème, c'est la première fois que je code j'essaie de faire un bot discord. J'ai ce code (fait via une vidéo d'un anglais, après ça il fait : node . dans le terminal et ça lui indique que le bot est on mais moi rien ne se passe) qql peux m'aider svp ?
Image
unknown.png
25.15 KB
1011x302px
Īsan — Aujourd’hui à 03:53
PS C:\Users\ethan\Desktop\BOT MASDAK> node .
C:\Users\ethan\Desktop\BOT MASDAK\node_modules\discord.js\src\client\Client.js:480
throw new TypeError(ErrorCodes.ClientMissingIntents);
^
TypeError [ClientMissingIntents]: Valid intents must be provided for the Client.
at Client._validateOptions (C:\Users\ethan\Desktop\BOT MASDAK\node_modules\discord.js\src\client\Client.js:480:13)
at new Client (C:\Users\ethan\Desktop\BOT MASDAK\node_modules\discord.js\src\client\Client.js:78:10)
at Object.<anonymous> (C:\Users\ethan\Desktop\BOT MASDAK\index.js:2:13)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
at node:internal/main/run_main_module:17:47 {
code: 'ClientMissingIntents'
}
J'ai modifié quelques trucs maintenant j'ai cette erreur quand je fais la commande
oui le bot s'appelle masdak ptdr
je repost ici car je sais pas trop si c'est script ou pas
sinon le message est dans #java-jvm
Il faut comprendre ce que tu utilises, si tu ne sais même pas si ce que tu fais c'est du java ou du JavaScript tu ne trouveras pas d'aide
Bonjour un ami a un probleme quand il start son bot
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving: discord.js.old@11.6.5
npm ERR! Found: @discordjs/opus@0.7.0
npm ERR! node_modules/@discordjs/opus
npm ERR! @discordjs/opus@"^0.7.0" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peerOptional @discordjs/opus@"^0.1.0" from discord.js.old@11.6.5
npm ERR! node_modules/discord.js.old
npm ERR! discord.js.old@"^11.6.5" from the root project
npm ERR!
npm ERR! Conflicting peer dependency: @discordjs/opus@0.1.0
npm ERR! node_modules/@discordjs/opus
npm ERR! peerOptional @discordjs/opus@"^0.1.0" from discord.js.old@11.6.5
npm ERR! node_modules/discord.js.old
npm ERR! discord.js.old@"^11.6.5" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR! See /home/container/.npm/eresolve-report.txt for a full report.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/container/.npm/_logs/2022-08-14T18_38_24_194Z-debug-0.log
Mais que avant sur replit cela fonctionner bien
Merci
Ton bot est pas à jour
Installe la version 14
De DJS
Oui mais son bot est sous djs 12
Et il veut le laisser comme ça
Désolé haha, JavaScript
Du coup si qql sais ça m'aiderait beaucoup 😄
Tu n'as pas mis les intents @mossy lynx
Bah il peut pas
Comment ça ?
Pour connecter ton bot, il faut lui mettre des intents, regarde sur la doc 🙂
J'vais voir comment faire ça merci et "la doc"?
La doc de discordjs
Sur google 🤔
Sur GOOGLE
Yes merci ptdr j'suis con
Google LLC est une entreprise américaine de services technologiques fondée en 1998 dans la Silicon Valley, en Californie, par Larry Page et Sergey Brin, créateurs du moteur de recherche Google.
Pourquoi ?
Jusqu'à aujourd'hui javais un bot en djs 12 et il marcher bien
Bah il utilise sûrement des fonctionnalités de DJS 13 ou 14
Mais je vois pas l’intérêt de laisser un bot sur une ancienne version
surtout que la date limite de l'intent du contenu du message est le 30 août donc ca laisse 15 jours de vie a djs 12
ah non le 31 donc encore 16 jours
Ils vont devoir se dépêcher XD
Hey ! quelqu'un saurais m'aider svp ? J'ai cette erreur au start :
Uncaught TypeError TypeError [ERR_INVALID_ARG_TYPE]: The "emitter" argument must be an instance of EventEmitter. Received type string ('message') at __node_internal_captureLargerStackTrace (internal/errors:465:5) at NodeError (internal/errors:372:5) at eventTargetAgnosticAddListener (events:1008:11) at on (events:1095:3) at <anonymous> (c:\Users\ethan\Desktop\bot masdakk\index.js:26:8) at Module._compile (internal/modules/cjs/loader:1105:14) at Module._extensions..js (internal/modules/cjs/loader:1159:10) at Module.load (internal/modules/cjs/loader:981:32) at Module._load (internal/modules/cjs/loader:822:12) at executeUserEntryPoint (internal/modules/run_main:77:12) at <anonymous> (internal/main/run_main_module:17:47)
Un bout de code pour nous éclairer ?
j'suis en train tqt haha
`Client.on("message", message => {
if(message.author.bot) return;
if(message.channel.type == "dm") return;
if(message.member.hasPermission("ADMINISTRATOR")){
if(message.content.startsWith(prefix + "ban")){
let mention = message.mentions.members.first();
if(mention == undefined){
message.reply("Merci de préciser sur quel utilisateur le jugement dois s'abbatre.")
}
else {
if(mention.bannable){
mention.ban();
message.channel.send(mention.displayName + "a été Jugé par Masdak !")
}
else {
message.reply("Ce membre n'est pas jugeable !")
}
}
}
}
});`
c'est depuis que j'ai add ça
avant j'avais aucune erreur
@fathom jay tu as besoin du début aussi ?
Inverse les conditions du message et des permissions
Ou ça ? déso c'est la première fois que j'essaie de coder je comprend pas tout
Tu mets le si le message commence par en premier
Yep
ok je vais essayer merci
toujours la même erreur
C'est pas plutôt Client.on("messageCreate", message) ?
je vais essayer
fin je parle de l'event
Ça dépend du const client
Certains font avec un c en maj d'autre non
si ça peux vous aider
ouai mais je parle de l'évènement car j'ai rien du côté de discord.js (la doc) pour l'évènement message
Enleve la maj à Client dans const { Client}
ok j'vais essayer
Ah oui
C'est moi qui ait mal lu x)
Mais depuis la v13 c'est bien MessageCreate
Enfaite non
alors j'arrive a start le bot mais la commande marche pas j'ai cette erreur :
Uncaught TypeError TypeError: message.member.hasPermission is not a function at <anonymous> (c:\Users\ethan\Desktop\bot masdakk\index.js:31:27) at emit (events:539:35) at handle (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\actions\MessageCreate.js:23:14) at module.exports (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32) at handlePacket (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31) at onPacket (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:481:22) at onMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:321:10) at onMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\event-target.js:199:18) at emit (events:527:28) at receiverOnMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:1178:20) at emit (events:527:28) at dataMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:528:14) at getData (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:446:17) at startLoop (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:148:22) at _write (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:83:10) at writeOrBuffer (internal/streams/writable:389:12) at _write (internal/streams/writable:330:10) at Writable.write (internal/streams/writable:334:10) at socketOnData (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:1272:35) at emit (events:527:28) at addChunk (internal/streams/readable:315:12) at readableAddChunk (internal/streams/readable:289:9)
at Readable.push (internal/streams/readable:228:10) at onStreamRead (internal/stream_base_commons:190:23) at callbackTrampoline (internal/async_hooks:130:17) --- TLSWRAP --- at init (internal/inspector_async_hook:25:19) at emitInitNative (internal/async_hooks:201:43) at TLSSocket._wrapHandle (_tls_wrap:618:24) at TLSSocket (_tls_wrap:517:18) at connect (_tls_wrap:1625:19) at tlsConnect (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:1032:14) at ClientRequest (_http_client:326:45) at request (https:353:10) at initAsClient (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:841:28) at WebSocket (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:85:7) at exports.create (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\WebSocket.js:35:14) at <anonymous> (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:276:47) at connect (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:203:12) at createShards (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketManager.js:247:19) at connect (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketManager.js:167:17) at processTicksAndRejections (internal/process/task_queues:96:5) --- async function --- at login (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\Client.js:232:21) at <anonymous> (c:\Users\ethan\Desktop\bot masdakk\index.js:59:8) at Module._compile (internal/modules/cjs/loader:1105:14) at Module._extensions..js (internal/modules/cjs/loader:1159:10) at Module.load (internal/modules/cjs/loader:981:32) at Module._load (internal/modules/cjs/loader:822:12) at executeUserEntryPoint (internal/modules/run_main:77:12)
at <anonymous> (internal/main/run_main_module:17:47)
Je viens de voir
Client.on, tu enlève la majuscule
permission.has aussi
Explique déjà ce que tu as fait pour régler ta première erreur
ok
j'ai échangé les deux ligne de startsWith et hasPermission
puis j'ai enlever le C majuscule et mis messageCreate
Change ton hasPermission en permission.has
ok j'vais essayer
Uncaught TypeError TypeError: Cannot read properties of undefined (reading 'has') at <anonymous> (c:\Users\ethan\Desktop\bot masdakk\index.js:31:38) at emit (events:539:35) at handle (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\actions\MessageCreate.js:23:14) at module.exports (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32) at handlePacket (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31) at onPacket (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:481:22) at onMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:321:10) at onMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\event-target.js:199:18) at emit (events:527:28) at receiverOnMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:1178:20) at emit (events:527:28) at dataMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:528:14) at getData (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:446:17) at startLoop (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:148:22) at _write (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:83:10) at writeOrBuffer (internal/streams/writable:389:12) at _write (internal/streams/writable:330:10) at Writable.write (internal/streams/writable:334:10) at socketOnData (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:1272:35) at emit (events:527:28) at addChunk (internal/streams/readable:315:12) at readableAddChunk (internal/streams/readable:289:9) at Readable.push (internal/streams/readable:228:10) at onStreamRead (internal/stream_base_commons:190:23)
at callbackTrampoline (internal/async_hooks:130:17) --- TLSWRAP --- at init (internal/inspector_async_hook:25:19) at emitInitNative (internal/async_hooks:201:43) at TLSSocket._wrapHandle (_tls_wrap:618:24) at TLSSocket (_tls_wrap:517:18) at connect (_tls_wrap:1625:19) at tlsConnect (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:1032:14) at ClientRequest (_http_client:326:45) at request (https:353:10) at initAsClient (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:841:28) at WebSocket (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:85:7) at exports.create (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\WebSocket.js:35:14) at <anonymous> (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:276:47) at connect (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:203:12) at createShards (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketManager.js:247:19) at connect (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketManager.js:167:17) at processTicksAndRejections (internal/process/task_queues:96:5) --- async function --- at login (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\Client.js:232:21) at <anonymous> (c:\Users\ethan\Desktop\bot masdakk\index.js:59:8) at Module._compile (internal/modules/cjs/loader:1105:14) at Module._extensions..js (internal/modules/cjs/loader:1159:10) at Module.load (internal/modules/cjs/loader:981:32) at Module._load (internal/modules/cjs/loader:822:12) at executeUserEntryPoint (internal/modules/run_main:77:12) at <anonymous> (internal/main/run_main_module:17:47)
j'ai ça maintenant
message.member.permissions
Met un le p de permission en maj
met que les 2 premières lignes des erreurs stp sinon c'est un calvaire pour retrouver x)
j'ai fait ça et c'est bon
désolé haha
Ah faut un s
Merci pour votre aide
T'utilise la doc ou tu as pas encore regardé ? @mossy lynx
J'ai jamais fait gaffe
d'ailleurs questions, comment je peux faire en sorte que dans la réponse du bot l'utilisateur banni sois ping ?
en mode :
@mossy lynx à été banni
au lieu de
Īsan à été banni
pas encore regardé je fais avec des vidéos mais du coup plus trop d'actu
Techniquement, à moins que je me trompe, si il est ban tu peux plus le ping
Si tu sais pas encore lire la doc, regarde d'abord le guide
Oui faudrait le ping avant de le ban
je t'avoue que j'ai pas trouver enft ptdr
bah en sois ça ping et ça instant ban après
Bah tu fais le message de ping (en rajoutant un @ avant le nom) et tu ban direct
merci
justement comment je peux faire ça ?
en modifiant mon code actuel
message.reply("@" + leNomDuMec + "a été banni !")
OU
message.reply(`@${leNomDuMec} a été bani !`);
Faut l'id pas le nom du mec
du coup, d'après ce que je vois,
message.channel.send("@" + mention.displayName + " a été jugé par Massdakk !");
oui
Et c'est pas comme ça qu'on ping
"<@" + mention.id +">"
si je m'est ça ça devrais ping ?
après que tu mentionnes l'id ou le nom, je vois pas le soucis
Oui
j'vais essayer merci
Discord prend que en compte l'id
Mhhh oké 👍
ça marche c'est parfait
salut a tous petit souci sur une ligne je vous fait passé le code et l'erreur, si quelqu'un pourrais me venir en aide svp , j'avance pas :
const fs = require("fs")
module.exports = async client => {
fs.readdirSync("./Events").filter(f => f.endsWith(".js")).forEach(async file => {
let event = require(`../Events/${file}`)
client.on(file.split(".js").join(""), event.bind(null, client))
console.log(`Evènement ${file} chargé avec succès !`)
})
}
et l'erreur :
Uncaught TypeError TypeError: event.bind is not a function
at <anonymous> (e:\mon bot discord\Loaders\loadsEvents.js:8:52)
at module.exports (e:\mon bot discord\Loaders\loadsEvents.js:5:63)
t'es pas sensé mettre un nom pour récupérer ton paramètre à la place d'event.bind ?
du genre ? ca fait deux semaine que j'ai débuter le JS aprés avoir lut pas mal de doc et de video (un petit noob)
Re ! j'ai une question, actuellement tout marche, mais si qql n'ayant pas la perm admin utilise une commande le bot se stop est il y a une erreur comme quoi la personne n'a pas la perm...
il y a un moyen de faire l'inverse de ça, donc check la permission, et si il ne la pas envoyer une réponse uniquement
Tu rajoutes un else
et je m'est quoi après ?
je connais vraiment pas je commence le code depuis même pas 24h
@dire latch
Il faut regarder sur les docs etc et apprendre 🙂
j'ai chercher avant de demander mais je n'ai pas trouver
Re ! J'ai mis un else (celui tout en bas) je suppose bien positionner, mais j'ai cette erreur si qql utilise la commande sans avoir la perm admin:
Uncaught DiscordjsError RangeError [BitFieldInvalid]: Invalid bitfield flag or number: ADMINISTRATOR.
Quelqu'un peux m'aider svp ?
pour la méthode .on(), tu as l'evènement en premier paramètre et la data en deuxième paramètre
Hello j'ai une question en React mais c'est difficile de l'expliquer en écrit qqn serait chaud passer avec moi en voc pour voir?
essaye de remplacer ADMINISTRATOR par Administrator
c'était ça.... merci la prochaine fois je penserais a chercher parmi les majuscule quand il y a un problème comme ça
ta les perms
ah ouai nickel merci beaucoup
J'ai pas été très loin en react donc je pense pas pouvoir t'aider
Bah je ne suis pas très loin non plus
t'arrive à me donner un ptit résumé pour savoir si je peux t'aider ?
okay
je vais envoyer plein de photo
En gros sur ce tableau j'ai le bouton action qui redirige vers une autre page
Et puis j'ai un bouton goback qui est juste un simple retour en arrière en JS
<button className='btn btn-primary-art btn-sm' onClick={() => navigate(-1)}>Go back</button>
J'aimerais quand je clique sur ce btn retourner sur la page ou je me situais et non pas à chaque fois sur la première
je vais faire comme je fait depuis 3 jours recommencer a zéro on verra bien
@fathom jay Le boss quoi il aide tt le monde hahah
Hey ! Depuis tout à l'heure, je cherche comment faire en sorte que quand quelqu'un soit ban ou kick, la personne reçoit un DM du bot si quelqu'un peux m'aider, car je ne trouve pas !
c'est entre plusieurs pages ?
j'ai réussi à faire en sorte que la personne qui fait la commande reçoivent un message mais j'arrive pas à faire en sorte que ce soit la personne mentionner/ban :(
en vrai essaye de regarder la doc de discordjs car dès que tu comprends un peu, ça passe tout seul
c'est ce que je fais ^^
@fathom jay tu saurais me dire comment modifié ça pour que ce soit la personne banni est non celle qui fait la commande qui reçoivent "hello" stp ?
remplace client par mention (je suis pas sur je connais pas ton code)
j'ai essayer ça ne fonctionne pas j'ai cette erreur:
Uncaught TypeError TypeError: Cannot read properties of undefined (reading 'send')
après si tu as juste autre choses pour mp le mec mentionner je veux bien
mention.send
bah ce que j'ai dit mention a la place de client et tout ton charabia et comme dit McDuckTDM
Oui
ok j'essaye
✅
@dire latch C'est possible de retranscrire les dm que reçois le bot dans le channel d'un serveur ?
oui carrément possible
Oui
comment faire stp ? J'ai pas trouver sur internet... si t'as un site ou une vidéo qui l'explique ou juste toi si tu as le temps
Il y a tout sur google 🙂
Tu cherches mal 😦
je m'en doute, mais pour le coup je trouve pas et je cherche depuis longtemps la
si tu peux juste m'aider ça serais cool
tu y arrives pas ?
c'est bon McDuck et Barwoz m'ont expliquer maintenant j'ai juste besoin de faire en sorte que les dm que reçois le bot sois restranscrit dans un channel
la par contre j'y comprend rien
j'ai essayer des trucs mais ça marche pas
d'ailleurs quand tu mets ton code, met ça pour éviter les screens 😉
markdown discord
ouai j'vais faire ça déso
Mais du coup Brice si tu sais comment faire je suis preneur
envoie un bout de code et explique brèvement
en gros, j'aimerais que ce que mon bot reçois en privé sois retranscris dans un channel.
Déjà ça ce serais bien
Après si c'est possible j'aimerais faire en sorte que ce message (envoyer lors d'un ban/kick) :
mention.send('hola hola')
obtienne un bouton (activable qu'une fois, ou un système équivalent) qui une fois activer, fasse en sorte que uniquement le message suivant sois retranscrit, pour éviter le spam avec les troll ect...
@fathom jay si au moins je peux retranscrire les message c'est bien
En mode quand tu ban un mec, ça te dise dans un channel #bans Masdak a été ban ?
nan en gros, quand je ban un mec, en dm, il reçois un message, qui lui demande d'envoyer une lettre d'excuse (délire entre pote) et j'aimerais qu'il puisse l'envoyer en mp au bot qui retranscrira le message dans un channel du serveur
ah ouai je vois
et si possible pour éviter les spam faire un bouton sur le message pour qu'il ne puissent envoyer qu'un seul message retranscrit
En gros, dans l'algo, après avoir envoyé en mp le ban, faudrait que tu écoutes l'évènement message et que quand il y a un message, il te le renvoie vers un channel présélectionné
il me faudrait du code que tu as déjà fait car je fais jamais de discord.js
oui je vois
Il pourras pas mp le bot si il est pas sur le discord
pourquoi?
Il me semble que sa bloque
Il peut pas garder l'id du mec qui l'a ban dans une variable et l'utiliser pour envoyer un MP ? A condition que l'autre accepte les mps des étrangers
A peut-être
ah oui c'est vrai, bah oklm sans compter le ban genre juste une commande qui active l'envoie du dm
J'avoue que discord doit surement bloquer pour éviter les spams
en mode juste une commande qui permet d'envoyer le mp comme pour le truc auto du ban ect..
Pas possible
genre un bot peux pas mp un mec via une commande ?
comme valkyrie par exemple ?
bah tu fais la même chose sans le ban
oui c'est ça mais je vois pas comment faire
Si il est pas sur le discord, impossible
il sera sur le discord
tqt
juste une commande qui fais ça
Ba nan si il est ban
ouai quand tu fais !mp, il envoie un msg au bot
juste une commande qui envoie un dm au mec avec le système que j'ai demander tout a l'heure
*au mec
oui c'est ça
et le mec peux répondre et le premier message qu'il enverra au bot après sera retranscris
ça c'est possible mais je vois pas comment faire
envoie déjà ce que tu as fais avec le ban
chuis pas un pro de discordjs donc si je peux éviter de passer 1h dans la doc, on sera bien content tous les 2 niveau temps
pourquoi avec le ban ? si on fait sans pas besoin si ?
pour avoir un model
vasy
jtai dis jconnais pas par coeur discordjs et j'ai pas de quoi tester
client.on("messageCreate", message => {
if(message.author.bot) return;
if(message.channel.type == "dm") return;
if(message.content.startsWith(prefix + "mp")){
if(message.member.permissions.has("ADMINISTRATOR")){
let mention = message.mentions.members.first();
if(mention == undefined){
message.reply("Merci de préciser sur quel utilisateur le jugement dois s'abbatre.")
}
else {
if(mention.bannable){
mention.send('hola hola')
mention.ban();
message.channel.send("<@" + mention.id +"> a été jugé par Masdak, il reçois donc une peine de prison à vie.")
}
else {
message.reply("Ce membre n'est pas jugeable !")
}
}
}
}
});
voilà la commande de ban
très sus les message du bot mais oklm c'est un serveur entre pote
bah déjà tu remplaces ton "ban par "mp" logique (fin tu refais en mode else if(message.content.startsWith(prefix + "mp"))
tu fais la même chose pour savoir si c'est un admin
!mp @user
le but c'est de mention la cible
comme pour un ban
mais la c'est un mp
un peu moins violent
client.mention.DMChannel("TonMessage") ? Essaye, j'ai fouillé la doc mais je peux pas tester donc c'est un peu à l'impro
je m'est ça où?
On va surement me corriger mais tant mieux
Tu met ça après ton else et ton if
fin du coup tu dois enlever les trucs qu'on rien à voir de ban
comme ça ?
j'enlève ça ?
oui sauf le premier else
bah :
else{
Le code
}```
oui donc ce que tu m'as envoyer
je fais juste ça et c'est bon ?
client.on("messageCreate", message => {
if(message.author.bot) return;
if(message.channel.type == "dm") return;
if(message.content.startsWith(prefix + "mp")){
if(message.member.permissions.has("ADMINISTRATOR")){
let mention = message.mentions.members.first();
if(mention == undefined){
message.reply("Merci de préciser sur quel utilisateur le jugement dois s'abbatre.")
}
else {
(client.mention.DMChannel("TonMessage"))
message.channel.send("<@" + mention.id +"> a été jugé par Masdak, il reçois donc une peine de prison à vie.")
}
}
}
});
comme ça du coup ?
t'enlève les parenthèses entre client et ) et tu enlèves message.channel.send
ok j'test
Uncaught TypeError TypeError: Cannot read properties of undefined (reading 'DMChannel')
erreur
y'a pas un const à mettre pour faire ça ?
sinon pour envoyer un mp juste ça ca ne marche pas ?
mention.send('hola hola')
@fathom jay j'ai essayer comme ça :
mention.send('texte')
et le mec mentionner reçois le mp
il faut juste retranscrire le message du coup non ?
@fathom jay
fais mention.DMChannel pourquoi tu rajoutes client avant ?
c'est brice qui ma dit de le faire
je t'avoue que je ne sais pas
client.on("messageCreate", message => {
message.channel.sendMessage("string");
});
après la j'ai trouver comment mp des joueurs, avec ça
le vrai truc c'est que les mp que le bot reçois soit transcris dans un channel
et ça j'y arrive pas
ah bah si sa marche tant mieux
tu sais comment faire pour le transcript toi ?
Non
:(
Bonsoir
Je suis assez débutant en codage donc excusez moi si la question peut paraître bête
Alors en fait j'aimerais que lorsqu'un message est envoyé sur mon serveur que mon bot le log dans la console sur VSC
const { Client, GatewayIntentBits } = require("discord.js");
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent
]
});
client.on("ready", () => {
console.log("bot opérationnel");
});
client.login("");
client.on("messageCreate", message => {
console.log(message);
});```
Donc j'ai fait ça
Mais ça ne marche pas
Si y'a pas le token c'est normal je l'ai enlevé pour éviter des soucis
Et du coup autre question au passage
Pourquoi lorsque je copie mon code et que je le met sous `` ça met pas les couleurs
Comme ça par exemple
Il faut que tu mettes les trois ` suivis du nom du langage, ici tu mets ```js
Ah, merci bien
Et pour ça, est-ce que tu as bien activé les Message Intents sur le pannel discord ?
Yep
Tu es en quelle version de Discord.JS ?
C'est bien ça ?
Oui
Non ça c’est NodeJS
Là je te parle de la librairie Discord.JS que tu as installé avec npm
Dans ton package.json cherche la ligne discord.js
Ah attends je crois que je sais
Déplace ton client.login à la fin du fichier
Je crois qu’il faut register les events avant de login le bot
Bizarre
const { Client, GatewayIntentBits } = require("discord.js");
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent
]
});
client.on("ready", () => {
console.log("bot opérationnel");
});
client.on("messageCreate", message => {
console.log(message);
});
client.login("");```
Comme ça
Tu as bien le message "bot opérationnel" dans la console quand tu start ?
Oui
bah le code devrait marcher là
Uniquement ce message
Bah je sais pas quand j'envoie un message dans mon serveur le bot ne log rien
Fin y'a rien qui change
Le bot a quoi comme permissions ?
Admin