#javascript-typescript

1 messages · Page 96 of 1

neat lintel
#

ou tous écrire mais c'est chiant

#

la ta commande elle apparait pas sur discord ?

fading glacier
#

Pour le début pour tester tu peux le faire à la main

clear crater
fading glacier
#

Après comme l’a dig Smaug tu pourras faire un handler (cherche command handler et event handler discord.js v13 sur internet)

clear crater
#

D'accord

neat lintel
#

en vrai pas besoins d'en prendre un sur internet, si tu veux le faire a la main autant le faire avec fs et sinon utiliser un framework comme #sheweny-js

fading glacier
#

J’allais le dire rip chui trop lent

trail trellis
#

Hey comment je peu rajouter des information custom a une request mysql en nodejs pcq si je remplace "" par `` sa couille par tout

merci d'avance

clear crater
#

Bonsoir moyen de m'aider à nouveau voilà mon code et mon erreur est Unexpected token '??='

neat lintel
#

mets a jour nodejs

#

16.6.0 au minimum

clear crater
#

Merci

clear crater
neat lintel
#

kick ton bot et réinvites le avec le scope application.commands

clear crater
#

Toujours pareil alors que je viens de le refaire

neat lintel
#

vérifie le serveur, le bot, et que tu l'as invité correctement.

clear crater
#

D'accord

#

Et malheureusement toujours la même

neat lintel
#

de toute facon ca peut venir que de la, vérifie aussi l'id de la guild dans le code

clear crater
#

Ah bah je comprend pas tout est bon pourtant j'ai bien reverif

fading glacier
red torrent
#

Ton bot est peut-être mal invité sur un autre serveur (sans le scope applications.commands)

fading glacier
#

Je me suis dit la même chose mais ça ne peut pas être ça, il précise bien le serveur sur lequel il ajoute les commandes

dire latch
#

@clear crater tu as mis guilddId au lieu de guildId

glass cargo
#

Bonjour, j'ai une erreur bizarre, je ne sais pas pourquoi :/

const mongoose = require("mongoose");

module.exports = async (client) => {
    const mongoOptions = {
        useNewUrlParser: true,
        autoIndex: false, // Don't build indexes
        family: 4, // Use IPv4, skip trying IPv6
        useUnifiedTopology: true
    };
    mongoose.connect(client.config.mongooseConnectionString, mongoOptions)
    .then(() => {
        setTimeout(() => {
            console.log("Connecté à MongoDB !".bgGreen);
            client.channels.cache.get(client.config.botlogs).send("**" + client.e.online + " ➜ Base de données connectée !**")
        }, 1500)
    })
    .catch((err) => {
        console.log(`MongoDB déconnecté : ${err}`.bgRed)
        client.channels.cache.get(client.config.botlogs).send("**" + client.e.offline + " ➜ Une erreur est survenue lors de ma connexion à la base de données !**")
    })
    console.log(typeof client.commands)
}

erreur :

TypeError: require(...) is not a constructor
inner escarp
#

Commence par vérifier que tu as bien installé mongoose

#

Si c'est le cas, essaye de mettre let à la place de const

fading glacier
#

ça ne changera rien, si il n'avait pas installé mongoose ça le lui dirait même si oui il peut vérifier. Après mettre let à la place de const ne change rien non plus à part que let tu peux modifier la valeur après

inner escarp
#

Oui je viens d'y penser mais à moins qu'il n'utilise pas NodeJs ou alors qu'il ait redéfini la fonction require je ne sais pas d'où ça vient 🤔

fading glacier
#

tu le require non ?

inner escarp
#

Sinon tu peut utiliser la syntaxe import from

livid kettle
#

Hey ! J'ai un petit problème avec discord.js v12 : Je veux que quand un message est envoyé dans un channel spécifique, le message soit renvoyé dans un autre.
Quand j'envoie le message dans le salon adéquat.
(discord.js n'est pas une librairie que j'utilise très fréquemment)

#

Voici le code :

const config = require('./config.json');
const channelID = config.receiveChannel;
const x = config.sendChannel;

client.on('message', async (message) => {
    if (!message) return;
    if (!message.guild) return;
    if (message.channel !== channelID) return;
    if (message.author.bot) return;
    if (message.author.id == client.user.id) return;

    const embed = new MessageEmbed()
    .setAuthor(`${message.author.username}#${message.author.discriminator}`)
    .setDescription(`${message.content}`)
    .setTimestamp();

    try {
        x.send(embed)
    } catch (error) {
        console.log(error)
    }

})
sharp grail
#

alors 👀

#

tu essayes de comparer un object channel avec un snowflake (id) x)

#

de plus, tu tentes de send un message dans un channel alors que x est certainement un string 👀

glass cargo
fading glacier
#

Non le fichier pour te connecter a ta db

#

Tu le lance comment ?

glass cargo
#

J’ai intégré la fonction dans mon évent ready

fading glacier
#

Montre justement comment

livid kettle
sharp grail
#

si

#

tu dois le fetch

#

ou le get en cache 👀

livid kettle
#

Ouai c'est ce que je me disais

#

Merci de ton aide !

desert riverBOT
#

:_: Client#channels
All of the Channels that the client is currently handling, mapped by their ids - as long as sharding isn't being used, this will be every channel in every guild the bot is a member of. Note that DM channels will not be initially cached, and thus not be present in the Manager without their explicit fetching or use.

livid kettle
#

Bon.... j'ai fais comme tu m'as dis mais toujours rien. Voilà ce que j'ai changé :

    client.guilds.cache.get(`924220151245713428`).send(suggEmbed)
#

@sharp grail :c

coarse trench
#
client.guilds.cache.get(`924220151245713428`).channels.cache.get('channel-id').send(suggEmbed)```
#

On send dans un channel pas dans un serveur

livid kettle
coarse trench
#

erreur ?

livid kettle
#

Même avec un console.log

coarse trench
#

bah ton code marche pas ?

#

Montre ?

livid kettle
bold sparrow
#

Coucou, j'obtiens une petite erreur en compilant mon TS ( DJS 13.4.0 )

neat lintel
#

si c'est les types de djs le problème, ce qui arrive souvent, ajoutes ca au tsconfig.json : "skipLibCheck": true

bold sparrow
#

Re 👀 , la méthode add a été dégagée pour GuildMemberRoleManager ?

#

Sur la doc elle existe, dans mon code non

sharp grail
#

manifestement, la méthode add existe toujours dans le code 🤔

#

[v13.4]

bold sparrow
#

Je suis d’accord, mais typescript me dit que ça existe pas

coarse trench
#

Bonjour, rien ne se passe dans mon interactionCreate quelqu'un sait pk ?

keen narwhal
#

Bonjour

#

je voudrais faire en sorte que dans mon select menu quand les utilisateur clique sur le truc dev sa envoi un message d'erreur disant qu'il ne peuvent pas, savez vous comment faire ?

oak turret
#

bah c’est simple

#

dans ton event interactionCreate

#

tu check si ton interaction est un selectMenu avec « interaction. isSelectMenu() »

#

et après tu fais un coup de interaction.deferUpdate() et ensuite tu fais un coup de interaction.reply({content: "Erreur", ephemeral:true})

keen narwhal
#

Bonjour, j'ai cette erreur mais je ne sais point d'où sa vient. Possible de m'aidais s'il vous plaît ?

C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\rest\RequestHandler.js:349
      throw new DiscordAPIError(data, res.status, request);
            ^

DiscordAPIError: Invalid Form Body
message_reference: Unknown message
    at RequestHandler.execute (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\rest\RequestHandler.js:349:13)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async RequestHandler.push (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\rest\RequestHandler.js:50:14)
    at async TextChannel.send (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\structures\interfaces\TextBasedChannel.js:172:15) {
  method: 'post',
  path: '/channels/921901747843268618/messages',
  code: 50035,
  httpStatus: 400,
  requestData: {
    json: {
      content: undefined,
      tts: false,
      nonce: undefined,
      embeds: [
        {
          title: 'Toutes les commandes du bot',
          type: 'rich',
          description: 'Voici toutes les commandes du bot',
          url: null,
          timestamp: 2021-12-26T21:25:55.590Z,
          color: 15335679,
          fields: [ [Object], [Object], [Object], [Object], [Object] ],
          thumbnail: {
            url: 'https://cdn.discordapp.com/avatars/885275695104806952/412822a6f0e69ba42ff72ae266d74a12.webp',
            proxyURL: undefined,
            height: undefined,
            width: undefined
          },
          image: null,
          author: null,
          footer: {
            text: '!   ZΞNCH',
            icon_url: 'https://cdn.discordapp.com/avatars/610798050704752643/be9101596a951afc51d5618e0f14976a.webp'
          }
        }
      ],
      components: undefined,
      username: undefined,
      avatar_url: undefined,
      allowed_mentions: undefined,
      flags: 0,
      message_reference: { message_id: '924775058461835285', fail_if_not_exists: true },
      attachments: undefined,
      sticker_ids: undefined
    },
    files: []
  }
}
fading glacier
#

Avec un <Message>.reply par exemple

keen narwhal
#

Salut j'ai un problème j'essaye de logger quand un membre rejoint et quitte un serveur mais ça ne marche pas, voici mon code :

neat lintel
#

tu as mis l'intent GUILD_MEMBERS et la partial MEMBER ?

keen narwhal
#

Ah j'ai mis guild members

#

la partial member ? C'est quoi

neat lintel
#

les partials c'est pour déclencher des évents si certaines données ne sont pas en cache et que du coup les structures sont incomplètes

keen narwhal
#

euh ok

#

Ah ben ça marche maintenant :D

#

Merci

neat lintel
#

de rien

keen narwhal
#

Et si jamais je veux transformer ça en message embed, je peux ?

neat lintel
#

oui bien sur

keen narwhal
#

Moi j'ai appris les embed avec des commandes donc bon x)

neat lintel
#

juste pour envoyer ce sera send({embeds: [tonEmbed]}), tu peux envoyer 5 embeds max par message

keen narwhal
#

ah d'accord merci

#
bot.on("guildMemberAdd", member => {
    const embed = new Discord.MessageEmbed()
                .send({ embeds: [
                    .setTitle("Aller au message")
                    .setColor("BLUE") // Renvoie une couleur, en loccurence bleu
                    .setURL(message.url) // Renvoie le lien du message
                    .setDescription(message.content) // Renvoie le contenu du message
                    .setAuthor(message.author.tag) // Renvoie le pseudonyme de l'auteur du message
                    .setTimestamp() // Donne la date à la quelle s'est passé l'event
                    .setFooter(message.author.id) // Renvoie l'ID de la personne ayant poster le message
                ] })
}`)```
#

ah x)

neat lintel
#

alors faut définir ton embed dans l'array mais si c'est plus simple pour toi, fais en 2 fois:

const embed = new Discord.MessageEmbed().setX().setY()

.send({ embeds:[embed] })
keen narwhal
#

C'est quoi setX et setY ?

neat lintel
#

c'est tes setTitle, setDescription etc

#

j'ai pas tous recopié mais toi tu mets ce que tu avais mis au dessus

keen narwhal
#

ah d'(accord ok

neat lintel
#

après bien sur faut laisser ce que tu avais mis avant le .send

keen narwhal
#
bot.on("guildMemberAdd", member => {
    const embed = new Discord.MessageEmbed()
                .setTitle("Aller au message")
                .setColor("BLUE") // Renvoie une couleur, en loccurence bleu
                .setURL(message.url) // Renvoie le lien du message
                .setDescription(message.content) // Renvoie le contenu du message
                .setAuthor(message.author.tag) // Renvoie le pseudonyme de l'auteur du message
                .setTimestamp() // Donne la date à la quelle s'est passé l'event
                .setFooter(message.author.id) // Renvoie l'ID de la personne ayant poster le message
                .send({ embeds: [embed] })
})```
#

ça ne marche po :(

neat lintel
#

le .send appartient pas au message embed

#

c'était bien ce que tu avais fais pour le send en premier

keen narwhal
#

Ah

#
    const embed = new Discord.MessageEmbed()
                .setTitle("Aller au message")
                .setColor("BLUE") // Renvoie une couleur, en loccurence bleu
                .setURL(message.url) // Renvoie le lien du message
                .setDescription(message.content) // Renvoie le contenu du message
                .setAuthor(message.author.tag) // Renvoie le pseudonyme de l'auteur du message
                .setTimestamp() // Donne la date à la quelle s'est passé l'event
                .setFooter(message.author.id) // Renvoie l'ID de la personne ayant poster le message
                .send(`${member.user.username} a rejoint le serveur`)
}) ```
Je crois que c'est comme ça mlais qu'il faut juste que je bouge le .send ?
keen narwhal
#
    bot.channels.cache.get("915655922389487616").send({embeds: [
        
    ]})
})```
#

Comme ça ?

neat lintel
#

oui

#

et la dans embeds tu mets ton embed

keen narwhal
#

Et bien c'est ce que j'ai fais

neat lintel
#
bot.on("guildMemberAdd", member => {
    const embed = new Discord.MessageEmbed()
                .setTitle("Aller au message")
                .setColor("BLUE") // Renvoie une couleur, en loccurence bleu
                .setURL(message.url) // Renvoie le lien du message
                .setDescription(message.content) // Renvoie le contenu du message
                .setAuthor(message.author.tag) // Renvoie le pseudonyme de l'auteur du message
                .setTimestamp() // Donne la date à la quelle s'est passé l'event
                .setFooter(message.author.id) // Renvoie l'ID de la personne ayant poster le message
    bot.channels.cache.get("915655922389487616").send({embeds: [embed]})
})
keen narwhal
#

🤔

neat lintel
#

toi tu avais mis le .send après le setFooter

keen narwhal
#

alors la

#

ah

#

Merci hein

keen narwhal
neat lintel
#

le message oui

#

vu que cette variable existe pas

#

mais pas le member

keen narwhal
#

oui j'ai changé par client

#

je crois que faut mettre member

#
bot.on("guildMemberAdd", member => {
    const embed = new Discord.MessageEmbed()
                .setTitle(`<@${message.author.id}> a rejoint le serveur`)
                .setColor("BLUE") // Renvoie une couleur, en loccurence bleu
                .setAuthor(member.author.tag) // Renvoie le pseudonyme de l'auteur du message
                .setTimestamp() // Donne la date à la quelle s'est passé l'event
                .setFooter(member.author.id) // Renvoie l'ID de la personne ayant poster le message
    bot.channels.cache.get("915655922389487616").send({embeds: [embed]})
})
#

J4ai mis ça

neat lintel
#

tu as pas accès a message pour le setTitle

keen narwhal
#

ah oui mince

#

Sinon c'est bon ?

neat lintel
#

author c'est pour les messages

#

et pareil pour le setAuthor, member.author => member.user

keen narwhal
#

et title aussi du coup ?

#

setTitle

neat lintel
#

oui

keen narwhal
#

RangeError [EMBED_AUTHOR_NAME]: MessageEmbed author name must be a string.

#

Ah c'est bon j'ai trouver

#

Ah mais

#

ça me renvoie @keen narwhal a rejoint le serveur et pas @keen narwhal a rejoint le serveur

keen narwhal
#

C'est bon j'ai réglé mes soucis

keen narwhal
#

Re, bon cette fois ci 'arrive pas à logger quand qqn quitte le serveur, voici mon code

#
    const embedLeave = new Discord.MessageEmbed()
                .setColor("RED") // Renvoie une couleur, en loccurence bleu
                .setAuthor('Un membre vient de quitter le serveur !') // Renvoie le pseudonyme de l'auteur du message
                .setDescription(`${member.username}, a quitté le serveur`)
                .setImage(member.avatar)
                .setTimestamp() // Donne la date à la quelle s'est passé l'event
                .setFooter(member.id) // Renvoie l'ID de la personne ayant poster le message
    bot.channels.cache.get("915655922389487616").send({embeds: [embedLeave]})
})
#

J'ai pas de message d'erreur

neat lintel
#

tu as bien mis la partial MEMBER déja ?

keen narwhal
#

Intents.FLAGS.GUILD_MEMBERS ?

neat lintel
#

non la partial en dessous

#
partials: ["MEMBER"]
#

et pour le setImage mets plutot .setImage(member.user.displayAvatarURL()). Member.avatar contiendra un hash de l'avatar

keen narwhal
#

Je vois pas ce que c'est le partial

neat lintel
#

t'en occupes pas trop, mets le juste c'est un peu compliqué a expliquer comme ca mais c'est des check a l'intérieur de la lib rapport a de la mise en cache de données

keen narwhal
#

Je l'ai mis mais pas au bon endroit je crois

#

({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_MEMBERS], partials: ["MEMBER"] }); ?

neat lintel
#

oui c'est bon

keen narwhal
#

Ah ok

#

Le message ne s'affiche toujours pas 🤔

neat lintel
#

tu as une erreur ?

keen narwhal
#

c'est bien guildmemberRemove ?

#

Non j'en ai pas

neat lintel
#

guildMemberRemove

#

en camelCase

keen narwhal
#

Oui oui

neat lintel
#

member.username existe pas

#

soit member.nickname soit member.user.username

keen narwhal
#

ah

#

ah ok c'est bon à savoir

neat lintel
#

sinon pour ton problème essayes de mettre un console.log tous en haut de l'évent voir si il se déclenche

keen narwhal
#

bot.on("guildMemberRemove", member => { console.log(member) ?

neat lintel
#

par exemple

#

essayes de voir si tu as un truc dans la console après

#

et aussi faudra changer tes setAuthor setFooter pour djs 13.4 mais on verra plus tard

keen narwhal
#

ça m'affiche rien dans le console.log quand je quitte mon serveur

#

Quand je rejoins ça m'affiche plein de trucs

neat lintel
#

montres ton client stp

#

en entier

keen narwhal
#

la const ?

neat lintel
#

Ah oui c'est moi qui me suis trompé

#

la partial est GUILD_MEMBER et pas seulement MEMBER

keen narwhal
#

ah ok

#

Oh damn ça marche

#

Merci merci

scenic pecan
#

Salut, je suis entrain d'apprendre le Javascript et je voulais savoir la différence entre var, let et const, je sais que let sert juste dans le block et var partout, mais const je sais pas trop a quoi il sert 😅 du coup si quelqu'un peut m'expliquer vite fait, merci

cyan iron
scenic pecan
#

okay

cyan iron
#

En revanche tu peux déclarer un tableau avec une constante et tu peux push des éléments dedans

scenic pecan
#

mais je peux aussi le faire avec let et var non ? alors pourquoi utiliser const ?

cyan iron
#

Tient regarde cet article

slim anvil
#

la différence entre let et var c'est la portée surtout

#

Mais généralement ça ne s'utilise plus trop, sauf cas précis

cyan iron
#

Yes, et le const se comporte comme le let

#

En terme de portée

scenic pecan
#

ok merci

keen narwhal
#

Salut j'ai un problème, mon bot n'affiche pas les slash commands

#

je l'ai kick et re inviter sur mon serveur mais rien ne change

#

ah ben en faite je viens de me rendre compte qu'il ne fait plus rien

kind agate
keen narwhal
#

oui oui

#

Plus rien ne se déclenche meme le code qui log les messages supprimés 🤔

#

J'ai essayer avec un autre bot et ça marche pas non plus :(

neat lintel
#

Tu as attendu 1h pour le déploiement des commandes globales ?

keen narwhal
#

non

neat lintel
#

c'est peut etre ca alors

keen narwhal
#

Mais les logs sont sencés marcher non ? 🤔

neat lintel
#

sauf si tu les enregistres sur une guild spécifique

neat lintel
keen narwhal
#

mon système de logs

#

logger quand un message se supprime

neat lintel
#

Vérifie tes intents

keen narwhal
neat lintel
#

fais voir ton évent messageDelete stp

keen narwhal
#

Hier ça marchais super bien je pense pas que le pb viens du code

neat lintel
#

C'est pas interactionCreate l'évent qui corresppond a la supression d'un message

#

c'est messageDelete

#

c'est ca le problème

keen narwhal
#

ah

#

Mais hier ça marchais x)

neat lintel
#

impossible

keen narwhal
#

alors la

neat lintel
#

pas cette partie la au moins

keen narwhal
#

bon

#

ok

#

Une chose de régler

#

Ma commande ban ne marche toujours pas

neat lintel
#

si elle est globale elle prendra jusqu'a une heure a se déployer sur tous les serveurs discord

keen narwhal
#

C'est quoi global ?

#

Il est sur qu'un serveur mon bot

neat lintel
#

Oui mais si tu enregistres les commades que sur une guild avec une fonction spécifique la elles seront pas globales

#

Avec @discordjs/rest je me suouviens plus de la fonction mais c'est dans la doc

keen narwhal
#

j'ai pas mis rest

#

j'ai mis module.exports

#

ah mais attends je crois que je me suis mal exprimé, la commande je peux pas la faire, elle n'apparait pas quand je fais /ban

dire latch
#

C'est ce qu'on te dis

#

Faut que tu déclares seulement sur ton discord

#

Et non, en global

keen narwhal
#

J'ai pas trop compris

celest copper
#

Bonjour,
Je découvre le JS et j'ai besoin d'aide
J'essaye d'incrémenter des compteur, mais je pense que la portée des variables n'est pas bonne, est-ce qu'on pourrait m'expliquer d'ou peut venir le problème svp ?

let tsUser = {inactif: 0, actif: 0};
    teamspeak.clientList().then(clients =>
        {
            clients.forEach(c => 
                {
                    if (!c.nickname.includes("BotDiscord"))
                    {   
                        if (c.channelGroupInheritedChannelId == '9')
                            tsUser.inactif += 1;
                        else
                            tsUser.actif += 1;
                    }                                    
                });
        });
    return tsUser
keen narwhal
celest copper
#

Bah le code fonctionne si je met tout le code dedans, j'ai essayé de le mettre en fonction pour ne pas dupliquer le code
J'ai juste piqué le code sur le github du createur de la librairie TS
Je ne comprends rien aux Promise, c'est surement mon problème

sharp grail
#

tu return tsUser avant que ta promesse soit resolve

celest copper
#

Ah! c'est comme pour une fonction ?

sharp grail
#

J'ai pas compris à quoi tu faisais référence mais reprenons

celest copper
#

En gros, si je comprends, il faut faire ça ?

let tsUser = {inactif: 0, actif: 0};
    teamspeak.clientList().then(clients =>
        {
            clients.forEach(c => 
                {
                    if (!c.nickname.includes("BotDiscord"))
                    {   
                        if (c.channelGroupInheritedChannelId == '9')
                            tsUser.inactif += 1;
                        else
                            tsUser.actif += 1;
                    }                                    
                });
            return tsUser;
        });
    return tsUser
sharp grail
#

mmh non x)

#

en fait

#

pour prendre un exemple

#

quand tu fais une requête via internet par exemple, tu ne recevras pas la réponse instantanément

#

||je suis pas bon prof mdr sue||

celest copper
dire latch
#

C'est sûr 😂

sharp grail
#

en gros

#

tu as des fonctions asynchromes

slim anvil
#

Tu es déjà dans une promise

#

Enlève tes returns et tu en fais juste 1 dans tes .then du moins dans le dernier

#

Et tu peux .catch pour return une erreur au cas où

#

je suis sur tel donc c’est pas super clair mais c’est juste que tu return direct donc forcément ça n’attend pas l’exécution donc fais juste ton code dans le .then

#

Ça sert à ça, attente le résultat de y’a requête

#

Ta*

celest copper
#

Okay, mais si je veux factoriser ce code, je fais comment ?
Actuellement je le duplique, c'est pas top

slim anvil
#

Si tu dois l’avoir à plusieurs endroit oui tu peux te créer une promise contenant cette fonction

#

et toi tu appelleras ta fonction qui te return le résultat attendu

#

Ça évitera d’avoir plusieurs fois ton promise chaining

#

C’est pas très propre

celest copper
#

Okay merci pour ce retour

keen narwhal
#

Bonsoir désolée de vous déranger mes j'ai cette erreur et je trouve pas du tout ces quoi et comment la modifier qui peut m'aider

C:\Users\Aloctio\Desktop\Bot Discord\node_modules\discord-canvas-easy\Canvas\Card.js:113
        if(this.bot === null || this.bot.token === undefined || this.bot.token === null || typeof this.bot !== "object") throw new Error("The .setBot must be a Discord Client !")
                                                                                                                               ^

Error: The .setBot must be a Discord Client !
    at Card.toCard (C:\Users\Aloctio\Desktop\Bot Discord\node_modules\discord-canvas-easy\Canvas\Card.js:113:128)
    at Query.<anonymous> (C:\Users\Aloctio\Desktop\Bot Discord\Commandes\rank.js:61:22)
    at Query.<anonymous> (C:\Users\Aloctio\Desktop\Bot Discord\node_modules\mysql\lib\Connection.js:526:10)
    at Query._callback (C:\Users\Aloctio\Desktop\Bot Discord\node_modules\mysql\lib\Connection.js:488:16)
    at Query.Sequence.end (C:\Users\Aloctio\Desktop\Bot Discord\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24)
    at Query._handleFinalResultPacket (C:\Users\Aloctio\Desktop\Bot Discord\node_modules\mysql\lib\protocol\sequences\Query.js:149:8)
    at Query.EofPacket (C:\Users\Aloctio\Desktop\Bot Discord\node_modules\mysql\lib\protocol\sequences\Query.js:133:8)
    at Protocol._parsePacket (C:\Users\Aloctio\Desktop\Bot Discord\node_modules\mysql\lib\protocol\Protocol.js:291:23)
    at Parser._parsePacket (C:\Users\Aloctio\Desktop\Bot Discord\node_modules\mysql\lib\protocol\Parser.js:433:10)
    at Parser.write (C:\Users\Aloctio\Desktop\Bot Discord\node_modules\mysql\lib\protocol\Parser.js:43:10)```
visual sequoia
#

Salut salut j'ai une petite question concernant les bot discord, je suis actuellement entrain de faire mon propre bot discordjs en v13 et je me demandais si quelqu'un pourrait m'aider a faire un twitch relay en mode quand un streamer designer lance sont live sa envoie un message dans un channel mais je nais pas trouver possible de m'aider? merci d'avance

ashen rapids
visual sequoia
ashen rapids
visual sequoia
#

perso jai que une version gmod avec http.post

ashen rapids
#

L'autre solution c'est de call l'API toutes les 30 / 60 secondes en vérifiant l'état d'une chaîne Twitch

À chaque appel tu check si l'utilisateur est en live ou non

visual sequoia
ashen rapids
#

Je te conseille d'utiliser un module pour communiquer avec l'API Twitch, car ça te gère tout ce qui est token, refresh, etc..

visual sequoia
#

ok merci

#

je go check

visual sequoia
ashen rapids
#

C'est un wrapper, c'est pas lié à DiscordJS

#

Tu l'implantes où tu veux

visual sequoia
#

ok ok

sharp grail
#

Hello

#

est ce que quelqu'un sait si les global commands sont comptés dans les guildscommands, c'est à dire si je fais

<Guild>.commands.fetch().then(cmds => {})

je recevrais global commands + guild commands

neat lintel
#

non

#

du coup tu as 100 commandes de guild max et 100 globales max dans leur comptage

sharp grail
#

oh ok

neat lintel
#

si tu veux les commandes d'app, tu fais client.application.commands.fetch

sharp grail
#

mais du coup les permissions des slash commands globals tu peux quand même les setup;

neat lintel
#

théoriquement oui

#

dans les faits non

sharp grail
neat lintel
#

c'est très peu pratique a utiliser car tu dois boucler toutes les guilds et faire un nombre de requetes important

#

sans parler des conflits

sharp grail
#

oui ;_;

neat lintel
#

mais discord est au courrant et ils traveillent sur le problème avec un tout nouveau système. C'est pour ca que je te déconseille de dev avec les slash-commands permissions vu que la V2.0.1 va sortir en janvier et que faudra surement tout refaire

sharp grail
#

ah yes

#

trop bien

neat lintel
sharp grail
#

cool qu'ils prennent en compte les remarques 👀

#

ça s'annonce bien, ça va juste casser tout ce que j'ai fait kapp

neat lintel
#

oui après asser peu de personnes se sont mises a dev avec ca vu que ca peut quasiment pas marcher avec les commandes globales

sharp grail
#

oui

plucky nymph
keen narwhal
#

Hello, je suis confronté à un petit soucis, la sainte erreur "Missing acess" qui apparaît alors que j'utilise le scope application.commands :d Auriez-vous une idée ?

visual sequoia
#

Derp y fait tu des lerp notlikethis

plucky nymph
visual sequoia
#

Sinon derp tu ti connais en bot discord car le mien je vais le tuer alaid

plucky nymph
visual sequoia
#

laisse faire tkt

plucky nymph
#

Non mais explique

plucky nymph
#

Askip

keen narwhal
visual sequoia
keen narwhal
plucky nymph
#

Oû est l’erreur ?

sharp grail
# keen narwhal

juste, tu es conscient qu'avec ça tu n'invites pas ton bot dans la guild ?

plucky nymph
sharp grail
#

après je sais pas à quoi tu as accès avec

plucky nymph
#

Mais oui clique sur bot aussi @keen narwhal

sharp grail
#

si tu as access à la guild ou aux membres par ex

#

et si tu peux edit

keen narwhal
plucky nymph
plucky nymph
#

Genre par exemple pour les dns sur le bot 1.1.1.1 ou sur les stars du Covid

keen narwhal
#

ça revient au même je le faisais juste différemment

sharp grail
#

ou même le bot discordjs 🤔

plucky nymph
keen narwhal
#

je l'ai fais et ça fait la même chose

sharp grail
#

juste, tu as kick ton bot avant ?

plucky nymph
#

Oui mais le bot n’est pas sur le serveur

#

Enfin bref fais ce que tu veux, tant que ton problème es résolu

#

¯_(ツ)_/¯

keen narwhal
#

le problème n'est pas résolu

sharp grail
plucky nymph
#

Oui bon j’abandonne

sharp grail
#

Bref, on peut juste avoir l'err avant ?

keen narwhal
#

un simple Missing Access

sharp grail
#

ouep mais missing access c'est pas que les slash commands

plucky nymph
sharp grail
#

missing access c'est pour tout type d'accès que tu n'as pas kapp

keen narwhal
sharp grail
#

ça te coute quoi de juste envoyer ton erreur ? 🤔

keen narwhal
#

pas grand chose c'est juste que je l'avais pas sous la main donc bon

sharp grail
#

ah ok x), c'est juste pour être sur avant de continuer 🤔

keen narwhal
#

ça vous fera pas avancer de grand chose

sharp grail
#

t'es sur que la guild correspond ? Je veux dire, si le bot est sur plusieurs serveurs. Après ça dépend comment tu setup tes commandes

keen narwhal
#

yep

#

je revérifie juste au cas ou

#

🤦‍♂️ j'ai recheck tout sauf ça :d vraiment j'ai tout décortiqué sauf cette id x) bon et bien merci de m'avoir éclairé @sharp grail (j'aurais jamais trouvé je pense parce que j'ai modifié plusieurs fois le client id, le token, etc. mais tout sauf la guildid :x)

sharp grail
#

Ah bah x)

#

voilà ! 👀

#

pas de soucis

keen narwhal
#

Salut je suis toujours bloquer avec ma commande ban elle ne s'affiche pas tout comme les autres commandes que je rajoute, j'en avait deja parler plus en haut et on m'avait dit qu'il y avait quelque chose avec discord/rest mais j'ai pas trop compris

plucky nymph
#

@keen narwhal Est-ce que t’es commandes sont en globals ou en guild ? Car si tu post y’a commande ban en commande de guild, et les autres en globals ou inversement, oui ça ne s’affichera sans doute pas pareil

#

Tu pourrais screen l’affichage pour voir ce qui n’est pas pareil ?

keen narwhal
#

en faite j'ai pas tres bien compris l'histoire de guild

keen narwhal
plucky nymph
keen narwhal
#

ok

#

mais comment je sais si ma commande est en globale ou en guild?

copper pagoda
keen narwhal
copper pagoda
#

Tu es sur d'avoir défini ton MessageEmbed() ?

keen narwhal
#

oui

#

emh

copper pagoda
#

Je suis pas sur pour que ça te le prennes comme une fonction

#

Comment as tu défini discord dans ton code ?

keen narwhal
#

const Discord = require("discord.js")

copper pagoda
#

Ah oui c'est ce que je pensais

#

Pour définir ton MessageEmbed il faut que tu mettes

Discord.MessageEmbed()
keen narwhal
#

Faut que je mette ça ou ?

#

au param ?

slim anvil
#

tu as pas deja require MessageEmbed en haut de ton fichier ?

keen narwhal
#

emh non

slim anvil
#

rajoute MessageEmbed au meme endroit que Client, Intents etc

#

ca suffira

keen narwhal
#

ok

slim anvil
#

qu'est ce que tu appelles param ? ce que tu recois dans ton execute, ou ce qu'il y a juste au dessus

keen narwhal
#

Je demandais si il fallait mettre au param

#

ce qu'il y à dessus

#

Et sinon la commande ne s'affiche toujours pas 🤔

slim anvil
#

concrètement ce que tu appelles les param ça ne sert à rien

#

c'est juste de la JSDoc

keen narwhal
#

ah

slim anvil
#

pour documenter ton code tout simplement, mais ça n'a aucun impact sur le code

keen narwhal
#

ah d'acord

#

d'accord

slim anvil
#

tes autres commandes fonctionne bien ?

keen narwhal
#

oui mais c'est des commandes que j'avais mise y'a quelques jours

copper pagoda
#

Il avait peut être pas mis d'embed dedans je sais pas

slim anvil
#

okay mais elles ont la meme structure que la nouvelle ?

#

dans le dossier commands aussi ?

keen narwhal
#

non

slim anvil
#

Ok quelle différence

#

tes autres commandes sont direct dans l'index.js c'est ça ?

keen narwhal
#

oui

slim anvil
#

Okay alors regarde:

#

ici tu définis ton commandFolders

#

mais il n'est pas utilisé

#

donc ton handler n'est juste pas terminé

keen narwhal
#

🤔

#

ok donc si je bouge la commande ban dans mon index c'est censé marcher ?

slim anvil
#

Marcher parfaitement je sais pas, mais en tout cas elle sera appelé logiquement

#

Mais fais juste fonctionner ton handler

#

ce sera mieux

copper pagoda
#

Bah c'est pas le but recherché si tu veux utilisé ton handler

keen narwhal
#

oui je sais

copper pagoda
#

Et puis ça permet de mieux se retrouver aussi.

keen narwhal
#

La commande n'est pas appelé UwU

slim anvil
#

Montre comment tu as mis ta commande

keen narwhal
#

ça n'a peut etre aucun rapport mais la commande ban est en module.exports alors que mes autres commande ssont faites avec SlashCommandBuilder

plucky nymph
copper pagoda
#

Perso avec fs j'avais fait un truc comme ça.

fs.readdir('./commandsmosleys', (err, files) => {
    if (err) throw err;
    files.forEach(file => {
        if(!file.endsWith('.js')) return;
        const command = require(`./commandsmosleys/${file}`);
        bot.commandsmosleys.set(command.name, command);
    })
})

Je sais pas si ça y joue.

slim anvil
#

donc on ne peut t'aider que sur ce que tu montres

keen narwhal
#

Oui mais le code est trop long pour que je puisse le montrer en un seul screen

#

si tu parles de la commande ban

slim anvil
#

Fais un repo demo dans ce cas là

keen narwhal
#

un quoi

slim anvil
#

un repository github par exemple

keen narwhal
#

ah ok je vais faire ça

plucky nymph
slim anvil
#

ou un codesandbox si tu veux

keen narwhal
#

Je crois que c'est bon

#

oh boy

#

j'ai mis le fichier env

copper pagoda
#

Je comprends pourquoi ça ma mit 404 XD

keen narwhal
#

ah ?

#

Voila

copper pagoda
#

Toujours le 404 😭

keen narwhal
#

misère

copper pagoda
#

Ah c'est bon

keen narwhal
#

genial

copper pagoda
#

Pourquoi tu as défini 2 fois discord.js

slim anvil
#

c'est pas très grave

#

par contre oui ça ne peut pas fonctionner, je sais pas trop comment t'aider à partir de revoir les bases sur les bots pour créer des commandes ou autre

#

Suffit pas de prendre le code de ton "semi handler" et de le mettre ensuite dans l'index pour que ça marche

#

Donc je te conseille soit de suivre des tutoriels ou autre sur comment mettre en place un handler à la main, ou alors tu continue de créer tes commandes dans ton fichier index mais bon à force c'est bof

#

Sois si tu veux esquiver cette partie, qui n'apporte rien techniquement donc tu perdras rien, tu peux utiliser un wrapper comme #sheweny-js qui va te permettre d'avoir tout de prêt et tu auras juste a créer tes commandes

keen narwhal
#

ok, ça marche

slim anvil
#

attention c'est pas à prendre méchamment, juste vraiment là tu vas perdre du temps à mettre en place un handler qui va ressembler à tous les autres, donc autant juste utiliser quelque chose qui te le met en place directement

#

après pour ta culture perso tu peux toujours essayer, mais c'est vraiment pas incroyable à faire

keen narwhal
#

Oui oui t'en fais pas x)

slim anvil
#

bon globalement tu me diras les bots c'est pas incroyable à faire c'est sovuent la même chose, mais l'handler c'est pire

plucky nymph
#

Sinon tu fais pas de handler, tout dans le même fichier

keen narwhal
#

ben...

#

Je fais ça avec certains de mes bots

plucky nymph
#

Après tu tombes en dépression mais c’est pas grave ça passe tkt

keen narwhal
#

xD

bold sparrow
#

Bonjour...

#

J'ai la fameuse erreur "x" is not a function

Définie telle quelle dans mes types js "types" run(client: Turty, interaction: Interaction): unknown

"interactionCreate"
cmd.run(
             client,
             interaction
         );```

Et enfin dans ma classe, j'appelle la fonction
```js
"cmd"

async run(client: Turty, interaction: Interaction) {}
#

Une idée pourquoi ça me dit que cmd.run is not a function ?

plucky nymph
#

A mon avis, la structure de ta commande ne doit pas être bien prise en compte par ton handler

#

Essaye de console.log(cmd)

#

En gros l’event handler quand il va charger le fichier, il va enregistrer la fonction run(), mais si il la trouve pas il dira rien, et quand tu l’appellera tu aura cette erreur

#

Et regarde si dans tes commandes la fonction s’appelle bien run()

bold sparrow
#

Le problème ici, c'est qu'avant ça fonctionnait parfaitement, j'ai changé 3-4 trucs dans le handler, dans mon type, il y a pourtant le run, donc il sait d'où ça vient

#

Je vais log la classe quand même, je te redis

plucky nymph
#

Oui, et essaye de debug le handler aussi, si tu lui a changé des trucs

#

C’est toujours plus prudent

bold sparrow
#

Ok, donc à aucun moment il me montre la présence de run

#

Effectivement, je vais l'ajouter dans mon constructeur des commandes et voir si ça fonctionne

plucky nymph
#

Pourrais tu screen ?

bold sparrow
#

Yep

plucky nymph
#

Car appart des bouts de codes errants, c’est difficile

bold sparrow
#

Tu as ici une commande au pif

#

C'est ce que me renvoie command, quand je log dans le handler

#

Il renvoie les autres aussi mais qu'importe

#

A savoir, que run est bien reconnu avec le typage

plucky nymph
#

Il est reconnu dans le typage car tu l’as mis non ?

bold sparrow
#

Yes

#

Attends je vais essayer un truc

plucky nymph
bold sparrow
#

Justement, je vais essayer de l'ajouter :p

plucky nymph
#

Mais

bold sparrow
#

Bizarre, avant elle n'y était pas et la fonction était bien reconnue

plucky nymph
#

Je comprend plus rien la

bold sparrow
#

C'est ça que je comprends pas, avant j'avais aucun soucis

plucky nymph
#

T’as réussi à me perdre

bold sparrow
#

YES, j'ai réussi au moins une chose

#

En gros, la fonction est définie dans les types, sachant que ma commande est une dérivée de ce type

plucky nymph
#

La donc la class Help, il n’y a pas de fonction run, donc Help.run() is not a function vu qu’elle existe pas

bold sparrow
#

Donc techniquement, elle est censée existée

plucky nymph
bold sparrow
#

Si elle n'existait pas, TS me l'aurait dit avant

#

Elle existe belle et bien

plucky nymph
#

Je suis pommé

bold sparrow
#

Ce screen vient de help

idle ice
#

Derp is lost

#

x)

plucky nymph
#

Ah mais dans ta class de ta commande, tu l’as bien mise en public la fonction ?

#

Ouais nan je dérive là

plucky nymph
idle ice
#

Bientôt il va nous chanter Lost on you x)

plucky nymph
#

Bah si tu veux vers 19h je pourrais voc @bold sparrow, mais je penses que tu aura déjà trouvé la solution d’ici la

#

Je dois y aller

bold sparrow
#

Ouais ça marche, merci quand même !

bold sparrow
#

Problème réglé lol

plucky nymph
#

C’était quoi dcp ?

bold sparrow
#

Comment je déclarais commande, il ne pouvait pas avoir accès à la fonction, ça me paraissait tellement bête que j'y avais pas pensé

#

Donc effectivement pour lui, run n'existait pas

coarse trench
#

Bonjour j'ai une question

#

Mais je n'y parviens pas :/

#

Quelqu'un sait comment faire ?

glass cargo
#

Ensuite, lis leur doc ^^

coarse trench
#

Non ^^

wintry trench
#

Salut, comment je peut transformer ceci "Fri Dec 24 2021 22:39:26 GMT+0100 (heure normale d’Europe centrale)" en minutes depuis maintenant

desert riverBOT
#

:_: Date
JavaScript Date objects represent a single moment in time in a platform-independent format. Date objects contain a Number that represents milliseconds since 1 January 1970 UTC.

sharp grail
#

le principe serait de déduire le timestamp actuel par le timestamp de cette date, puis diviser ça par / 60000 (1000 ms * 60 s)

dire latch
#

Hey

#

Comment régler cet erreur avec le .setFooter

sharp grail
#

c'est écrit en plus kapp

#

x)

dire latch
#

Je vais voir ça

idle ice
#

rtfm x)

plucky nymph
#

Rtfd

muted canopy
plucky nymph
cyan iron
slim anvil
#

l'hopital qui se fout de la charité kappa

plucky nymph
#

Wailrone y’a 2 semaines: Mais cette doc c’est de la merde, eris savent pas faire de doc !
Wailrone aujourd’hui: LISEZ LA DOC

cyan iron
#

Entre le fait que je trouve une doc mal faite et de la lire WHAT

plucky nymph
#

T’as pas compris

#

Laisse faire

cyan iron
#

Si

plucky nymph
#

Non mais tkt, c’était dans mon délire

dire latch
#

Hey, peut-on mettre un embed en ephemeral ?

#

J'utilise un selectmenu sur mon embed

#

Sa fonctionne que avec les boutons ?

plucky nymph
plucky nymph
# dire latch Sa fonctionne que avec les boutons ?

les messages ephemleres fonctionnent de la meme facon qu'un message normal, les mêmes propriétés, juste qu'un message ephemre est visible uniquement par la personne qui vient de faire l'interaction, et qu'on peut l'enlever de notre vue

#

un peu comme les messages de clyde

dire latch
#

Yes, mais je ne peut pas le faire via un message mais que une intéraction

plucky nymph
#

oui, les messages ephemeres ne peuvent êtres envoyées qu'avec le callback d'une interaction

dire latch
#

Un peu nul ça ducoups mdr

plucky nymph
#

Bah non

#

On ne va pas envoyer un message ephemeres comme ca sans rien avant

#

le message ephemere sert à ce que le message ne pollue pas le chat lorsqu'on fait une commande

#

lorsqu'on fait /help par exemple, personne verra qu'une personne a fait une commande

#

donc il sera possible d'arreter de dire "pas de commandes dans le general"

#

alors que si on envoi un message ephemere sans rien avant bah je vois pas trop le principe

dire latch
#

Ba genre, un message.reply("Test");

plucky nymph
#

Je crois que tu n'as pas encore compris le principe des interactions et des / commands 😂

dire latch
#

Ba si

#

Mais c'est ce que je te dis

plucky nymph
#

ok

dire latch
#

Si je veut mettre que le bot réponds avec ça dans mon code message.reply("Test");

#

C'est impossible

#

Car, je suis obligé de passé par une interaction

plucky nymph
#

C'est le but 😂

dire latch
#

Oui, ducoups, c'est un peu nul mdr

plucky nymph
#

On est plus censé utiliser les messages pour detecter une commande

#

si discord à sorti un intent pour les bots verifiés, et si ils ont sorti les / commands, c'est pour une raison

#

on a plus lieu d'utiliser les messages pour faire des commandes

dire latch
#

Bof

tacit shore
#

Salut s'il vous plait c'est quoi la difference entre var et let ?

plucky nymph
#

C'est à vérifier

#

car je suis pas sur à 100%

coarse harbor
#

bonjour bonjour, je ne sais pas si c'est le bon channel, mais j'aurai besoin d'aide sur un code de bot discord en nodejs v16.... je suis tout nouveau dedans et j'apprends, mais j'ai beau chercher, mes expériences ne marchent pas vraiment x)
Donc mon problème est celui-ci :
Je veux faire en sorte que en fonction de la catégorie choisi dans un menu, ça fasse différente chose
Mon menu de base fonctionne bien, mais je veux justement maintenant ajouter cette possibilité de personnalisation de ce qu'il se passe en fonction de la catégorie choisi au lieu d'un message globale peut importe la catégorie choisi
Par exemple la j'essaie d'envoyer un message en fonction de la catégorie choisi, mais rien ne s'envoie... merci à ceux qui peuvent m'aider ou me donner des indices 👍

lone flax
#

oula

#

alors

#

tu peux reply directement dans ta ligne 3

#

pour voir si ton interaction marche bien premierement

#

parce que là tu reply avec juste le parametre ephemeral mais il faut un parametre content sinon ce n'est pas valide

#

genre interaction.reply({ content: "hey!", ephemeral: true });

coarse harbor
#

hey, merci de ta réponse, du coup j'ai tenté ce que tu m'as dis

#

et du coup le reply ne fonctionne pas

sharp grail
#

Éventuellement 🤔 tu es sur que ton code est exécuté ?

coarse harbor
#

Yep, le menu fonctionne toujours malgré ce code ajouté qui ne fonctionne pas

sharp grail
#

C'est pas ma question x)

#

Par exemple

#

Tu peux console log l'interaction avant le if <Interaction>.customId..

#

Fin en fait

coarse harbor
#

J'ai fais ceci pour le console log, mais effectivement, pas de réponse dans le terminal

plucky nymph
#

Essaye de console.log le interzction.customId

coarse harbor
#

comme ceci on est d'accord ?

#

Si c'est comme ceci pour le console.log : ça n'affiche rien également dans le terminal

sharp grail
#

alors là ça veut juste dire que ton code est pas save-

#

car là sue

coarse harbor
#

Pourtant le code est bien save x)))))

sharp grail
#

tu vois pas un soucis ?

coarse harbor
#

Envie de tout cassé, le nodejs me détruit le cerveau xD

sharp grail
#

style des accolades qui n'ont rien à faire là ? kapp

coarse harbor
#

Je t'avoue que je ne vois pas le soucis xD

#

Si j'enlève une accolade peut importe la quel, ça me dit que c'est faux 😦

sharp grail
#

alors x)

#

tu as les bases du js ?

coarse harbor
#

Bah juste quelques une mais des petites quoi, mais normalement les accolades j'ai jamais eu de problème avec 😭

sharp grail
#

Mais x)

#

En gros

coarse harbor
#

jpp😭

sharp grail
#
console.log(interaction.customId == "category"); /* Ces accolades n'ont rien à faire ici*/ {
interaction.reply(...);
};
#

Techniquement tu peux les utiliser mais bon pas très utile x)

#

bref revenons en au problème de départ

#

j'ai l'impression que ton code n'est pas exécuté 🤔

#

y a quoi dans le fichier ?

coarse harbor
coarse harbor
# sharp grail y a quoi dans le fichier ?

C'est un fichier qui a en gros toute les interactions du bot avec le système de ticket, dont le fameux menu
EDIT: J'ai finalement réussi a faire ce que je voulais 👌 😚 Merci tout de même de vos différentes aides !

thick glacier
#

Bonjour, je suis débutant en Javascript et je voulais juste savoir ce que je devrais utiliser entre Javascript ou Jquery

slim anvil
#

javascript

thick glacier
slim anvil
#

jQuery est une librarie basé sur javascript qui est assez ancienne aujourd'hui

#

Donc dans tous les cas, sans parler de performance ou autre, il faut faire du javascript avant de vouloir utiliser jQuery

thick glacier
#

Donc clairement Javascript

slim anvil
#

oui

#

et de manière générale jquery c'est de la merde

#

mais ça c'est autre chose

thick glacier
#

Mdrrr au moins c'est clair

#

Bon bah en tout cas merci enzo

slim anvil
thick glacier
#

Ok parfait merci je vais aller me renseigner un peu dessus

worldly plank
mystic bison
#

bonjours, je suis à la recherche d'une personne pour me coder 10 lignes dans mon post.routes que je ne sais pas coder quelqu'un pourrait m'aider s'il vous plait ou au moins m'expliquer ?

iron kettle
#

Hello, je sais pas du tout ou mettre ca mais je travail en ce moment sur le développement d'une Web App Google
Hors, j'ai un petit soucis... En l'ouvrant, le navigateur rajoute toujours le /u/0 ( correspondant au compte connecté )
Alors, il ne trouve pas la page, et même en le retirant, quand la page se charge, il le rajoute à chaque fois
La seule solution que j'ai trouvé est de l'ouvrir en navigation privée, mais comme c'est pour du public...
Quelqu'un saurait m'éclairer / me dire comment faire ?

PS : C'est bien du Javascript au cas ou

quasi mauve
#

Salut, j'ai ce petit soucis pour mon bot discord. Quelqu'un pourrais m'aider ?

hazy mirage
#

oui faut que ce soit en lowercase le nom

#

mais sinon ca devrait etre good

quasi mauve
#

lowercase ? xD je sais pas c'est quoi xD

slim anvil
#

minuscule

quasi mauve
#

ah ok merci xD

#

sa marche mieux tout à coup mdrr merci vous êtes les meilleurs

#

aller sur ce moi je retourne sur ma page préférer qui se nomme : Créer un bot Discord > Le code Discord.JS - GCA

hazy mirage
#

fait gaffe, le tuto est pour la v12 de discord.js et la v13 est sorti entre temps. quelques changements donc possible que tu aies des erreurs

quasi mauve
#

ah mince

#

après j'ai installer visual y'as trèèèès longtemps

hazy mirage
#

si tu l'installe bien comme dit dans le tuto tu n'auras pas de soucis enfait

quasi mauve
#

yes

#

là dans le terminal y'as une erreur mais je sais pas quoi faire

#

y'as un truc blanc un peu plus haut vous voulez un screen ?

#

(là c'est quand j'ai fait node .)

hazy mirage
#

oui c'est normal

#

tu as oublié une commande

#

👼

quasi mauve
#

ah xD

quasi mauve
#

oups pardon du ping

hazy mirage
#

npm i -S discord.js@12.5.1

quasi mauve
#

LE NODE MODULE

#

ah non

quasi mauve
#

SA MARCHE OUI MERCI JE VOUS LOVE VOUS ÊTES LES GENTIL

hazy mirage
#

👌

quasi mauve
#

comment je fais pour écrire dans le terminal maintenant que c marquer "le bot est connecter" xD

#

vous devez me prendre pour un débutant xD (PS : c'est le cas)

keen narwhal
#

ben en sois t'as plus besoin d'utiliser le terminal

quasi mauve
#

si pour refaire le node pour que sa met à jour les truc

keen narwhal
#

ctrl + c

hazy mirage
#

sinon pour que ce soit plus simple, fais la commande npm i -g nodemon et ensuite au lieu de node . tu utilise nodemon index.js et là ton fichier à chaque fois que tu sauvegarderas, ça relancera le bot en gros

quasi mauve
#

ok merci

#

vous gérer ^^

surreal sparrow
#

Yo,
J'ai un channel que le bot crée puis on peux le fermer avec react, le soucis étant que lorsque je redémarre le bot la react n'est plus capté par le bot. Donc j'ai fait sa actuellement



db.query(`insert into formation(id_channel, status) values ("${chan.id}", ("1"))`)

Ce qui entre l'id du channel crée ainsi que le status donc
1 = Channel crée
0 = Channel delete

Au démarrage du bot pour le moment j'ai mis sa

    //Verif Formation
    if( "SELECT `id_chanel`, `Status` FROM `formation` WHERE `Status` =1" )

Mais je bloque sur la suite pour que le bot recapte tout les channels avec un status en valeur 1

lone flax
#
SELECT * FROM formation WHERE status=1
#

Bah comme tu as fais en fait

sharp grail
#

la react n'est plus capté par le bot
c'est du au fait que le message n'est pas en cache, tu devrais ajouter le partial reaction 🤔

lone flax
#

Ah tu veux chopper les channels en objet

#

Ou tu peux fetch tes réactions au démarrage pour les foutre en cache à la place de faire du SQL

surreal sparrow
keen narwhal
#

Hello, je recherche un moyen en utilisant fs d'écrire sur mon .json des informations avec un id unique mais qui s'ajoutent et non pas qui s'overwrite (petit exemple de ce que je veux dire)

{
    "621396552916926504": {
        "08e85c97b8f6b41ea0a279086b87f391": {
            "raison": "warn id test",
            "author": "249459790953185280"
        }
    }
}

Actuellement, si je rédige à nouveau la commande en question, l'id est les informations sont overwrite donc je ne peux pas sauvegarder les 2, je pense que ça devrait ressembler à quelque chose de ce style:

{
    "621396552916926504": {
        "08e85c97b8f6b41ea0a279086b87f391": {
            "raison": "warn id test",
            "author": "249459790953185280"
        },
        "ac16a1928858e85371f7501dbc487520": {
            "raison": "warn id 2",
            "author": "249459790953185280"
        }
    }
}

Merci d'avance !

fickle vortex
#

Bonjour, savait vous comment je peux faire une base de donnée de A a Z

fading glacier
fickle vortex
#

pour une application mobile

#

car la j'ai repris mon application mobile que je souhaite instauré

#

mais la j'ai encore un probléme

#

cet l'ordre de la recherche

sharp grail
fickle vortex
#

enfaite mon probléme viens de mon data.js j'ai fait en sorte ou je pense que j'ai tout mélangé

#

quand je clique sur une image sa me dit que il y a 20 produits qui sont affiché alors que j'en veux que une

#

Hareng tu pense m'aider ou pas

sharp grail
#

Euh, je pense que pour t'aider on a besoin d'un peu plus d'infos

#

Après je m'y connais pas du tout en application mobile donc complexe de t'aider

#

Quelqu'un de plus qualifié viendra t'aider je pense

keen narwhal
sharp grail
#

Tu n'as pas ajouté ta guildid dans ton object

keen narwhal
#

j'utilise pas de guildid comme identifiant, le target c'est un id de membre

sharp grail
#

Ah

#

Bah mealculpa x)

#

Bah tu n'as pas set ton id de membre

keen narwhal
#

j'ai essayé de re-déclarer [ide] mais rien n'y fait, ou alors je le fais mal

keen narwhal
sharp grail
#

Non le string

#

Regarde

#

Lis bien l'erreur

keen narwhal
#

hmm

#

j'essaye un truc et je te dis

#

C'est good ! 😎

#

Merci @sharp grail !

sharp grail
#

Pas de soucis yeah

waxen crescent
#

guys I need help

#

avec du GSAP

#

si quelqu'un si connait

#

j'arrive pas à implémenter du scrub qu'à un seul élément d'une timeline

lone flax
#

Yop yop

#

Je développe un bot en nodejs (discordjs v13) et je suis entrain de refaire un système de commandes que j'avais fait. Le système était vraiment assez complet et grave pratique, mais bordel c'était une catastrophe le code, ça partait dans tous les sens.

Le truc, c'est que c'est un système à étapes (tu remplis un truc, ça supprime, tu remplis le prochain...) et ça pouvait partir dans tous les sens en fonction des choix du monsieur.
J'avais fait ça avec plusieurs fichiers en fonction des choix prix, mais vraiment c'était dégeulasse je devais faire un système de cache pour faire passer les infos.. Bref.

Est-ce que vous avez une idée de comment je peux faire un truc propre qui ne me dégoutera pas dans 3 mois et que je vais refaire parce que j'suis perfectionniste ? myman

keen narwhal
#

Hey, je pense que c'est trop relatif à toi-même, la seule solution qui me vient en tête ça serais que tu te poses tranquillement, que tu notes tous tes idées qui rendraient ce "projet" propre et que tu le met à jour régulièrement 🤔

dire latch
#

@lone flaxSois pas bordélique 🤔

#

😂

lone flax
#

Ah mais c'est pas bordélique

#

C'est juste moche

dire latch
#

Puis, tu as pas le choix quand tu fais un système de choix, faut juste bien trier après

lone flax
#

merde

#

@keen narwhal

dire latch
#

Ou tu fais des fonctions 🤔 @lone flax

lone flax
#

Non mais c'est déjà le cas mais c'est pas beau

#

Je dois faire un système de cache chaque fois

#

C'est pas beau

#

Mais du coup je pense savoir comment je vais faire

#

J'espère juste que je vais pas faire ça et que ça va puer

keen narwhal
#

Perso j'aurais crée un système de cache à part entière

lone flax
#

Je vais juste pas faire de cache du tout

#

Je vais tout passer en SQL

#

Avant je passais en cache puis quand il avait fini les choix je foutais tout en SQL

#

Nsm là je passe direct en SQL

keen narwhal
#

Carré then

sharp grail
lone flax
#

Yep yep c'est ce que j'ai fais

#

J'ai fais un bool "ready"

#

et si au bout de 1 heure j'ai plus de news c'est bye

sharp grail
#

ah noice

lapis onyx
#
const nodemailer = require('nodemailer');

let transporter;
try {
    console.log("create transport");
    transporter = nodemailer.createTransport({
        port: 465,
        host: "smtp.gmail.com",
        secure: true,
        auth: {
            type: 'OAuth2',
            user: process.env.EMAIL_USERNAME,
            clientId: 'x.apps.googleusercontent.com',
            clientSecret: 'x',
            refreshToken: 'x',
            accessToken: 'x'
        },
    });
    console.log("transporter created");
} catch(error) {
    console.error(error);
}


const mailer = {};
mailer.from = 'x';

mailer.sendVerifyEmail = (to, token) => {
    const apiDomain = `${process.env.URL}:${process.env.PORT}`
    const url = `${apiDomain}/api/auth/verify/${token}`

    const subject = 'Remembers - Verify your account';
    const body = 'Please verify your account, ' +
                    `<a href='${url}'>Click here</a>`;

    const mailOptions = {
        from: mailer.from,
        to: 'x@gmail.com',
        subject,
        html: body
    };
    console.log(mailOptions);
    transporter.sendMail(mailOptions, (error, info) => {
       if (error) {
           console.error(error.message);
       }
    });
}``` Bonjour, j'ai un problème lorsque j'essaye d'envoyer un mail avec nodemailer : Mail command failed: 530-5.7.0 Authentication Required.
#

quelqu'un pourrait m'éclairer ? (hésitez pas à me ping)

ashen rapids
#

Tu as bien Transport created qui s'affiche ?

lapis onyx
#

ça venait juste de l

#

a

#

mais je comprends pas pq le transporter était pas init

#

du coup je suis passé en singleton

#

Mais merci mdr

#

par contre relou, le mail tombe dans les spams 😦

bold sparrow
#

Est-ce que Gulp a été modifié/piraté ? quand je run mon script j'ai ça

#

Surprenant ..

#

Après ça y'a des milliers de lignes random qui se créent

lone flax
#

Wtf mdr

bold sparrow
#

J'ai la même v sur un autre projet ça fonctionne niquel

#

C'est spécial

slim anvil
#

Pas une autre lib ou quoi ? Car la dernière install de gulp que j’ai faites c’était jeudi et aucun soucis non plus

bold sparrow
#

J'espère que c'est pas une lib importante

#

Et toutes les libs utilisées, sont utilisées par un autre projet

#

Pareil, aucun soucis

#

Je vais essayer de fix

#

Bon le fix force me remets gulp en v < 4 donc forcément ça fonctionne plus

#

Je ne vois pas d'où vient ce problème..

kind agate
#

mdrrrr

hazy mirage
#

c’est assez fabuleux en effet 😂

bold sparrow
slim anvil
keen narwhal
#

Bonsoir j'ai ce problème

hazy mirage
#

Yes, est-ce que tu peux envoyer ton code autour de la ligne 23 ?

keen narwhal
#

quelle fichier

#

car je connais rien en bot discord

hazy mirage
#

Et bien c'est marqué juste en dessous de l'erreur

#

events/ticket/ready.js

keen narwhal
#

  oniChan.bulkDelete(100).then(() => {
    sendTicketMSG();
  });
};

#

ligne 23 a 26

#

Tu veut plus @hazy mirage ?

hazy mirage
#

Un peu plus au dessus yes

keen narwhal
#

    oniChan.send({
      embeds: [embed],
      components: [row],
    });
  }

  oniChan.bulkDelete(100).then(() => {
    sendTicketMSG();
  });
};

#

ligne 17 a 26

hazy mirage
#

Tu dois avoir un ...oniChan =

keen narwhal
#

je peut t'envoyer tout le code au pire ?

#

il va de la ligne 1 a 26

#

module.exports = async (client) => {
  const oniChan = client.channels.cache.get(client.configT.ticketChannel);
  
  function sendTicketMSG() {
    const embed = new client.discord.MessageEmbed()
        .setColor('#182749')
        .setAuthor('📩 Ouvrir un Ticket 📩 ')
        .setDescription('Cliquez sur le bouton ci-dessous pour ouvrir un ticket')
    const row = new client.discord.MessageActionRow().addComponents(
      new client.discord.MessageButton()
        .setCustomId("open-ticket")
        .setLabel("Ouvrir un ticket")
        .setEmoji("✉️")
        .setStyle("PRIMARY")
    );

    oniChan.send({
      embeds: [embed],
      components: [row],
    });
  }

  oniChan.bulkDelete(100).then(() => {
    sendTicketMSG();
  });
};

hazy mirage
#

Je te répond d'ici 3 m

keen narwhal
#

ça marche merci de ton aide en tout cas

hazy mirage
#

Il faudrait que tu console.log(client.configT.ticketChannel) déjà en dessous de la ligne const oniChan =

keen narwhal
#

comme ça ? @hazy mirage

hazy mirage
#

Non enfait on va déjà essayer autre chose

#
module.exports = async (client) => {
  const oniChan = await client.channels.fetch(client.configT.ticketChannel)```
keen narwhal
#

je met ça en dessous ?

#

de const oniChan

hazy mirage
#

Non tu remplaces js module.exports = async (client) => { const oniChan = client.channels.cache.get(client.configT.ticketChannel);
par

module.exports = async (client) => {
  const oniChan = await client.channels.fetch(client.configT.ticketChannel)```
keen narwhal
#

ok

hazy mirage
#

Ok voila c'est pour ça

#

Tu as du recréer ton channel ticket depuis le temps

#

est-ce que tu as pas un fichier config.json ou quelque chose avec config ?

keen narwhal
#

euh si

#

ya prefix
token
color

#

ah nan y'en n'a un autre

#

y'a ça

#

dans config json

#

donc je dois config ça et ça marchera @hazy mirage ?

hazy mirage
#

yes exact

#

tu sais trouver les id de channel ?

keen narwhal
#

Yes

#

sauf pour cela

hazy mirage
#

c'est des catégories ça

keen narwhal
#

Ah ok

hazy mirage
#

ça marche comme sur les channels pour l'id

keen narwhal
#

y'a ça d'ecrit

#

(node:25) DeprecationWarning: The message event is deprecated. Use messageCreate instead
(Use node --trace-deprecation ... to show where the warning was created)

#

je dois faire node --trace-deprecation

#

?

#

@hazy mirage

hazy mirage
#

osef ça impacte pas ton bot

#

normalement c'est bon ça remarche correctement

keen narwhal
#

enfaite ça marche

#

mais

#

il se réeteind

#

ça a bien crée le truc en plus

hazy mirage
#

encore des id qui doivent etre ancien

keen narwhal
#

pourtant j'ai tout modfi

hazy mirage
#

visiblement dans le index.js autour de la ligne 57 il doit rester des id là bas, qui ont été mis directement dans le code et non dans la config

keen narwhal
#

Ça a l’air de marcher

#

Merci beaucoup @hazy mirage

hazy mirage
#

👌

keen narwhal
#

Salut

#

Je crois que j'ai un problème avec ma db

#

sur mon bot musique quand je le local host sur mon pc tout marche niquel et quand je le test sur l'hébergeur, j'effectue une commande et sa me mets une erreur de "MongoDB"

#

Je pense que c'est en rapport avec l'ip de la db

ashen rapids
#

Quelle est l'erreur ?

#

T'as bien installé MongoDb sur ta machine ?

keen narwhal
#

J'ai installer tout les modules oui

#

fin je crois

#

Tu veux peut-être voir l'erreur ?

hazy mirage
#

oui pour pouvoir t'aider plus facilement il faut toujours envoyer le maximum d'infos possibles myman (screens du code, erreur...)

keen narwhal
#

d'acc

#

att

#

ah bah mon hebergeur est en maintenance jusqu'a ce soir 💀

#
MongooseError: Operation `prefixes.findOne()` buffering timed out after 10000ms at Timeout.<anonymous> (/home/container/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:149:23) at listOnTimeout (node:internal/timers:568:17) at processTimers (node:internal/timers:510:7)```
#

mais sa me mettais sa

hazy mirage
#

Est-ce que tu as bien eu le log de connexion à la db mongo ?

keen narwhal
#

ouais

#

mais dès que g executer la commande sa me fais sa

#

et on ma dis askip c'est en rapport avec l'ip que g mis dans mongodb

hazy mirage
#

Je ne pense pas sinon tu n'aurais pas eu de log de connexion si c'était pas la bonne ip rentrée 🤔

#

Tu n'as pas accès au code là ?

keen narwhal
#

du bot ?

hazy mirage
#

oui

keen narwhal
#

g toute ma source ouais ?

hazy mirage
#

Est-ce que tu peux envoyer le code de connexion type mongoose.connect( ... ) (sans l'url evidemment 👀)

keen narwhal
#

ouais att

#

faut jretrouve ou jles mis 💀

#

g sa

#

c'est sa ?

#
         const dbOptions = {
        useNewUrlParser: true,
        autoIndex: false,
        connectTimeoutMS: 10000,
        family: 4,
        useUnifiedTopology: true,
      };
        mongoose.connect(this.config.mongourl, dbOptions);
        mongoose.Promise = global.Promise;
        mongoose.connection.on('connected', () => {
              this.logger.log('[DB] DATABASE CONNECTED', "ready");
              });
        mongoose.connection.on('err', (err) => {
                  console.log(`Mongoose connection error: \n ${err.stack}`, "error");
              });
        mongoose.connection.on('disconnected', () => {
                  console.log('Mongoose disconnected');
              });```
hazy mirage
#

ha j'ai pensé à une chose

slim anvil
#

tu utilises atlas ?

hazy mirage
#

ta db est hébergée sur mongo atlas ?

keen narwhal
#

ouiiii

slim anvil
#

t’as peut être juste pas mis l’ip de ton serveur

#

En autorise

#

peut être juste la tienne

keen narwhal
#

g mis la mienne ouais

slim anvil
#

Faut mettre celle de ton serveur du coup

keen narwhal
#

mais jla trouve pas sur mon pannel

#

sa me mets genre

#

un lien

#

comme sa

slim anvil
#

sinon met en 0.0.0.0

#

pour tout le monde

keen narwhal
#

bot.host.hfwufhwifh955.

slim anvil
#

Pas le meilleur plan mais bon

keen narwhal
slim anvil
#

Sinon envoie un ticket à ton hébergeur pour avoir l’IP de ta machine

#

bah ça permet de l’ouvrir à tous

#

Alors il faut quand même des accès je te rassure

keen narwhal
#

trkl alors

#

dès que l'hebergeur re marche jvais test

#

et jvous dis 😜

keen narwhal
#

ducoup

#

sur mongodb sa me mets sa

#

c'est normal ?

#

OH

#

SA MARCHE

#

MERCIIIIIII

slim anvil
#

ewi

keen narwhal
#

c'est normal sa ?

#

quand j'essaie d'installer quick.db sa me mets sa

ashen rapids
#

Faut que tu installes VS Studio Build Tools

keen narwhal
#

et comment ?

ashen rapids
#

Tu vas sur le site de vs studio

keen narwhal
#

azy

azure belfry
#

Bonjour,
J'aimerais savoir ce qu'il faut mettre dans ses cases ?

ashen rapids
azure belfry
#

Un bot js

ashen rapids
#

Je pense que ce qui est affiché est suffisamment clair

#

Qu'est ce que tu comprends pas ?

#

Ya même une indication pour chaque field

azure belfry
#

Pourrions nous voc cette apres midi pour m'expliquer ?

oak turret
#

ces champs ( non remplit ) sont facultatif

#

t’en as pas besoin forcément

#

c’est en +

ashen rapids
#

Les deux premiers on te demande si tu veux installer le bot depuis un repo git, et si oui, via quelle branche
Si tu utilises pas git, t'en as pas besoin

azure belfry
#

Okok parce qu'il ce start pas

#

Je comprends pas

hazy mirage
#

ton fichier principal c'est bien index.js et non main.js par exemple ?

azure belfry
#

Oui

azure belfry
#

Merci tout le monde

#

Vous savez comment on met le côté d'un message en couleur ?

ashen rapids
#

Si tu utilises DiscordJS, c'est .setColor()

azure belfry
#

Du style comme ca

ashen rapids
#

Dans un embed ?

azure belfry
#

Dans un bot js

#

Par eemple il envoie cette image mais sans l'url

oak turret
#

.setImage()

#

.setThumbnail() dans un embed

#

sinon dans le content

#

genre message.channel.send({content: "le lien de l’image", embeds: [embed]})

sharp grail
#

sinon dans les files ?

#

message.channel.send({ files: <MessageAttachment>[]})

azure belfry
#

L'image je l'ajoiute dans un fichier ?

sharp grail
#

c'est à dire ?

azure belfry
#

Ai-je une erreur ?

ashen rapids
#

A toi de nous le dire

azure belfry
#

Je ne pense pas

azure belfry
#

Pq m'on bot n'affiche rien

hazy mirage
#

???!

#

Il est passé ou le ({ après le .Client et le }) en dessous du ]

azure belfry
#

Ou ?

hazy mirage
azure belfry
#

Oui il manque quoi ?

oak turret
#

new Discord.Client({tutut..})

#

const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });

azure belfry
#

Comme ca ?

#

La commande ne marche pas

plucky nymph
#

Le bot est connecté au moins ?

#

Dans le screen on vois pas de client.login() 👀

azure belfry
#

Nn il est en dessous

cyan iron
#

Est-ce que tu as " Start " dans ta console ?

azure belfry
#

oui

#

Je comprend pas

cyan iron
#

Quel est ton problème ?

azure belfry
#

Quand je tape xd ca n'affiche rien sur le discord

cyan iron
#

Il faut que tu tapes !xd

#

prefix+"xd"

#

"!xd"

azure belfry
#

bah ca ne marche pas

#

Ca ne m'affiche rien en dessous

cyan iron
#

Tu as une erreur ?