#javascript-typescript

1 messages · Page 65 of 1

oak turret
#

Ok ! Alors je vais regarder ça !

#

yes faut juste que je lise en faisant et ça devrait aller je vais regarder tout ça ty !

#

j'ai fais ça là, mais je suis censé faire quoi du coup après ? j'ai pas très bien compris du coup le coup des embeds en array etc ?

#

car le tableau de pages d'embed là faut que je le foute dans la boucle, car faut que j'en génère x nombre pour afficher tous les noms on est d'accord ?

spring dock
#

en gros

oak turret
#

yes je t'écoute

spring dock
#
défini tableau pages vide
défini variable = 0 (on va la nommer count par exemple)
boucler player
  récupérer taille nom
  if count + taille nom > 1024
    count = 0
    créer embed avec le text
    push l'embed dans le t ableau de pages
  else
    text = text.','.nouveau nom
    count = text.length

envoyer embed avec pagination
oak turret
#

Ok alors dis moi je comprends pas le else en fait, le if est good ?

spring dock
#

nn

oak turret
#

qu'est ce qui est pas bon ?

#

j'ai corrige le player[i] en player[i].name mais je vois pas après

spring dock
#

ah att my bad je suis débile

#

le texte

#

tu le set pas dans if

#

mais dans else

oak turret
#

l'inverse plutôt ? car dans ce que t'as écris c'est ça

spring dock
#

je m'était trompé j'avais mis dans les deux en fait

#

du coup tu retire du if et du met dan sle lse

#

mais de toute façon ton truc la c'est pas bon

#

il te faut une variable qui stocke tout les noms

oak turret
#

mais là je l'ai pas fais donc

spring dock
#

du coup en dehors de ta boucle

oak turret
#

ahhh

spring dock
#

tu fait une variable = a rien

#

et après dans le else tu met = nom + nom + nom + .....

#

et dans le if tu reset a ""

oak turret
#

ok donc en dehors elle est null, mais dans le if elle est = à quoi ? si dans le else elle est à player[i].name ?

#

ahh

#

my bad

#

là y a quoi qui va pas du coup ? dans le truc plus haut ?

#

le player[i].name += ',' je vire ?

#

et text = à quoi ? je comprends pas

#

car je veux juste afficher le même field dans toutes les pages juste la value qui change

spring dock
#

oui tu vire

oak turret
#

yes j'ai fais ça

#

mais c'est le else où je capte pas trop

spring dock
#

text c'est ta variable que tu défini en dehors de ta boucle et dans le else tu set aux noms un par un et dans le if tu la reset

#

après avoir ajouté l'embed dans le tableau de pages

oak turret
spring dock
#

ouais ptet

oak turret
#

car je push dans le if du coup

#

comme ton exemple

spring dock
#

bah

#

name_players += player[i].name + ', '

#

dans le else

oak turret
#

ah yes my bad, mais du coup mon field je le défini où etc ? car tu m'as dis d'envoyer l'embed en pagination etc

spring dock
#

bah comme un embed normal, avec le .addField

oak turret
#

okay j'ai finis, je vais test ça

spring dock
#

après avoir fermer ta boucle, tu send le truc de pagination la

#

et c'est pas bon

#

aussi

#

car faut que tu redéfinisse ta varialbe name_players après avoir push l'embed

#

dans le tableau

oak turret
#

faut que la reset après le push ?

spring dock
#

oui

oak turret
#

okay je fais ça

#

Euh alors ouais, je log avant la valeur de tous ça fonctionne mais dans le if il bloque je capte pas trop là il trouve pas name xd

spring dock
#

🤷

oak turret
#

Ouais je sais mais j'arrive pas à trouver de soluce

#

En gros quand un joueur se co, il a un objet vide, seulement j'arrive pas à renommer seuelement lui :x

slim anvil
#

Ton object il est dans un tableau on est oki ?

#

Donc quand le joueur se connecte tu push un nouvel objet dans ton tableau de joueurs ?

oak turret
#

J'utilise gamedig, et j'imagine que c'est quand il se connecte, et yes il est dans un tableau

slim anvil
#

okay et du coup tu cherches à faire quoi

#

a quel moment

oak turret
#

Bah du coup, quand un joueur se connecte, ça bloque mon code, il ne trouve pas "lenght" quand il passe sur une entrée vide, du coup je cherche juste à lui refiler un name

#

genre "En cours de connexion"

#

pour qu'il puisse get la taille et continuer dans le if

#

mais il faut déjà que je get les entrées vide

#

j'ai essayé mais sans grand succès

slim anvil
#

donc tu veux juste vérifier que name soit vide et si il est vide mettre un pseudo c’est ça ?

oak turret
#

alors non, du coup je veux get les joueurs et si une des entrées est vide alors je lui rajoute un name yes

slim anvil
#

Oui donc tout les autres à vide tu veux leur ajouter un name ?

oak turret
#

yes !

slim anvil
oak turret
#

je vais tester ça ty !

slim anvil
#

players.forEach(player => { //code ici }) et voilà

#

en partant du principe que players= ton tableau of course

oak turret
#

donc le forEach dans la boucle ,

#

yes

slim anvil
#

bah non t’as une seule boucle dans ton cas

#

Une boucle sur ton tableau de joueurs

#

Pas besoin d’en avoir d’autres ??

oak turret
#

J'ai déjà un for get tous les joueurs et faire le reste mais yes je dois pouvoir faire ça

slim anvil
#

Ta première boucle sert a quoi ? En soit si tu n’as qu’un tableau tu fais tout dans la même boucle je comprend po trop

oak turret
#

Bah en fait la première me sert à get tous les joueurs, mais yes c'est la même chose donc je vais tout mettre dans le forEach I think

slim anvil
#

Bayes

oak turret
#

Ok alors ça fonctionne, seulement il m'affiche tous les noms dans le field et il ne pagine pas :x

#

j'ai du faire une bêtise

spring dock
#

ah mais att

oak turret
spring dock
#

tu voulais pas que tout les joueurs soit sur le même field?

#

genre tu voulais une page = un joueur?

oak turret
#

bah que ça change de field yes

#

genre

#

que ça affiche le max de joueurs par page

#

mais que ça reste le même embed

#

faudrait régénérer un embed non ?

spring dock
#

ah donc un field = un joueur mais du coup c'est une limite de 25 fields

#

c bien ça?

peak cedar
#

hey slt

#

j'ai besoin d'aide

#
    if (message.content.startsWith("Besoin d'aide")) {

        if (message.reply("Bonjour qu'elle est votre problème \n")) {

            await message.react("1️⃣")
            await message.react("2️⃣")


        }

    }
#

je peux faire quoi pour react au msg de mon bot et pas au miens ?

spring dock
#

Tu défini une constante au dessus de ta condition (que d'ailleurs tu peux retirer) qui serait égale à message.reply("blabla") (n'oublie pas de faire une fonction async et mettre le await devant)
et après du coup tu fait taconst.react blabla

#

au lieu de message

peak cedar
#

oiualkalala

#

j'ai rien comprit

keen narwhal
#

xD

peak cedar
#

je me sens debile comme dab 😂

spring dock
#

bon

keen narwhal
#

tiens

spring dock
#

je voulais pas faire ça mais je me sent obligé

oak turret
#

@spring dock Bah en gros je voudrais remplir un field de joueur, fin le max quoi c'pour ça que je test si c'est > 1024

spring dock
#
if (message.content.startsWith("Besoin d'aide")) {
  const msg = await message.reply("Bonjour qu'elle est votre problème \n")
  await msg.react("1️⃣")
  await msg.react("2️⃣")
}
oak turret
#

et après quand l'user réagis avec l'émoji là ça lui met un nouveau field avec la suite des joueurs etc..

spring dock
#

fait un exemple via discohook @oak turret de ton embed avec plusieurs users stp parce que j'comprends rien

oak turret
#

Okay xd je fais ça

keen narwhal
#

en gros un système de pagination

oak turret
#

@spring dock Un truc comme ça, avec les réact bien sur et après genre ça regènere un embed avec un nouveau field avec la suite des joueurs tu vois ?

spring dock
#

ah mais c'est pas des fields ça c'est la description

oak turret
#

c'est un field que j'ai mis là

spring dock
#

ah genre liste des joueurs c'est le name et les joueurs value?

oak turret
#

yep

spring dock
#

bah le truc que ta fait tout a l'heure devrait être bon normalement

#

enfin faut juste remplacer les , par des - et des \n

oak turret
#

bah du coup non ça me faisait un autre embed et non un edit, my bad en effet, et la pagination marchait pas

#

avec aucune erreur :x

#

mais là du coup mon code actuel ne calcule même pas la pagination

spring dock
#

comment ça un autre embed et pas un edit

oak turret
#

Ah si ça calcule la pagination mais ça mets pas d'autre page

#

bah si un edit du coup xd

spring dock
#

logique si le texte est pas assez long ça met pas d'autre page

oak turret
#

ouais my bad mais y a 75 noms quand même xd

spring dock
#

essaye de mettre une longueur plus petite pour test

#

genre 100 caractères

oak turret
#

okay

#

Ouais alors c'est chelou il m'affiche qu'un joueur "En cours de connexion", du coup il edit le premier embed

#

le 2ème contient les joueurs

spring dock
#

ehh

oak turret
#

du coup

#

j'ai enlevé le push car je créer un nouveau embed dans le if tu sais ?

#

du coup

#

bah

#

il m'affiche les joueurs

#

mais pas la pagination

#

il veut pas .setFooter idk pourquoi x:

#

ah oui ok j'ai vu

#

mais c'est chelou quand même, 57 entrées etc ça fais pas 1024

#

même moinns il me fait pas plusieurs pages

#

Genre look j'ai mis > 512, y a tous les joueurs mais pas plusieurs pages wtf

spring dock
#

ouais jsp du coup

oak turret
#

Ah yes à 100 ça fonctionne mais ça mets pas à jour les infos

#

c'est normal ?

keen narwhal
#

pk tu mets une limite en fonction du nombre de caractères et pas en fonction du nombre de joueurs (genre seulement 10 joueurs par page)

si c'est avec les caractères, le dernier joueur pourrait avoir son pseudo coupé

oak turret
#

Car un field peut contenir au plus 1024 caractères, et faire seulement 10joueurs par page je vois pas comment faire

#

là tout de façon ça mets pas à jours les joueurs suivants donc

spring dock
#

si c'est avec les caractères, le dernier joueur pourrait avoir son pseudo coupé
non si il a bien fait comme je lui ai dit le problème ne devrait pas exister

oak turret
#

et non il n'existe pas le problème

#

y a juste la maj des infos qui se fait pas

#

genre :

spring dock
#

fait voir ton code

oak turret
spring dock
#

bah normal

#

tu push X fois embed_servers

#

qui du coup est toujours le même

oak turret
#

je l'avais enlevé mais ça faisait pareil mais je vais re test

#

du coup je mets quoi dans pages ?

#

car si je mets rien erreur, si je mets embed_servers ça marche mais ça fout une connerie

spring dock
#

faut tu créer l'embed avant de push

oak turret
#

j'ai enlevé embed servers de pages

spring dock
#

oui mais du coup name_players = ""; tu le met après

oak turret
#

okay

spring dock
#

bah logique

#

ça tu le fait quand tu créer l'embed

#

^^

oak turret
#

je le met où ? car je vois pas là du coup

spring dock
#

bah

#

au même endroit que ton settimestamp et tout la

oak turret
#

aaah

#

yep tout marche

#

ty !

spring dock
#

np

peak cedar
#

@spring dock j'ai encore un prob

spring dock
#

?

peak cedar
#
    if (message.content.startsWith("Besoin d'aide")) {
        const msg = await message.reply("Bonjour qu'elle est votre problème :\n 1) Problème Panel\n 2) Autre problème \n  ")
        await msg.react("1️⃣")
        await msg.react("2️⃣")

        if (reaction.emoji.name = "1️⃣") {

            message.channel.send(`test`)



        }

        if (reaction.emoji.name = "2️⃣") {







        }

    }

#

sa marche âs

keen narwhal
#

brouh

spring dock
#

mais est-ce que tu cherche un minimum à comprendre ce que tu fait ou pas?

keen narwhal
#

faut que tu crée un collector (huh)

peak cedar
#

jtavoue la ...........

#

voila quoi

#

c juste pour les debut de ce code apres jvais comprendre mais la je comprend pas pk sa marche pas jpeux check comment ?

#

@spring dock

keen narwhal
spring dock
#

stop me ping merci

peak cedar
#

okey

peak cedar
#

trop dur j'y arriverais pas 😦

keen narwhal
#

mais mdr y'a la doc à ta disposition
la doc est censée t'aider xD

timid loom
#

et @peak cedar si on te dit de le faire par toi-même c'est pour que tu puisse te débrouiller seul après

timid loom
#

Bah dans ce cas attends un peu, fais une pause. Essaie de le refaire avec un esprit frais

#

Le code qu'on te donnerait ça serait pareil que te donner l'exemple de la doc

#

Donc tu fais une pause, et tu reviens avec les idées claires

peak cedar
#

tjr rien

#

je suis obliger de collect ?

keen narwhal
#

y'a pas d'autre façon plus facile

timid loom
#

Mais c'est ultra simple via un collector

#

Y a d'autres moyens oui

#

Sauf que le seul résultat c'est que tu vas refaire un collector en moins bien fait

#

@peak cedar tiens ça c'est l'exemple donné par le wiki

// Create a reaction collector
const filter = (reaction, user) => reaction.emoji.name === '👌' && user.id === 'someID';
const collector = message.createReactionCollector(filter, { time: 15000 });
collector.on('collect', r => console.log(`Collected ${r.emoji.name}`));
collector.on('end', collected => console.log(`Collected ${collected.size} items`));
peak cedar
#

oe et ensuite je fait quoi 😭

timid loom
#

Ensuite tu l'adapte à ton problème

#

Donc regarde ton code

#

et regarde l'exemple

#

et essaie d'adapter l'exemple à ton code

#

autrement dit, de faire ressembler ton code à l'exemple

peak cedar
#

euuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu mouais jvais tenter 😦

keen narwhal
timid loom
#

nan mais arrête de faire l'enfant battu

#

je te donne toutes les clés

#

je vais pas te donner le code parce que ça sert à rien

peak cedar
keen narwhal
#

ptdrrrr

timid loom
#

retrouve les éléments de l'exemple qui ressemblent à ton code

peak cedar
#

y'a rien 😂

timid loom
#

et essaie d'adapter l'exemple de sorte que ça soit pareil

#

bien sûr que si

peak cedar
#

?

#

jmet l'id du bot ?

timid loom
#

à ton avis user ça représente quoi

peak cedar
#

le bot ?

timid loom
#

mauvaise réponse

peak cedar
#

car si je definit un joueur les autre pourons pas ?

#

wtf

timid loom
#

t'es pas obligé de le mettre mais c'est possible

peak cedar
timid loom
#

oui

peak cedar
#
    if (message.content.startsWith("Besoin d'aide")) {
        const msg = await message.reply("Bonjour qu'elle est votre problème :\n 1) Problème Panel\n 2) Autre problème \n  ")
        await msg.react("1️⃣")
        await msg.react("2️⃣")

        const filter = (reaction, user) => reaction.emoji.name === ':one:' && message.author;
        const collector = message.createReactionCollector(filter, { time: 15000 });
        collector.on('collect', r => console.log(`Collected ${r.emoji.name}`));
        collector.on('end', collected => console.log(`Collected ${collected.size} items`));

        if (reaction.emoji.name = "1️⃣") {

            message.channel.send(`test`)



        }

        if (reaction.emoji.name = "2️⃣") {







        }

    }

#

ensuite ?

timid loom
#

nan là t'as pas compris comment tu vérifiait

peak cedar
#

Oui 😂 depuis la debut

timid loom
peak cedar
keen narwhal
#

oe ok et y'a un autre problème qui est plus grave que la vérification

celle qui gère l'ajout de réactions,
elle est pas censée être en dehors du collector.on kappa

#

\1️⃣

#

oof

timid loom
#

@keen narwhal chaque chose en son temps

keen narwhal
#

😆

peak cedar
#

@timid loom dcp comme sa :

#

    if (message.content.startsWith("Besoin d'aide")) {
        const msg = await message.reply("Bonjour qu'elle est votre problème :\n 1) Problème Panel\n 2) Autre problème \n  ")
        await msg.react("1️⃣")
        await msg.react("2️⃣")

        const filter = (reaction, user) => reaction.emoji.name === '1️⃣' && message.author;
        const collector = message.createReactionCollector(filter, { time: 15000 });
        collector.on('collect', r => console.log(`Collected ${r.emoji.name}`));
        collector.on('end', collected => console.log(`Collected ${collected.size} items`));

        if (reaction.emoji.name = "1️⃣") {

            message.channel.send(`test`)



        }

        if (reaction.emoji.name = "2️⃣") {





        }

    }

timid loom
#

là encore une fois t'as pas compris ce que je t'ai dit

#

t'as juste mis message.author

peak cedar
#

oui

timid loom
#

sauf que ça veut rien dire

peak cedar
#

a c a la place de some id

#

?

timid loom
#

oui

#

tu veux vérifier par rapport à l'id de l'auteur du message

peak cedar
timid loom
#

donc il manque un truc

peak cedar
#

jveux verif que c le joueur qui click

peak cedar
timid loom
#

le .id

peak cedar
timid loom
#

non

peak cedar
#

ah

timid loom
#

mais tu sais ce que c'est un id?

peak cedar
timid loom
#

alors pourquoi tu me réponds ça?

timid loom
#

oui

peak cedar
#

okey ensuite ,

#

?

timid loom
#

vraiment

peak cedar
#

de la debilité pur 😦

timid loom
#

nan mais arrête

#

et réponds sérieusement

peak cedar
#

bas vrm jsuis debile c tout

keen narwhal
#

tiens je te sauve

il a posté le message avant de voir le tien kappa

timid loom
#

ça sert à rien d'avancer en mettant des trucs au pif

timid loom
#

je t'ai déjà répondu

peak cedar
#

bas dcp je fait quoi mtn ?

timid loom
#

et je passerai pas à la suite parce que la suite tu la connais déjà

#

tu veux juste pas réfléchir

#

et comme moi j'ai pas envie de faire ton travail à ta place, je vais te laisser réfléchir

peak cedar
#

ahhhh j'ai une idée je me casse pas la tete et je fait un system de 1 ou 2 en msg et pas en react 🙂

timid loom
#

fais comme tu veux

#

mais le problème sera le même

peak cedar
#

jy arriverais pas sa sert a rien

timid loom
#

bah dans ce cas arrête

#

vas-y, mets toi à la poterie

spring dock
#

forcément si tu cherche pas à comprendre ni rien, va dans #demande-de-dev ça ira plus vite

keen narwhal
#

xDDDDDDDDDDDDDDD

peak cedar
timid loom
#

sauf que tu verras que si tu veux pas réfléchir y a pas grand chose que tu fera dans ta vie

#

poterie y compris

peak cedar
timid loom
#

nan

#

tu veux pas réfléchir

peak cedar
#

mais toi non plus tu comprend pas que je comprend pas ce que tu comprend donc nous nous comprendrons jamais

spring dock
#

tu paye un mec il te fera ce que tu veux et au moins t'aura pas à demander de l'aide toutes les 2 secondes car tu comprends pas ne serait ce qu'un mot de ce que t'écrit

#

dans "ton" code

timid loom
#

sauf que le truc c'est que si tu t'arrêtais deux secondes pour réfléchir à ce que tu écris

#

tu comprendrais tout ce que tu dois faire

#

on dirait qu'ici on est tous né avec une compréhension totale de la prog

#

j'suis pas neo dans matrix hein, j'ai pas soudainement pris une disquette pour comprendre le javascript

#

j'ai juste réfléchi deux secondes

#

franchement essaye un jour tu verras ça sera incroyable

#

donc reviens quand t'auras arrêté de t'apitoyer sur ton sort et que tu commenceras à réfléchir

keen narwhal
#

bon bon bon on va procéder autrement

moi, j'ai appris en regardant les documentations mdn et des codes puis j'me suis entraîné

je te passe un truc et tu vas essayer de le corriger ok ?

  const msg = await message.channel(Hellow world)

  await msg.react(":wastebasket:")
  await msg.react(":x:")

  const filter = (reaction, user) => {
       return reaction.message === message.id && user.id === message.author.id;
  };

  const collector = msg.createReactionCollector(filter, { time: 120000, max: 2 });

  collector.on('collect', async (reaction, user) => {

        if (_emoji.name === ":wastebasket:" ) {

        } else if (_emoji.name = ":x:") {

        }

})


essaie de trouver toutes les erreurs de ce code et de me renvoyer le code correct

spring dock
#

||tu viens de perdre énormément de ton temps je sais pas si t'es au courant dark||

keen narwhal
#

@peak cedar si tu y arrives je te donne un pouce en l'air que tu garderas toute ta vie lol

keen narwhal
oak turret
#

Re ! Alors j'ai un petit soucis dont je n'ai pas la soluce, j'ai bien mes 11 joueurs, seulement est "undefined" alors que c'est censé être le dernier et il s'appelle "agnelo" etc vous sauriez pourquoi ?

#

mon code n'a pas changé:x

slim anvil
#

C’est dans ta boucle tu ajoutes un truc devant le pseudo ?

#

Car le premier choco existe bien et tu as undefined devant choco donc tu dois ajouter un truc qui n’existe pas

oak turret
#

yes il est dans ma boucle

slim anvil
#

Oui mais quand tu ajoutes le nom tu fais quoi dessus ?

oak turret
slim anvil
#

C’est dans ton foreach sa ?

oak turret
#

yes

slim anvil
#

T’as pas une première entrée à objet vide ou autre ?

#

essaye juste de log dans ta boucle le player voir si il existe

#

lors du premier passage tu verras direct ou ça cloche

oak turret
#

oauip il existe

#

je vais log le deuxième

#

Ah yes en effet

#

il est à part

#

wtf

spring dock
#

c'est parce que au début tu met juste let name_players;

#

met let name_players = "";

oak turret
#

Ahh je vais voir çaz

#

yes c'est _a

#

mais il m'affiche pas tous les joueurs, y en a toujours un qui n'y est pas, et pour les plus gros serveurs il en manque pas mal je vois pas pourquoi

#

déjà je peux pas mettre au dessus de 125 caractères sinon il me fait une erreur de la lib

slim anvil
#

Y a pas un Max de field ?

oak turret
#

et je crois que c'est pour ça

#

bah si justement

slim anvil
#

25 fields Max

oak turret
#

mais il est forcément supérieur à 125

#

oauip okay mais là j'ai 11 joueur à afficher

#

il m'en affiche 10

#

y en a toujours un en dehors ...

slim anvil
#

Juste pour tester rajoutes en

#

A mon avis il envoie l’embed avant la fin de la bouclette

oak turret
#

bah du coup je peux pas

#

c'est pas mon serveur :xx

#

je prends un serveur gmod sur top-serveurs pour test xdd

slim anvil
#

Ah oki mais je pense c’est ça

oak turret
#

Ouaip je pense, comment je peux fix ça ?

slim anvil
#

Tu peux faire une promise avec ta boucle et là résolve() à la fin de ta boucle pour ensuite envoyer ton embed

oak turret
#

oula, t'as un exemple ?

slim anvil
#

Je suis sur tel donc à part la doc JS no

oak turret
#

okay je vais look ça !

#

ty!

peak cedar
#

Hey slt

Ont peux recherche un channel pars nom et pas pars ID ?

toxic cypress
#

document.getElementByID() jsp si ça marche pour les bots ?

#

Par nom je sais pas du tte

oak turret
#

nopxD

#

et oui on peut je crois attend

#

client.channels.cache.find(ch => ch.name === "nom du channel")

#

à verif

spring dock
#

si les channels sont pas dans le cache ça va poser soucis ça

oak turret
#

si t'enlève le .cache ça marche je crosi

keen narwhal
#

oak turret
#

autant pour moi

peak cedar
#

et dcp je fat quoi ?

#

comment du moins

keen narwhal
#

Mais tu fais des recherches toi même ?

peak cedar
#

SI je suis la C que j'ai pas trouver

#

merci quand meme de ton aide

keen narwhal
#

Pourtant si tu marques finds Channel by Id discord.Js je suis presque certain que tu trouves

peak cedar
#

Hey slt

Ont peux recherche un channel pars nom et pas pars ID ?

merci de lire avant de rep

#

JE VEUX PAS pars ID

keen narwhal
#

Dans ce cas t’écris finds Channel by name discord.js

peak cedar
#

DEJA fait

#

SRX quoi LIRE tu sais ?

peak cedar
keen narwhal
#

Pourquoi tu t’énerves ?

peak cedar
#

je repete 20fois le meme truc

#

0;)

spring dock
peak cedar
#

😂 no coment 😦

#

😂

#

je savais que tu aller venir me karma 😂

keen narwhal
#

Le problème est surtout que Lartax t’as donné une piste, tu prends même pas le temps de la regarder et tu t’énerves aune je te demande si tu as cherché mieux qu’avec tes yeux fermés, parce qu’en exactement 30 secondes j’ai trouvé

peak cedar
#

non mais c bon le plus bo d bo ma aider

#

hein @keen narwhal

#

😂

keen narwhal
#

Bah tant mieux, mais c’est pas en toujours demandant de l’aide que tu vas apprendre sans chercher par toi même

peak cedar
#

IL ma pas donner mais aider il ma donner d etape des chose doc etc....

#

donc sa revien a chercheraussi 😉

keen narwhal
#

Si tu le dis, si tu le dis

floral bolt
#

salut !

#

je cherche a trouvé l'id d'un role pour ca : const args = msg.first().content const rolearg = message.guild.roles.cache.get(args)

keen narwhal
#

Salut, je m'y connais presque en rien en Javascript et je souhaite l'apprendre (je m'y connais en html et css car je débute et avance petit à petit), j'aimerais savoir quels sont les bénéfices du logiciel?

#

J'ai aussi un site en développement et plein de gens me conseillent Js.

oak turret
#

hello!, vous savez comment je pourrais afficher 10 joueurs par 10 joueurs sur chaque page au lieu de get la valeur du nombre de caractères des fields ? cf : #javascript-typescript message

#

car ça sera plus simple et ça affichera au moins tous les joueurs de façon sûre

keen narwhal
#

Player c'est un tableau nan ?

oak turret
#

ouaip

#

tableau d’objet

#

ah non tu parle de player ah oui non

#

ça ça me return que le nom des joueurs me semble t-il

#

state.players me return le tableau d’objet

keen narwhal
#

F mon pc vient de me lâcher bref je refais sur téléphone

oak turret
keen narwhal
#

Tu pourrais utiliser une méthode très simple dcp qui porterait juste à faire deux constantes et un slice
genre

let debut = limit*(page-1) //avec limite = 10 pour afficher que 10 joueurs et page = 1
let fin = 10*page

et pour le slice bah player.slice(debut, fin).forEach(player=>{}) (à la ligne du player.forEach)

oak turret
#

Okay ! Et dans mon code actuel je suis censé enlevé du coup mon count etc ?

keen narwhal
#

Oe mais copie ton code et garde le quelque part au cas où kappo

oak turret
#

et fin je le mets où ?

keen narwhal
#

Ooof zut att je corrige le truc jai fais une erreur kappa

#

voila

oak turret
#

ah yes c'est ce que je me disais j'vais tester

keen narwhal
oak turret
#

Ah yes

#

ton code doit marcher mais la lib de pagination me nique son "setFooter"

#

je capte pas pourquoi

keen narwhal
#

Ah ui btw utiliser un module pour les embeds en page ce sera pas super vu que tu pourras moins bien l'adapter à ton code

je te conseille de faire ton propre système de pagination (plus galère, mais bien mieux)

oak turret
#

Franchement je saurais pas faire un système de pagination

#

et je vois pas pourquoi ça casse de plus

keen narwhal
#

Moi non plus mdr les for et tout ça faut que j'mentraîne

apres on m'a envoyé un code pour le pagination
tarriveras peut-être à l'adapter si je le retrouve :kappo:
et sinon ya ptetre quelquun de chaud en pagination qui va rejoindre le serv

oak turret
#

il trouve pas setFooter logique il envoi pas l'embed

#

mais pourquoi je vois aps

keen narwhal
#

@fleet scaffold 👀

fleet scaffold
#

yooo

#

j'ai

#

LE SYSTEME

#

de pagination par excelence

#

uwu

#

ah

oak turret
#

nice

fleet scaffold
#

par contre

keen narwhal
fleet scaffold
#

un foreacheur

#

tsss

keen narwhal
#

xD

fleet scaffold
#

tu va utiliser les boucle for

#

que tu le veuille ou non

oak turret
#

po grave

#

j'maitrise les deux

slim anvil
#

Dans son cas le forEach est plus logique

#

Vu qu’il veut éditer directement les éléments de son tableau

oak turret
#

yep

fleet scaffold
#

bah mon truc fonctionne avec des boucle for

#

0 Foreach

slim anvil
#

Oui ça reste une boucle

fleet scaffold
#

first part :

    let inventory = "";
    let maxpage;
    let invtest;
    let invit;
    const tempinventory = [];
        if(user.inventaire === null){
            inventory = "Votre inventaire est vide"
        }else   {
            invtest = JSON.parse(user.inventaire)
            if(invtest.item.length === 0){
              inventory = "Votre inventaire est vide"
            }else{
               maxpage = Math.floor((invtest.item.length/4)+1)
               for(let i= 0;i<invtest.item.length;i++){               
              tempinventory.push(`${invtest.item[i].emoji}|${invtest.item[i].name}\nid : \`${invtest.item[i].id}\`\n**Stats :**\n\`\`\`js\n Force : ${invtest.item[i].stats.force}\n Défense : ${invtest.item[i].stats.defense}\n Magie : ${invtest.item[i].stats.magie}\n Vitesse : ${invtest.item[i].stats.vitesse}\`\`\`\n`)
            } 
            for(let i= 0;i<4;i++){               
              inventory += `${tempinventory[i]}`
            } 
        }
        }
slim anvil
#

Mais y a des différences entre chaque boucle

#

Je répond juste à ton « utilise des for »

fleet scaffold
#

second part :

 await message.channel.send("msg").then(async(msg) =>{
                if(inventory === "Votre inventaire est vide"){

                }else{
                    await msg.react("◀")
                    await msg.react("▶️") 
            const filter = (reaction, user) => {
    return (reaction.emoji.name === '◀' || reaction.emoji.name === '▶️') && user.id === message.author.id;
};
const collector = msg.createReactionCollector(filter, { time: 180000 });
let x = 0;
collector.on('collect', async(reaction, user) => {
           let inventori = "";
if((x+1) === maxpage || (x+1) < (1) || x === -1){
        console.log(x)
    x = 0;
    for(let i= 0;i<4;i++){
    if(tempinventory[i] !== undefined){
            inventori += tempinventory[i]
        }else{
        }    
            } 
}else{
if(reaction.emoji.name === '▶️'){
    console.log(x)
    x+=1;
    for(let i=(0+(x*4));i<(4*(x+1));i++){
  if(tempinventory[i] !== undefined){
            inventori += tempinventory[i]
        }else{
        }             } 
}else if(reaction.emoji.name === '◀'){
        console.log(x)
    if(x == 0){
        x = maxpage-1
    }else{
     x-=1;
    }
    for(let i=(0+(x*4));i<(4*(x+1));i++){
  if(tempinventory[i] !== undefined){
            inventori += tempinventory[i]
        }else{
        }             
    } 
    }
}      
    msg.edit({
                embed: {
                    title: `Inventaire`,
                    description: `${inventori}`,
                     footer: {
                text: `Page ${x+1}/${maxpage}`,
                icon_url:this.client.user.displayAvatarURL()
                    }
                }
            })
        await msg.reactions.removeAll()
     await msg.react("◀")
    await msg.react("▶️") 
});

collector.on('end', collected => {
    msg.delete()
});                
slim anvil
#

Oui mais peut être c’est super

#

Je dis pas que ça ne fonctionnera pas avec des boucles for

#

Je répond à ta phrase

fleet scaffold
#

et mon truc

#

#

c'est tout le code

#

y a une ptite erreur

#

maxpage = undefined au début XD

oak turret
#

faut mettre = ""; au début

fleet scaffold
#

AHHH NON

#

c'est la page

#

maxpage = undefined pour ceux qui n'ont pas d'inventaire XD

#

boh juste à le definir

#

au début

#

mdr

#

ah et mon truc est setup pour n'afficher que 4 élement par page

slim anvil
#

Mais donc tu nous envoies tout ça pour quoi exactement

spring dock
#

parce qu'ils veulent que lartaxx utilise son truc au lieu d'utiliser un package npm

#

ce qui est d'un débile mais profonds

slim anvil
#

ah ok

spring dock
#

mais bon yes

oak turret
#

ouais je comprends pas super bien son truc

#

j'ai changer de package

#

mais c'est sympa

#

mais d'ailleurs dark, ton .slice() ne fonctionne pas ahah

keen narwhal
#

rip moi je l'avais utilisé pour faire un ancien leaderboard comme ca et ca fonctionnait 🤔

  let arr = [];
 
        list.slice(debut, fin).forEach(c => {
            arr.push(`**#${a}** <@${c.userID}> (\`${c.username}\`)`)
        })
oak turret
#

Apparament oui, car il veut au minimum deux pages le package et le slice me return le tableau vide

floral bolt
#

yo

#

comment je peux supprimer un fichier avec fs ?

keen narwhal
floral bolt
#

merci

obsidian ice
#

should I ask a question about react native here?

cyan iron
#

But I don't really understand, what is exactly " React native " for you ?

slim anvil
#

Framework js

floral bolt
#

salut, vous pouvez maider j'ai ce code

#
const votes = message.reactions.get('🎁').users.cache.filter(u => !u.bot)
                console.log(votes.size)``` il me renvois
keen narwhal
#

message.reactions.cache.get(......

#

le cache

floral bolt
#
            .then(message => {
                const votes = message.reactions.get('🎁').users.cache.filter(u => !u.bot)
                console.log(votes.size)


            }```
#

je sais deja quel message je prend

keen narwhal
#

le cache des réactions

bright pecan
#

Il te faut aussi un .cache.get puis l'autre cache est bon

#
message.channel.messages.fetch("788083821815660575")
            .then(message => {
                const votes = message.reactions.cache.get('🎁').users.cache.filter(u => !u.bot)
                console.log(votes.size)


            }
floral bolt
#

ca me renvois 0

#

alors qu'il y en a plus de 300 :/

bright pecan
#

Sa doit venir de ton code car sa devrait marcher

floral bolt
#
module.exports = {
    run: async (client, message) => {
        message.delete()
        
        
        message.channel.messages.fetch("788083821815660575")
        .then(message => {
            const votes = message.reactions.cache.get('🎁').users.cache.filter(u => !u.bot)
            console.log(votes.size)
        })
  .catch(console.error);

    },
    aliases: [],
    description: 'Voir les infos du serveur'
}
#

ca c'est tous le code

keen narwhal
#

t'es sûr que t'as bien mis l'id du bon message '-' ? je viens de tester et ca return bien le bon nombre

floral bolt
#

yes

#

si je log juste message reactions j'ai tous

keen narwhal
#

Hey tout le monde !

J'essaie de charger les invites créées par les utilisateurs mais je n'obtient que celles permanentes. J'aimerai savoir comment récupérer celles temporaires. J'ai lu quelques forums qui disaient que ça ferait trop de requête à l'API, mais comme mon bot ne sera que sur un seul serveur je n'ai pas à m'en préoccuper.

cyan iron
#

Je vois, je n'ai jamais eu affaire à ça mais je veux bien t'aider

#

Je vais voir vite fait sur la doc, je reviens

keen narwhal
#

Merci à toi 😉

cyan iron
#

Désolé j'ai été long je parlais à mon pote en même temps 😂

#

Voilà

#

Oula non attends

#

Voilà

#

Normalement c'est bon, mais tu as déjà fait ça j'imagine

keen narwhal
#

Oui ahah ^^ J'ai déjà essayé

#

Cela me retourne seulement les invitations permanentes

cyan iron
#

Je ne comprends pas pourquoi 02think

#

Je me renseigne ( à moins que @boreal edge sache)

boreal edge
#

J'étias en train de demander un truc

#

C'est quoi le pb ?

cyan iron
#

Ah ok

#

Rip

#

Je me renseigne

keen narwhal
#

Je souhaite obtenir toutes les invitations d'une guild, mais je n'obtiens que celles qui sont permanentes. Et non pas celles temporaires.

boreal edge
#

Est ce que tu as fais un await avec le fetchInvites

#

Et après traiter tes fetchInvites ?

keen narwhal
#

Ca me sauverai surement ma nuit si quelqu'un aurait le courage d'y arriver, car j'ai cherché quelques heures, forums et vidéos mais rien

#

A quoi consisterait le await dans ce cas là ?

boreal edge
#

Attendre qu'il reçoit la request à l'API

#

Mais attends

cyan iron
#

Alors normalement c'est censé fonctionner

boreal edge
#

Ta tester ?

cyan iron
#

Je suis sûr mobile, je fais un test de mon côté donc ça va prendre du temps je reviens

keen narwhal
#

Oui @boreal edge mais je n'ai pas essayé de await la recherche d'invite

#

J'essaye et je te dis

slim anvil
#

Tu as regardes sa ?

keen narwhal
#

Ils n'arrivent pas non plus à régler ce problème

boreal edge
#

J'ai un problème aussi,
Je n'arrives pas à insérer à l'intérieur d'un array un object
Voilà mon code :

            let permissions = [
                {
                    id : client.functions.getEveryoneID(),
                    deny : 'VIEW_CHANNEL'
                },
                {
                    id : user.id,
                    allow : 'VIEW_CHANNEL'
                }
            ];
            
            for (rankID in client.config["staffRanksIDs"]) {
                if (!rankID) continue;
                
                permissions[permissions.length + 1] = {
                    id: rankID,
                    allow: 'VIEW_CHANNEL'
                }
            }

Voila le résultat (ci-dessous)

Est ce que vous savez pourquoi il me mets le <1 empty item>, et comment le régler svp ?

keen narwhal
#

@slim anvil Mais j'ai réussi à régler le deuxième problème avec l'event : inviteCreate

slim anvil
#

Fais juste un permissions.push() Hugo

#

avec dedans ton objet

boreal edge
#

Ah yes ok

keen narwhal
#

Désolé @boreal edge 😅 Mais j'arrive pas à résoudre deux problèmes à la fois

boreal edge
#

Ca sert à quoi Enzo le .push ?

slim anvil
#

A ajouter dans un tableau

#

A la fin

boreal edge
#

Ok thx

cyan iron
#

0.eval message.guild.fetchInvites().then(invites =>{
message.channel.send(invites)
}).catch(console.error);

#

Y'a un blem là

#

Pourquoi ça work pas ;-;

#

message.guil BRUH

keen narwhal
#

Ahah bienvenue au club

cyan iron
#

J'ai envie de me baffer

#

Baffez moi

keen narwhal
#

Je vais pas te baffer avant que tu m’aies aidé

boreal edge
#
 for (rankID in client.config["staffRanksIDs"]) {
                if (!rankID) continue;

                permissions[permissions.length + 1] = {
                    id: rankID,
                    allow: 'VIEW_CHANNEL'
                }
            }
            permissions = permissions.push();    
            console.log(permissions);

Il me return 4 Enzo 🤔

cyan iron
#

Je te confirme que ça marche

slim anvil
#

car t’as pas besoin de l’assigner à une variable

#

Tu fais juste ton push

cyan iron
#

Tu as donc les invitations temporaires

slim anvil
#

le push tu return l’index sinon

cyan iron
#

Donc y'a pas de raison que ça ne fonctionne pas si tu arrives à get les invitations permanentes

boreal edge
#
            permissions.push();    
            console.log(permissions);

Il me return toujours la même chose (par rapport au premier screen)

cyan iron
#

Tu push rien là

boreal edge
#
let permissions = [
                {
                    id : client.functions.getEveryoneID(),
                    deny : 'VIEW_CHANNEL'
                },
                {
                    id : user.id,
                    allow : 'VIEW_CHANNEL'
                }
            ];
            
            for (rankID in client.config["staffRanksIDs"]) {
                if (!rankID) continue;

                permissions[permissions.length + 1] = {
                    id: rankID,
                    allow: 'VIEW_CHANNEL'
                }
            }
            permissions.push();    
            console.log(permissions);

@cyan iron

cyan iron
#

Tu push du vide il faut mettre un truc dans push

boreal edge
#

AH

#

Ok je viens de comprendre

#

Merci et désolé du dérangement x)

cyan iron
#

J'ai pas lu ce que tu veux faire

#

Ok

boreal edge
#

Niquel merci Enzo 😉

#

Et Wailrone du coup

cyan iron
#

Ok d'accord tu veux push quoi dans ton object

#

Si tu veux push une autre Perm tu fais ça :

obj.push({
id : rankid,
allow : 'VIEW_CHANNEL'
})

#

Fin t'as compris

keen narwhal
#

Excuse moi je n'avais pas vu ton message @cyan iron

#

Alors quel code as-tu utilisé exactement ? Cela est étrange..

cyan iron
#

Là j'ai simplement fait la promise

keen narwhal
#

Oui

cyan iron
#

guild.fetchInvites()

#

Mais toi il te faut extraire tout ça donc tu fais un .then

#

Ah quoique attends

#

Attends

keen narwhal
#

Oui je t'écoute

#

Jusque là j'ai la meme chose eheh

cyan iron
#

Tu veux faire quoi exactement

#

Tu veux get l'invite d'un joueur précis ?

keen narwhal
#

Non, je souhaite simplement check à qui appartient l'invite quand un joueur arrive

#

Donc je mets le code dans l'event guildMemberAdd, et une autre partie dans le ready

cyan iron
#

Aah !

#

Donc c'est l'invite que tu veux check

keen narwhal
#

Oui

cyan iron
#

Donc t'as le code ?

#

De l'invite

keen narwhal
#

Non non mdrr, quand j'ai dis le "code" c'est du code

cyan iron
#

Non

#

Je parle du Code de l'invite

#

Est-ce que tu l'as ?

#

Tu as quoi pour get l'invite c'est ça que je veux savoir

keen narwhal
#

J'ai plusieurs parties de code

#

3 à vrai dire

cyan iron
#

Hein

#

Non mais 😂

#

Je parle du Code de l'invite en mode HjejXk

#

Ah Nice merci le bot

keen narwhal
#

Ahah d'accord, oui je ne l'ai pas

cyan iron
#

Donc t'as quoi

keen narwhal
#

Justement je cherche à toutes les obtenir

#

Je reçois seulement celles permanentes

cyan iron
#

Mais T_memefacepalm

keen narwhal
#

Mdrr je crois qu'on à du mal à communiquer tous les deux

cyan iron
#

Bon attends

#

Oui on s'est mélangé c'est pas grave j'ai compris maintenant

keen narwhal
#

Oui je pense 😅

#

Donc de quoi me parles-tu

cyan iron
#

Si j'etais sur PC je pourrais mieux t'aider mais là je galère un peu avec mes eval

keen narwhal
#

T'en fais pas pour la répartition de mon code je pense savoir faire

#

J'ai du mal à récupérer toutes les invitations

#

Même celles temporaires

cyan iron
#
guild.fetchInvites().then(i=> console.log(i))
#

Tente ça déjà

#

Sans le 0.eval désolé

#

Et dit moi si ça work normalement Oui y'a pas de raisons

keen narwhal
#

Ca c'est bon

#

Bah

#

Attends

#

Pourquoi ça marche là

cyan iron
#

Montre moi ton code

#

Ça va être plus pratique déjà 😂

keen narwhal
#
module.exports = {
    run: async (client) => {
      client.logger.log('info', `Logged in as ${client.user.tag} !`);
      client.guilds.cache.get('780044065697693706').fetchInvites()
      .then(invites => {
        console.log(invites);
      })
      .catch(err => console.log(err));
    }
};
#

Ah

#

C'est pas ça que tu veux

#

Att

cyan iron
#

Si

#

C'est ça Oui

#

Et t'as quoi dans ta console ?

keen narwhal
#

Toute la collection [map]

cyan iron
#

Je peux voir du coup please

keen narwhal
#

Trop de caractères

#

Je sais pas si je peux envoyer des fichers

cyan iron
#

Mmmh

#

Fait un screen c'est mieux 😂

#

Il y a tant d'invitations que a?

keen narwhal
#

3 invitations

#

Att je le refais avec 1 seule comme ça ça rentre

cyan iron
#

Euh Ok

#

Ton invitation est temporaire ?

keen narwhal
#

Oui

cyan iron
#

Fait en une temporaire et une permanente

#

Pour voir

keen narwhal
#

C'est trop grand pour un screen

#

Mais j'obtiens bien toutes les invitations

#

Alors je pense que tu m'as aider finalement, je vais essayer de me débrouiller et je reviens vers toi si ça ne marche toujours pas

cyan iron
#

Mais comment ça peut être trop gros s'il n'y a que 3 invites ?

#

AH Mais Oui ! Je suis bête laisse tomber j'ai compris

#

No problème mais je ne comprends pas pourquoi ça ne fonctionnait pas tout à l'heure, tu as sûrement du mal voir

keen narwhal
#

Mdrr je penserai à m'acheter des lunettes parce que c'est gros quand meme ahah

#

Merci encore 😉

cyan iron
#

Bah soit tu as mal vu ( et Oui effectivement tu peux investir dans des lunettes) soit effectivement il y a eu un problème mais ça venait de Discord, pas de ton code étant donné que c'est le même.

boreal edge
#

Hello
Je cherche à vérifier si une date (DD/MM/YYYY) est valide, et si une heure (HH:MM) est valide aussi, je pensais utiliser des patterns mais c'est vrai que je ne peux pas vérifier si une valeur est > 12 pour les mois par exemple.
Avez-vous une autre solution (hors multi-condition) ?
Merci 😉

slim anvil
#

avec un Date.parse() ca devrait etre good

#

ca te return un timestamp si la date est valide

#

et NaN si ca ne l'est pas

#

vérifie avant que ce soit bien une string juste je pense et ca devrait faire l'affaire

boreal edge
#

Ok, je vais voir ça, merci 😉

#
    let date = "15/01/2021";
    console.log(Date.parse(date));`
#

Je viens de tester ça, juste vite fait, il me return NaN, plus qu'a voir pourquoi ! Merci 😉

#

Ok je viens de comprendre, le format de Data.parse c'est MM/DD/YYYY

#

Il y a un moyen de "l' inverser" ? ou il faut que je le fasse manuellement ?

slim anvil
#

euhh la je connais pas les dates par coeur essaye de voir si tu peux pas changer le timezone ou un truc du genre

boreal edge
#

Je viens de faire une méthode éco+

 if (!date) return false;

    let args = date.split('/');
    if (!args ||!args[0] || !args[1] || !args[2]) return false;

    date = `${args[1]}/${args[0]}/${args[2]}` // Convert date for Date.parse compatibility (DD/MM/YYYY -> MM/DD/YYYY)

    return (Date.parse(date) === NaN) && false || true;

Au moins ça fonctionne x)

#

Merci bcp 😉

stone ruin
#

Bonjour a vous,
Je travail sur mon bot en nodejs lib discordjs.

Pour stocker et récupérer certaines informations via des commandes j'utilise une bdd mysql , quand j'ecris plusieurs fois cette commande a la suite j'ai une erreur return dans ma console la voici :

#

Merci a ceux qui prendrons le temps de m'aider !

boreal edge
#

Envoie la ligne 19 de ton fichier /commands/register2v2.js

keen narwhal
#

Une idée de ce soucis svp ?

Erreur : DiscordAPIError: Cannot send an empty message

Code :

bot.on('message', function (message) {
    if (message.content === '!ping') {
        const msg = message.channel.send()
        message.channel.send('Auteur : ' + message.author.tag )
    }
})

Je débute donc c surement une erreur très conne

#

Moyen d'avoir la ligne et le code complet ?

#
const Discord = require('discord.js')
const bot = new Discord.Client()

bot.on('ready', () => {
    console.log(`Logged in as ${bot.user.tag}!`);
    bot.on('ready', () => {
        console.log(`Logged in as ${bot.user.tag}!`);
        bot.user.setActivity("ZE Dev - ze-team.fr");
      });
  });

bot.on('message', function (message) {
    if (message.content === '!ping') {
        const msg = message.channel.send()
        message.channel.send('Auteur : ' + message.author.tag )
    }
})
#

la ligne bah c le message.channel.send

#

Lequel ?

#

merde

#

c rien c moi

keen narwhal
#

prob réglé

#

j'ai oublié de l'enlever

#

De rien

oak turret
#

plus besoin de se faire chier avec les + aussi

#

tu peux faire

#

message.channel.send(Auteur : ${message.author});

#

avec les `

#

logique sur discord il les remplace mais t’as compris

keen narwhal
#

merci

oak turret
#

np

keen narwhal
#

You're so handsome Lartaxx

#

Comment je fais pour ping le message.author ?

#

J'crois tu mets juste message.author

#

Si j'me souviens bien

#

yep merci

#

je pue grave la merde 🥲

#

la doc discord.js est khené

#

Tkt on a tous passé par là

#

oui lmao

#

Ya 3 mois jgalerais a écrire message.channel.send

#

MDR

stone ruin
#

@keen narwhal la doc discordjs elle est comprehansible

keen narwhal
#

Ta phrase est incompréhensible ...

#

:doubt:

keen narwhal
oak turret
#

Ah yes bah je savais pas autant pour moi ty

keen narwhal
unborn knot
#

Hello vous savez pourquoi j'ai l'erreur args.shift() is not a function ```javascript
const args = msg.content.slice(prefix.length).trim();
const command = args.shift().toLowerCase()

if (command === 'say') {
    let member = msg.member;
    if (!member.hasPermission('KICK_MEMBERS')) {
        return msg.channel.send("Vous n'avez pas les permissions pour faire cela !");
    }
    msg.delete();
    msg.channel.send(args);
}```
toxic cypress
#

je crois j'ai fais de la merde enzo 😂

slim anvil
#

je crois aussi

toxic cypress
#

😂

#

pourtant j'ai essayé

slim anvil
#

déjà créer toi un fichier js à part que ce soit plus propre pour toi

#

commence par ça, seconde étape pas besoin d'avoir un bouton pour cliquer, tu peux mettre ton onclick sur le <figure> y aura pas de soucis 😄 tu rajoutes un cursor: pointer;

#

pour avoir l'effet de click

#

dans ton fichier js une fois qu'il est lié, tu fais un alert('toto') tu refresh et si le message apparait tu me dis

#

step by step

toxic cypress
#

dacc

#

merci !

toxic cypress
#

c'est bon ^^

slim anvil
#

Vu que tu passes par un onclick dans ta fonction tu vas venir passer l’URL de ton image, ou alors venir la récupérer en js, comme tu veux, le plus rapide c’est de le passer en paramètre

#

(Dans les ())
Du coup dans ta fonction alertToto tu passes aussi un paramètre et console.log le pour voir si tu le reçois bien

toxic cypress
#

en faite je me disais que le problème c'est que si qlq utilise ce portfolio il ne saura pas surement qu'il faut passer par le js pour l'image et je me demandais si il était possible que la fontion js prenne une image en fonction de l'image qui est dans la balise <img> ?

slim anvil
#

Oui comme je te disais tout à l’heure mais oui tu peux

toxic cypress
#

à mince j'avais pas compris excuse moi ^^

slim anvil
#

Dans ce cas là l’évent aussi fais le côté JS (le click) comme ça si il touche à l’html il risque pas de Peter le clouer

#

Clique*

toxic cypress
#

okay dcp on fait te le reste en js et je passe plus par html pr pas casser le click c'est ça ?

slim anvil
#

Oui par un addEventListener

toxic cypress
#

okayy

#

dernière petite question comment je vais afficher l'image suite a la fonction ?

#

enft c'est bon j'ai trouvé une alternative

#

avec onclik window.open

toxic cypress
#

ENCORE mieuxxx

#

avec les lightbox

#

un bohneurrr

low bronze
#

Salut les bg, Je voudrais faire une commande comme sur le crow bot (bot payant très bon), qui quand une personne a un statut défini, (par exemple discord.gg/...) eh bien sa lui assigne un rôle "soutient"

oak turret
#

bah faut get tous les joueurs

#

et get après dans une boucles toutes les descriptions des users

#

si elle est === à "tata" tu fais roles.add("id")

#

t’as la base tu peux faire le reste

#

google t’aidera

low bronze
#

@oak turret tu saurais me dire quel truc c'est pour check les statuts ? J'ai pas trouvé dans la docu...

oak turret
#

idk, t'as qu'à get un user au hasard

#

tu le log

#

et tu verras bien *

#

ah non en effet on peut pas

#

en tout cas quand je me log je vois pas ma desc

slim anvil
#

Si on peut je l’avais préparé pour GCA pour le <@&674191557175541771> Mais je sais plus du tout comment, mais c’est possible

low bronze
#

Ah merde x)

#

Sa fait 3 jours je cherches seul

#

Et du coup comme je trouves rien je cherches un peu d'aide à droite à gauche.

#

C'est possible mais après comment on le fait ça, jsp

outer raven
#

ou un truc comme sa

#

jsp si sa fonctionne encore en v12

#

je l'avais fait en v11

low bronze
#

Merci beaucoup, je vais test ça

outer raven
#

dr ^^

#

après ta juste à map

keen narwhal
boreal edge
#

Hello !
Est ce que vous savez comment je pourrais récupérer une emoji depuis son identifiant (exemple : si je check avec %F0%9F%87%AA%F0%9F%87%B8) il me return l'émoji de 🇪🇸
Merci 😉

keen narwhal
#

Les emojis basiques de discord t'as juste besoin du nom vu qu'ils n'ont pas d'id

Mais pour les emojis customisés
Faut que tu recup l'id de l'emote et que tu fasses un client.emojis.cache.get("ID")

boreal edge
#

J'ai besoin de le récupérer via l'identifiant, pas via l'id

#

C'est bien ça le pb ...

dull ingot
#

Salut j'ai un probelme dans mon code

slim anvil
#

Enlève la ) après le f

#

ligne 27

floral bolt
#

salut, j'ai cette erreur vous savez d'ou elle peut venir ? Error: /home/container/node_modules/canvas/build/Release/canvas.node: invalid ELF header

#

ca marche tres bien en local

oak turret
#

c'un module que tu utilises ?

floral bolt
#

ouais c'est canvas

floral bolt
#

ou_ais mais justement la ils ont d'autres erreurs moi j'ai rien du tout

oak turret
#

invalid ELF header

#

si

floral bolt
oak turret
#

le 1er a la même chose

#

ton code ?

floral bolt
spring dock
#

ouais mais essaye quand même de faire ce qu’ils disent ça se trouve l’origine du problème reste la même

oak turret
#

t'as fais const canvas = require('canvas') ?

floral bolt
#

oui

oak turret
#

comme ils disent

spring dock
#

ce serait ps ça l’erreur sinon

floral bolt
#

ca marche super bien local apres j'envois tous sur mon serveur et pouf cet erreur

spring dock
#

oui donc

floral bolt
#

je vais regarder

keen narwhal
#

J'avais également cette erreur

Elle s'est résolue lorsque j'ai installé canvas depuis le vps et pas juste avec un import du fichier canvas

floral bolt
#

je vais essayer merci

floral bolt
#

salut vous savez pourquoi ca ne marrche pas ? ```js
const Staff = [
'216029549769654273',
'305987032013078542'
]

    const mentionRegex2 = RegExp(`^<@!?${Staff}>$`);
    if (message.content.match(mentionRegex2)) {
        message.delete()
        message.reply(`Merci de ne pas mentionné les membres du staff`)
    };
dull ingot
#

salut j'ai besoin d'aide pour une commande sur discord

#

pour mon bot

#

si quelqu'un peu m'aider

floral bolt
#

oui ?

dull ingot
#
const Discord = require("discord.js");
const {PREFIX} = require("../config.js");
const embederro = new Discord.MessageEmbed()
  .setTitle("❌ Je n'ai pas pu bannir l'utilisateur.");
const embedsucess = new Discord.MessageEmbed()
  .setTitle("✅ L'utilisateur a été banni.");
const embednotfound = new Discord.MessageEmbed()
  .setTitle("🚧 Utilisateur introuvable.");
const embednopermission = new Discord.MessageEmbed()
  .setTitle("😥 Tu n'as pas les permissions pour pouvoir bannir cet utilisateur.");  
const embednousername = new Discord.MessageEmbed()
  .setTitle("🚧 Veuillez mentionner un utilisteur.");
const embednochannel = new Discord.MessageEmbed()
  .setTitle("🚧 Aucun channel incident.");
 
module.exports.run = (client, message, args) => {
  if (!message.member.hasPermission("BAN_MEMBERS")) return message.channel.send(embednopermission);
  let user = message.mentions.users.first();
  if (bUser.hasPermission("MANAGE_MESSAGES")) return message.channel.send("Same Permissions");
  if(!user) return message.channel.send("Vous devez mentionner quelqu'un.");
  let reason = (args.splice(1).join(' ') || 'Aucune raison spécifiée');
  user ? message.guild.member(user).ban({ reason: `${reason}`}) : message.channel.send("L'utilisateur n'existe pas !");
  const embed1 = new Discord.MessageEmbed()
  .setAuthor(`${user.username}#${user.discriminator} (${user.id})`)
  .setDescription(`${user.username} a été ban \n**Raison:** ${reason}`)
  .setTimestamp()
  .setFooter(user.tag, user.avatarURL());
  message.channel.send(embed1);
};
 
module.exports.help = {
    name: 'ban',
    cooldown : 20,
    isUserAdmin: true,
    permissions : true,
    description : 'Banni un utilisateur'
};
#

et

#

j'ai les deux erreurs la :: (node:8428) UnhandledPromiseRejectionWarning: ReferenceError: MessageEmbed is not defined
(node:5492) UnhandledPromiseRejectionWarning: ReferenceError: bUser is not defined

floral bolt
#
  if (bUser``` ici c'est pas le meme nom
dull ingot
#

je renomme let bUser

floral bolt
#

et pour tout t'es embed erreur ect comme tu ne t'en sers pas supprime les

dull ingot
#

D'accord

floral bolt
#

Buser tu le remplace par client.user

keen igloo
#

Non, tu as défini une variable user et tu as mit if (buser) alors que tu dois mettre if (user) à la place.

floral bolt
#

c'est pour le bot je crois

dull ingot
#

oui

keen igloo
#

Oui mais sa variable user n'est pas le bot mais l'utilisateur mentionné.

floral bolt
#

donc remplace bUser par client.user

dull ingot
#

(node:11288) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'hasPermission' of undefined

keen igloo
#

Il remplace if (buser) par if (user) à la place.

floral bolt
#

bah il veut savoir si le bot a la permission

#

pas si le joueur l'a

dull ingot
#

ah nan

#

moi je veux voir si le joueur a la perm

floral bolt
#

ah autant pour moi

keen igloo
#

Oui voilà. ^^

dull ingot
#

pas de soucis , le bot sera automatiquement admin

keen igloo
#

Remplaces if (buser) par if (user).

dull ingot
#

deja fait

keen igloo
#

Nice.

#

Tu as encore un soucis avec ou pas ?

dull ingot
#

ca ma mis l'erreur hasPermission

#

tu peux dm au pire ?

keen igloo
#

Oui si tu veux, ajoutes moi en ami.

keen narwhal
#

salut, j'arrive pas à trouver le lien de téléchargement de javascript

#

pouvez-vous m'aider svp?

slim anvil
#

Ça se télécharge pas

#

tu crées un fichier .js et tu écris ton code

keen narwhal
#

ah oui c'est vrai

#

j'ai sublime text

#

donc je créé un fichier .js c'est bien ça?

#

sur n'importe quel logiciel de codage

#

'fin, de site

#

désolé je suis nouveau en programmation

#

est-ce que je peux utiliser les codes javascript sur celui de mon ''onglet'' qui se nomme index.html ?

#

au lieu de créé un autre ''onglet'' .js

slim anvil
#

Oui mais dans des balises <script>

keen narwhal
#

ok parfait, merci

keen narwhal
#

Bonjour
J'aurai besoins d'aide car je souhaite faire en sorte que en fessant !new et !close ça ouvre et ferme un ticket
Quelqu'un pourrait m'aide

#

va falloir être plus précis

crystal briar
#

En gros il veux faire en sorte de créer un système de report avec des commandes

#

@keen narwhal

keen narwhal
#

C'est ça

crystal briar
#

Tu es sur pc ?

keen narwhal
#

Yep

crystal briar
#

Tu connais les fonction de bases etc.., les client.on au moins psq si c’est pas le cas sa va être compliqué d’avancer

keen narwhal
#

Pa tro x)

keen igloo
#

Mais ça c'est des fonctions de NodeJS pas du JS, tu t'y connais en JavaScript ?

#

Genre tu as les bases ?

keen narwhal
#

bah j'ai fait 2-3 commande

crystal briar
#

justement pour les bots il a besoin des fonctions node

keen igloo
#

Oui oui je sais, mais avant de parler de fonctions Node, faut déjà qu'il maîtrise les bases en JavaScript.

keen narwhal
#

J'ai fais les commande de base

#

Genre warn etc

slim anvil
#

ce sont des événements de la library discordJs

keen igloo
#

Ah, autant pour moi.

slim anvil
#

Sinon oui tu as raison sur le point de connaître déjà le javascript avant de vouloir utiliser des library, maintenant on sait tous comment ça va se terminer il va quand même vouloir faire son bot kappo2 alors je te conseille pour débuter de suivre quelques tutoriels pour créer des commandes de base
Ensuite pour ton système de ticket te définir ce dont tu as envie comme différentes actions etc... si maintenant tu cherches quelqu’un pour te le faire : #demande-de-dev

#

t!search bot

cedar oreBOT
odd ether
#

Une erreur dans ta console ?

signal marsh
signal marsh
#

c'est quoi ? @glossy coral

oak turret
#

panel dev discord

#

sur ton bot

signal marsh
#

Oui je suppose @oak turret

signal marsh
#

@oak turret Ducoup tu pense pouvoir m'aider ?

slim anvil
#

Faut que tu sois sur pour les intents pas supposer

#

Car si elles sont pas activés ça ne fonctionnera pas

keen narwhal
#

Faut activer ça

#

Les deux

signal marsh
#

Ha oui merci Beaucoup

crystal briar
#

svp qui peux m'envoyer la documentation de nodejs

spring dock
odd ether
#

Très dur ...

crystal briar
#

mais je tombe sur des trucs bizarre

#

sur des documentation qui ont rien à voir

odd ether
#

C'est de Discord.js ou celle de Nodes.Js

spring dock
#

après peut-être que tu cherche mal aussi

#

ça change pas ce que j'ai dit

odd ether
#

Aussi

crystal briar
#

discordjs pardon g quoi à être bourré comme sa 😂

#

c bon

#

mrc

glass gate
#

quelqu'un peut m'envoyer le lien de google svp ? C'est urgent

crystal briar
#

mdr

#

tiaint maike

signal marsh
#
    bdd["captcha"][member.id] = { "value": Math.floor(Math.random() * Math.floor(10000)), "statut": false }
    Savebdd();
    bot.channels.cache.get('793430041186664459').send(`Bonjour ${member} ! Ton code de captcha est : ${bdd["captcha"][member.id]["value"]}`)
})
bot.on('message', async message => {
    if(message.author.bot || message.member.permissions.has('ADMINISTRATOR')) return;
    if(message.channel.id == "793430041186664459") {
        message.delete();
        if(!bdd["captcha"][message.member.id]["statut"]){
            if (isNaN(message.content)) {
                return message.channel.send('Tu dois indiquer la valeur de la captcha envoyée au dessus').then(message=> message.delete({timeout: 15000}));
            }
            else {
                if(message.content == bdd["captcha"][message.member.id]["value"]){
                    bdd["captcha"][message.member.id]["statut"] = true;
                    Savebdd();
                    message.member.roles.remove('793428956250374174');
                    message.member.roles.add('793178857095954433');

                }
                else{
                    return message.channel.send('Tu dois indiquer la valeur de la captcha envoyée au dessus').then(message=> message.delete({timeout: 15000}));
                }
            }
        }
    }
})
bot.on('guildMemberRemove', async member => {
    delete bdd["captcha"][member.id]
    Savebdd();
})```
#
    at Client.<anonymous> (c:\Users\Megaport\Desktop\ZLIMBOT-master\ZLIMBOT-master\zlimbot.js:321:24)
    at Client.emit (events.js:327:22)
    at Guild._addMember (c:\Users\Megaport\Desktop\ZLIMBOT-master\ZLIMBOT-master\node_modules\discord.js\src\structures\Guild.js:1542:19)
    at GuildMemberAddHandler.handle (c:\Users\Megaport\Desktop\ZLIMBOT-master\ZLIMBOT-master\node_modules\discord.js\src\client\websocket\packets\handlers\GuildMemberAdd.js:12:13)
    at WebSocketPacketManager.handle (c:\Users\Megaport\Desktop\ZLIMBOT-master\ZLIMBOT-master\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:108:65)
    at WebSocketConnection.onPacket (c:\Users\Megaport\Desktop\ZLIMBOT-master\ZLIMBOT-master\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:336:35)
    at WebSocketConnection.onMessage (c:\Users\Megaport\Desktop\ZLIMBOT-master\ZLIMBOT-master\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:299:17)
    at WebSocket.onMessage (c:\Users\Megaport\Desktop\ZLIMBOT-master\ZLIMBOT-master\node_modules\ws\lib\event-target.js:120:16)
    at WebSocket.emit (events.js:315:20)
    at Receiver.receiverOnMessage (c:\Users\Megaport\Desktop\ZLIMBOT-master\ZLIMBOT-master\node_modules\ws\lib\websocket.js:789:20)```
#

Vous pouvez m'aider

keen narwhal
#

Bonjour d'abord.

#

Ensuite, il faut mettre des ``````, ça peut aider à la lecture

#

J'imagine que la ligne concernée est la quatrième ?

signal marsh
#

oui

unborn knot
#

Hello vous savez comment je peut get le channel d'une personne qui à effectuer une commande svp ? (discord.js)

keen narwhal
#

bah

#

quand elle exécute la commande il te suffit juste de garder l'id du salon du message

#

et après tu fais ce que tu veux avec

steady harbor
#

Et n’est plus a jour

signal marsh
#

non je sais mais c'est un code v12

#

@steady harbor

steady harbor
#

Montre ta ligne 321 du fichier zlimbot.js

signal marsh
#

bot.channels.cache.get('793430041186664459').send(`Bonjour ${member} ! Ton code de captcha est : ${bdd["captcha"][member.id]["value"]}`)

#

@steady harbor

steady harbor
signal marsh
#

Mais je fait comment pour regler le problème ?

#

@steady harbor

steady harbor
#

Chez pas moi :( esseye de passer ton discord.js en v 11.5.1

oak turret
#

Hello, quelqu'un sait pourquoi mon log de reaction me return "undefined", je vois pas pourquoi :x

fathom jay
#

Elle vient d'où ta méthode first() ?

timid loom
oak turret
#

oauip

#

mais y a pas d’erreurs, juste mon array vide quoi et je capte pas pourquoi alors que je réagis avant les 5secondes

cyan iron
#

Yo ! J'envoie dans ma base de données la valeur : 2.5, sauf que lorsque c'est envoyé, ça me le transforme en 3 🤨
Vous savez comment faire, j'imagine que c'est dans la requête SQL, j'ai cherché mais je n'ai pas trouvé :/

#

UPDATE users SET global_note = ${notes_} WHERE user_id = '${fetched_target.id}'

#

ma requête

#

notes_ vaut 2.5, mais se transforme en 3

slim anvil
#

Ton champs doit être en INT il faut qu’il soit en FLOAT

cyan iron
#

Personne ne sait ? :/

oak turret
#

moi perso

#

j’voulais faire un truc similaire et dès que je mettais l’id dans la bdd il petait un cable, je l’ai mis en text en bdd et ça a fonctionner, chelou mais bon

slim anvil
#

l'id discord ?

#

on a eu ce soucis et enfaite c'est normal, en js le Number a une taille maximale, du coup voilà pourquoi ton id discord en number la fin etait broken par exemple

#

il faut faire un bigInt dans ce cas

#

Sinon wailrone la non comme ca je ne sais pas

oak turret
#

en fait c’était chelou car mon id en l’occurence l’id du mec quand je le loggais il était good mais dès que je faisais l’insert en bdd il changeait de valeur et j’ai jamais su pourquoi

#

j’ai mis en text(255) et ça a fonctionner mais chelou

cyan iron
#

C'est vraiment bizarre 🤔

oak turret
#

c’est rien c’le sql thinkingplayer

keen narwhal
oak turret
#

xD

keen narwhal
#

Simple question, c'est quoi le code Hex pour avoir une bordure invisible sur le embed comme quand quelqu'un publie un tuto dans annonce