#javascript-typescript

1 messages · Page 61 of 1

nova crater
#

ok

timid loom
#

@nova crater t'as restart après avoir fait tes modifs?

sand shore
#

et tu as save ?

nova crater
#

restart ? en fesant 'node index' oui et j'ai save le fichier

oak turret
#

node index.js

sand shore
#

index marche aussi

boreal edge
#

Node index sa marche aussi

sand shore
#

pas besoin de spécifier le format du fichier, node va trouver tout seul

oak turret
#

okok

slim anvil
#

dans ces cas là faites juste node . KappaLUL

nova crater
#

le problème c'est que ça supprime pas sur discord ce que j'ai supprimer dans le fichier mais ça r'ajoute ce que j'ai mis

oak turret
#

screen

nova crater
timid loom
#

nan mais screen le resultat sur discord

nova crater
timid loom
#

on l'a le screen au-dessus haha

#

att

#

t'as pas arrêté les autres bots

nova crater
#

les autres bots ? Y'en a pas d'autres ?

timid loom
#

faut que t'arrêtes en faisant ctrl+c dans la console

#

avant de restart ton bot

#

là ce que t'as fait c'est que t'as ouvert d'autres invites de commande

#

et t'as fait node index dedans

#

si tu veux absolument ouvrir un nouveau terminal au moins ferme ce que tu as ouvert

#

là t'as plusieurs instances de ton bot qui sont on du coup chacun envoie son résultat

nova crater
#

????

timid loom
#

je peux pas être plus clair

#

pour "restart"

#

il faut d'abord arrêter ce que tu redémarre

#

sinon t'as ton bot allumé en plusieurs exemplaires

#

et chaque exemplaire répond à ta commande

nova crater
#

en gros je fait ctrl+c pour arrêter ce que je redémarre et ensuite je fait node pour restart ?

timid loom
#

oui

nova crater
#

mais ça change rien

timid loom
#

tu fais ctrl+c dans la console où t'as lancé ton bot nan?

sand shore
#

@nova crater Ferme toutes les invites de commandes que tu as lancé

#

Quand tu refais un node index ça stop pas l'autre

nova crater
#

pour fermer toutes les invites de commandes je fais quoi ?

burnt perch
#

ctrl + c

#

ha non

#

toute bah perso je clique sur fermer non ? mdr

timid loom
#

tu peux aussi passer dans le gestionnaire des tâches et fermer chaque instance

burnt perch
#

également oui

nova crater
#

ah oui c bon ça à marché merci à vous tous

burnt perch
timid loom
cyan iron
#

Salut à tous, je suis un peu désespéré, quand on envoie un émoji personnalisé via un webhook normalement ça fonctionne. Ca fonctionne sur tous les serveurs à part le mien, le bot a pourtant la permission d'envoyer des émojis externes. Comment régler le problème ?

queen ocean
#

le bot a pourtant la permission d'envoyer des émojis externes.
Je vois pas le rapport vu que c'est un webhook donc pas lié au bot 🤔

#

Ton role everyone a la perm d'use les emoji externe ? 👀

cyan iron
#

Oui je sais bien
Mais au cas où le webhook hériterait des permissions de son créateur. Tu vois ce que je veux dire ?

#

Ton role everyone a la perm d'use les emoji externe ? 👀
Oui

#

Tout le monde peut utiliser les émojis externes c'est ça que je trouve bizarre

queen ocean
#

Et si tu ajoutes l'émoji a ton serv ?

#

avec le meme nom

cyan iron
#

Nope, ça ne va pas régler mon problème, étant donné que c'est un bot inter pub

#

On a justement opté pour les webhooks à cause de ça

#

Mais là ça fonctionne pas harold

#

Bon tan pis sinon, mais c'est assez embêtant

nova crater
#

quelqu'un peut m'aider je sais plus comment allumer mon bot 😕 c'est bête😅

slim anvil
#

node .

nova crater
#

ça fait rien j'ai essayer

oak turret
#

t’as mis un client.login() ?

cyan iron
nova crater
#

?

#

comment ça @oak turret

#

c'est bon il c'est allumer mais par contre mon reaction role ne fonctionne pas

#

voici l'erreur :

TypeError: Cannot read property 'find' of undefined
at Client.<anonymous> (C:\Users\boder\Documents\Discord Bot\Tuto djs\index.js:49:43)
at Client.emit (events.js:315:20)
at MessageReactionAdd.handle (C:\Users\boder\Documents\Discord Bot\Tuto djs\node_modules\discord.js\src\client\actions\MessageReactionAdd.js:46:17)
at Object.module.exports [as MESSAGE_REACTION_ADD] (C:\Users\boder\Documents\Discord Bot\Tuto djs\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_REACTION_ADD.js:4:37)
at WebSocketManager.handlePacket (C:\Users\boder\Documents\Discord Bot\Tuto djs\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (C:\Users\boder\Documents\Discord Bot\Tuto djs\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\boder\Documents\Discord Bot\Tuto djs\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\boder\Documents\Discord Bot\Tuto djs\node_modules\ws\lib\event-target.js:125:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (C:\Users\boder\Documents\Discord Bot\Tuto djs\node_modules\ws\lib\websocket.js:797:20)

slim anvil
#

et bah regarde d'ou vient le .find et debug

#

tu dois find sur un élement qui n'éxiste pas

nova crater
#

j'ai debug mais ça à rien changer

#

y'a plus d'erreur mais mon réaction rôle ne fonctionne toujours pas @slim anvil

slim anvil
#

je n'en sais rien je sais meme pas a quoi il ressemble :/

vague vapor
#

Yo comment on fait pour qu'un bot discord est dans sa description joue à et le nombre de joueur ou alors un bot déjà existant

oak turret
vague vapor
#

Yes

oak turret
#

il te faut un module

vague vapor
#

C a dire

oak turret
#

genre game-server-query ou autre

#

ou gamedig

#

etc

vague vapor
#

moi j'ai un serv gmod

#

Sur mtx

oak turret
#

si tu veux pas faire ton bot

#

t'as un bot de mtx qui le fait à ta place

#

mais pas en description bot

vague vapor
#

Tu peux me partager le lien stp

oak turret
#

j'ai pas

#

look dans ton panel

vague vapor
#

C a dire

#

Je vais dans la console de mon serv?

oak turret
#

Non

#

look les menus

#

Avancé je pense

#

je sais pas look

vague vapor
#

Au pire tu peux pas cree un serv 24h stp

slim anvil
#

Demande au support

oak turret
#

je look ça tqt deux secondes j'me le prends 24h

#

c'est écrit quoi

#

en gros "Bot Discord" ..

vague vapor
#

Moi j'ai pas

oak turret
#

tu es le propriétaire du serveur ?

vague vapor
#

Non

oak turret
#

Normal donc

vague vapor
#

Mais j'ai tt les perm

oak turret
#

il faut que ça soit le proprio pas un collab

#

Oui les collabs peuvent pas

vague vapor
#

A ok donc la tu peux pas me partager le lien

oak turret
#

mais y a pas de lien

#

ça marche pas comme ça

#

faut que tu demandes ça au proprio du serveur

vague vapor
#

Ok

slim anvil
#

@keen narwhal si tu as besoin d'aide c'est ici, sinon merci d'écrire une demande complète

normal burrow
#

voila quand je veut mettre en ligne mon bot sur heroku (en fesant deploy) j'ai une erreur dans les logs:

"

2020-09-29T15:51:13.415486+00:00 app[worker.1]: at WebSocket.onClose (/app/node_modules/ws/lib/event-target.js:124:16)

2020-09-29T15:51:13.415486+00:00 app[worker.1]: at WebSocket.emit (events.js:315:20)

2020-09-29T15:51:13.415486+00:00 app[worker.1]: at WebSocket.emitClose (/app/node_modules/ws/lib/websocket.js:191:10)

2020-09-29T15:51:13.415487+00:00 app[worker.1]: at TLSSocket.socketOnClose (/app/node_modules/ws/lib/websocket.js:850:15)

2020-09-29T15:51:13.415487+00:00 app[worker.1]: at TLSSocket.emit (events.js:327:22)

2020-09-29T15:51:13.415488+00:00 app[worker.1]: at net.js:674:12

2020-09-29T15:51:13.415568+00:00 app[worker.1]: (node:4) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)

2020-09-29T15:51:13.415667+00:00 app[worker.1]: (node:4) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

2020-09-29T15:51:13.471375+00:00 heroku[worker.1]: Process exited with status 0

2020-09-29T15:51:13.525019+00:00 heroku[worker.1]: State changed from up to crashed"

#

ps: sa fait longtemp que j'ai pas toucher du code j'ai repris le code d'un de mes ancien bot

plain crystal
#

le bot fonctionne en local?

normal burrow
#

oe

keen narwhal
#

Bonjour j'ai crée un bot pour un canvas mais j'ai une erreur durant le lancement

#
client.on('guildMemberAdd', async member => {
  const channel = member.guild.channels.cache.find(ch => ch.name === 'général');
  if (!channel) return;

  const canvas = canvas.createCanvas(700, 250);
  const ctx = canvas.getContext(`2d`);

  const background = await Canvas.loadImage(`./welcome.jpg`);
  ctx.drawImage(background, 0, 0, canvas.width, canvas.height);

  ctx.font = `40px Calvert MT Std`;
  ctx.fillStyle = `effffff`
  ctx.fillText(member.displayName, canvas.width / 2.2, canvas.height / 1.7);

  ctx.beginPath();
  ctx.arc(125, 125, 100, 0, Math.PI * 2, true);
  ctx.closePath();
  ctx.clip();
  const avatar = await Canvas.loadImage(member.user.displayAvatarURL({ format: `jpg`}));
  ctx.drawImage(avatar, 25, 25, 200, 200)


  const attachment = new Discord.MessageAttachment(canvas.toBuffer(), `./welcome.jpg`);

  channel.send(
    `Welcome to the server, ${member.user.username}!`,
    attachment
  );   
 });
#

Et voici l'erreur : (node:2404) UnhandledPromiseRejectionWarning: ReferenceError: Cannot access 'canvas' before initialization
at Client.<anonymous> (C:\Users\PC\Desktop\bot falco\index.js:26:18)
at Client.emit (events.js:310:20)
at Object.module.exports [as GUILD_MEMBER_ADD] (C:\Users\PC\Desktop\bot falco\node_modules\discord.js\src\client\websocket\handlers\GUILD_MEMBER_ADD.js:16:14)
at WebSocketManager.handlePacket (C:\Users\PC\Desktop\bot falco\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (C:\Users\PC\Desktop\bot falco\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\PC\Desktop\bot falco\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\PC\Desktop\bot falco\node_modules\ws\lib\event-target.js:125:16)
at WebSocket.emit (events.js:310:20)
at Receiver.receiverOnMessage (C:\Users\PC\Desktop\bot falco\node_modules\ws\lib\websocket.js:797:20)
at Receiver.emit (events.js:310:20)
(node:2404) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:2404) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

idle ice
#

const canvas = canvas.createCanvas(700, 250);

#

Tu utilises une variable dans son initialisation

#

Donc ce que tu dois faire, c'est à ton require, mettre Canvas en majuscule ainsi
Et ainsi faire const canvas = Canvas.createCanvas(700, 250)

#

En ayant bien modifié le require évidement : const Canvas = require("Canvas")

#

@keen narwhal

keen narwhal
#

@idle ice Nickel mais maintenant j'ai cette erreur

#
(process:11688): Pango-WARNING **: 18:14:00.437: couldn't load font "Calvert MT Std Not-Rotated 40px", falling back to "Sans Not-Rotated 40px", expect ugly output.
(node:11688) UnhandledPromiseRejectionWarning: ReferenceError: attachment is not defined
    at Client.<anonymous> (C:\Users\PC\Desktop\bot falco\index.js:43:5)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
(node:11688) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside 
of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the 
node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:11688) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
idle ice
#

Tu peux me remettre ton code en entier ?

#

En screen de préf

keen narwhal
#

Yep

bright pecan
#

@keen narwhal couldn't load font "Calvert MT Std Not-Rotated 40px", falling back to "Sans Not-Rotated 40px", expect ugly output.

#

Tu ne peu pas modif une font sur discord il me semble

keen narwhal
#

Bas comment je peut faire du coup ? ^^

slate flame
#

Yo, Comment je peux faire pour afficher dans le status du bot dans cmb de guild il est ?

oak turret
#

client.guilds.cache.size je crois

#

pas sur

#

je l’ai dis de tête donc nice

slate flame
#

Ok cimer

timid loom
#

C'est un peu différent si tu fais des shards mais c'est nécessaire seulement si t'es à plus de 5000 serveurs il me semble

keen narwhal
#

@dire latch

dire latch
#

Oui? @KazΣn / Real#4568

keen narwhal
#

Pour mon Canvas de bienvenu j’ai mis la photo de l’utilisateur qui rejoins mais je ne sais pas comment la bouger sur l’image, quelqu’un serais quoi ajouter ou modifier pour changer la position de la photo de profile

dire latch
#

Il faut modifier les valeurs du canvas.width et canvas.height

#

@keen narwhal

keen narwhal
#

Je testerais quand je rentrerais

#

@dire latch Tu dirais quelle ligne ?

#

Ancien screen sur j’ai juste corrigé ce qui n’allais pas avec un peut d’aide

oak turret
#

ton attachement tu l’utilise pas

keen narwhal
#

Oe je l’ai corriger

dire latch
#

Le dernier ctx.drawImage

keen narwhal
#

Oe mais ça me coupe l’image

#

Bizarre

full scaffold
#

Yo, je cherche à envoyer un message au "member" dans un guildMemberRemove

#

Sachant que quand je fais

member.send(LeaveEmbed);

J'ai droit à cette erreur
(node:9252) UnhandledPromiseRejectionWarning: DiscordAPIError: Cannot send messages to this user

slim anvil
#

car il doit bloquer les messages quand pas sur le meme serveur

#

du coup gères juste l'erreur

full scaffold
#

Faut faire un try catch dcp

#

C'est bon ducoup

keen narwhal
#

c’est possible d’héberger son bot sur amazon aws ?

oak turret
#

c’quoi ça mdr

#

si ils proposent des hébergement nodejs oui

timid loom
#

c’est possible d’héberger son bot sur amazon aws ?
oui

#

C'est d'ailleurs la solution vers laquelle les gens se tournent habituellement

keen narwhal
#

mais genre c'est de la bonne qualité ?

slim anvil
#

AWS oui of course

keen narwhal
#

ok ok jvais essayer d'host dessus

timid loom
#

Si tu trouve ça trop difficile à config tu peux te tourner vers glitch ou heroku

keen narwhal
#

oee mais justement je cherche une meilleur puissance

full scaffold
#

Euh yo, j'ai un soucis avec mon bot genre j'ai cette erreur mais j'ai aucune indication d'où vient l'erreur :/

Connexion en tant que La Pampa#6397!
(node:5376) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Message
    at RequestHandler.execute (C:\Users\Firyo\Desktop\discord_bot\pampa_host\node_modules\discord.js\src\rest\RequestHandler.js:170:25)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
(node:5376) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:5376) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
keen narwhal
#

On peut voir le code ?

#

Tu essaies de fetch un message ?

full scaffold
#
case `jeu`:

                msg.delete();

                for (let index = 0; index < GameList.length; index++) {
                    GameList[index].emotename = client.emojis.cache.find(emoji => emoji.name === GameList[index].emoji);
                }

                let msgDescription = "";

                GameList.forEach(item => {
                    msgDescription = `${msgDescription} ${item.emotename} : ${item.name} \n \n`;
                });

                const GameEmbed = new Discord.MessageEmbed()
                    .setColor(`#ABA298`)
                    .setTitle(`Sur quel jeu voulez-vous commencer la session ?`)
                    .setAuthor(`Requête de : ${msg.author.username}`, msg.author.displayAvatarURL({
                        format: 'png',
                        dynamic: true,
                        size: 512
                    }))
                    .setDescription(msgDescription)
                    .setThumbnail('https://firyo.mtxserv.com/img/choice.png')
                    .setImage('https://firyo.mtxserv.com/img/pampabanner.png')
                    .setTimestamp()

                msg.channel.send({ embed: GameEmbed }).then(embedMessage => {
                    for (const item of GameList) {
                        embedMessage.react(item.emotename);
                    }
                });

                break;```
#

Voilà

fleet socket
#

En gros je pense que tu essai de supprimer un message deja supprimer ou inexistant

#

tu peut essayer de verifier msg.delete(); voir si msg existe encore

full scaffold
#

J'ai trouvé le problème, ça venait du fait que le bot était lancé 2 fois (Sur mon host et moi pour tester) ducoup c'est bon

burnt perch
#

Ah bah oui dcp mdr

dapper coral
#

Bonjour, j'ai un bot publique sous discordjs est j'aimerais savoir si vous savez comment faire en sorte qu'il envoie un message uniquement que lorsque quelqu'un rejoint le discord du bot (et non lorsque quelqu'un rejoint un discord sur lequel le bot est présent)

sand shore
#

faut que tu fasse par rapport à la guild

#

un exemple du type : si client rejoins la guild x alors envoyé msg dans guild x

#

je sais pas vraiment comment marche le système de guild avec discord js

timid loom
dapper coral
#

Merci bien

lime marsh
#

Hey, je serai à la recherche d'une personne expérimentée pour me dire si l'idée de mon bot ait possible.
Dans un premier temps j'aimerais que le bot puisse créer 2 salons vocaux un spécial pour le staff (privée) et un autre public.
Dans un second temps j'aimerait que les gens qui sont dans le salon vocal public puisse entendre ce que dise les gens du salon privé sans qu'il soit dedans.
J'espère que vous avez compris ma requête. 😅

tidal niche
#

Je pense pas que ce soit possible car un bot ne peux pas rejoindre 2 salon vocal en même temps donc il te faudrait 2 bot dans un premier temps, après créer les salon le bot peux bien le faire mais je vois pas comment faire pour qu'il enregistre les utilisateurs et qu'il les retransmettent via l'autre bot .

dire latch
#

Non, impossible 🙂

slim anvil
#

Je sais pas si c’est si impossible que ça

#

Il faudrait juste 2 Bots

hybrid berry
#

alors la logique et le système n'est pas si compliqué que sa

slim anvil
#

Un qui rec, et l’autre qui fait écouter à la demande

hybrid berry
#

c'est surtout complexe

slim anvil
#

je pense que le plus relou c’est le rec et l’écoute en quasi temps réel mais ça reste faisable je pense

sand shore
#

Faudrait que le bot envoie le voc & l'autre le reçoit, mais y'aurais une latence entre le temps qu'il l'envoie & qu'il le reçoit

keen narwhal
#

Bonsoir je voudrais savoir si il existe un module ou autre pour crée un status pour serv gmod pour voir le nombre de joueurs co's etc

sand shore
#

oui gamedig

keen narwhal
#

Ok merci

#

Comment le add a un channel ?

#

Genre je doit crée le embed et tout ou juste copier le Gamedig

tidal niche
#

Tu a un exemple de code dans #partage-ton-code et tu peux creer un code pour le mettre dans un embed

keen narwhal
#

Ok super merci beaucoup

tidal niche
#

Si tu y arrive pas je peux te passer le code directement

keen narwhal
#

J'ai essayé avec le embed mes j'arrive pas je viens tout juste de débuter en js ses assez compliquée à comprendre au début

tidal niche
#

Oki att

#
    
        let players = state.players.map(player => player.name)
        const status = new MessageEmbed()
        .setColor('GREEN')
        .setTitle(`cequetuveux`)
        .addField("❯ Serveur",`» \`${state.name}\``,false)
        .addField("❯ Joueurs",`» \`${state.players.length}\` \ / \`${state.maxplayers}\``,true)
        .addField("❯ Latence",`» \`${state.ping}\``,true)
        .addField("❯ IP",`» \`${state.connect}\``,false)
        .addField("❯ MAP",`» \`${state.map}\``,false)
        .addField("❯ Mot de passe",`» \`${state.password}\``,false)
        .setFooter('cequetuveux', client.user.avatarURL({ format: 'png', dynamic: true, size: 1024 }))
    
       client.channels.cache.get(statusserveurchannel).send(status); ```
#

A la place de statusserveurchannel tu met l'id de ton channel et c bon

sand shore
#

Stop avec les var !!!

#

Depuis 2005 on n'utilise plus les var

#

go replace par let

tidal niche
#

ça change rien dans le fait que ça marche 🙂

timid loom
#

ça peut causer des problèmes cela dit de mettre var

tidal niche
#

Ah oki dans ce cas je vais mettre let a la place

keen narwhal
#

Merci

keen narwhal
#

Quand je lance mon bot il me dit

Uncaught ReferenceError: Gamedig is not defined
index.js:39
No debugger available, can not send 'variables'
Process exited with code 1
#

@tidal niche

tidal niche
#

Tu dois mettre const Gamedig = require('gamedig') en haut de ton code

keen narwhal
#

Merci ❤️

#

J'ai mis dans mon index.js puis quand je le lance j'ai encore une erreur

#
(node:20128) UnhandledPromiseRejectionWarning: ReferenceError: MessageEmbed is not defined
    at c:\Users\Genet\Desktop\botdiscord\index.js:44:20
<node_internals>/internal/process/warning.js:40
(node:20128) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
<node_internals>/internal/process/warning.js:40
(node:20128) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
plain crystal
#
const { MessageEmbed } = require('discord.js');
tidal niche
#

Voilà merci darz 👍

keen narwhal
#

J'ai encore

Uncaught ReferenceError: Gamedig is not defined
index.js:39
Process exited with code 1
tidal niche
#

Envoie ton code stp

keen narwhal
#

Ok

#
})
const { MessageEmbed } = require('discord.js');
Gamedig.query({type: 'garrysmod',host: 'ip',port: '27036'}).then((state) => {
    
    let players = state.players.map(player => player.name)
    const status = new MessageEmbed()
    .setColor('RED')
    .setTitle(`Status LaLouche`)
    .addField("❯ Serveur",`» \`${state.name}\``,false)
    .addField("❯ Joueurs",`» \`${state.players.length}\` \ / \`${state.maxplayers}\``,true)
    .addField("❯ Latence",`» \`${state.ping}\``,true)
    .addField("❯ IP",`» \`${state.connect}\``,false)
    .addField("❯ MAP",`» \`${state.map}\``,false)
    .addField("❯ Mot de passe",`» \`${state.password}\``,false)

   client.channels.cache.get(765980099907944499).send(status); 
})
tidal niche
#

Tu a pas mis const Gamedig = require('gamedig')

keen narwhal
#
})
const Gamedig = require('gamedig')
const { MessageEmbed } = require('discord.js');
Gamedig.query({type: 'garrysmod',host: '164.132.233.136',port: '27036'}).then((state) => {
    
    let players = state.players.map(player => player.name)
    const status = new MessageEmbed()
    .setColor('RED')
    .setTitle(`Status LaLouche`)
    .addField("❯ Serveur",`» \`${state.name}\``,false)
    .addField("❯ Joueurs",`» \`${state.players.length}\` \ / \`${state.maxplayers}\``,true)
    .addField("❯ Latence",`» \`${state.ping}\``,true)
    .addField("❯ IP",`» \`${state.connect}\``,false)
    .addField("❯ MAP",`» \`${state.map}\``,false)
    .addField("❯ Mot de passe",`» \`${state.password}\``,false)

   client.channels.cache.get(765980099907944499).send(status); 
})
#

Toujours même erreur

#
C:\Program Files\nodejs\node.exe .\index.js
Process exited with code 1
Uncaught ReferenceError: Discord is not defined
tidal niche
#

C une erreur avec Discord c pas la même la

#

Mais je vois pas où tu a mis discord vu que je vois pas la totalité du code

keen narwhal
#

Voila la totalité du index.js

plain crystal
#
const { Client, Collection, MessageEmbed } = require('discord.js');
const { token } = require('./config.json');
const fs = require('fs');

const client = new Client();
client.login(token)
client.commands = new Collection()
keen narwhal
#

Je doit add tout en haut de mon index.js

tidal niche
#

Uep

keen narwhal
#

Merci

#
// index.js
    client = new Discord.Client(),
    config = require('./config.json'),
    fs = require('fs')
 
client.login(config.token)
client.commands = new Discord.Collection()

Je garde ou je delete

tidal niche
#

Tu peux delete

keen narwhal
#

Ok

#
C:\Program Files\nodejs\node.exe .\index.js
Process exited with code 1
Uncaught c:\Users\Genet\Desktop\botdiscord\index.js:38
const { MessageEmbed } = require('discord.js');
        ^

SyntaxError: Identifier 'MessageEmbed' has already been declared
tidal niche
#

Tu l'a mis 2 fois du coup

#

donc tu peux supprimer const { MessageEmbed } = require('discord.js');

keen narwhal
#

Ok

#
C:\Program Files\nodejs\node.exe .\index.js
Process exited with code 1
Uncaught ReferenceError: Client is not defined
tidal niche
#

Renvoie ton code stp

keen narwhal
tidal niche
keen narwhal
#

Merci

#

Il marche parfait

tidal niche
#

Dr 🙂

keen narwhal
#

Vous avez pas un code pour actualisé tout les 1 minute un truc dans le genre ?

full scaffold
#

Actualisé quoi ?

keen narwhal
#

Ceci

full scaffold
#

Tu crée une fonction qui s'appelle elle même, et dans le ready de ton bot tu appelles la fonction en question

#

Sinon, je cherche un moyen de récupérer les infos de mon serveur gmod pour mon bot discord, (un peu comme le screen du dessus)

tidal niche
#

Tu cherche a faire quoi car le code je l'ai envoyer un peux plus haut si tu souhaite faire comme ça

full scaffold
#

ah bah merci

oak turret
#

Hello quelqu'un sait comment choper les grades que l'user a ?

if(message.member.roles.cache.some(r=>["760161563524202520", "760163468375752746", "760164164374364230", "760162141381853204", "760161715907330078", "763671554579234876", "762753820404088833", "760163194450083881", "760162516490911794", "760163328487063623"].includes(r.id)) ) {
  
        }
sand shore
#

@oak turret

oak turret
#

je l'ai pris de cette page ^^

#

j'ai pas la soluce pour choper les grades que l'user a parmi les autres grades

tidal niche
#

Tu souhaite afficher les grade que l'user a actuellement ?

idle ice
#

Hey les gars, c'est quoi la méthode la plus simple et efficace pour récupérer l'invitation utilisée par qq pour rejoindre ?
Car j'en ai une, mais ça plante lorsque l'invitation est à usage unique

const cachedInvites = bot.invites.get(bot.server.id)
const newInvites = await bot.server.fetchInvites()

bot.invites.set(bot.server.id, newInvites)

const usedInvite = newInvites.find(inv => cachedInvites.get(inv.code).uses < inv.uses)
if(usedInvite === undefined) return
ionic mango
#

hello j'ai une question sur ticket tool eq que je peut modifier le nom du ticket qui s'ouvre ?

#

genre changer tickrt-0001 avec un autre truc

idle ice
#

Tu peux, mais il faut payer le premium

#

@ionic mango

ionic mango
#

ok et tu connais le nom de l'option

#

@idle ice

idle ice
#

Je ne l'ai pas de tête, non

ionic mango
#

ok sa marche merci

oak turret
#

Hello ! quelqu'un sait comment je peux choper l'id d'un embed après son envoi pour pouvoir ensuite l'edit ?

#

car actuellement il me fait une erreur d'api car il essaye de modif le message que l'user a envoyé et non l'embed

timid loom
#

bah tu dois juste refaire un embed globalement

#

sur l'edit

#

ou alors j'ai pas compris 🤔

oak turret
#

oulah j'ai pas compris

#

en gros, il me chope l'id du message que j'envoie; du coup mon bot peut pas edit le contenu normal quoi, mais du coup je cherche à choper l'id de l'embed que mon bot envoie suite à la commande d'un user tu comprends ?

#

j'ai test ça mais pareil, pourtant c'est censé être l'id de l'embed là mais toujours pas :x

slim anvil
#

pour éditer un embed faut recréer un embed

#

ou en tout cas récupérer l'existant et l'éditer

oak turret
#

alors euh

slim anvil
#

Alors que la tu essayes de remplacer ton embed par l'id de l'embed

oak turret
#

merde, donc du coup dans mon then() je dois re-créer un embed ?

slim anvil
#

tu peux récupérer l'ancien et éditer les clés que tu veux

#

ou le recréer oui

oak turret
#

comment je récup l'ancien du coup ?

slim anvil
#

bah dans ton then, le R doit être l'embed que tu envoies sans doute

#

mais sinon tu l'as tout simplement dans ton pays_embed

#

mais surement dans le r aussi

oak turret
#

je vais log tout ça

#

mon r c'est le message que j'envoie moi et non mon embed en fait

#

ah non j'suis con

#

Ouais donc, le bot veut pas édit son propre message du coup je comprends pas le coup de re-créer un embed ?

idle ice
#

J'ai aucun soucis à éditer un embed précédemment envoyé 🤔

  1. Je conserve l'id de l'embed envoyé en faisant let embedID = await message.channel.send(embed)
  2. Je récupère le message via l'id (avec message cache, tu m'as compris)
  3. J'édite l'embed
  4. Message.edit avec l'embed édité
oak turret
#

je vais test ça !

#

alors le 2 je comprends pas trop ahah

#

Ok donc, j'ai bien l'id et tout, seulement il veut pas édit son propre embed le bot je comprends pas

#

ça marche ! seulement à chaque édit il me met un "object object[]" juste au-dessus de mon embed et je sais pas pourquoi pour le coup

delicate yoke
#

Bonsoir, je suis entrain de dev (merci yourube) un bot multi taches pour un de mes serveurs, quand je le lance (via Visual studio code) tout fonctionne et au bout d'une vingtaine de seconde il s'éteint avec ce message :

`C:\Program Files\nodejs\node.exe .\index.js
Lancer avec succès !

(node:12104) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Message
at RequestHandler.execute (c:\Users\user\node_modules\discord.js\src\rest\RequestHandler.js:154:13)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async RequestHandler.push (c:\Users\user\node_modules\discord.js\src\rest\RequestHandler.js:39:14)
at async MessageManager.delete (c:\Users\user\node_modules\discord.js\src\managers\MessageManager.js:126:5)
(node:12104) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:12104) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.`

Quelqu'un pourrais m'aider svp

#

Est-ce parce qu'il n'est pas héberger ?

slim anvil
#

Hello, il faudrait qu'on voit ton code, mais la visiblement c'est lié à un edit/delete ou get d'un message qui te fait une erreur

#

tu as run une commande ou rien du tout ?

delicate yoke
#

Après quelques secondes y'a ça qui apparait sans que je touche rien :

Process exited with code 1 Uncaught TypeError: Cannot read property 'setName' of undefined

Et après le bot s'arrête

#

C'est fix, merci pour ton aide 😉

slim anvil
#

good

delicate yoke
#

Ah bah j'ai parler trop vite 😅

Nouvelle erreur puis arret du bot :

Process exited with code 1 Uncaught TypeError: Cannot read property 'send' of undefined No debugger available, can not send 'variables'

#

Je sais pas si ça change quelque chose mais je précise que je lance en Start Without debugging

slim anvil
#

il peut pas send ton message car surement le "channel" n'existe pas avant donc le send est undefined

#

Tu as pas la ligne qui t'indique d'ou vient ton erreur ?

delicate yoke
#

Non mais je crois savoir d'où viens l'erreur si tu me dit ça, je check ça je te dit dans quelques minutes

delicate yoke
#

Ca à l'air d'être bon, merci encore

slim anvil
#

👌 good luck

delicate yoke
#

Encore moi ^^) j'ai régler tout les soucis mais j'en ai un nouveau :

Quand un utilisateur qui n'a pas les droit essaye d'utiliser le bot exemple :

%clear 10

Le bot s'arrête, avec ce message :
Uncaught TypeError: Cannot read property '768304653799653377' of undefined index.js:33 Process exited with code 1

Merci à ceux qui prendrons le temps de m'aider

slim anvil
#

Montre ton code ligne 33

#

dans ton index

delicate yoke
#

C'est fix aussi merci 😉 Je reviens ici si j'ai encore besoin d'aide mdr

slim anvil
#

suffit de lire tes erreurs et d'aller à la ligne, t'as vu ca va tout seul après 😛

boreal edge
#

Hello,
Est ce que quelqu'un serait comment je peux récupérer le dernier message dans un channel svp ?
Merci 😉

oak turret
#

log le channel

#

et j'sais pas si avec l'id du message tu peux choper le contenu

#

comme les grades genre

#

j'ai trouvé ça

#
channel.lastMessage.content

tu remplace channel par ton channel tu sais message.channels.cache.get('id').lastMessage.content je sais pas si c'est good encore

boreal edge
#

J'ai déjà tester, mais ça ne fonctionnes pas @oak turret

oak turret
#

look comme je viens de tester

boreal edge
#

Je viens de comprendre

#

C'est l'histoire de cache c'est pour ça

#

C'est à dire qu'il faut déjà que le bot est log le message dans son cache

#

Pour que ça fonctionne

oak turret
#

bah oui du coup faut que tout soit ok quoi

boreal edge
#

Je peux faire comment pour get l'ancien message avant que le bot soit lancé ?

oak turret
#

genre avant la commande ?

idle ice
#

Si tu veux récupérer des messages qui ne sont pas en cache, il faut jouer avec Fetch()

runic bane
#

Salut ✌️

J'ai un soucis avec mon bot (Discordia), j'ai fait une sorte de mini reactionRoles (en gros tu réagis ça te met un rôle) sauf que des fois ça marche et des fois non.

Pareil mon bot se déconnecte sans que le bot ai crash genre il déco de Discord mais mon terminal affiche rien aucune erreur et il est toujours lancé

hybrid berry
#

Si il n'y a aucune activité sur le bot pendant un certain moment, Discord le stop si je dis pas de conneries

runic bane
#

Beh ouais fin du coup les réactions marchent plus x)

dire latch
#

@hybrid berry Pas du tout

hybrid berry
#

ok car des fois mon bot faisait sa

humble storm
#

@hybrid berry Pas du tout
@dire latch avec Discordia si

dire latch
#

Ah

humble storm
dire latch
#

Jcroyai que c'était le nom de son bot

#

Oula

humble storm
#

Les joies de discordia

dire latch
#

C'est nul nan mdrr

#

Moi j'en use pas perso

humble storm
#

Oui c'est nul, je suis censé refaire le bot mais flemme

runic bane
#

@humble storm comment je peu éviter ça ?

humble storm
#

En changeant de framework ? suefort

runic bane
#

Ouais ok

languid hinge
#

Hey ! Je dev mon bot en Discord.py, je n’arrive pas à créer un Channel dans une catégorie (déjà crée au prealable).

dire latch
#

Jsuis pas dév python 😦

#

Sorry

languid hinge
queen ocean
#

Ca aidera les gens de savoir déjà si tu as une erreur qui arrive lors de la création du channel et de voir ton code aussi

languid hinge
#

Okay alors, j’ai aucune erreur et j’allume mon ordi pour envoyer ça.
(Je précise que je débute vraiment donc le code va être mal fait je pense 😆)

languid hinge
#

@bot.command()
async def register(ctx):
async def channel(self, ctx, role: discord.Role, *, name):
name = "test-1"
overwrites = {
ctx.guild.default_role: discord.PermissionOverwrite(read_message=False),
ctx.guild.me: discord.PermissionOverwrite(read_message=True),
role: discord.PermissionsOverwrites(read_message=True)
}
channel = await ctx.guild.create_text_channel(name=name, overwrites=overwrites, category=self.bot.get_channel(759157067642306621))

#

Voilà mon code, je voudrai que quand on tape /register, ça nous crée un channel dans une catégorie déjà crée

oak turret
#

ouf en python

#

je pense pas que grand monde use discordpy

#

ici du moins

cinder tartan
#

Voilà mon code, je voudrai que quand on tape /register, ça nous crée un channel dans une catégorie déjà crée
@languid hinge
Tu dois faire ca

#

au lieu de mettre get_channel

#
category = None
for i in self.bot.get_guilf(id).categories:
  if i.id == id_de_la_category:
    category = i
    break
        name = "test-1"
        overwrites = {
        ctx.guild.default_role: discord.PermissionOverwrite(read_message=False),
        ctx.guild.me: discord.PermissionOverwrite(read_message=True),
        role: discord.PermissionsOverwrites(read_message=True)
            }
        channel = await ctx.guild.create_text_channel(name=name, overwrites=overwrites, category=category)
languid hinge
#

J’essaie ça merci !

#

J'ai une erreur :

#

Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\pimp.py", line 86, in <module>
for i in self.bot.get_guilf(id).categories:
NameError: name 'self' is not defined

cinder tartan
#

Je vois

#

Tu crée ton bot dans un classe ?

#

@languid hinge

weak grove
#

Bonjour, je ne trouve pas de solution a un problème j'ai une commande avec des arguments !test args1 args2
a noté que l'args 2 peux être écris avec qu'un seul mot "Test" ou aussi avec "Test Test Test Test" sauf que voilà je ne trouve pas comment afficher tout les arguments de l'args 2 donc "Test Test Test Test" sans afficher l'args 1.

weak grove
#

tesarguments c'est args[1] c'est ça ? parce que ducoup comment je récupére le reste genre j'aimerais récupérer tout mes args sauf le premier

#

nop sa me met tjrs mon premier args

#

let args = content.split( " " );

#

yep [ '!test', '283315291986067457', 'test', 'test', 'test' ]

slim anvil
#

tu veux garder tous sauf le premier ?

weak grove
#

yep "283315291986067457"

#

et ducoup aussi la commande donc !test

#

ah c'est bon sa fonctionne 👍 au lieu du args.slice(1).join(" ") j'ai mit 2 étant donné que dans mon array ya deux args devant et sa fonctionne

slim anvil
#

tu fais juste

#

tu devrais faire plus simple

#

tu peux utiliser le .shift()

#

pour supprimer le premier élément d'un tableau

weak grove
#

dac sa marche pareil ducoup je remplace juste slice par shift(2) ?

slim anvil
#

Non juste .shift()

#
args.shift()
console.log(args)
#

il t'affichera plus que les autres sous forme de tableau bien sur

#

Sauf si tu veux supprimer + convertir directement le reste en string utilise la méthode de Osmium, en fonction de ce que tu veux

weak grove
#

yep parce que ducoup il faudrait que je fasse deux shift vu que j'ai deux args devant

slim anvil
#

Je vois pas le rapport ??

#

le but est de supprimer le premier élement du tableau

#

D'ou ma phrase juste après si tu lis bien

#

Si il veut le garder en tableau il peut juste shift

#

Sauf si tu veux supprimer + convertir directement le reste en string utilise la méthode de Osmium, en fonction de ce que tu veux

#

^^

robust minnow
#

**Salut, est-ce que quelqu'un aurait l'aimabilité de m'aider pour une intégration de Json ? Merci d'avance 😉 **
problème:
-J'aimerai mentionner le role @Bataillon d’Exploration, or j'ai essayé mais lors de l'incorporation de l'embed ca ne marche pas
Json:

    "embed": {
        "title": "Corps d'armée",
        "color": 14937245,
        "description": "@unkempt marsh : :one:\nGarnison: :two:\nBrigade Spéciale: :three:\nBrigade Anti-Personnel: :four:\nBrigade d’Entraînement: :five:",
        "image": {
            "url": "https://media.discordapp.net/attachments/749028801044021349/769566141906944070/thumb-1920-736462_8.png?width=732&height=381"
        }
    },
    "content": "__**Choisissez vos corps d'armée !**__"
}```
slim anvil
#

pour le role tu dois faire <@&id> je crois

#

mais par contre dans un embed ca ne mention pas je crois

robust minnow
#

bah j'avais essayé et j'avais eu ca

slim anvil
#

mais ca mention genre notif ?

#

ou c'est juste affiché ?

#

Ok donc ca mention pas ^^

robust minnow
slim anvil
#

oui remplace le ! par &

robust minnow
#

ca marche merci beaucoup 😉

languid hinge
#

Tu crée ton bot dans un classe ?
@cinder tartan Comment ça ?

cinder tartan
#

Tu sais quoi tu peux envoyer ton code ?

burnt perch
#

Tu voulais dire un objet ?

cinder tartan
#

Stv

languid hinge
#

Proxilys je t’envoie le code de tout le bot ?

keen narwhal
#

Bonjour, j'ai besoin d'aide à ce niveau la dans un code ( pour un embed ) Je met le title desc footer etc et à l'intérieur j'arrive à ajouter des emojis comme ceci yeah mais je n'arrive pas à ajouter des émojis ( gif ) tapghfhjg pouvez vous m'aider ?

Je met ça <:nomemojis:idemojis> pour les émojis pas animé ça marche mais pas pour les émojis animé sois je suis con et j'ai mal tapé un truc mais aprés 6 tentatives bah ça marche pas 😂

oak turret
#

t'as test :lenom: ?

#

merde

#

\:lenom:

keen narwhal
#

att

#

tj la même

oak turret
#
const emoji = client.emojis.cache.find(emoji => emoji.id=== "id");
hazy mirage
#

Hey 👋
Je comprends pas, impossible d'avoir les reactions du message même sur un message caché avec des reactions qui sont mises lorsque le bot est démarré:

const giveaway = await channel.messages.fetch(giveawayId, true, true)
console.log(giveaway.reactions) // undefined

giveaway => CommandoMessage
(DIscord Commando, node v12, discord.js v12)

idle ice
#

channel.messages.cache ?

languid hinge
#

Comment on crée un channel dans une catégorie déjà existante ? (en discord.js)

oak turret
#

je te montre ça

languid hinge
#

Okay merci !

oak turret
#
            const chan = message.guild.channels.create(`ticket-de-${message.author.username}`, {
                type: 'text',
                parent: '716388235076436058',
            })

le parent c'est l'id de la catégorie

languid hinge
#

J'essaie ça !

#

Yes c'est parfait merci bcp !!!

#

Comment je config les permissions à la création du channel ? Pour que seul l'user quia exécuté la commande ait accès au channel ?

#

(et les admins mais ca c de base)

oak turret
#
 const chan = message.guild.channels.create(`ticket-de-${message.author.username}`, {
                type: 'text',
                parent: '716388235076436058',
            }).then(chan => {
                chan.overwritePermissions(message.guild.roles.everyone, {
                    VIEW_CHANNEL: false,
                    SEND_MESSAGES: false
                })
                chan.updateOverwrite(message.author.id, {
                    VIEW_CHANNEL: true,
                    SEND_MESSAGES: true,
                    READ_MESSAGE_HISTORY: true
                })
                chan.updateOverwrite(message.guild.roles.cache.get('id grade'), {
                    VIEW_CHANNEL: true,
                    SEND_MESSAGES: true
                })
            })
  
})
languid hinge
#

Balaise mrc !!

oak turret
#

je ne fais que reprendre mon code ahah tqt ^^

languid hinge
#

😂

#

Comment on crée des variables user ? (Genre par exemple qui stocke l’XP d’un user)

oak turret
#

bdd

languid hinge
#

Okay

#

Je vx que mon Bot envoie un message à la création du Channel dans ce dernier.
(Le channel crée par la commande que tu m’a donnée.)
Comment je fais ?
(Promis j’arrête de t’embêter après Xd)

oak turret
#

ah bah tiens :

#
 const chan = message.guild.channels.create(`ticket-de-${message.author.username}`, {
                type: 'text',
                parent: '716388235076436058',
            }).then(chan => {
                chan.send(
                    send_embed = new Discord.MessageEmbed()
                        .setColor("00ff00")
                        .setTitle("Réagissez avec l'émoji pour fermer votre ticket.")
                        .addFields(
                            { name: "Joueur", value: message.author, inline: true },
                            { name: "Raison", value: raison, inline: true }
                        )
                        .setFooter(message.author.id)
                ).then(msg => msg.react("❌"))
                chan.overwritePermissions(message.guild.roles.everyone, {
                    VIEW_CHANNEL: false,
                    SEND_MESSAGES: false
                })
                chan.updateOverwrite(message.author.id, {
                    VIEW_CHANNEL: true,
                    SEND_MESSAGES: true,
                    READ_MESSAGE_HISTORY: true
                })
                chan.updateOverwrite(message.guild.roles.cache.get('716001100301598770'), {
                    VIEW_CHANNEL: true,
                    SEND_MESSAGES: true
                })
            })
languid hinge
#

Yes merci bcp !!

oak turret
#

pas de soucis, tu veux faire quoi d'autre

slim anvil
#

qu'est ce que c'est laid le promise chaining bordel

dire latch
#

Moi qui fais pas comme ça 😦

#

Jme sent différent mdrr

languid hinge
#

Mmh faire Des message contains qui ne fonctionne que dans une catégorie de Channel (Genre l’user envoie
« Je suis content »
Et le bot voit qu’il y a le mot « content » et envoie un message de réponse)

#

Mdrrr

oak turret
#

là ça doit être un

#

if ( message.content.contains("content") ) { message.reply("tata") } truc comme ça je crois

languid hinge
#

Et je fais comment pour que ce code ne fonctionne que dans une catégorie ? (Je voudrai que ça fonctionne dans ma catégorie ticket mais pas dans la catégorie discussion par exemple)

slim anvil
#

Le .contains() c'est que sur les nodes éléments (html en gros)
c'est .includes('content')

languid hinge
#

if ( message.content.includes("content") ) { message.reply("tata") }

Comme ça ?

slim anvil
#

👌

languid hinge
#

Et pour le mettre dans une catégorie seulement tu a une idée ?

slim anvil
#

si tu veux pour la category tu peux la recupérer dans le message.channel tu as un parentId ou categoryId je sais plus trop

#

fais un console.log(message.channel) et regardes les propriétés que tu as mais je crois que c'est parentID oui

#

du coup tu peux checker si ton parentID === 'id de ta catégorie'

#

si tu veux un truc fixe

languid hinge
#

Du genre je met que si le Channel a un parentid === ID de ma catégorie alors ça exécute mon code ?

slim anvil
#

Voila

languid hinge
#

C’est quoi la fonction pr get le parentid De mon channel ?

slim anvil
#

fais un console.log(message.channel) et regardes les propriétés que tu as mais je crois que c'est parentID oui
@slim anvil

#

log ton message.channel et regarde tout ce que tu as dedans

dire latch
#

🙂

languid hinge
#

A okay merci !

slim anvil
#

bon courage 👌

languid hinge
#

Merci !

oak turret
#

ah ui includes my vad

#

bad

tropic yoke
#

Quelqu'un sais comment faire afficher un message embed avec des mots clés ex: !embed ? (chu un peu perdu sur discord.js)

keen narwhal
#

Pas full bien compris

slim anvil
#

je crois qu'il veut juste savoir comment envoyer un embed via une commande !embed

full scaffold
languid hinge
#

@oak turret J'ai un problème avec le ```chan.updateOverwrite(message.guild.roles.cache.get('716001100301598770'), {

                VIEW_CHANNEL: true,
                SEND_MESSAGES: true
            })```

Je dois mettre quoi dans l'ID ?

oak turret
#

l’id de ton grade

languid hinge
#

a okaaaay

tropic yoke
keen narwhal
#

Salut, je voudrais faire un système de bibliothèque avec des messages déjà envoyé.. Je get le premier message par exemple et si quelqu’un ajoute la réaction 1️⃣ ça lui envoie l’histoire qui correspond à la réaction 1 du message 1, parce qu’en gros j’aurais plusieurs messages avec les mêmes réactions.. Je voulais donc savoir si vous saviez comment faire, j’ai beau réfléchir je n’y arrive pas :/

idle ice
#

J'ai...

#

rien compris

keen narwhal
#

En gros, je voudrais qu’à chaque fois que quelqu’un appuie sur une réaction genre : 1️⃣ Bah ça lui envoie l’histoire qui est relier à cette réaction je sais pas si tu comprends, mais genre il y aurait plusieurs messages avec les mêmes réactions donc je veux pas que ça envoie toute les histoires avec la réaction 1️⃣ mais seulement l’histoire de la réaction 1️⃣ du message 1️⃣ s’il a appuyé sur celui-ci je sais pas si tu comprends mieux

oak turret
#

cherche sur google ça

#

et après c’est des .then()

slim anvil
#

et après c’est des .then()
quel rapport le .then avec ce qu'il veut faire 🤔

oak turret
#

bah il veut appuyer une fois dessus puis encore une fois non?

slim anvil
#

sa question je crois est plus comment faire son système

#

je suis pas sur qye ce soit le fait de react

oak turret
#

ouais car j’ai pas capté son système

slim anvil
#

tu peux fair ca avec un object ou tableau d'object

const histories = {  
  1: {
    1: 'Histoire 1',
    2: 'Histoire 2'
  },
  2: {
    1: 'Histoire a',
    2: 'Histoire b'
  }
}

et ensuite en fonction du choix du mec tu pourras venir chercher
histories[1][2] qui te retournera "Histoire 2"

#

c'est un exemple parmis tant d'autre @keen narwhal mais faut que avant de faire ton système de reaction ou quoi tu réfléchisses bien à comment structurer ta data

#

puis tu adapteras ensuite ton système à ça

keen narwhal
#

Mercé, j’vais regarder ça

keen cave
#

Salut j'ai un beau bug sur discord js et je comprend vraiment pas je suis en plus ...

#

le premier client.on fonctionne le second non :/

#
const {Client, Collection,MessageEmbed} = require('discord.js');
const client = new Client();

client.on('message', message =>{
console.log('t')
});



client.on('guildMemberAdd', member => {
  console.log('tt')
});

client.login('moi') ;

#

quand je rejoins rien ...

#

voilà pour votre info

oak turret
#

c’est dans ton éditeur hein console.log

slim anvil
#

Oui je viens de voir il y a eu une update @keen cave

keen cave
#

yes

slim anvil
#

Il parle d'ajouter des Intents de cette façon

const client = new Client({ ws: { intents: ['GUILDS', 'GUILD_MESSAGES', 'GUILD_PRESENCES', 'GUILD_MEMBERS'] } });

par ex

#

Essaye d'ajouter ça pour voir

keen cave
#

non mais suffit de cocher un truc sur le portail dev -_-

slim anvil
keen cave
#

yes yes

#

merci

dire latch
#

Ah pour ça ils sont tous modifs -__-

dire latch
#

J'ai un gros soucis, mon bot s'allume et à la fin des loads des commandes/events ect

#

Mon bot se déco tout seul

#

Avec aucune erreur

timid loom
#

@shell cedar regarde juste au-dessus y a la solution

languid hinge
#

Hello ! Je voudrai que mes message.content.includes ne fonctionne que dans une categorie , comment faire ? Merci d’avance pour votre réponse 😄

slim anvil
languid hinge
#

Comment je fais ça déjà ?

slim anvil
#

ça c'est pour l'afficher dans ta console

#

tu dois faire une condition

languid hinge
#

Comme ça ?

slim anvil
#

oui

languid hinge
#

Nice merci !

#

Ca ne fonctionne pas, j'ai mis ce code :```if(message.channel.id == "759157067642306621"){

bot.on("message", async message => {
if (message.author.bot) return;
if (message.content.includes("pimp")) {
message.channel.send("😀 Voici mon prefix: " + PREFIX).then(msg => {msg.delete({ timeout: 15000 })});
};

});
}```

#

Pas d'erreurs dans la console

dire latch
#

Mdr

#

Pas comme ça

#
bot.on("message", async message => {
  if (message.author.bot) return;
  if (message.content.includes("pimp") && message.channel.id == "759157067642306621") {
    message.channel.send("😀 Voici mon prefix: " + PREFIX).then(msg => {msg.delete({ timeout: 15000 })});
  };
});```
#

Comme ça il me semble

languid hinge
#

je l'ai mis mais ca ne change toujours rien, il parle quand meme partout quand je met un message avec le include

slim anvil
#

montre

languid hinge
#
  if (message.author.bot) return;
  if (message.content.includes("pimp") && message.channel.id == "759157067642306621") {
    message.channel.send(":grinning: Voici mon prefix: " + PREFIX).then(msg => {msg.delete({ timeout: 15000 })});
  };
});```
slim anvil
#

tu as bien restart ton bot ?

languid hinge
#

oui

slim anvil
#

donc la peu importe le channel si tu mets pimp

#

il t'envoie le msg ?

languid hinge
#

oui

slim anvil
#

t'as bien save t'es sur ?

languid hinge
#

oui je viens de le refaire

#

après c une id de catégorie hein

#

je veux que ca fonctionne dans toute une catégorie

slim anvil
#

faut que tu regardes le parentID alors du channel

#

pas l'id

languid hinge
#

comment ?

slim anvil
#

de la meme façon que ton channel

#

regarde la doc de discordjs elle est bien faite tu as toutes les infos concernant ce que tu veux faire

#

regarde comment est constitué la collection Channel
ou sinon tu fais un console.log(message.channel)

#

et tu regardes ce qu'il y a dedans pour comprendre un peu comme tout ca peut fonctionner

languid hinge
#

je vais essayer

#

je le met ou le console.log(message.channel) ?

boreal edge
#

Hello
Excusez moi de vous déranger

#

Quelqu'un serait tester un coup l'event guildMemberAdd

#

Car avant il s'appellait très bien mais là, j'ai beau rejoindre le Discord, ça fonctionne pas

#

merci 😉

oak turret
boreal edge
oak turret
#

apparemment après je sais pas car j’ai pas eu le pb moi-même donc j’ai pas chercher à le régler

#

ouais je viens de look c’est ça

#

c’est new Client etc

#

GUILD_MEMBERS donc l’indent prend en compte les 3 events ( add, remove, et update) donc guildmemberadd, remove, update

#

pour + d’infos

weak grove
#

Hello, savez vous pourquoi en gros j'ai ma commande : !accept [discord id d'un mec] et en gros cette commande dois tout simple récupérer l'args 1 donc le discord id et ajouter le role "test" au discord id, sa fonctionne très bien sauf que des fois sa crash mon bot en disant :
TypeError: Cannot read property 'addRole' of undefined
(sur certain id discord) savez vous pourquoi ?

client.guilds.get('guildid').members.get(`${args[2]}`).addRole('roleid')
slim anvil
#

@boreal edge tu peux aussi le faire via Discord tu as des éléments à accepté et ce sera ok normalement

burnt perch
#

@weak grove essaye

client.guilds.get('guildid').members.cache.get(`${args[2]}`).addRole('roleid')

engros la tu te get un objet pas le membre

#

donc forcément la method ne marche pas

weak grove
#

ah dac merci je vais test sa 🙂

idle ice
#

ce n'est plus addrole

#
client.guilds.get('guildid').members.cache.get(`${args[2]}`).roles.cache.add('roleid')```
oak turret
#

ouaip c’est .add ou .remove

burnt perch
#

oui aussi j'avai zapper

weak grove
#

sa ne marche toujours pas
TypeError: Cannot read property 'add' of undefined

guild.member(client.users.get( args[2] )).roles.cache.add(role)

et j'ai aussi essayer la méthode de @idle ice

idle ice
#

Rytrak

#

Prend l'entiéreté de mon code, ne le change pas en quelque chose qui n'a aucun sens x)

weak grove
#

sa met sa

#

client.guilds.get('470897860473389066').members.cache.get(${args[2]}).roles.cache.add('763917247151472653')
^

TypeError: Cannot read property 'get' of undefined

idle ice
#

Commençons progressivement

#

console.log( client.guilds.get('470897860473389066') )

#

Ca te donne quoi ?

weak grove
#

sa me donne tout les channels

idle ice
#

Okay

#

console.log( client.guilds.get('470897860473389066').members.cache.get(args[2]) )

#

Ah bah c'est bon, rien qu'en retapant j'ai vu

#

${args[2]} c'est pour l'AFFICHER

#

args[2] c'est pour la récupérer

#

Donc tu veux la récupérer, pas l'afficher

weak grove
#

ahh je vais test

#

nop sa marche pas

            client.guilds.get('470897860473389066').members.cache.get(args[2]).roles.cache.add('763917247151472653')
                                                                 ^

TypeError: Cannot read property 'get' of undefined

slim anvil
#

ça change rien ${args[2]} de args[2]

#

dans ce cas là

#

Essaye d'y aller step by step, console log deja ton client.guilds.get('470897860473389066') vois ce que tu récupères

weak grove
#

sa me récup bien les channel du serv

slim anvil
#

le truc c'est que le get est une requete

#

donc quand tu fais .member.get derrière je pense que tu fais ca sur une Promise

burnt perch
#

fait un .then ?

slim anvil
#

yes ^

#

il dit juste, du coup sois tu await sois tu promise

weak grove
#

dac donc je then après client.guild.get

burnt perch
#

yep

weak grove
#

mtn c'est au tour de members

#

client.guilds.get('470897860473389066').then.members.cache.get(args[2]).roles.cache.add('763917247151472653')
^

TypeError: Cannot read property 'members' of undefined

burnt perch
#

non

#

pas comme ça

weak grove
#

ahhhsuefort

burnt perch
#

att je t'écris le code

weak grove
#

dac merci

burnt perch
#
client.guilds.get('470897860473389066')
.then(reponse =>{
console.log(reponse.members.cache)
})
#

try this

#

déja

weak grove
#

.then(reponse =>{
^

TypeError: client.guilds.get(...).then is not a function

burnt perch
#

ok 2sec je test

slim anvil
#

t'es sous quelle version de discordjs

weak grove
#

10.21

#

ah discordjs att

slim anvil
#

ui

weak grove
#

"version": "11.5.1"

slim anvil
#

Yep

weak grove
#

dac mais ducoup si je veux update je dois modif tout mon code ?

burnt perch
#

ah oui c'est avec la 12.etc

#

bah certains oui je pense

weak grove
#

ok

#

et si j'aimerais faire sa sur la 11.5 ?

burnt perch
#

non plus

#

hein ok oups

#

bah att

#

mais aussi pourquoi pas faire la commande avec une mention c'est plus simple non ?

weak grove
#

nn il faut lui rajouter un role

#

enfaite la sa marche

#

guild.member(client.users.get( args[2] )).addRole(role)

#

sur moi sa marche mais sur certaines personnes sa ne marche pas

#

guild.member(client.users.get( args[2] )).addRole(role)
^

TypeError: Cannot read property 'addRole' of null

burnt perch
#

oui bah tu peux le faire avec une mention ajouter un role

#

je trouve ça plus clean perso

weak grove
#

c'est à dire ?

burnt perch
#
let member = message.mentions.members.first();

member.roles
.add('id du role')
.then(() => {
   message.channel.send(`gg t'es validé ${member}`);
}).catch(console.error);
#

je pense que ça devrait le faire avec ta version

weak grove
#

donc en gros mon robot mention
!accept @weak grove
et après sa lui met le role ?

burnt perch
#

oui

#

engros dans le code tu recup la mention tu add un role au membre que ta mention puis ça envoie un message

#

ou ça te renvoie une erreur si y'en a

weak grove
#

.add('763917247151472653')
^

TypeError: member.roles.add is not a function

burnt perch
#

rolalaaa bon att je test et jtenvoie ça

weak grove
#

j'ai tester un autre truc et sa marche

#

sauf que sa revient a la même chose sa refait le bug

#

incompréhensible

#

sur moi et d'autre personne sa marche sauf que sur lui et certaine personne sa met une erreur

#

member.addRole(role)
^

TypeError: Cannot read property 'addRole' of undefined

burnt perch
#

ok c'est bon

#

tient :

#

if (message.content.startsWith(`!accept`)) {
      let mention = message.mentions.members.first();
      if (mention == undefined) {
        message.reply(`Veuillez mentionner un membre.`)
      } else {
        mention.roles.add("id du role")
      }
    }
#

tout bêtement bon ça n'a rien à voir avec le truc que t'a fait à la base mais ça devrait lfaire

weak grove
#

oui mais genre quand j'ai fait mon truc plus haut que sa ma mit l'erreur j'avez pourtant bien mention le mec

burnt perch
#

essaye celui la

weak grove
#

le code ?

burnt perch
#

ce n'est pas la même

#

oui

weak grove
burnt perch
#

bah oui

#

ta mention 2 fois

#

!accept @burnt perch

weak grove
#

nn même en mention qu'une fois

burnt perch
#

ta laisser le if (message.content.startsWith(!accept)) {} ?

weak grove
#

oui il est plus haut

burnt perch
#

bah bizzare moi ça marche

weak grove
#

oui pareil

#

mais ya certain membre non

burnt perch
#

euh bizare

#

bah jvoi pas pk ça marche pas pour le coup

oak turret
#

attend tu veux faire un système de vérif ?

#

quand quelqu'un arrive ?

weak grove
#

nn en gros j'aimerais que un webhook execute une commande dans un channel invisible a tlm a pars mon bot ensuite mon bot récupére la commande du webhook donc "accept 283315291986067457" et met un role a l'id discord sauf que moi sa marche et certaine personne aussi mais certaine personne non

oak turret
#

oulaaaaa

#

chelou

#

ça casse où ?

weak grove
#

au moment du add role

#

quand je met l'id d'un mec random et bah sa met une erreur sa me dit que addRole est undefined

oak turret
#

addRole oui normal

#

c'est .add("id du grade")

weak grove
#

je suis sur discord js 11.5

oak turret
#

ah autant pour moi

#

do,c

#

args[2] = id de l'user ?

weak grove
#

yes

oak turret
#

t'as essayé log un peu tout ?

weak grove
#

même quand je met manuellement sa me met undefned

#

yep sa fonctionne très bien

oak turret
#

donc ça fonctionne pas sur certaines personnes juste

weak grove
#

oui

oak turret
#

mais pourquoi t'utilises un webhook ? je comprends pas trop ton système

weak grove
#

pour que le web envois une requete a discord mais sa sa marche bien c'est le addrole

oak turret
#

aah okay, je vois bah alors là je connais pas du tout addRole donc relou ce problème

weak grove
#

ouais 🤔

spring dock
#

Pourquoi tu fait pas la requête via ton site directement ?

burnt perch
#

un webhook ?

#

oui c'est ce que je me disait

weak grove
#

c'est à dire ?

#

ont peux ajouter un role depuis le site ?

spring dock
#

A moins que j'ai pas bien compris ce que tu essaye de faire mais la si je comprends bien t'essaye de faire un truc un peu bizarre 🤔

#

Bah oui c'est juste une requête à l'api de discord

#

comme un bot ferait via discord.js

burnt perch
#

bah engros tu uses ton bot directement à partir du site

#

sans use de webhook

#

si c'est bien ce que à voulu dire bob

spring dock
#

Yep

weak grove
#

franchement j'ai aucune idée comment je pourrais modif mon webhook pour add un role

burnt perch
#

bah tu l'utilises pas

#

engros tu fais un bot tout ce qui à de plus normal

#

sauf sur ton site

spring dock
#

Tu fait une requête à l'api de discord sur la route du add role avec les différents paramètres requis et tu utilise le header "Authorization" pour te "connecter" avec ton bot

weak grove
#

sur une page php ?

spring dock
#

Oui

burnt perch
#

un webhook pour faire des commandes c'est pas trop ça à la limite pour envoyer des infos mais pas plus

oak turret
#

Hello, j'essais de récup les réactions d'un embed, mais je n'y arrive po, si vous avez des soluces, je vois pas comment faire depuis un guildMemberadd

j'ai essayé de log reaction, y a "emojis" mais pareil c'est pas ça que je veux, du coup je sais pas trop comment faire xd

slim anvil
#

tu veux faire quoi exactement

oak turret
#

get où l'user réagis, et faire des conditions en fonction de sa réaction

slim anvil
#

mais pourquoi au guildMemberAdd alors ?

oak turret
#

car quand quelqu'un arrive il est "en attente de validation", et seulement après validation de l'user ( par la réaction ✅ ) ça lui enlève le grade et il a accès au serveur, sinon il est kick

slim anvil
#

oui mais tu dois faire ca au reactionAdd

#

pour trigger l'ajout d'une reaction sur un message deja existant

#

tu pourras pas use les collector reaction ou autre la du coup donc l'event reaction add

oak turret
#

Ah ! Donc à partir de l'envoi de l'embed ( inclus ) je mets ça dans reactionAdd ?

slim anvil
#

Ahhh mais c'est au staff de valider l"utilisateur ?

#

Du coup si tu veux, tu peux envoyer ton message si, et a l'envoie utiliser le awaitReactions ou collectorReactions (je sais plus le nom pr le deuxieme)

burnt perch
#
var message = await msg.channel.send(embed);
var tabEmoji = ['🐲', '🪄', '🪙'];

        message.awaitReactions(r => tabEmoji.includes(r.emoji.name), { max: 1 })
            .then(collected => {
                let r = collected.first();
                switch (r.emoji.name) {
                    case '🐲':
                        // ce que tu veux faire si on réagie avec cette emoji
                    break;
                }
            })
            .catch(console.error);

PErso je fait comme ça désolé de te couper Enzo

slim anvil
#

comme ca tu peux meme faire en sorte d'avoir un timer et si pas accepté au bout de 10 minutes hop tu l'acceptes auto ^^

#

yes voila le truc au dessus

#

je pensais que tu voulais une reaction de la part du mec qui join

oak turret
#

Non du coup ! Et Merci à vous ! Loc du coup je le remplace dans mon guildmemberAdd ?

burnt perch
#

non dans un

client.on("message", async msg => { 

})
#

hein mince

oak turret
#

euh mais comment tu veux que je relie les deux ?

#

du coup ahah ?

burnt perch
#

désolé

#

ok javai pas capter le contexte

#

euh oui oui il faut que ce soit une fonction async c'est tout

#

sorry

oak turret
#

okay ! je test !

#

car là il a l'air de détecter direct les réactions, et pas une réaction d'un user et pas du bot

burnt perch
#

bah quand tu réagis avec oui normal

oak turret
#

bah j'ai pas réagi du coup xD

#

c'est ça le pb

burnt perch
#

heinnnn okk att je look

oak turret
#

dès qu'il envoie l'embed il m'envoie le "ok"

burnt perch
#

met le max à 2

#

et test

oak turret
#

jtest ça

burnt perch
#

enfin je pense pas mais on va faire par deduction

oak turret
#

pareil

slim anvil
#

le await reaction fonctionne avec un timer je crois

#

utilise le colector

#

collector

oak turret
#

euh alors je connais pas du tout

burnt perch
#
var message = await msg.channel.send(embed);```
toi ton async est sur message alors qu'il devrait là ou y'a ton client.on par  exemple genre ça : 
```javascript
client.on("message", async msg => { 

})```
mais avec le truc dont tu as besoin 
je ne suis pas sur à 100% mais je ne voit que ça
#

@oak turret

oak turret
#

je comprends pas, c'est l'event guildMemberAdd moi, et mon (member) est en async mais je capte pas là

burnt perch
#

bah engros la diff c'est que l'équivalent de message chez moi on a "await" avant et toi " async" c'est la seule diffèrence

#

donc ça doit surment venir de là

#

je pense

oak turret
#

donc je suis censé faire quoi ? xd

slim anvil
#

Lartaxx ton screen fonctionne pas

#

car tu await pas tes message.react

burnt perch
#

yes

slim anvil
#

donc il prend la premiere reaction du bot

#

comme une reaction

oak turret
#

ah donc je await mes message.react() okay my bad

burnt perch
#

oui javai pas vue

#

my bad aussi mdr

oak turret
#

ah bah yes

weak grove
#

re, ducoup j'ai trouver l'erreur du problème sauf que l'erreur est bizzard, en gros
client.users.get( args[2] ) récupére uniquement les infos du mec quand il est connecter dans un salon vocal mais j'aimerais le get même si il 'nest pas co
comment pourrais-je faire ??

burnt perch
#

ah bon

#

euh normalement non att

#

mais ducoup att tu ne le fait pas avec une mention ?

weak grove
#

ahh je vais tenter

burnt perch
#

c'était juste une question mais ducoup j'en déduis que non mdr

#

ok mais ce qui me semble bizzare que ce soit uniquement les gens en voc perso j'avait test tout à l'heure ça aller bien

#

mais c'est quoi ton event de base ?

weak grove
#

c'est une simple commande

burnt perch
#

non pas ça

#
client.on("message", async msg => { 

})```
#

genre ça

weak grove
#

client.on('message', (message) => {

});

burnt perch
#

et ça récupère que les gens en voc ?

#

bizzare

weak grove
#

ouais le reste sa passe en undefined

burnt perch
#

ça me parait bizzare il doit y avoir un autre truc dont je suis pas au courant car là je voit pas...

#

client.fetchUser(args).then(user => {
            // Got the user!
            message.channel.send('Found user: ' + user.tag
            + '\nAvatar: ' + user.displayAvatarURL);
        }).catch(() => {
            // User not found
            message.channel.send('Could not find user with the given ID.');
        });

bn j'ai fait une petite recherche finnalement car ça me tracasse ton truc essaye avec ça pour le coup le code ne vient pas de moi donc pas sur que sa marche
Mais engros regarde si sa marche même avec les gens pas dans des channel vocal

oak turret
#

Re ! Comment je peux get les datas de ça ? car je connais pas trop les Collections ? Merci :))

glass gate
oak turret
oak turret
#

Yop ! Pour un système de "setup" j'ai pensé à une bdd à la place du json logique, mais je sais pas lequel car j'aurais qu'un truc quoi "is_setup" et donc je sais pas lequel serait le plus rapide et simple à faire, si vous avez des idées, ça serait cool ^^

slim anvil
#

setup dequoi

oak turret
#

en gros, si tu veux là ça envoie des message dans des channels prédéfinis, seulement j'aimerais laisser le choix aux users de choisir leurs propres channel, pour la validation quoi, et donc bah le faire qu'une fois, ou je sais pas si c'est la meilleure des choses à faire, je cherche des conseils ^^

slim anvil
#

donc ils peuvent choisir qu'un seul channel ?

#

c'est pas 1 par commande ?

oak turret
#

Nop en gros t'as la validation par les staffs du coup, et ce channel là bah il peut être choisi, et le bot enverra les messages de validations dedans pour que les users soient validés ou pas

#

mais du coup le laisser variable je pense que c'est mieux

slim anvil
#

yes mais du coup enregistre juste l'id du channel qui a été choisit dans un channelSetup

timid loom
#

je vois pas pourquoi t'as besoin d'utiliser une bdd

slim anvil
#

c'est peut etre use sur pleins de bot

#

enfin pleins de serveur

#

si il aime pas trop le json

timid loom
#

ouais ok

oak turret
#

yes, et oui du coup pour pleins de serveurs je compte le mettre en public, et du coup ouais le json mais seulement c'est delete si le bot est restart

#

mais du coup pouvoir changer le channel quand on veut c'est mieux je pense non ?

slim anvil
#

bah le json non c'est pas delete si tu restart

#

ce sera dans ton fichier json

#

Oui a toi de voir

oak turret
#

bahh, là actuellement quand je restart il revient à false quoi ?

slim anvil
#

par contre tes conditions if (is_setup == false) etc ça sert a rien tu peux juste if (!is_setup) ou l'inverse

timid loom
#

bah il faut réécrire ton fichier json évidemment

slim anvil
#

Bah non si c'est save dans un fichier json

#

il va venir le lire

oak turret
#

oauip mais c'était juste pour tester ça, ah yes donc je suis censé faire comment du coup ?

timid loom
#

bah fs.writeFile(...) etc

slim anvil
#

Bah tu crées un json et tu écris dedans

oak turret
#

ah okay fs my bad

slim anvil
#

je sais pas t'es le premier a blamer json quand les gens l'utilise mais finalement tu l'as jamais utilisé ? 😂

timid loom
#

pour le coup écrire un fichier json y a rien de compliqué

oak turret
#

bah pas écrire dedans juste changer les values dedans, après on m'a dit de pas stocker et tout dedans même si y a rien de ouf là mais oui du coup je l'utilise pas souvent à part pour les config ^^

#

et je blame pas json ?

slim anvil
#

bah pour changer les values dedans tu dois bien écrire dedans
bah si c'est pour stocker 5 channel ca craint rien

sisi je t'ai deja vu dire de pas use json et de faire du sql ou autre 👀

#

mais c'est pas le sujet

timid loom
#

bah pas écrire dedans juste changer les values dedans, après on m'a dit de pas stocker et tout dedans même si y a rien de ouf là mais oui du coup je l'utilise pas souvent à part pour les config ^^
@oak turret tu peux faire de la config "dynamique" et tant que ça a pas une taille monstrueuse ton fichier c'est ok

oak turret
#

yes mais du coup oui pour des trucs précis par pour des trucs comme le mien ouais, et yes juste de la config de base j'use mais merci les mecs ^^

timid loom
#

bah la config dynamique c'est carrément ton cas de figure

#

ou alors j'ai vraiment pas compris ce que tu veux faire

oak turret
#

ah mais ce que je voulais faire yes, mais là du coup je vais le laisser variable le channel, mais ma config du bot genre token et prefix quoi c'est de ça que je parlais que j'use actuellement

slim anvil
#

tu peux carrément use t'auras pas masse d'utilisation de ton json généralement une fois que c'est setup ils vont pas le changer chaque seconde

#

oui mais meme variable tu peux

#

tu as juste a rewrite ton fichier json de data

oak turret
#

oauip c'est sûr, mais au cas-où ça offre une liberté enfin je peux toujours changer après ^^

slim anvil
#

tu as ton JSON pour ta config, que tu peux passer en .env d'ailleurs ausi

#

et ton JSOn de data

oak turret
#

oauip aussi, bah je vais voir ça, merci les mecs !

weak grove
#

bonjour je suis passez en discord js 12.4.1 et mes embed ne fonctionne plus sa me met une erreur :
(node:1273024) UnhandledPromiseRejectionWarning: TypeError: fields.flat is not a function
const embedss = new Discord.MessageEmbed().setColor('#ff0000').setTitle('test').setDescription('tttttt').setFooter('rdsfsdf');

oak turret
#
const embed = new Discord.MessageEmbed()
  .setColor("couleur")
  .setDescription("tata");
message.channel.send(embed);
weak grove
#

sa marche toujours pas 🤔

#

node:1274210) UnhandledPromiseRejectionWarning: TypeError: fields.flat is not a function

oak turret
#

fileds.flat way

dire latch
#
const { MessageEmbed } = require("discord.js");

const embed = new MessageEmbed()
  .setColor("couleur")
  .setDescription("tata");
message.channel.send(embed);```
#

Nan 🤔

oak turret
#

bah si t'as

weak grove
#

non plus

oak turret
#

bah t'as

#

const Discord = require('discord.js');

#

?

weak grove
#

déjà mit

dire latch
#

C'est quoi ton code complet ?

oak turret
#

montre + ton code

weak grove
#
client.on('message', (message) => {
    let content = message.content;
    let args = content.split( " " );
    if ( content.startsWith( "!update" ) ) {
        var guild = client.guilds.cache.get('470897860473389066');
        let utilisateur = message.mentions.members.first();
        if (!args[1]) {
            client.channels.get("727155213718388807").send('Attention ! Erreur de syntaxe dans l\'API !')
        }else{
            if(message.channel.id == "578904930757115914"){
                message.channel.send(embed);
            }
        }
    }
});
dire latch
#

Ya pas d'embed dedans 🤔

weak grove
#
const { MessageEmbed } = require("discord.js");
const embed = new Discord.MessageEmbed()
.setColor("couleur")
.setDescription("tata");
#

plus haut ya sa

#

même dans le code ya pas

oak turret
#

client.channels.get("727155213718388807").send('Attention ! Erreur de syntaxe dans l'API !') pas censé fonctionner ça y pas le .cache si t'es en 12 si je me trompe po

dire latch
#

Ah mais normal que sa fonctionne pas mdr

weak grove
#

yep j'ai pas modif sa d'ailleurs

#

?

oak turret
#

ah bah oui

weak grove
#

je suis passé de v10 a v12

dire latch
#
const { MessageEmbed } = require("discord.js");

client.on('message', (message) => {
    let content = message.content;
    let args = content.split( " " );
    if ( content.startsWith( "!update" ) ) {
        var guild = client.guilds.cache.get('470897860473389066');
        let utilisateur = message.mentions.members.first();
        if (!args[1]) {
            client.channels.cache.get("727155213718388807").send('Attention ! Erreur de syntaxe dans l\'API !')
        }else{
            if(message.channel.id == "578904930757115914"){
                 const embed = new MessageEmbed()
                .setColor("couleur")
                .setDescription("tata");
                message.channel.send(embed);
            }
        }
    }
});```
#

Il me semble

oak turret
#

oui

#

il faut que ton embed soit dans ta condition

#

fin là où tu veux l'utiliser

#

sinon il connait pas

#

normal

dire latch
#

Yes

weak grove
#

nop

#

(node:1277153) UnhandledPromiseRejectionWarning: TypeError: fields.flat is not a function

dire latch
#

Hm, tes sûr que sa vient de ça ?

#

Ta rien d'autres ?

weak grove
#

je pense que sa viens de la version du node js

dire latch
#

Essaye de mettre à jour

weak grove
#

j'suis a jour

#

12.4.1

dire latch
#

/bot_discord/recrutement/index.js:79:33

#

C'est quoi à la ligne 79 ?

weak grove
#

ya rien

dire latch
#

Comment ça ?

weak grove
#

c'est vide

dire latch
#

Ah

keen narwhal
#

@slim anvil

plain crystal
#

Met Node.JS

#

@keen narwhal

keen narwhal
#

ok

oak turret
#

Hello, j'ai pas d'erreur mais il n'écrit pas dans mon fichier ( je voulais test cette méthode) il n'écrit pas et n'éxécute pas mon code après, j'ai chercher sur internet mais rien de très intéressant, pareil avec un writeFile()

idle ice
#

Si tu lui cale un .catch il te ressors rien?

oak turret
#

nop c'est good fs boudait, mais il me boude plus ! xD

burnt perch
#

quel enfoiré ce fs...

oak turret
#

il est assez colérique 😮

dire latch
#

Hey, c'est pas comme ça pour find un salon ? 🤔

let tickets = msg.guild.channels.cache.find(ch => ch.name === `ticket-${msg.author.id}`);

Ou je suis devenu null 😦 mdrr

oak turret
#

message.channel.name.startsWith() sinon

dire latch
#

Ba nan

#

C'est un système de ticket, donc sa va pas créer son ticket

oak turret
#

bah tu veux faire quoi là

#

t’as dis find un salon ?

dire latch
#

Oui

#

Si le salon ticket-iddumec existe ou non

oak turret
#

bah avec startsWith tu peux

#

startsWith(ticket-de-${message.author.id})

#

et de là if(ticket) {} else {}

#

comme Enzo avait fait pour mon cas

slim anvil
#

ca revient au meme le startsWith ou ===

oak turret
#

oui c’sur

slim anvil
#

car lui si il set le nom a ticket-xxxx

#

il peut vérifier que ca soit égale aussi

#

(dans son cas)

oak turret
#

yes

slim anvil
#

c'est quoi le soucis duck ?

#

ca te renvoie quoi

dire latch
#

Ba en gros

#

J'essaye de find un salon nommer ticket-iddumec

#

Si le salon est trouver = erreur

#

Sinon

#

Sa fais son ticket

#

J'ai toute la partie de création de ticket mais pas pour find le salon @slim anvil

oak turret
#

bah if(ticket) {} else {} non ?

#

si il le connait genre

dire latch
#

ticket ?

slim anvil
#

Oui mais ca te renvoie quoi actuellement ticket

dire latch
#

Et tu le définis comment ton ticket ? mdrr

slim anvil
#

c'est ça ma question

oak turret
#

non mais ticket = code pour find ton salon que t’as mis au-dessus

dire latch
#

Ba rien @slim anvil

oak turret
#

log le?

dire latch
#

undefined

slim anvil
#

et il existe ou pas en vrai ?

oak turret
#

donc il le trouve pas

slim anvil
#

il est censé existé ou non

dire latch
#

Oui @slim anvil

slim anvil
#

okay juste pour voir ce que ca te retourne

msg.guild.channels.cache.find(ch => console.log(ch.name));
#

voir si ca te retourne tout bien ou non

dire latch
#

Il est là

slim anvil
#

okay met la juste en await pour voir

#

il doit passer a la suite avant d'avoir terminé

dire latch
#

Ah donc je met ceci à la fin ?

slim anvil
dire latch
#

Nan mais je sais

#

Mais je parle, je met à la fin du code ? J'ai pas compris ta phrase

oak turret
#

recopie ce qu’as dis enzo

dire latch
#

Nan mais je suis pas con omg

oak turret
#

bah ??

slim anvil
#

bah je comprend pas ta question

dire latch
#

Je demande juste, car j'ai pas compris sa phrase

slim anvil
#

tu met quoi à la fin

dire latch
#

"il doit passer a la suite avant d'avoir terminé"

slim anvil
#
const ticket = await msg.guild.channels.cache.find(ch => ch.name === `ticket-${msg.author.id}`)
dire latch
#

Oui sa j'avais compris

slim anvil
#

Bah en gros il attend pas la fin de la boucle pour passer à la suite, donc du coup surement que ton ticket doit encore etre undefined

#

je suis pas sur mais testons

dire latch
#

Ah nan

#

Je fais le find

#

Puis si find = trouver = erreur

#

Puis le code si il trouve pas plus bas

slim anvil
#

??

dire latch
#

Ba en gros

slim anvil
#

j'ai compris ce que tu cherches à faire

dire latch
#
const ticket = await msg.guild.channels.cache.find(ch => ch.name === `ticket-${msg.author.id}`);
if (ticket) return msg.channel.send("error");

// CODE CREATION DU CHANNEL TICKET
slim anvil
#

je comprend juste pas pourquoi tu me balance ca

#

yes yes

dire latch
#

Pour le await

#

Car il cherche avant donc le await est vraiment utile 🤔

slim anvil
#

c'est tjrs pas good ?

dire latch
#

Ba nan

#

😦

slim anvil
#

devrait pas y en avoir besoin effectivement car c'est dans le cache ouais mais le fidn est bon pourtant

dire latch
#

Yes

#

Bon ba je vais me pendre ducoups 🤷‍♀️

slim anvil
#

mais quand tu log ticket il est tjrs undefined ? 🤔

dire latch
#

Yes

#

Tjr

slim anvil
#

je test j'ai 0 soucis 🤔

dire latch
#

-__-

#

C'est quoi mon soucis là

slim anvil
#

par curiosité, bien en v12 ? version de node aussi minimum 12?

dire latch
#

11.5.0

#

Mais sa vient pas de ça

slim anvil
#

bah le cache

#

c'est dans la v12

#

pas la 11

#

🤔

#

ou c'est node qui est a 11.5 ?

dire latch
#

Ba