#javascript-typescript
1 messages · Page 95 of 1
En gros, j'ai un tableau contenant tout les éléments, m'ont objectif est de filtrer ce tableau grâce a des checkbox, par exemple le résultat que je dois avoir
Perso j'ai fait un truc comme ça et j'avais mis mes données dans une api et j'avais fait un code ou j'avais filtré avec ce que tu marquais dans ta barre de recherche et ensuite j'affiché ce que ma constante avait récupérer avec le filter() après c'est peut être un peu compliqué à comprendre
nan c bon j'ai trouve une alternative
mongodb
quand un user rejoint ou envoie un message il est mis à la db mais quand qqn envoie un message ou rejoint n'est pas mis sur la db et j'ai cette erreur là :
````An Error has occured : ValidationError: User validation failed: balance: Cast to Number failed for value "{ type: [Function: Number], default: 0 }" (type Object) at path "balance", work: Cast to date failed for value "{ type: [Function: Date], default: 0 }" (type Object) at path "work", crime: Cast to date failed for value "{ type: [Function: Date], default: 0 }" (type Object) at path "crime", experience: Cast to Number failed for value "{ type: [Function: Number], default: 0 }" (type Object) at path "experience", level: Cast to Number failed for value "{ type: [Function: Number], default: 0 }" (type Object) at path "level"```
mon schema user.js
``` const mongoose = require('mongoose')
const userSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
guildID: String,
guildName: String,
userID: String,
userName: String,
experience: {
"type": Number,
"default": 0
},
level: {
"type": Number,
"default": 0
},
balance: {
"type": Number,
"default": 0
},
crime: {
"type": Date,
"default": 0
},
work: {
"type": Date,
"default": 0
}
});
module.exports = mongoose.model('User', userSchema);```
Simple pourtant
Quand tu modifie ta db (je sais pas où)
Toutes tes valeurs ne sont pas des nombres
Puis regardes, tes valeurs par défaut ont un problème, tu donne la valeur 0 à un objet de type Date. Faudrait new Date() à la place
Bien vu ^^
ah mercii
pourtant avant ça marchait et j'ai rient touché depuis (et j'ai edit les valeurs par defaut)
je t'écoute 🙂
ou ça N
ah
du coup default non plus
Normalement en JS ca marche quand meme il me semble
j'ai changé j'ai tjrs l'erreur
envois le code de la création de l'user si c'est ca qui pose problème
Bizarre
Yep j’ai aussi testé de mon côté. Autant pour moi ^^
bah dans mon function.js c ça client.createUser = async user => {
const merged = Object.assign({ _id: mongoose.Types.ObjectId() }, user)
const createUser = await new User(merged);
createUser.save()
};
et dans mon messageCreate (et aussi guild memberadd) ``` if(!dbUser) await client.createUser({
guildID: message.member.guild.id,
guildName: message.member.guild.name,
userID: message.member.id,
userName: message.member.user.tag,
balance: {
"type": Number,
"default": 0
},
work: {
"type": Date,
"default": new Date()
},
crime: {
"type": Date,
"default": new Date()
},
experience: {
"type": Number,
"default": 0
},
level: {
"type": Number,
"default": 0
}
})```
await new User(merged); ici le await sert a rien. Une classe ne peux pas renvoyer de promise vu que elle renvoie l'objet construit
Ah ben voilà
Pk tu met type et Number dans ton messageCreate ?
Tu devrais mettre la valeur xD
faut meme pas de sous-objets en faite
comment ça ?
work: {
"type": Date,
"default": new Date()
},
doit devenir
work: new Date()
ok
C'est pas censé etre un model ici
et dans mon messageCreate (et aussi guild memberadd) ``` if(!dbUser) await client.createUser({
guildID: message.member.guild.id,
guildName: message.member.guild.name,
userID: message.member.id,
userName: message.member.user.tag,
balance: 0,
work: new Date(),
crime: new Date(),
experience: 0,
level: 0
})```
Là
À mon avis, ça vient de ça
après si il y a pas de données, autant enlever toute la partie
balance: 0,
work: new Date(),
crime: new Date(),
experience: 0,
level: 0
Ca prendra la valeur par défaut donc pas besoins de la remettre ici
Yep pas faux
@glass cargo c bon j'ai plus l'erreur merci !
Super 👍
et d'ailleurs j'avais aussi l'erreur An Error has occured : TypeError: Cannot read properties of undefined (reading 'experience') at Client.client.addExp (E:\Dafaba\CODAGE\hpbot\util\functions.js:50:39) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async module.exports (E:\Dafaba\CODAGE\hpbot\events\message\messageCreate.js:30:13) mais elle s'est enleve tout simplement vu que yavait l'erreur de la db l'user etait pas cree donc experience n'existait pas donc quand on envoyait un message il pouvait pas prendre en compte experience 🙂
🙃
Bonjour a tous,
je suis le tuto https://g-ca.fr/tutoriels/tutoriel/creer-un-bot-discord-le-code
J'ai le même code (à part le token), cependant quand je lance le code, j'ai cette erreur :
TypeError [CLIENT_MISSING_INTENTS]: Valid intents must be provided for the Client.
at Client._validateOptions (C:\Users\Mathieu\Documents\BotDiscord\ListUserTS\node_modules\discord.js\src\client\Client.js:544:13)
at new Client (C:\Users\Mathieu\Documents\BotDiscord\ListUserTS\node_modules\discord.js\src\client\Client.js:73:10)
at Object.<anonymous> (C:\Users\Mathieu\Documents\BotDiscord\ListUserTS\index.js:4:16)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153: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:81:12)
at node:internal/main/run_main_module:17:47 {
[Symbol(code)]: 'CLIENT_MISSING_INTENTS'
A mon avis tu n'as pas la version de djs du tutoriel (qui ne doit pas être à jour)
Hello, sous la nouvelle version de discord.js (à savoir la v13) ça change un peu effectivement.
Au lieu de ```js
const client = new Client({
partials: ['GUILD_MEMBER', 'CHANNEL', 'USER', 'REACTION']
})```
Essaye
const client = new Client({
intents: ["GUILDS", "GUILD_MEMBERS", "GUILD_PRESENCES", "GUILD_MESSAGES", "GUILD_VOICE_STATES", "GUILD_MESSAGE_REACTIONS"],
partials: ['GUILD_MEMBER', 'CHANNEL', 'USER', 'REACTION']
})```
ClientOptions c’est l’objet que tu passe dans la création de ton Client, et donc tu peux voir sur la doc "partials" et "intents" notamment
merci
Hello, petit soucis avec les emojis avant la V13 on pouvait les utiliser entre les serveurs où le bot était mais désormais on ne peux plus, sauriez-vous comme régler ce problème sans avoir à rajouter les emojis sur le serveur discord où on veut ?
Salut, comment ça ? Ton bot est sur les serveur A et B, et il ne peut pas utiliser les emojis du serveur A sur le serveur B et vice versa ?
Est-ce que dans le Channel en question ton bot a la permission d’utiliser les emojis externes?
je penses que il parle des slash-commands
Les slash-commands sont un peu comme des webhooks et du coup effectivement les émojis d'un autre serveur ne fonctionnent pas
Tu veux dire que genre la reply du bot a une slashcommand ne peut pas comporter d’emoji externe ?
oui sauf si ca a changé mais il me semble pas
Je ne sais pas, interessant
yo j'aimerais de l'aide, je ne comprends pas pourquoi mon code ne fonctionne pas (je suis en discord.js v13)
pk mon message se supprime ?
ah c'est ça
const { Client, Intents } = require('discord.js');
const { token } = require('./config.json');
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
const prefix = "!";
client.once('ready', () => {
console.log('Bot epérationnel !');
});
client.on("ready", () => {
client.user.setStatus("dnd");
client.user.setActivity("Rien", {type: "PLAYING"});
});
client.on("guildMemberAdd", member => {
client.channels.cache.get("893416266889564181").send(`Bienvenue ${member} ceci est un test !`);
});
client.on("messageCreate", message => {
if(message.author.bot) return;
if(message.content === prefix + "help"){
const embedHelp = new Discord.MessageEmbed()
.setColor('#2F3136')
.setTitle('Liste des commandes')
.setURL('o')
.setDescription('Aucune commande discponible pour le moment')
.setTimestamp()
message.channel.send({ embeds: [embedHelp] });
};
});
client.login(token);
tu as pas mis l'intent GUILD_MESSAGES
ton bot peut pas recevoir de messages en conséquence
aaah mais oui je suis bête merci bcp
Yep c'est ça, je vais essayer de regarder mais de mémoire il a la perm admin
J'ai testé de mon coté les emojis et sur certains serveurs ca marche et sur d'autres non. J'ai pas compris précisément le problème
Je pense que ça doit être une histoire de permissions
Salut , j'aimerais me lancer sur la nouvelle version de discord.js pour pouvoir me lancer sauf que je ne sais pas comment débuter. Je cherche donc un "tuto" d'aide qui explique comment elle fonctionne et comment la coder correctement. Merci d'avance !
Salut j'ai un petit prblm en Ts
const createOne = async ({ name, description, ownerId, price }): Promise<ItemInterface> => {
const owner = await User.findOne({ _id: ownerId });
if (!owner) return null;
const item = new Item({ name, description, ownerId, price });
await item.save((err, item) => {
console.log(item);
if (err) {
return console.error(err);
}
});
return item;
}
Je n'arrive pas a donner un Type pour les argument de ma fonction
Si je fait name:string ou ownerId:mongoose.Schema.Types.ObjectId
J'ai une erreur comme quoi name n'est pas déclaré
Me ping si vous pouvez m'aider svp
Me ping si jamais vous pouvez m'aider
Salut
Je pense que ce qu'il faudrait plutot que tu fasse c'est dans un fichier declaration faire ça:
export interface CreateOne {
name: string;
description: string;
ownerId: mongoose.Schema.Types.ObjectId;
price: string;
}```
et du coup remplacer ce que tu as déjà par ça
const createOne = async (data: CreateOne): Promise<ItemInterface> => {
const { name, description, ownerId, price } = data
}```
Hey, tu peux aller voir sur Youtube il y a tout plein de tutos et séries 🙂
oui mais elles dates toutes d'il y a 4 mois
Bonjour
J'ai un problème
const Discord = require("discord.js");
const Client = new Discord.Client({
intents: [
Discord.Intents.FLAGS.GUILDS,
Discord.Intents.FLAGS.GUILD_MESSAGES
]
});
const prefix = "!";
Client.on("ready", () => {
console.log("bot opérationnel");
});
Client.on("messageCreate", message => {
if(message.author.bot)return;
if(message.content === prefix + "sunrise"){
const embed = new Discord.MessageEmbed()
.setTitle("Les Sunrises sont beaux")
.setColor("#2F3136")
.setThumbnail("https://cdn.discordapp.com/emojis/817700659519684658.png?size=96%22")
.setFooter("Tout le monde le savait")
message.channel.send({ embeds: [embed]});
}
else if(message.content === prefix + "help"){
message.reply("gay")
message.channel.send({ embeds: [embed]});
}
});
Quand je mets ça j'ai dans ma console ça :
Debugger attached.
Waiting for the debugger to disconnect...
c:\Bipboup final\index.js:30
message.channel.send({ embeds: [embed]});
^
ReferenceError: embed is not defined
at Client.<anonymous> (c:\Bipboup final\index.js:30:41)
at Client.emit (node:events:390:28)
at MessageCreateAction.handle (c:\Bipboup final\node_modules\discord.js\src\client\actions\MessageCreate.js:25:14)
at Object.module.exports [as MESSAGE_CREATE] (c:\Bipboup final\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (c:\Bipboup final\node_modules\discord.js\src\client\websocket\WebSocketManager.js:350:31)
at WebSocketShard.onPacket (c:\Bipboup final\node_modules\discord.js\src\client\websocket\WebSocketShard.js:443:22)
at WebSocketShard.onMessage (c:\Bipboup final\node_modules\discord.js\src\client\websocket\WebSocketShard.js:300:10)
at WebSocket.onMessage (c:\Bipboup final\node_modules\ws\lib\event-target.js:199:18)
at WebSocket.emit (node:events:390:28)
at Receiver.receiverOnMessage (c:\Bipboup final\node_modules\ws\lib\websocket.js:1093:20)
Node.js v17.2.0
Tu as pas définis embed dans le bon "scope". C'est à dire que tu le déclare dans le if et tu l'utilises dans le else if.
Salut, t’as un super tuto sur GCA -> https://g-ca.fr/tutoriels/tutoriel/creer-un-bot-discord-le-code
Le tuto est en V12 et vu que elle est dépréciée c'est pas forcément une bonne idée de suivre ca pour le moment
Ah bon ?
Sinon tu as une série de vidéo du youtubeur getCodingKnowledge sur youtube en V13 cette fois si mais c'est avec le framework akairo qui est lui aussi déprécié et du coup il montre pas l'utilisation des intéractions comme les boutons, les slash-commands etc. Si tu débute et que tu veux pouvoir créer un bot facilement en V13 il y a le projet #sheweny-js qui a été crée dans ce but justement.
Il explique super bien celui-là
Hello, avez-vous une idée de comment outre-passer la limite fixée à 100 messages fetch ?
Tu fetch plusieurs fois de suite si nécessaire
Donc juste copier mon fetch et ils se suivront sans problème ?
faut ajouter un paramètre before dans les options sinon il te donnera toujours les 100 derniers
Yep 👍
Bonjour à tous 👋
J’aurais besoin de l’aide de quelqu’un qu’y si connaît bien sur mongoose.
J’aimerai récupérer toutes les données d’un array dans un document. Comment puis faire ?
TonModel.find({key: 'value'}) // Récupère tous les documents trouvés avec le filtre {key: "value"}
TonModel.findOne({key: 'value'}, "nom_de_ton_field") // Récupère seulement le field "nom_de_ton_field" du premier document trouvé avec le filtre {key: "value"}
TonModel.findOne({key: 'value'}) // Récupère le premier document trouvé avec le filtre {key: "value"}
Non pas ça x)
Bah la tu peux récupérer ton array en entier depuis un document
Dans un document, j’ai une key dont la value est un array
Et je souhaiterais récupérer cet array
oui
Bah soit tu fetch tous le document soit tu fais comme mon exemple 2 pour récupérer seulement l'array
a la place de nom_de_ton_field tu mets le nom de la key qui contient l'array
Oki merci
Bonjour, j'aimerais que je puisse lire les fichiers de mon dossier "commands" depuis mon fichier index.js pour que mon code soit plus simple à lire mais je ne trouve pas comment faire. Quelqu'un pourrait m'aider ? (je suis en discord.js v13)
ah oui j'avais zappé ce chapitre mdr
Salut j'ai suivi un tutoriel en faisant la commande ping mais quand j'essaye de faire la commande rien ne se fait et y'a pas de message d'erreur
Fais voir ton event message
c'est event handler
Non pas ça
message Create ?
Ton événement messageCreate
Est-ce que sur le dashboard du bot du as activé les message intents ?
le dashboard ??
Sur le site de discord
ah
Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.
Déjà ligne 37 tu crées une nouvelles collection mais tu l’as pas importé
Après si ça règle pas ton problème je sais pas
Ya pas un truc du genree interaction ou chepa kua
euh non
Debug ton code avec des console.log
Salut, j'ai un ptit soucis, en gros, j'ai un map d'un tableau, et je cherche à n'afficher que x élément du tableau, comment pourrais-je faire ? Quelqu'un aurait une idée ?
Par exemple les 3 permiers éléments du tableau ?
Oui
Du coup, je pensais faire un for et le map, mais le soucis c'est que le map va afficher tout les éléments
Dans ta boucle, sur la condition de fin, tu fais i < 3 (ou ta valeur)
ah ok, en gros, est-ce qu'avec un .map on peut lui dire de ne parcourir que X éléments du tableau
arr.slice(début, fin)
Et du coup dans ton map(), t'auras juste les index que tu veux
Ah ok ok, je connaissais pas le slice merci je vais regarder
values.slice(debut, fin).map((...) => display());
Hey petite question pour vous !
J'ai un bot qui permet de mettre les membres du staff dans un embed automatiquement
Mais dans un rôle, il y a trop de membre, c'est possible de les partagé en deux ?
Pour créer 2 embed
Tu peux envoyer 2 embeds, suffit de les mettre dans ton embeds: []
Sinon tu peux faire un système de pagination avec les boutons / react
En fait
Le rôle en question, il y a trop de membre pour 1 seul embed
Donc faudrait les divisés en deux @ashen rapids
Le rôle seul dépasse la limite d'un embed
Oui, tu en fais 2 et tu fais :
.send({embeds: [embed1, embed2]})
Ou un système de pagination qui édite ton embed
Mais comment je divise le rôle ?
Bah si il te renvoie un tableau tu coupes ton tableau en 2
Et comment on fais ça 👀
Comme il disait justement par exemple
Tu peux de x a x
Et du coup ce serait ton premier tableau et le reste serait le 2eme
si tu utilises lodash tu as des méthodes qui le font automatiquement
Mais l’installe pas si tu l’as pas ça vaut pas le coup pour une fonction
Mais pour divisé en deux, je dois utiliser quoi ? Un filter ?
Je te l’ai dis jsute avant tu peux passer par un slice
Le filter permet de filtrer donc c’est pas vraiment ce que tu veux faire
Ok
Je suppose que tu fais une boucle sur tout tes rôles et afficher chaque membre de chaque rôle
Si tu sais à combien est limite un embed en field par exemple tu peux juste faire une boucle et avec l’index d’itération vérifier que tu ne sois pas au dessus de la limite, si tu es au dessus tu récrée un embed et tu addField sur le nouveau
T'as sûrement pas mis le params
comment ça ?
T'as cette erreur quand tu fais un /clear ?
Oui avec 1 nombre
genre /clear 15
est y'a ça qui pop
Tu utilises un framework en particulier ou c'est un truc fait maison ?
const { Client, CommandInteraction, ApplicationCommandOptionTypes, Guild } = require("discord.js");
module.exports = {
name: "clear",
description: "Purge Message",
type: "CHAT_INPUT",
options: [{
name: "nombres",
description: "Donnez un nombre pour Purger (entre 1-99)",
type: 10,
required: true
}],
run: async(client, interaction, args) => {
const member = interaction.member;
if (!member.permissions.has("MANAGE_MESSAGES")) return interaction.reply({content:`Tu n'as pas la permission...`, ephemeral: true});
if (interaction.channel && interaction.channel.type === "GUILD_TEXT") {
interaction.channel.bulkDelete(interaction.options.getNumber('nombres', true)).then(() => {
interaction.reply({content:`À ton service! (${interaction.options.getNumber('nombres', true)} message suprimé) <@${interaction.user.id}> `, ephemeral:true})
})
}
}
}
@ashen rapidspeux importe si je marque un nombre ou txt
bah y'a lerreur
Et du coup ?
Bah maison envrai
Alors essaie de debug ton code pour voir comment est générée ton erreur
Regarde où est gérée cette erreur
ça ?
Bonsoir, j'ai une erreur bizarre qui s'affiche lorsque mon bot doit envoyer une vidéo qui se trouve dans le dossier "videos" :
code :
if (StringOption === "addchannel") return interaction.reply({ content: `**${emojis.discordicons.textchannel} ➜ Voici une vidéo explicative sur l'utilisation de la commande \`/addchannel\` :**`, files: ["./videos/addchannel.mp4"]})
erreur :
AbortError: The user aborted a request.
at abort (D:\Perso\Programation\Bots Discord\7_PubTool Support\node_modules\discord.js\node_modules\node-fetch\lib\index.js:1440:16)
at EventTarget.abortAndFinalize (D:\Perso\Programation\Bots Discord\7_PubTool Support\node_modules\discord.js\node_modules\node-fetch\lib\index.js:1455:4)
at EventTarget.[nodejs.internal.kHybridDispatch] (node:internal/event_target:559:20)
at EventTarget.dispatchEvent (node:internal/event_target:504:26)
at abortSignal (node:internal/abort_controller:97:10)
at AbortController.abort (node:internal/abort_controller:122:5)
at Timeout.<anonymous> (D:\Perso\Programation\Bots Discord\7_PubTool Support\node_modules\discord.js\src\rest\APIRequest.js:71:49)
at listOnTimeout (node:internal/timers:557:17)
at processTimers (node:internal/timers:500:7) {
type: 'aborted'
}
} FetchError: request to
at ClientRequest.<anonymous> (D:\Perso\Programation\Bots Discord\7_PubTool Support\node_modules\discord.js\node_modules\node-fetch\lib\index.js:1483:11)
at ClientRequest.emit (node:events:406:35)
at TLSSocket.socketCloseListener (node:_http_client:420:11)
at TLSSocket.emit (node:events:406:35)
at node:net:672:12
at TCP.done (node:_tls_wrap:580:7) {
type: 'system',
errno: 'ECONNRESET',
code: 'ECONNRESET'
}
Le fichier que tu essaie d'envoyer fait combien de Mo ?
Ça peut aussi être dû au fait que tu ais une connexion pas ouf
Du coup ta requête " Timed out "
Tu peux avoir cette erreur beaucoup moins facilement une fois sur le cloud
Aucune idée
J’ai pas une connexion de ouf, mais ça me l’a jamais fait, donc bon...
Je pense que c'est ta connexion
Ça tu peux le vérifier facilement
C'est probablement ta connexion oui. Ça me le fais souvent
Salut, ptite question, j'ai un text input, et j'aimerais récupéré sa valeur plus tard dans le code en JS, comment puis-je faire ?
avec un document.getElementById ?
Tu peux mettre un onChange dessus ?
yep
Mais ce qui m'énerve c'est que sa me dit que c'est null donc sa fonctionne pas ce que j'essaye de faire
Tu utilises un framework ?
J'ai du mal à savoir lequel c'est
Mais là ce que tu fais, c'est que tu essaie de récupérer un élément du DOM puis tu return le DOM ensuite
Donc c'est normal que c'est null
Bonjour !
Je m'y connais pas du tout en JS
J'aimerais savoir comment faire pour détecter quand est-ce que je lâche une touche ?
J'ai un menu qui s'affiche quand on appuie sur "E" et disparaît quand je réappuie une deuxième fois, sauf que je veut que celui-ci s'affiche quand je reste appuyé et disparaisse une fois la touche laché.
J'ai essayer de faire ça mais ça marche pas
$(document).keyup(function(event) {
if(event.which == 101){ // if "E" is released
$(".crosshair").removeClass('fadeIn').removeClass('active');
$(".menu").removeClass('fadeIn');
$.post('http://menu/disablenuifocus', JSON.stringify({
nuifocus: false
}));
}
});
Je vais retenter cet aprem pour voir ^^
Je fonctionne avec l'architecture SAM, t'aurais pas une ptit idée ?
Salut, du coup, j'ai un petit problème, en gros, j'ai un bouton et une zone de text
<input onchange="samActions.exec({do:'addToCart', id:'${v.id}', e:event})" type="text" class="center-align ${v.inCart ? `` : `color-1a`} " value="${v.quantity}" />
<button onclick="samActions.exec({do:'addToCart', id:'${v.id}', e:event})" class="circle no-margin disabled">
Et avec le onchange du coup j'arrive bien a récupéré la valeur avec un data.e.target.value, cependant, j'aimerais aussi récupéré la valeur avec le button onclick mais forcément le data.e.target.value ne va pas fonctionnée dessus, un coup de pouce ?
Tu dois juste changer ton code pour que on keydown il s'affiche, keyup ne s'affiche plus
de ce que je comprend, tu vas devoir passer par le DOM lorsque tu click sur ton button
tu gardes la meme fonction, mais tu vérifie que si tu as pas de 2eme paramètre, tu vas chercher la valeur de l'input directement
Merci, j'ai aussi tenté d'attribuer un id a mon input et au lieu de passer le e:event, je passe le e:"idValue" qui correspond à mon input et sa ma l'air de fonctionnée pour l'instant :)
ah bah nop au final sa fonctionne pas ce que j'ai tenté
mdr
Ah, en gros, je sais pas trop comment faire pour mon cas @slim anvil car en gros, je génère X button a l'aide d'un map, et en faite, j'arrive bien a récupéré la valeur de mon premier bouton avec un document.getElementById, mais je n'arrive pas a récupéré la valeur des autres button qui on donc le même ID
je sais pas si j'ai été clair ?
Oui un ID c'est unique
donc tu pourras pas passer par le meme ID
sois tu les rend dynamique avec button_${id}
sois tu le fais via une class
Ah oui, pas con l'idée de mettre un ID dynamique, du coup sa m'a l'air de fonctionne encore une fois, merci, dsl hein je sais que mes pb peuvent paraître débile mdrr
Dsl de t'embêter @slim anvil encore, mais j'ai aucune idée de si c'est possible de modifier la couleur d'un bouton dès qu'une valeur est saisi dans un input mais sans avoir besoin de recharger la page ou autre, dès que la modification a lieu sa le modifie, j'ai cherche sur internet mais jsp si je cherche au bon endroit
au onChange de ton input
En gros dès que la valeur est différente de '' il faut changer la couleur du bouton
tu changes le style de l'element button ou tu ajoutes une class
Mais justement avec un onChange, si le mec rentre une valeur par exemple 1 et la supprime, sa remettra pas le bouton à la couleur initiale ?
il faut que tu le gères
Et du coup le fait que mon bouton soit en dessus du input sa va pas me dire qu'il ne le trouve pas ?
dans le code
DiscordAPIError: Missing Access a l'aide
jsais pu comment on fait
dans le discord
dev
portal
Problème de permission
Montre ton code et ton erreur complète 😁
T'as bien réinvité ton bot après ?
Niquel 💪
Dis-nous ?
Avoir juste un Échec de l'interaction, ça peut pas beaucoup m'aider
Faudrait l'erreur
Par contre BetterDiscord, pas ouf 😏😏
C'est interdit pas les ToS de Discord
je l'ai comment ?
console log
?
Dans la console où t'as exécuté ton bot, t'as probablement une erreur
Ça semble être un blocage global sur les handlers de la structure
Faudrait voir où ça bloque
tt marche sauf les 2 derniere 😂
Lire le code et voir comment il fonctionne
Fais voir ton say.js ?
Les commentaires pas du tout dans l'abus 😂😂
Le mieux c'est de contacter celui qui t'a codé ça
Car c'est compliqué d'aider sur ce genre de soucis
jle contacte jte dit quoi merci
pour le lancer je fais node index.js sur le terminal
Bonjour,
J'ai 2 questions :
- comment mettre des caractères spéciaux dans le nom d'un channel et majuscule
2)Et le nom du channel ne se rafraichi pas toujours
passer de 0 à 5 puis à 4 mais ne reviens pas à 5
client.once("ready", () => {
console.log("bot connecté");
const guild = client.guilds.cache.find(guild => guild.name === "Serveur de Matio");
const channel = guild.channels.cache.find(channel => channel.name.startsWith("membres-sur-ts"));
if (channel === undefined)
guild.channels.create("membres-sur-ts 0");
const teamspeak = new TeamSpeak({
host: "***************",
queryport: 10011, //optional
serverport: *****,
username: "************",
password: "***********",
nickname: "BotDiscord"
})
let scheduledList = new cron.CronJob('*/5 * * * * *', () =>
{
console.log("récupération liste des personnes connectées");
teamspeak.clientList().then(clients =>
{
console.log(clients.length);
channel.setName("membres-sur-ts " + clients.length);
});
});
scheduledList.start()
});
Faudrait un peu plus de détails 😂
j'édite x)
Faudra que tu change user et password aussi sur ton serveur ts...
Pas de soucis, c'est un serveur test
Mais c'est miueux en effet, voila j'ai tout mis cette fois x)
- Tu peux pas sauf pour un channel vocal
- Tu peux rafraichir le nom d'un channel 2 fois en 10 mins
Ah d'accord ! donc je vais faire un channel vocal
Ah merde, bon bah je vais changer mon cron alors
Bonjour j'ai mis discordjs/rest dans une const comme dans le guide mais quand je veux run le program il ce passe ça
fais npm i @discordjs/rest
Ah c'est bon merci
Salut, j'ai un objet, et j'aimerais faire un .map or ce n'est pas possible sur un objet quelqu'un aurait une idée ?
Voici mon objet en gros
Tu peux utiliser Object.keys()
Pour itérer un objet tu peux faire Object.values(tonObjet) ca va te donner un array et la tu pourras faire un .map
Ou oui Object.keys en fonction de ce que tu veux
D'ailleurs pour les keys, for...in fonctionne
Ok et c'est possible de crée un nouveau tableau en liant objet.values et objet.keys ?
Oui avec un map du coup ?
Yep en gros il me faudrait un tableau contenant les booleans et le count
Car je dois faire un .map et j'aurais besoin d'accéder à la fois au nom des catégories donc contenu dans les booleens
Yep tu peux
Et a la fois a leurs valeur donc le count
Ok et ca va être avec Keys et values ?
Dsl je suis une merde en JS
Une merde, respecte toi un peu 😂
Object.keys(obj).map((key, index) => {
console.log(key);
console.log(obj[key]);
});```
En gros avec ca je peut réunir uniquement les 2 qui m'interessent donc le booleans et le count et donc dégager le hasChanged...
Tu peux quand même, ça va te renvoyer ton array
c'est possible de faire 2 map en même temps ? En gros, j'ai 2 tableaux différents, et j'aimerais récupéré les informations des 2 pour utiliser dans un map
Ou alors tout simple en gros avec les 2 tableaux obtenir :
0: Array["légumes", 3, true]
1: Array["fruits", 5, true]
2: Array["toutes", 9, true]
Je sais pas si c'est bien clair
Pas besoin de faire un .map dans ton .map
Tu peux récupérer les valeurs directement si tu sais où elles se trouvent
En gros oui, regarde est-ce qu'il est possible de regroupe ses 2 tableaux, c'est compliqué je trouve pas trop sur le web
Tu peux faire deux maps dans ce cas là
Ah bon, mais du coup en faisant 2 map, sa risque pas de me répéter l'opération trop de fois ?
Yep bah en gros pour faire simple, j'ai besoin de faire un .map sur le premier tableau pour récupéré la valeur du nombre de fruit etc... Et dans un bouton j'ai besoin de récupéré le true ou false du second tableau pour afficher le bouton en checked en fonction de si c'est coché
Bonsoir, je rencontre un problème avec les collections de discordjs
je ne comprends pas comment fonctionne la méthode <Collection>.hasAll(Array<K>) 🤔
Si je ne me trompe pas c’est pour vérifier si ta collection contient tous les éléments de ta liste et ça te retourne un booléen
dac, en théorie, mais j'ai l'impression que ça ne marche pas ;_;
Tu concat et ensuite tu map()
Mais du coup ici pourquoi ça ne renvoie pas true ?
Justement si je concat, il va y avoir du coup plus d'éléments que je souhaite et donc ca va tourner ne boucle pour rien ?
Attends je vais tester de mon côté
Dac, merci 👀
Ça me fait pareil, sinon tu peux "bypass" en faisant ˋ<Array>.every((x) => <Collection>.has(x))`
Ouais mais non enft c’est pas censé régler ton problème
Je viens de vérifier c’est exactement ça le <Collection>.hasAll
Possible
le every marche de mon côté 🤔
d'ailleurs le hasAny est bug aussi
mais c'est pareil qu'un some donc bon
Je vais tester le hasAll()
vas y 🤔
bah ça marche pas de ouf 🤔
Yes je viens de retester avec le every ça marche mais pas le hasAll
Vraiment bizarre
T’as réussi toi ?
Yep, ya en effet une erreur sur la doc
Je teste un truc
C'est du rest parameters
Pas un Array<> qui est demandé
@sharp grail
let collec = new Collection();
collec.set('1', 'ok');
collec.set('2', 'oui');
collec.set('3', 'non');
console.log(collec.hasAll('1', '3'));```
Return true
oh ok x))
ça parait tout de suite plus logique
bah écoute merci 👀
Pas de soucis !
ptet ouvrir une issue du coup ? 🤔
Yep à mon avis
Bonsoir, j'ai regardé par rapport à tout les orms disponnibles en js et j'ai vu prisma, vous en pensez quoi ?
Hey, vous saurez comment faire en sorte qu'une touche sois appuyer mais automatiquement ?
Yo @keen narwhal, est-ce que tu recherches un truc comme ça ?js const element = document.getElementById('tonsuperid') element.dispatchEvent(new KeyboardEvent('keypress', {'key': 'a'}));voir meme plus globalement document.dispatchEvent(new KeyboardEvent('keypress', {'key': 'a'}));
J'ai essayer mais ça pas l'air de trop fonctionner
Comment ça ?
J'ai fais un event pour voir quand une touche est presser mais rien ne se passe
jsp moi ça a l'air de fonctionner 👀
hey hey jai un troue de memoire comment on add un emojie perso dans du code ?
faut le recup avec \
mais je sais plus quoi faire avec ca
okay merci jai chercher trop loin mdr
Ah yes je viens de trouver pourquoi mon event ne fonctionner pas merci
const exampleEmbed = new MessageEmbed()
.setColor("LUMINOUS_VIVID_PINK")
.setDescription(messageAMA," ")
.setTitle(NameToEmbed)
.setImage(LinkInEmbed)
await interaction.reply({ content: 'fais !', ephemeral: true });
user.send({ embeds: [exampleEmbed] });
},
}```
une idée de pourquoi l'emojie par pas avec ?
Le bot est sur le discord de l’emoji ?
Si c’est un discord externe la perm d’utiliser des emojis externes?
J'ai encore une petite question @ashen rapids, en gros j'ai quatres checkbox Fruits, Légumes Viandes et Toutes, et en gros, dès qu'une des trois donc Fruits Légumes ou Viandes sont off il faut désactiver Toutes et à l'inverse dès que les 3 sont coché faut recocher Toutes, une idée de comment faire ? J'ai tenté plein de truc mais galère à réactiver Toutes quand les 3 sont coché
Yep c'est déjà fait :)
let filteredValues = [] // TODO
articles.values.forEach((article)=>{
filters.categories.count.forEach((filtre)=>{
filters.origins.count.forEach((filtre2)=>{
if(article.category.includes(filtre.categorie) && filtre.active && article.origin.includes(filtre2.origin) && filtre2.active)
filteredValues.push(article)
})
})
})
En gros je me sert de sa pour activer ou désactiver un bouton et sa fonctionne, maintenant faut j'essaye de trouver comment savoir quand faut que je réactive le bouton Toutes
Merde mauvais code wait
if(data.filter == "origin"){
this.model.filters.origins.count.forEach(el1=>{
if(data.id == el1.origin){
if(el1.active){
el1.active = false;
}else
el1.active = true;
}
})
Voila c'est lui, en gros le bouton s'active automatique si il a le paramètre active à true
Petite question, quel fonction pouvons nous utiliser pour faire en sorte de modifier la couleur d'un bouton dès qu'une checkbox est coché ?
toujours dans ton event onChange
Mhmm je vais look ca du coup, tu me parle bien pour ma dernière question ?
oui
okay, je regarde après
Hey excuses j'avais pas vue ton message , j'ai réussi à régler mon problème effectivement jsuis juste débile jme suis trompé demojie merci beaucoup
Top 👍
Salut, j'ai un dernier soucis, j'aimerais trier mon tableau d'objet suivant le prix, comment pourrais-je faire ?
Tu peux utiliser .sort
une idée de comment collect
const { MessageEmbed, MessageActionRow, MessageSelectMenu, ThreadChannel } = require("discord.js");
const config = require("../../botconfig/config.json");
const ee = require("../../botconfig/embed.json");
const settings = require("../../botconfig/settings.json");
module.exports = {
name: "test", //the command name for the Slash Command
description: "Ecrire dans un chat avec le bot", //the command description for Slash Command Overview
cooldown: 5,
memberpermissions: ["MANAGE_SERVER"], //Only allow members with specific Permissions to execute a Commmand [OPTIONAL]
requiredroles: [], //Only allow specific Users with a Role to execute a Command [OPTIONAL]
alloweduserids: [], //Only allow specific Users to execute a Command [OPTIONAL]
options: [ //OPTIONAL OPTIONS, make the array empty / dont add this option if you don't need options!
//INFORMATIONS! You can add Options, but mind that the NAME MUST BE LOWERCASED! AND NO SPACES!!!, for the CHOCIES you need to add a array of arrays; [ ["",""] , ["",""] ]
//{"Integer": { name: "ping_amount", description: "How many times do you want to ping?", required: true }}, //to use in the code: interacton.getInteger("ping_amount")
/* {"String": { name: "text", description: "Que voulez vous envoyez ? [ +n+ = Newline ]", required: true }}, //to use in the code: interacton.getString("title")
*/ //{"User": { name: "ping_a_user", description: "To Ping a user lol", required: false }}, //to use in the code: interacton.getUser("ping_a_user")
/* {"Channel": { name: "in_where", description: "Où voulez vous que le message s'envoie", required: false }}, //to use in the code: interacton.getChannel("what_channel")
*/ //{"Role": { name: "what_role", description: "To Ping a Role lol", required: false }}, //to use in the code: interacton.getRole("what_role")
//{"IntChoices": { name: "what_ping", description: "What Ping do you want to get?", required: true, choices: [["Bot", 1], ["Discord Api", 2]] }}, //here the second array input MUST BE A NUMBER // TO USE IN THE CODE: interacton.getInteger("what_ping")
//{"StringChoices": { name: "what_ping", description: "What Ping do you want to get?", required: true, choices: [["Bot", "botping"], ["Discord Api", "api"]] }}, //here the second array input MUST BE A STRING // TO USE IN THE CODE: interacton.getString("what_ping")
],
run: async(client, interaction) => {
const row = new MessageActionRow()
.addComponents(
new MessageSelectMenu()
.setCustomId('ticket')
.setPlaceholder('Nothing selected')
.setMinValues(1)
.setMaxValues(1)
.addOptions([{
label: 'Partenariat',
description: 'Pour devenir partenaire',
value: 'first_option',
},
{
label: 'Prob avec un membre(s)',
description: 'TManque de respect ou autres...',
value: 'second_option',
},
{
label: 'Autre(s)',
description: 'Si les autres selections ne sont pas votre cas',
value: 'third_option',
}
]),
);
await interaction.reply({ content: 'Pong!', components: [row] });
}
}
genre jsais po du tout comment collect 😦
j'essaye depuis ce matin j'en ai marre 😦
De pouvoir récupérer une interaction tu veux dire ?
bah detecter quand il click sur une option
Utilise l'event interactionCreate
Vérifie ensuite que c'est un menu, tu vérifies de quel menu il s'agit
Et ensuite tu récupère la value de l'option cliquée
j'ai un handler et genre y'a ça
//Import Modules
const config = require(`../../botconfig/config.json`);
const ee = require(`../../botconfig/embed.json`);
const settings = require(`../../botconfig/settings.json`);
const { onCoolDown, replacemsg } = require("../../handlers/functions");
const Discord = require("discord.js");
module.exports = (client, interaction) => {
const CategoryName = interaction.commandName;
let command = false;
try{
if (client.slashCommands.has(CategoryName + interaction.options.getSubcommand())) {
command = client.slashCommands.get(CategoryName + interaction.options.getSubcommand());
}
}catch{
if (client.slashCommands.has("normal" + CategoryName)) {
command = client.slashCommands.get("normal" + CategoryName);
}
}
if(command) {
if (onCoolDown(interaction, command)) {
return interaction.reply({ephemeral: true,
embeds: [new Discord.MessageEmbed()
.setColor(ee.wrongcolor)
.setFooter(ee.footertext, ee.footericon)
.setTitle(replacemsg(settings.messages.cooldown, {
prefix: prefix,
command: command,
timeLeft: onCoolDown(interaction, command)
}))]
});
}
//if Command has specific permission return error
if (command.memberpermissions && command.memberpermissions.length > 0 && !interaction.member.permissions.has(command.memberpermissions)) {
return interaction.reply({ ephemeral: true, embeds: [new Discord.MessageEmbed()
.setColor(ee.wrongcolor)
.setFooter(ee.footertext, ee.footericon)
.setTitle(replacemsg(settings.messages.notallowed_to_exec_cmd.title))
.setDescription(replacemsg(settings.messages.notallowed_to_exec_cmd.description.memberpermissions, {
command: command,
prefix: prefix
}))]
});
}
//if Command has specific needed roles return error
if (command.requiredroles && command.requiredroles.length > 0 && interaction.member.roles.cache.size > 0 && !interaction.member.roles.cache.some(r => command.requiredroles.includes(r.id))) {
return interaction.reply({ ephemeral: true, embeds: [new Discord.MessageEmbed()
.setColor(ee.wrongcolor)
.setFooter(ee.footertext, ee.footericon)
.setTitle(replacemsg(settings.messages.notallowed_to_exec_cmd.title))
.setDescription(replacemsg(settings.messages.notallowed_to_exec_cmd.description.requiredroles, {
command: command,
prefix: prefix
}))]
})
}
//if Command has specific users return error
if (command.alloweduserids && command.alloweduserids.length > 0 && !command.alloweduserids.includes(interaction.member.id)) {
return message.channel.send({ ephemeral: true, embeds: [new Discord.MessageEmbed()
.setColor(ee.wrongcolor)
.setFooter(ee.footertext, ee.footericon)
.setTitle(replacemsg(settings.messages.notallowed_to_exec_cmd.title))
.setDescription(replacemsg(settings.messages.notallowed_to_exec_cmd.description.alloweduserids, {
command: command,
prefix: prefix
}))]
});
}
//execute the Command
command.run(client, interaction, interaction.member, interaction.guild)
}
}
Ca c'est pour les commandes
Regarde cette section : https://discordjs.guide/interactions/select-menus.html#building-and-sending-select-menus
apres j'avais copier ça
client.on('interactionCreate', async interaction => {
if (!interaction.isSelectMenu()) return;
if (interaction.customId === 'select') {
await interaction.deferUpdate();
await interaction.editReply({ content: 'Something was selected!', components: [] });
}
});
de justement du discord guide
Yep c'est bien ça
sauf que la c nimporte le quelle de la liste
j'avais tenter de a la place du customId === 'select ' mettre values === 'first_option'
mais ça marche pas
Jsuis perdu a partir de la
Bonjour tout le monde, j'ai commencé un bot discord en JS, je voudrais créer une commande permettant de choisir son préfix, hors je n'arrive pas faire fonctionner ma commande, quelqu'un pourrai m'aider svp? (voici mon bout de code):
const prefix = `!`;
client.on('messageCreate', (message) =>{
if(message.content === prefix + "prefixe"){
message.reply('Entrez le nouveau préfixe:')
client.on('messageReply', (message) =>{
prefix <= `${message.content}`;
message.reply(`Le nouveau préfix est : "${prefix}"`)
})
}
})
depuis smatin jsuis la dessus jtj 😂
Le customId est l'ID de ton interaction
Si tu regardes le code de ta liste, tu as mis un id custom
Pour ça que ça catch pas
Ta commande c'est !prefix ?
jsais j'ai modif
client.on('interactionCreate', async interaction => {
if (!interaction.isSelectMenu()) return;
if (interaction.customId === 'ticket') {
await interaction.deferUpdate();
await interaction.editReply({ content: 'Something was selected!', components: [] });
}
});
genre ça oklm
mais la jsais pas comment verif si il a clicker dans une case speciale
car avec ce code c toute les case la mm choses
Ton event est détecté ? Si tu mets pas un console.log par exemple ?
oui
Je log quoi ?
Haaa tu vois bien affiché Something was selected! du coup ?
Ok j'avais mal compris
jsuis pas clair non plus 😂
mais ducoup jvoudrais que 1 option fait une choses
et non pas toutes les option la mm choses
Fais un console.log de interaction.values
Tu es censé avoir la liste des choix possibles
ok jvai teste
Des choix sélectionnés*
Tu es sur DiscordJS V13 ?
Aucune idée, comment peut-on vérifier?
Dans ton package.json
console.log(interaction.values)
Tu as la version de DiscordJS
Undefined
npm list au pire
Log ton interaction et regarde tous les fields
Oui je suis bien en discord.js v13
oula euh
Tu as bien initialisé ton client DiscordJS avec l'intent GUILD_MESSAGES ?
Comment ça ?
console.log(interaction)
CommandInteraction {type: 'APPLICATION_COMMAND', id: '921431027044470785', applicationId: '835099212559024148', channelId: '911734194919587947', guildId: '911734194919587942', …}
ok c bien sque j'ai fait
ok jvai faire
Là t'as print l'interaction d'une commande
? SelectMenuInteraction {type: 'MESSAGE_COMPONENT', id: '921431722502029362', applicationId: '835099212559024148', channelId: '911734194919587945', guildId: '911734194919587942', …}
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
Comme ça? dans ce cas oui
ah oui c vrai 😂
Il contient bien le choix de l'utilisateur
T'as juste à te baser sur ça pour récupérer le choix de l'user
Tu as fait un console.log pour voir si ton event est bien déclenché ?
Comment ça c 0 comment tu sait dcp ?
parce que c la mm chose au second option
values est un array contenant les options qui ont été selectionnées
A l'index 0, donc values[0], tu as le choix
non mais je m'en rend compte quand j'essaie avec le nouveau préfixe et que ça nefonctionne pas
C'est-à-dire ?
en gros quand j'ai finit ma commande, la variable prefix, n'est pas modifier
est ducoup je fait comment pour verifier ?
client.on('interactionCreate', async interaction => {
if (!interaction.isSelectMenu()) return;
if (interaction.values[0]) {
await interaction.deferUpdate();
await interaction.editReply({ content: 'Values 0 Test', components: [] });
console.log(interaction.values)
}
});
Parce que tu l'as déclaré en constante
Et si ton bot reboot, ça reprendra la valeur de '!'
Je t'ai expliqué. Tu check la valeur dans interaction.values
Nice !
oui pour le reeboot je m'en etais rendu compte, mais je n'eteint pas le bot entre chaque commande.
J'avais mal compris le site d' Open classroom... Autre que const il y a uatre chose pour initialiser une chaine de caractere?
ok merci
var prefix = `!`;
client.on('messageCreate', (message) =>{
if(message.content === prefix + "prefixe"){
message.reply('Entrez le nouveau préfixe:')
client.on('messageCreate', (message) =>{
prefix <= `${message.content}`;
//message.reply(`Le nouveau préfix est : "${prefix}"`)
})
}
})
J'ai l'impression que me code ne prend pas en compte le deuxieme message pour modifier le préfixe
Par contre je sais pas qu'elles sont tes ambitions mais je te conseille vivement d'utiliser les slash command de Discord
Via le /
Car à partir de mars 2022 me semble, il faudra être " vérifié " pour pouvoir lire les messages envoyés
A partir de 100 serveurs je crois
go tout réapprendre
Ce changement affecte uniquement les bots vérifiés, c’est-à-dire ceux qui sont présents sur 75 serveurs ou plus. Les bots non vérifiés présents dans moins de 75 serveurs ne se verront pas affectés.
aaah je croyais l'inverse
non je pense pas en faire un gros bot
apres s'il prend de l'empleur, ce sera vraiment exeptionnel
je vais pas forcement le mettre a jour régulièrement ni rien
A toi de voir !
de retour
client.on('interactionCreate', async interaction => {
if (!interaction.isSelectMenu()) return;
if (interaction.values[0]) {
await interaction.deferUpdate();
await interaction.editReply({ content: 'Values 0 Test', components: [] });
let channelName = 'test'; //Arguments to set the channel name
interaction.guild.channels.create(channelName, {
type: "text", //This create a text channel, you can make a voice one too, by changing "text" to "voice"
}).then(c => {
var server = message.guild
let category = server.channels.cache.find(c => c.name == "Help" && c.type == "category")
c.setParent(category.id)
})
}
});
message is not defined
Jpeux remplacer par quoi c a cause de la maj
message est déclaré nul part
Il faut une condition particuliere en JS pour utilisé un break?
dans une boucle, un switch etc.
ah c'est pour ça que dans le if il ne fonctionne pas
tu dois return dans ton if si tu veux terminer l'instruction
même le return n'as pas régler mon probleme, yes!
var prefix = `!`;
client.on('messageCreate', (message) =>{
if(message.content === prefix + "prefixe"){
message.reply('Entrez le nouveau préfixe:')
client.on('messageCreate', (message) =>{
prefix = `${message.content}`;
if(message.author.bot) return;
message.reply(`Le nouveau préfix est : "${prefix}"`)
console.log(`Le nouveau préfix est : "${prefix}"`);
return 1;
})
}
})
Une fois dans la comande prefixe, imposible d'en ressortir
pourquoi tu fais pas juste interaction.guild du coup ?
ça n'a pas de sens ce que tu fais
tu fais un msgCreate dans ton msgCreate
oe j'avoue
Mais dcp la nouvelle erreur
c'est pour que la commande soit divisé en 2 lecture de message
log category et regarde si il le trouve bien déjà
comment ça ?
la seule chose que tu fais c'est que dans ton event messageCreate tu viens recréer un listener de l'event messageCreate
rien d'autre
Ce que j'essaie de faire c'est une double lecture, en gros, il y a la commande pour lancer la définition du préfixe puis un message avec le préfixe
Non mais ça ne fonctionnera pas
(car j'arrive pas a visualiser comment faire pour récupérer le préfixe sur une meme commande)
undefined
slashCommands/Admin/ticketsupport.js:72
[antiCrash] :: Unhandled Rejection/Catch
handlers/antiCrash.js:3
TypeError: Cannot read properties of undefined (reading 'id')
donc il trouve pas ta category via ton find
jfait comment dcp y trouver avant
c'est possible? je ne savais pas du tout
oui
go chercher alors
Dcp ?
la jvois pas comment jpeux faire dcp
➜ split
str:split() divise une chaîne en utilisation un motif pour déterminer où doivent être fait les séparations, en retournant un ensemble de nœuds contenant les chaînes résultantes.
Example:
str:split(chaîne,motif)
➜ String.prototype.split()
La méthode split() divise une chaîne de caractères en une liste ordonnée de sous-chaînes, place ces sous-chaînes dans un tableau et retourne le tableau. La division est effectuée en recherchant un motif ; où le motif est fourni comme premier paramètre dans l'appel de la méthode.
Example:
str.split([separator[, limit]])
➜ Text.splitText()
La méthode Text.splitText() sépare le nœud Text en deux nœuds au niveau de l’indice spécifié, et conserve les deux nœuds dans l’arbre en tant que voisins.
Example:
noeudRemplacant = noeudTexte.splitText(indice)
@livid needle
tu regardes la doc de temps en temps @peak cedar ? la réponse est littéralement dessus si tu veux chercher un channel qui sera pas dans ton cache par exemple
ok jvais look
merci
@slim anvil Ce serait laquelle des 3 qui serait la plus simple à utilisé ? (de commande split?)
car j'avouerai que je les comprend pas vraiment
oui mais je comprend pas comment on récupère ce qui a été split
comme on ne doit pas donné de variable pour y entré ce qui est spllit je ne vois pas comment récupere ma valeur
accecble comme C?
?
je vais aller voir sur Open classroom
Bonjour les gens,
Je suis encore débutant et je code un bot Discord en Javascript, je suis bloqué sur une commande que je n'arrive pas à faire fonctionner et j'aurais besoin de votre aide :
Je voudrais faire en sorte qu'après une commande, le bot pose une question puis une fois que l'utilisateur répondu, la réponse se fait supprimée puis le bot modifie son propre message pour poser une deuxième question, pour refaire le même procédé une deuxième fois.
Voici un exemple de ma situation actuelle :
var prefix = "*"
client.on('message', message => {
if (message.content.startsWith(prefix + "commande")) {
message.channel.send("Une question")
const collector = new Discord.MessageCollector(message.channel, m => m.author.id === message.author.id, { time: 20000 });
collector.on('collect', message => {
const valleur1 = message.content
collector.stop()
message.delete()
message.edit("Deuxième question")
collector.on('collect', message => {
const valleur2 = message.content
collector.stop
message.delete()
message.edit(`la bla bla ${valleur1} bla bla ${valleur2}`);
})
})
}
});
Tu définies 2 fois message
Un fois dans ton client.on() et une autre fois dans ton collector.on()
Bonjour, j'ai créé un salon vocal et je voudrais bloquer tout le monde pour que personne ne puisse y accéder (ce n'est que pour du texte), j'ai essayé avec ce code, mais ça ne fonctionne pas :
guild.channels.create("𝐌𝐞𝐦𝐛𝐫𝐞𝐬 𝐬𝐮𝐫 𝐓𝐒 : 0",
{
type: 'GUILD_VOICE',
permissionOverwrites:
[
{
id: guild.roles.everyone,
deny: ['ALL']
}
]
});
J'ai le message suivant :
[BITFIELD_INVALID]: Invalid bitfield flag or number: ALL.
Autre question :
Je souhaiterai mettre une pastille soit verte soit grise en fonction du nombres de personnes, savez-vous comment faire ?
Merci d'avance 🙂
id: message.guild.roles.cache.find(r => r.name === '@everyone').id,
Ah yes excuse
guild.channels.create(guild.members.filter(member => !member.user.bot).size > 100 ? ":green_circle:" : ":red_circle:" + "𝐌𝐞𝐦𝐛𝐫𝐞𝐬 𝐬𝐮𝐫 𝐓𝐒 : 0")
Tu voulais un truc comme ça pour les pastille ?
Merci pour le permission !
Oui c'est ça, tu sais ou je peux trouver la liste des icones possible ?
Windows + ;
Merci, mais il n'y en a pas d'autre ? Comment les pastille de TeamSpeak par exemple ?
non impossible de mettre des emojis custom sur le nom d'un channel sur discord
Okay, merci
par contre, ça ne s'affiche :/
mais déjà le problème que j'ai c'est que après avoir supprimer le message il modifie rien et m'affiche sa
Une erreur ?
Non aucune, j'ai fait autrement, j'ai pris le code unicode ça passe
déjà, commence par changer ce que je t'ai dis. Si c'est pas résolu, dis moi ^^
tu peux pas définir 2 fois la même chose ^^
En soit si il peut, y a une notion de scope ou le 2eme message dans son collector sera égal à ce qu’il reçoit en paramètre, mais donc oui il pourra plus utiliser l’autre
Mais par contre c’est vraiment infâme à la lecture
oui xD
mais avec le message.delete(), comment le bot sait si c'est le message de la commande ou la réponse à la question qu'il doit supprimer ?
D’où la notion de scope du coup il va delete le message du collector.on
si imaginons que le collector ne renverrait pas un Message mais un User le .delete ne fonctionnerait pas
Je suppose que le collector renvoie un message du coup
Rebonjour,
Je faisait l'essai de mon bot avec les droits admin
maintenant je veux seulement utiliser les droits qu'il a besoin, et j'ai toujours l'erreur "missing permission"
Y a t'il un moyen de voir quelle permissions sont manquantes ?
Qu'es ce que tu essaies de faire ?
Quelqu'un sait comment faire un uptime d'un user présent dans un voice channel ?

bah, si le nouveau channel est de type voice tu lances un compteur, et si encore une fois il change tu le stoppes et tu l’enregistres quelque part
dans l’event voiceStateUpdate si je me trompe pas
oep ok
Salut tous le monde !
Aujourd'hui pour le bot protect de mon serveur discord j'ai voulu faire une commande stats
Or , je ne sais pas du tout comment on fait
je precise que je suis en discord.js@12
voilà merci d'avance
je voudrais
membres total
membres en voc
membres en lignes
t’as déjà regarder sur google?
@cyan iron
tkt
Ouaip mais pas trouvé
tu cherches très mal alors
Je pense mdr
j'ai un prblm, je fais un embed builder avec buttons et mon filtre for mon message collcteur ne marche pas car quand le button quel est votre titre est cliqué le bot envoie quel est votre titre et ça collcte le quel est votre titre et le met en titre code :
const collector = msgEmbedForEditing.createMessageComponentCollector({filter})
const filterMessage = m => m.author.id === message.author.id && !m.author.bot
collector.on("collect", async button => {
if(button.customId === "titre") {
button.reply({ content: "Quel est votre titre ?", ephemeral: true });
const title = (await message.channel.awaitMessages({ filterMessage, max: 1, time: 60000})).first().content;
embedBeforeEdit.setTitle(title);
msgEmbedForEditing.edit({ embeds: [embedBeforeEdit] });
} }```
on fait comment deja ? DiscordAPIError: Missing Access
ton bot a pas les perms
Oui mais comment on fait pour regler
m'en rappel plus
c dev portal mais apres jsais plus
bah mets lui les perms
Ou ça ?
Mais Je demande comment on fait pour lui remettre les perm sur dev portal
ah
oui 😂
dcp ?
Et la ?
Oui
oauth2 url generator
ou ça ?
enleve applications .commans
tu y es
bot
dr
j'rappelle mon ptit prblm au passage
tjr 😭
bah il a perm admn
?
bah ça devrait marcher
il est que sur un serv ?
bah jvai carrement en recreer un
non le prblm peut venir de là
sur un autre serv il a pas les perms
prsq le prblm vient clairement que le bot doit avor acces a un salon pour envoyer un message (genre je suis co) mais il a pas acces
j'en ai recreer un Beug tjr
Bah pour le coup nop
Si
bah jsais bien que non il la jamais fait 😭
jsuis censer faire comment la dcp ?
Jsp
j'ai recreer un bot
jlui ai mit all perm
jlai inv
jlui ai mit all perm
ça marche tjr pas
Casse couille un peux la discord 😂
Qqun a une idée ?
Okey je vais aller voir comment les gens utilisent le collector dans des forums car moi débutant xD
Hello
j'ai un prob genre ça marche po
est si jmet interaction a la place de message
jpeux mettre quoi dcp ?
yes
Btw, mettre un client.on dans un fichier commande c’est pas la meilleur idée, fais un event handler si c’est pas déjà fait ^^
ça marche jfait ça ^^
Juste apres car la
sa me dit ça mtn
Le type category n’existe plus en v13
Non c’est GUILD_CATEGORY
Bah non tu as beaucoup plus de possibilités en v13
comme quoi ?
Donc comme ça ?
let category = server.channels.cache.find(c => c.name == "HELP" && "GUILD_CATEGORY");
yesssss
Entre guillemets
Donc comme ça ?
Ou autre chose ?
let category = server.channels.cache.find(c => c.name == "HELP" && "GUILD_CATEGORY");
Bah
bah logique 👀 c'est pas une variable ?
Faut quand même la condition
Yes
@fading glacier
Toutes les interactions
bah juste les slashs command quoi ?
Console log le
ça existe déjà en v12 tout ça avec une api
C'est plus simple
Et ça marche pareil

Ouais mais là c’est directement implémenter au module
Avec des FLAGS clc à rajouter à chaque fois que tu fais un truc
Ça prend 2 secondes mais ok
2 secondes de trop
azy bouge po
oe
bonjour vous savez comment faire un bot musique car quand j'essaie de en faire un le bot crash et ne se rallume plus
Bonjour, avez vous un endroit où je pourrait savoir comment crée des messages avec intéraction avec la nouvelle fonctionnalité de buttons discord
j'ai un prblm, je fais un embed builder avec buttons et mon filtre for mon message collcteur ne marche pas car quand le button quel est votre titre est cliqué le bot envoie quel est votre titre et ça collcte le quel est votre titre et le met en titre code :
const filter = async() => true; const collector = msgEmbedForEditing.createMessageComponentCollector({filter}) const filterMessage = m => m.author.id === message.author.id && !m.author.bot collector.on("collect", async button => { if(button.customId === "titre") { button.reply({ content: "Quel est votre titre ?", ephemeral: true }); const title = (await message.channel.awaitMessages({ filterMessage, max: 1, time: 60000})).first().content; embedBeforeEdit.setTitle(title); msgEmbedForEditing.edit({ embeds: [embedBeforeEdit] }); } }
Les réponses aux interactions sont des webhooks et je crois qu'ils ne sont pas comptés comme des bots, donc dans ton filtre ajoute une condition && !m.webhookId. Sachant que le webhookId est un identifiant qui n'est défini que si le message a été envoyé par un webhook
Sinon mets juste un await quand tu réponds à l'interaction comme ça le awaitMessages ne sera pas lancé en même temps que le message est envoyé
Bonjour j'essaye de faire un bot mais je n'y arrive pas sa m'affiche sa quand j'essaye de le lancer avec node.
TypeError [CLIENT_MISSING_INTENTS]: Valid intents must be provided for the Client.
at Client._validateOptions (C:\Users\matheo\Documents\states_rp_bot\node_modules\discord.js\src\client\Client.js:544:13)
at new Client (C:\Users\matheo\Documents\states_rp_bot\node_modules\discord.js\src\client\Client.js:73:10)
at Object.<anonymous> (C:\Users\matheo\Documents\states_rp_bot\index.js:4:16)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153: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:81:12)
at node:internal/main/run_main_module:17:47 {
[Symbol(code)]: 'CLIENT_MISSING_INTENTS'
Tu as pas du mettre les gateway intents ou tu en a mis une invalide
je sais pas trop ce que sais j'ai suivie un tuto de quelquin sur le site de GCA
le quel stp ? si tu as le lien sous la main
meme si je suis pas sur que il existe des tutos a jour avec la V13
Le tuto est pas à jour c’est sur la version 12
Je vais update le tutoriel pour l’indiquer
Mais ducoup je dois faire quoi pour que sa marche
Ok c’est indiqué déjà suffit juste de lire 😉
Si tu connais pas les intents le guide de djs est très bien fait https://discordjs.guide/popular-topics/intents.html#gateway-intents
j'ai compris l'erreur sa viens de la version de la lib
Tu devrais quand meme le faire en V13 car si tu fais un bot en V12 et que dans 1 mois ca marche plus tu devras en plus le mettre a jour
Ouais mais je comprend rien et maintenant il me dit que mon token est invalide
vas en prendre un valide sur https://discord.dev alors
ah non c'est bon je m'etait juste trompé
➜ split
str:split() divise une chaîne en utilisation un motif pour déterminer où doivent être fait les séparations, en retournant un ensemble de nœuds contenant les chaînes résultantes.
Example:
str:split(chaîne,motif)
➜ String.prototype.split()
La méthode split() divise une chaîne de caractères en une liste ordonnée de sous-chaînes, place ces sous-chaînes dans un tableau et retourne le tableau. La division est effectuée en recherchant un motif ; où le motif est fourni comme premier paramètre dans l'appel de la méthode.
Example:
str.split([separator[, limit]])
➜ Text.splitText()
La méthode Text.splitText() sépare le nœud Text en deux nœuds au niveau de l’indice spécifié, et conserve les deux nœuds dans l’arbre en tant que voisins.
Example:
noeudRemplacant = noeudTexte.splitText(indice)
Je vais essayer merci
Yes dit moi si ça règle ton problème
J essaye demain
merci @fading glacier ça marche
Yop les guys ptite question
Mon select menu
marche mes channel se set bien de catego
tout marche
Ptite question jvoudrais faire les permission
Comment je fait pour trouver
qui a react a mon select menu
pour lui add la perm de voir le chann ?.
const user = interaction.options.getUser('target');
``` marche po
Tu veux trouver la personne qui utilise le select menu ?
oui
Okay, donc c'est interaction.user
Merci jvai teste bg
ça marche merci bcp
mais dcp y se set plus de parent
de cate
pour le parent tu peux le mettre directement dans les options de <Guild>.channels.create()
Comme type, tu ajoutes ta catégorie comme ça
oula jsais pas comment m'y prendre 
Quand tu crées un salon, tu mets des options (type, permissionOverwrites, etc...)
Tu peux en rajouter une nommée parent où tu met la catégorie dans laquelle tu veux que le salon soit
juste le type text c'est pas correct. C'est GUILD_TEXT mais vu que c'est la valeur par défaut tu as pas forcément d'erreur.
yes
JFait ça merci les bg jvous aime <33
@fading glacier
C'est quoi le problème qu'il y a maintenant ?
bah un coup ça met dans l'embed quel est votre titre (ou autre choses) et un coup ça le fait
regarde les screens
Montre le code que tu as mtn
(oui ya plussieurs fois le meme filter mais je pensais que ça veait de là)
donc j'en ai fait plusieurs
@fading glacier
T'as pas besoin de ping tout le temps, si je réponds pas c'est que je suis occupé ou que j'ai pas la réponse 🙂
Hello comment avoir la data de discord avec l'event ready (temps similaire à message.createdTimestamp) ?
tu veux récupérer quel donnée ?
tu cherches la durée depuis laquelle le bot est en ligne ?
non
Explique mieux ce que tu cherches pls 
Date.now() alors
Avec un objet date tu fais ce que tu veux après. Par exemple new Date() et ensuite si tu veux les heures tu as getHours(), pour les minutes getMinutes() etc
oui deso
@keen narwhal ta trouver ton soucis ?
Nn
Ta commande et ton filter/collector est dans le même fichier ?
oui
Hello, est ce que quelqu'un aurait une idée de comment faire pour que je puisse utiliser en dehors de la fonction des variables qui utilise la latitude et la longitude ?
Bon les amis j'ai un réel problème
Pour un système de suggestions j'essaye de récupérer le nombre de réactions positives et négatives d'un message en partant de son ID
Et, pour une raison qui m'est inconnue, cela ne fonctionne QUE sur les messages qui ne sont pas en cache.
C'est-à-dire que si j'envoie une suggestion, elle est save en DB avec le msg_id, le système ne détecte que les réactions de base du message (celles du bot) et pas celles des utilisateurs. Mais si je redémarre le bot, celui-ci va update les réactions et le système va fonctionner.
Je me doute que c'est un souci de cache, mais j'ai tout essayé depuis 3 jours et rien ne fonctionne.
tu as mis des partials ?
J'utilise ReactionMessage.resolve() pour récupérer les réactions
Il y en a liés aux réactions ?
Décidemment moi et la v13...
oui il y en a une qui s'appel REACTION, essaye la avec "MESSAGE"
C'est horrible parce que niveau doc il y a rien quoi, j'ai fais des 10aines de recherche et personne ne parle de ça
Ca c'est si tu passe pas l'évent messageReactionAdd principalement, sinon faudra essayer la méthode fetch
Non justement
Je le récupère toutes les X minutes
Et ReactionMessage.fetch n'existe pas
Il y a que resolve
Ah d'ac, alors vérifie les intents, les partials et ensuite si nécéssaire faut fetch si il manque des données
Il y a un INTENT pour les réactions tu penses ?
non mais Reaction.fetch() existe. Si tu as une classe de base
oui j'en suis meme sur
GUILD_MESSAGE_REACTIONS
Oui mais Reaction.fetch ne me permet pas de compter le nombre de réactions sur un message si ?
Ok je vais test thx
Surement ca
non ca ne pourra pas aller ici
Ouais c'était donc mon probleme
Oui du coup djs pouvait pas mettre a jour le cache
Yes c'était donc ça, ça marche, merci
Qui peut m’aider pour le code ipinfo
Explique mieux ce que tu veux faire, et montre ce que tu as déjà fait si tu veux qu’on puisse t’aider ^^
Ces sa mais j’arrive pas a le faire marcher https://github.com/ipinfo/node
https://github.com/ipinfo/node#javascript t’as utilisé ce code ?
Une fois que t’as mit le code vas ici: https://ipinfo.io/signup, créer toi un compte, un projet et récupère le token api que tu mets dans ton code (c’est écrit)
Oui fais mais le msg est sur la console et non dans le channel
Oui j’ai pus le screen car j’ai éteint le pc
Ok bah ping moi quand tu pourras montrer le message je te répondrais demain si qqn ne l’a pas fait avant
Ok merci
Tu essaies de faire quoi dans ton code ?
Ton bot semble ne pas avoir accès a un channel
Petite astuce pour la prochaine fois mais dans le path, t'as l'ID du channel pour savoir duquel il s'agit
Hello, je cherche ce que je pourrais utiliser pour convertir des secondes d'une bdd en "play time"
Du genre 108000 affichera "1d 6h 0m"
unix timestamp
➜ split
str:split() divise une chaîne en utilisation un motif pour déterminer où doivent être fait les séparations, en retournant un ensemble de nœuds contenant les chaînes résultantes.
Example:
str:split(chaîne,motif)
➜ Text.splitText()
La méthode Text.splitText() sépare le nœud Text en deux nœuds au niveau de l’indice spécifié, et conserve les deux nœuds dans l’arbre en tant que voisins.
Example:
noeudRemplacant = noeudTexte.splitText(indice)
➜ String.prototype.split()
La méthode split() divise une chaîne de caractères en une liste ordonnée de sous-chaînes, place ces sous-chaînes dans un tableau et retourne le tableau. La division est effectuée en recherchant un motif ; où le motif est fourni comme premier paramètre dans l'appel de la méthode.
Example:
str.split([separator[, limit]])
Salut tout le monde je galere pas mal a l'utilisation de la fonction splitet pour creer une commande slash, du monde pourrait m'expliquer svp?
Tu galère sur quelle partie ?
alors, ma commande slash ne fonctionne pas alors qu'il me semble l'avoir créer correctement.
Et je ne comprend pas comment utiliser la fonction split, comment elle récupère et pose dans une variable
const { SlashCommandBuilder } = require('@discordjs/builders');
const prefixe = new SlashCommandBuilder()
.setName('prefixe')
.setDescription('Permet de modifier le préfixe');
client.on("interactionCreate", interaction => {
if(interaction.isCommand()) {
if(interaction.commandName === "prefix"){
interaction.reply("pong")
}
}
})
mais c'est quoi le problème concrètement ? la commande apparait sur discord ? tu as un echec de l'intéraction ?
elle n'apparait pas sur discord
j'ai aucun crash mais impossible de la retrouver sur discord
si c'est une commande globale ca peut prendre jusqu'a 1h avant que elle apparaisse
du a une mise en cache du coté de discord
donc la faudrait que je lance le bot et que j'attende 1H00 avant de réessayer ?
oui, ou tu enregistres ta commande sur une seul guild le temps de dev, c'est instantané comme ca
Comme je m'y connait pas encore des masse, j'ai pas compris, je prefere attendre
@livid needle il faut que tu inscrive ton interaction pour pouvoir l'utiliser
En reprenant l'exemple du guide (https://discordjs.guide/creating-your-bot/creating-commands.html#command-deployment-script), tu peux par exemple faire :
const { SlashCommandBuilder } = require('@discordjs/builders');
const { REST } = require('@discordjs/rest');
const { Routes } = require('discord-api-types/v9');
const TEST_SERVER_ID = 'id de ton serveur de test';
const commands = [
new SlashCommandBuilder()
.setName('ping')
.setDescription('Répond pong'),
new SlashCommandBuilder()
.setName('prefixe')
.setDescription('Permet de modifier le préfixe'),
]
.map(c => c.toJSON());
client.on('ready', () => {
// on inscrit toutes les commandes sur discord
const rest = new REST({ version: '9' }).setToken(client.token);
rest.put(Routes.applicationGuildCommands(client.id, TEST_SERVER_ID), { body: commands })
.then(() => console.log('Successfully registered application commands.'))
.catch(console.error);
// ...
});
client.on("interactionCreate", interaction => {
if(!interaction.isCommand());
switch(interaction.commandName) {
case 'ping': return interaction.reply('pong');
case 'prefixe': return interaction.reply('commande de changement de prefix');
}
})
// ...
Je te conseille de lire le guide d'ailleurs : https://discordjs.guide/creating-your-bot
ça te présentera les concepts de base
j'y suis aller mais je comprend rien dessus ^^"
Mais merci pour l'aide je vais l'annalyser
Bonsoir j'avais une question voila
j'ai un serveur Gmod donc un discord et plusieurs discord anexe
je voudrais faire un bot ou il syncronise tout les idsocrd example :
je Ban un jouer via cette commande !ball SONID Raison et sa le ban de partout
je voudrais savoir comment faire
?
Salut 👋
Actuellement le bot est déjà en place sur les serveurs ?
La logique serait de faire quelque chose de similaire dans le code de ta commande:
for (const guild of client.guilds.cache) {
const member = await guild.members.fetch(id)
if (!member) continue;
member.ban({ reason: 'Bannissement global ...' }}
}
pour l'instant il et sur le discord Dev le temp du developpement
mais du coup il faut une base de données ?
ça dépend, si ton bot est voué a être publique alors oui il faut venir stocker le ban et au join d'un nouveau serveur venir bannir tous les membres bannis dans ta db
sinon si c'est un bot plutot privé ou il sera sur un nombre de guildes fix tu peux bannir d'un coup comme le code sans stocker
mais pour faire comprendre au bot en lui disans si je ban tel personne du discord principal et bas sa le ban des discord de la commu
tu sais pas si une vidéo explique cela ou autre un article ?
@hazy mirage
bah c'est pas compliqué en soi, tu viens ban le mec sur ton serveur, et ensuite tu get l'user de ton autre guild et tu le ban
Salut j'aurais besoin de quelqu'un qui puisse m'expliquer rapidement quelque chose en discord js en mp merci de votre précieux temps !
Hello @keen narwhal si tu as un soucis c'est directement ici
D'accord
Salam quelqu'un aurait un tuto ou pourrais m'expliquer comment faire des embes avec des réponses à choix en discord JS
Merci d'avance
tu entends quoi par des réponses au choix ? un select-menu ?
Oui
déja pour les embeds tu as le guide de discord.js https://discordjs.guide/popular-topics/embeds.html#embeds
et pareil pour les select-menus, tu verras c'est très bien fait https://discordjs.guide/interactions/select-menus.html#select-menus
Merci
Bonjour petite question je suis actuellement la doc de discord pour les select menus mais la commande n'exécute rien
Merci de votre aide et voici mon code de test dans mon index
tu lui dit
- Si le paramètre est une commande alors ne fait rien
- Si le nom de la commande n'est pas "ping" ne fait rien
Tes 2 conditions se contredisent
Je vois bien l'erreur merci beaucoup mais je début et donc comment y remédier
Tu enleves la première condition
Toujours un petit problème rien ne se passe
Mets un console.log de interaction.commandName pour voir
Est-ce que tu as bien enregistré ta commande ?
(Pour qu’elle s’affiche sur Discord)
Ah je ne crois pas comment fait on 😅
faut faire un handler