#javascript-typescript

1 messages · Page 57 of 1

oak turret
#

@hazy mirage tu vois qui link_mdr

hazy mirage
frosty idol
#

Bonsoir,

J'ai cette erreur quand je lance mon bot : Error: Cannot find module 'discord.js'
Ceci veut dire que le module discord.js n'est pas "valide". Je ne l'ai pas installé étant sur un hébergeur nodeJS

#

Comment puis-je faire pour l'installer ?

#

J'ai essayé de faire npm install discord.js dans la console mais je n'ai aucun résultat

slim anvil
#

Tu le fais bien dans le dossier de ton projet ?

#

tu as bien npm d’installer et node ?

frosty idol
#

Ah bah non (j'suis pas très intélligent kappo2 ) j'ai oublié de faire un dossier pour mon projet mais je sais pas si npm & node sont bien installé car je n'arrive pas à les installer mais il reconnait pas le module discord.js or que je suis sur un hébergeur nodeJS

slim anvil
#

ah le bot est déjà sur le serveur ?

#

Si tu fais un node -v tu as quoi ? Pareille avec npm -v

frosty idol
#

J'effectue ou la commande ?

slim anvil
#

Dans la console de ton serveur (au même endroit que ton bot)

#

ou pas forcément c’est du global mais au moins on y est

frosty idol
#

J'ai une console sur mon panel de gestion (mon hébergeur est ouiheberg) mais quand j'effectue des commandes je n'ai aucune réponse

slim anvil
#

Je met jamais de bot là dessus, mais tu peux voir à quoi correspond le dossier de ton bot ?

#

comment c’est fait en gros au niveau de l’archi du bot

frosty idol
#

Quand je me suis connecté au ftp, j'avais juste deux fichiers à la racine sans dossier : index.js & package.json

slim anvil
#

yes ok ! dans ton package.json tu as quoi dedans ?

frosty idol
#
{
  "name": "bot",
  "version": "1.0.0",
  "private": true,
  "description": "Discord Bot",
  "keywords": [],
  "author": {
    "name": "OUIHEBERG BOT",
    "email": "contact@ouiheberg.com",
    "url": "https://www.ouiheberg.com"
  },
  "main": "bot",
  "dependencies": {},
  "files": [],
  "directories": {},
  "scripts": {}
}
slim anvil
#

fais un npm i pour install tout les nodes_modules

#

ah oui ok 0 dépendance ça va être compliqué de le run kappo

frosty idol
#

Quand je fais la commande npm i dans ma console, ça fait rien

slim anvil
#

T’as des captures d’écran de ton panel ? Voir à quoi ça ressemble

frosty idol
#

Yes, wait please

dire latch
#

@frosty idol

frosty idol
dire latch
#

Sur les paramètres de démarrage, tu met npm i discord.js

#

Et ça va t'installe discord.js

frosty idol
#

Oki merci

dire latch
#

Dr 🙂

slim anvil
#

Il ’a déjà fait je crois 🤔

#

c’est ce qu’il avait l’air de dire au tout début

dire latch
#

Non

#

Enfete il l'as fais via la console

frosty idol
#

ça n'a rien fais

dire latch
#

Et non pas par les paramètres de démarrage

frosty idol
#

Je restart mais j'ai pareil

queen ocean
#

c'est en local ?

slim anvil
#

Non sur son serveur ouiheberg

frosty idol
#

Non hébergeur

slim anvil
#

Mais je sais pas comment ça fonctionne ce bordel

dire latch
#

Alors

frosty idol
#

NodeJS

dire latch
#

L'erreur au dessus ne vient pas de discord.js

queen ocean
#

surement que ton host doit check le fichier package.json

#

donc vérif que discord.js est bien dedans

dire latch
#

Il n'arrive pas à avoir ton index.js

frosty idol
#

Justement discord.js n'a pas l'air d'être installé

idle ice
#

Déjà à première vue,c'est un panel pterodactyl

frosty idol
#

Mais je n'arrive pas à l'installer

#

Bien vu @idle ice 😉

idle ice
#

L'erreur est clean, il t'indique juste que ton fichier index.js est introuvable

dire latch
#

C'est ce que je viens de dire 🤔

slim anvil
#

fais un ls

#

Et screen

#

la réponse

idle ice
#

Il saura pas, pterodactyl ne répond qu'à ce que devrait répondre node

frosty idol
#

La console ne répond pas aux commandes

slim anvil
#

voir tu as quoi

#

Ah ok

dire latch
#

@slim anvil

slim anvil
#

Connais po ptero alors

dire latch
#

Les commandes ne fonctionnent pas

idle ice
#

Ptero fonctionne sous base de "Eggs", qui donne le principe de fonctionnement et de démarrage

dire latch
#

Tu peux juste start/off/restart via des boutons

frosty idol
#

Pour reconnaitre l'index.js je fais comment du coup ? x)

slim anvil
#

c’est naze ce truc

dire latch
#

Met ton index.js dans la racine de ton FTP @frosty idol

slim anvil
#

les mecs vendent dés serveur nodejs

queen ocean
#

Tu peux juste start/off/restart via des boutons
@dire latch ouais donc pas vraiment une console mais juste un affichage de log

dire latch
#

Et sa devrait fonctionner

frosty idol
#

C'est fait @dire latch

idle ice
#

C'est puissant quand tu sais créer tes eggs correctement, pas comme certains hébergeur qui les prennent tout fait sur github 👀

slim anvil
#

mais tu peux pas use node

#

C’est énorme

#

peut po faire un LS quoi

frosty idol
#

De base j'ai deux fichiers qui sont à ma racine : index.js & package.json

slim anvil
#

Je quitte trash

dire latch
#

@queen ocean Oui

idle ice
#

J'te montrerai un de ces 4 stv @slim anvil, mais tu peux faire des eggs pour gérer n'importe quoi et faire des commandes linux si tu le veux, car ça use juste Docker

#

En fait, Ptero génère des Docks sous base des Eggs, et ils réagissent selon ce que tu y met

dire latch
#

@frosty idol Tu peux screen ton ftp pour voir ?

idle ice
#

Mais en l'occurence l'hébergeur là utilise le bête Eggs NodeJS mis sur un Github public, pour lesquels les 3/4 sont éclataxement pas à jour

slim anvil
#

c’est juste un container docker quoi en gros

#

Super

idle ice
#

Yup

frosty idol
slim anvil
#

Pourrais po t’aider alors sorry shibaz je te laisse avec des pros

dire latch
#

Nan tkt @frosty idol juste je demande

frosty idol
#

Aha pas de problème tkt

dire latch
#

Ducoups sur le panel

frosty idol
#

Yes ?

idle ice
#

@frosty idol contacte ton hébergeur directement, car je pense qu'ils ont tellement bien fait leur Egg qu'ils ont mal relié ton FS

dire latch
#

Tu as bien mis index.js dans les paramètres de démarrage ?

frosty idol
#

Oui

idle ice
#

@dire latch Rien à voir ^^ Tu vois bien qu'il le cherche, mais il ne le TROUVE pas

#

Alors qu'il y est

dire latch
#

C'est peut être une erreur de sa part

frosty idol
dire latch
#

🤷‍♀️

idle ice
#

Donc la seule possibilité, c'est que son Dock cherche à un endroit qui n'est pas celui où c'est stocké

dire latch
#

Donc je demande avant au cas où

#

Et dans ton package.json,tu as bien l'index.js dedans ?

idle ice
#

@frosty idol t'aura 10x plus simple à demander à ton hébergeur de regarder à ça que de chercher de ton côté, car à 99% tu pourras rien faire

frosty idol
#
{
  "name": "bot",
  "version": "1.0.0",
  "private": true,
  "description": "Discord Bot",
  "keywords": [],
  "author": {
    "name": "OUIHEBERG BOT",
    "email": "contact@ouiheberg.com",
    "url": "https://www.ouiheberg.com"
  },
  "main": "bot",
  "dependencies": {},
  "files": [],
  "directories": {},
  "scripts": {}
}
#

@idle ice J'ai déjà demandé mais ce ne sont pas des flêches....

idle ice
#

En même temps t'a pas choisi le plus "clean" de tous hein soyons franc

frosty idol
#

J'ai cherché des hébergeurs nodeJS et je suis tombé dessus, j'ai déjà eu une très mauvaise expérience avec eux et j'ai voulu re-essayer mais...

idle ice
#

Le best qui fait NodeJs que j'ai eu : Skoali

frosty idol
#

rip

idle ice
#

MAIS

frosty idol
#

Je savais pas qu'il faisait ça eux

#

Je les connais

slim anvil
#

combien tu payes par mois

idle ice
#

Je m'en méfie maintenant, car on leur a demandé leurs documents légaux pendant des mois

#

On a jamais rien vu

slim anvil
#

simple curiosité shibaz

frosty idol
#

Aha oui

#

0.99€/mois

#

J'ai pris un trimestriel

idle ice
#

Skoali c'est 5.35€ le semestrielle

dire latch
#

Ducoups

#

J'ai une petite question

frosty idol
#

5.35€ pour 6 mois

idle ice
#

yep

frosty idol
#

J'ai vu

dire latch
#

Pourquoi sur ton fichier package.json, tu as main: bot

frosty idol
#

J'en sais rien

dire latch
#

Or que tu devrais avoir index.js

frosty idol
#

Il était de base ce fichier, j'ai rien touché

idle ice
#

@dire latch tu cherches dans le vide, l'erreur n'a rien à voir

#

L'erreur est clair

#

Fichier INDEX.JS INTROUVABLE

dire latch
#

Mais je cherche des solutions

#

Stop saouler omg

idle ice
#

Mais elles n'ont rien à voir ^^, c'est indiqué blanc sur noir, son fichier index.js n'est pas trouvable ^^

frosty idol
#

x)

idle ice
#

Le package.json a rien à voir

#

J'use Ptero tout les jours pour mes 2 serveurs GMod, et mon bot, donc je penses avoir une légère (je dis bien légère) légitimité là dessus

#

L'erreur lui dis : son fichier est introuvable

frosty idol
#

Tu es hébergé ou ? Un VPS je suis pose

idle ice
#

J'suis sur un dédié moi ^^

frosty idol
#

Oki

dire latch
#

Pardon "Mr" qui crois tout savoir 🤷‍♀️

idle ice
#

Chez Cosmhost

frosty idol
#

Ah moi aussi je suis client dessus

idle ice
#

@dire latch Pourquoi prendre le nez dès que je t'explique que j'ai de l'expérience avec Ptero ?

dire latch
#

Je propose juste des solutions, stop saouler.

#

Mais je m'en fous @idle ice

#

Fais comme tu veux

idle ice
#

@slim anvil Y a moyen que tu fasses comprendre (j'aime t'ennuyer) car j'suis crevé j'ai pas envie de refaire psycho 😂

frosty idol
#

T'inquiète McDuck 😉 Je te remercie^^ Apparemment ça n'a rien avoir donc j'attend le support de mon hébergeur :/

dire latch
#

Mais viens pas me dire quelques choses quand je propose des solutions

slim anvil
#

Calm down vous êtes là pour aider vous 2

#

Vous crêpez pas le chignon

dire latch
#

Nan mais c'est dingue mdr

#

Je propose des solutions et j'ai le droit de rien dire

#

Insane

slim anvil
#

ça fini jamais bien alors on se calme, et on reprend le sujet initial 👀👀

dire latch
#

Mdr

frosty idol
#

Yes

#

Voici ce qu'ils me disent

#

Je vais voir

#

On me dit aussi d'utiliser un terminal pour npm install discord.js mais lequel x)

dire latch
#

Si tu utilises Visual Studio Code

#

Tu as en haut, un onglet Terminal

idle ice
#

Ca résous en rien ton soucis que ton fichier n'est pas trouvé sa réponse 🤔
Encore ça dirait que discord.js est introuvable, OKAY, mais là, rien à voir x)

dire latch
#

Tu fais new terminal

frosty idol
#

Voici ce qu'ils me disent de faire mais ça change rien du tout....

idle ice
#

Mais quelle bande de brèle

#

Ils te font installer un truc alors que c'est ton fichier principal qui est introuvable

frosty idol
#

Yes j'ai compris mais je suis perdu...

#

Ils m'aident pas, ça me soule mais bon je vais attendre demain qu'un vrai support arrive

oak turret
#

wait j’ai pas suivi

#

il se passe quoi

idle ice
#

Alors

#

L'erreur : son fichier index.js est introuvable

#

Contexte : le fichier y est

frosty idol
#

J'ai commandé un service NodeJS sur un hébergeur et j'ai que des merdes avec

idle ice
#

La solution du support : Installer discord.js

oak turret
#

MDR

frosty idol
#

Je n'arrive même pas à le lancer

oak turret
#

oulah

idle ice
#

Mais l'erreur reste : fichier index.js introuvable

oak turret
#

c’est plutôt des tocards

idle ice
#

Oui

oak turret
#

t’as un accès ftp?

idle ice
#

heberg

#

😂

oak turret
#

😂😭

frosty idol
#

Oui j'ai un accès & de base j'ai deux fichiers : index.js & package.json

idle ice
#

Hé @oak turret j'ai un soucis, mon processeur a cramé
Réponse: Installe un disque dur

oak turret
#

😂😂

#

et Shibaz

frosty idol
#
{
  "name": "bot",
  "version": "1.0.0",
  "private": true,
  "description": "Discord Bot",
  "keywords": [],
  "author": {
    "name": "OUIHEBERG BOT",
    "email": "contact@ouiheberg.com",
    "url": "https://www.ouiheberg.com"
  },
  "main": "bot",
  "dependencies": {},
  "files": [],
  "directories": {},
  "scripts": {}
}

Voici le contenu de mon package.json

oak turret
#

oui alors

#

fait plutôt npm init

#

c’est mieux

idle ice
#

JUSTEMENT IL PEUT PAS 😂

oak turret
#

et ça te le créera auto

#

ahh

idle ice
#

Tellement leur Egg ptero est bien fait

frosty idol
#

Ma console ne répond pas au commande x)

idle ice
#

😂

frosty idol
#

C'est ptero

#

dactyl

idle ice
#

Dactyl

#

Ographique

oak turret
#

donc nodejs n’est pas installé

idle ice
#

AH ça si !

#

Ca réagis

oak turret
#

wtf

idle ice
#

Mais tu peux pas entrer de commande

oak turret
#

npm est inclus dans nodejs

#

oulah

idle ice
#

Ouais mais la console de pterodactyl permet pas d'use des cmds

oak turret
#

oulala

idle ice
#

Du moins pas si c'config comme un pied

#

ET C LE CAS

oak turret
#

perso t’aurais du prendre in petit vps

#

ou un truc heroku

idle ice
#

Le vps à 2€ par mois

frosty idol
#

Je sais mais j'ai voulu test leur produit NodeJS

idle ice
#

Heroku : 🔫

frosty idol
#

Sauf que c'est de la....

oak turret
#

Heroku pour test

#

Bah fais toi remboursé yes

#

car là t’as affaire à des tocards

frosty idol
#

Impossible même si je viens de l'acheter

oak turret
#

pourquoi?

frosty idol
#

Ils m'ont déjà fais le coup, j'ai eu une très mauvaise expérience avec eux et j'ai voulu re-essayer sauf que ça n'a pas changé

idle ice
#

Hé @oak turret mon serveur Nginx a un problème, tu sais pourquoi ?
Solution: Installe SFTP

kappo kappo kappo kappo

dire latch
#

Si je peux te conseiller un vps en mp pour 95 centimes/mois, tu me dis @frosty idol

oak turret
#

Hé @oak turret mon serveur Nginx a un problème, tu sais pourquoi ?
Solution: Installe SFTP

kappo kappo kappo kappo
@idle ice 😭😭😭😭

idle ice
#

J'm'écroule de rire tout seul ptn

#

J'suis fatigué

oak turret
#

non mais du coup ouiheberg report les

frosty idol
#

A qui ?

oak turret
#

parce que là

#

euh

#

bonne question

#

là du coup, t’es dans la sauces

frosty idol
#

Bon pas grave

#

J'ai un VPS aussi

#

Mais je n'arrive pas à laisser mon bot actif H24

dire latch
#

Installe pm2 sur ton vps

#

Puis dans le dossier tu bot, tu fais pm2 index.js

#

Et il resteras H24 allumé

frosty idol
#

oki merci

dire latch
#

Dr

frosty idol
#

La commande npm install pm2 est juste ?

#

@dire latch

dire latch
#

Oui?

frosty idol
#

J'ai fais npm install pm2
Puis dans mon dossier du bot : pm2 index.js -> ça m'a mis -bash: mp2 : command not found

dire latch
#

Ta mis mp2

#

Donc normal 🙂

frosty idol
#

Non faute de frappe sur discord

#

J'ai bien mis mp2

#

pm2

dire latch
#

Screen stp

frosty idol
#

x)

dire latch
#

Mdrr

frosty idol
dire latch
#

OK attends deux secs

#

Si tu écris pm2, ça fais rien ?

#

Ah aussi

#

C'est pm2 start index.js

frosty idol
#

Dans le dossier de mon bot ?

dire latch
#

Yes

frosty idol
#

command not found

slim anvil
#

pm2 status

#

Voir rapidement si c’est bien install

dire latch
#

Screen and tape comme Enzo a dis 😅

frosty idol
#

Command not found x)

slim anvil
#

Tu l’as bien install en global ?

frosty idol
#

Il est mal installé

slim anvil
#

-g ?

frosty idol
#

Yes

#

J'ai fais npm install pm2 à la racine de ma console

dire latch
#

npm install pm2 -g

slim anvil
#

yes en -g il faut

#

Pour que ce soit global

frosty idol
#

c'est good normalement 🙂

slim anvil
#

du coup essaye de le start now

#

pm2 start index.js

dire latch
#

Essaye ouais

frosty idol
#

C'est fait

dire latch
#

Dans la racine de ton bot

slim anvil
#

pm2 status maintenant ?

dire latch
#

Normal ta un truc qui s'est affiché

frosty idol
#

Je l'ai fait dans le dossier de mon bot

#

Et mon bot est offline pour le moment

slim anvil
#

start

#

T’as oublié le start

#

si tu veux fais un

#

pm2 start index.js —name bot

#

Comme ça tu auras bien le name

dire latch
#

Tu fais pm2 start index.js

#

Dans la racine de ton bot

#

Oublie pas le petit start 🙂

frosty idol
#

oki je test

#

C'est fait

slim anvil
#

pm2 status ?

#

Il est marqué en online ?

frosty idol
dire latch
#

Normalement il s'affiche sans pm2 status

#

🙂

slim anvil
#

c’est good ?

dire latch
#

Yes good

frosty idol
#

Mon bot n'est pas online

dire latch
#

Si tu veux les logs de ton bot, tu fais pm2 status 0

slim anvil
#

pm2 log index

#

Et screen les logs

dire latch
#

Ta les deux façons 😁

frosty idol
dire latch
#

Ta une erreur dans ton fichier ducoups

slim anvil
#

Mauvaise fermeture de fonction

frosty idol
#

?

slim anvil
#

t’as accès au code v

#

?*

#

cherche l’évent messageReactionAdd

#

Ça vient de par ici

dire latch
#

Screen le code ligne 12 🙂

frosty idol
#

yes wait please

dire latch
#

Oui tkt

frosty idol
#

J'ai delete mon fichier messageReactionAdd car il date et j'en ai plus besoin

#

Je dois refaire la commande du coup ?

slim anvil
#

pm2 restart index

frosty idol
#

C'est Gooood ! 🙂

slim anvil
#

belle manière de gérer le bug

frosty idol
#

Merciiii lolwhatthink

slim anvil
#

On supprime le fichier kappo2

frosty idol
#

aha x)

dire latch
#

Mdr

#

Solution des flemmards sa 😅

frosty idol
#

Si je ferme ma console putty, mon bot reste open ?

slim anvil
#

Oui

frosty idol
#

Même pas, j'en avais réellement plus besoin x)

slim anvil
#

tkt po

frosty idol
#

ça marche, thanks man

dire latch
#

Np

#

Avec plaisir d'aider

slim anvil
#

maintenant Go faire du CI/CD comme ça quand tu push sur git hop ça restart auto

frosty idol
#

😂

dire latch
#

Ducoups on avait dis 40 euros pour l'aide, c'est ça Enzo ? Mdrr

frosty idol
#

J'avais fixé 60€ de base

dire latch
#

Ah ba go 😁

slim anvil
frosty idol
#

Dernière question pour ce soir x) Je dois utiliser quoi pour afficher le nombre de joueur connecté sur un serveur (Garry's Mod) dans "activity" du bot ? Est-ce Possible ?

#

Si ce n'est pas possible alors que dois-je utiliser pour afficher le nombre de membre sur un discord dans son activity ? Merci 🙂

dire latch
#

Je ne sais pas dutout faire ça donc sûrement une autre personne répondras 😁

slim anvil
#

putain @oak turret c’est ton moment mec je me rappelle plus du nom

#

je crois c’est steam-game-query

#

Un truc comme ça kappo2

oak turret
#

game-server-query

slim anvil
#

Voilà bien vu

#

quelle passe D du joueur Enzo

oak turret
#

j’ai un 404 quand je vais sur le npm de game-server-query perso

#

oh non

dire latch
#

Pour une fois qu'il fais une bonne passe 😮

oak turret
slim anvil
dire latch
#

😁

oak turret
dire latch
#

Zuper

frosty idol
#

Hello,
Comment utiliser game-server-query ? Je ne trouve pas la documentation sur discord.Js

slim anvil
#

C’est pas lié à discord

#

La doc tu la trouveras sur leur git ou sur leur page npm

#

C’est un module node tu auras tout dessus, ou peut être que @oak turret a un exemple à t’envoyer

oak turret
#

Ouaip je t’envoie un exemple dès que je suis sur le pc

frosty idol
#

ça marche merci 🙂

oak turret
#

du moins j’arrive plus à l’installer perso

slim anvil
#

Ah il est peut être plus dispo

#

Y en a d’autres sinon

oak turret
#

je crois ouais

slim anvil
#

par exemple

oak turret
#

yep

frosty idol
#

ça marche merci

#

Je remplace l'ip & le port je suis pose ?

oak turret
#

oui

frosty idol
#
module.exports = async(client) => {

    client.user.setPresence({
        activity: {
            name: "⭐ BOT"
        }
    })
};

const Gamedig = require('gamedig');

setInterval(timer, 60 * 1000)
function timer() { 
  Gamedig.query({
    type: 'garrysmod',
    host: '178.170.39.103',
    port: '30366'
  }).then((stats) => {
    client.user.setActivity(stats.players.length +"/"+stats.maxplayers+" joueurs");
  }).catch((error) => {
    client.user.setActivity("Hors Ligne");
  });
};

Je peux delete le dessus du coup ?

#

La partie module

frosty idol
#

Bon, ça ne fonctionne pas... x)

oak turret
#

attend je vais te faire un exemple avec steam-query

#

dans le log du state, tu auras tout ce que tu peux récup

#

il te faut juste un config.json avec dedans

#
{
"token": "token",
"prefix": "prefix"
}
frosty idol
#

Je dois remplacer token & prefix ?

oak turret
#

le string ouais

#

par ton token et ton prefix

frosty idol
#

Ok, je trouve ou les deux infos ?

oak turret
#

sur ton bot le token

#

et le prefix c'est toi qui choisis

frosty idol
#

Oki

#

Mais comment il se relie au serveur ?

oak turret
#

tu vas sur discord permissions sur interne

#

internet

#

tu mets les perms que tu veux

#

et tu mets le client id

frosty idol
#

Mais nan x)

#

😂

oak turret
#

et t'as un lien d'invitation, et de là tu l'invites sur ton discord

#

bah tu parles de quoi

frosty idol
#

Au serveur Garry's Mod

oak turret
#

bah c'est steam-query qui le gère ça

#

avec l'api steam sûrement, j'en sais pas plus

frosty idol
#

Je connecte ou mon serveur gmod ?

#

Et comment surtout

oak turret
#

T'as vu le code que je t'ai donné ?

frosty idol
#

Yes

#

Je l'ai utilisé

#

Actuellement je l'utilise

oak turret
#

là où tu vois host et port

#

tu changes par le host de ton serveur

#

et le port de ton serveur

frosty idol
#

Oh mince, désolé je n'avais pas vu

#

Merci 🙂

#

Je vais test

oak turret
#

yes

#

si c'est les bonnes infos c'est good

frosty idol
#

Pourquoi quand je lance mon bot avec pm2 start index.js, j'ai le message dans ma console que le bot est online et je le vois offline sur discord ? :/

solemn raft
#

Hum...

#

Son statut

#

Tu la bien mis

#

?

oak turret
#

essaye juste node .

#

pour voir

solemn raft
#

Moi je fait des bots en python pas java script sorry :/

frosty idol
#

J'ai toujours fais : pm2 start index.js & ça a toujours fonctionné mais la mon bot reste offline & ma console me dit qu'il est online

slim anvil
#

pm2 log

#

voir si y a pas une erreur

frosty idol
slim anvil
#

du coup l'erreur a l'air de venir d'un events.bind

#

surement ton handler de commande ?

frosty idol
#
const Discord = require('discord.js'); 

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

const client = new Discord.Client();

const steam = require('steam-query');



client.on("ready", () => {

    console.log(`Le bot a démarré, avec ${client.users.size} utilisateurs dans ${client.guilds.size} serveurs.`);
    client.user.setActivity("&help pour en savoir plus.");

});

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

    if(message.author.bot) return;
    if(message.content.indexOf(config.prefix) !== 0) return;

    const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
    const command = args.shift();

    if (command === "status") {
     
      steam.query('178.170.39.103', 30366, function(error, state){
      if(error) console.log('Server is offline.');
      else {
        console.log(state);
    }
});


    }
});

client.login(config.token);

C'est le dernier fichier que j'ai modif avant que ça bug donc ça doit venir d'ici

#

Je sais pas si c'est "mauvais" mais j'ai mis dans mon dossier Events : un fichier ready.js qui contient ce que j'ai mis juste au dessus & un autre fichier config.json

frosty idol
#

Je suis débutant en js

#

Mince

#

J'ai même pas fais attention

#

J'ai fais de la merde à la fin

#

Autant pour moi

#

J'ai juste besoin d'un status pour un serveur

#

Avec plaisir

dire latch
#

Hey 🙂

#

Es-ce que tu es là ? @queen ocean

marble kindle
#

Je cherche un hébergeur gratuit h24 7/7. Qui en a un ?

fleet socket
#

y'a glitch, le pb c'est que comme la plupart (tous ?) les hebergeurs gratuit si ton app est inactive pendant plus de 5mn il eteint le bot (mais tu peux le bypass y'a certaine technique en cherchant sur internet)

marble kindle
#

Okok

#

Je vais voir merci :)

odd ether
#

@marble kindle J'en ai 2 mais le problème étant que l'un des 2 est en maintenance.

queen ocean
#

Es-ce que tu es là ? @queen ocean
@dire latch ?

zealous palm
#

Plop,

J'ai une erreur avec mon bot

keen narwhal
#

@zealous palm "bot"

#

est pas définis

#

vérifie tes variables tout en haut

#

c'est souvent client/bot

#

la variable new Client()

zealous palm
keen narwhal
#

@zealous palm Remplace par client

#

Si t’as fait client.on

zealous palm
#

comme ça ?

keen narwhal
#

oui

zealous palm
#

okay

keen narwhal
#

& ton bot j'crois il est en v12

#

dnc c client.emojis.cache.get

#

Ui

zealous palm
#

okay je test je vosu redis

#

Aïe

keen narwhal
#

retire le cache

#

pr voir

#

sinon passe par le nom

zealous palm
#

cad ?

keen narwhal
#

wait j'te fais un exemple

#

Je pense pas que emoji prend un s

zealous palm
#

j'ai compris l'erreur mais je ne sais pas la regler

keen narwhal
#

normalement si

#

Ah si

#

Juste bizarre

#

c'est juste

#

pr une react ?

zealous palm
#

sur un message

#

quand je vais fait /sondage

keen narwhal
#

passe via l'id directement

#

ex:

#

dans ce cas

#
// --
message.react(`snowflake`)
message.react(`snowflake`)
#

Tu fais msg.react('L’emote en Unicode')

#

remplace le snowflake

#

par l'id de tes msg

#

euh

#

de tes emojis

#

@keen narwhal L’empoté en Unicode marche

#

ah

#

ms il veux react emojis customs j'pense

#

Pour avoir un emote en Unicode tu as juste besoin de mettre /et l’emote

#

Ouais dans ce cas l’ID

#

nn tu met l'id des emojis

#

que tu veux add

zealous palm
#

comme ça ????

keen narwhal
#

wer

#

retire

#

les const emojis

#

y sont inutile maintenant

zealous palm
#

ok

#

garder son calme 😡

keen narwhal
#

send ton code

#

en ```js

#

enfin juste la commande

zealous palm
#
client.on('message', message => {
  if (message.content.startsWith("/sondage")) {

      if(!message.guild.member(message.author).hasPermission("VIEW_AUDIT_LOG")) return message.channel.send(noperm);

      let args = message.content.split(" ").slice(1);
      let thingToEcho = args.join(" ")
      client.emojis.cache.get(config.emojiID);
      client.emojis.cache.get(config.emojiID);
      var sondage = new Discord.RichEmbed()

      .setAuthor("📜 | Sondage")
      .setColor('#36393f')
      .addField(`Veuillez répondre par :yes: ou par :nop: :`, thingToEcho)
      .setTimestamp()
      .setFooter(`© 2020 Paul Bot | Dev by Stan`, bot.user.displayAvatarURL)
      message.channel.send(sondage)
      .then(message => {
          message.react('740802790464552980')
          message.react('740880246643097631')
      })


  }
})

module.exports.help = {
  name: "sondage"
} ```
keen narwhal
#
client.on('message', message => {
    if (message.content.startsWith("/sondage")) {
  
        if(!message.guild.member(message.author).hasPermission("VIEW_AUDIT_LOG")) return message.channel.send(noperm);
  
        let args = message.content.split(" ").slice(1);
        let thingToEcho = args.join(" ")
console.log(thingToEcho)
        var sondage = new Discord.RichEmbed()
        .setAuthor("📜 | Sondage")
        .setColor('#36393f')
        .addField(`Veuillez répondre par :yes: ou par :nop: :`, `${thingToEcho}`)
        .setTimestamp()
        .setFooter(`© 2020 Paul Bot | Dev by Stan`, bot.user.displayAvatarURL)
        message.channel.send(sondage)
        .then(message => {
            message.react('740802790464552980')
            message.react('740880246643097631')
        })
  
  
    }
  })
  
  module.exports.help = {
    name: "sondage"
  } ```
#

#

ça devrais fonctionner

zealous palm
#

je te dis ça tout de suite 😉

#

il veut vraiment aps

keen narwhal
#

g edit

zealous palm
keen narwhal
#

att

#

met c'que j'ai edit

#

et dis moi si ça console log qlq chose

oak turret
#

j’ai fais un système de sondage

#

j’vais te débug ça

zealous palm
#

okay lartaxx

oak turret
#

déjà pour la raison change ton code par ça

#

message.content.split(" ").slice(1).join(" ");

#

sinon le message sera soit coupé soit incomplet

#

et ensuite, tu mets un ; à ton setFooter car c’est le dernier field de ton embed

zealous palm
#

att je reprend ma base au dessus

#

voilà

#

encore la même erreur

#

je re d'ici 1h

oak turret
#

je suis sur tel, j’te debug ça après

keen narwhal
#

if (message.content.startsWith("/sondage")) {

if(!message.guild.member(message.author).hasPermission("VIEW_AUDIT_LOG")) return message.channel.send(noperm);

// -- Je retire juste le première élèment du contenue du message
var str_content = message.content.substr(message.content.indexOf(' ') + 1).trim();
// -- J'vérifie que la personne a juste pas écris la commande sans ajouté d'argument 
if(str_content === message.content) return console.log(`Aucun arguement (${message.content})`);
// -- Déclaration de l'embed
var sondage = new Discord.RichEmbed()
 .setAuthor("📜 | Sondage")
 .setColor('#36393f')
 .addField(`Veuillez répondre par :yes: ou par :nop: :`, str_content)
 .setFooter(`© 2020 Paul Bot | Dev by Stan`, bot.user.displayAvatarURL)
 .setTimestamp()
// -- Envoie de l'embed
message.channel.send(sondage)
.then(message => {
            message.react('740802790464552980')
            message.react('740880246643097631 ')
        });
  
    }```
#

@zealous palm ça devrais résoudre ton soucis, ça marche chez moi

dire latch
#

Hey,

je voudrai faire un bot qui annonce les lives twitch des personnes que j'aurai choisis.

Si quelqu'un pourrait m'aider pour récupérer le "Jeton" pour l'api twitch car j'y arrive pas dutout.

#

Si vous voulez, demander moi des précisions 🙂

queen ocean
#

Qu’est-ce que t’arrive pas ? C’est quoi ton code ?

dire latch
#

Pour récupérer le jeton

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

const streamer = 'Dragounnet56';
const snekfetch = require("snekfetch");
let authHelixclientID = `client_id`
let authHelixclientSecret = `client_secret`
const lientwitch = `https://id.twitch.tv/oauth2/validate`
const liens = `https://id.twitch.tv/oauth2/token?client_id=${authHelixclientID}&client_secret=${authHelixclientSecret}&grant_type=client_credentials`
const api = `https://api.twitch.tv/helix/streams?user_login=${streamer}`
let bottwitch = client.channels.find(r => r.id === "738811585992065114")

client.on('ready', function () {
  console.log(`Bot has started, with ${client.users.size} users, in ${client.channels.size} channels of ${client.guilds.size} guilds.`);
  client.user.setGame(`on ${client.guilds.size} servers`);
});

snekfetch.get(api).then(r => {
  if (r.body.stream === null) {
    setInterval(() => {
      snekfetch.get(api).then(console.log(r.body))
    }, 10);
  } else {
    console.log(r.body);
    const embed = new Discord.RichEmbed()
     .setAuthor(`${r.body.stream.channel.display_name} is live on Twitch`,`${r.body.stream.channel.logo}`,`${r.body.stream.channel.url}`)
     .setThumbnail(`http://static-cdn.jtvnw.net/ttv-boxart/${encodeURI(r.body.stream.channel.game)}-500x500.jpg`)
     .addField('Stream Title', `${r.body.stream.channel.status}`, true)
     .addField('Playing', `${r.body.stream.channel.game}`, true)
     .addField('Followers', `${r.body.stream.channel.followers}`, true)
     .addField('Views', `${r.body.stream.channel.views}`, true)
     .setImage(r.body.stream.preview.large)
    return bottwitch.send(embed);
  }
});
#

J'ai ceci

queen ocean
#

Jsuis en apéro je check après si personne t’a rep

dire latch
#

Yes tkt

dire latch
#

Personne pour m'aider ? 😦

odd ether
#

Je suis pas trop dans les API pour l'instant l, desolay

dire latch
#

Pas de soucis

dire latch
#

Si quelqu'un s'y connais 🙂

slim anvil
#

Tu dois générer ton token en appelant la route que tu appelles "liens", avec ce qu'il te renvoie tu dois l'envoyer dans les authorization headers

#

pour la route "api"

#

(ta variable)

#

je peux pas + t'aider que ça je rentre dimanche si tu veux

dire latch
#

@slim anvil Jcomprends pas trop mais pg tkt

idle ice
#

Je doute que tu puisses augmenter, il s'agit de la limite imposée je crois

dire latch
#

Ok merci 🙂

idle ice
#

Parlant de bot, j'ai envie de me mettre à en développer un, mais je sais pas trop sur quoi.
Y en a beaucoup trop de "généralistes"

dire latch
#

Ouais @idle ice , après, tu peux en faire un bot perso 🙂

idle ice
#

Justement quand je crée j'aime bien que ce soit utilisé au "grand public" 😦

dire latch
#

Ah ba fais un bot aventure, jeux ou autres

#

Qui n'as jamais été fais

idle ice
#

Pense, pense, pense...

dire latch
#

Mdr

#

Pense bien 😉

idle ice
#

Peut être bien un bot permettant du RP 🤔

dire latch
#

Let's go 🙂

slim anvil
#

@dire latch regarde comment fonctionne les requêtes tu vas voir c’est pas compliqué, tu as souvent des headers à set pour t’ « authentifier » a l’api (le token)

idle ice
#

Quand tu as envie de faire un bot pour le jeu Scum, mais qu'il n'y a aucune API ou aucun "protocole" connu pour le ping (avec GameDig par exemple)

#

😢

dire latch
#

@slim anvil Je vais voir demain mdr

#

@idle ice Ah mdr rip

#

@idle ice Sinon go faire tout à la main 🙂

idle ice
#

Bah encore le fait de ping le serveur via GameDig, ça peut se faire et puis j'fork, mais y a 0 API pour faire des p'tits trucs sympa

#

Genre récupérer les patchnote, etfc

dire latch
#

😅

oak turret
#

Fleo, si tu te lances dans un bot, et que t’as pas envie de le développer seul, mp moi steammocking

idle ice
#

Yep ainsi on mettra des vannes 😂😂

hazy mirage
frosty idol
#
const Discord = require('discord.js');
var prefix = "-";

client.on('message', message => {
    if (message.content === prefix + "test") {
        var embed = new Discord.RichEmbed()
            .setTitle("Coucou")
            .setDescription("Testtt")
            .addField(".help", "Page accueil", true)
            .addField("Embed01 Test", true)
            .setColor("0xfcba03")
            .setFooter("By Shibaz")
        message.channel.sendEmbed(Embed);
    }
});

Est-ce que ceci est juste ? J'ai mis ce code dans un fichier link.js
Mon but est de créer un embed (pré-défini dans le fichier) quand on exécute une commande

#

En tout cas ça ne fonctionne pas mais je ne sais pas c'est quoi le problème

keen narwhal
#

@frosty idol ton 2eme field

#

Il manque une value

#

c'est obligatoire pour les fields

#

.addField(title, value, inline)

frosty idol
#
const Discord = require('discord.js');
const config = require("../../config.json");

exports.run = (client, message, args) => {
    var done = new Discord.RichEmbed()
      .setTitle("🔧   -   Redémarrage")
      .setDescription("✅   -   Status Actualisé")
      .setColor("#b700ff")    
      .setThumbnail(config.icon)
      .setTimestamp()
      .setFooter('➤ ' + message.author.username)
    message.channel.send(done);
};
#

Au final j'ai pris une ancienne base mais maintenant il faut que je relie la commande

#

Donc comment relier la commande qui servira à poster l'embed dans le salon ?

keen narwhal
#

J'ai pas tout compris, mais si j'comprend bien t'veux avoir un fichier par commande en gros?

#

Si oui, cherche sur YouTube des tutoriels pour les handlers c'est assez bien expliqué

frosty idol
#

C'est ça, le but c'est que losque on met par exemple -link dans un salon, un embed apparait déjà fais avec toute la description & les liens...

keen narwhal
#

bah tu créé ton embed et ta commande

frosty idol
#

C'est bon, problème réglé

junior echo
#

Bonjour, auriez vous une idée pourquoi aucun message n'est print ?


client.on("messageReactionAdd", (messageReaction, user) => {
    
    console.log("dedans")

    client.channels.get("741326229558263878").send(":tada:")

    console.log("Salut")

});
frosty idol
#

Je ne serais malheureusement pas t'aider mais je cherche justement comment ajouter automatiquement une réaction à un embed

junior echo
#

Après ca dépend de comment tu envoies ton message

frosty idol
#
exports.run = (client, message, args) => {
    var done = new Discord.RichEmbed()
      embed
    message.channel.send(done);
    message.delete();
};
#

J'ai fais mon embed comme ceci

dire latch
#
message.channel.send(done).then(function (message) {
        message.react("✅")
        message.react("❌")
     })
frosty idol
#

Merciiii 🙂

dire latch
#

Dr 🙂

junior echo
#

Et t'as une ID pour moi

dire latch
#

Tu veux faire quoi exactement ? @junior echo

frosty idol
#

Petite question aussi, comment ça se fait que dans mon embed -> .addField il est écrit "undefined"

#

J'ai essayé de mettre .addField("dsdfsdg", true) mais ça met true à la fin x)

dire latch
#

Il faut dans ton addField

terse salmon
#

.addField(title, value, inline)

junior echo
#

Je veux que dès qu'un joueur ajoute une réactio un rôle lui est attribué saut que ma fonction n'est pas lue

terse salmon
#

Non ?

dire latch
#

Tu met ceci: ```js
.addField("Un truc", "un truc", true)

frosty idol
#

Oki thanks

dire latch
#

Dr

junior echo
#

@dire latch Du coup t'as une idée ?

dire latch
#

@junior echo J'utilise ceci

#
bot.on("messageReactionAdd", (messageReaction, user) => {
  const message = messageReaction.message;
  const member = message.guild.members.get(user.id);
  if(user.bot) return;
  const garçon = message.guild.roles.get("731883578501234758");
  const fille = message.guild.roles.get("731883581500162148");
  if (
    ["👦", "👧",].includes(messageReaction.emoji.name)
  ) {
    switch(messageReaction.emoji.name) {
      case"👦":
      member.addRole(garçon)
      member.createDM().then( channel => {
        channel.send("Le rôle **Garçon** à été ajouté avec succès.")
      })
      break;

      case"👧":
      member.addRole(fille)
      member.createDM().then( channel => {
        channel.send("Le rôle **Fille** à été ajouté avec succès.")
      })
      break;
    }
  }
})
junior echo
#

Et c'est quoi la constante de bot ?

dire latch
#
bot.on("messageReactionRemove", (messageReaction, user) => {
  const message = messageReaction.message;
  const member = message.guild.members.get(user.id);
  if(user.bot) return;
  const garçon = message.guild.roles.get("731883578501234758");
  const fille = message.guild.roles.get("731883581500162148");
  if (
    ["👦", "👦"].includes(messageReaction.emoji.name)
  ) {
    switch(messageReaction.emoji.name) {
      case"👦":
      member.removeRole(garçon)
      member.createDM().then( channel => {
         channel.send("Le rôle **Garçon** à été enlever avec succès.")
      })
      break;

      case"👧":
      member.removeRole(fille)
      member.createDM().then( channel => {
        channel.send("Le rôle **Fille** à été enlever avec succès.")
      })
      break;
    }
  }
})
#

Comment ça ? @junior echo

junior echo
#

bot == nil pour moi

dire latch
#

Ba tu met client si tu as déclarés client

junior echo
#

Ahhh ok bot == client

dire latch
#

Ba ```js
const client = new Discord.Client();

#

Ou sois tu as ```js
const bot = new Discord.Client();

#

Sa dépends ce que tu as mis

#

Donc tu remplaces bot par client

junior echo
#

moi c'est client

#

Donc je changes

dire latch
#

Remplace bot par client ducoups

junior echo
#

Oui oui tkt ca j'avais capté, merci beaucoup pour ton aide

dire latch
#

Dr 🙂

junior echo
#
message.guild.roles.find("name", "Client")

@dire latch Ca me retourne :
c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\index.js:163
let role = message.guild.roles.find("name", "Client")
^

dire latch
#

Si tu utilises la V12, faut que tu modifs 🙂

junior echo
#

Il faut que je modifs quoi ?

dire latch
#

Mon code

junior echo
#

Mais ca c'est le mient

dire latch
#

Ah ok

junior echo
#

Mais je me suis inspiré du tiens

#

Mais avec la V12 je sais pas comment résupérer le role avec le .find

dire latch
#
// PAR ID DU ROLE
member.roles.cache.has('role-id-here');

// PAR NOM DU ROLE
member.roles.cache.some(role => role.name === 'Mod');
#

C'est dans la doc 🙂

frosty idol
#

Petite question, comment ça se fait que mon bot envoie mon embed en double ?

#

Voici le code :

#
const Discord = require('discord.js');
const config = require("../../config.json");

exports.run = (client, message, args) => {
    var done = new Discord.RichEmbed()
        EMBED
    message.delete();
    message.channel.send(done).then(function (message) {
        message.react("✅")
        message.react("❌")
    });
    message.channel.send(done);
};
dire latch
#

Tu envois deux fois ton embed

frosty idol
#

Comment ça ?

dire latch
#

Modifie par ça

frosty idol
#

Ah bien vu 🙂

dire latch
#
const Discord = require('discord.js');
const config = require("../../config.json");

exports.run = (client, message, args) => {
    var done = new Discord.RichEmbed()
    message.delete();
    message.channel.send(done).then(function (message) {
        message.react("✅")
        message.react("❌")
    });
};```
frosty idol
#

Mercii 🙂

dire latch
#

Dr

frosty idol
#

Dernière question, j'ai fais plusieurs .addField sauf que mes fields se mettent bizarrement (la disposition n'est pas en "colonne")

dire latch
#

Screen 🙂

frosty idol
#

J'aimerai que un field soit égale à une ligne

#

Si possible

dire latch
#

Tu enlèves les true de tes .addField

#

Et pour par exemple

#

Mettre le lien dans la même ligne, tu ne peux pas

frosty idol
#

Oh Oh génial

#

C'est exactement ce qu'il me fallait

#

Tu gères, un grand merci harold

dire latch
#

Ah ba nickel alors 🙂

#

Dr

frosty idol
#

Comment ça se fait que mon message react ne fonctionne pas ? x)

#

C'est bon, j'ai trouvé

junior echo
#

Quelle est la fonction pour set le rôle de quelqu'un en V12

dire latch
#

Cadeau 🙂

#

@junior echo Si t'y arrives pas, tu me dis

junior echo
#

Ok thx

keen narwhal
#

je me suis jamais trop intéressé au db et j’aimerais faire un bot giveway, est ce nécessaire d’avoir une database ?

dire latch
#

Oui tu peux

keen narwhal
#

obligé ?

#

si je veux le temps qui s actualise toute les 5 min par exemple

dire latch
#

Tiens 🙂

keen narwhal
#

cimer je vais regarder

dire latch
#

Dr

keen narwhal
#

juste quelle est la différence entre le système d await et le système collector

junior echo
#

@dire latch
member.roles.add(role);
Apparement cela n'est pas bon

dire latch
#

ça te dis quoi ?

junior echo
#

Reste du code :

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

    if (message.content.startsWith(`test`)) {

        const role = message.guild.roles.cache.find(role => role.name === 'Développeur');
        const member = message.mentions.members.first();
        member.roles.add(role);

    }

}) 
#

c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\index.js:165
member.roles.add(role);
^

TypeError: Cannot read property 'roles' of undefined

#

@dire latch Voili voilou

dire latch
#

Tu ne mentionne personne.

#

Normal

junior echo
#

Si si

#

Et quand je mentionne ca me met Missing Permissions

dire latch
#

Si sa te met ceci, c'est que ta pas les perms, sois le bot à pas les perms

#

Donc le bot a le rôle aux dessus de lui

junior echo
#

Ah

dire latch
#

Tu as essayés de modif ?

oak turret
#

je vais te donner le code

#

j'ai fais un truc similaire

#
 message.member.roles.add("730418366799413249").catch(console.error);
dire latch
#

C'est déjà régler

oak turret
#

il l'a pas dit

dire latch
#

Je suis sur son discord donc je réponds à sa place 🙂

oak turret
#

ok

junior echo
#

Ah oui, je m'en excuse

keen narwhal
#

il dois être en v11

dire latch
#

Rien à voir. @keen narwhal

lofty umbra
#

slt aidez moi svp

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

module.exports.run = async(client, message, args) => {

    function clean(text) {
        if (typeof(text) === "string")
            return text.replace(/`/g, "`" + String.fromCharCode(8203)).replace(/@/g, "@" + String.fromCharCode(8203));
        else
            return text;
    }

    if (message.author.id !== '736990405438079119') return;
    try {
        const code = args.join(" ");
        let evaled = eval(code);

        if (typeof evaled !== "string")
            evaled = require("util").inspect(evaled);

        message.channel.send(clean(evaled), { code: "xl" });
    } catch (err) {
        message.channel.send(`\`ERROR\` \`\`\`xl\n${clean(err)}\n\`\`\``);
    }
}

module.exports.cmd = {
    name: 'eval'
}
#

la commande marche pas

oak turret
#

chaque chose en son temps

#

de 1 - à quoi sert ton code

#

de 2 - quelle erreur ?

#

merci

lofty umbra
#

ya pas d'erreur

#

le code c'est pour la commande eval

oak turret
#

c'est toi qui a fait ce code suspisiouscat

lofty umbra
#

avec de l'aide

#

pas tout seul

oak turret
#

et eval de quoi ?

#

je capte pas à quoi sert ton code

lofty umbra
#

pour eval le code

#

ya que moi qui peut l'utiliser

oak turret
#

pour eval le code ?

#

hein

lofty umbra
#

tu sais pas ce que c'est la commande ?

oak turret
#

eval ?

lofty umbra
#

sauf que je sais pas comment expliquer

#

:/

oak turret
#

mais eval = ?

lofty umbra
#

c une commande

#

genre

oak turret
#

oui ok ça j'avais compris

lofty umbra
#

tu fait

#

eval message.channel.sen('test')

#

sa vas ecrire test

#

et si ya une erreur

#

bah sa vas le montrer

#

et au dessus yaura ecrit error

junior echo
#

Tu sais pas ce que tu créais

oak turret
#

oula

#

non

lofty umbra
#

:/

oak turret
#

message.channel.send = code

lofty umbra
#

:/

oak turret
#

c'est censé faire eval tatata

lofty umbra
#

c un exemple

#

:/

oak turret
#

et ça écrira tatata

#

mais tu te fais chier pour rien là

slim anvil
#

eval c’est une méthode

oak turret
#

capte pas

slim anvil
#

Tu fais bien eval(ton code ici) ?

#

Et tu fais un eval pour ?

lofty umbra
#

dsl si j'explique très mal

slim anvil
#

Vérifier si il s’envoie bien ?

#

Fais juste un try catch

junior echo
#

Vérifier si c'est un string nan ?

lofty umbra
#
const Discord = require('discord.js')

module.exports.run = async(client, message, args) => {

    function clean(text) {
        if (typeof(text) === "string")
            return text.replace(/`/g, "`" + String.fromCharCode(8203)).replace(/@/g, "@" + String.fromCharCode(8203));
        else
            return text;
    }

    if (message.author.id !== '736990405438079119') return;
    try {
        const code = args.join(" ");
        let evaled = eval(code);

        if (typeof evaled !== "string")
            evaled = require("util").inspect(evaled);

        message.channel.send(clean(evaled), { code: "xl" });
    } catch (err) {
        message.channel.send(`\`ERROR\` \`\`\`xl\n${clean(err)}\n\`\`\``);
    }
}

module.exports.cmd = {
    name: 'eval'
}
#

c le code de la commande

slim anvil
#

Sur tel c’est trop illisible tu peux screen stp

lofty umbra
#

ok

#

@slim anvil

slim anvil
#

eval return true ou false

junior echo
#

Prends un screen via Capture D'écran de Windows

slim anvil
#

Donc ton if (typeof eval) sera toujours false

#

enfin je crois je regarde Arte

#

Att*

lofty umbra
#

ok

slim anvil
#

et du coup tu peux expliquer rapidement le but de la commande

#

genre tu veux faire un truc qui lit le code ?

lofty umbra
#

jsp comment expliquer

#

slim anvil
#

ah pas pratique ça

lunar pawn
#

j'ai un problème pour héberger sur Heroku quelqu'un pourrait m'aider ?

keen narwhal
#

oe stv

lunar pawn
#

pv ?

junior echo
#

Bonjour, savez-vous comment marche les modules parce que à vrai dire je ne comprends pas, merci !

slim anvil
#

Modules de?

junior echo
#

D'exportation

slim anvil
#

Ahh tu veux te créer un handler en gros ?

#

Je pensais tu parlais des modules npm

junior echo
#

Ah non du tout

odd ether
#

Commande Handlers =
Grosse performance et économie de co

#

Mais regarde des tutoriels sur YTB comme GetCodingKnolage ou autre.
Ils expliquent bien

oak turret
#

sinon sur discord.js guide t’as des exemples pour la v11 et 12 de handlers

terse salmon
#

Mdrrr @odd ether tkt tu arriveras à écrire GetCodingKnowledge un jour

keen narwhal
#

j’aimerais savoir si c’était possible de générer un fichier paste in avec le pseudos de tout les membres du serveurs de quand on fait une certaine commande

junior echo
#

@terse salmon C'est pas le plus important

junior echo
#

@odd ether Merci j'ai compris maintenant

#

@oak turret J'étais déjà allez voir pour d'autres choses mais je savais pas que c'était pour ca, merci

keen narwhal
#

@keen narwhal oui via l'api pastebin

#

c'est super simple en plus

keen narwhal
#

azy cimer je vais regarder

odd ether
#

@junior echo No Problem

#

@terse salmon Le jour où j'arriverai à l'écrire correctement, sa serra la fin du monde

keen narwhal
#

je comprends pas trop comment aligner des tectes dans les embed avec la technique inline: true

#

faire comme ca

keen narwhal
#

.addField(title, value, true)

#

tu remmplace title & value pr cque tu veux mettre

#

bv

#

c'est carré

keen narwhal
#

est ce que c'est possible de configurer un ID d'un ou plusieurs owners dans le fichiers config.json et ensuite certaines commandes on fais un js if (message.author.id !== owners_ID) { return; } else

#

car je ne sais pas comment faire

boreal edge
slim anvil
#

⬆️

keen narwhal
#

cim jvais regarder

marble kindle
#

dans mon fichier config.js :

{
    "token": "***"
    "prefix": "+"
}
#

et il y a une erreur avec le préfix...

#

pourtant tout est bon

odd ether
#

C'est quoi ton erreur ?

marble kindle
#

Mon préfix

odd ether
#

Oui mais dans la console, sa mets quoi ?

terse salmon
#

Ça te met quoi comme erreur ?

marble kindle
#

Il me le met en erreur

#

euh att

#

Expected comma

odd ether
#

Ah et je pense avoir trouver. Essaie ça :

dans mon fichier config.js :
{
    "token": "***",
    "prefix": "+"
}
marble kindle
#

ah yess

odd ether
#

Mets la virgule et regarde

#

En json, faut mettre des ,

marble kindle
#

ok, je vien tout juste de commencer c'est pour sa

#

Merci

terse salmon
#

mdr dans le discord js c'est incroyable comme un point ou une virgule ça peut ruiner ton code

odd ether
#

Pas de soucis ; )

#

C'est du JavaScript

marble kindle
#

@terse salmon Oui

#

Et aussi quand je suis dans mon terminal, je fait node index mais mon bot ne demarre pas...

odd ether
#

Es-ce que tu a fais un client.login(token) ?

marble kindle
#

J'ai fait sa client.login(confing.token)

#

je doit peut etre enlever le config avant token

odd ether
#

Et sa bloque sur node index ?

#

Non

marble kindle
#

Oui, sa veut pas ce lancer

odd ether
#

Ta fait npm I discord.js ?

marble kindle
#

Dans le terminal ?

odd ether
#

Oui

marble kindle
#

oui

#

J'ai trouver je coirs

#

crois

#

ah bah non

#

Quand je fait "node index" il y a marquer apres dans le terminal "ReferenceError: confing is not defined" après il y a des trucs at .....

timid loom
#

il faut mettre node puis le nom du fichier d'entrée du code

#

donc par exemple

#

node index.js

marble kindle
#

Sa change rien quand je le fait

timid loom
#

c'est quoi le nom de ton fichier?

marble kindle
#

index.js

timid loom
#

et quand tu fais node index.js ça te dit quoi

marble kindle
#

ReferenceError: confing is not defined

timid loom
#

t'as fait une erreur à l'endroit où tu utilise ta config

marble kindle
#
    client = new Discord.Client(),
    config = require('./config.json')
    fs = require('fs')```
#

J'ai fait sa

timid loom
#

le fait qu'il te dise reference error ça veut dire que ça fonctionne, le souci c'est qu'à un moment tu écris "confing" au lieu de "config"

marble kindle
#

je chek

timid loom
#

normalement sur ton erreur il te donne la ligne où il y a un problème

odd ether
#

T'aurai du faire un collecteur 🤔

timid loom
#

wtf

#

quel est le rapport

odd ether
#

Genre mettre le préfix et le token

#

C'est mieux

timid loom
#

ah

marble kindle
#

J'ai une nouvelle erreur...

odd ether
#

C'est ?

timid loom
#

tu veux dire comme ça @odd ether ?

const {token, prefix} = require('config.json');```
c'est pas nécessairement mieux je trouve mais ok
#

@marble kindle go nous montrer ton erreur

odd ether
#

Mouais, mais techniquement, c'est mieux car ta pas besoin de définir 2 valeurs

slim anvil
#

t'es pas obligé de les définir non plus ceci dit

#

tu peux aussi faire un Config.token

marble kindle
#

Quand je fait "node index.js"

C:\Users\XXX\Documents\Bot\index.js:10
    if (err) throw err
             ^

[Error: ENOTDIR: not a directory, scandir 'C:\Users\XXX\Documents\Bot\commands'] {
  errno: -4052,
  code: 'ENOTDIR',
  syscall: 'scandir',
  path: 'C:\\Users\\XXX\\Documents\\Bot\\commands'
}
slim anvil
#

pour savoir qu'il s'agit du token de ta config et pas le token d'autre chose

odd ether
#

Oui aussi

slim anvil
#

car le nom token reste super vaste

marble kindle
#

@timid loom tien ^^

timid loom
#

10ème ligne de ton index.js c'est quoi?

odd ether
#

Oui, sa serai plus un KeySecret pour le BOT.

marble kindle
#

if (err) throw err

timid loom
#

ok, y a quoi autour

odd ether
#

Sa get l'erreur mais je vois pas quoi

timid loom
#

err c'est quoi

marble kindle
#

error

timid loom
#

nan mais ça je sais

#

comment tu définis err

marble kindle
#

Comment sa ?

timid loom
#

y a un moment où tu assigne quelque chose à err

#

c'est quoi ce quelque chose et comment tu l'assigne

#

en gros l'error est liée à quoi

marble kindle
#
    if (err) throw err
    files.forEach(file => {
        if (!files.endsWith('.js')) return
        const command = require(`./commands/${file}`)
        client.commands.set(command.name, command)``` J'ai fait comme sa
odd ether
#

Ont sait que c'est une erreur de scan commande.

#

Oula, c'est vaste

timid loom
#

et t'as un dossier commands?

odd ether
#

Ta pas un truc undefilined

marble kindle
#

oui

timid loom
#

euh, essaye de mettre un autre / après commands

odd ether
#

Ta mis module.exports.help = {
Name
Etc...}
Sur toutes tes commandes ?

timid loom
#

nan mais aucun rapport ça

marble kindle
#

le quelle commands ?

timid loom
#

l'erreur est lié à la lecture du répertoire donc la première ligne

odd ether
#

Sa peut @timid loom

timid loom
#

non

odd ether
#

Un fichier qui se scan pas, ça peut aussi être cette erreur

timid loom
#

non

odd ether
#

Bah preuve que si car sa le la fait il y a même pas 2 heures.

timid loom
#

err ne peut pas être levé à ce moment là

#

parce que y a pas de if (err) throw err après

#

le throw err est lié qu'à la lecture du répertoire

#

je comprends ce que tu veux dire mais c'est pas la cause ici

#

l'erreur elle-même est assez facile à comprendre dans ce contexte

#

du coup @marble kindle t'as changé le premier?

marble kindle
#

oui mais rien du tout

timid loom
#

rien du tout?

#

comment ça?

marble kindle
#

sa change rien

timid loom
#

t'as la même erreur? super bizarre

marble kindle
#
           ^``` mais pourquoi la fleche vers le haut ?
timid loom
#

pour dire ce qui a levé l'erreur

marble kindle
#

ok

#

donc l'erreur provien de cette ligne ?

timid loom
#

normalement elle est sous le t d'ailleurs je crois

#

nan

marble kindle
#

oui

#

ok

#

Au pire vien dans le salon vocal bot je fait un direct

timid loom
#

en fait le programme s'arrête à ce moment là et la console te le dit

#

je peux pas venir en vocal

marble kindle
#

ok

timid loom
#

t'es sûr que tu as un répertoire nommé "commands" ?

marble kindle
#

tu veux mon code en entier ? il est petit

timid loom
#

visiblement c'est pas le souci

marble kindle
#

oui

#
const Discord = require('discord.js'),
    client = new Discord.Client(),
    config = require('./config.json')
    fs = require('fs')

client.login(config.token)
client.commands = new Discord.Collection()

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

client.on('message', message => {
    if (message.type !== 'DEFAULT' ||  message.author.bot) return

    const args = message.content.trim().split(/ +/g)
    const commandName = args.shift().toLowerCase()
    if (!commandName.startsWith(config.prefix)) return
    const command = client.commands.get(commandName.slice(config.prefix.length))
    if (!command) return
    command.run(message, args, client)
})
timid loom
#

ouais classique

#

ton fichier index.js il est au même niveau que le répertoire commands?

marble kindle
#

comment sa ? meme niveau ?

timid loom
#

genre

L index.js
L commands/
  L help.js
#

help.js c'est un fichier qui contient une commande hein, osef du nom

#

c'est dans le même dossier ? c'est ça ma question

marble kindle
timid loom
#

bah voilà

#

commands c'est pas un dossier

#

c'est un fichier

marble kindle
#

je doit le mettre en dossier ?

timid loom
#

commands doit être un dossier oui, évidemment

#

comment tu veux mettre tes fichiers de commandes dedans autrement

marble kindle
#

oui

#

mon bot c'est connecté ! Merci

timid loom
#

super, parfait

#

bonne chance pour faire tes commandes par la suite

marble kindle
#

Merci !

#

maintenant quand je fait la commande "node index.js" mon terminal bug

#

du coup je doit relancer a chaque fois...

timid loom
#

tu dois faire Ctrl+C pour arrêter ton bot

#

le fait que tu puisse pas rentrer d'autre commande est lié au fait que c'est le terminal qui héberge le processus

marble kindle
#

ok

keen narwhal
#

c’est possible de faire une liste de message et ensuite de définir un argument en mode, si l’argument n’est pas dans la liste le bot envoie un certain message

hybrid berry
keen narwhal
#

ok et c’est possible de faire sans Array genre if arg1 != (‘test’, ‘test’, ‘etc’) message.channel.send(‘error’) ?

#

je ne suis pas sûr d’où j’ai mis le !

#

fin si c’est ça

slim anvil
#

Pourquoi sans array

#

![‘test1’, ‘test2’].includes(arg1)

somber bridge
#

Salut, quelqu'un saurait comment je peut afficher le nombre total de membre sur mon serveur dans un embed ?
.setFooter("${message.guild.memberCount} membres au total.");
J'ai écrit ça, mais ça l'envoi tel quel

#
           ^

ReferenceError: message is not defined```

ça m'envoie ça dans la console @pure raven
#

Je t'envoies ça en mp

keen narwhal
#

je suis en train de faire une commande avec 2 arguments, un pour le message et un pour l'utilisateur et le bot dm l'utilisateur avec le premier argument comme ça : ! send Test @keen narwhal, J'ai déjà ma commande mais je veux faire ceci : si l'utilisateur a {user} dans le message à envoyer, il mentionne le membre qui le reçoit

fleet socket
#

je e demande si juste recuperer message.content le fait pas déjà tout seul comme un grand

#

sinn il va falloir venir parser ton message et remplacer chaque mentions par ${le_gars_a_mentionner}

keen narwhal
#

oe c’est ce que j’aimerais éviter qu’il faille changer à chaque fois

slim anvil
#

De mémoire tu as un mentions dans la collection message

fleet socket
#

pck pour l'instant quand tu rentres ta commande en mentionnant qqun ça te met quoi ?

#

oui il y a un mentions mais le pb c'est qu'il veut eviter d'avoir à remplacer a chq fois ^^

#

oh att

#

j'ai peut etre mal compris ce qu'il veut faire en fait :/

slim anvil
#

Y a un pattern pour

#

Si il veut parse les mentions

keen narwhal
#

Bonsoir, je souhaiterai savoir si c'était possible d'ajouter la permission à un rôle spécifique sur visual studio code

fleet socket
keen narwhal
#

oe en gros ça serrait répérer un message dans un message avec message.content je pense et le remplacer par quelque chose définis avant genre !say {fruit} et la ca envoie ce que j’ai définis avant pour fruit

#

exemple tt con

fleet socket
#

ahhhh

#

bah tu va pas avoir le choix il faut parser du coup

#

en gros tu va analyser ta chaîne de caracteres et à chaque fois que tu aura un {fruit} par expl tu le remplece par banane dans la chaîne, puis tu envoie la chaîne

keen narwhal
#

y’a une documentation que j’apprenne ??

#

j’ai jamais utilisé du tout cette technique

fleet socket
#

c'est la doc de javascript que tu cherche du coup