#javascript-typescript
1 messages · Page 112 of 1
Je sais que pour remplacer le # dans une URL c'est %23 ça vient peut être de ça.
Bah à mon avis y a moyen que ça vienne du #.
Pourquoi t'as besoin du # ?
A mon avis il doit récupérer le tag discord de l'user
ok ça m'a retourner un json immense
XD
non c'est le tag d'un jeu
Ah d'un jeu oki.
Bah voilà c'est bon
euh ouais
Maintenant tu as juste à trier ton json avec les infos que tu veux.
T'es sûr que tu t'y connais en JS ? 
j'vous avoue que la c'est vraiment terrible pour moi
Même en JSON
ouais mais pour get une donnée
Imaginons tu veux recup un élément qui s'appelle data tu as juste à faire leagues.data
oui ou via tondict.oof.jsdfjsdf en effet
Et si tu as un array tu peux faire [0] ou la valeur de la case...
leagues.tag suffit
Pas besoin du [0] je vois pas d'array.
Là ton JSON en vrai est simple pour commencer je trouve.
ok mais la si je veux acceder à son clan ?
de fais comment
aux infos de son clan pardon
hein quoi
allo
bug
oui
XD
Y a de la friture sur la ligne 
SFR is here
Bonjour à tous,
J'aimerai savoir si quelqu'un sait comment obtenir le nombre de la personne, par exemple 1 pour nathan, 3 pour zoé, ect... Parce que j'effectue un map() j'obtient donc les prénoms et les ages mais je ne sait pas comment obtenir les numéro de chacun personne.
"1": {
"name": "nathan",
"age": 20
},
"3": {
"name": "zoé",
"age": 13
},
"5": {
"name": "mathis",
"age": 27
},
"9": {
"name": "cloé",
"age": 19
}
}```
Si quelqu'un peut m'aider sa serai super sympa 🙂
déjà
fais un array
ou tu met
tout
dans un string
[
{
"number": 1
"name": "nathan",
"age": 20
},
]
Il a raison 👆
Oui mais je peux pas changer le json
si
je sais
nan car je fais une requête se n'est pas mon fichier
tu fais
<request>.json();
okay je vais essayer
.then((res) => setData(res.data))```
console.log(res.data)
console.log(data.json()); ?
const requestToJSON = JSON.parse(res.data)
console.log(requestToJSON)```
@charred fern
dis
moi
ce que ça te sort
useEffect(() => {
axios
.get("http://192.168.1.11/api/VR0-z2MoipbXbTAXEdYRaj8TC7Jsx2AiXGVaiEKU/lights/")
.then((res) => setData(JSON.parse(res.data)))
}, [])
console.log(data);```
c'est du react
mais je fais comme sa ?
en js
reactjs?
ouais
mais normalement c'est comme du js
Il ressemble à ça ton objet ?
Bonjour, je suis en Discord.js, je suis actuellement dans une interaction et j'aimerais supprimer la réponse à un message, et pas la question
interaction.message.delete supprime évidemment la question, mais on ne peut pas faire un message.delete() car on est dans une interaction
Bonjour, je suis actuellement dans une interaction et j'aimerais supprimer la réponse à un message, et pas l'embed
interaction.message.delete supprime évidemment l'embed envoyé, mais on ne peut pas faire un message.delete() car on est dans une interaction
voici ce que j'ai :
interaction.channel.awaitMessages({filter: m => m.author.id == interaction.user.id, max: 1, time: 120000 })
.then(collected => {
client.channels.cache.get('903386282909134918').send({ embeds: [embedBug]})
interaction.editReply({
embeds: [embedBug],
components: []
})
})
c'est tout simple, ce que j'ai fais, il faut maintenant que j'arrive à supprimer la réponse
C'est-à-dire ? Tu veux supprimer ce qui est envoyé via interaction.reply ?
Auquel cas tu as la méthode deleteReply qui existe
justement, j'essaie de ne pas supprimer ça mais le message que l'utilisateur a envoyé, en réponse
juste avant le code que je t'ai passé, ça envoie un embed pour demander quel est le bug trouvé
là, j'ai suppr la création de l'embed pour que ça soit plus simple
voici le code entier de la version pour bug :
case 'optionBug':
myEmbed = new Discord.MessageEmbed()
.setColor('BLUE')
.setTitle(':DiscordBadgeBugHunter: Quel bug as-tu trouvé ?')
.setDescription(`${interaction.user.username}, peux-tu nous donner une description ? \n\n*Annulation dans deux minutes !*`)
.setFooter(`Demandé par ${interaction.user.username}`, interaction.user.avatarURL())
.setTimestamp();
interaction.update({
embeds: [myEmbed],
components: []
})
//-------------------------------------FILTRE + PREND MESSAGE-------------------------------------
interaction.channel.awaitMessages({filter: m => m.author.id == interaction.user.id, max: 1, time: 120000 })
.then(collected => {
embedBug = new Discord.MessageEmbed()
.setColor('#ff0000')
.setTitle(':DiscordBadgeBugHunter: Nouveau Bug')
.setDescription(`**Auteur:** \`\`${interaction.user.username}\`\`\n\n**Description du bug:**\n> ${collected.first().content}`)
.setFooter(`Bug trouvé par ${interaction.user.username}`, interaction.user.avatarURL())
.setTimestamp();
client.channels.cache.get('903386282909134918').send({ embeds: [embedBug]})
interaction.editReply({
embeds: [embedBug],
components: []
})
}).catch(() => {
//-------------------------------------TEMPS ECOULÉ-------------------------------------
embedBugError = new Discord.MessageEmbed()
.setColor('#ff0000')
.setTitle(':Erreur: Une erreur est survenue !')
.setDescription(`**Temps écoulé !**`)
.setFooter(`Demandé par ${interaction.user.username}`, interaction.user.avatarURL())
.setTimestamp();
interaction.editReply({
embeds: [embedBugError],
components: []
})
});
break;
et en gros, j'aimerais que ça supprime la réponse au premier embed envoyé (le premier du code que vous voyez)
Ah donc tu veux supprimer la réponse du joueur quand tu demandes "Quel bug as-tu trouvé"
Auquel cas t'as juste à faire collected.first()?.delete() (à vérifier)
étant donné que ce que te retourne collected.first(), c'est sois un objet de type Message, sois undefined
je suis de retour !
absolument
je vais essayer, juste, à quoi sert le point d'interrogation (j'essaie d'apprendre)
oui, ça a marché
On appelle ça l'optional chaining
En gros, ça sert à éviter une erreur en vérifiant si un moment où un autre on arrive sur une valeur undefined
Par exemple, si t'as un objet de la sorte :
const obj = {
a: 1,
b: 2,
c: {
d: 3
}
}
console.log("Value : " + obj.b.d.e);
--> ERREUR : TypeError: Cannot read properties of undefined (reading 'e')
console.log(obj.b.d?.e);
--> Value : undefined
Là le ? sert à vérifier si la propriété d existe dans b, si oui alors on continue dans l'instruction, si non ça retourne directement undefined
ohh merci beaucoup !!
De rien 😉
j'ai appris un truc très pratique
Effectivement, c'est assez utile
Si tu veux y a d'autres cas de figures où le "?" en JavaScript a une toute autre utilité
Par exemple, ça permet de vérifier une condition rapidement, en une ligne
let random_value = 1;
console.log(random_value === 1 ? "Oui c'est égal à 1 !" : "Non c'est pas égal à 1");
--> "Oui c'est égal à 1"
random_value = 0;
console.log(random_value === 1 ? "Oui c'est égal à 1 !" : "Non c'est pas égal à 1");
--> "Non c'est pas égal à 1"
On appelle ça un opérateur conditionnel, ou "conditional operator", et ça prend la forme
<condition> ? <expression si true> : <expression si false>
Y a également une autre utilisation du "?"
Plus simple, ça permet en quelque sorte de créer une sorte de valeur par défaut, de valeur fallback
let valeur = null; // Ou undefined
console.log(valeur ?? "foo");
--> "foo"
valeur = "bar";
console.log(valeur ?? "foo");
--> "bar"
On appelle ça un "nullish coalescing operator", mais c'est un peu tricky x)
C'est comme si tu faisais (value === null || value === undefined) ? <valeur fallback> : value, mais c'est plus rapide
je pense que je vais utiliser ça aussi un peu plus souvent
ça évite de faire des if à rallonge pour une seule fonction
👍
je rajoute que tes explications sont très claires, j'ai tout compris très vite
ReBonjour !!
Cette fois-ci, j'aimerais compter le nombre de minutes en voc, je pense lancer une autre instance sur le même bot, vu que c'est très répétitif, ça risque de planter et, j'aimerais éviter de faire planter l'instance "générale"
d'abord, est-ce possible de :
-avoir deux instances sur un même bot
-et avoir deux instances dans le même dossier ?
je crois que oui mais je voudrais m'en assurer avant de commencer mon massacre
avoir deux instances dans le même dossier me permettrait de pouvoir échanger les infos sans me déranger, sans avoir à faire un long chemin, juste que l'instance "générale" puisse prendre des infos dans la "seconde"
Tu entend quoi pas instance ?
Si c'est 2 code sur le même token techniquement c'est possible, mais ça va pas marcher
Dès la première chose que le bot fera, l'autre bot crashera
ah d'acc
dans ce cas, je vais faire ça sur un autre bot
comment je peux faire un compte à rebours qui, toutes les minutes, modifie la data de chaque membre étant en voc ?
j'ai encore jamais fait un truc pareil
ahh, mais je peux prendre Date.now() à l'entrée et à la sortie du voc et soustraire la date de sortie à celle d'entrée pour avoir le nombre de milisecondes passées en voc
c'est plus précis
le seul problème c'est que si un mec passe 3h en voc et que le bot plante avant qu'il quitte, ça ne comptera pas son temps de voc
oui, mais, si je fais bien mon bot, ça ne devrait pas planter 
Salut je voudrais faire en sorte que quand j'envoie un message en dm au bot il créer un salon et on peut répondre depuis le salon avec une commande du genre "/r texte..." et la personne ayant créer le ticket reçoit la réponse dans ces dm depuis le bot . J'ai juste voulu test l'envoie du message en dm au bot m la console ne renvoie rien
Client.on("messageCreate", message => {
if(message.channel.type === "DM"){
console.log(message);
}
});
Il faut que tu mettes en intents DIRECT_MESSAGES.
Le catch existe x)
Et globalement la plupart des hebergeur redémarrer le bot si il est crash mais si tu le stocke dans le cache et que tu redémarre le bot tu perdera tes données
C'est déjà fait
Bonjour,
Quelqu'un pourrais m'aider sur sa s'il vous plait ?
( Ping svp pour réponse )
Il faut que tu rajoutes le partial "CHANNEL" dans ton client
Yes tu peux avoir des args qui attendent un attachment
L’erreur s’explique d’elle-même, y a un champ qui manque, en l’occurrence getFileName (si c’est une fonction il manque des parenthèses) ne comporte pas la propriété config 😉
Je dois faire quoi pour le changer ?
Je connais pas la structure de tes classes / files, je peux pas te dire, si ce n’est que getFileName ne retourne pas ce qu’il faut
Essaie de passer ça au déboggage, ou essaie de console.log getFileName et voir ce que ça te retourne
Je dois faire console.log getFileName En commande ?
console.log(getFileName) au dessus de la ligne qui pose problème
Yo, j'ai créé une commande slash mais quand je la modifie, je peux relancer des tonnes de fois le bot, la commande ne changera pas
je suis bloqué à cause de ça
Ah oui c’est relou
T’as bien redeploy tes commandes ?
Auquel cas faut attendre un peu
Bonsoir, j'ai une erreur que je comprends pas "Invalid POST response from OpenID provider", j'ai cette erreur lorsque j'essaye d'accéder au donné dune request
J'essaye d'intégrer la connexion a steam
Et pour cela j'utilise ceci : https://www.npmjs.com/package/node-steam-openid
const SteamAuth = require("node-steam-openid");
const steam = new SteamAuth({
realm: "http://localhost:3000", // Site name displayed to users on logon
returnUrl: "http://localhost:3000", // Your return route
apiKey: "MA KEY API QUE J'AI BIEN SUR REMPLACÉ" // Steam API key
});
app.get("/auth/steam", async (req, res) => {
const redirectUrl = await steam.getRedirectUrl();
return res.redirect(redirectUrl);
});
Le soucis est juste que je ne comprends pas l'erreur
Non mais met ton console.log au dessus 
Genre
Console.log
client.commands.set(getFileName.config.name, getFileName);```
Attend
Hello juste dans ton exeplication on ne comprends rien 😉
Mais
Je peux pas être plus clair
J'ai déjà sa de base
console.log(getFileName) au dessus de la ligne 10
si en lui montrant directement le chemin
Je vais pas le spoonfeed, ça sert à rien
const loadCommands = (client, dir = "./commands") => {
// const disbut = require('discord-buttons')(client);
readdirSync(dir).forEach(dirs => {
const commands = readdirSync(`${dir}/${dirs}/`).filter(files => files.endsWith(".js"));
for (const file of commands) {
const getFileName = require(`../${dir}/${dirs}/${file}`);
client.commands.set(getFileName.config.name, getFileName);
console.log(`Commande chargée: ${getFileName.config.name}`);
};
});
};
const loadEvents = (client, dir = "./events") => {
readdirSync(dir).forEach(dirs => {
const events = readdirSync(`${dir}/${dirs}/`).filter(files => files.endsWith(".js"));
for (const event of events) {
const evt = require(`../${dir}/${dirs}/${event}`);
const evtName = event.split(".")[0];
client.on(evtName, evt.bind(null, client));
console.log(`Evenement chargé: ${evtName}`);
};
});
};
module.exports = {
loadCommands,
loadEvents,
}```
Je dois modif quoi la ?
En gros
Mdr
Je deviene fou mdr
Ça c’était bien
Désoler
Ça permet juste de voir ce qu’est getFileName, si c’est un objet, une fonction, s’il est défini ou non
Sa me fais une erreur
Okk merci beaucoup mdr
const { readdirSync } = require("fs");
const loadCommands = (client, dir = "./commands") => {
// const disbut = require('discord-buttons')(client);
readdirSync(dir).forEach(dirs => {
const commands = readdirSync(`${dir}/${dirs}/`).filter(files => files.endsWith(".js"));
for (const file of commands) {
const getFileName = require(`../${dir}/${dirs}/${file}`);
// > Là mdr <
console.log(getFileName);
client.commands.set(getFileName.config.name, getFileName);
console.log(`Commande chargée: ${getFileName.config.name}`);
};
});
};
const loadEvents = (client, dir = "./events") => {
readdirSync(dir).forEach(dirs => {
const events = readdirSync(`${dir}/${dirs}/`).filter(files => files.endsWith(".js"));
for (const event of events) {
const evt = require(`../${dir}/${dirs}/${event}`);
const evtName = event.split(".")[0];
client.on(evtName, evt.bind(null, client));
console.log(`Evenement chargé: ${evtName}`);
};
});
};
module.exports = {
loadCommands,
loadEvents,
}
ça log bien un truc avant l'erreur, non ? xD
ça
Ah
ok très bien
donc on sait que getFileName = {}
un objet vide donc
et ce qui pose problème c'est que t'essaies d'accéder à la propriété config de cet objet sauf qu'elle existe pas
donc le problème vient d'une commande qui se situe dans le répertoire "commands" de ce que je lis, où il manque la propriété config
Dans commands y'a tout ça
Ok, bien, on avance
D'après la logique de ton code la commande qui poserait problème ce serait "ban", étant donné que ça crash au premier tour de boucle
Tu peux me l'envoyer pour que je te dise ce qui va pas dedans ?
Le code dans ban a étais supprimer 🤣
Ah bah ça vient de là x)
Tu peux essayer de la virer et relancer ton bot, voir si ça venait de là ou s'il y a d'autres fichiers qui posent problème ?
Bonjour à tous,
Dites moi.
Je cherche à pouvoir utiliser cette info là : invité par : ${member.invite.inviter} intégré dans mon embed ( quand quelqu'un rejoins ) sans pour autant devoir déplacer tout le code vers l'index.js pour pouvoir avoir un code bien organisé et optimisé.
Pouvez-vous me dire si cela est possible ( faut il des modules obligatoirement etc ... ) ? Merci bien ! 
Voici mon code qui se trouve dans ./events/guild_members/guilMemberAdd.js :
module.exports = {
name: 'guildMemberAdd',
once: false,
execute(bot, member) {
const { MessageEmbed } = require('discord.js');
const EmbedWelcome = new MessageEmbed()
.setColor('#27868A')
.setTitle(`\:user: Bienvenue à ${member.user.username} !`)
.setDescription(`Nous te souhaitons la bienvenue sur ${member.guild.name} !
invité par : ${member.invite.inviter}
${member.user} a rejoins Discord le <t:${parseInt(member.user.createdAt / 1000)}:d> à <t:${parseInt(member.user.createdAt / 1000)}:t>
${member.user} a rejoins notre serveur le <t:${parseInt(member.joinedAt / 1000)}:d> à <t:${parseInt(member.joinedAt / 1000)}:t>
Nous sommes maintenant \`\`${member.guild.memberCount}\`\` membres.`)
member.guild.channels.cache.get("997260141399396385").send({ embeds: [EmbedWelcome] });
}
}
Y a un truc qui va pas dans ton fichier "events/ready.js" ligne 7, tu peux me montrer ?
Ah ok, c'est un tout autre problème
Ton bot doit certainement être dans aucun serveur
Je te conseille de rajouter une valeur initiale
...reduce((a, b) => a + b, 0)
Je l'est invité sur un discord pour teste
Et c'est effectivement le probleme qu'il n'étais sur aucun serveur
A priori je n'ai pas connaissance d'une feature comme ça dans discordjs, il faut le faire à la main 😉
Le concept théorique, c'est qu'il faudrait :
-> Mettre en cache toutes les invitations dans l'event ready du bot
-> Rajouter au cache à chaque nouvelle invitation crée
-> Fetch les invitations à chaque nouveau membre, et comparer avec les invitations en cache, pour trouver celle qui a été utilisée et donc qui l'a crée 👍
Parfait :p
Si t'as d'autres questions hésite pas
comment ça redeploy ? (déso pour le retard d'une heure)
Attends c'est quoi le problème genre ?
C'est que le fonctionnement de la commande reste le même ou c'est que la commande en elle-même ne se modifie pas (nom, arguments, permissions...) ?
genre, ma commande change po
la commande ne change ni de description, ni de nom
client.on('ready', async () => {
console.log(`Connecté sous ${client.user.tag}!`);
await client.guilds.cache.get("723962533358076320").commands.create(ping)
});```
ça ne marche pas
téma l'erreur de ouf quand je met edit```
C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\managers\ApplicationCommandManager.js:172
if (!id) throw new TypeError('INVALID_TYPE', 'command', 'ApplicationCommandResolvable');
^
TypeError [INVALID_TYPE]: Supplied command is not a ApplicationCommandResolvable.
at GuildApplicationCommandManager.edit (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\managers\ApplicationCommandManager.js:172:20)
at Client.<anonymous> (C:\Users\arthu\Desktop\Bot UltrArthy\index.js:18:64)
at Client.emit (node:events:394:28)
at WebSocketManager.triggerClientReady (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketManager.js:378:17)
at WebSocketManager.checkShardsReady (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketManager.js:361:10)
at WebSocketShard.<anonymous> (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketManager.js:183:14)
at WebSocketShard.emit (node:events:394:28)
at WebSocketShard.checkReady (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:474:12)
at WebSocketShard.onPacket (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:446:16)
at WebSocketShard.onMessage (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:300:10) {
[Symbol(code)]: 'INVALID_TYPE'
}
déso je vais manger, je reviens plus tard
Normal
.edit prend trois arguments
genre
ah non dans ton cas de figure deux
un applicationCommandResolvable (sois l'objet ApplicationCommand, sois l'id de la commande)
et les nouvelles propriétés que tu lui fournis, genre name, description, etc... sous la forme d'un objet aussi
Hello, est ce que quelqu'un sait si c'est possible d'utiliser Function.prototype.call avec une fonction asynchrone ?
re
comment ça marche ?
genre, .edit(ping, name: "test") ?
Oui certainement, mais pourquoi passer par cette syntaxe ? x)
Ouais, .edit(id_de_la_commande_ping, { name: "foo" });
haa d'acc
Ca me permet d'utiliser un autre scope pour l'exécution de la fonction et c'est donc plutôt pratique
Ah d'accord 
kestafé ?
C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\managers\ApplicationCommandManager.js:172
if (!id) throw new TypeError('INVALID_TYPE', 'command', 'ApplicationCommandResolvable');
^
TypeError [INVALID_TYPE]: Supplied command is not a ApplicationCommandResolvable.
at GuildApplicationCommandManager.edit (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\managers\ApplicationCommandManager.js:172:20)
at Client.<anonymous> (C:\Users\arthu\Desktop\Bot UltrArthy\index.js:18:64)
at Client.emit (node:events:394:28)
at WebSocketManager.triggerClientReady (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketManager.js:378:17)
at WebSocketManager.checkShardsReady (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketManager.js:361:10)
at WebSocketShard.<anonymous> (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketManager.js:183:14)
at WebSocketShard.emit (node:events:394:28)
at WebSocketShard.checkReady (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:474:12)
at WebSocketShard.onPacket (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:446:16)
at WebSocketShard.onMessage (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:300:10) {
[Symbol(code)]: 'INVALID_TYPE'
}
après, j'ai pas cherché longtemps, hein
elle ressemble à quoi ta ligne de code ? 
à une ligne avec des lettres 
client.on('ready', async () => {
console.log(`Connecté sous ${client.user.tag}!`);
await client.guilds.cache.get("723962533358076320").commands.edit(ping, { name: "test"})
});```


Non mais faut pas mettre ping 
Ok oui je viens d'essayer, on peut, c'est la même syntaxe qu'en temps normal
Mais bonk !
Faut que tu récupères l'id de ta commande dans client.guilds.cache.get("723962533358076320").commands.cache
Bon attends je vais manger 
Dac noice merci ! Pourtant j'avais essayé hier et ça m'avait sorti une erreur, mais j'a du me tromper
Merci
Non, en gros chaque commande que tu crées, ça te retournera un objet ApplicationCommand
Et cet objet comporte un id qui correspond à l’id de ta commande
Et c’est ça (ou l’objet entier) que tu dois mettre !
Nooon 
ça ?
mais ça c'est l'id de mon serv
Mais je sais 
⬆️
ça me retourne mon terminal
je met ça dans un console.log ?
^
ReferenceError: blabla is not defined
at Client.<anonymous> (C:\Users\arthu\Desktop\Bot UltrArthy\index.js:18:45)
at Client.emit (node:events:394:28)
at WebSocketManager.triggerClientReady (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketManager.js:378:17)
at WebSocketManager.checkShardsReady (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketManager.js:361:10)
at WebSocketShard.<anonymous> (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketManager.js:183:14)
at WebSocketShard.emit (node:events:394:28)
at WebSocketShard.checkReady (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:474:12)
at WebSocketShard.onPacket (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:446:16)
at WebSocketShard.onMessage (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:300:10)
at WebSocket.onMessage (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\ws\lib\event-target.js:132:16)```
Mais pas blabla 
pardon
Modifie avec l’id de ta guild
att
déso c'est le soir, je comprend plus rien, c'est pour ça
Tkt ça va s’éclaircir
O m g
Ok nickel
Ok de ce que je lis t’as deux commandes qui s’appellent « Test »
Ah
Non
C’est le nom de ta guild
ah oui, c'est un serv que pour le test
T’as une commande test et une commande ping
t'es sûr ?
comment ça ?
Essaie de console.log(await client.applications.commands.fetch())
console.log(await client.applications.commands.fetch())
^
TypeError: Cannot read property 'commands' of undefined
at Client.<anonymous> (C:\Users\arthu\Desktop\Bot UltrArthy\index.js:18:41)
at Client.emit (node:events:394:28)
at WebSocketManager.triggerClientReady (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketManager.js:378:17)
at WebSocketManager.checkShardsReady (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketManager.js:361:10)
at WebSocketShard.<anonymous> (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketManager.js:183:14)
at WebSocketShard.emit (node:events:394:28)
at WebSocketShard.checkReady (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:474:12)
at WebSocketShard.onPacket (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:446:16)
at WebSocketShard.onMessage (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:300:10)
at WebSocket.onMessage (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\ws\lib\event-target.js:132:16)```
d'acc
Au lieu de applications
Collection(2) [Map] {
'997505185666572418' => <ref *1> ApplicationCommand {
id: '997505185666572418',
applicationId: '878746173035393034',
guild: null,
guildId: null,
permissions: ApplicationCommandPermissionsManager {
manager: [Circular *1],
guild: null,
guildId: null,
commandId: '997505185666572418'
},
type: 'CHAT_INPUT',
name: 'ping',
description: 'commande temporaire',
options: [],
defaultPermission: true
},
'997521785958441031' => <ref *2> ApplicationCommand {
id: '997521785958441031',
applicationId: '878746173035393034',
guild: null,
guildId: null,
permissions: ApplicationCommandPermissionsManager {
manager: [Circular *2],
guild: null,
guildId: null,
commandId: '997521785958441031'
},
type: 'CHAT_INPUT',
name: 'test',
description: 'commande temporaire',
options: [],
defaultPermission: true
}
}
😮
je reviens dans 2 mins
re
Rebonsoir
ah, chelou
je crois savoir
oui, j'ai suivi deux vidéos, puisque je suis un noob, je n'avais pas encore compris la différence entre les deux lignes de code
j'ai compris à l'instant
mais maintenant, comment on les enlève ?
exact
Du coup t'as juste à .forEach(command => client.guilds.cache.get(blabla).commands.delete(command.id)), ou si c'est une commande globale c'est client.application.commands.delete(command.id)

(await client.applications.commands.fetch()).forEach(blablabla...
C'est important de lire la documentation
await client.applications.commands.fetch()).forEach(command => client.guilds.cache.get(blabla).commands.delete(command.id)) ?
bien vu
Oui
Aussi sur VSCode (si t'es sur VSCode)
Si tu passes ta souris sur la méthode, tu peux voir ce que ça retourne
Une Promise (d'où le await) qui contient une Collection (https://discord.js.org/#/docs/collection/main/class/Collection), avec en clé un string (l'id de la commande certainement), et en valeur une ApplicationCommand (https://discord.js.org/#/docs/discord.js/main/class/ApplicationCommand)
Bah si !
await client.application.commands.fetch().forEach(command => client.guilds.cache.get('723962533358076320').commands.delete(command.id))
^
TypeError: client.application.commands.fetch(...).forEach is not a function
T'as viré mes parenthèses aussi 
il y avait des parenthèses ?
Oui
en gros ça sert à dire de d'abord résoudre la promesse pour ensuite en exploiter le contenu
Comme en maths
tu fais d'abord ce qu'est entre parenthèses
haaa
(sauf 48645654 exceptions mais en code on s'en fout
)
throw new DiscordAPIError(data, res.status, request);
^
DiscordAPIError: Unknown application command
at RequestHandler.execute (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\rest\RequestHandler.js:298:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\rest\RequestHandler.js:50:14)
at async GuildApplicationCommandManager.delete (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\managers\ApplicationCommandManager.js:194:5) {
method: 'delete',
path: '/applications/878746173035393034/guilds/723962533358076320/commands/997505185666572418',
code: 10063,
httpStatus: 404,
requestData: { json: undefined, files: [] }
}```
genre j'ai pas mis la bonne id ?

Et t’essaies de le supprimer sur les commandes de ta guild
haaa j'ai pris la mauvaise id
Sauf que bah vu qu’elles sont globales et pas sur ta guild ça marche pas
(await client.application.commands.fetch()).forEach(command => client.application.commands.delete(command.id));
comment tu arrives à lire les messages d'erreur comme dans un livre ? 😭
Je dev des bots depuis 5 ans 
ah
genre en mode ton pc il plante, tu arrive à savoir pourquoi
genre en mode ta maison elle explose, tu sais pourquoi

Nan mais disons qu’à force de faire on acquiert un certain savoir faire 
(Cette phrase ne sert à rien)
Non mais faut séparer l’erreur en « priorités » de lecture
Et ça devient un automatisme
😮
c'est un art
euhh, dis-moi

les commandes de guild, faut que je mette leur id ?
Rouge : EXTRÊMEMENT IMPORTANT
Orange : permet parfois d’identifier la source de l’erreur, ici en l’occurrence non mais ça apporte des détails
Vert : on s’en fout 
Oui
Sois tu fais
(await client.application.commands.fetch()).forEach(command => client.application.commands.delete(command.id));
Pour virer toutes les commandes globales
Sois
(await client.guilds.cache.get(bruh).commands.fetch()).forEach(command => client.guilds.cache.get(bruh).commands.delete(command.id));
Pour virer toutes les commandes d’une guild
c'est fou, j'avais même pas vu qu'il y avait écrit la raison de l'erreur ici 
Ou alors pour éviter d’être redondant
`const guild = client.guilds.cache.get(bruh);
(await guild.commands.fetch()).forEach(command => guild.commands.delete(command.id));`
ha, c'est déjà plus joli
quel pro !
alors 
il est possible que je ne comprenne quand même pas l'erreur
const client = require('../..index.js');
const { promisify } = require('util');
const wait = promisify(setTimeout);
let invites;
const id = '997260140120121364'
client.on('ready', async() => {
await wait(2000);
client.guilds.cache.get(id).fetchInvites().then(inv => {
invites = inv;
})
})
client.on('guildMemberAdd', async(member) => {
if(member.guild.id !== id) return;
member.guild.fetchInvites().then(gInvites => {
const invite = gInvites((inv) => invite.get(inv.code).uses < inv.uses);
const channel = member.guild.channels.cache.get('997260141399396385');
channel.send(`${member} a été invité par ${invite.inviter}`);
})
})
Comme ça ?
fin, genre, j'ai pigé, mais, il me manque le compartiment "discord.js" dans le cerveau pour pouvoir interpréter et changer ce qu'il faut
TypeError: Cannot read property 'commands' of undefined
si ça se trouve, faute de frappe
Dans la théorie c’est bon, mais oublie pas de rajouter au cache une invitation quand elle est créée si le bot tourne, l’event c’est invitationCreate je crois
Certainement
Dans ton id de guild ou je sais pas 
Mets des guillemets
j'ai essayé avec des ', ça n'a pas marché, ça change beaucoup des guillemets ?
je crois pas qu'il y ait beaucoup de différence
en tout cas, avec des guillemets, je n'ai plus d'erreur mais ça ne fait rien, les commandes restent
pour des grand nombre entier, c'est préférable de mettre des guillemets il me semble
ah ok
c'est plus "précis" en gros
ha d'acc
`const guild = client.guilds.cache.get(bruh);
(await guild.commands.fetch()).forEach(command => guild.commands.delete(command.id));`
Mais j’ai dû me planter quelque part, mais je vois pas où
je comprend pas, ça ne marche pas mais j'ai 0 erreur
@broken walrus est il possible que je fasse ça à la fin ? un module.exports = {invites} dans mon fichier invite_trackers.jspuis dans l'autre fichier ou j'aimerai crée mon message de bienvenue, faire un const invites = require("../../invite_trackers.js")
Code :
const bot = require('../../index.js');
const { promisify } = require('util');
const wait = promisify(setTimeout);
let invites;
const id = '997260140120121364'
bot.on('ready', async() => {
await wait(2000);
client.guilds.cache.get(id).fetchInvites().then(inv => {
invites = inv;
})
})
bot.on('guildMemberAdd', async(member) => {
if(member.guild.id !== id) return;
member.guild.fetchInvites().then(gInvites => {
const invite = gInvites((inv) => invite.get(inv.code).uses < inv.uses);
const channel = member.guild.channels.cache.get('997260141399396385');
channel.send(`${member} a été invité par ${invite.inviter}`);
})
})
module.exports = {invites};
côté guildMemberAdd.js :
let invites = require("../../events/client/invites_trackers.js")
module.exports = {
name: 'guildMemberAdd',
once: false,
execute(bot, member) {
const { MessageEmbed } = require('discord.js');
const EmbedWelcome = new MessageEmbed()
.setColor('#27868A')
.setTitle(`\:user: Bienvenue à ${member.user.username} !`)
.setDescription(`Nous te souhaitons la bienvenue sur ${member.guild.name} !
invité par : ${invite.inviter}
${member.user} a rejoins Discord le <t:${parseInt(member.user.createdAt / 1000)}:d> à <t:${parseInt(member.user.createdAt / 1000)}:t>
${member.user} a rejoins notre serveur le <t:${parseInt(member.joinedAt / 1000)}:d> à <t:${parseInt(member.joinedAt / 1000)}:t>
Nous sommes maintenant \`\`${member.guild.memberCount}\`\` membres.`)
member.guild.channels.cache.get("997260141399396385").send({ embeds: [EmbedWelcome] });
}
}
Comment faites vous les function async dans les module.exports ?
Comme ceci
Donc dans ton cas si tu veux transformer ta fonction execute en fonction async tu mets juste async devant
Merci énormément !
cependant, pour moi le code est bon mais ils disent que invites n'est pas une function ? j'ai oublié de déclarer quelque chose ?
code :
const invites = require('../../index.js');
module.exports = {
name: 'guildMemberAdd',
once: false,
async execute(bot, member) {
const newInvites = await member.guild.invites.fetch()
const oldInvites = invites.get(member.guild.id);
const invite = newInvites.find(i => i.uses > oldInvites.get(i.code));
const inviter = await client.users.fetch(invite.inviter.id);
const logChannel = member.guild.channels.cache.find(channel => channel.name === "join-logs");
const { MessageEmbed } = require('discord.js');
const EmbedWelcome = new MessageEmbed()
.setColor('#27868A')
.setTitle(`\:user: Bienvenue à ${member.user.username} !`)
.setDescription(`Nous te souhaitons la bienvenue sur ${member.guild.name} !
invité par :
${member.user} a rejoins Discord le <t:${parseInt(member.user.createdAt / 1000)}:d> à <t:${parseInt(member.user.createdAt / 1000)}:t>
${member.user} a rejoins notre serveur le <t:${parseInt(member.joinedAt / 1000)}:d> à <t:${parseInt(member.joinedAt / 1000)}:t>
Nous sommes maintenant \`\`${member.guild.memberCount}\`\` membres.`)
member.guild.channels.cache.get("997260141399396385").send({ embeds: [EmbedWelcome] });
}
}
ligne de l'erreur : const oldInvites = invites.get(member.guild.id);
-------
Promise {[[PromiseState]]: 'rejected', [[PromiseResult]]: TypeError: invites.get is not a function…te```
Quelqu'un pourrait m'aider pour mon projet, si vous vous y connaissez cela ne devrait prendre que 10 min max
Console log ton invites tu verras ce que ça te retourne 🙂
Pose ta question
Je suis en train de créer un bot discord qui lorsque l'on rempli un modal sur le serveur renvoie un embeds en fonction de la réponse mais je suis bloquer car je ne trouve pas comment recup la réponse au modal et comment fair pour afficher l'emebed en fonction de cette dernière
Avec l'event interactionCreate tu récupères la réponse
Et comment en fonction de l'évent je peux afficher un embeds différent
Tient 😄
Ils expliqueront mieux que moi
Ok j'avais déjà regarder c'est d'ailleurs de la que je me suis inspirée mais je vais approfondir mes recherches
Merci quand même
Alors je t'avoue que ça me retourne [ Object Object ] 😮
console.log(${invites})
Enlève le ${} juste console.log(invites)
Quand tu exportes enlève le {} aussi c'est pas utile
console.log(invites)
[[Prototype]]:
Object
UNHANDLED_REJECTION: TypeError: invites.get is not a function
-------
Promise {[[PromiseState]]: 'rejected', [[PromiseResult]]: TypeError: invites.get is not a function…te```
Fait un screen
Montre ton fichier où tu exportes, tu as enlevé les {} autour de invites ?
Tu souhaites que je t'envoie le dossier vite fait pour y voir plus claire ? j'ai créé que des évents dans inviteCreate, inviteDelete, guildCreate, guildDelete etc.. puis je voulais faire un export sur l'event guildMemberAdd.js
Affirmatif oui
mon fichier ou j'export ? ce que j'ai mis en require() ? le index.js ?
// Importation de la classe Client dans le module discord.js pour se connecter au bot
const { Client, Collection } = require('discord.js');
// Importatuon du module dotenv et configuration
const dotenv = require('dotenv'); dotenv.config();
// Création du client pour le bot
const bot = new Client({
intents: 32767
});
// On crée une collection
bot.commands = new Collection();
const invites = new Collection();
const wait = require("timers/promises").setTimeout;
bot.on("ready", async () => {
// "ready" isn't really ready. We need to wait a spell.
await wait(1000);
// Loop over all the guilds
bot.guilds.cache.forEach(async (guild) => {
// Fetch all Guild Invites
const firstInvites = await guild.invites.fetch();
// Set the key as Guild ID, and create a map which has the invite code, and the number of uses
invites.set(guild.id, new Collection(firstInvites.map((invite) => [invite.code, invite.uses])));
});
});
['EventHandler', 'CommandHandler'].forEach(handler => { require(`./utils/handlers/${handler}`) (bot) });
// Le bot détecte les erreurs et les met dans la console
process.on('exit', code => {console.log(`Le processus s'est arrêté avec le code ${code}`)});
process.on('uncaughtException', (err, origin) => {console.log(`UNCAUGHT_EXCEPTION: ${err}`, `Origine: ${origin}`)});
process.on('unhandledRejection', (reason, promise) => {console.log(`UNHANDLED_REJECTION: ${reason}\n-------\n`, promise)});
process.on('warning', (...args) => {console.log(...args)});
// Lancer le bot
bot.login(process.env.BOT_TOKEN);
Voila, il y a tout
Ton invites tu l'export pas
juste à rajouter module.exports = {nom_de_la_variable} ?
Ah d'accord ! je pensais que tu devais quand meme mettre des {}
Ok je l'ai ajouté ici :
bot.commands = new Collection();
const invites = new Collection();
module.exports = invites
J'ai join et aucune erreur ! superbe !
Merci pour ton coup d'oeil !
invites n'est pas vide ? 
comment ça ?
Quand tu console log invites dans guildMemberAdd ça te retourne quoi ?
je te dis ça att
Tout fonctionne ! il y a juste ça qui se met dans le terminal quand une personne join :
Mais pourtant ça fonctionne bien j'ai bien le nom de la personne qui a invité
À quoi correspond ta ligne 21
C'est ta ligne 22 en réalité. C'est simplement que invite.inviter n'existe pas.
Ah non pardon !
Invite n'est pas défini visblement
Pourtant j'ai bien le nom de la personne 😮
Ce qui est bizarre

Tu dois faire une bêtise quelque part. Fait un petit console.log('gmadd', member.id)
Au niveau de la ligne 7
Je pense que ton événement est appelé 2 fois
J'ai gmadd 993555977116860447
Plus d'erreur apparemment là avec la console.log(gmad, member.id)
et l'embed s'affiche bien
invité par : Notika (mon compte principal)
et les autres en dessous celui qui a été invité (compte secondaire)
Okay, c'était bizarre aussi 👀
J'y vais cette fois ci ! Bonne soirée à toi
A toi de même ! Bonne nuit
j'ai relancé mon bot ce matin et, cette fois-ci, ça a bel et bien supprimé les commandes, bizarre
je ne comprend pas bien l'erreur, désolé```
throw new argument_error_1.ArgumentError(message, main, errors);
^
ArgumentError: Expected string name to match "^[\p{L}\p{N}_-]+$", got bug ou suggestion instead
at Object.ow [as default] (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\ow\dist\index.js:32:19)
at Object.validateName (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules@discordjs\builders\dist\interactions\slashCommands\Assertions.js:24:17)
at MixedClass.setName (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules@discordjs\builders\dist\interactions\slashCommands\mixins\NameAndDescription.js:26:22)
at Object.<anonymous> (C:\Users\arthu\Desktop\Bot UltrArthy\index.js:16:6)
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:79:12)
at node:internal/main/run_main_module:17:47 {
validationErrors: Map(1) {
'name' => Set(1) {
'Expected string name to match "^[\p{L}\p{N}-]+$", got bug ou suggestion instead'
}
}
}
c'est ce qu'on appelle une "regular expression", ça veut dire que ce que t'as mis dans "name" n'est pas valide
En l'occurrence la regex c'est ^[\p{L}\p{N}_-]+$
😮
🤔
genre ça veut dire qu'il y a un truc qui va pas au début de la ligne ?
et à la fin ?
Je sais pas, t'as mis quoi dans le champ name ?
en gros ça veut dire que tu peux mettre des chiffres, des lettres, et des _
mais rien d'autre
Aussi oui
const signal = new SlashCommandBuilder()
.setName("bug ou suggestion")
.setDescription("Vous avez une Suggestion ou un Bug à signaler ? Utilisez cette commande !")
.addStringOption(option =>
option.setName('Bug ou Suggestion')
.setDescription('Choisissez votre type de signalement')
.setRequired(false)
.addChoices(
{ name: 'Bug', value: 'Vous avez trouvé un bug ?' },
{ name: 'Suggestion', value: 'Oh ! Bonne idée !' }
));```
voici ce que j'ai
c'est dans ton index.js ligne 16
ahhhh d'acc
genre tu peux faire /bug_ou_suggestion mais pas /bug ou suggestion
ok merci beaucoup
et si j'ai bien pigé, c'est parce que dans [\p{L}\p{N}_-] il n'y a pas d'espace, c'est ça ?
j'ai un autre problème
déso hein
ça c'est mon erreur : ArgumentError: Expected `string choices` to be of type `array` but received type `Object` (array `string choices`) source is not iterable at Object.ow [as default] (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\ow\dist\index.js:32:19) at SlashCommandStringOption.addChoices (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\@discordjs\builders\dist\interactions\slashCommands\mixins\CommandOptionWithChoices.js:46:21) at C:\Users\arthu\Desktop\Bot UltrArthy\index.js:22:10 at MixedClass._sharedAddOptionMethod (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\@discordjs\builders\dist\interactions\slashCommands\mixins\CommandOptions.js:75:54) at MixedClass.addStringOption (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\@discordjs\builders\dist\interactions\slashCommands\mixins\CommandOptions.js:61:21) at Object.<anonymous> (C:\Users\arthu\Desktop\Bot UltrArthy\index.js:18:6) 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) { validationErrors: Map(1) { 'string choices' => Set(2) { 'Expected `string choices` to be of type `array` but received type `Object`', '(array `string choices`) source is not iterable' } } }
et ça c'est mon code
onst signal = new SlashCommandBuilder()
.setName("bug-suggestion")
.setDescription("Vous avez une Suggestion ou un Bug à signaler ? Utilisez cette commande !")
.addStringOption(option =>
option.setName('bug-suggestion')
.setDescription('Choisissez votre type de signalement')
.setRequired(false)
.addChoices(
{ name: 'Bug', value: 'Vous avez trouvé un bug ?' },
{ name: 'Suggestion', value: 'Oh ! Bonne idée !' },
));```
c'est pas déjà un array ?
pour moi, c'est bien une liste

je reviens dans quelques minutes
.addChoices() attend une array d'objets comme argument
là tu lui donnes juste plusieurs arguments à la chaine
[{}, {}]
Oui
j'ai compris, merci beaucoup pour l'aide
ArgumentError: (array `string choices`) Expected values to be of type `array` but received type `Object\`
.addChoices([
{ name: 'Bug', value: 'Vous avez trouvé un bug ?' },
{ name: 'Suggestion', value: 'Oh ! Bonne idée !' }
]));
Il faut que je fasse des tableaux pour chaque value ?
Normalement c'était bon comme tu avais mis en premier lieu
C'est effectivement un spread operator, donc comme tu avais mis c'était bon
Attends mais c'est bizarre 
Tu as quelle version de @discordjs/builders ?
ok, c'est fait
at ArrayValidator.handle (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\@sapphire\shapeshift\dist\index.js:464:70)
at ArrayValidator.parse (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\@sapphire\shapeshift\dist\index.js:143:88)
at MixedClass.addChoices (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\@discordjs\builders\dist\index.js:1192:22)
at C:\Users\arthu\Desktop\Bot UltrArthy\index.js:22:10
at MixedClass._sharedAddOptionMethod (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\@discordjs\builders\dist\index.js:1388:50)
at MixedClass.addStringOption (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\@discordjs\builders\dist\index.js:1377:17)
at Object.<anonymous> (C:\Users\arthu\Desktop\Bot UltrArthy\index.js:18:6)
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) {
errors: [
[
0,
ValidationError: Expected the value to not be an array
at ObjectValidator.handle (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\@sapphire\shapeshift\dist\index.js:1189:25)
at ObjectValidator.run (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\@sapphire\shapeshift\dist\index.js:129:23)
at ArrayValidator.handle (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\@sapphire\shapeshift\dist\index.js:458:37)
at ArrayValidator.parse (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\@sapphire\shapeshift\dist\index.js:143:88)
at MixedClass.addChoices (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\@discordjs\builders\dist\index.js:1192:22)
at C:\Users\arthu\Desktop\Bot UltrArthy\index.js:22:10
at MixedClass._sharedAddOptionMethod (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\@discordjs\builders\dist\index.js:1388:50)
at MixedClass.addStringOption (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\@discordjs\builders\dist\index.js:1377:17)
at Object.<anonymous> (C:\Users\arthu\Desktop\Bot UltrArthy\index.js:18:6)
at Module._compile (node:internal/modules/cjs/loader:1101:14) {
validator: 's.object(T)',
given: [
{ name: 'Bug', value: 'Vous avez trouvé un bug ?' },
{ name: 'Suggestion', value: 'Oh ! Bonne idée !' }
]
}
]
]
}```
là
Voilà :p

mdrr ça fait 24 h que je t'embête
Si je voulais pas je serais pas ici mdr
bien vu
en gros, j'ai ça :```js
const signal = new SlashCommandBuilder()
.setName("bug-suggestion")
.setDescription("Vous avez une Suggestion ou un Bug à signaler ? Utilisez cette commande !")
.addStringOption(option =>
option.setName('bug-suggestion')
.setDescription('Choisissez votre type de signalement')
.setRequired(false)
.addChoices(
{ name: 'Bug', value: 'Vous avez trouvé un bug ?' },
{ name: 'Suggestion', value: 'Oh ! Bonne idée !' },
));
et ça :
où passent les choix ?
oulala j'suis pommé
hayy j'ai potentiellement pigé
comment je peux faire pour directement avoir les deux options affichées ?
Mettre ton option en required :p
😮
énorme
merci
No stress, cette fois-ci, je viens pas parce que quelque chose ne marche pas, c'est juste pour demander si quelqu'un avait un nom pour la commande

déso si j'ai envoyé ça sur un salon js
reportbug ou bugreport
pas mal 👍
voici mon code et voici mon erreur veuillez m'aider à la régler car je n'y arrive pas. SVP
🤔
je t'avoue, c'est la première fois que j'entend parler de Modals, peut être qu'il faut mettre un nom à ça
essaies de mettre un .setName("test"), au début, juste pour essayer
non cela me réaffiche la meme erreur voila ce qu'est un modal:
what ?
YEET
c'est une sorte de menu que tu peux afficher sur Discord dans lequel tu peux envoyer des infos à un bot ?
Oui
mais c'est incroyable
Ça fait déjà quelque temps que c'est sortie
genre on peux faire des petites candidatures
je connaissais pas
Avant c'était en module maintenant c'est direct sur djs
Yep
haa
Et ça marche comme interaction
Ah je crois savoir
😮
Mais cette erreur est bizarre car avant cela ne me l'afficher pas mais maintenant il me l'affiche tout le temps et je ne peux donc pas effectuer mes commande
bizarre, peut-être une MAJ
Ah non


Tu peux montrer ta ligne 9 ?
oui c'est chelou
et comme j'ai commencer il y a peu à coder du javascript je patauge un peu pour régler cette erreur
maybe ```js
new Discord().Client({});
instancier la class
je viens d'essayer et cela m'affiche qui faut des intents
ca me saoul de ne pas trouver
T'as essayé de mettre un .setName ?
oui je viens de chercher sur internet et s'est peut etre du au caractère @ qui n'est pas supporté
Non, ça te mettrait pas cette erreur là
je viens de regarder sur internet un mec avait la meme erreur, il a enlever les @ et son code a fonctionné
API - Erreur 404 - Unexpected token
j'arrive pas a trouver
bonjour quelqu'un a une idee de comment l'ecrire
pour le context je fait une page de modification de post et j'aimerai que dans l'input j'ai le text qu'il y a de base
Désolé je peux pas t’aider, je connais pas Vue 😅
c'est pas plutôt this.post.text ou this.text (celui qui contient la valeur par défaut) ?
et mets plutôt :value="this.post.text"
j'ai une erreur
j'ai un vmodel et ca me dit que sa interfere
Ouais parce que le V-model = la value
Si ton V-model c'est 5 de base la value ça sera 5
ah j'avais pas vu le v-model
bah au pire dans this.text tu mets ta valeur de base ? ou inversement si tu mets as mis un truc différent
Bonsoir, je ne suis pas habitué à utiliser le JS comme langage et j'ai besoin d'éditer un script que je n'ai pas fait en ajoutant une image à un embed, sauf qu'il se met en erreur comme vous le voyez, quelqu'un peut-il me résoudre ce problème ? Merci.
Une virgule non ?
Ah pas de soucis
bonjour
Non ça cassera rien tu met dans la data ta valeur du v-model
Genre :
data() {
return {
text: "Super text"
}
} ```
et tu le passe en v-model
Bonjour, est-ce que quelqu'un qui peut m'aider en vocal en 5 min juste pour me montrer un truc svp ?
T'as une erreur qui va avec ?
Oui
Tu peux l'envoyer en entier ?
"MessageActionRow is not defined"
Comment je le définie ?
Il faut l'importer ^^
async ?
Non
const { MessageActionRow } = require('discord.js');
pareil pour MessageButton apparemment
const { MessageActionRow, MessageButton } = require('discord.js');
^^
Merci mec vraiment
Et la svp
qui peut m'aider
Genre encore problème sa me signale
Non genre aucun probleme sa me signale donc je prend pas
J'ai régler et toujours pas
Laquelle ?
t'as marqué await interraction;showModal(modal)
alors qu'en paramètre de ton callback t'as écris interaction
du coup c'est await interaction.showModal(modal);
Oui j'avais régler sa mais sa fait toujours la même choses quand je veut accéder au modals par mon bouton
C'est-à-dire ? x)
Et je vois un autre problème
Laquelle
l'ID de ton bouton c'est "forms"
et t'as mis if(interaction.customId === "form")
Forcément la condition passera jamais
t'as pas importé Modal non plus
Ah ok si c'est bon
Mais je comprend pas
12
Je crois que c'est qu'à partir de la 13.7
le truc c'est que text est deja utiliser pour quelque chose
Bah tu fais une copy?
Maintenat c'est TextInputComponents
C'est quoi l'erreur exacte ?
Ah c'est bon xd c'était à cause d'un S de merde
JE VAIS ALLEZ TESTER
Ok
bah ca me donne une page blanche
t'as pas mis de .setCustomId à ton premier TextInputComponent
Merci
Sa marche
Je te remercie
mec
depuis le temps que je voulais faire sa
Nice ^^
Toi t'es fort en javascript mon reuf je t'ajoute direct et d'ailleurs déo si jtai fais chier avec mes erreur de merde
Pense juste à corriger les ptites fautes d’orthographe ^^
D'accord merci
Juste une question les bg
si jamais je crois que certains trucs des modals ne marchent pas sur tel
vous voyer les msg en ephemere
Ah
Yo, je suis bloqué, j'ai fais ma commande slash, j'arrive à l'envoyer au serveur que je veux, j'ai fais une option obligatoire mais, j'aimerais faire en sorte qu'après cette option, les gens qui utilisent la commande aient à mettre un texte, comment je fais ?
🤔
j'ai beau chercher, je trouve pas
Pas compris 👀
je comprend que tu n'aies pas compris, j'explique très mal
attends quelques secondes
j'aimerais obliger le fait qu'après ça :
ils mettent un texte
d'abord, est-ce possible ?
Oui :)
genre je met juste addStringOption sans option et ça demande un texte ?
Bas tu dois mettre le nom etc
haa oui + le fait que ça soit requis ou non
bah super, je savait pas qu'on pouvait faire ça comme ça
merci beaucoup 🙂
peut-être la personne qui a utilisé le modal n'a rien mis dans favorite color, non ?
appart ça, aucune idée
Si
Mais c'est bizzare
🤔
mets un ? devant ton .getTextInputValue('favoriteColor')
pour voir si ça fait la même avec 'yourHobbies'
met le point après le point d'interrogation et, justement, ne le fais pas sur yourHobbies, pour voir si il y a la même erreur
Je lance maintenant ?
what ?
ah mais oui, je suis con
littérallement, ce que je t'ai fais faire, c'est, demander la valeur de favorite color mais, si elle n'est pas là, pas grave
mybad
là je réfléchis
🤔
Tu veut passer vocal pour voir mieux ?
je peux pas voc
Ah merde
d'ailleurs, pour screen, je te conseille de faire SHIFT + WIN + S, comme ça, tu peux sélectionner une zone particulière et ne pas prendre ton deuxième écran
ah ok bienvue
j'y arrive pas ! je trouve pas !!
Mais après c'est normal c'est nouveau cette fonction
@broken walrus, s'il te plaît, déjà pardonne-moi de t'avoir mentionné.
et s'il te plaît, prête-nous ton intelligence !
c'est vrai
j'ai expérimenté ça l'autre jour, mais j'ai pas essayé de récupérer les réponses
Ta eu le même problème que moi Ducoup ?
j'ai pas essayé de récup les réponses donc, zéro problème
@cosmic plaza Tu peux me donner l'erreur + ton code en entier ?
Voila
Tu fais des fautes de frappe partout
les ; ?
Non
$
Bonjour,
J'ai un petit probléme de code et du coup cela fais crash mon discor dpour une commande Say J'aimerais de l'aide
Voici le code :
const Discord = require('discord.js');
const { Command } = require("../../config")
const config = require("../../config")
module.exports.config = {
name: 'say',
aliases: [''],
description: 'Fais dire un message au bot',
syntax: '',
category: Command.utile,
user_permissions: [],
bot_permissions: ['EMBED_LINKS']
}
module.exports.execute = async (client, message, args) => {
const msg = args.slice(0).join(" ")
if (!msg) return message.reply ("Veillez entrer une phrase")
const embed = new Discord.MessageEmbed()
.setColor("#ED4245")
.setTitle("Nouvelle Suggestion")
.setDescription(`${msg}`)
message.channel.send({ embeds: [embed] })
}```
Et voici l'erreur:
Nb commandes: 7
Nb Serveurs: 5530
Nb Salons: 390644
Nb emojis: 218756
Nb Membres: 1942040
Nb Ping: 119ms
Nb Uptime: 473566s
Total votes: 1060129
Total bumps: 774338
- - - - - - -
pour Creators Area
Nb Votes : 3193
Nb Bumps: 218
au Top : 136
J'ai corriger
Et du coup ?
relance, ça devrait marcher
Mais dcp moi ? 😭
V
Encore une faute de frappe 
la majuscule 
Oui
même moi j'ai vu
getTextInputValue
c'est pout te dire 
Mdr excitation je galère depuis une décenie pour des faute de frappe
Merci
tu n'as pas besoin de mettre `${msg}`, tu peux directement mettre msg
ta variable msg a quelle valeur ?
et pour l'erreur, j'en sais rien 
essaie de console.log
Sa fais une erreur
ah bon ?
Essaie de console.log(msg);
Je veux voir quelle valeur ça prend
Mais jpp
mdrr
pas dans ta console, dans ton code
Non mais même
const Discord = require('discord.js');
const { Command } = require("../../config")
const config = require("../../config")
module.exports.config = {
name: 'say',
aliases: [''],
description: 'Fais dire un message au bot',
syntax: '',
category: Command.utile,
user_permissions: [],
bot_permissions: ['EMBED_LINKS']
}
module.exports.execute = async (client, message, args) => {
const msg = args.slice(0).join(" ")
if (!msg) return message.reply ("Veillez entrer une phrase")
// là mdr
console.log(msg);
const embed = new Discord.MessageEmbed()
.setColor("#ED4245")
.setTitle("Nouvelle Suggestion")
.setDescription(`${msg}`)
message.channel.send({ embeds: [embed] })
}


C'est bon j'ai mis dans le code
Tjr sa
t'es sûr que t'as mis le console.log ?
tu as dû le mettre en dessous
Nop
montre ton code 2s
.
C'est juste un copier de sa


