#javascript-typescript

1 messages · Page 66 of 1

keen narwhal
#

?

slim anvil
#

c'est la couleur de l'embed

keen narwhal
#

Yep je sais

#

J'ai look sur Goougle et genre la couleur que ça donnait était toujours un peu plus noir que l'embed

#

Merci

fathom jay
#

hello, j'ai une erreur que j'arrive pas à résoudre, j'ai fais mes recherches sur internet mais je comprends pas :
Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near

     else{
          res.send("SO GOODs");
          console.log("1");
          pool.query('SELECT * FROM users WHERE email = ?', [email], (err, results)=>{
               console.log("2");
               if(err){
                    console.log("3");
                    console.log(err);
               } else{
                    return new Promise((resolve, reject)=>{
                         console.log("4");
                         pool.query("INSERT INTO users SET ?, ?, ?", [username, email, password], (err, results)=>{
                              if(err){
                                   console.log("6");
                                   console.log(err);
                              } else{
                                   resolve(results);
                              }
                         });
                    });
               }
          });
     }```
fathom jay
#

j'ai oublié de préciser, j'utilise le module mysql et la db MariaDB

spring dock
#

C'est laquelle qui passe pas la?

fathom jay
#

c'est la 2e

spring dock
#

SET ?, ?, ?

#

forcément

#

tu set quoi

#

de l'air?

#

c'es pas comme ça un INSERT

#

tiens

#

Ce que ta fait la ce serait plus pour un UPDATE et encore du coup c'est pas comme ça non plus

fathom jay
#

oké merci jvais test, je vous redis

oak turret
#

UPDATE table SET index = tata

#

faut une val

fathom jay
#

j'ai essayé INSERT INTO users VALUES(${username}, ${email}, ${password})mais sans résultat

oak turret
#

INSERT INTO users(index1, index2) VALUES('value1', 'value2')

#

dans l'ordre

fathom jay
#

pool.query("INSERT INTO users(username, email, password) VALUES(?, ?, ?)", [username, email, password], (err, results)
ça a marché avec sa, merci 🙂

oak turret
#

np

floral bolt
#

Salut ! j'ai fait ca : js async function getwinner(msg) { const winner = msg.reactions.cache .get("🎁") .users.cache.filter((u) => !u.bot) .random(); const invites = await message.guild.fetchInvites() const userInvites = invites.filter(invite => invite.inviter.id === winner.id) let uses = 0 userInvites.forEach(value => { uses += value.uses }) console.log(uses) if (uses <= 0) { getwinner(msg) return console.log("changement de gagnant le membre n'a pas inviter assez de personne.") } console.log(winner) return winner.id; } mais ca me renvois [object Promise] vous savez pourquoi ?

#

je vous autorise a me ping si il y a une reposne 🙂

spring dock
#

const winner = await blablbalou i think @floral bolt

floral bolt
#

je vais test merci

#

c'est pas ca 😢

wind imp
#

Bonjour, je cherche via discord.js a récupérer quand un personne boost le serveur et surtout avoir son id ou autre

static grotto
#

@wind imp ta look la docu discord ?

#

Je crois que c'est premium quelque chose

oak turret
#

me souvient plus lequel c’est mais un des deux je crois

floral bolt
#

j'ai pas trop bien compris xD

bright pecan
#

Yo, alors j'ai un petit soucis ou ne trouve pas réellement la réel solution x), je m'explique quand je restart mon bot, mon auto rôle ne marche plus alors que si j'envoie le message avant le restart et que je prennent mon rôle sa marche puis quand je restart plus rien, comment je pourrait fix cela, pour que à chaque restart du bot je ne soit pas obliger de remettre le embed

slim anvil
#

quelle version de discord

bright pecan
#

v12

slim anvil
#

rajoute ca dans ton event messageReactionAdd

if (reaction.partial) {
            try {
                await reaction.fetch()
            } catch (err) {
                console.log(err)
            }
        }
bright pecan
#

Avant ou après le code qui permet de donner le rôle ?

slim anvil
#

Avant

#

en partant du principe que le n°1 de ton event se nomme reaction

bright pecan
#

Nop sa marche pas

slim anvil
#

Show me

bright pecan
#

My code ?

slim anvil
#

on est d'accord que c'est une commande ça ?

#

pourquoi ton event est dedans ThinKappa

bright pecan
#

Bah le truc c'est que si je le sort de la commande bah sa me rajoute pas le rôle quand je clique sur la réaction

slim anvil
#

Ton event doit etre au même niveau que tes autres évènements (ready, message, guildMemberAdd)

#

Et quand il clique sur la reaction tu lui ajoutes le role qui est lié a cet emoji 🤔 tu bloques a quel niveau

bright pecan
#

Je fait comment pour get l'émoji qui permet de lui donner le rôle sur un code sur sa

reaction.message.guild.members.cache.get(user.id).roles.add(role);
slim anvil
#

tu le recois dans le premier paramètre de l'event messageReactionAdd

#

Mais c'est un message fixe ? ou c'est une commande qui va etre utilisé souvent et en reagissant au message de la commande ca donne un role ? sinon tu fais un awaitReactions ou l'autre je sais plus le nom

#

par contre ce sera limité dans le temps, et si le bot restart il faut relancer la commande, ca dépend ce que tu cherches a faire quoi

slim anvil
#

mais donc pourquoi t'as une commande pour le renvoyer ? 🤔

#

ou ca n'a rien à voir ?

bright pecan
#

Bah faut bien que je le mettent le message x)

slim anvil
#

Ah tu veux le publier avec le bot ? okayy

bright pecan
#

Ouep

slim anvil
#

Bah maintenant vu que le message est fixe, lors de la reaction tu vas venir voir si le message.id === 'xxx' (tu copies l'id de ce message qui est publié)

bright pecan
#

Pas bête

slim anvil
#

Tu viens ensuite vérifier si l'emoji est bien égal a l'émoji que tu veux, et si oui, hop tu ajoutes le role xxx a l'utilisateur qui a react

bright pecan
#

Par contre j'ai aucune idée de comment faire sa x), pourtant je cherche mais l'idée ne vient pas mdr

slim anvil
#

ca va te permettre deja de visualiser ce que tu vas avoir comme "champ d'action"

boreal edge
#

Si c'est un problème qui ne détecte pas les réactions sur les messages avant que le bot est react, fait juste un get du message dans un ready et normalement ça devrait être bon

slim anvil
#

Non mais là c'est juste que l'event est pas au bon endroit, donc forcement ca marche quand il execute sa commande car sa run le code donc l'event

boreal edge
#

Ah x)

floral bolt
#

Salut, comment je peux supprimé une seul donné dans une table avec mongoose ?

slim anvil
#

tu fais un .remove() dessus

#

Tu viens le find avant dans ta collection, une fois que tu le récupères .remove()

peak cedar
#

slt comment creer un channel avec une cmd ?

oak turret
#

<msg>.guild.channels.create()

#

look la doc sinon hein

bright pecan
#

Hello quand je pourrait éviter cela, je voudrait que tous mes embed s'envoie mais ne remet pas le pseudo du bot à chaque fois ?

boreal edge
#

Envoie tout en entier, j'ai du mal à voir ce que tu veux exactement là 👀

bright pecan
#

Bah en gros je doit envoyer mes embed sur plusieurs message mais tout est sur une seule commande, sauf que il y a un soucis, le pseudo du bot s'affiche à chaque message alors qu'il sont envoyer tous ensemble

oak turret
#

pense pas que ça soit possible

#

du moins je vois pas

#

vu que c’des embed

#

des messages normaux oui mais pas les embed, je peux me tromper après

keen narwhal
#

Ya que pour les webhooks que tu peux envoyer plusieurs embeds en un seul message ||(donc ne pas afficher le pseudo du bot à chaque message)||

timid loom
# bright pecan

Si tu as mis l'apparence des messages en compact le pseudo apparaît oui, en tout cas si tu envoies plusieurs messages
Pour mettre plusieurs embeds c'est pas possible via un bot en tout cas, j'ai pas testé avec des webhooks cela dit

queen ocean
#

Avec webhook c’est 100% sur tu peux le faire mais chelou qu’on puisse pas via bot 🤔

hearty wedge
#

salut, qq1 pourrai m'aider? me ping

oak turret
#

t'aider pour ? @hearty wedge

#

don't ask to ask

hearty wedge
#

ouaip enfaite, je fais un system qui unlock le channel si l'utilisateur netre le meme mot de passe que celui qui a été mis dans la db avec un commande du bot, le porbleme c'est que quand le bot verifie si il y a deja ce channel dans la db mais ca me renvoit une erreur : Error: ER_DUP_ENTRY: Duplicate entry '776487254231089163' for key 'idChannel'

#

@oak turret

oak turret
#

fais voir ton code

#

et ta structure bdd

hearty wedge
#

c'est du sql mais executer par du js

oak turret
#

oui oui je connais tqt

hearty wedge
#

Error: ER_DUP_ENTRY: Duplicate entry '776487254231089163' for key 'idChannel'
```js
if(!args[0]) {
return message.channel.send(":ano: Vous deviez specifier un mot de passe.")
}

db.query(`SELECT * FROM user WHERE idChannel = ${message.channel.id}`, (err, req) => {
    if (req.size === 1) {

        message.channel.send(":ano: Channel déjà securiser")
    
    }   

    if (req.size === undefined) {
        db.query(`INSERT INTO user (IdUser, IdChannel, PasswordUser) VALUES ('${message.author.id}', '${message.channel.id}', '${args[0]}')`)
        message.channel.send(":ayes: Ce channel est maintenant secruisé !")

    } 

    
})

}

module.exports.help = {
name: "config"
}```

boreal edge
#

Tu as déjà une entrée

hearty wedge
#

Je sais ;-;

boreal edge
#

Tu dois êtes en PRIMARY KEY à mon avis

hearty wedge
#

unique

boreal edge
#

et du coup tu peux pas mettre deux fois la même valeur dans la même colonne :eys:

oak turret
#

montre moi ta structure bdd on va vite le voir

hearty wedge
oak turret
#

il est en primary

hearty wedge
#

unique*

#

@oak turret

oak turret
#

ui bah il est là le pb

hearty wedge
#

je sais

oak turret
#

si c'est un champ unique il ne peut pas en avoir deux

hearty wedge
#

voila exactement

#

enfaite c'est dans mon code js que ca va pas

oak turret
#

bah alors

#

normalement

hearty wedge
#
if(!args[0]) {
        return message.channel.send(":ano: Vous deviez specifier un mot de passe.")
    }

    db.query(`SELECT * FROM user WHERE idChannel = ${message.channel.id}`, (err, req) => {
        if (req.size === 1) {

            message.channel.send(":ano: Channel déjà securiser")
        
        }   

        if (req.size === undefined) {
            db.query(`INSERT INTO user (IdUser, IdChannel, PasswordUser) VALUES ('${message.author.id}', '${message.channel.id}', '${args[0]}')`)
            message.channel.send(":ayes: Ce channel est maintenant secruisé !")

        } 

        
    })

}

module.exports.help = {
    name: "config"
}```
oak turret
#

tu peux faire if ( req[0] ) {} else {}

#

pas besoin de get la size

#

si tu t'utilises mysql fin le package

hearty wedge
#

ok je test comme ca

#

ya un ptit porbleme

#

@oak turret

oak turret
#

lequel ?

hearty wedge
#

att

#

j'ai fais ca

#
    db.query(`SELECT * FROM user WHERE idChannel = ${message.channel.id}`, (err, req) => {

    if(!args[0]) {

            return message.channel.send(":ano: Vous deviez specifier un mot de passe.")

        }

        if(req.size === 0) {
    
                db.query(`INSERT INTO user (IdUser, IdChannel, PasswordUser) VALUES ('${message.author.id}', '${message.channel.id}', '${args[0]}')`)
                message.channel.send(":ayes: Ce channel est maintenant secruisé !")

          } else {

                message.channel.send(":ano: Channel déjà securiser")
    
            } 
    
            
        })
    
    }```
oak turret
#

rien qui change là ?

hearty wedge
#

nan

#

mais

#

maintenant le bot me renvoit qu'il est deja securiser alors qu'il n'y pas ce channel dans la db

oak turret
#

bah ton code à pas changer quoi

#

t'as changer quoi ?

hearty wedge
#

non

#

j'ai mis req.size === undefined

oak turret
#

Hello, dites moi, vous sauriez comment faire pour get un react d'un message déjà publié, et après que ça exécute une action bien précise ?

slim anvil
#

Avec l’event reactionAdd

oak turret
#

et comment je get le message id depuis le reaction add ?

spring dock
oak turret
#

po bête, je vais test ça ty

#

en fait, il le détecte pas si le message est déjà posté quoi

spring dock
#

Faut que tu fasse un truc avec l'event "raw" aussi je crois

#

tiens un exemple

oak turret
#

Oula

#

je comprends pas trop je t'avoue xd

slim anvil
#

Quelle version de Discord déjà lartaxx

oak turret
#

de d.js ?

slim anvil
#

Oui

oak turret
#

12

slim anvil
#

tu dois utiliser les partials

oak turret
#

j’ai fais autrement, mais what is this?

slim anvil
#

t'as fais comment ??

#
if (reaction.partial) {
            try {
                await reaction.fetch()
            } catch (err) {
                console.log(err)
            }
        }
#

dans ton event reactionAdd

keen narwhal
#

Voilààà

#

Sur ton messageReactionAdd, tu peux mettre ça :

if (reaction.message.partial) await reaction.message.fetch();
if (reaction.partial) await reaction.fetch();```
oak turret
#

j’ai pas fais avec les reaction du coup!, mais la partial représente quoi ? je peux get l’action de react à chaque fois qu’un user le fait ?

keen narwhal
#

Je saurais pas trop expliquer x)

#

C'est mis directement sur le guide si c'est plus précis

oak turret
#

mh okay et reaction. message.partial fais quoi ?

#

je comprends pas trop à quoi il correspond

keen narwhal
#

ça get les reactions en gros

oak turret
#

okay mais on définit quel message où?

keen narwhal
#

Alors en gros
Un partial c'est du booléen
et si quelque chose est partial
Ca veut dire que t'as toutes les infos du truc mais uniquement en petite partie (comme l'id du message de la réaction)
et dcp bah si cest le cas tauras juste a fetch pour recuperer tout le reste des infos qui t'intéressent (comme l'user qui a ajouté la réaction, les infos de la guild, emoji de la réaction, etc

(mal dit mais c'est vite fait ça
:eyes: )

#

Bonjour, je voulais savoir si certains ici ont une idée de comment créer un système de transcript ( ticket ) en javascript ?

keen narwhal
#

Sans y réfléchir réellement jdirais quil te suffit juste de stocker les messages dans un fichier et densuite envoyer ce fichier

#

Oui mais bon

#

Après on peut le faire aussis sur un hastebin

#

Y'a pas une fonction qui peut save tous les messages d'un channel dans un hastebin ?

#

Hastebin fait que de crash
Leurs services sont pétés en général les sites répondent pas

#

Bah au pire dans un .txt

oak turret
oak turret
#

C'est tout bon, j'ai réussi ^^ ty!

oak turret
#

Hello, quelqu'un sait comment avec discordjs-prompter faire un prompter mais posé en dm les questions ?

#

car l'id d'un user ne fonctionne pas, il me sort que channel.send n'est pas une fonction :x

slim anvil
#

T’as quelle version de djs-prompter

#

Car ils l’ont fixé dans une version donc les dm devrait fonctionner sauf si tu as mal fais l’envoi ou que tu as une version antérieure

oak turret
#

2.0.4

#

et le dm je l'avais fais avec get l'id de l'user depuis le serveur

#

genre

#

message.guild.members.cache.get(user.id)

#

ça fonctionnait

#

mais après il me mettait que awaitMessage n'est pas une fonction

toxic cypress
#

heyy

#

je ne comprend pas pourquoi ma fonction javascript ne fonctionne pas et ne reconaît pas le 'click' ?

#

Quelqu'un si connaît ?

#

Uncaught TypeError: Cannot read property 'addEventListener' of null

#

voici l'erreur console

oak turret
#

pas plutôt

toxic cypress
#

Je suis con

#

mais vraimenr

oak turret
#
hamburger.addEventListener("click", function() {
//
})

?

toxic cypress
#

j'avais juste oublier la fonction window.onload = function() {

#

ma fonction revenait donc null

#

alalala

#

Mercii qd même !

slim anvil
#

Sinon tu charges juste ton script à la fin du body et pas dans le head

toxic cypress
#

Yesss merci !

dire latch
#

Hey 🙂

#

Comment on moove quelqu'un dans un bureau vocal

#

🤔

slim anvil
#

Faut qu'il soit deja en vocal et si oui tu fais un setVoiceChannel(id)

#

sur le member

dire latch
#

J'ai trouvé merci 🙂

#

C'était member.voice.setChannel

slim anvil
#

ah bah doit y avoir les 2 alors, mais good

jovial turret
#

Salut, comment vous feriez pour télécharger un fichier en js? J'utilise download.js avec ce code sur les objets à télécharger mais je n'obtiens que des fichiers illisibles 😦

$.ajax({url: 'https://cdn.vbcms.net/images/general/1530917577_steam_loading-avatar.gif', success: download.bind(true, 'img/jpg', '1530917577_steam_loading-avatar.gif')});
#

genre windows ne peut pas les ouvrir, mais ils ne sont pas vide

oak turret
#

tu dl un gif que tu déclares en jpg ?

jovial turret
#

oui je sais sue mais je te rassure, ça ne marche pas mieux si je dl un jipègue x)

#

le plus bizarre dans tous ça c'est que les tailles sont sensiblement les mêmes 🤔

oak turret
#

et ça tu peux pas l'ouvrir genre

jovial turret
#

non

#

tous les programmes plantent en tentant de l'ouvrir

#

j'ais fais autre chose du coup :p

oak turret
#

Quelqu'un aurait un handler, simple d'utilisation ?

slim anvil
#

commando

oak turret
#

j'y comprends rien à commando xd

spring dock
#

pas dur a comprendre pourtant

oak turret
slim anvil
#

Bah regarde la doc c'est assez bien expliqué tout ce qu'il y a savoir :/

oak turret
#

t'aurais une doc assez bien expliqué ? je trouve pas de doc offi

slim anvil
oak turret
#

ty xd

oak turret
#

Vous sauriez comment mettre les messages d'erreurs en français sur commando ? genre pour throttling ?

slim anvil
#

y a pas encore de traduction malheureusement, tu peux les changer toi a la main ou réecrire une partie du code il y a des exemples

#

tu peux extends une class de commando et venir la modifier avec ta traduction

oak turret
#

je vois, alors tu aurais un indice à me fournir pour throttling par exemple, car du coup je débute avec commando, mais ça a l'air vraiment pas mal et mieux

slim anvil
#

un indice pour la traduction ou pour le fonctionnement du throttling ?

oak turret
#

pour la traduction de throttling pour que je l'use partout

slim anvil
oak turret
#

c'est déjà implémenté sur commando ça ?

slim anvil
#

Non je crois pas

#

Non effectivement

oak turret
#

Okay je vais tester je te remercie Enzo !

#

comment je fais pour l'implémenter son système si dans commando il y est po ?

slim anvil
#

Tu peux le créer en reprenant son code par exemple, après bon courage ca doit etre chiant à faire

#

ou tu attends qu'ils passent la branche translation en master kappa

oak turret
#

sinon faut que je modif les fichiers de commando moi-même

#

omg

slim anvil
#

Je te le conseille pas car à la moindre update tu perds tout

oak turret
#

ah bah ouais

#

relou quand même xd

slim anvil
#

fais ton handler sinon

#

en soit

oak turret
#

vous utilisez commando vous ?

slim anvil
#

Oui

#

!say

ancient sonnetBOT
#

@slim anvil, Je n'ai trouvé aucun channel textuel avec cet id. :(

oak turret
#

ah bah yes

slim anvil
#

mauvaise exemple kappa

oak turret
#

xD

slim anvil
#

a!warn djzdejdije eeded

ionic hollyBOT
#

@slim anvil, You provided an invalid membre à warn. Please try again.
Respond with cancel to cancel the command. The command will automatically be cancelled in 30 seconds.

slim anvil
#

voilà

ionic hollyBOT
#

@slim anvil, Cancelled command.

oak turret
#

ah bah yes

#

bonn bahhh je vais espérer qu'ils foutent son système bientôt lel

slim anvil
#

last commit

#

sur cette branche translations

oak turret
boreal edge
#

xD

oak turret
#

re, pour les events avec commando il gère pas ? j'ai rien trouvé sur la doc parlant des events

slim anvil
#

les events tu les fais normalement

low bronze
keen narwhal
#

Salut à tous, j'ai une erreur et je ne sais pas comment la résoudre

#
 let channelMessages = await message.channel.fetchMessages({
            limit: 100
        }).catch(err => console.log(err)); ```
#

Erreur : TypeError: message.channel.fetchMessages is not a function

spring dock
#

a tout hasard

#

(non)

#

je dirais que la fonction n’existe pas

keen narwhal
#

Aïe

dapper coral
#

Check ta version de discordjs

keen narwhal
#

Yep je crois avoir trouvé

#

C'est bon, il fallait mettre messages.fetch

#

Merci à vous deux ^^

dapper coral
#

np

keen narwhal
#

^^

keen narwhal
#

Jme sens seul à utiliser .resolve() au lieu de .get() le cache

timid loom
#

tkt en vrai je trouve que c'est un peu plus constant dans les réponses le resolve

supple cairn
#

je vien d'installer node js et quand je l'ouvre cqa me met ca il faut faire quoi svp

slim anvil
oak turret
#

du coup il faut lire

supple cairn
#

😂 j'ai meme pas regarder

slim anvil
#

Une fois que c'est terminé, tu peux fermer ton terminal, et ensuite faire ton premier script en nodejs

supple cairn
#

sur vsc on peut faire avec un fichier js ?

slim anvil
#

Yes of course

supple cairn
#

ok mrc

oak turret
#

juste que tu fais npm i module pour installer des modules

#

regarde des tutos après

supple cairn
#

ok parceque je connais rien

oak turret
#

google c'est ton meilleur ami

slim anvil
#

Si jamais tu bloques hésites pas à demander, mais au départ je te conseille de te balader un maximum sur la doc, et des petits tutos par ci par là

#

Tu cherches à faire quoi exactement @supple cairn

oak turret
#

et si jamais tu comprends vraiment on t'aidera 🙂

supple cairn
#

des bots

oak turret
#

discord.js

#
slim anvil
#

t!search bot

cedar oreBOT
supple cairn
#

faut installer ca aussi ?

oak turret
#

oui

slim anvil
#

Tiens sur le site de gca tu as des tutoriels sur la création step by step

oak turret
#

npm i discord.js

slim anvil
#

hésites pas à aller regarder ^^

oak turret
#

mais look les tutos

supple cairn
#

a cool

slim anvil
#

ca fera plaisir à @hazy mirage

oak turret
#

des personnes talentueuses ont prit le temps d'expliquer tout ça

#

trop fort Pilot

slim anvil
#

des personnes talentueuses
bah non c'est pilot KappaLUL

oak turret
spring dock
#

faut faire un bouton dislike pour les tutos écrit par pilot

supple cairn
oak turret
#

tu sais ce qu'il te reste à faire bob kapp

supple cairn
#

npm je fais sur mon editeur ?

oak turret
#

sur ta console sur vsc

#

"Terminal"

supple cairn
#

a ok

oak turret
supple cairn
oak turret
#

tu l'écris pas dans ton code du coup

#

look le tuto de Pilot !

#

t!search bot

cedar oreBOT
oak turret
#

le 2 puis le 1

supple cairn
#

ouai mdr c avant que tu le disent

#

c bon pour le npm ?

oak turret
#

t'as installé discord.js yes

supple cairn
#

je sais juste faire ca moi 😆 (Je crois que jai mis n'importe quoi)

supple cairn
oak turret
#

pour mettre un else faut un if

#

mais apprends le js si tu connais pas

slim anvil
#

oui là typiquement il y a rien de bon, avant de faire du nodejs, peut etre apprend les bases du javascript

#

typiquement l'alert ne fonctionne pas en nodejs car c'est du côté client (navigateur), alors que le nodejs est orienté serveur

supple cairn
#

ouai c juste que j'avais le code de prompt noter quelque part

#

et je sais juste if = si

#

else = sinon

oak turret
#

bah là du coup c'est pas bon

#

mais même c'est pas adapté ton code

#

ce que tu fais c'est du js, pas du nodejs

supple cairn
#

oui

oak turret
#

donc réfléchis bien à ce que tu veux faire

supple cairn
#

c t juste pour dire que je sais faire prompt 😆

oak turret
#

oui mais prompt ne fonctionnera pas en nodejs

supple cairn
#

je sais c pour les sites

oak turret
#

donc voilà

supple cairn
#

je peux avoir la page d'acceuil du site

oak turret
supple cairn
#

purée il est trop bien fait

supple cairn
#

npm -y c quoi ?

oak turret
#

c’est écrit dans son tuto

supple cairn
#

non

oak turret
#

si

#

si je te le dis c’est que je l’ai vu

supple cairn
#

initialiser le projet?

#

mais ca veut dire quoi

cedar crest
supple cairn
#

?

slim anvil
#

npm init par exemple

oak turret
supple cairn
#

ouai mais ca veut dire quoi

oak turret
#

de quoi ça veut dire quoi ?

#

ça initialise ton projet

#

pas + simple que ça

slim anvil
oak turret
#

merci Le Robert

supple cairn
#

c pour la mise en fonction alors

slim anvil
#

C’est pour démarrer ton projet, une première « configuration »

oak turret
supple cairn
#

par contre ya pas dis le npm i discord.js

#

peut etre a la suite

oak turret
#

lit en entier le tuto

supple cairn
oak turret
#

fais la commande et tu verras

supple cairn
#

deja le npm init ma pas mis comme lui

oak turret
#

normal

#

ça configure ton projet

supple cairn
#

ouai c logique mais

oak turret
#

et bah voilà

supple cairn
oak turret
#

?

supple cairn
oak turret
#

normal

#

tu peux pas mettre d'espaces etc dans le nom

#

tu dois mettre bot_test

#

et pas bot testt

supple cairn
#

le t en trop 😂

oak turret
#

l'espace est un caractère spécial qui sont pas autorisés dans la commande

supple cairn
#

a je savais pas parceque en gtml et css on peut donc

oak turret
#

tu peux pas comparer les deux

supple cairn
#

ouai mais je savais pas qu'il y avait des differences par rapport a ca

oak turret
#

au moins tu le sais

supple cairn
#

c compliquer

#

ca marche steamhappy

#

par contre moi j'ai pas autant de fichiers que lui j'ai 2 packages

oak turret
#

t'as fais npm i discord.js

#

?

supple cairn
#

oui

oak turret
#

montre ton node_modules

supple cairn
#

a ouai

#

moi je parle quand j'ouvre mon fichier dans mon editeur

#

a ba c'est bon dans mes fichiers

oak turret
#

exprime toi un peu mieux stp

#

je comprends pas ce que tu veux me faire savoir

#

tu parles de quel fichier ?

supple cairn
#

quand je vais dans la galerie j'ai tout dans le fichier module mais quand j'ouvre le fichier sur mon editeur ya que 2 fichier et mon index

full scaffold
#

!vpn

ancient sonnetBOT
#

GCA est en partenariat avec NordVPN !
https://nordvpn.org/gca

Afin de permettre aux membres de notre communauté de rester protégé sur internet, ce monde que nous consultons tous les jours, NordVPN t'offre un service fiable te permettant de te localiser ailleurs lorsque tu navigues sur internet ! Mais en plus de cela, cela te permet d'autres choses comme regarder des séries Netflix disponible que dans d'autres pays ou même encore pour changer d'IP lorsque tu rejoins un serveur Garry's Mod sans vouloir que les admins puissent avoir accès à ta vrai IP :eyes:
Si tu as des questions, n'hésite pas à demander dans #general ! :ok_hand:

next whale
#

Salut, j'ai fais un embed avec une commande, et j'ai relié mon serveur avec le module gamedig, le soucis est que je ne sais pas me servir des différents paramètres (genre la map etc) quelqu'un pourrai m'aider ?

oak turret
#

yes

#

dis moi

#

ton code ?

next whale
#

yep je t'envoies ça dans 2 minutes

#

GAMEDIG

Gamedig.query({
    type: 'garrysmod',
    host: '217.182.189.59',
    port: '20082'
}).then((state) => {
    console.log(state);```

**EMBED**
```js
    if(message.content.startsWith(`${prefix}status`)){

        let StatusEmbed = new Discord.MessageEmbed()
        .setAuthor(message.guild.name)
        .setThumbnail(message.author.displayAvatarURL({dynamic: true, size: 512}))
        .addField('Titre')
        .addField('Status')
        .addField('Nombres de joueur')
        .setFooter('Informations du serveur')
        .setColor('GOLD')

        message.channel.send(StatusEmbed)

    }```
oak turret
#

yep bah du coup

#

state.map etc

next whale
#

aaaah ok, moi j'avais testé gamedig.map

#

d'accord merci !

oak turret
#

bah non du coup, c'est l'argument dans ton .then()

#

pas de soucis

next whale
#

Cela me dis que state n'est pas défini

oak turret
#

montre ton code entier

next whale
#
const Discord = require("discord.js");
const Gamedig = require('gamedig');

const bot = new Discord.Client();

const config = require("./db/config.json");

Gamedig.query({
    type: 'garrysmod',
    host: '217.182.189.59',
    port: '20082'
}).then((state) => {
    console.log(state);
}).catch((error) => {
    console.log("Server is offline");
});

bot.on("ready", function() {

    console.log("C'est ok!")    
    bot.user.setActivity('https://buildit.ga/', { type: 'WATCHING' })
        .then(presence => console.log(`L'activité a été modifié pour ${presence.activities[0].name}`))
        .catch(console.error);

})

bot.on("message", function(message) {

    

    if(message.author.bot) return;
    if(message.channel.type === "dm") return;

    let prefix = config.prefix;
    let messageArray = message.content.split(" ");
    let command = messageArray[0];
    let args = messageArray.slice(1);

    if(message.content.startsWith(`${prefix}status`)){

        let StatusEmbed = new Discord.MessageEmbed()
        .setAuthor(message.guild.name)
        .setThumbnail(message.author.displayAvatarURL({dynamic: true, size: 512}))
        .addField('Titre', state.name)
        .addField('Status', state)
        .addField('Nombres de joueur', state.players + '/' + state.maxplayers)
        .setFooter('Informations du serveur')
        .setColor('GOLD')

        message.channel.send(StatusEmbed)

    }

})```
oak turret
#

normal

#

faut que tu fasses ton query dans ta commande

#

et ton embed dans ton .then()

next whale
#

ah oui nickel ça marchie mieux ahah !

#

Merci

spring dock
#

j’ai une question, avant même de vouloir faire des bots, vous voulez pas juste apprendre le JS un peu voir même les bases de la prog directement car la c’est même pas un problème de js

#

?

#

🤔

next whale
#

Pourquoi pas, mais la je m'essaie juste aux bots, je fais du lua de base

oak turret
#

faut apprendre les bases au moins avant

spring dock
#

oui enfin même si tu fait du lua, ce genre de truc justement c’est des trucs que tu fait quand ta jamais rien dev de ta vie, enfin bref

boreal edge
#

En vrai c'est pas facile au début mais ça va vite après

#

Juste le temps d'avoir l'habitude

#

De comment ça marche et la syntaxe

spring dock
#

« j’ai foncé dans le nodejs direct » càd? faire quoi en nodejs ? non parce que pour rappel le nodejs c’est pas juste faire des bots discord hein au cas où

boreal edge
#

Ouais je sais

#

bots discord

spring dock
#

et moi je pointe juste du doigt, les mecs qui pigent que dalle de ce qu’ils font car ils commencent juste à faire des bots en ayant jamais rien fait d’autre et qu’en plus ils cherchent pas à comprendre (attention je dit pas que c’est le cas de Isaac)

boreal edge
#

C'est pas intéressant de faire du code pour le résultat j'trouve

#

Faut comprendre ce que tu fais

spring dock
#

si ta des notions dans d’autres langages, c’est assez facile de s’adapter à un autre langage en général (à partir du moment où t’es bon dans l’un évidemment)

boreal edge
#

en plus tu progresser bcp mieux

supple cairn
#

quand je fais node. dans la console ca fait rien

slim anvil
#

t'as bien mis l'espace entre node et . ?

supple cairn
#

a ba non

#

chui bete ou aveuglr

slim anvil
#

bête non, mal voyant peut-être sue

supple cairn
#

o ca fonctionne

#

le bot est en ligne combien de temps ?

slim anvil
#

Jusqu'au moment ou tu stop ton terminal

#

ou si tu as une erreur qui stop le process

supple cairn
#

quand je ferme l'editeur

slim anvil
#

Yes car du coup tu stop ton terminal si tu utilises celui de VSCode

supple cairn
#

a ba pas besoi d'hebergeur alors

slim anvil
#

Je sais pas si VSCode cut automatiquement le terminal au bout d'un moment, mais si non, tu peux laisser tourner ton ordi toute la journée oui

#

Après si tu as une mauvaise connexion, le bot aura des latences

supple cairn
#

ba si je le ferme sans l'eteindre c'est bon ?

slim anvil
#

A vérifier du coup

supple cairn
#

ok

#

je v eseiai

keen narwhal
#

Je lai fermé il est toujour co !

supple cairn
#

a ba non

#

vous aller encore faire des cour ?

#

parce que c'est bien expliquer

slim anvil
#

Yes cela depend des membres

#

Tu peux toujours demander via les suggestions quel genre de tuto t'interesserait

#

ca peut motiver des membres

supple cairn
#

ba je sais pas moi la suite pour apprendre 😁

oak turret
#

Après pareil si t’avais suivi le tuto de Pilot il mentionne bien que tu peux fermer la session de ton terminal avec ctrl+c ce qui va éteindre ton bot

supple cairn
#

oui jai vu

night crane
#

Il y a des gens pour m'aider mtn ?

slim anvil
#

Pose ta question directement

night crane
#

J'ai voulue faire un truc stylé quand une personne rejoint mon serveur, avec ce code :

bot.on("guildMemberAdd" , member => {
    member.send(`Salut ${member}👋\n\nBienvenue sur le serveur d'EndField Roleplay, voici des petites étapes toute simple :\n\n1️⃣: Coche la case "🙋‍♂️" pour avoir accès au serveur complet\n2️⃣: Je te conseil de bien lire le règlement "#📋╿règlement"\n3️⃣: Tu peux faire ``!help`` dans le channel #🎮╿commande-bot pour avoir accès aux informations sur le serveur!\n🆘: Si tu as besoin d'aide fait ``!new`` dans #🎮╿commande-bot.\n\n**Grace a toi nous sommes désormais : ${memberCount}💘\n\n\n***Passe un bon moment sur notre serveur\nL'équipe de modération d'EndField Roleplay***`)
})```


Mais le soucis c'est que ça n'envoie pas le message et je voulais aussi le mettre sous format "**Embed**" mais je sais pas trop comment faire... 

L'erreur que ça me met : 

```javascript
Uncaught TypeError: member is not a function
No debugger available, can not send 'variables'```
oak turret
#

oulalala

#

ouais alors

#

t’as qu’à faire un embed

#

regarde ce lien

night crane
oak turret
#

c’est tes ˋ très sûrement

#

tu peux pas en mettre trois alors que ta fonction est encadré par des `

night crane
#

Ok merci

lapis onyx
feral abyss
#

Essaie de mettre json "esModuleInterop": true dans ton tsconfig.json

lapis onyx
#

oups j'en ai pas

feral abyss
#

Go en créer

lapis onyx
#

Ouais, faut que je me renseigne un peu sur le fichier déjà puisqu'il me rajoute des erreurs

feral abyss
boreal edge
#

Yop !
Est ce que vous aurez une API pour récupérer un mot français aléatoirement ?
Mercii 😉

fleet socket
boreal edge
#

@fleet socket Yep j'ai vu mais c'est des mots angalis

#

J'avais oublier de le préciser désolé xD

fleet socket
#

ah bah att je vais regarder

boreal edge
#

thx 😉

fleet socket
#

j'allais dire que je trouvais rien mais je crois que j'ai trouvé

#

j'ai pas encore regardé en detail mais ça à l'air d'etre ça

#

miuais en fait je suis pas sur qu'elle te genere un mot :/

#

faudrait que tu test

#

Sinon ce que tu peux faire c'est télécharger une wordlist 🤔

#

et apres tu pioche un mot dedans au hasard

boreal edge
#

Yep faut voir, thx 😉

grim bronze
#

Hello, j'essaie de faire un bot reaction roles, je cherche à faire un sorte que lorsque quelqu'un réagis avec les emojis, ils soient supprimés automatiquement, si quelqu'un peut m'aider merci

client.on('messageReactionAdd', (reaction, user) => {
  if (!reaction.message.guild || user.bot) return
  const reactionRoleElem = config.reactionRole[reaction.message.id]
  if (!reactionRoleElem) return
  const prop = reaction.emoji.id ? 'id' : 'name'
  const emoji = reactionRoleElem.emojis.find(emoji => emoji[prop] === reaction.emoji[prop])
  if (emoji) reaction.message.guild.member(user).roles.add(emoji.roles)
  else reaction.users.remove(user)
})
oak turret
#

Hello

#

alors pour ça

#

ton code work sur les emoji?

#

reaction.users.remove(user.id) me semble t-il je vais look sur mes partials

#

ouaip c’est ça

dapper coral
#

Bonsoir je sait pas si a cette heure quelqu'un pourra m'aider mais sa fait un moment que je galère dessus je sait pas comment faire, enfaite ceci

#

quand je le console.log sa me donne ça

#

le soucis étant que quand je veut le mettre dans mon embed sa écrit [Object object] je ne sait pas comment regler ceci 🤷‍♂️

#

sa doit certainement etre tout con, j'ai chercher sur internet mais j'ai pas reussie

slim anvil
#

montre le code de ton embed sharki

dapper coral
slim anvil
#

donc si tu log description c'est ce que tu as dans ta console ?

dapper coral
#

la sa ne marque pas object object mais undefined

dapper coral
slim anvil
#

Car object object c'est car tu envoies un objet au lieu d'une string

#

et tu le déclares ou description

dapper coral
#

juste au dessus

slim anvil
#

bah du coup tu log description.attribs.content

#

donc dans ton value: tu met la meme chose

#

la tu envoies un objet

dapper coral
#

omg okkkk

#

donc sa fait 2 heure je suis dessus juste parceque je me trompe sur un truc aussi con

slim anvil
#

je pense oui

dapper coral
#

je test au cas ou mais merci

slim anvil
#

yes tu me dis

dapper coral
#

Oui c'est bon sa marche ! merci beaucoup 😁

slim anvil
#

👌

peak cedar
#

slt

J'ai une petite question

Comment ont fait une commande qui utilise ce que l'on marque je m'explique

Engros dans le style je marque

!code 1234

et le bot me fait un message et dit le code et 1234 et puis si apres je fait un autre msg

!code 1418

que le bot marque code : 1418 ce possible ? si oui comment

merci

hybrid berry
#

Oui

#

Tu met dans le message le premier argument

peak cedar
#

hey besoin d'aide

#

    if (message.content.startsWith("!test")) {
        message.delete();

        if (args.length < 1)
            return message.reply("**Tu sais utiliser la CMD ? fait !code 'le code de la game sans les :''et tu et bon     '**").then(m => m.delete(8500));

        if (args[0].toLowerCase() === "embed") {
            const embed = new MessageEmbed()
                .setColor(rdmColor())
                .setDescription(args.slice(1).join(" "))
                .setTimestamp()
                .setImage(client.user.displayAvatarURL)
                .setAuthor(message.author.name, message.author.displayAvatarURL)
                .setFooter(client.user.username, client.user.displayAvatarURL)

            message.channel.send(embed);

        } else {
            message.channel.send(args.join(""))


        }
    }

sa marche pas sa delete juste la cmd

#

plz help 🙂

hybrid berry
#

@peak cedar voila un exemple

#

bon c'est du c# mais tu vois globalemenbt l'idée

boreal edge
#

m.delete({timeout : 8500})

#

@peak cedar

peak cedar
#

@boreal edge

#

nhandledPromiseRejectionWarning: ReferenceError: args is not defined

boreal edge
#

C'est pas à cause de ça

#

Quelle ligne ?

peak cedar
#

js:266:9)

slim anvil
#

tu le définis ou args

peak cedar
#

@slim anvil pars je crois

slim anvil
#

okay bah comment tu veux que ca fonctionne alors

#

si tu utilises une variable non défini

peak cedar
#

je sais pas comment la def

#

😭

slim anvil
#

du coup je t'invite à aller découvrir les notions de javascript

peak cedar
#

const args = message.content.slice(prefix.length).trim().split(' ');

#

?

slim anvil
#

essaye et log ta valeur tu verras directement si ca fonctionne bien

peak cedar
#

nop

#

prefix

#

not defined 😦

peak cedar
#

j'ai retirer prefix chepoaquoi

#

je peux faire quoi pour changer et retirer prefix @slim anvil

#

const args = message.content.slice(prefix.length).trim().split(' ');

slim anvil
#

prefix est defined ?

peak cedar
#

nop mais justement jutilise pas prefix

#

je fait sa moo

slim anvil
#

oui mais faut définir args quelque part

peak cedar
#

bas la je les fait

#

  if (message.content.startsWith("!test")) {
        message.delete()
        const args = message.content.slice(prefix.length).trim().split(' ');

        if (args.length < 1)
            return message.reply("**Tu sais utiliser la CMD ? fait !code 'le code de la game sans les :''et tu et bon     '**").then(m.delete({ timeout: 8500 }));

        if (args[0].toLowerCase() === "embed") {
            const embed = new MessageEmbed()
                .setColor(rdmColor())
                .setDescription(args.slice(1).join(" "))
                .setTimestamp()
                .setImage(client.user.displayAvatarURL)
                .setAuthor(message.author.name, message.author.displayAvatarURL)
                .setFooter(client.user.username, client.user.displayAvatarURL)

            message.channel.send(embed);

        } else {
            message.channel.send(args.join(""))


        }
    }




slim anvil
#

ok mais prefix.length est défini ou ?

#

tjrs pareille

peak cedar
#

bas la ta tout le code

slim anvil
#

Oui mais là tu as quoi comme erreur lorsque tu test

oak turret
#

Hello, alors par rapport à commando, j'ai un petit soucis, c'est que les prompt bypass les conditions de mon code, ce qui le rend un peu perturbé, alors que j'ai mis la validate comme il faut...

slim anvil
#

Mais non c’est pas bon du coup

#

Tu mets un type string met un type Channel il va vérifier lui même si c’est un Channel de ton serveur ou non

oak turret
#

ah mais il existe ce type ? mais là n'est pas le problème, c'est qu'il bypass mes conditions dans mon run() quoi

#

du coup il prompt direct sans check

slim anvil
#

Oui mais déjà ton validate a pas de sens corrige déjà le début

#

oui il existe

oak turret
spring dock
#

check la doc avant de faire des trucs ça t’évitera de refaire des trucs qu’il y a déjà dans commando et potentiellement mal les faire en plus

oak turret
#

bah dans la doc du coup channel y était pas inscrit mais my bad yes

spring dock
#

et du coup tu peux retirer le validate blabla

#

mais ouais ça dois être ça

slim anvil
#

Oui le validate là tu en as pas besoin

#

Vu que tu utilises le type il le gère automatiquement

oak turret
#

pas bête en effet je vais look ça

#

Mais toujours pareil il me bypass mes conditions :x

slim anvil
#

Montre tes conditions

oak turret
#

j'ai dump toute ma bd pour être sur, et il est censé rentré dans la première, mais il fait direct les prompt, et ensuite il rentre dedans..

#

car le log est fait à la fin des prompt

slim anvil
#

Dans ton else tu peux clear du code déjà de _channel Etc t’as pas besoin commando te renvoie le Channel, essaye de tout mettre au propre déjà histoire de voir ce qu’il reste et on regardera les soucis

oak turret
#

bah si j'ai besoin qu'il me le return pour l'afficher en embed puis pour le foutre en db, car il me return <#id> donc je replace tout et je le fout en db, j'ai mal compris ?

slim anvil
#

Il te retourne un commandoChannel donc dedans tu auras l’id de ton Channel

#

log ton depart_channel et l’autre et tu verras

oak turret
#

ah yes

slim anvil
#

T’as même pas besoin de checker si il y a un Channel car il le fait lui même mais sait on jamais

#

Mais dans le channel que tu récupères t’as pas déjà le nom ? 🤨

#

Je crois que si

oak turret
#

je l'ai yes mais je sais pas si il le tag donc au cas-où je vais test tout de même

slim anvil
#

si il le tag ??

oak turret
#

le mentionne*

#

sorry

#

oauip c'est good

#

il le mentionne bien

empty pier
#

comment on ouvre ça svp?

boreal edge
#

F1 je crois

jovial turret
#

Salut, depuis que j'ai mis le code html de ma galerie en dynamique (inclusion via js), j'ai quelques trucs qui ont sautés. Par exemple, le on mouse enter n'est plus fonctionnel 😦

$("#galleryContent").on("mouseenter", ".galleryItem", function() {
    console.log("j'ai survolé");            
});

même si je change l'id

$("[id^=galleryContent]").on("mouseenter", ".galleryItem", function() {
    console.log("j'ai survolé");            
});
#

j'ai trouvé x)

peak cedar
#

  if (message.content.startsWith("!test")) {
        message.delete();

        if (args.length < 1)
            return message.reply("**Tu sais utiliser la CMD ? fait !code 'le code de la game sans les :''et tu et bon     '**").then(m => m.delete(8500));

        if (args[0].toLowerCase() === "embed") {
            const embed = new MessageEmbed()
                .setColor(rdmColor())
                .setDescription(args.slice(1).join(" "))
                .setTimestamp()
                .setImage(client.user.displayAvatarURL)
                .setAuthor(message.author.name, message.author.displayAvatarURL)
                .setFooter(client.user.username, client.user.displayAvatarURL)

            message.channel.send(embed);

        } else {
            message.channel.send(args.join(""))


        }
    }

nhandledPromiseRejectionWarning: ReferenceError: args is not defined

slim anvil
#

je comprend pas ce que tu n'arrives pas à comprendre @peak cedar tu utilises args mais tu ne le définis nul part, donc forcément que tu vas avoir une erreur

#

c'est la meme chose qu'hier

peak cedar
#

oui mais quand je le definit regarde

#

sa me dit prefix not defined

#

et juse pas prefix

#

c epour sa je sais pas quoi faire

junior echo
#

Bah si

peak cedar
#

mais j'"ai regler le args je viens de le faire

junior echo
#

Dans ta constante tu utilises prefix.length

#

Ah

peak cedar
#

mais j'ai un nouveau prob sa me met le msg sa en ecrit un autre sa me le retire et sa fait beug a chaque fois

junior echo
#

Montre le code + l'erreur

peak cedar
#

pas d'erreur

#

et sa fait que ce delete et ce remettre

#

if (message.content.startsWith("!test")) {
        message.delete()
        let args = message.content.trim().split(/ +/g);

        if (args.length < 1)
            return message.reply("**Tu sais utiliser la CMD ? fait !code 'le code de la game sans les :''et tu et bon     '**").then(m.delete({ timeout: 8500 }));

        if (args[0].toLowerCase() === "embed") {
            const embed = new MessageEmbed()
                .setColor(rdmColor())
                .setDescription(args.slice(1).join(" "))
                .setTimestamp()
                .setImage(client.user.displayAvatarURL)
                .setAuthor(message.author.name, message.author.displayAvatarURL)
                .setFooter(client.user.username, client.user.displayAvatarURL)

            message.channel.send(embed);

        } else {
            message.channel.send(args.join(""))


        }
    }





})

peak cedar
slim anvil
#

oui car tu enlèves pas la commande dans ton split

#

pour récupérer ce que l'utilisatreur écrit derrière la commande !test tu peux faire juste

const argument = message.content.replace('!test', '').trim()
if (agument.length > 0) {
  return message.channel.send(argument)
} else {
 return message.reply("**Tu sais utiliser la CMD ? fait !code 'le code de la game sans les :''et tu et bon     '**")
}

par ex

peak cedar
#

je sais pas comment le mettre dans mon code

#

😭

#

@slim anvil mais je veux juste que sa beug plus

slim anvil
#

tu sais pas mettre quoi dans ton code ??

peak cedar
#

bas enn gros sa me fait le msg delete apres sa remet le msg apres sa remet apres sa delete et sa fait que sa

#

pas d'error

slim anvil
#

Mais le truc que je t'ai envoyé ??

peak cedar
#

et bein ?

#

je sais pas comment le mettre l'implanter dans mon code

oak turret
slim anvil
#

Oui c’était quoi déjà

slim anvil
oak turret
#

le fait que les prompt bypass mes conditions

slim anvil
#

Tu peux me refaire un screen de ta commande actuelle du coup stp

oak turret
#

yep

slim anvil
#

Donc il va toujours dans le else en gros ? Que ça existe ou non

oak turret
#

Non, en gros il fait en premier les prompt, et à la fin des prompts, il rentre dans une des conditions

#

du coup bah ça a plus de sens

slim anvil
#

Mais c’est quoi que t’appelle les prompt ?

#

Ah si tu fais la commande sans renseigner les arguments ?

#

Et du coup tu reçois quoi si tu log results

oak turret
#

les prompts c’est juste que le bot pose une question, et qu’il bypass les conditions

#

bah si les args y sont?

#

channel_arrivee, depart_channel

#

bah results il me le logera à la fin des prompts, donc.., c’est pas bon quoi

#

il faut qu’il fasse les conditions avant quoi

#

quoi qu’il arrive il passe avant les conditions donc peut pas savoir si il est déjà config et tout quoi

slim anvil
#

Mais les prompt ils sont où dans ton code là

oak turret
#

bah dans args:[]

#

les prompts de commando quoi

slim anvil
#

Ah oui voilà okay

oak turret
#

ah yes tu pensais à d’autres prompts?

slim anvil
#

Oui my bad

#

Mais non pas possible avec les args de commando je crois il faut que tu renseignes les args pour accéder à la suite du code

#

Sauf si il y a une option pour le rendre non required

#

Sinon tu gères ta validation toi même ou tu fous un default mais en réalité ce serait plus un hack qu’une bonne utilisation

#

Mais pourquoi tu ajoutes pas en base si il y est pas puis tu fais le reste au lieu de le faire en 2 temps ??

oak turret
#

j’ai pas compris ?

#

mais le truc c’est que ça fais les conditions à la fin c’est relou quoi..

#

donc même si je check ça le fera à la fin

slim anvil
#

Non mais en quoi c’est dérangeant enfaite ? Pourquoi il doit faire la commande en 2 temps ?

#

Il peut être bien !setup channel1 channel2 et si il existe hop et si il existe pas tu le crées

#

Pourquoi le créer sans les channels pour ensuite lui refaire taper la commande avec les channels

oak turret
#

en fait

#

l’user il fait g!user et si il a rien en base il crée une entrée dedans, et il l’a refait pour config les channels, par contre si il a déjà setup ça lui return une erreur

#

alors que là du coup bah ça il le fait à la fin

slim anvil
#

Donc c’est bien ce que je dis.... pourquoi il l’a fait 2 fois pour config au lieu d’1

#

ça te réglerait ton soucis de gérer le cas différemment et ça irait plus vite pour l’utilisateur

oak turret
#

car je le rentre quand en base pour la première fois ?, mais ça sera pareil à la fin, car si le mec l’a refait il fera le prompt et l’erreur après

slim anvil
#

Bah il fait sa commande complète, tu regarde si il existe, si oui tu updates ou tu lui dis non c’est déjà fait et sinon tu enregistres l’entrée et tu lui renvoie c’est ok

#

je vois pas trop la complexité

oak turret
#

avec le prompt de commando?

#

ou aucun prompt?

slim anvil
#

Tu vas garder quasi tout ton code, juste l'update
Pour faire:
Si !results alors je le crée
Sinon si il y a un result et qu'il est setup tu return que c'est deja fait, fin de l'execution du code

Ici on reprend au niveau ou cela n'existait pas, et tu viens créer ton entrée avec le channel_depart et arrive_channel

#

d'ailleurs tu peux le créer d'un coup au lieu de créer une fois, puis ensuite d'update ca n'a pas de sens

oak turret
#

Ah bah yes je vais tester ça

#

et ouais mais problème du coup

#

si !results[0] c'est juste censé insert into les infos de base de la guild, et ça prompt quand même..

#

c'est ça qui est relou

slim anvil
#

Mais du coup ca va venir executer le reste du code pour ajouter le channel de départ et d'arrivé

#

Sinon fais le en 2 commandes directement

oak turret
#

bah là du coup il m'a fait ma requête qui est good, mais il m'a mit les prompts, mais pas la requête normal quoi

#

pour le arrivee_channel et depart ?

slim anvil
#

Je comprend pas ton problème enfaite, les prompts c'est normal qui les demandent si tu les renseignes pas il passera pas a la suite

oak turret
#

oui ça je suis ok

#

mais le truc c'est qu'il passe avant tout quoi

#

alors que bah ils devrait pas se faire si par ex le serveur en question est déjà configuré tu vois

slim anvil
#

Bah non ca ne fonctionne pas comme ça commando

#

Si tu as pas les arguments de renseigner il ne run pas le reste du code ce qui est logique

oak turret
#

ouais bah du coup ça me va pas, fin pas pour ça

slim anvil
#

Sépare le en 2 commandes

oak turret
#

ça irait si y avait pas de véfifs

#

pour les 2 channels ?

slim anvil
#

Mais je vois pas le soucis de garder cette manière de faire et forcer a mettre les channels pour configurer directement avec les channels

#

Car tu le dis toi meme dans ton premier if "refaites la commande pour configurer"

#

donc bon

oak turret
#

bah parceque il faut bien que il soit insert dans la base une première fois, sans que les prompts apparaissent sinon ça veut rien dire on est ok non ?

slim anvil
#

Bah non, je trouve ça pas logique de faire une commande vide pour le créer puis de refaire la meme pour le configurer

#

Tu crées et tu fais ton action direct

#

en une seule fois

oak turret
#

donc si y a pas de result, j'insert tout en même temps

slim anvil
#

Bah oui ca me parait logique, sinon tu fais 2 commande différentes, mais autant la faire une fois avec les bons champs je trouve...

oak turret
#

pas con en effet

#

du coup, bah je vais test

slim anvil
oak turret
slim anvil
#

Sinon essaye de mettre une règle de validation aux 2 avec juste un return true, ca se trouve meme vide ca passe.... et du coup tu checkeras juste d'avoir un channel_arrive.id pour vérifier qu'il soit bien renseigné ensuite dans le reste de ton code, mais bon

#

pas sur que ca work

oak turret
#

je vais test ça !

slim anvil
#

non juste tu return true

#

et dans ton code ensuite pour savoir si tu crées ou non tu viendras check si tu as un chan.id

#

mais pas sur que ca passe

#

why not

oak turret
#

chan.id ou channel_arrivee.id et l'autre ?

slim anvil
#

oui channel_arrivee

oak turret
#

et je fais quoi si y a l'id ? fin je le met où quoi ?

slim anvil
#

Bah juste à ton avis

#

Tu veux que si il y a rien ou pas de channel en tout cas => créer le truc
Si il existe deja => lui dire que c'est deja créer etc

Si tu as les 2 chan.id => créer dans ta table l'entrée pour enregistrer dans quel channel

oak turret
#

oula mais attend, j'ai pas bien compris ton raisonnement, là actuellement je get toute ma table, si y a rien alors j'insert tout à la fin et j'update l'autre table pour dire que c'est setup, sinon si y a results et que c'est setup bah je lui return l'erreur, je capte pas les deux si y a les 2 chan.id

slim anvil
#

la actuellement ce que tu fais c'est que si tu as pas de résultats tu crées dans ta table setup (?? why deja avoir 2 table différente, pourquoi pas ton mettre dans guild ou setup mais bon)

#

D'ou le fait deja tout dans une table finalement et ca te fera une seule requete

#

Mais sinon ce que je te dis de faire c'est que si le truc de return true dans le validate fonctionne et que meme si tu renseignes pas les 2 channels il rentre dans le code:
Créer si il existe pas comme tu le fais déjà

Et si jamais il a bien renseigné channel1 et channel2 (donc vérifier si tu as un un channel1.id et channel2.id) tu executes le code que tu fais dans ton else

#

je sais pas si c'est clair
Mais enfaite ton truc depuis le deput c'est assez spagghetis et mal réfléchis, finalement tu pourrais tout simplement avoir une seule TABLE et venir tout créer dès le début et tu aurais 0 soucis

#

je vois pas l'intéret d'avoir une table guild et une table setup.... mais bon

#

sachant qu'il y a un seul setup par guild, autant le mettre dans la meme table, ce sera plus simple pour toi dans tout les cas

oak turret
#

y a que ça maintenant, et ouais pas con de mettre qu'une seule table guilds ahah, mais il m'en faut une autre pour les warns mais bref, j'ai juste pas super compris le truc des chan.id fin je vois pas en quoi ça va bloquer quoi

slim anvil
#

Oui t’as pas du tout compris, envoie le code

#

le code entier en mp je te renvoie la réponse ici

oak turret
#

xD, je fais ça ^^

slim anvil
#

renvoie moi le tout quand t'as finis avec la db online

#

je check des que je peux

oak turret
#

yes je te fais ça demain, merci pour ton temps!

low bronze
#
client.on('guildMemberRemove', async member => {
            const fetchedLogs = await member.guild.fetchAuditLogs({
                limit: 1,
                type: 'MEMBER_KICK',
            });

            const kickLog = fetchedLogs.entries.first();
#

Salut, sur ma commande de logs de kick

#

sa envoie même si la personne est banni

oak turret
thin jasper
#

Yoo j'ai un petit soucis dans l'author d'un embed je met par exemple la var du mec qui exécute la commande et ça me sort son id
Vous savez comment je peux le transformer en sonNom#4703 ?

#

Il me casse les roubignoles leur wiki

oak turret
#

.tag

#

message.author.tag

#

ou .user.tag look sur la doc

#

c’l’un des deux

proud acorn
#

Salut! Je débute en java et j'aimerais de l'aide pour une petite chose. Bon je me doute que c'est vraiment le meilleur endroit pour demander mais je sais pas vers ou me tourner

var dark = false;

function test() {
  if (dark == false){
    .......
    dark = true;
  }
  else {
    .......
    dark = false;
  }
}

En gros voilà j'ai créer un switch de ce type la
(à préciser c'est du html et java)
Mais le soucis est que j'aimerais que cette variable reste en mémoire même quand je change de page ou que je refresh
j'ai déjà essayé avec window.localStorage et window.sessionStorage
mais bon je ne sais pas vraiment comment l'implanter et je suis encore super maladroit
j'ai pu voir sur quelques forums qu'avec localStorage et sessionStorage il était possible de stocker uniquement des strings
du coup je ne sais pas vraiment comment je pourrais faire d'autre, merci de votre aide!

slim anvil
#

Du coup t’as pas réussi avec local stockage ? Il suffit de stringify ta valeur et ce sera ok pour être stocké

#

sinon au vu des noms de variable tu cherches à faire un darkmode, tu peux aussi l’activer si la personne a le darkmode d’activer sur son navigateur, comme ça ce sera automatique

oak turret
#

c’est en css ça maintenant je crois fin pour le détecter je crois

slim anvil
#

oui dans tes medias sinon au pire

proud acorn
#

J'essaye ca merci beaucoup

#

mais pour le coup même en ayant regarder des exemples je sais toujours pas vraiment comment implémenter le local storage dans mon code

slim anvil
#

Tu as quoi actuellement

keen narwhal
#

Bonjour

#

Comment je peux faire pour ping moi serveur Minecraft pour savoir si il est on

plain crystal
#

si tu veux pas galérer gamedig le fais très bien :)

proud acorn
#

Je peux te mp? Je veux pas trop polluer le channel @slim anvil

slim anvil
#

Oui

minor kelp
#

Salut, petite question

Je vais utiliser les cron tabs de linux pour faire executer une tache à mon bot discord tout les x H mais je voulais savoir comment je peux faire que quand mes taches de mon index.js ont terminés je stop le process ?

timid loom
#

Pour stop le processus courant c'est process.exit()

#

Donc tu fais un process.exit() quand tu as finis toutes tes tâches

minor kelp
#

Ok merci 😀

idle sable
#

Bonjour j'aimerais savoir comment récupérer l' id de la personne qui va ajouter une réaction avec "awaitReactions" (https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=awaitReactions) ?

oak turret
#

user.id, c'est affiché sur l'exemple

idle sable
oak turret
#

ton code

idle sable
# oak turret ton code

ah nan c bon maintenant c ca: UnhandledPromiseRejectionWarning: ReferenceError: user is not defined

oak turret
#

encore une fois

#

ton code

idle sable
#

ok ba je vais check merci quand meme

boreal edge
#

Hello !
Est ce que vous savez comment je peux récupérer l'invitation utilisée par la personne venant de rejoindre le serveur (guildMemberAdd) ?
Merci beaucoup !

oak turret
#

et de log ton argument

#

mais j'en suis pas sur

#

il va te return un GuildMember donc je sais pas vraiment, mais oui on peut mais je sais plus comment

boreal edge
#

Mais je vois pas du tout comment je peux réussir à récupérer l'invite qui l'a fait join car j'vois pas de paramètres sur GuildMember ayant un rapport avec 🤔

#

Peut être avec ça j'penses

oak turret
#

yes

thin jasper
oak turret
light socket
#

Bonjour je recherche des développeur car j'ai un projet pour créer un serveur rush merci de me mp priver

slim anvil
#

Et une demande complète, en indiquant ce que tu veux faire, les délais etc ^^

peak cedar
#

hey slt
j'ai un gros besoin d'aide

if (message.content.startsWith("!test")) {
        message.delete()
        let args = message.content.trim().split(/ /g);

        if (args.length < 1)
            return message.reply("**Tu sais utiliser la CMD ? fait !code 'le code de la game sans les :''et tu et bon     '**").then(m.delete({ timeout: 8500 }));

        if (args[0].toLowerCase() === "embed") {
            const embed = new MessageEmbed()
                .setColor(rdmColor())
                .setDescription(args.slice(1).join(" "))
                .setTimestamp()
                .setImage(client.user.displayAvatarURL)
                .setAuthor(message.author.name, message.author.displayAvatarURL)
                .setFooter(client.user.username, client.user.displayAvatarURL)

            message.channel.send(embed);

        } else {
            message.channel.send(args.join(""))


        }
    }

sa marche la cmd
mais quand ont fait la cmd sa marche sa delete la rep sa la remet et sa fait sa en boucle a tu une idée ?

**PAS DERREUR **

#

sa fait sa sa del sa le remet

#

ce relou

slim anvil
#

déjà ça

let args = message.content.trim().split(/ /g);

va te return
['!test', 'heyyyy']

#

du coup ta condition: args[0].toLowerCase() === "embed" ne sera jamais bonne

#

et donc il passe dans ton else et te renvoie ta commande sans espace donc si encore une fois tu as envoyés !test heyyyy
ce code la :

message.channel.send(args.join(""))

va répondre
!testheyyyy

peak cedar
slim anvil
#

Mais a quel moment je t'ai dis de le mettre ?

#

c'est dans ton code

peak cedar
#

ah ouais

slim anvil
#

je t'explique juste ce qui ce passe dans ton code

#

et du coup pourquoi le bot te répond sa

peak cedar
#

de ?

slim anvil
#

???

#

Tu lui envoies quoi comme commande a ton bot pour qu'il fasse ca

oak turret
#

Hello, quelqu'un a une idée de comment faire pour détecter quand notre bot arrive sur un serveur, et envoyer un message à l'owner pour des infos, ( c'est juste détecter que le bot arrive sur un nouveau serveur quoi ) le reste je sais, ty ^^

slim anvil
#

L’évent guildCreate

oak turret
#

ah yes je l'avais oublié celui-là, je te remercie !

slim anvil
#

C’est écrit sur la doc sinon tu as la liste de tout les events

oak turret
#

yes mais j'avais pas pensé à un event

slim anvil
#

^^’

velvet fractal
#

salut est ce quil y a quelqun qui pourrait maider pour créer mon serveur gmod je lai deja creer avec un hebergeur il manque tout le dévelopement map,perssonage,linterface etc... ?

slim anvil
#

hello ce n'est pas ici. Ici c'est du javascript, si tu cherches un développeur pour ton serveur gmod ce sera du gLua, donc #rejoindre-des-channels et selectionne Lua
Si tu veux de l'aide tu vas dans #lua-glua et si tu cherches un développeur tu peux poster ton annonce ici https://g-ca.fr/offres en te connectant et en faisant une annonce détaillé et complète 🙂

velvet fractal
#

merciii

timid hatch
#

Bonjour, je souhaite ajouter des logs aux commandes de mon bot dans un channel dédié. Je pensais passer par des events pour garder une seule fonction et utiliser les arguments de l'emit. Seulement je ne sais pas comment récupérer l'event émis dans un autre channel. Vous pouvez m'aider ?

timid hatch
#

S'il vous plait ?

slim anvil
#

Hello, en gros tu veux juste envoyer un message dans un channel pour dire qui a fait quoi comme commande c’est ça ?

timid hatch
#

Oui mais de manière optimisée

slim anvil
#

Tu peux te faire une fonction dans un dossier utils par exemple que tu vas venir appeler dans chacune de tes commandes, en y passant des paramètres comme le msg pour récupérer qui et quoi, et envoyer en string par exemple: Commande Clear
Histoire d’avoir visuellement le nom de la commande rapidement et tu gères l’envoie des messages dans ta fonction

#

Comme ça chacun de tes fichiers appellera la même fonction et hop

#

si jamais tu veux changer quelques chose tu auras juste à éditer ta fonction

timid hatch
#

Hum ok, je vois le genre. Je vais faire ça
Merci @slim anvil 👌

night crane
#

Vous savez c'est quoi le code, pour que le bot épingle le message qui l'envoie ?

#

(me mentionner)

thin jasper
jovial turret
#

Salut, j'ai un problème avec le script JS de ma galerie. Je l'ai porté sur la version client de mon panel, mais je remarque qu'un bon nombre de ses fonctionnalités ne fonctionnent plus (comme le clic droit). Par exemple, la fonction Drag'n Drop me retourne cette erreur

#

le code de la page n'est pourtant pas beaucoup plus complexe, j'inclus une page PHP qui elle-même inclu d'autres pages (structure html + script)

#

est-ce que vous aurez une idée d'où ça pourrait provenir? Le script js est bien intégré, la navigation dans les dossiers fonctionne, tout comme la lecture de l'url et le redimensionnement des éléments. Mais dès qu'il s'agit de créer quelque chose ou de faire des actions qui remplace les fonctions natives du navigateur, ça ne marche pas.

crystal briar
#

svp comment on fait pour récup l'id d'un émoji pour le mettre dans un embed

oak turret
#

message.guild.emojis.cache.get("id"); je crois

raw birch
crystal briar
#

Mrcccc

crystal briar
#

boreal edge
#

Hello !
Est ce que vous savez comment je peux récupérer le fusio horaire de la machine sur laquelle je suis en js ?
Merci ! 😉

slim anvil
#

Tu peux tenter un .getTimeZoneOffset()

#

(Sur un Date())

#

Sinon t’installe luxon kappo2 @glass gate tu préfères cette réponse ?kappo2

glass gate
#

j'étais en train d'écrire getTimezoneOffset mais tu m'as devancé >:(

boreal edge
#

Dac merci ! 🙂

boreal edge
#

Hello !
Désolé de vous rerereredéranger, mais est ce que vous savez comment je peux faire pour chercher un mot ou un groupe de mot dans un string avec une marge d'erreur ?
Par exemple :
Pour le mot giraffe, si on marques g1raffe, ça détecte qu'il a dit giraffe ?
Merci 😉

tame shore
#

Sa marche ! @queen ocean merci beaucoup !

slim anvil
#

Tu connais déjà d’office quels mots ?

#

@boreal edge

boreal edge
#

Oui j'ai la liste de mots à chercher

slim anvil
#

Alors sans les erreurs tu peux juste faire un include sur ta string, par contre avec les erreurs tu peux essayer de le faire sous forme de regex mais j’ai pas trop l’idée en tête de comment 🤨

#

@glass gate t’as pas une idée

tame shore
#

mmh quelqu'un peut m'aidé ?

#

ils faut que je mette un prefix pour que sa s'éxécute ?

glass gate
#

mais regex yes

tame shore
#

Personne ne sait ?

boreal edge
#

Dac ça marche @slim anvil 😉 thx

slim anvil
#

Tu viens de poster ton message

glass gate
tame shore
#

😅

slim anvil
#

Et en plus on y bite rien t’envoies juste ton bout de code

#

sans rien expliquer

#

ouais voilà comme Maks a dit mais bon là ça veut dire que tu identifies les erreurs donc autant dans ton tableau de mot a trigger les écrires aussi avec des fautes ? kappo2

boreal edge
tame shore
#

enft , c'est un réaction rôle , mais je ne sais pas comment l'éxécuté . ( je rapelle que je suis nouveau )

boreal edge
#

Pourquoi pas

glass gate
boreal edge
#

Mais bon après on vas s'y perdre

glass gate
#

genre 1 => i

boreal edge
#

Ok

#

Bah j'avais essayer, thx 😉

slim anvil
#

Y a pas a avoir de prefix sur un auto rôles

#

sauf si c’est via une commande

tame shore
queen ocean
#

@boreal edge pour @ancient sonnet j'ai une liste de mot écrit correctement et a coté j'ai une table avec le caractère de base et ca version modifié (a et 4 par exemple) et puis je boucle au lancement du bot sur tous les mots écrit correctement pour générer les mots avec erreurs et les ajoutés dans la liste de mot, puis dans l'event message je check si il y a un des mots de la liste

boreal edge
#

D'accord

slim anvil
#

Du coup c’est pas un reaction rôle mais dans ce cas oui tu as quoi actuellement ? Met le en forme avec

ancient sonnetBOT
#

Pour envoyer un message avec un code il vous suffit d'entourer votre message de ceci : ```. Ainsi, pour poster votre code dans un message, vous devez faire comme ceci :

```langage
Votre code
```
Et par exemple pour un code en lua :
```lua
print("hello")
```

Le résultat sera le suivant :
Votre code
Et par exemple pour un code en lua :

print("hello")```
boreal edge
#

Ok bah écoutes j'vais essayer de faire quelque chose dans le même style !
Merci beaucoup @queen ocean

slim anvil
#

Qu’une boucle

tame shore
boreal edge
slim anvil
#

parce que ça peut te générer un tableau à 1000 entrées alors que tu as de base 10 mots quoi

queen ocean
#

@slim anvil osef KannaPolice

slim anvil
glass gate
#

ça dépend de quel regex

slim anvil
#

mais oui Hugo possible, mais après les regex c’est comme les epinards

#

On aiment pas trop ça kappo2

boreal edge
#

xD

queen ocean
slim anvil
#

@tame shore remet ton code ici

boreal edge
#

Bah merci beaucoup du coup

tame shore
#

module.exports = {
name: 'reactionrole',
description: "Sets up a reaction role message!",
async execute(message, args, Discord, client) {
const channel = '802242910321639445';
const yellowTeamRole = message.guild.roles.cache.find(role => role.name === "803328708395532328");
const blueTeamRole = message.guild.roles.cache.find(role => role.name === "YOUR_ROLE");

    const yellowTeamEmoji = '🔫';
    const blueTeamEmoji = 'YOUR_EMOJI';

    let embed = new Discord.MessageEmbed()
        .setColor('#e42643')
        .setTitle('Choose a team to play on!')
        .setDescription('Choosing a team will allow you to interact with your teammates!\n\n'
            + `${yellowTeamEmoji} for yellow team\n`
            + `${blueTeamEmoji} for blue team`);
glass gate
#

ah j'ai trouvé

#

(?:mot1)|(?:mot2)

queen ocean
tame shore
#

kekw

slim anvil
#

Enfaite l’exécution du code c’est pas ici solo ça doit être avant

#

car la c’est le code qui va être exécuté

#

Mais du coup oui tu dois probablement avoir un endroit où mettre ton prefix

#

Tu l’as pris ou ce code ? 🤨

tame shore
#

tu descend aprés tu trouvera reactionrolejs

slim anvil
#

C’est quoi ce truc

tame shore
#

je sais pas 😩

#

mdrr

slim anvil
#

c’est n’importe quoi le code en bas ou c’est moi

#

Qu’est ce que l’évènement reactionAdd et Remove fout dans une commande

#

tu devrais pas copier bêtement essaye de suivre des tutoriels pour apprendre

#

t!search Discord

cedar oreBOT
#
Tutoriels trouvés par mots clés

slim anvil
#

le premier et le 3 eme peuvent t’aider 👌

tame shore
#

Merciii

tame shore
#

je vais commencé a suivre les tuto ta raison

#

copy past j'apprend rien x)

slim anvil
#

exactement

tame shore
#

et aussi , sur votre site , il y a des tuto pour les binaire / Malbolge ?

#

( juste une question , deja faut que j'apprenne le js )

slim anvil
#

No pas que je sache

tame shore
#

ok ok merci !

peak cedar
#
    if (message.content.startsWith("!codez")) {

        let args = message.content.trim().split(/ /g);


        if (args.length < 1)
            return message.reply("**Tu sais utiliser la CMD ? fait !code 'le code de la game sans les :''et tu et bon     '**").then(m.delete({ timeout: 8500 }));

        if (message.author.bot || !message.guild) return;
        if (args[0].toLowerCase() === "embed") {
            const embed = new MessageEmbed()
                .setColor(rdmColor())
                .setDescription(args.slice(1).join(" "))
                .setTimestamp()
                .setImage(client.user.displayAvatarURL)
                .setAuthor(message.author.name, message.author.displayAvatarURL)
                .setFooter(client.user.username, client.user.displayAvatarURL)

            message.channel.send(embed);

        } else {
            message.channel.send(args.join(""))


        }
    }

sa me marque sa :

slim anvil
#

t'as le meme soucis depuis 15 jours.... je t'ai deja dis d'ou venait le soucis

tame shore
#

quelqu'un sait comment crée un lien pour ajouté son propre bot sur des serv

slim anvil
tame shore
#

quelqu'un aurait un autorôle deja codé ?

oak turret
#

pas le but

slim anvil
tame shore
#

ou ? et sa coute combien ( si c'est payant ? ) ?

#

@onyx cedar

#

oops

#

wrong ping

#

@slim anvil

spring dock
tame shore
spring dock
tame shore
#

🧐

spring dock
#

j'ai edit

tame shore
#

k

#

Merci !

keen narwhal
#

Bonjour à tous,

Je suis nouveau ici, actuellement en formation à distance développeur web (très très débutant, soyez indulgents 🙂 )

J'apprends en ce moment Javascript et Node.js.

Nous sommes en train de créer un exemple de Ecommerce, genre Amazon, et nous devons utiliser MongoDB afin de créer une bdd, et y insérer des nouveaux membres via un formulaire d'inscription.

J'ai suivi des tutos, mais rien n'y fait j'ai toujours la même erreur lors du click sur le bouton "s'enregistrer" : "MongooseError: Operation users.insertOne() buffering timed out after 10000ms"

Est-ce que quelqu'un saurait d'où vient cette erreur ? avez-vous déjà utilisé MongoDB ?

Merci d'avance pour votre aide,

Kévin

slim anvil
#

Hello, tes identifiants de connexion sont correct ?

#

Si t'es sur que oui, tu peux envoyer comment tu fais ta connexion à mongo pls ?

keen narwhal
# slim anvil Hello, tes identifiants de connexion sont correct ?

il me semble que oui, j'utilise Visual Studio Code avec l'extension mongoDB qui me dit que je suis bien connecté

voici mon code pour la connexion :


const uri =
 "mongodb+srv://user:pass@ecommerce.irba3.mongodb.net/database?retryWrites=true&w=majority";

const client = new MongoClient(uri, {
 useNewUrlParser: true,
 useUnifiedTopology: true,
});
client.connect((err) => {
 const collection = client.db("test").collection("devices");
 // perform actions on the collection object
 client.close();
}); ```
slim anvil
#

édite tes identifiants cluster @keen narwhal

#

ou alors c'est deja le cas mais je préfère prévenir

keen narwhal
slim anvil
#

Généralement cette erreur vient vraiment du fait que la connexion ne soit pas bonne, meme si tes identifiant sont correct il y doit y avoir un soucis de connexion
Sur ton cluster mongo atlass tu as autorisés quoi comme IP ?

keen narwhal
slim anvil
#

Essaye de te connecter via mongoose au lieu de la class MongoClient

#
mongoose.connect(uri, { useNewUrlParser: true, useUnifiedTopology: true }).then(() => { console.log('connected') })
keen narwhal
# slim anvil Essaye de te connecter via mongoose au lieu de la class MongoClient

d'acc je vais essayer, sinon voici mon code pour l'insertion des données dans la bdd :


let User = require("../models/user");

// URL SIGNUP

router.get("/signup", function (request, response) {
  response.render("account/signup");
});

router.post("/signup", function (request, response, next) {
  var user = new User();
  user.profile.name = request.body.name;
  user.email = request.body.email;
  user.password = request.body.password;

  // fait une requete vers la BDD pour voir si l'utilisateur existe déjà

  User.findOne({email: request.body.email},function(err, existingUser){
      if (existingUser) {
        console.log(request.body.email + "déjà enregistré dans la BDD");
        return response.redirect("/signup");
      } else {

        // On enregistre dans la BDD
        user.save(function (err) {
          if (err) return next(err);
          response.json("Nouvel utilisateur créé");
        });
      }
    });
  });


module.exports = router;
slim anvil
#

essaye d'utiliser les backquotes sur discord pour mettre en avant ton code

ancient sonnetBOT
#

Pour envoyer un message avec un code il vous suffit d'entourer votre message de ceci : ```. Ainsi, pour poster votre code dans un message, vous devez faire comme ceci :

```langage
Votre code
```
Et par exemple pour un code en lua :
```lua
print("hello")
```

Le résultat sera le suivant :
Votre code
Et par exemple pour un code en lua :

print("hello")```