#javascript-typescript

1 messages · Page 59 of 1

slim anvil
#

Alors tu vas venir faire un :

#

Reprend ta fonction si tu veux

#

Et tu l’appelles de la même manière

keen narwhal
#

mais sans rien

slim anvil
#

tu reprends tout de function write (.... jusque le }

keen narwhal
#
function write() {
    fs.writeFile("./clé.json", JSON.stringify(cle), (err) => {
      if (err) console.log(err)});
  }
 

cle.push({ id: undefined, timeout: undefined, cle: undefined})
  write()```
slim anvil
#

Toute la fonction

keen narwhal
slim anvil
#

??

keen narwhal
#

comme ça ?

slim anvil
#

Non du tout

keen narwhal
#

ah

#
function write() {
    fs.writeFile("./clé.json", JSON.stringify(cle), (err) => {
      if (err) console.log(err)});
  }```
#

je reprends que ça ?

slim anvil
#

Att prend un screen de toute ton code stp

#

car si tu as ceee ta fonction au même endroit t’as pas besoin de la dupliquer

keen narwhal
slim anvil
#

C’est un petit bordel quand même

keen narwhal
#

ouais

#

je sais xd

slim anvil
#

On va faire simple car sur tel compliqué la, copie colle ta fonction write

slim anvil
#

Oui

#

Juste ça

keen narwhal
#

oki

#

ensuite c'est bon ?

slim anvil
#

Screen ton code

#

On va vérifier à chaque fois comme ça

keen narwhal
#

t'inquiète il y a les }

#

ils sont juste plus bas

slim anvil
#

voilà et là tu appelles write() après ta fonction

#

C’est pas hyper quali mais bon là je pense que tu débutes on va mettre de côté l’opti

keen narwhal
#

comme ça ?

slim anvil
#

Oui

keen narwhal
#

sa marche merciii

#

💙

#

mdr

#

mais j'aurais besoin d'aide pour un autre petit truc 😅

slim anvil
#

Oui dis moi si c’est rapide lets go

keen narwhal
#

j'aimerais que si la clé est déjà dans la bdd on peut pas la ré use

#

sa devrais être rapide

#

genre la ma const de clé c'est cls

slim anvil
#

Ah générer une clé random ?

keen narwhal
#

non

#

xD

slim anvil
#

je comprend pas

keen narwhal
#

sa je le fais manuellement j'évite les bug comme ça

#

si par example

#

la clé gfbgf est déjà dans la base de donnée le bot dis qu'elle est déjà utilisé

slim anvil
#

Je vais te laisser chercher, mais en gros tu peux faire un .find(c => c.cle === ta_cle_genere)

#

Là tu as le code pour vérifier si elle existe déjà

keen narwhal
#

oki

#

merki

#

bonne soirée

slim anvil
#

A toi aussi !

keen narwhal
#

merci

karmic frigate
#

comment ont peux mètre une valeur sur un embed.setDescription

slim anvil
#

quelle genre de valeur

#

Tu mets juste ta variable dans les parenthèses

keen narwhal
cyan iron
#

C'est possible effectivement

#

Mais pas pour éditer l'embed il me semble pas

#

Mais on peut faire en sorte de cliquer sur l'émoji

keen narwhal
#

Donc je peut juste mettre un lien ? (merci quand même)

timid loom
#

La strat consisterait à utiliser des liens et réaliser des actions sur l'embed

#

Mais c'est galère et en général discord te prévient avant de faire une redirection donc le principe du truc est un peu difficilement réalisable

cyan iron
#

Oui

#

Mais bon autant développer ça sur un site

keen narwhal
#

C'est débile mais

dire latch
#

Ton bot.channels.get en client.channels.get

keen narwhal
#

Sa fait la même chose

dire latch
#

client.channels.cache.get

keen narwhal
#

Ah merci bcp ^^

dire latch
#

Dr 🙂

keen narwhal
#

J'utilisais l'ancienne commande

#

Thx

dire latch
#

Sinon 🙂

keen narwhal
#

Oui j'vais aller voir

keen narwhal
#

@dire latch Mais genre si je le veux en embed

#

Le ¨tat du bot : En ligne 🟢 !¨

dire latch
#

Tu créer un embed @keen narwhal

keen narwhal
#

AH

#

C'est vrai que la ça m'aide bcp

oak turret
#

look comme ça

#
const etat = new Discord.MessageEmbed()
  .setColor("tacouleur")
  .setDescription("Le bot est en ligne !");
client.channels.cache.get("id").send(etat).catch(err => console.error(err));
keen narwhal
#

Dans le ('état du bot . . .) ?

oak turret
#

efface client.channels etc

#

et tu le remplaces par mon code 🙂

#

change bien l'id

keen narwhal
#

Ah att je le change tt de suite

oak turret
#

tu mets une couleur aussi

#

en hexa

#

#31CA00 pour un vert

#

par exemple

keen narwhal
#

en rvb

#

ok

#

#D62600

#

Sa peut marcher dans ce genre ?

oak turret
#

ui c'est un rouge

keen narwhal
#

Ok ok

#

Ah ouais ça marche

#

Ptn vuos êtes des génies

oak turret
#

Dites moi quelqu'un sait si on peut changer la valeur d'un booléen de gamedig ? Genre :

#
if (state.password === true ) { state.password === ":white_check_mark:"; } else { state.password === ":x:"; }

me return true et pas mon émoji xD

slim anvil
#

parce que tu mets ===

#

Si tu veux que ça prenne la valeur c’est juste =

oak turret
#

ah ui j'suis con

slim anvil
#

== ou === c’est pour comparer, 2 c’est valeur et type et === juste valeur

oak turret
#

c'pour verif le type ==

#

merci j'avais oublié 😮

#

ah yes c'est good

#

ty!

frail marsh
#

Bonjour, je recherche quelqu'un qui pourrai me dire comment clear des variables, je m'explique j'ai un bot discord en JS avec un système d'expèrience, mais j'aimerai le reset, je ne sais pas comment.

Je ne m'y connais pas du tous en JS, et j'ai juste quelque trucs à regler sur le bot, pour sa que je prefère demander de l'aide que d'apprendre pour regler 2 ptit trucs.

Si quelqu'un pourrai m'aider sa serai super cool merci

slim anvil
#

Pour clear les variables suffit juste de relancer le process node

#

Si par variable tu entends base de donnée, tu peux juste clear entièrement la table

#

Mais faudrait qu’on sache si c’est du mysql, nosql ou autre pour te guider

oak turret
#

t'aimerais reset quoi ton exp ?

#

bah si tu le fais avec une bdd, tu drop table dans ton sql

#

et là y aura plus rien

keen narwhal
#

où est l'aide pour la commande clear dans https://discord.js.org/#/docs/main/stable/general/welcome

#

Je le trouve pas

slim anvil
#

Bulkdelete

keen narwhal
#

Bulkdelete ?

slim anvil
#

Cherche ça sur la doc

uncut eagle
#

Salut, comment je peux faire en sorte que lorsque une personne écrit un message example "!help" ça supprime son message automatiquement mais ça ne supprime pas le message du bot svp ?

slim anvil
#

message.delete()

uncut eagle
#

ok merci 🙂

oak turret
#

quel message du bot?

cyan iron
#

Laisse tomber

#

Quand tu te compliques la vie : utilise un Filter 😂

slim anvil
#

C’est quoi le rapport avec le filter

cyan iron
#

Nan mais rien mdr

oak turret
#

c’pas un filtreur de mot qu’il veut

cyan iron
#

Je sais 😂

#

Laisse tomber

oak turret
#

t’es bourré roro

cyan iron
#

spotted

oak turret
#

le mets en gav

cyan iron
#

j'ai pas compris

oak turret
#

le mets en dégrisement 👀

cyan iron
#

Ah ok

oak turret
#

blc frr ?

cyan iron
#

oui mais non

#

je t'explique ma blague de merde ?

#

Go discussion

oak turret
#

oui du coup

full scaffold
#

Yo, je cherche un moyen de récupérer chaque réaction des utilisateurs et de traiter ça mais je ne sais pas quoi utiliser :/

keen narwhal
#

(J'ai testé de mettre le awaitReactions dans une boucle while, mais ça faisait planter mon bot :/

#

Yo, je cherche un moyen de récupérer chaque réaction des utilisateurs et de traiter ça mais je ne sais pas quoi utiliser :/
Chaque réaction sur un seul message, ou bien toutes les réactions faites par un utilisateur sur le serveur ?

full scaffold
#

J'ai réglé mon problème c'est bon

uncut eagle
#

Salut j'ai fais une commande pour mon bot mais je veux qu'il affiche 2 messages un en dessous de l'autre mais cependant il a un seul message qui s'affiche il a pas moyen que les 2 messages s'affiche ?

        .setDescription("Chaine Youtube : [clique-ici](https://www.youtube.com)")
        .setDescription("Chaine Twitch : [clique-ici](https://www.twitch.tv/)");
oak turret
#
.addFields(
{name: "Chaine Youtube :", value: "[Clique ici](https://www.twitch.tv/tachaine)", inline: false},
{name: "Chaine Twitch:", value: "[Clique ici](https://www.twitch.tv/tachaine)", inline: false}
)
uncut eagle
hazy mirage
#

corrige par ça

#

[Clique ici](https://www.twitch.tv/tachaine)

oak turret
#

c’est ton mien juste

#

lien

#

j’ai pas fais gaffe au lien

cyan iron
#

En gros il n'ajoute pas l'utilisateur au SET

#

Précision : c'est le add qui ne fonctionne pas :/

#

Problème réglé je suis juste atteint

full scaffold
#

ah

cyan iron
#

Une erreur de débutant que j'aurais pu éviter x)

#

En gros j'ai défini le set au mauvais endroit

full scaffold
#

ok ok

keen narwhal
#
    var basUserAcc

    let sql = `SELECT * FROM accounts WHERE id='${profile.id}'`;
    con.query(sql, function (err, result) {
        if (err) throw err;

        basUserAcc = result[0]

    })

    const embedAlreadyExist = new Discord.MessageEmbed()
    .setTitle(":x: You already have an account ! To modify it, please use `r!modify`")
    .setAuthor(message.author.tag, message.author.displayAvatarURL())
    .setColor(0xee6c4d)

    if (!basUserAcc) return message.channel.send(embedAlreadyExist)
#

C'est normal que ma variable basUserAcc soit undefined ?

#

(Sachant qu'elle est sensé être result[0]

keen narwhal
#

il y a pas besoin de mettre deux fois basUserAcc

#

c'est simplement en 1

slim anvil
#

Tu peux screen plz sur tel c’est illisible

keen narwhal
#
var  basUserAcc = result[0]```
#

tien enzo ^^'

slim anvil
#

Parce que tu utilises basUserAcc alors qu’elle est pas encore défini, tu l’as définis lors du retour de ta requête SQL

#

mais le reste du code est aussi exécuté en même temps, donc comme ta requête est pas fini ta variable est pas défini

#

Tu peux dans ce cas là, mettre tout ton embed et l’envoie au même endroit que la création de ta variable

idle ice
#

Ou jouer avec du async ? @slim anvil

slim anvil
#

Oui mais vu qu’il est dans un callback de réponse autant le faire dedans

idle ice
#

Not false aha

oak turret
#

@keen narwhal t'as réussis ?

keen narwhal
#

non mdr j'ai trouvé une autre solution mais y'a a nouveau un bug enft

oak turret
#

faut que tu fasses

#

message.channel.send({embed: taconst})

keen narwhal
#

le : est expected

oak turret
#

ouais pardon

#

att je modif

#

comme ça

keen narwhal
#

({ embed: arg })

#

?

oak turret
#

arg = ta const ?

keen narwhal
#

yes

#

att jvais test avc ca

#

tu sais pourquoi ca fais ca ?

oak turret
#

test ça

#
const embed = {
      `${tonembeddeluser}`
}
message.channel.send({embed: embed});

mais je suis pas sur que tu puisses envoyé ton code de l'embed direct dedans donc faut voir

keen narwhal
#

il faut enlever les { nan ?

#

je test en mettant le code avant l'argument avant et si j'enleve les { ca marche

#

ducoup ca fait ca : ```js
const embed =
argEmbeddd

message.channel.send({embed: embed});```

oak turret
keen narwhal
#

tjrs ca : //

#

sans aucun msg d'erreur

oak turret
#

mets juste ça dans ton embed quand tu envoies le code en tant qu'user

#

color: 0x0099ff,

keen narwhal
#

toujours pareil :/

oak turret
#

j'suis pas sur qu'on puisse le faire alors

slim anvil
#

Je réagis juste à ça @keen narwhal et @oak turret, vous pouvez du coup faire un message.channel.send({ embed })

#

Si votre variable s’appelle comme la clé souhaite pas besoin de la mettre 2 fois

keen narwhal
#

vasy je vais test apres cimer

sinful oyster
#

Bonjour je sais pas si ke dois demande la car je suis pas dev mais quelqu'un c'est pour quoii mon invit manager sur mon serveur discord est offline et sur les autres il est on

full scaffold
cyan iron
full scaffold
#

hein

hazy mirage
#

tu met dans ton embuée

#

[le texte](le lien a renvoyer sur)

full scaffold
slim anvil
#

Avec juste le lien je pense que tu peux récupérer l’ID du message, et fetch le message

cyan iron
#

message.url il veut je crois

slim anvil
#

je crois qu’il veut récupérer les infos du lien (donc du message) et les affiches lorsque tu met un lien de message

#

C’est ça @full scaffold ?

cyan iron
#

Ah possible

#

C'est vraiment pas clair

runic bane
#

Beh plus tes logs sont grandes plus ça va prendre du temps de calcul non ?

cyan iron
#

Y'a une limite de 1

cyan iron
#

Ahahh

#

Je pense avoir trouvé je tente ça tout à l'heure

full scaffold
#

Il me fallait message.url merci

oak turret
#

Hello, j'ai un petit soucis, je sais sûrement que j'utilise pas les bon trucs dans ma conditions, mais pour les réactions je galère un peu, je voudrais du coup vérif ce que réact l'user, et en fonction de ça réenchainer sur autre chose, en l'occurence qu'il réact avec le premier émoji ( ✅ ) mais ça me fait rien 😮

#
 prompter.vote(message.channel, {
                    question: `Souhaitez-vous les statistiques d'un serveur de jeu sur votre serveur ${message.guild.name} ?`,
                    choices: ['✅', '❌'],
                    timeout: 5000,
                }).then(rep => {
                    const yes = rep.emojis[0];
                    console.log(yes);
                    if ( rep.emoji === yes.emoji ) {
                        prompter

j'utilise discordjs-prompter

#

alors j'ai changé par

console.log(rep.emojis[0].emoji);
if ( rep.emojis[0].emoji === "✅" ) { }

ça me donne bien mon premier émoji ✅, seulement je sais pas pourquoi des fois il me log l'index 1 donc l'autre émoji, donc je suis un peu perdu :x

#

sinon je peux vérif que le count de l'émoji voulu soit à 1 ?

#

c'est réglé, par le count c'est better !

#
console.log(rep.emojis[0].count);
if ( rep.emojis[0].count === 1 ) { }
oak turret
#

yop les gars ! j'ai un soucis avec gamedig aujourd'hui..., alors que je n'ai rien touché depuis, voici mon code : ( il me trouve une erreur je sais pas où, alors qu'il me log bien mon state avec mes data's du serveur dedans )

 if (command === "status") {
        if (message.channel.id !== "744154069463203940") { message.author.send("Vous devez mettre votre suggestion dans [#744154069463203940](/guild/223070469148901376/channel/744154069463203940/)"); return message.delete()}
        Gamedig.query({
            type: 'garrysmod',
            host: '51.255.141.54',
            port: 27130,
        }).then((state) => {
            if (state.password = true ) { state.password = ":white_check_mark:"; } else { state.password = ":x:"; }
            console.log(state);
            let players = new Discord.MessageEmbed()
                .setColor("#0091F5")
                .addFields(
                    {name: "Nom du serveur :", value: `${state.name}`, inline: true},
                    {name: "Map :", value: `${state.map}`, inline: true},
                    {name: "Mot de passe : ",value: `${state.password}`, inline: true }
                );
            let player = state.players;
            let plys = "";
            player.forEach(player => {
                if(!player.name) { plys = "Pas de joueur en ligne";}
                let time = moment().startOf("day").seconds(player.time).format("HH:mm:ss");
                plys = plys + `\n- ${player.name} (${time})`;
            });
            players.addField("Joueurs en lignes", plys);
           message.channel.send(players);
           message.edit(players);
        }).catch((error) => {
            let offline = new Discord.MessageEmbed()
                .setColor("#F52100")
                .setDescription("Le serveur est fermé, ou il reeboot !");
                message.channel.send(offline);
        });
    }

C'est moi ou gamedig qui bug ?

outer raven
#

@oak turret yo, tu peux donner l'erreur qu'il te log ?

oak turret
#

aucune

outer raven
#

a

oak turret
#

à part l'embed qui est vide askip mais sinon non

outer raven
#

rien dans la console ?

oak turret
#

bah il me log mon state

#

mais il me passe mon catch

#

w t f

outer raven
#

mhh

oak turret
#

il a pété un cable le boug

#

ghost ping.

slim anvil
#

C’est Michel

#

Dans ton catch t’as pas une erreur parlante ?

oak turret
#

Normalement mon catch sert lorsque que le serveur est arrêté ou en reeboot

#

sauf que là, il me log mon state, mais me met mon embed du catch

#

alors que y a deux jours ça fonctionnait nickel

#

:x

slim anvil
#

Donc tu reçois bien tes datas ?

#

Et après sa merde ?

oak turret
#

yes il me log bien mon state donc les infos du serveur, mais après ouais ça merde

slim anvil
#

Montre ton code

#

(En screen)

oak turret
#

je te fais ça

slim anvil
#

Rajoute des logs avant chaque action (boucle etc)

#

Pour voir à quelle ligne ça père

#

Pete*

cyan iron
slim anvil
#

Ou tu commentes et tu fecommentes petit a petit

#

2

#

Les nouvelles normes ECMAScript

cyan iron
#

Ok merci :)
Je go tout refaire demain

oak turret
#

okay je fais ça zozo, je te dis ça

slim anvil
#

enfin nouvelle plus trop maintenant mais voilà

#

decommentes*

oak turret
#

Ok alors Enzo, je comprends pas pourquoi mais maintenant ça fonctionne, fin w t f, gamedig à du avoir un petit problème je crois, bon bah merci à toi 🙂

slim anvil
#

Top

full scaffold
#

1

slim anvil
#

??

full scaffold
#

Top 1

slim anvil
full scaffold
#

yakoi

slim anvil
#

Baston

cyan iron
oak turret
#

Yop! Dites moi, quelqu'un a déjà eu un pb avec son bot qui ne veut plus se start ( node . ) c'est le premier démarrage mais il veut pas .. ( ça charge dans le vent ... )

#
    if ( command === "meteo" ) {
        var country = message.content.split(" ").slice(1).join(" ");
        fetch(`https://api.openweathermap.org/data/2.5/weather?q=${country}&appid=8e3f1afe8d4cac650a93c917d2be5b35`)
        .then(rep => rep.json() )
        .then(json => {
        let random = new Discord.MessageEmbed()
            .setColor('#F5C100')
            .setDescription(`Pays choisi : ${country}(${json.weather["id"]})`)
            .addFields(
                {name: "Longitude : ", value: `${json.coord["lon"]}`, inline: true},
                {name: "Latitude : ", value: `${json.coord["lat"]}`, inline: true},
            );
            message.channel.send(random);

        })

    }

Je pense pas que ça soit ça..

#

mes autres bots fonctionnent

queen ocean
#

étrange 🤔

#

essaye d'indiquer le fichier au lieu de juste mettre un .

oak turret
#

oauip je vais faire ça je te dis

#

pareil :x

queen ocean
#

go mettre un console.log au début de ton fichier pour voir

oak turret
#

à quel niveau ?

#

okay

#

c'est au ready qu'il passe pas

queen ocean
#

met un console.log au début de ton index

#

voila donc en réalité c'est bien executé c'est juste ton bot qui est pas lancé

slim anvil
#

T’as 0 erreur ?

oak turret
#

je comprends pas du tout pourquoi

#

0 erreur

#

ça charge dans le vide

queen ocean
#

ta fais le .login ? sue

oak turret
#

..

#

j'ai honte

queen ocean
#

HAHAHAHA

slim anvil
#

Go le ban

#

et vite

oak turret
#

tu le crois que je l'ai foutu en commentaire non mais :xxxx

#

xDDD

#

je me retire discrètement aKappaTrash

slate flame
#

bonjour, j'ai un probleme avec mon bot en gros j'ai un system de ticket quand la personne click sur une reaction sa crée un channel et dedans sa envoie (voulez vous close le ticket) avec une reaction mais pour pouvoir valider cette reaction il faut check que la personne et le bon id
Mais le probleme quand je crée un ticket tout ce passe bien
Mais quand une autre personne crée un ticket et clicke sur la reaction il recoit un message comme quoi il ne peut pas le close (normale) mais quand moi je clicke sur la reaction de son ticket il ne se passe rien et j'ai aucune erreur
Voici le code si vous avez besoin https://pastebin.com/PCK5YbTY

floral bolt
#

salut, vous savez pourquoi je vois pas les noms des personnes qui rejoigne ?

cyan iron
#

Oui

#

Il ne faut pas les mentionner

#

Si vous n'avez jamais rencontré ces personnes ou si vous n'avez aucun serveurs en commun avec lui ça bug

oak turret
#

moi ça marche bien

keen narwhal
#

Bonsoir

#

J'aurais une question

cyan iron
#

Oui ?

keen narwhal
#

par exemple, à la place d'emoji principal de discord, j'aimerais mettre un emoji PERSO d'un serv discord

#

je m'explique

cyan iron
#

Où ça

#

Réaction ?

keen narwhal
cyan iron
#

Oui je sais

keen narwhal
#

Nan, dans un simple embed

cyan iron
#

Ok donc je t'explique

#

Je te fais un GIF 😉

keen narwhal
#

Ok bg

cyan iron
#

Et tu récupères ça "!heyya"

#

Ca te mettras l'émoji

#

Même fonctionnement pour les émojis non-animés 😉

keen narwhal
#

Directement ?

#

comme cela ?

cyan iron
#

Oui

keen narwhal
#

Ok je vais tester je te dis

cyan iron
#

Ca va fonctionner :)

keen narwhal
#

Ah ouais, Merci beaucoup ^^ @cyan iron

cyan iron
#

De rien ^^

keen narwhal
#

Et par exemple

#

Pour les animés

#

Faut avoirs le nitro nan ?

oak turret
#

dans le bot ?

#

j'sais pas si il les prends

#

test tu verras bien

keen narwhal
#

normalement il prend les emojis animés

timid loom
#

je crois que si le propriétaire du bot est nitro ça le donne au bot mais je suis pas sûr

#

ptet que c'est possible de base

oak turret
#

faut tester

crimson fern
#

je crois que si le propriétaire du bot est nitro ça le donne au bot mais je suis pas sûr
Les bots ont certaines fonctionnalités nitro (émojis animés par exemple), meme sans que le propriétaire est nitro

oak turret
#

t'as déjà tester ?

#

@pure raven Merci de l'info, tant mieux !

dire latch
#

@floral bolt Tu as toujours ton soucis ?

floral bolt
#

quel soucis ?

#

ah ! oui

#

toujours

oak turret
#

montre ton code

dire latch
#

C'est dans un .addField ? @floral bolt

oak turret
#

.setDescription() à mon avis

dire latch
#

@floral bolt Tu es là ? 🤔

timid loom
#

Les bots ont certaines fonctionnalités nitro (émojis animés par exemple), meme sans que le propriétaire est nitro
ah super cool, j'ai jamais eu l'occasion de tester

keen narwhal
#

Les gars, vous connaissez un moyen de partager un fichier sur vcs avec autrui ?

keen narwhal
#

Bonjour j'ai actuellement cette erreur sur mon bot : prefix is not defined

hard iris
#

prefix n'est pas défini goodenough

#

Montre ton code @keen narwhal

keen narwhal
#

Nan c'est bon j'ai réussi merci de ton aide ^^

hard iris
timid loom
#

Les gars, vous connaissez un moyen de partager un fichier sur vcs avec autrui ?
@keen narwhal vsc? tu veux dire visual studio code? pour partager un fichier il suffit de le mettre sur pastebin ou sur un gist 🤔
si tu veux parler de la feature où tu écris du code un peu comme sur google docs (live share) y a une extension et plein de tutos sur internet

oak turret
#

Hello ! Alors sur mon bot de météo, j'ai essayé de faire un peu d'opti, pour les températures, j'ai voulu faire un tableau avec les données en kelvin dedans, et j'ai bouclé dessus en redéfinissant mes valeurs du tableaux à la conversion des kelvins en °C, et ensuite l'affiché avec montableau[indexvoulu] pour avoir la valeur, sauf que ! Bah il ne me fait pas mon calcul, je comprends pas trop pourquoi :x

let temp = [`${json.main["temp"]}`, `${json.main["feels_like"]}`, `${json.main["temp_min"]}`, `${ json.main["temp_max"]}`];
        for (let i = 1; i <= temp.length; i++) { temp = Math.floor(temp[i] - 273,15); }
        let random = new Discord.MessageEmbed()
            .setColor('#F5C100')
            .setDescription(`Zone choisi : ${country}(${json["id"]})`)
            .addFields(
                {name: "Longitude : ", value: `${json.coord["lon"]}`, inline: true},
                {name: "Latitude : ", value: `${json.coord["lat"]}`, inline: true},
                {name: "Etat :", value: `${temp[0]}`, inline: false},
                {name: "Température", value: `${json.main["temp"]}°C`, inline: false}
            );
#

oh je suis con je crois

#

ah non petite update il me met undefined :x ( et je vois pas pourquoi )

#

my bad

slim anvil
#

tu définis un tableau temp

oak turret
#

j'ai trouvé enzo xD

slim anvil
#

sur lequel tut e bases pr boucler

#

et tu la redéfinis pendant ta boucle cette variable c pas ouf

oak turret
#

bah faut que je me base sur le .length de mon tableau sur la boucle, je fais comment sinon ?

slim anvil
#

oui ça ok

#

mais après tu fais temp =

#

donc tu redéfinis ton tableau

#

donc au prochain tour de boucle ce sera plus bon 🤔

#

la il va boucler 4 fois

#

et 4 fois tu redefine temp 🤔

oak turret
#

bah là je suis aller un peu vite, mais le truc, c'est que je veux juste update les données de mon tableau et après les réutilisées avec l'index voulu

#

ahh

#

je pourrais faire comment du coup ?

slim anvil
#

tu cherches a faire quoi

#

pas ciompris

oak turret
#

en gros

#

dans mon tableau j'ai toutes les températures d'une zone voulu genre Paris, sauf qu'elles sont en Kelvin, et dans la boucle je les convertis en celsius, et donc de là je me suis dis logiquement que je pourrais afficher temp[index] genre [0] pour la température dans mon embed, j'ai pensé que ça serait plus opti que de faire tata = Math.flor(tatata) 4 fois

#

et de là je vois que il me prends juste la température, fin les autres valeurs dedans sont undefined

slim anvil
#

Oui je comprend pas ton truc, car après tu te sers de temp nul part 🤔

oak turret
#

si là :

#
{name: "Température", value: `${temp}°C`, inline: false}

dans mon embed quoi

slim anvil
#

Ah oui my bad

#

mais bon ça reste super bizarre

oak turret
#

les autres ouais pour l'instant je les utilises pas car j'ai pas fini mon bot

slim anvil
#

dans ton tableau temp

oak turret
#

bah je vois pas comment faire autrement avec une boucle ?

slim anvil
#

y a quoi exactement

#

montre le truc json

oak turret
#

ouaip 2 secondes

#

y a ça :

slim anvil
#

Ok donc dans ton tableau tu stock
[298.11, 294....] etc

oak turret
#

yep

slim anvil
#

et toi tu veux convertir chaque valeur en celsius quoi ?

oak turret
#

yep et d'où la boucle pour tout convertir d'un coup depuis mon tableau

slim anvil
#

Ok mais tu en auras plus du tt besoin en kelvin ?

#

ou tu veux avoir les 2 ?

oak turret
#

non que les °c

slim anvil
#

Bah pk tu boucles, pourquoi tu fais pas le calcul direct ?

oak turret
#

bah je l'avais fait de base, mais je me suis dis que si je faisais un tableau et tout convertir d'un coup, je pourrais faire montableau[index] pour utiliser les datas, pas besoin de faire 4 let tu vois ?

slim anvil
#
function getCelcius (kelvin) {
  return kelvin - xxxx
} 
let random = new Discord.MessageEmbed()
            .setColor('#F5C100')
            .setDescription(`Zone choisi : ${country}(${json["id"]})`)
            .addFields(
                {name: "Longitude : ", value: getCelcius(json.coord["lon"]), inline: true}
                ....
            );
#

Bah fais comme ça direct

#

aucun intéret de créer un tableau, de boucler dessus, d'en recrée un ou de remplacer chaque index

oak turret
#

ah bah ouais pas con

slim anvil
#

alors que tu peux faire directement ça et t'en servir partout ou tu en auras besoin 🤔

oak turret
#

xD, merci pour ta réponse Enzo !

slim anvil
#

d'ailleurs, tu peux faire ça:

const temp = [json.main["temp"], ...];
#

pas besoin de mettre les ``

oak turret
#

yes

#

mais dans ma requête y a des queries que j'ai zappé

#

&lang=fr&units=metric

#

..

#

xD

slate flame
#

Yo, comment je peux faire pour avoir le nombre de personne qui ont clicker sur une reaction en discord.js ?

oak turret
#

.count

#

c’est un truc comme : reaction.emojis[index].count

#

ça te return le nombre de réaction sur l’index de la réaction voulue

#

je l’ai fait y a pas longtemps j’vais essayer de te retrouver le code

#

alors là je l’avais fait pour une lib avec un tableau contenant des emojis, ça doit être similaire selon ton code

slate flame
#

ok cimer je vais bidouiller

slate flame
#

@oak turret Cannot read property 'count' of undefined

#

client.on("messageReactionAdd", async (reaction, user, message) =>{
if (reaction.message.partial) await reaction.message.fetch();
if (reaction.partial) await reaction.fetch();

    if (user.bot) return;
    if (!reaction.message.guild) return;
        
            
    if (reaction.emoji.name === '✅'){
        await reaction.message.guild.members.cache.get(user.id).roles.add(Role);
        console.log(reaction.emoji[0].count)
        return user.send("Vous avez mtn le grade ${Role}, vous avez donc acces à tout le serveur !");
    }
    
})
oak turret
#

log reaction

slate flame
#

de quoi ?

oak turret
#

console.log(reaction)

slate flame
#

@oak turret if(giveawayWinners <= [reaction.count]){} sa fonctionne mais est ce que ce code est bon et si oui comment je peux faire pour supprimer le message ?

full scaffold
#

Est-ce que vous pouvez me dire si le code est bon ? ```js
client.channels.cache.get(channelIDForGames).send({
embed: GameEmbed }).then(embedMessage => {
setTimeout(() => {
embedMessage.delete()
}, 5);
});

oak turret
#

message.delete() @slate flame

#

@full scaffold je suis pas sur mais dans le .delete() tu peux mettre {timeout: 5000}

#

faut que je look

#

oauip c’est ça

#

c’est en ms donc 1000ms = 1s

#

donc tu peux enlever ton setTimeout

full scaffold
#

Je met 5 pour tester hein

oak turret
#

yep

#

sinon ton code a l’air bon, après je suis sur tel l’indentation est affreuse

full scaffold
#

k

slate flame
#

@oak turret parfait tout fonctionne merci

oak turret
#

np

slate flame
#

Question je me sert de plusieur args pour crée un embed sauf que quand je veux faire une phrase avec mon Args1 mon args2 en prend la moitié est ce que y'a un moyen de diff les deux ?

keen narwhal
#

Comment je peux avoir le nombre d’utilisateur en vocal dans un serveur svp

polar canopy
#

Bonjour, j'aimerais qu'il y ait un cooldown de 24h pour une commande et que l'user puisse voir le temps qu'il reste avant de pouvoir la retaper, comment faire ?

oak turret
#

un settimeout je pense

polar canopy
#

Oui mais afficher le temps restant..

oak turret
#

euh là sur le coup j'ai pas l'idée

polar canopy
#

arf

oak turret
#

j’ai peut être une idée mais pas sur

#

dans ton settimeout tu def une valeur dans la fonction, tu get sa value et tu soustrait les 24heures à ça, et tu mets ça dans une let et tu le fous en forme avec moment ou quoi et tu affiches ta let

#

pas sur du tout

polar canopy
#

mh

keen narwhal
#

ducoup quelqu’un aurait la solution ??

oak turret
#

t’as cherché sur internet ?

keen narwhal
#

oe mais pas trouvé de chose qui marchait

oak turret
#

bah essaye de log ce que t’as fais

slim anvil
#

Tu veux genre l'afficher en statut de bot ou de channel ? avec le voiceStateUpdate tu peux savoir quand quelqu'un leave/join un vocal channel par exemple et du coup mettre a jour l'activité du bot

#

le setTimeOut est une mauvaise idée car si le bot restart le timeOut est remis a 0 donc 24h de +

#

Tu devrais juste stocker en base de donnée la date de sa dernière action et quand il fait la commande tu regardes si <24h en diff tu lui envoie le temps avant de pouvoir refaire la commande

#

le meme principe que le bump dans #bots-commands

slate flame
#

Question je me sert de plusieur args pour crée un embed sauf que quand je veux faire une phrase avec mon Args1 mon args2 en prend la moitié est ce que y'a un moyen de diff les deux ?

keen narwhal
#

en gros j’aimerais récupérer le nombre de personnes qui sont en vocal dans les serveurs comme un bot de Stats Count comme Makaveli

slim anvil
#

Jackyy si tu veux passer des phrases longues, sois ton dernier argument est le plus long, sois tu les séparent par un caractère pour les différencier

keen narwhal
#

pour l’évent voiceStateUptade j’ai déjà réussis

slim anvil
#

en gros avoir un

#
!embed color mon texte bla bla bla
#

color peut etre autre chose mais je trouve pas ça dingue après la commande va etre huge a faire si tu dois avoir des caractères ou autre

#

Oui mais @keen narwhal c'est pour afficher sur un channel en name // activité bot c'est ça ?

keen narwhal
#

oui dans un nom de salon vocal ensuite

#

genre Vocal Count : 10

#

par exemple

slim anvil
#

Du coup fais le avec le voiceSTateUpdate

#

dès que quelqu'un join tu ajoutes / enlève

#

si tu as plusiuers salon vocal tu peux faire ça je pense

slate flame
#

@slim anvil comment je peux faire pour les diff grace a un caracter

slim anvil
#

ce message la il était pour Lartaxx et Najhael ^^

#

Sinon pour les différencier ça depend de ton handle etc, mais crée un embed vraiment complet via une commande ca va etre un bordel

#

ca va etre une commande horrible

oak turret
#

j’suis d’accord

#

trop relou

slate flame
#

oais mais vous savez pas comment faire en sorte que les args se sépart bien

keen narwhal
#

?

slate flame
#

Args 1 (titre) args2(1 er phrase) le pb c'est que l'args 2 prend l'arg 1

keen narwhal
#

Tu splits

#

Je comprend pas ce que tu veux faire mais je dois partir désolé

slate flame
slim anvil
#

là ton handle sépare tes arguments mot par mot en gros

#

faudrait que tu changes ça

slate flame
#

oais

slim anvil
#

mais pas pratique pour tes autres commandes

slate flame
#

y'as pas moyen de limiter a cette cmd

timid loom
#

Ça dépend de comment tu l'as fait de base, une solution ça peut être de chercher des guillemets pour séparer les arguments genre !commande arg1 "argument deux" arg3

#

L'autre solution c'est de faire des commandes plus élaborées

slate flame
#

Ok comment je peux faire pour détecter les guillement ?

oak turret
#

typeof

#

si tu veux détecter ça

slate flame
#

oula tu peux m'envoyer de la doc ou m'explique ou je dois mettre sa

oak turret
#

bah si c'est entre " " c'est un string on est d'accord ?

slate flame
#

ui

oak turret
#

donc si je fais :

#

const msg = "salut";
console.log(typeof(msg)) // output : string

#

mais je suis pas sur que c'est ça que Taink parlait

slate flame
#

let titre = args.slice(3).join(" ");

       ducoup dans un trucs comme sa je fais comment (ps je débute avec les args)
oak turret
#

l'argument deux sert à quoi en fait

#

fin tu veux faire un embed depuis une commande ?

slate flame
#

let channel = message.mentions.channels.first();

        if (!channel) return message.channel.send('tu dois préciser un channel');

        let maxuser = args[1];

        if (isNaN(maxuser) || (parseInt(maxuser) <= 0)) return message.channel.send('Combiens de personne peuvent réagir');


        let Role = message.mentions.roles.first();

        if (!Role) return message.channel.send('tu dois préciser le role !');


        let titre = args.slice(3).join(" ");

        if (!titre) return message.channel.send('Il me faut un titre');

        let l1 = args.slice(4).join(" ");
        if (!l1) return message.channel.send(`Il me faut la premiere ligne de l'embed`);
oak turret
#

ouf

#

pas ouf de faire un embed depuis une commande je trouve

slate flame
#

en gros je fais sa pour un mec tiens le code en entier si tu veux comprendre

oak turret
#

cette commande fait quoi en fait ?

slate flame
#

en gros

#

/role #🆘-support 1 @👨🏻‍⚖️・Co-Fondateur・✅ titre description

#

quand je fais cette commande sa crée un embed dans le channel (let = channel) Puis sa add une reaction qui give un role (Role) puis sa supprime l'embed lorsque le nombre de personne mentionner dans la commande ont reagis (maxuser)

#

/role #🆘-support 1 @👨🏻‍⚖️・Co-Fondateur・✅ titre description

#

apres titre (let = titre) et description (let l1 = description)

slate flame
#

oui l'arg 2 ne sert a rien en faitr

keen narwhal
#

Slt je cherche de laide pour mettre des bots je suis nouveau sur discord et je suis sur téléphone alors contactez moi.

keen narwhal
#

Oof

#

Ça existe des tutos pour mettre des bots discord ?

#

Ah oui

#

@keen narwhal

cyan iron
#

😂

slate flame
#

Est ce que qqun sais comment je peux faire pour que m'on bot envoie un msg et que je dois répondre un channel et le bot le conserve dans une variable

thorny prism
#

c quoi un mongo url

oak turret
#

@slate flame dès que ton bot envoie le message, tu fais un .then(exemple => { if(exemple) { let ex = exemple.first() } else { const ex = "Pas de réponse"; }); un truc comme ça

#

j’suis sur tel donc j’ai peut-être oublié des trucs

slate flame
#

Ok

slate flame
#

pas trop compris deso

keen narwhal
#

Comment faire ce style de commande svp :

+up @keen narwhal brgpolice

et

+new James Caporaci
^^^^^^^^^^^^^^^
nom rp

#

ca doit donner le grade "Police" et le grade "Brigadier"

cyan iron
#

Il faut utiliser les args

#
let nom = args.join(" ")
keen narwhal
#

oui mais je susi un débutant , je sais pas utiliser les arguments ni faire une commande pour mettre un rôle etc

cyan iron
#

Ah

#

Vous n'êtes pas en handler ?

keen narwhal
#

Handler ?

cyan iron
#

Tout est expliqué ici

#

Même si ce n'est pas le meilleur handler

keen narwhal
#

ca veut dire quoi handler :c

cyan iron
#

Ca consiste en fait à avoir un fichier par commande

keen narwhal
#

ah si

cyan iron
#

Ah bah parfait alors

keen narwhal
#

j'ai crée un fichier commands qui dedans a un fichier js

cyan iron
#

Parfait

keen narwhal
#

qui est vide

cyan iron
#

x)

keen narwhal
#

:c

cyan iron
#

Je dois aller manger désolé ^^

keen narwhal
#

ok :c

cyan iron
#

Qui vous as passé ce handler ?

keen narwhal
#

je l'ai fais grace à McHub sur youtube

slate flame
#

Yo, comment on peut faire pour ajouter une reaction a un messagae predefinis grace a son id

burnt perch
#

pour le coup tout est dispo sur la documentation discord.js

burnt perch
#

engros la façon la plus simple c'est avec la methode suivante :

msg.channel.messages.fetch("unId")

ça donne à la fin :

msg.channel.messages.fetch("743772810157097010")
    .then(message => message.react('😋'))
    .catch(console.error);

Voila 🙂

#

@slate flame

slate flame
#

Ok merci

keen narwhal
#

hey, j'ai un problème avec un await, l'async est défini au tout début mais comme la partie de ce code :

 imgur.uploadUrl(args[1]).then(function(json) { 
       
       await Guild_Data.set(`${serv}.fd`,{
            status: "u",
            wel: json.data.link
        });
       })```
est pris dans une autre boucle, il ne capte pas l'async et, je n'arrive pas à le placer, j'ai essayé : 

```js
 imgur.uploadUrl(args[1]).then(async(function(json) { 
       
       await Guild_Data.set(`${serv}.fd`,{
            status: "u",
            wel: json.data.link
        });
       }))```
ou encore : 

```js
 imgur.uploadUrl(args[1]).then(function(json) async { 
       
       await Guild_Data.set(`${serv}.fd`,{
            status: "u",
            wel: json.data.link
        });
       })```
si vous pouviez m'aider s'il vous plaît
slim anvil
#
 imgur.uploadUrl(args[1]).then(async function(json) { 
keen narwhal
#

ah

#

merci

#

😅

#

bah, maintenant j'ai un autre problème

#
 if(args[0] === "enable") {
        
        let serv = message.author.id
        if(Guild_Data.get(`${serv}.fd.status`) === "u") return message.channel.send(":no: |  Le système est déjà activé.");
            if(!args[1]){
          return message.channel.send("Veuillez mettre un lien")
      }
        partie non pris en compte :

      imgur.uploadUrl(args[1]).then(async function(json) { 
       
       await Guild_Data.set(`${serv}.fd`,{
            status: "u",
            wel: json.data.link
        });
        console.log(json.data.link)
       })```
#

cette partie n'est pas pris en compte

slate flame
#

@burnt perch Sa me dit msg not defined

timid loom
#

@keen narwhal t'es sûr que les deux conditions sont pas remplies ? il y a des returns donc assure toi d'abord de ça

keen narwhal
#

non c'est bon sa marche, mais si l'image n'est pas supporté sa fais rien :/

burnt perch
#

envoie un screen du code @slate flame

#

même si je pense déja savoir quel est le problème

slate flame
#

C’est bon j’ai trouver un autre code

#

channel.messages.fetch(msgr).then(function (message) { message.react("✅") })

burnt perch
#

il fallait juste mettre message à la place je pense

#

oui voila

#

aussi mais bon essaye de comprendre ce que tu fais quand même

#

c'est pour ça regarde la documentation

slate flame
#

j'ai compris il fallait dabors definir le channel et après j'ai bidouiller a l'aveugle

burnt perch
#

oui voila mdrr

slate flame
#

merci en tout cas

burnt perch
#

pas de soucis ^^

keen narwhal
#

re bonjour, j'ai un problème :/, j'aimerais redémarrer le fichier shard.js avec fs mais, j'ai une erreur :/

code :

fs.readdirSync("./shard.js"));

erreur :

857222435db99f8109feaf
(node:14) UnhandledPromiseRejectionWarning: Error: ENOTDIR: not a directory, scandir './shard.js'
at Object.readdirSync (fs.js:955:3)
at Object.module.exports.run (/home/container/commands/clé.js:66:15)
at module.exports (/home/container/events/message.js:34:33)
at Client.emit (events.js:327:22)
at MessageCreateAction.handle (/home/container/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (/home/container/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (/home/container/node_modules/discord.js/src/client/websocket/WebSocketManager.js:384:31)
at WebSocketShard.onPacket (/home/container/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
at WebSocketShard.onMessage (/home/container/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
at WebSocket.onMessage (/home/container/node_modules/ws/lib/event-target.js:125:16)
(node:14) 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:14) [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.```
oak turret
#

ton fichier est où .

#

?

#

racine ?

keen narwhal
#

dans aucun dossier

#

j'ai fais aussi avec un ../

oak turret
#

fait sans ./ etc

#

juste le nom du fichier

keen narwhal
#

d'accord

#
 ENOTDIR: not a directory, scandir 'shard.js'```
mystic sequoia
#

Savez vous récupérer un message privé pour le transmettre dans un salon spécifié 🙂

junior echo
#

@mystic sequoia Tu peux le stocker puis tu le ré-utilises à ta envie

keen narwhal
#

Hey, j'ai besoin d'aide j'ai sa :

 fs.readdir("./commands/", (err, files) => {


    if(err) console.log(err);
    console.log(files) 
 let jsfile = files.filter(f => f.split(".").pop() === "js")
    if(jsfile.length <= 0){
        console.log("Commande introuvable.");
        return;
    }
    jsfile.forEach((f, i) => {
        let props = require(`./commands/${f}`)
        console.log(`${f} est OK!`);
        client.commands.set(props.help.name, props);
    });
});```

mais il croit que les fichiers sont des modules :/
#
Error: Cannot find module './commands/Setuserlang.js'```
keen narwhal
#
fs.readdir('./commands/', (error, f) => {
    if (error) console.log(error);

    let commands = f.filter(f => f.split(".").pop() === "js");
    if (commands.length <= 0) return console.log("Any commands founds !");

    commands.forEach((f) => {
        let command = require(`./commands/${f}`);
        console.error(`「✔️ 」${f} has been charged`);

        client.commands.set(command.help.name, command)

    });
});
#

@keen narwhal

#

je vais tester merci

#

toujours pareil ^^'

#

Montre tout ton ficher main.js ou jsp.js

#

T'as testé de rename le file en setuserlang.js

#

ah nan xd

#

mais c'est une fonction depuis le fichier commands ^^'

keen narwhal
#

Si tu me donnes rien de plus

#

J'peux pas t'aider

keen narwhal
#

@keen narwhal bah je viens de modif

#
const Discord = require("discord.js")
 
module.exports.run = async (bot, message, args) => {
 
    message.delete()
 
    if(message.author.id != bot.user.id) return;
 
    if(!args[0]) return message.channel.send("Merci de précisez le nom de la commande à reload.")
 
    let commandName = args[0].toLowerCase();
 
    try {
        delete require.cache[require.resolve(`./${commandName}.js`)]
        bot.commands.delete(commandName)
        const pull = require(`./${commandName}.js`)
        bot.commands.set(commandName, pull)
 
        message.channel.send(`**La commande \`${args[0]}\` à bien été reload.**`)
    }catch(e) {
        return message.channel.send(`Je ne peux pas reload : \`${args[0].toUpperCase()}\``)
    }
}
 
module.exports.help = {
    name: "auto-reboot-manage"
}```
#

maintenant c'est sa

#

mais sa ne vide pas le cache pour le reprendre

#

Je pourrais pas t'aider

#

^^'

#

Je pense pas que c'est possible de faire un auto-refresh

#

si xd

#

Si tu le dis

#

je l'avais fais sur un autre bot

#

Pour l'instant ça n'a pas l'air de marché

#

mais je n'ai plus mes codes

#

@oak turret Tu saurais certainement plus l'aidé que moi

oak turret
#

le problème ?

keen narwhal
#

Aucune idée

#

Il a juste posté son code

#

Son auto-refresh ne marche pas

#

et vue que j'en ai jamais fait

#

Je pourrais pas aidé

oak turret
#

bah moi non plus, what is this "auto-refresh"

keen narwhal
#

bah, le fichier ne prends pas le nouveau cache

oak turret
#

log un peu partout

#

j'vois pas l'intérêt d'un auto-refresh

keen narwhal
#

sinon dans une commande que j'ai je suis obligé de redémarrer le bot pour qu'il lise un autre fichier

oak turret
#

tu devrais pas faire plutôt bots.cache.delete(commandName) ?

#

mais garde juste ton delete, j'capte pas l'utilité du reste

keen narwhal
#

je vais essayé merci

oak turret
#

np

keen narwhal
#

@oak turret bah, sa lis pas le fichier .json

#

fin les nouvelles données..

oak turret
#

pourquoi tu parles de .json ?

keen narwhal
#

car dans le fichier qu'il reboot sa va lire dans un fichier .json

oak turret
#

quoi ?

keen narwhal
#

mais celui-ci ne lis pas les données donc sa reste vide..

oak turret
#

dans ton code il n'écrit rien et ne lis rien

keen narwhal
#
  let cle = JSON.parse(fs.readFileSync("./clé.json", "utf8"));
     const clef = require("../clé.json");
let e = clef.find(c => message.author.id === c.id)
console.log(clef)```
#

nan dans un autre code

oak turret
#

tout ce qu'il devrait faire c'est de retiré le cache d'une commande

keen narwhal
#

oui

#

mais la commande qui ce le fais retirer dois prendre des données

#

et la clef est vide alors que dans le fichier non...

oak turret
#

ton log de clef = ?

keen narwhal
#

[]

oak turret
#

Ok, donc

#

bot.commands.delete(commandName)
bot.commands.set(commandName, pull)
ceci sert à quoi ?

#

le delete suffit pourtant

#

t'utilises un handler, moi non donc je connais pas du tout ces trucs là

keen narwhal
#

bah, il suffit de supprimé le cache puis redémarrer le fichier

#

ah

oak turret
#

le delete avec ton require.cache[] suffit

#

il te passe ton catch ?

keen narwhal
#

non

#

il me dit qu'il est reboot

#

alors que le fichier n'est pas reboot :/

oak turret
#

mais j'capte pas comment tu peux savoir que ton fichier est reeboot

keen narwhal
#

en effectuant un changement

oak turret
#

et lequel

#

essaye de mettre un fichier en dur pour voir

keen narwhal
#

bah, ce fichier qui ce fait reboot, éffectue un changement sur le message de la commande

#

^^'

#

mais celui-ci ne marche pas

#

:/

oak turret
#

euh ouais bah faudrait que je test car je capte pas trop l'utilité de ce truc, mais log tes trucs un peu partout

#

d'ailleurs

keen narwhal
#

je vais essayer avec nodeactyl au pire

oak turret
#

essaye de choper le cache actuel de la commande tapée avant le delete

#

et log le après le delete

#

pour voir

#

et là tu verras si ton delete fonctionne ou pas

#

faut situer où ça casse

keen narwhal
#

c'est à dire ?

oak turret
#

le cache contient quoi ?

keen narwhal
#

bah le fichier

#

fin le code xd

oak turret
#

ouais alors déjà j'comprend pas trop l'utilité d'reload une commande

#

c'+ se faire chier pour rien

#

autant node lefichier.js et ça te restart ( donc reload )

keen narwhal
#

@oak turret merci de ton aide, j'ai fais un système plus complexe mais qui marche

keen narwhal
#

Salut, j’ai entendu des rumeurs comme quoi on en pouvait plus avoir le badge Développer

#

quelqu’un pourrait me confirmer si on peut encore l’avoir ?

keen narwhal
#

Pour le moment, oui, mais dans peu non

keen narwhal
#

ok cimer

#

De rien.

west plover
#

et tu le crée comment ton field aussi?

oak turret
#

je le crée pas, ça c'est dans ma boucle en fait

#

ah ui mais j'suis con

#

xD, c'est bon ⭕o

west plover
#

yeye

oak turret
#

merci^^

west plover
#

bah de rien, littéralement kapp

oak turret
keen narwhal
dire latch
#

Hey, quelqu'un sais comment créer une table via une commande ? J'utilise MYSQL 🙂

hazy mirage
#

Tiens un exemple qui est censé fonctionner info_player_think

CREATE TABLE IF NOT EXISTS `tatable` (
    `name` VARCHAR(16) NOT NULL
)```
dire latch
#

Et il faut que je déclare quelqu'un chose ?

#

Car si je met que ça

#

Sa m'indique des erreurs

dire latch
#

Please 🙂

dire latch
#

J'ai ceci:

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

module.exports.run = async (bot, message, args, bdd) => {
    let nameclub = args.join(' ');
    if (!nameclub) return message.reply("Vous devez indiquer le nom de votre **Club** !")
    if (nameclub.length > 35) return message.reply("Le nom de votre **Club** ne doit pas faire plus de **35** caractères !")
    bdd.query("CREATE TABLE IF NOT EXISTS `${nameclub}` ( `id` int(11) NOT NULL, `nomduclan` varchar(50) NOT NULL, `chefduclan` varchar(50) NOT NULL, `idduchefduclan` varchar(100) NOT NULL, `description` text, `createdAt` varchar(50) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;")
};

module.exports.help = {
    name: "createclubtest",
    category: "YouTube",
    info: {
            description: "Permet de créer son propre club !",
            usage: "<Nom du Club>"
    }
};
slate flame
#

Comment on fait pour moov un channel dans une category ?

dire latch
#

Que tu créer ? @slate flame

slate flame
#

nn qui éxiste dèja je veux qu'il soit moov quand je click sur une reaction

hazy mirage
#

channel.setParent(categoryId)

dire latch
#

Quelqu'un a une solution pour moi 🙂

#

Je voudrai faire en sorte que si je fais: /createclubtest nomdemonclub, sa créer automatiquement ma table avec le nom de mon club 🙂

hazy mirage
#

@dire latch ça te met une errreur ?

#

bdd est déclaré comment ?

dire latch
#

Ici module.exports.run = async (bot, message, args, bdd) => {

hazy mirage
#

De l'autre côté

dire latch
#

Avec var bdd = mysql.createConnection({

hazy mirage
#

fait un bdd.connect() avant et un bdd.end() après

dire latch
#

Ou ça ?

#

Dans ma commande

#

?

hazy mirage
#

attend je te modifie ton code

#
const Discord = require("discord.js");
const moment = require('moment');

module.exports.run = async (bot, message, args, bdd) => {
    let nameclub = args.join(' ');
    if (!nameclub) return message.reply("Vous devez indiquer le nom de votre **Club** !")
    if (nameclub.length > 35) return message.reply("Le nom de votre **Club** ne doit pas faire plus de **35** caractères !")

    bdd.connect()
    
    bdd.query("CREATE TABLE IF NOT EXISTS `${nameclub}` ( `id` int(11) NOT NULL, `nomduclan` varchar(50) NOT NULL, `chefduclan` varchar(50) NOT NULL, `idduchefduclan` varchar(100) NOT NULL, `description` text, `createdAt` varchar(50) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;", function (error, results, fields) {
        if (error) throw error;
        console.log(results[0]);
    });

    bdd.end()
};

module.exports.help = {
    name: "createclubtest",
    category: "YouTube",
    info: {
        description: "Permet de créer son propre club !",
        usage: "<Nom du Club>"
    }
};```
dire latch
hazy mirage
#

ha

#

euh

dire latch
#

🙂

#

Si tu as d'autres solutions, jsuis preneur @hazy mirage 😉

hazy mirage
#

enleve le .connect

dire latch
#

Ok

hazy mirage
#

enfin toute la ligne ta capté

dire latch
#

Oui tkt mdr

#

Ah mais attends, j'avais fais une erreur sur mon code en haut 🙂

hazy mirage
#

¯_(ツ)_/¯

dire latch
#

J'obtiens undefined @hazy mirage

hazy mirage
#

ok mais c'est passé" du coup nan?

dire latch
#

Ba sa m'as créer une table nommer: ${nameclub}

#

Mais pas le nom que j'ai choisi 🙂

hazy mirage
#

oui

#

normal

#
`CREATE TABLE IF NOT EXISTS \`${nameclub}\` ( \`id\` int(11) NOT NULL, \`nomduclan\` varchar(50) NOT NULL, \`chefduclan\` varchar(50) NOT NULL, \`idduchefduclan\` varchar(100) NOT NULL, \`description\` text, \`createdAt\` varchar(50) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;`
#

met ça plutot

dire latch
#

Dac, et fais attention, tu me met 2X ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; 🙂

hazy mirage
#

bon

dire latch
#

🙂

#

Sinon, sa fonctionne

#

Mais ducoups, comment je fais pour dire qu'il existe déjà ?

#

Et merci

hazy mirage
#

alors avec les parametre du callback, il te renvoie peut etre que ça existe déjà

#

si ce n'est pas le cas

#

enleve le if not exists ça te renverra une erreur je pense et tu pourrais peut etre t'en servir

dire latch
#

Ok je vais voir ça

keen narwhal
#

Bonjour, hier j’avais déjà poser ma question mais même avec l’aide je n’ai pas trouver, je souhaiterai faire dans les logs à chaque ajout du bot un message, et dans le status du bot, le nombre d’user et de serveur ayant le bot

oak turret
#

alors faut voir si y a un event sur ça

keen narwhal
#

Un pote l’avais fait sa disait " pseudo à ajouter nomdubot sur nomduserveur "

#

Mais j’ai jamais trouver l’event pour le faire

oak turret
#

j’vais look

#

ouais ok

#

j’pense

#

alors dans l’event guildmemberadd

#

tu check l’id de l’user

#

si il est = à l’id du bot

#

alors t’envoies un message dans tes logs

#

tu get la guild, le channel et tu send

keen narwhal
#

Merci de ton aide, mais je serrait pas faire sa, je suis encore un débutant 😆

hazy mirage
#

Hey @keen narwhal

C'est l'event guildCreate qu'il faut utiliser (https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-guildCreate)
Voici un exemple: ```JS
client.on( guildCreate, (guild) => {
guild.channels.first().createInvite().then(inv => console.log(${guild.name}, ${inv.url}));

})```

keen narwhal
#

Merci beaucoup, et quand il est retirer du serveur c'est guildDelete ?

hazy mirage
#

Effectivement

keen narwhal
#

Nickel, merci pour ton aide

keen narwhal
#

Et tu sait comment faire pour que a chaque fois que le bot est ajouter, il crée une invitation du serveur ou il a été ajouter et l'envoie via une log ?

hazy mirage
#

Voici un exemple: JS client.on( `guildCreate`, (guild) => { guild.channels.first().createInvite().then(inv => { console.log(`${guild.name}, ${inv.url}`) }); })

keen narwhal
#
    at Client.<anonymous> (c:\Users\desktop\Desktop\[LOGS]\index.js:18:20)
    at Client.emit (events.js:327:22)
    at Object.module.exports [as GUILD_CREATE] (c:\Users\desktop\Desktop\[LOGS]\node_modules\discord.js\src\client\websocket\handlers\GUILD_CREATE.js:33:14)
    at WebSocketManager.handlePacket (c:\Users\desktop\Desktop\[LOGS]\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
    at WebSocketShard.onPacket (c:\Users\desktop\Desktop\[LOGS]\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (c:\Users\desktop\Desktop\[LOGS]\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
    at WebSocket.onMessage (c:\Users\desktop\Desktop\[LOGS]\node_modules\ws\lib\event-target.js:125:16)
    at WebSocket.emit (events.js:315:20)
    at Receiver.receiverOnMessage (c:\Users\desktop\Desktop\[LOGS]\node_modules\ws\lib\websocket.js:797:20)
    at Receiver.emit (events.js:315:20)
<node_internals>/internal/process/warning.js:32
(node:11208) 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:32
(node:11208) [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 met random à la place de first

#

Même erreur que toute a l'heure sauf que : (node:6936) UnhandledPromiseRejectionWarning: TypeError: guild.channels.random is not a function

#

Vous êtes en v12 de discord.js ?

#

Oui

hazy mirage
#

utilise guild.channels.cache.first() alors

keen narwhal
#

Ouais sa sera mieux xD

#

et maintenant : (node:8908) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Channel :/

#

met random

#

Justement, deja essayer c'est pareil

#

First c'est pour les mentions xD

#

Bizarre

#

la c'est comme sa : client.on( `guildCreate`, (guild) => { guild.channels.cache.random().createInvite().then(inv => { console.log(`${guild.name}, ${inv.url}`) }); })

#

et j'ai sa : (node:7004) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Channel

#

C'est bizarre

#

🤔

hazy mirage
#

Essaye ça: JS client.on(`guildCreate`, (guild) => { setTimeout(function() { guild.channels.cache.first().createInvite().then(inv => { console.log(`${guild.name}, ${inv.url}`) }) }, 1000) })

keen narwhal
#
c:\Users\desktop\Desktop\[LOGS]\index.js:19
        guild.channels.first().createInvite().then(inv => {
                       ^

TypeError: guild.channels.first is not a function
    at Timeout._onTimeout (c:\Users\desktop\Desktop\[LOGS]\index.js:19:24)
    at listOnTimeout (internal/timers.js:549:17)
    at processTimers (internal/timers.js:492:7)```
hazy mirage
#

ha merde pardon

#

j'ai obulié de remettre le cache ici

#

voila c'est edit

keen narwhal
#

le retour du (node:10840) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Channel

#

Pour random aussi ?

#

Ouep

#

Woaw c'est chiant sa

hazy mirage
#

console.log( guild.channels.cache ) pour voir

keen narwhal
#

Je le met ou ?

hazy mirage
#

client.on(guildCreate, (guild) => {
ici
...

}

keen narwhal
#

Je le remplace ?

terse salmon
#

Non tu le mets entre les 2 {}

#

Où il y a les ...

keen narwhal
#

J'ai pas compris, je viens de me reveiller sorry

#

Dans ton code

#

Tu rajoutes juste ce qu'il t'a donné

#

Tu n'enlève rien

terse salmon
#

client.on(guildCreate, (guild) => {

console.log(guild.channels.cache)

}

keen narwhal
#

moi ze vais manger, si on peut m'aider je suis preneur :/

oak turret
#

log juste guild

keen narwhal
#
client.on(guildCreate, (guild) => {
setTimeout(function() {
     
        guild.channels.cache.random().createInvite().then(inv => {
            console.log(`${guild.name}, ${inv.url}`)
        })
    }, 1000)
})```
#

je viens de tester et sa marche ça ^^'

oak turret
#

nickel

keen narwhal
#

Je vais tester et je te dit sa

#

ok

#

je vous l'ai retiré

#

prenez le nouveau code

#

^^'

#

Nickel, merci beaucoup l'ami tu me sauve

#

celui qui à le plus aidé c'est pilot2 ^^'

#

Ah bah ducoup : (node:4500) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Channel

#

attends

#

Je croit qu'il faut obligatoirement le fameux truc umpeu relou

#

bah non

#

sa marche très bien chez moi

#

pourtant le code c'est bien sa : ``` client.on(guildCreate, (guild) => {
setTimeout(function() {

            guild.channels.cache.random().createInvite().then(inv => {
            console.log(`✨ Le Bot ${client.user.username} a été ajouter sur le serveur " ${guild.name} " | ID : (${guild.id}) Invite : ${inv.url}`)
        })
    }, 1000)
})```
#

je vais essayer ton code attends

#

euh là........

#

Ok non c'est bon j'ai réussi je suis stupide..

#

J'avais oublier d'enlever l'ancien

#

ah...

#

de rien

hazy mirage
#

@keen narwhal Maintenant tu peux log dans un channel sur ton discord si tu veux 🙂

keen narwhal
#

@hazy mirage merci d'avoir aidé même beaucoup xD

#

@hazy mirage C'est ce que je vais faire

hazy mirage
#
client.on(`guildCreate`, (guild) => {
    setTimeout(function() {
        guild.channels.cache.random().createInvite().then(inv => {
            console.log(
                `✨ Le Bot ${client.user.username} a été ajouter sur le serveur " ${guild.name} " | ID : (${guild.id}) Invite : ${inv.url}`
                )
            client.channels.cache.get("id du channel que tu veux").then(channel => {
                channel.send(
                    `✨ Le Bot ${client.user.username} a été ajouter sur le serveur " ${guild.name} " | ID : (${guild.id}) Invite : ${inv.url}`
                    )
            })
        })
    }, 1000)
})```
#

De rien @keen narwhal

keen narwhal
#

🙂

#

J'avais fait via un webhook, mais je vais faire avec ton code c'est beaucoup mieux

keen narwhal
#

Encore moi, petit problème : console.log(`${client.guilds.size}`);

oak turret
#

.cache

#

${client.guilds.cache.size}

keen narwhal
oak turret
#

np

keen narwhal
#
if (message.content.startsWith(";rank")) {
 
    var user = message.mentions.users.first() || message.author
 
    var output = await leveling.Fetch(user.id)

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

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

      ctx.strokeStyle = '#74037b';
      ctx.strokeRect(0, 0, canvas.width, canvas.height);

      ctx.font = '28px sans-serif';
      ctx.fillStyle = '#74037b';
      ctx.fillText(`Levels : ${output.level}`, canvas.width / 2.0, canvas.height / 3.5);

      ctx.fillStyle = '#74037b';
      ctx.fillText(`XP : ${output.xp}/100`, canvas.width / 2.0, canvas.height / 1.8);

      ctx.beginPath();
      ctx.arc(125, 125, 100, 0, Math.PI * 2, true);
      ctx.closePath();
      ctx.clip();

      const avatar = await Canvas.loadImage(user.displayAvatarURL);
      ctx.drawImage(avatar, 25, 25, 200, 200);

    const attachment = new Discord.Attachment(canvas.toBuffer(), './umg.jpg');
    
    message.channel.send(attachment)
  }
})```
#

hey, j'ai un problème avec ça

#

le message ne s'envoie pas

#

:/

oak turret
#

une erreur?

keen narwhal
#

non

oak turret
#

ton event est async?

keen narwhal
#
client.on('message', async message => {```
#

oui

oak turret
#

ok, j’connais pas canvas donc idk

keen narwhal
#

merde

#

:/

oak turret
#

essaye de console.log

keen narwhal
#

log quoi ?

oak turret
#

un peu tout voir où ça casse

#

log attachement aussi

keen narwhal
#

console.log(attachment)

#

Seulement sa ?

oak turret
#

ui

keen narwhal
#

D'zccord

#

D'accord*

#

Sa ce logs pas

#

.-.

keen narwhal
#

Salut,
j'aimerais faire un systeme en sorte que le bot détecte si un utilisateur a un certain mot dans son status pour ensuite lui ajouter un role !

#

j'aimerais savoir si c'est possible

slim anvil
#

oui c'est possible je l'avais fais mais g pu le code

oak turret
#

tu fetch tous les users

#

et de là

#

tu check leurs status

#

si il inclut genre 'a' tu fais ton code

keen narwhal
#

cimer je vais test

full scaffold
#

Yo, je cherche une liste de tout les client.on('letruc')

slim anvil
full scaffold
#

Normal que l'event "message" soit pas dedans ?

slim anvil
#

ah oopsi c'est les web sockets events peut etre pas ceux de la lib

full scaffold
#

ah

slim anvil
#

avec la description dessus de chaque event demizieu

full scaffold
#

Trop bien

magic orbit
#

Sinon t as la doc officiel

full scaffold
#

Nice

keen narwhal
#

Coucou, petit problème, voici mon code, et voici le problème :

#
        console.log(`L'Utilisateur ${user.tag} a modifier le message " ${oldMessage} " par " ${newMessage} "`);
    });```
#

Sa marche nickel, mais dans les logs : L'Utilisateur undefined a modifier le message " undefined " par " undefined "

#

siouplai

slim anvil
#

Tu me dis "Tu gères" concernant le lien que j'ai envoyé, alors regarde-le tu verras ton erreur harold

#

dans l'event messageUpdate tu ne recois que 2 paramètre qui sont oldMessage, newMessage

#

channel et user ne sont pas envoyer en tant que params

#

tu peux les retrouver dans les autres params directement

#

comme pour l'event message

keen narwhal
#

Bien vu, je vais voir sa ^^

oak turret
#

Hello, j'ai un petit problème, je vous explique, je créer une commande pour créer un channel, puis ensuite je fais une autre commande dans celle-ci, pour delete le channel, je fais quelques vérifs, et je fais ensuite message.channel.delete, seulement cela me dit ça, mais je ne sais pas d'où vient le pb ^^

#

code :

#
if ( command === "buyvip" ) {
        if ( !message.channel.id === "748182556918284390" ) { return; }
        const chan = message.guild.channels.create(`achat-vip-de-${message.author.username}`, {
            type: 'text',
            parent: '748974599898660956',
        }).then(chan => {
            chan.send(`Bonjour / Bonsoir ${message.author}, voici les informations sur votre demande d'achat du VIP ↓ :  (|| <@&748276151180591145> <@&747785453708771328>||)`);
            chan.send(
                vip_embed = new Discord.MessageEmbed()
                    .setColor("#B28700")
                    .setDescription('Merci de donner l\'id de votre achat paypal, + screen de l\'achat (photo)')
                    .addFields(
                        {name: "Sujet : ", value: "Demande d'achat d'un VIP", inline: true},
                        {name: "Nom du joueur : ", value: `${message.author}`, inline: true}
                    )
                    .setTimestamp()
            )
            chan.send(vip_embed);
            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('748276151180591145'), {
                VIEW_CHANNEL: true,
                SEND_MESSAGES: true
            })
            
        }).then((chan) => {
            if ( command === "deletechannel" ) {
                if ( !message.channel.id === chan.id && !message.member.roles.has("748276151180591145") || !message.member.roles.has("747785453708771328")) { return message.author("Je ne peux pas faire ça") }
                else { message.channel.delete(); }
                
            }
        })
    }
#

erreur :

#

[INVALID_TYPE]: Supplied overwrites is not an Array or Collection of Permission Overwrites.

dire latch
#

C'est pas channel.delete ?

oak turret
#

j'ai essayé chan.delete() aussi, je vais essayer channel.delete()

slim anvil
#

channel est déclaré nul part

#

alors ça sert a rien d'essayer ça

oak turret
#

oauip

#

chan.delete() devrait fonctionner pourtant

#

peut-être mon .then() après les overwrite qui veut pas

slim anvil
#

je déteste le promise chaining on s'y retrouve clairement pas je trouve dans le code la

oak turret
#

j'aurais pu le faire en ligne pour + de visibilité en effet

slim anvil
#

Non ça changerait rien

#

ça va aps résoudre le problème, mais déjà le naming de tes variables est hyper important

#

tu const chan = ....

#

et dans ton .then tu chan aussi

#

du coup je sais pas comment tu t'y retrouves mais c'est bagdad

oak turret
#

ui ça c'est sur, juste pour la visibilité, bah chan pour channel quoi

slim anvil
#

oui mais tu te retrouves avec 3* chan mais qui contient pas la meme chose

oak turret
#

j'viens de changer, en effet c'mieux xD

slim anvil
#

renvoie du coup stp

#

ce sera plus simple a la lecture

oak turret
#

oauip

#
if ( command === "buyvip" ) {
        if ( !message.channel.id === "748182556918284390" ) { return; }
        const chan = message.guild.channels.create(`achat-vip-de-${message.author.username}`, {
            type: 'text',
            parent: '748974599898660956',
        }).then(vip_channel => {
            vip_channel.send(`Bonjour / Bonsoir ${message.author}, voici les informations sur votre demande d'achat du VIP ↓ :  (|| <@&748276151180591145> <@&747785453708771328>||)`);
            vip_channel.send(
                vip_embed = new Discord.MessageEmbed()
                    .setColor("#B28700")
                    .setDescription('Merci de donner l\'id de votre achat paypal, + screen de l\'achat (photo)')
                    .addFields(
                        {name: "Sujet : ", value: "Demande d'achat d'un VIP", inline: true},
                        {name: "Nom du joueur : ", value: `${message.author}`, inline: true}
                    )
                    .setTimestamp()
            )
            vip_channel.send(vip_embed).then((channel) => {
                if ( command === "deletechannel" ) {
                    if ( !message.channel.id === channel.id && !message.member.roles.has("748276151180591145") || !message.member.roles.has("747785453708771328")) { return message.author.send("Je ne peux pas faire ça") }
                    else { message.channel.delete(); }
                    
                }
            })
            vip_channel.overwritePermissions(message.guild.roles.everyone, { VIEW_CHANNEL: false, SEND_MESSAGES: false })
            vip_channel.updateOverwrite(message.author.id, { VIEW_CHANNEL: true, SEND_MESSAGES: true, READ_MESSAGE_HISTORY: true })
            vip_channel.updateOverwrite(message.guild.roles.cache.get('748276151180591145'), { VIEW_CHANNEL: true, SEND_MESSAGES: true })     
        })
    }
#

mieux ? xD

#

ce système la fonctionne, les permissions sont bien appliqués

slim anvil
#

ah peut etre, juste déjà régler le naming et tout histoire que ce soit lisible

oak turret
#

le naming te convient mieux Enzo ?

dire latch
#

Jlaisse les autres mdr, sur tél, c'est le bordel

slim anvil
#

haha mcduck a fond j'imagine meme pas là

oak turret
#

dans un tableau, euh comment du coup car j'ai l'overwrite et le updateoverwrite

#

grave merci duck :p

slim anvil
#

faut les faire en asynchrone tes updates

#

car tu coup tu overwrites permissions il a peut etre pas le temps de le faire qu'il passe direct à l'update etc

dire latch
#

Mdrr

slim anvil
#

je suis po sur mais essaye

oak turret
#

genre await devant tu veux diree

slim anvil
#

oui

dire latch
#

Merci discord sur tél 👍

oak turret
#

ouf ouais duck xD

#

je test ça

slim anvil
#

oublie pas le async

dire latch
#

C'est très lisible 👍😅

oak turret
#

l'event est déjà async, c'bon non ?

slim anvil
#

non faut que ce soit la dernière fonction

#

dans lequel se trouve le await

dire latch
#

Oo tout beau

#

@pure raven Thx

slim anvil
#

donc ton

.then(vip_channel => {
#

par contre curieux d'un truc
ta premiere condition

if (command === 'buyvip') {}

et dedans on retrouve ensuite

if (command === 'deletechannel') {}
#

le deletechannel ne sera jamais true vu que la premiere condition est rempli....

#

ou alors je saisis pas un truc

oak turret
#

bah ouais du coup alors en fait

#

dans cette commande j'créer une nouvelle commande, qui s'exécute après les update, et se lance seulement si c'est les admins qui la font et si la commande est dans le bon channel

dire latch
#

Pourquoi tu fais pas en deux parties ?

oak turret
#

car j'vois pas comment la relier autre part

dire latch
#

Ba tu fais si la commande delete est effectué dans un channel commancant par X