#javascript-typescript

1 messages · Page 40 of 1

silent iris
#

yes voila

#

undefined

#

c'est la que je test de tout print et je recupère tout sauf la var reaction

slim anvil
#

Juste log message.reactions ?

#

Avant de faire ton get voir si l’objet existe

silent iris
#

mais c'est bizarre car ca marche que au bout de la seconde fois j'ai l'impresssion genre j'ai cette erreur seulement au lancement du bot lors de la premiere raction

#

yes je test ca

slim anvil
#

Tu peux log juste message.reactions now ?

silent iris
#

yes c'est ca

#

c'est le message.reactions la

#

le undefined c'est la var reaction

slim anvil
#

Yes mais voir ce qu’il y a dedans, et tu as vérifié que data.emoji existe aussi ? Ce que tu lui passes en params

silent iris
#

comment ca ? la c'est le message.reactions dans le screen que j'ai log

#

yes je vais check ca

#

j'obtient ca pour le data.emoji donc c'est ok

#

{ name: 'blep', id: '652542060494061589' }

slim anvil
#

Et au final tu veux faire quoi d’ailleurs ?? Ça pourrait être plus simple de comprendre déjà 😅

silent iris
#

lorsque qu'un user réagi à un message avec l'emoji donné il se fait set un role et lorsque qu'il delete sa reaction ca lui enlève

slim anvil
#

et avec le awaitReactions ça peut pas fonctionner ? Je connais pas la doc de discord je pensais que c’était plus un soucis JS, mais en regardant un peu c’est ce que j’ai trouvé 👀

silent iris
#

bah le problème de ca c'est qu'il faut définir un temps et j'pense pas que définir un nombre très grand genre 1 semaine soit une bonne idée

#

puis si je reboot mon bot entre temps ca delete le await reaction

slim anvil
#

Hm là comme ça je connais pas assez bien discordjs pour te conseiller telle ou telle maniere, essaye de voir avec @timid loom ou Zaros ils sont bon là dedans 👀

silent iris
#

Dacc ca marche pas de problème merci quand même ! J'vais attendre sa réponse

silent iris
#

Du coup des gens auraient une idée pour mon problème ? 👆

keen narwhal
#

🤔

#

De souvenir, il y a un autre moyen de récupérer les réactions d'un message sans await

#

Et quand le bot redémarrer fetchMessage etc..

#

Je pourrais pas te dire sur le moment sorry :/

floral bolt
#

Salut, quand mon bot reboot il verif pas les réaction :/

plush lava
#

Alors euh j'avais un ancien code mais vraiment très ancien je sais pas si ça pourrait marcher car je sais que discord.js a beaucoup changé entre temps. Faut juste que je le retrouve

#

Pour vos problèmes

dire latch
#

Hey

#

Quelqu'un s'y connais en sql ? Pour un bot discord en js/discord.js

#
const Discord = require("discord.js");
const utils = require("../../utils/utils.js");

module.exports.run = async (bot, message, args, bdd, functions) => {
    bdd.query(`SELECT * FROM langue WHERE langage`, (err, clangage) => {
        if (err) throw err;
        if (clangage.langue == "en") return message.channel.send(`Anglais.`)
        if (clangage.langue == "fr") return message.channel.send(`Français.`)
        })
}
    
module.exports.help = {
    name: "langue"
}```
#

J'ai ce code

#

Je voudrais qu'avec le server_id, ça me dis le langage donc qui est fr

#

Ou sois, la langue est en

#

Merci d'avance

queen ocean
#

Le probleme est dans ta requête SELECT * FROM langue WHERE langage

#

Ca devrais déjà être mieux avec SELECT * FROM langue WHERE server_id=${message.guild.id}

dire latch
#

Même avec ça

#

Sa me dis tjr anglais

#

Or que langage est mis sur fr dans ma bdd

#

Si tu as une autre solution @queen ocean

slim anvil
#

Pourquoi tu utilises des quotes ` ?

dire latch
#

Je peux mettre n'importe lesquels 🤷‍♀️

#

Sa ne changeras rien mdr

slim anvil
#

Pour ton problème non

#

Mais si tu utilisais un lint tu mangerais des erreurs

#

Sinon tu reçois quoi quand tu fais le truc de Agent ?

dire latch
#

J'obtiens anglais

#

Or que mon langage est sur fr

slim anvil
#

et dans la requete tu envoies bien l'id fr ?

dire latch
#

Quel requête 🤔

slim anvil
#

bdd.query(SELECT * FROM langue WHERE langage, (err, clangage) dans ton select, quand tu fais le server_id=${message.guild.id} tu as bien vérifié que tu envoies bien l'id fr et pas toujours le en ?

dire latch
#

Oui

#

D'ou ceci:

if (clangage.langue == "en") return message.channel.send(`Anglais.`)
if (clangage.langue == "fr") return message.channel.send(`Français.`)
slim anvil
#

tu peux log le message.guild.id ? avant ton bdd query et vérifier que tu send bien l'id fr

#

ou alors passe le en dur l'id fr voir si cette fois ci tu le reçois bien aussi

dire latch
slim anvil
#

console.log(message.guild.id)

#

et regardes dans ta console

dire latch
#

Ok, je te fais ça

#

C'est bien la même id du discord

#

Il est bien sur fr

#

Mais il me met Anglais

slim anvil
#

et tu peux me log le clangage please ?

dire latch
#

Avant ou après ?

slim anvil
#

après le if (err) throw err;

dire latch
queen ocean
#

mhmm plus une erreur dans la sauvgarde nan ?

#

vu qu'on te vois changer la langue avant

dire latch
#

Nan

queen ocean
#

Elle fais quoi ta commande ytb-config ?

dire latch
#

Aucune erreur pour la sauvegarde

slim anvil
#

Bah c'est surtout

dire latch
#

Elle met la langue en en ou en fr

slim anvil
#

que tu fais

clangage.langue
queen ocean
#

langage

slim anvil
#

yep

#

du coup ta clé n'est pas bonne

queen ocean
#

yep

dire latch
#

🤔

queen ocean
#

donc clangage.langage

#

et pas clangage.langue

slim anvil
#

et pas .langue j'ai l'oeil 👀

dire latch
#

Je vous dis ça desuite 🙂

#

Non

#

Il m'envois plus rien

queen ocean
#

🤔

dire latch
#

Si vous avez des questions, hésitez pas 🙂

slim anvil
#

remontre ton bout de code pelase

dire latch
#
const Discord = require("discord.js");
const utils = require("../../utils/utils.js");

module.exports.run = async (bot, message, args, bdd, functions) => {
    console.log(message.guild.id)
    bdd.query(`SELECT * FROM langue WHERE langage = 'fr' AND server_id = '${message.guild.id}'`, (err, clangage) => {
        if (err) throw err;
        console.log(clangage)
        if (clangage.langage == "en") return message.channel.send(`Anglais.`)
        if (clangage.langage == "fr") return message.channel.send(`Français.`)
}
    
module.exports.help = {
    name: "langue"
}
slim anvil
#

et la tu reçois plus rien c'est ça ?

dire latch
#

Tout à fais

slim anvil
#

ok tu peux console.log(err) à la place de throw err

#

et me montrer ce que tu recois pour les 2 logs (err et clangage)

dire latch
#

Ok

#

J'obtiens null

slim anvil
#

Oui donc pas d'erreur

#

supprime ton console.log(err) et rajoute juste a la place de l'autre aussi console.log(JSON.stringify(clangage))

#

et montre

dire latch
#

console.log(JSON.stringify(clangage)) à la place de console.log(clangage)

#

?

slim anvil
#

oui

dire latch
queen ocean
#

clangage[0].langage 👀

dire latch
#

Je test et je te dis mdr

slim anvil
#

yes mais tu peux pas juste recevoir un objet directement de ta query ?

#

le LIMIT = 1 te récupère quand meme un tableau avec 1 index ou un objet ? test pour voir ce serait plus propre que le [0]

dire latch
#

Ducoups, pour ta solution @queen ocean , il me dis bien français

#

Mais si je met en anglais par exemple, le bot restart

queen ocean
#

niquel du coup

#

HA

dire latch
#

Donc pas niquel mdr

slim anvil
#

ça te pète une erreur ?

queen ocean
#

ta une erreur ?

dire latch
#

Yep

slim anvil
#

check avant que tu ai bien un [0] avant de faire [0].langage

dire latch
#

Un if (clangage[0]) { ?

slim anvil
#

if (clangage[0] && clangage[0].langage)

dire latch
#

Ok

slim anvil
#

car tu reçois un tableau vide

dire latch
#

Quand c'est définis sur en

#

Quand c'est sur fr

#

ça me met niquel sur français

#

Je comprends pas pourquoi sa fonctionne pour un et pas pour l'autre mdr

slim anvil
#

Il s'est bien update en EN ?

dire latch
#

Yep

slim anvil
#

car si tu le get en EN mais que sur ta bdd il est en fr

#

il te renverra rien

dire latch
slim anvil
#

tu logs quoi deja le clangage ?

dire latch
#

console.log(JSON.stringify(clangage))

slim anvil
#

Bizarre que tu ne reçois rien 🤔

dire latch
#

Ba ouais

#

Mon code:

const Discord = require("discord.js");
const utils = require("../../utils/utils.js");

module.exports.run = async (bot, message, args, bdd, functions) => {
    console.log(message.guild.id)
    bdd.query(`SELECT * FROM langue WHERE langage = 'fr' AND server_id = '${message.guild.id}'`, (err, clangage) => {
        if (err) console.log(err)
        console.log(JSON.stringify(clangage))
        if (clangage[0] && clangage[0].langage) {
        if (clangage[0].langage == "en") return message.channel.send(`Anglais.`)
        if (clangage[0].langage == "fr") return message.channel.send(`Français.`)
        }
    })
}
    
module.exports.help = {
    name: "langue"
}```
slim anvil
#

langage = 'fr'

#

dans ta query, ça ne viendrait pas de ça?

dire latch
#

Ah ba si sûrement mdr

slim anvil
#

Car le reste est good la le problème c'est juste la requete en elle meme

#

maintenant essaye de clean un peu ton code

dire latch
#

Att, je test sans le = 'fr'

slim anvil
#

yep

dire latch
#

Ah ba nan

#

çe me dis plus rien

#
const Discord = require("discord.js");
const utils = require("../../utils/utils.js");

module.exports.run = async (bot, message, args, bdd, functions) => {
    console.log(message.guild.id)
    bdd.query(`SELECT * FROM langue WHERE langage AND server_id = '${message.guild.id}'`, (err, clangage) => {
        if (err) console.log(err)
        console.log(JSON.stringify(clangage))
        if (clangage[0] && clangage[0].langage) {
        if (clangage[0].langage == "en") return message.channel.send(`Anglais.`)
        if (clangage[0].langage == "fr") return message.channel.send(`Français.`)
        }
    })
}
    
module.exports.help = {
    name: "langue"
}```
slim anvil
#

enleve langage AND

dire latch
#

Ok

slim anvil
#

tu es entrain de lui dire "Prend moi toutes les langues ou langage ET server_id = xxxxx"

#

sauf que ton langage != à ton server id ^^

dire latch
#

🤔

#

ça fonctionne nickel 🙂

#

Merci à vous 🙂

#

J'aurai jamais trouver ça solo mdr

slim anvil
#

pas de soucis, finalement tu n'as fais que des erreurs d'inattention hormis le JSON.stringify, fais juste + de relecture ^^

dire latch
#

🙂

dire latch
#

Rebonsoir 🙂

#

J'ai une petite question

#

Pour que je sois que l'owner de discord qui a le droit a une commande

#

C'est bien:

if (!message.guild.owner) {
        message.channel.send("Vous devez être le propriétaire du serveur.")
    }```
slim anvil
#

Yes je crois

violet knot
#

il dois pas remove le ! ?

west plover
#

y a un problème dans ta condition 🤔

plush lava
#

Non le ! Dit "n'est pas"

#

Wait

west plover
#

if ( !( message.guild.ownerID == message.member.id ) )

slim anvil
#

Bah sa condition est bonne finalement

plush lava
#

Euh non

#

Guthen non

slim anvil
#

Le message « vous devez être l’owner »

west plover
#

bah si 🤔

slim anvil
#

juste dans ce cas là tu fais un return de ton send

#

Pour qu’il s’arrête là

plush lava
#

Ui effectivement

dire latch
#

Eh oh

#

Mettez vous d'accords hein mdr

west plover
#

pour moi sa condition fait juste le check de si l'owner de la guild existe

#

mais ça n'a pas de sens

slim anvil
#

Non

plush lava
slim anvil
#

Regarde le message qu’il envoie

#

« Vous devez être l’owner »

west plover
#

bah oé

slim anvil
#

Donc il a raison si !message.guild.owner

#

Donc il return et sa fonction s’arrête là

#

et lui envoie le message d’erreur

#

dans son exemple je te parle

west plover
#

wtf

#

mais message.guild.owner donne juste le membre owner

#

mais c'est tout

plush lava
#

Mais

#

Là c'est avec un if

slim anvil
#

Ah

#

je pensais que c'était si lui été owner

west plover
#

bah oé

dire latch
#

Je veux que si je suis pas l'owner, sa met l'erreur

#

Sinon, sa fais le code 🤷‍♀️

west plover
#

vous êtes teubé wesh kappo

#

if ( !( message.guild.ownerID == message.member.id ) )

plush lava
#

Non

#

Putain mais

slim anvil
#

Yes il a raison guthen

west plover
#

si

dire latch
#

🤔

west plover
#

bah voilà

dire latch
#

Mais arrêter 😦

plush lava
#

J'vais ressortir mon vieux code rien a foutre

west plover
#

Enzo a abdiqué

#

g raison

slim anvil
#

Je pensais que le guild.owner voulait dire "si je suis owner"

#

alos que non il renvoie juste le user qui est owner

#

donc la toi certu

#

sa condition va dire "si il y a pas de owner"

#

sauf que logiquement y en a tjrs un

west plover
#

voilà

#

ça n'a juste aucun sens comme je le disais

#

donc faut revoir ta condition et rajouter un return @dire latch

slim anvil
#

yep

#

le return est important mc pour sortir de ta fonction

#

mais sinon tu peux aussi je pense juste checher que le message.author a le role owner

dire latch
#

Pk un return ?

slim anvil
#

Car si tu return pas

dire latch
#

Je le fais pas comme ça 🙂

#

Je fais avec un else

slim anvil
#

ça ne change rien

plush lava
#

J'avais oublié qu'il fallait mettre un égal a quelque chose oupsi

west plover
#

aba si tu fais avec un else

plush lava
#

En même temps quand tes parents te gueule dessus à chaque fois

slim anvil
#

Meme si tu fais un else

plush lava
#

J'arrive pas a me concentrer stop la

slim anvil
#

tu return ^^

dire latch
#

Yep

slim anvil
#

car si derrière tu as d'autres condition

#

et qu'il entre dedans c'est con

#

pas owner fin du code, pas besoin que le process continue

dire latch
#

Nan tkt

plush lava
#

@west plover gare du Nord maintenant

dire latch
#

J'ai juste un else mdr

west plover
#

Trigone

slim anvil
#

Okep

dire latch
#

J'ai créer un drama juste pour ça sinon ? Mdr

west plover
#

un drama d'aveugles, tqt

plush lava
#

C'est guthen le drama kappo

west plover
plush lava
#

Oe on est aveugle

slim anvil
#

Ah non

west plover
#

g toujours raison, croivez moi

plush lava
#

Ah si

#

On te croive

slim anvil
#

sinon pourquoi tu fais pas un hasPermission('ADMINISTRATOR') direct

#

Car si jamais un jour tu recrutes un autre admin, faudrait qu'il ai les memes droits que toi nop ?

west plover
#

parce qu'il n'est pas forcément owner ? kappo

slim anvil
#

pour ça que je demande dugland

west plover
#

peut-être que c'est une commande à ne pas mettre à la disposition de tous ? kappo

slim anvil
#

pour ça que je demande dugland

plush lava
west plover
#

kaslécouile Enzo kappo

plush lava
#

Enchanté Guthen DuGland

dire latch
#

@slim anvil Car c'est un bot qui est sur plusieurs discords 🤷‍♀️

slim anvil
#

Ah okay

dire latch
#

339 pour être précis 🙂

plush lava
#

Pardon ?

slim anvil
#

ça fait bokou

plush lava
#

J'ai fait un énorme bide a l'époque, 40 serveurs bruh

#

Mon bot existe toujours d'ailleurs

#

Bon oblc

slim anvil
#

ah bah si tu fais des !message.guild.owner on est pas dans la merde hein @west plover kappa

dire latch
#

Mdr

west plover
#

Pas du tout kappo

#

C’est plutôt l’etron du coin kappo

dire latch
plush lava
#

Abadakor

slim anvil
#

ça rend bien

plush lava
#

dire latch
#

🙂 Merci

dire latch
#

Re bonsoir

#

J'ai une autre question

ancient sonnetBOT
#
Citation de ϻ¢Đυ¢к₮Đϻ#5961 posté dans #aide-bots

Cliquez sur 📄 pour accéder au message.

const Discord = require("discord.js");
const utils = require("../../utils/utils.js");

module.exports.run = async (bot, message, args, bdd, functions) => {
    console.log(message.guild.id)
    bdd.query(`SELECT * FROM langue WHERE langage AND server_id = '${message.guild.id}'`, (err, clangage) => {
        if (err) console.log(err)
        console.log(JSON.stringify(clangage))
        if (clangage[0] && clangage[0].langage) {
        if (clangage[0].langage == "en") return message.channel.send(`Anglais.`)
        if (clangage[0].langage == "fr") return message.channel.send(`Français.`)
        }
    })
}
    
module.exports.help = {
    name: "langue"
}```
dire latch
#

Je met un if (!langage[0] && !clangage[0].langage) si aucun langage est défini ?

#

Je regarderai demain vos réponses 🙂

slim anvil
#

tu devrais changer tes conditions dans ce cas et avoir (sorry je suis sur tel donc rendu pas ouf)

if(clangage[0]) {
if(... ‘en’) etc..
} else {
// code block if no data
}

dire latch
#

Re

#

J'ai essayé à ma façon et j'ai réussi

#

Merci quand même

plush lava
#

Il s'est endormi sur son clavier et c'est bon ça marche kappo

slim anvil
#

Oui mais autant finir avec un else que de redéfinir une condition... surtout que:
si !langage[0] il y aura forcément pas de !clangage[0].langage donc le deuxieme argument de la condtion est inutile

dire latch
#

-__-

slim anvil
#

??

dire latch
#

Nan rien tkt

#

J'ai un autre soucis

#

J'ai restart le vps

#

Or qu'avant, j'avais 0 erreur

slim anvil
#

Il est ou ton filter

#

de base tu étais en local c'est ça ? et la tu viens de le passer sur ton serv ?

dire latch
#

Non dutout

#

Faudrait lire 😦

ancient sonnetBOT
#
Citation de ϻ¢Đυ¢к₮Đϻ#5961 posté dans #aide-bots

Cliquez sur 📄 pour accéder au message.

J'ai restart le vps

dire latch
#

Et mon filter est sur mon youtube.js

slim anvil
#

Faudrait lire 😦
par contre je veux bien t'aider mais les piques du genre c'est pas utile

#

Car tu peux très bien restart ton vps une fois l'avoir mis dessus, donc bon

dire latch
#

C'est pas des piques 🤷‍♀️ C'est juste une réalité ce que j'ai dis ...

slim anvil
#

Car tu peux très bien restart ton vps une fois l'avoir mis dessus, donc bon

dire latch
#

Si tu aurais vus mes screens d'aux dessus quand tu m'aidais, tu aurais vus que j'était sur un vps

#

Mais bref

#

Le soucis ne vient pas de ça

slim anvil
#

Et ton fichier youtube.js c'est celui que tu as envoyé + haut ?

dire latch
#

Non dutout

#

Je t'envois le fichier

slim anvil
#

ok merci

dire latch
#

Cadeau

slim anvil
#

Essaye de log avant ton files que tu recois, car si tu peux pas filter c'est qu'il doit etre en undefined

#

rajoute juste une condition dans ce cas if (files && files.length)

dire latch
#

Oui mais avant le restart vps, sa fonctionnais 😦

slim anvil
#

et tu as rien changé, ou modifié sur le nom de tes dossiers ?

#

car là 100% si tu logs le files que tu filter il est null ou undefined

dire latch
#

Non rien changer

#

Sinon, oui, il est sur undefined

slim anvil
#

j'avais eu le meme genre de soucis avec le readdir il doit pas trouver ton dossier le chemin doit etre bon mais parfois non, il vaut mieux utiliser le __dirname

#
  • nom dossier/fichier
dire latch
#

J'en ai trop pour faire comme ça 🤷‍♀️

slim anvil
#

ah non mais au lieu de ./.....etc tu mets juste __dirname

#

au moins t'es sur que si tu changes un jour le fichier de dossier etc ce sera géré logiquement

dire latch
#

Ba ouais mais j'ai pas que ce bot quoi après

#

Puis je voudrais bien utiliser la méthode que j'utilise actuellement

dire latch
#

Une solution svp 😦

slim anvil
#

J'ai que celle donné ^^ sorry

dire latch
#

Jvais attendre les autres alors 🙂 Merci quand même

slim anvil
#

Mais sinon la bonne manière de faire est __dirname, la différence entre __dirname et ./ c'est que __dirname va chercher sur le répertoire actuel, alors que fsread + ./ va aller chercher directement sur la racine de ton vps, par ex /home/usr/ etc d'où le problème que tu rencontres

dire latch
#

Ba pourquoi il fonctionnais avant 🤔

slim anvil
#

Je pourrais pas te dire, mais j'ai déjà eu le meme soucis j'ai du passé par __dirname car en local aucun soucis il me trouvait bien la bonne racine, mais pas sur le serveur

#

La bonne pratique est de use les chemins type ./ que dans les requires car de lui même il va aller chercher au bon endroit

#

Mais normalement ça ne devrait rien te changer au code, juste remplacer ton ./ par __dirname ça ne devrait rien impacter logiquement 🤔

dire latch
#

Ici ? fs.readdir("__dirname", (err, files) => {

slim anvil
#

nop ça fonctionne différement

#

enfin c'est quasi ça, je crois que c'est :

#

fs.readdir(`${__dirname}/commands/channel`, (err, files...

#

Si c'est pas bon c'est que le chemin n'est pas le bon mais on sera pas loin

dire latch
west plover
#

alors

#

explique moi donc

dire latch
#

Et je ne comprends pas, car avant, tout fonctionnais nickel 🙂

west plover
#

si t'as plusieurs bots, c'est que t'as plusieurs dossiers à la racine de ton VPS, right ?

dire latch
#

Dans chaque dossier séparer oui

west plover
#

et donc ./ te ramène à la racine du VPS ?

dire latch
#

Non

slim anvil
#

mais le __dirname à fonctionner là nop ? je vois els fichiers chargé plus haut, l'erreur viens du jsfiles là

dire latch
#

Mes bots sont dans le dossier /home

#

Oui @slim anvil

slim anvil
#

Du coup

#

faut que tu remplaces tout tes ./ par le __dirname/ suivi du chemin

dire latch
slim anvil
#

car comme tu vois il a bien récupérer l'url là /home/YoutubeLife/youtube.js

#

là ou avant nop

west plover
#

avec le ./, ça faisais /home/commands/blabla et ça oubliait le YoutubeLife, no ?

#

donc la soluce d'Enzo est good du coup

dire latch
#

Ba nan 🤔

#

Comme le youtube.js est dans /home/YouTubeLife

#

Il load dans ./commands/channel nan ?

slim anvil
#

nop remplace ./ par __dirname

#

comme le fs.readdir

west plover
#

le dossier commands est dans YouTubeLife ?

dire latch
#

Oui

slim anvil
#

bon allez bon appp

west plover
#

t'as pas besoin de ./ alors 🤔

dire latch
west plover
#

require( "/commands/blabla" )

#

ah nan j'dis n'imp

dire latch
#

Yes mais même

#

C'est le filter qui pose problème mdr

plush lava
#

Et si on met le chemin d'accès exact ?

#

Enfin en entier

west plover
#

pour moi, la soluce d'Enzo à l'air correcte 🤷‍♀️

plush lava
#

C'est aussi ce que j'avais fait ça avait marcher avec mon ancien VPS

#

Tu as mis quoi dans ton command handler pour ton chemin d'accès @dire latch ?

dire latch
#

Re

#

Ducoups problème résolu

#

Enfête

#

Le soucis c'est ce que je faisais pm2 start /home/youtubelife/YouTube.js

#

Or qu'il fallait avant faire cd /home/youtubelife

#

Puis pm2 start YouTube.js

slim anvil
#

bon bah top

dire latch
#

Yes

dire latch
#

Rebonjour 🙂

#

J'ai un petit soucis 🙂

#

J'ai testé une commande de music (le play.js) et ça ne fonctionne pas même en suivant le tuto ...

#
const ytdl = require("ytdl-core");

module.exports.run = async (bot, message, args) => {
  if (!message.member.voiceChannel) return message.channel.send("Connectez-vous à un salon vocal.");
  if (message.guild.me.voiceChannel) return message.channel.send("Le bot est déjà connecté dans un salon vocal.");
  if (!args[0]) return message.channel.send("Merci de mettre un lien Youtube.");
  const validate = await ytdl.validateURL(args[0]);
  if (!validate) return message.channel.send("Le lien n'est pas un lien Youtube.");
  const info = await ytdl.getInfo(args[0]);
  const connection = await message.member.voiceChannel.join();
  const dispatcher = await connection.playStream(
    ytdl(args[0], { filter : 'audioonly' })
  );
  message.channel.send(`Musique ajoutée: ${info.title}`);
};

module.exports.help = {
  name: "play"
};```
#

Le code

plush lava
#

Dit a ton destin stp d'arrêter de te causer des problèmes

dire latch
#

Mdr

#

Sinon, vous savez faire une commande music et/ou m'aider ?

plush lava
#

C'est pas un truc de Jor-s v-deo ?

dire latch
#

De ?

#

J'ai pas compris @plush lava

rough tide
#

Bonjour !
J'ai un problème avec la séparation de mon code
J'ai suivi un tutoriel utilisant fs mais quand j'éffectue ma commande ça ne fait absolument rien
si jamais , voilà mon code
index.js :

#
const discord = require("discord.js");
const fs = require('fs');
const Client = new discord.Client();
const warns = JSON.parse(fs.readFileSync('./warns.json'));

Client.commands = new discord.Collection();

fs.readdir('./commands/', (err, files) => {
    if(err) console.log(err)

    let jsfile = files.filter(f => f.split('.').pop() === 'js')
    if(jsfile.length <= 0) {
        console.log("Erreur ! Je ne trouve pas la commande !");
        return;
    }

    jsfile.forEach((f, i) => {
        let props = require(`./commands/${f}`)
        Client.commands.set(props.help.name, props);
    });
}

const PREFIX = "!";
const TOKEN = "token";
Client.on('message', async message => {
    if (message.author.Client) return;
    if (message.content.startsWith(PREFIX)) return;
    let args = message.content.slice(PREFIX.length).trim().split(/ +/g);
    let commands = args.shift().toLowerCase();

    let commandfile = Client.commands.get(commands);
    if(commandfile) commandfile.run(Client, message, args);


});
#

Le code d'une de mes commandes , commande help :

#
const discord = require("discord.js");

module.exports.run = async (Client, message,) => {
    let HelpEmbed = new discord.RichEmbed()
                    .setColor("#00BFFF")
                    .setAuthor("Help | Commandes disponibles", Client.user.displayAvatarURL)
                    .setDescription("Prefix : " + PREFIX)
                    .addField("Help", "Affiche ce menu", true)
                    .addField("Modération", "kick, ban, clear, warn, unwarn, infractions, mute,", true)
                    .setFooter("MatixRP | MatixBot ")
                message.channel.send(HelpEmbed)

}
module.exports.help = {
    name: "help"
}
#

Merci d'avance pour vos réponses !

plush lava
#

oof code open source 👀

#

Alors uh

dire latch
#

🤷‍♀️

plush lava
#

@dire latch Je t'avais demandé si ton code en gros venait de github ou d'une personne nommé "joris vidéo"

dire latch
#

Oui et non

plush lava
#

abamaird c pa joris

#

Ok 🙂

dire latch
#

Pourquoi ?

plush lava
#

Parce que ton code me dit qlq chose

#

d'un code open source connu

#

@rough tide Je pense que cela vient de ceci :
let commands = args.shift().toLowerCase();

dire latch
#

Dac

#

Sinon, tu pourrais m'aidés ? 🤔 @plush lava

plush lava
#

ah mais j'avais pas vu l'erreur

#

il trouve pas ffmpeg, tu es sûr d'avoir installé le module ?

#

ffmpeg-binaries

#
npm install ffmpeg-binaries```
dire latch
#

Normalement, il était mis, jvais reinstaller et restart

#

Yes

#

C'était ça

#

Jcroyais l'avoir installé

#

Mais maintenant, j'ai une nouvelle erreur

#

Toujours le même code:

const ytdl = require("ytdl-core");

module.exports.run = async (bot, message, args) => {
  if (!message.member.voiceChannel) return message.channel.send("Connectez-vous à un salon vocal.");
  if (message.guild.me.voiceChannel) return message.channel.send("Le bot est déjà connecté dans un salon vocal.");
  if (!args[0]) return message.channel.send("Merci de mettre un lien Youtube.");
  const validate = await ytdl.validateURL(args[0]);
  if (!validate) return message.channel.send("Le lien n'est pas un lien Youtube.");
  const info = await ytdl.getInfo(args[0]);
  const connection = await message.member.voiceChannel.join();
  const dispatcher = await connection.playStream(
    ytdl(args[0], { filter : 'audioonly' })
  );
  message.channel.send(`Musique ajoutée: ${info.title}`);
};

module.exports.help = {
  name: "play"
};```
rough tide
#

@plush lava c'est a dire ?

plush lava
#

@dire latch 😂 faut que tu installe aussi un opus-engine regarde

dire latch
#

Oo

plush lava
#

En résumé

#

To get started, make sure you have:

FFmpeg - npm install ffmpeg-binaries
an opus encoder, choose one from below:
npm install opusscript
npm install node-opus
a good network connection

dire latch
#

Il le dis pas dans son tuto 🤷‍♀️

plush lava
#

@rough tide et bien, ce n'est pas tout à fait ça ta commande ne marchera pas comme ça ( flemme d'expliquer en détail j'suis concentré sur un autre truc )

#

avec le shift ça ne peut pas marcher pour executer une commande 👀

slim anvil
#

je vois pas le rapport avec le shift

rough tide
#

donc je met quoi ?

slim anvil
#

ça sert juste a récupérer le premier élement d'un tableau

plush lava
#

j'vois pas de tableau moi

slim anvil
#

bah args

plush lava
#

Bah ui il a ajouté à args .shift

#

let commands = args.shift().toLowerCase();

slim anvil
#

c'est pas un array args ?

#

ah bah oui

plush lava
#

uh

rough tide
#

non

slim anvil
#

Bah tu shift sur un array Hella

plush lava
#

Att j'vérifie

slim anvil
#

pas sur une string

plush lava
#

let args = message.content.slice(PREFIX.length).trim().split(/ +/g);

#

C'est un string là non ?

rough tide
#

oui :/

slim anvil
#

Ouais j'ai l'impression

#

d'ailleurs .trim puis .split(/ +/g);

#

ca revient au meme

plush lava
#

ui cé kwa trim ?

slim anvil
#

trim supprime deja les espaces

plush lava
#

Ah c'est pareil

#

Ah dakor

slim anvil
#

mais bon c'est pas très grave ça au pire

rough tide
#

mais du coup je fais quoi ?

plush lava
#

Enlève déjà .shift à args

slim anvil
#

Tu veux récuperer le premier élement de ta string ?

#

tu peux juste args[0] sur ta string

#

je crois qu'il va considérer ta string en array et donc récupérer le premier élement mais pas sur là

rough tide
#

pour command je met quoi du coup ?

plush lava
#

Ui cé ça Enzo

rough tide
#

message.args[0] ?

slim anvil
#

oui

#

console.log ton args

#

et check si c'est good

rough tide
#

ça marche

#

je log quoi ?

#

n'importe ?

slim anvil
#

sinon tu args.split(' ').shift()

#

bah ton args, voir si tu récupères bien le premier mot du coup

plush lava
rough tide
#

okép merci , j'essaye

#

c'est cque j'avais mis a la base

plush lava
#

Bah ça marche tjr jcrois non ?

slim anvil
#

c'est redondant ton code du coup certu

rough tide
#

surement mais il me semble que ça marchait pas

slim anvil
#

tu peux tout faire en une fois quoi

plush lava
#

ui c'est du code open source c dla maird

#

Je sais mais j'y ai pas touché depuis quelques années 👀

rough tide
plush lava
#

abaoof

rough tide
#

certurix ton code est bon ?

dire latch
#

RE les amis mdr

#

Ducoups, tout fonctionne

#

Sauf, le bot ne joue pas la music 😦

plush lava
#

@dire latch Tu as un truc dans la console quand tu execute la commande et que le bot ne joue pas de musique ?

#

@rough tide Normalement oui, je lance mon bot pour voir 👀

dire latch
#

Nop rien

#

Aucune erreur console

#

Il me dis bien la music en cours

plush lava
#

Mon bot s'est bien allumé avec mon code actuel @rough tide donc ça marche bien

#

il ne s'allume pas si y'a un problème

rough tide
#

enfaite mon bot s'allume , le pb n'est pas la

plush lava
rough tide
#

il réagit juste pas a ma commande

plush lava
#

Oui je sais

#

Bah regarde 👀

dire latch
#

@plush lava Tu as une solution 🤔

rough tide
#

bon , j'ai mis un console.log a la fin de ma commande help

#

ici

#

et il ne s'affiche pas

#

donc le pb c'est juste que la commande ne se lance pas

plush lava
#

Repost ton code stp

rough tide
#

donc le bot ne comprend pas qu'il doit lancer cette commande

plush lava
#

Y'a trop de messages 👀

dire latch
#

Mdr

rough tide
#

index.js + commande ?

plush lava
#

Sinon les deux on fait ça en MP avec partage d'écran

#

ça évitera de spam et ce sera plus simple 👀

#

et puis vous avez des trucs bizarres hein

dire latch
#

Keske

#

Tu nous appelles ?

plush lava
#

Faut que vous m'ajoutiez en ami 🙂

dire latch
#

Je tes déjà invité 🙂

rough tide
#
const discord = require("discord.js");
const fs = require('fs');
const Client = new discord.Client();
const warns = JSON.parse(fs.readFileSync('./warns.json'));

Client.commands = new discord.Collection();

fs.readdir('./commands/', (err, files) => {
    if(err) console.log(err)

    let jsfile = files.filter(f => f.split('.').pop() === 'js')
    if(jsfile.length <= 0) {
        console.log("Erreur ! Je ne trouve pas la commande !");
        return;
    }

    jsfile.forEach((f, i) => {
        let props = require(`./commands/${f}`)
        Client.commands.set(props.help.name, props);
    });
}

const PREFIX = "!";
const TOKEN = "token";
Client.on('message', async message => {
    if (message.author.Client) return;
    if (message.content.startsWith(PREFIX)) return;
let messageArray = message.content.split(" ");
    let command = messageArray[0]
    let args = messageArray.slice(1);
    
    let commandfile = Client.commands.get(command);
    if(commandfile) commandfile.run(Client, message, args);


});
#

ça c'est mon code index

plush lava
#

On peut le faire via partage d'écran si tu le souhaite @rough tide

#

ce sera plus simple

#

👀

rough tide
#

Ouep , je trouve aussi

plush lava
#

accepte ma demande d'ami

weak grove
#

Salut, je ne trouve pas de moyen d'intégrer une api pour indiquer le nombre de joueur connecté sur mon bot, j'ai essayé avec un peu tout mais impossible cela ne marche pas, aurais vous une solution ?

slim anvil
#

Bah ton serveur dispose d’une api pour get les infos ? Un peu comme MTX par exemple

weak grove
#

Yep

west plover
#

C’est quoi ? Un serveur gmod ?

#

Si un serveur utilisant Steam, tu peux le faire en utilisant un module NodeJS, comme steam-server-status

bright pecan
#

Bonjour, je suis entrain de créer mon bot, et actuellement je fait une fonction pour clear le chat, donc sa clear bien le chat mais je voudrais que sa supprime ensuite le message qui à été mis

message.channel.send(`**${messages.size}** messages ont été supprimés !`)
message.delete();

J'ai fait sa mais sa m'affiche une erreur

west plover
#

Go envoyer l’erreur

bright pecan
#

(node:7864) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Message
at c:\Users\claud\Desktop\bot_paradise\node_modules\discord.js\src\client\rest\RequestHandlers\Sequential.js:85:15
at c:\Users\claud\Desktop\bot_paradise\node_modules\snekfetch\src\index.js:215:21
at processTicksAndRejections (internal/process/task_queues.js:93:5)
warning.js:27
(node:7864) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
warning.js:27
(node:7864) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

#

x)

#

Et mon code clear.js c'est sa

module.exports.run = (client, message, args) => {
    if (!message.guild.member(message.author).hasPermission('MANAGE_MESSAGES')) { return message.channel.send('Vous n\'avez pas les permissions !'); }
    if (!args[0]) { return message.channel.send('Vous devez spécifier un nombre de messages à supprimer !'); }
    else if (isNaN(args[0])) { return message.channel.send('Veuillez spécifier un nombre !'); }
                                                                              
        message.channel.bulkDelete(args[0])
            .then((messages) => {
                message.channel.send(`**${messages.size}** messages ont été supprimés !`)
                message.delete();
            });
};```
#

Ok finalement c'est bon j'ai trouver merci quand même

bright pecan
#

Comment je pourrait faire pour relier mon bot a mon serveur pour obtenir des info tels que le nombre du joueurs, le status, le ping, la map etc etc

slim anvil
#

tu es chez mtx ?

#

enfin peu importe, mais tu peux juste faire des requetes sur une api pour get les infos souhaités

#

guthen a envoyé un package hier

ancient sonnetBOT
#
Citation de Guthen#1178 posté dans #aide-bots

Cliquez sur 📄 pour accéder au message.

Si un serveur utilisant Steam, tu peux le faire en utilisant un module NodeJS, comme steam-server-status

bright pecan
#

A merci vous gérer

bright pecan
#

@west plover moyen que tu trouve pk sa marche pas stp, psk la je suis perdu x(

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

var steamServerStatus = require('steam-server-status');

steamServerStatus.getServerStatus(
    '149.91.80.164', 27016, function(serverInfo) {
        if (serverInfo.error) {
            console.log(serverInfo.error);
        } else {
            let sicon = message.guild.iconURL;
            let serverembed = new Discord.RichEmbed()
            console.log("game: " + serverInfo.gameName);
            console.log("server name: " + serverInfo.serverName);
            console.log("players: " + serverInfo.numberOfPlayers + "/" + serverInfo.maxNumberOfPlayers)
            .setDescription("Server Information")
            .setColor("#15f153")
            .addField("game: " + serverInfo.gameName)
            .addField("server name: " + serverInfo.serverName)
            .addField("players: " + serverInfo.numberOfPlayers + "/" + serverInfo.maxNumberOfPlayers);

            message.channel.send(serverembed);
        }
});

module.exports.help = {
  name: "serverstatus"
}```
west plover
#

Bah tu l’exécute directement au lieu de l’ajouter dans ton système de commande thinkgeometric

bright pecan
#

AH pas bete je vais test

#

ReferenceError: message is not defined
at c:\Users\claud\Desktop\bot_paradise\index.js:56:25
at Socket.<anonymous> (c:\Users\claud\Desktop\bot_paradise\node_modules\steam-server-status\lib\steam-server-status.js:23:9)
at Socket.emit (events.js:210:5)
at UDP.onMessage [as onmessage] (dgram.js:861:8)

#
steamServerStatus.getServerStatus(
    '149.91.80.164', 27016, function(serverInfo) {
        if (serverInfo.error) {
            console.log(serverInfo.error);
        } else {
            let sicon = message.guild.iconURL;
            let serverembed = new Discord.RichEmbed()
            .setDescription("Server Information")
            .setColor("#15f153")
            .addField("game: " + serverInfo.gameName)
            .addField("server name: " + serverInfo.serverName)
            .addField("players: " + serverInfo.numberOfPlayers + "/" + serverInfo.maxNumberOfPlayers);

            message.channel.send(serverembed);
        }
});

module.exports.help = {
  name: "serverstatus"
}```
#

J'ai mis sa et sa m'affiche l'erreur juste au dessus

slim anvil
#

l'erreur est explicite

#

a ton avis

bright pecan
#

Je vient de débuter donc, je sais pas trop pk

#

SA vient sa

#

let sicon = message.guild.iconURL;
let serverembed = new Discord.RichEmbed()

#

déjà

slim anvil
#

Quand on débute on commence peut etre par avoir les bases en JS ce serait plus pratique je pense 🤔

#

ton erreur vient juste du fait que message est défini nul part

#

message is not defined

bright pecan
#

Ah oui merde j'avais pas vue la première ligne en faite c'est bon c'est régler

dire latch
#

Hey

#

Il y a quelqu'un ? 🙂

#

J'ai un petit soucis

#

Quand je fais ceci:

bdd.query(`SELECT * FROM emojis WHERE user_id = '${message.author.id}'`, (err, lemojis) => {
  if (!lemojis[0].emojis) {
#

Il me dis que emojis est est pas définis

slim anvil
#

Déjà regarde ce que tu reçois

#

Et tu dois JSON.parse ton retour de requête

dire latch
#

Dac

#

Je te ferai ça demain ducoups

rough tide
#

Bonsoir , je suis actuellement entrain de coder une commande de bingo , en gros , on fait /bingo nombre maximal , le bot prend un nombre entre 1 et nombre maximal , si quelqu'un écris ce nombre , il gagne. Sauf que , quand je fais /bingo 100 , il ne se passe absolument rien. Quelqu'un pourrais m'aider ? Merci !

#
Client.on("message", message => {
    if (message.content === PREFIX + "bingo") {
        let messageArray = message.content.split(" ");
        let args = messageArray.slice(1);
        if (!message.member.hasPermission('ADMINISTRATOR')) return message.channel.send("❌ | Vous n'avez pas la permission d'effectuer cette commande")
        let Bingo = args.join(" ")
        if (!Bingo) return message.channel.send("Veuillez indiquez un nombre maximal");
        let BingoNombre = Bingo[Math.floor(Math.random() * Bingo)]
        if (BingoNombre) message.channel.send("Le bingo a été démarré !")
        console.log(BingoNombre)
        Client.on("message", message => {
            if (message.content === BingoNombre) {
                message.channel.send(`Bien joué à ${message.author} qui à trouvé le bon nombre ! C'était ${BingoNombre} !`);
            }
            
        })
 }

    
   
})
timid loom
#

À la place de message.content === PREFIX + "bingo" dans ta condition, essaye avec message.content.startsWith(PREFIX + 'bingo')

#

@rough tide

rough tide
#

ça viens pas de la

#

psk quand je fais /bingo ca me dit "Veuillez indiquez un nombre maximal"

#

mais quand je l'indique , bh ca fais rien

plush lava
#

tu mets un event dans un autre event wtf ?

#

Normal que ton code ne marche pas

slim anvil
#

Non mais @rough tide Taink a raison

#

Oui quand tu fais /bingo la commande fonctionne car ta condition est bonne

#

mais quand tu l'indique elle l'est plus

#

donc remplace par startsWith

rough tide
#

Bonsoir !

#

Encore un soucis avec cette commande de bingo

#
module.exports.run = async (Client, message, args,) => {
    if(!message.member.hasPermission('ADMINISTRATOR')) return message.channel.send(":x: Vous n'avez pas la permission d'effectuer cette commande")
    let bingo = args.join(" ")
    if (!bingo) return message.channel.send(":x: Veuillez indiquez un nombre maximal.")
let random = Math.floor(Math.random() *bingo)
message.channel.send(`:CheckOui: Le bingo viens d'être lancé par ${message.author.username}#${message.author.discriminator}. Trouvez un nombre entre **0 et ${bingo}**`).then(m => {
  message.author.send(`:CheckOui: Le nombre choisi est : ${random}`)
  console.log(`Le nombre choisi est ${random}`)
    message.channel.awaitMessages(response => response.content === `${random}`, {
      max: 1,
   time: 3600000,
   errors: ['time'],
  }) .then((collected) => {
      message.channel.send(`:CheckOui: ${message.author} à trouvé le bon nombre , qui était ${random} ! Bravo a lui !`)
    }).catch(() => {
      message.channel.send("Le temps imparti de 60 minutes est terminé, partie terminée")
}, 3600000);
})
}
#

Ici , message.channel.send(`:checkoui: **${message.author} **

#

message.author correspond a l'auteur de la commande /bingo , pas de la réponse

#

Je dois mettre quoi pour que ça soit celui de la réponse ?

queen ocean
#

response.author correspond a celui qui a envoyé la bonne réponse

rough tide
#

Il me semble que j'ai essayer mais ça n'as pas marcher

rough tide
#

Nop , ça marche pas

#

qlq aurais une idée svp ?

slim anvil
#

console.log juste ton message, et regarde l'objet que tu recois

queen ocean
#

mhmm ok my bad

#

collected.author plutot 🤔

#

et si pas ca, go log ton collected

rough tide
#

toujours pas , att le log mon collected

queen ocean
#

collected.Entries.first().value.author 🤔

rough tide
#

je test

#

Toujours pas

#

jsuis perdu thinkintense

slim anvil
#

fais un collected[0] en console.log pour vwèr

rough tide
#

je test ça

rough tide
#

toujours pas de solution svp ?

slim anvil
#

t'as testé ?

rough tide
#

att jle refais

slim anvil
#

yes et montre ton log

rough tide
#

undfined

slim anvil
#

T’as TV pour qu’on puisse tester rapidement quelques trucs ?

rough tide
#

tv ?

slim anvil
#

TeamViewer

rough tide
#

ah j'ss pas

#

partage d'écran c'est pas plus simple ?

slim anvil
#

On voit pas grand chose sur discord la qualité est plutôt à chier

rough tide
#

c'est mieux pour moi désolé, j'ai des fichiers vrmt persos sur mon pc xd

slim anvil
#

Je finis ma game et j’arrive

rough tide
#

parfait merci

slim anvil
#

im here

rough tide
#

parfaiy

#

*parfait

slim anvil
#

go aide voc bots ?

novel heath
#

Hey, je sais pas si c'est vraiment ici qu'il faut demander mais connaissais vous un bot de statut de serveur gmod , n'utilisant pas l'API mtxserv ?

queen ocean
#

Si tu veux le faire toi même, tu peux utiliser steam-server-status

weak grove
#

Hello, j'ai un problème avec steam-server-status, j'aimerais envoyez les information du serveur dans un channel précis, sauf que quand je démarre le serveur il ne comrpends pas le "get"

steamServerStatus.getServerStatus(
    '149.202.102.59', 27015, function(serverInfo) {
        if (serverInfo.error) {
            console.log(serverInfo.error);
        } else {
            console.channels.get("578904930757115914").send( "Jeu: " + serverInfo.gameName );
            console.channels.get("578904930757115914").send( "Nom: " + serverInfo.serverName );
            console.channels.get("578904930757115914").send( "Joueurs: " + serverInfo.numberOfPlayers + "/" + serverInfo.maxNumberOfPlayers );
        }
});
plush lava
#

console.channels oof

#

non du coup ça ne marche pas 🙂

#

client.channels.get

#

client c'est la variable que tu as assigné a ton new Discord.Client() dans ton fichier

weak grove
#

ah ouais mais maintenant ça ne veux pas envoyez le send

#
root@3115 /home/vlife-bot # nodejs index.js
/home/vlife-bot/index.js:45
                        client.channels.get("578904930757115914").send( "Jeu: " + serverInfo.gameName );
                                                                 ^

TypeError: Cannot read property 'send' of undefined
    at /home/vlife-bot/index.js:45:45
    at Socket.<anonymous> (/home/vlife-bot/node_modules/steam-server-status/lib/steam-server-status.js:23:9)
    at Socket.emit (events.js:210:5)
    at UDP.onMessage [as onmessage] (dgram.js:861:8)
plush lava
#

J'avais oublié ça wait

#

jregarde dans mon code ça ira plus vite flemme d'aller dans la doc

weak grove
#

ok

plush lava
#

Alors du coup c'est pas get mais find x)

#

et normalement ça marchera

weak grove
#

mhhh

#

voici mon code

#
steamServerStatus.getServerStatus(
    '149.202.102.59', 27015, function(serverInfo) {
        if (serverInfo.error) {
            console.log(serverInfo.error);
        } else {
            client.channels.find("578904930757115914").send( "Jeu: " + serverInfo.gameName );
            client.channels.find("578904930757115914").send( "Nom: " + serverInfo.serverName );
            client.channels.find("578904930757115914").send( "Joueurs: " + serverInfo.numberOfPlayers + "/" + serverInfo.maxNumberOfPlayers );    
        }
});
plush lava
#

hihi nice je sais pas lire

#

Du coup faudra m'acheter des lunettes

#

Donc euh

spring dock
#

yes

plush lava
#

client.channels.find("id","578904930757115914")

weak grove
#

le send ne remarche :/

plush lava
#

keske

#

Erreur?

weak grove
#
root@3115 /home/vlife-bot # nodejs index.js
configuration.json: loaded !
role_reactions.json: loaded !
/home/vlife-bot/index.js:45
                        client.channels.find("id","578904930757115914").send( "Jeu: " + serverInfo.gameName );
                                                                       ^

TypeError: Cannot read property 'send' of null
    at /home/vlife-bot/index.js:45:51
    at Socket.<anonymous> (/home/vlife-bot/node_modules/steam-server-status/lib/steam-server-status.js:23:9)
    at Socket.emit (events.js:210:5)
    at UDP.onMessage [as onmessage] (dgram.js:861:8)
plush lava
#

oh l'suicide

#

C'est à cause des quotes ? 🤔

#

Je galère sur un truc facile ça prouve vraiment mon utilité ici

weak grove
#

😂

plush lava
#

Ok c'est à cause des quotes

#

Remplace les " " par ' '

weak grove
#

ok

#

sa ne marche pas non plus

plush lava
#

Ok j'prend une corde j'reviens

#

Ta une erreur ?

#

Ou c'est tjr la même ?

weak grove
#

root@3115 /home/vlife-bot # nodejs index.js
configuration.json: loaded !
role_reactions.json: loaded !
/home/vlife-bot/index.js:45
                        client.channels.find('id','578904930757115914').send( 'Jeu: ' + serverInfo.gameName );
                                                                       ^

TypeError: Cannot read property 'send' of null
    at /home/vlife-bot/index.js:45:51
    at Socket.<anonymous> (/home/vlife-bot/node_modules/steam-server-status/lib/steam-server-status.js:23:9)
    at Socket.emit (events.js:210:5)
    at UDP.onMessage [as onmessage] (dgram.js:861:8)
#

la même

plush lava
weak grove
#

ont peu pas remplacer le send par autre chose au pire ?

plush lava
#

mets pas ça hein

#

Euh non justement mdr

weak grove
#

ah merde

plush lava
#

le send sert à envoyé

#

Tu as mis ton truc dans un event ?

weak grove
#

nop

plush lava
#

Ah bah aussi

weak grove
#

et je pense d'ailleurs que sa vient de ça

plush lava
#

🤦

#

Bah oui mdr

weak grove
#

mais du-coup je fait comment avec mon code

plush lava
#

.send provient de message si dans l'event y'a pas message ça marche pas

#

Euh

weak grove
#
steamServerStatus.getServerStatus(
    '149.202.102.59', 27015, function(serverInfo) {
        if (serverInfo.error) {
            console.log(serverInfo.error);
        } else {
            client.channels.find('id','578904930757115914').send( 'Jeu: ' + serverInfo.gameName );
            client.channels.find('id','578904930757115914').send( 'Nom: ' + serverInfo.serverName );
            client.channels.find('id','578904930757115914').send( 'Joueurs: ' + serverInfo.numberOfPlayers + '/' + serverInfo.maxNumberOfPlayers );    
        }
});
#

je ne peux pas mettre steamserrverstatus dans un event

plush lava
#

A quel condition tu veux que ça s'envoi ?

weak grove
#

quand le serveur s'allume

#

et après j'aimerais faire avec une commande mais je pense que ca va être simple :/

plush lava
#

Quand le serveur s'allume ? Oula alors euh je pense pas que ce soit possible 🤔

#

Oui une commande c'est possible

weak grove
#

bah au pire dans une commande

#

ouais voilà

plush lava
#

client.on('message', message {
// Ton code
});

weak grove
#

ca va marcher avec ça ?
steamServerStatus.getServerStatus(

plush lava
#

non

#

Ah

#

Wait

#

Au pire tu veux pas venir mp ? Ce sera beaucoup plus simple pour moi de t'aider

weak grove
#

yep

plush lava
#

avec partage d'écran

rough tide
#

@weak grove j'ai fait la meme commande

#

un peu en retard mais si tu as besoin ^^

weak grove
#

mhhh intéressant, tu a fait la commande avec un embed ?

rough tide
#

Sinon quelqu'un serais dispo pour m'aider ? J'ai un tt petit pb

slim anvil
#

??

plush lava
#

Faudrait expliquer ton problème sinon on risque pas de t'aider

rough tide
#

je l'ai reglé ^^ juste aprés , c'était débile

surreal sparrow
#

Salut est ce quelqu’un pourrais m’expliquer pour faire fonctionner un code svp

fringe wyvern
slim anvil
#

Sinon donne ton problème direct

dire latch
#

Hey

#

J'aimerai que quand on fais une commande, sa ajoute 1 sur mon json

#
const Discord = require('discord.js');
const prefix = '!';

const low = require('lowdb')
const FileSync = require('lowdb/adapters/FileSync')
const adapter = new FileSync('./commands.json')
const db = low(adapter)

let cooldown = new Set();

db.defaults({
    all: []
}).write()

module.exports = (client, message) => {
    let messageArray = message.content.split(" ");
    let args = messageArray.slice(1);
    if (message.content.startsWith(prefix)) {
        let cmd = messageArray[0];
        let commandfile = client.commands.get(cmd.slice(prefix.length));
        if (!commandfile) return;
            commandfile.run(client, message, args);
            if (db.get('all').find({
                cmd: 1
                }).value()) {
                } else {
                    db.get('all').push({
                        cmd: 1
                        }).write()
                    db.get("all").value().push({cmd: +1})
                    db.get("all").value().push({cmd: "+1"})
                    db.get("all").push({cmd: +1}).value()
                    db.get("all").push({cmd: "+1"}).value()
            console.log(db.get("all").value())
            console.log(db.get("all").find("cmd").value())
}}
    console.log(db.get("all").value())
}```
#

Le code

rough tide
#

Bonsoir,

J'aimerais avoir des roles pour notifier des membres , or , cela veut dire que n'importe qui pourras ping ces roles.

J'ai donc penser a une commande /ping , qui débloquerais la permission mentionnable , mentionnerais le role puis rebloqueras la perm. Or , la permission n'existe pas. Il n'y a pas d'autre moyen de faire ça ?
https://discordapp.com/developers/docs/topics/permissions

Discord Developer Portal

Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.

#

@dire latch bh tu édit ton rajoute 1 a ton json pdt l'éxécution de la commande

#

en utilisant fs

dire latch
#

ça me dis vachement comment faire 🤔

plush lava
#

@rough tide il y a plus simple, tu le fait directement via le bot. Ce sera le bot qui va mentionner le rôle seulement si l'auteur de la commande est un staff

rough tide
#

@plush lava je sais , sauf que du cp tt lmonde peut mentionner le role

plush lava
#

Non, si tu ajoute une condition dans la commande qui dit que si l'auteur du message est un membre du staff ( tu peux le faire via soit un role soit une permission ) alors on execute la commande sinon on fait rien

west plover
#

Non mais

#

En dehors du bot

#

Tu pourras toujours mentionner le rôle

plush lava
#

bah suffit de désactiver pour les membres la permission pour mentionner le role

#

le bot peut le mentionner même si il n'a pas la permission 👀

timid loom
#

Non @plush lava, le rôle est "pingable" par tout le monde si il est "pingable" par une personne : je dois faire un système similaire pour #gaming-news car autrement le rôle des jeux gratuits peut être ping par n'importe qui

west plover
#

faudrait que le bot get tous les users et les pings un par un dans un message puis l'éditer après pour enlever tous le superflus, mais ça pourrait dépasser la limite s'il y a trop de gens thinkgeometric

queen ocean
west plover
#

aoé

#

malinx le lynx

slim anvil
#

c'est pas qu'un physique @queen ocean je vous avais prévenu, il est redoutable.... cachez vos femelles, beau, intelligent, indulgent, malin

plush lava
#

attendez j'vous montre un truc 👀

queen ocean
#

🤔

slim anvil
#

j'allais edit jte jure wola zaros

#

me puni pas

queen ocean
#

!ban @slim anvil

slim anvil
#

:(((((

plush lava
#

bon bah j'vous montre pas mon bot est cassé j'ai la flemme de le réparer

rough tide
#

merci :)

#

du coup comment je peux mentionner un role ?

west plover
#

comme Zaros l'a montré 🤷‍♀️

#

tu actives la possibilité de mentionner le role avant d'envoyer ton message et tu le désactives juste après

rough tide
#

parfait merci

#

et juste comment on peut vérifier que quelqu'un a un role ?

west plover
#

member.hasRole je crois

#

go wiki

dire latch
#

Une solution pour moi 🤔

ancient sonnetBOT
#
Citation de ϻ¢Đυ¢к₮Đϻ#5961 posté dans #aide-bots

Cliquez sur 📄 pour accéder au message.

Hey

slim anvil
#

Il te la donne plus haut regarde fs

dire latch
#

Ça m'aide pas sa solution mdr

slim anvil
#

fs.writeFileSync

#

Tu as cherchés au moins ou tu veux juste le code

dire latch
#

Si je viens là, c'est que j'ai cherché 🤷‍♀️

slim anvil
#

Tu as cherches fs ?

dire latch
#

Puis vous me proposez un truc que j'utilise pas

slim anvil
#

Et donc ? Ça s’installe

dire latch
#

Et donc, c'est que je veux avec ceux que j'utilise 🤔

slim anvil
#

npm i file-system

#

Et comment tu lis et tu écris sur ton fichier

dire latch
#

lowdb

slim anvil
#

Utilises fs et te fais pas chier si tu veux juste lire et écrire sur un json

#

tu auras juste un fs.readFileSync()

#

Pour récupérer ton json

dire latch
#

Lowdb le fais, pourquoi je changerai

#

Stop proposer des choses que j'utilise pas 🤷‍♀️

Vous pouvez pas forcer les personnes avec vos manières hein

slim anvil
#

Car tu y arrives pas qu’on t’a proposé 3 fois fs car on utilise pas lowDb j’ai l’impression

#

Si tu acceptes pas nos conseils tu peux pas venir les demander sadgun

dire latch
#

Des conseils ?

#

Vous m'aidez pas en me disant d'installer fs

#

J'utilise lowdb, c'est tout

slim anvil
#

Si car on utilise fs donc on sera plus à même de t’aider là dessus

dire latch
#

Si vous avez pas de solution, vous le dîtes. Pas en me disant d'installer d'autres choses.

slim anvil
#

si tu veux pas changer et que tu as pas de réponse relance pas 3 fois sadgun

dire latch
#

3 fois ? 🤔

slim anvil
#

Oui oui

dire latch
#

Je viens de le relancer une fois mdr

#

Bravo le mensonge

slim anvil
#

Waouh bravo le veau

#

Sinon
// Increment count
db.update('count', n => n + 1)
.write()

#

Si tu veux juste incrémenter de 1

#

Essaye de passer par ça c’est sur leur doc

#

remplace par les bons champs

dire latch
#

Ok

west plover
#

Oo

slim anvil
#

Et sinon si tu veux vraiment une db utilise mongo atlas

#

Au moins tu auras des saves

#

Ce sera plus safe que un json sur la durée

rough tide
#

@slim anvil fs ne s'installe pas

#

en tt cas t'as pas besoin de l'installer , juste de l'inclure

#

@dire latch t'es grave toi par contre

#

tu nous demande de l'aide , on te donne de l'aide , puis tu nous engeule parceque on a pas utilisé lowdb ?

#

fs fait très bien le travail , tu a pas a l'installer , juste a faire

const fs = require("fs")

dire latch
#

Oui donc npm i fs 😅

#

Merci quand même hein mdr

keen narwhal
#

Bonjour je voudrait de l'aide pour crée un system de ticket merci a se qui m'aide

#

Me mentioner pour me contacter svp

slim anvil
#

Ah il est déjà installer de base dans le package sûrement fin bon du coup ça s’installe quand même si par défaut il y est pas

keen narwhal
#

Bonsoir j'ai une bdd avec mon web mais comment je pourrais l'associé à mon bot par exemple pour mon système de warn j'utilise lowdb avec un fichier json.Mais j'aimerais que sa soit sur une bdd genre phpmyadmin.

Go me mp.

slim anvil
#

Là tu as l'exemple local mais du coup a la place de local tu mets l'ip de ton PMA

keen narwhal
#

Pm3?

#

Pma?

slim anvil
#

Php my Admin

keen narwhal
#

Possible et m aide

slim anvil
#

??

rough tide
#

@slim anvil désolé de te déranger mais tu saurais comment vérifier si quelqu'un a un role ?

#

parceque dans la docu j'trouve pas

slim anvil
#

message.guild.roles

#

Je crois et dessus tu fais un .find

#

Ou un .some qui fonctionne de la même manière que le .find

rough tide
#

non

#

vérifier si l'auteur du message a un role

errant rampart
#

message.member.roles.find(r => r.name === 'le_nom_de_ton_role_ici')

#

Ou sinon
message.member.roles.has(role.id)

slim anvil
#

c’est ce que je viens de dire no rassure moi koko

#

Ah j’ai confondus le member et guild

#

Bon après suffit de creuser un peu en regardant l’objet kappa

errant rampart
#

Un recherche, premier lien j'ai trouvé une réponse ... 😦

slim anvil
#

Oui same « discord JS user has role »

errant rampart
#

😂

dire latch
#

Je cherche quelqu'un qui pourrait faire fonctionner la music sur mon bot qui est sur mon vps. Car en local, j'ai aucun soucis mais sur le VPS, la music ne se joue pas.

slim anvil
rough tide
#

yo

dire latch
#

C'est pas une demande de dev mdr

#

@slim anvil

rough tide
#

alors , je sais que c'est ouf mais bon , si quelqu'un sais faire , j'aimerais lier steam et mon bot, c'est a dire que dés que quelqu'un rejoigne le serveur, ils doit lier son compte steam pour acceder au serveur. J'ai un nom de domaine , un site web , mais aucune connaissance en web , mais je suis pret a apprendre si il le faut

#

si quelqu'un aurais une vague idée de comment faire

#

sachant que sur notre site on a déja une vérification steam mais c'est pas moi qui la gère

slim anvil
#

C’est un peu bizarre de relier son discord à steam

#

C’est pas hyper compliqué au niveau du code mais plus au niveau de « comment tu check ? »

#

comment ils procèdent tu vois ?

#

Car toi tu peux partir du principe que tu as déjà son discord donc son e-mail, ça ok tu peux le stocker en db, du coup il te faudrait une autre entrée dans ta table users qui serait STEAM_ID

#

Donc tout se passerait sur discord ? Avec une commande par exemple ?

rough tide
#

Nop

#

Il se connecte a steam , puis ensuite on nous dit oui ou non si il a déja été sur le serveur

#

si oui , on lui donne un grade

#

sinon , bah non et on lui envoie un ptit message d'erreur

slim anvil
#

Yep mais du coup faut que tu trouves comment savoir si il s’est déjà connecté au discord, car ça peut ne pas être le mail e-mail ?

#

car pour la connexion steam c’est pas très compliqué tu as déjà des trucs tout fait, mais c’est plus au niveau du check que tu vas avoir des complications, trouver le bon schéma de vérification

west plover
#

Faudrait que tu demandes le SteamID sur le Discord, et que sur le serveur, fasses un système qui envoie le SteamID du joueur à la connexion sur une DB ou autre, et le Bot check dans cette DB s’il est dessus

slim anvil
#

Bah oui mais du coup tu peux te faire passer pour qui tu veux ?

west plover
#

Une fois vérifié tu interdis le SteamID à être utilisé par quelqu’un d’autre

slim anvil
#

Oui mais à quel moment tu vérifies que c’est bien lui ?

rough tide
#

vous avez pas compris

#

il arrive sur le discord -> On le redirige vers notre site -> connexion -> on vérifie si il s'est déja connecter sur le serveur gmod -> autorisation d'accés au serveur

slim anvil
#

Ah faut qu’il soit co au serveur Gmod ??

rough tide
#

non , déja co une fois

#

qu'il est déja rejoins le serveur

slim anvil
#

Yes ok

#

J’avais compris lier le compte discord a steam

rough tide
#

nop

slim anvil
#

Ah pour le faire ok je vois mais par contre gmod j’y connais rien faudrait voir si gmod stock l’historique des users quelque part (je pense que oui)

rough tide
#

j'y connais rien a gmod aussi xd c'est pour le serv d'un pote

#

et aussi question hs , c'est possible de récuperer le pseudo de quelqu'un par son id ?

slim anvil
#

Sur steam ?

#

Je pense il faudrait que tu check leur doc api pour voir les routes

rough tide
#

ouep

#

nan pour l'id je parle discord

#

genre

#
console.log(user.username)```
#

un truc comme ça

slim anvil
#

Tu as le fetchUser

rough tide
#

jvais voir sur la doc

#

y'as un module node.js qui lie a steam ?

slim anvil
#

Je pense oui

#

Sur node tu as quasi tout qui existe franchement

rough tide
#

quelqu'un dispo ? le soir de noe; c'est un peu con mais bon

plush lava
#

attend demain ^^

slim anvil
#

?? Dis nous

rough tide
#

enfaite j'ai une commande qui affiche touts les serveurs du bot

#

sauf que si le bot a 300serveurs, c'est un peu compliqué

#

donc j'aimerais pouvoir afficher les serveurs 3 par 3

#

et changer de 3 par 3 avec des reactions

#

genre comme ça :

#

serveur 1

#

serveur 2

#

serveur 3

#
var no = "0"
        Client.guilds.map(guild => {
            no++
            var serv = new discord.RichEmbed()
            .setColor("RANDOM")
            .setTitle(`${no} - ${guild.name}`)
            .addField("Membres :", `${guild.memberCount}`)
            .addField("ID :", `${guild.id}`)
            .setFooter("Hawaii | Bot")
            message.channel.send(serv)
        })
#

c'est mon code

slim anvil
#

Déjà on va remplacer le var par un let

#

Le client.guilds ce sont les serveurs ? Du coup tu peux juste slice ton array avant chaque boucle avec .slice(currentIndex, newIndex) par exemple mais vérifie avant si le newIndex est pas inférieur au current car sinon tu inverses ton slice logiquement

#

Un peu fatigué mais là de tête ça devrait être ça, si le client.guilds c’est bien le tableau de tes 300 serveurs

#

Bon après a toi juste de faire tes conditions pour les emojis si il veut avant ou après

rough tide
#

j'ai pas compris le .slice

slim anvil
#

Ton client.guilds si tu le log c’est un tableau ?

rough tide
#

je verifie attend

slim anvil
#

Donc tu peux faire comme je t’ai dis le .slice(x, x)

rough tide
#

x x ?

slim anvil
#

Les paramètres à passer sont les index

#

Si tu veux un tableau de l’index 8 à 11

#

Tu mettras slice(8, 11)

rough tide
#

ahh

#

j'ai pas compris je le met ou le .slice

#

désolé j'suis plutot lent sue

slim anvil
#

Tu peux faire un const servers = client.guilds.slice(param, param)

#

Un truc comme ça

rough tide
#

et je met quoi dans param param ?

#

1 3 ?

slim anvil
#

Bah tu mets tes variables

rough tide
#

les quels mdr

slim anvil
#

Par défaut tu auras un let currentIndex = 0
Donc en premier tu vas forcément renvoyer 0, 3

#

donc enfaite dans ton slice tu auras toujours un .slice(currentIndex, currentIndex + 3) ou si tu veux afficher moins .slice(currentIndex - 3, currentIndex)

rough tide
#

attend je comprend plus rien

slim anvil
#

On fait ça demain ? 😂

rough tide
#

oui c'est mieux xd

#

merci d'avoir pris de ton temps en tt cas

slim anvil
#

Il est 2h30 je suis sur tel c’est complex et me reste 7% c’est la hess

#

Pas de soucis relance moi demano

#

Good Night et bonne fêtes

keen narwhal
#

J'aimerai faire un system de ticket , qu'elle qu'un aurai de la documentation ?

keen narwhal
#

Bah faut que t as commande créer un salon

slim anvil
#

@keen narwhal comme pour ici le truc suggestion ?

spring dock
#

@slim anvil non un truc pour report des gens via une commande

slim anvil
#

Ah comme quand ici tu mets le red_staff ?

west plover
#

Bah ou juste créer un channel de ticket pour parler au staff 🤔

slim anvil
#

Car report et ticket c’est pas la même chose ticket c’est plus besoin d’aide, tu peux faire une commande !ticket Description de mon problème bla-bla-bla, qui va juste dans un channel staff envoyer ce message avec ton nom la date la description et voilà

spring dock
#

report un problème :smartguy:

slim anvil
#

On attend qu’il nous précise au moins on sera sur

keen narwhal
#

bjr

#

j aurai besoin d aide

slim anvil
#

hello dis nous

keen narwhal
#

@slim anvil Je voudrait un system de ticket comme ça:
!ticket Il y a une erreur 404 au site internet
Et le message sa nous l'envoie dans le channel ticket pour que je puisse répondre.

sick zenith
#

Il y a un bot déjà qui fait ça je crois

rough tide
#

@keen narwhal c'est simple a faire

keen narwhal
#

Je ne sais pas , je suis débutant moi

rough tide
#

pareil tkt

#

en grps

keen narwhal
#

Tu veux bien m'aider

rough tide
#

quand la commande !ticket est effectuée , tu prend le contenu du message

#

donc message.content

#

ou message je sais plus

#

attend jte fais le code

keen narwhal
#

OwO merci !

rough tide
#
 let report = message.content
message.delete()
let reportembed = new discord.richEmbed()
.setcolor("RANDOM")
.settitle(`Report de ${message.author.tag}`)
.setdescription(report)
message.guild.channels.get("id de ton channel").send(reportembed)
#

normalement ça marche , mais verifie si y'as des erreurs

#

j'suis un dev en carton donc xd

keen narwhal
#

Comment je l'intégre a mon fichier index.js ?

#

je le copie colle directement ?

west plover
#

C’est pas en lui faisant le code, qu’il progressera

rough tide
#

c'est vrai

keen narwhal
#

Je vais essayer de le refaire après , sans le regarder sa va m'aider !

rough tide
#

t'as compris au moins le code

#

@keen narwhal att bouge pas

west plover
#

Essaye de le faire sans le code surtout

keen narwhal
#

J'ai essayer mais sa ne marcher pas a chaque fois

#

Sinon je ne demanderai pas d'aide

west plover
#

Dans ce cas, demande de l’aide sur ton code

rough tide
#
*/On commence par définir le contenu du message , ce qui doit etre report/*
let report = message.content
*/On supprime le message envoyé par le joueur*/
message.delete()
*/On créer l'embed , pour un message plus propre*/
let reportembed = new discord.richEmbed()
.setcolor("RANDOM")
.settitle(`Report de ${message.author.tag}`)
.setdescription(report)
*/On récupere le salon et envoie le message !*/
message.guild.channels.get("id de ton channel").send(reportembed)
#

c'est mieux comme ca

keen narwhal
#

Je les supr , sa me faisait ....

#

je comprend mieux merci !

rough tide
#

tranquille

#

si t'as besoin d'aide j'suis la , jsuis pas trop fort en js mais j'me débrouille

keen narwhal
#

Mais si je veux le mettre dans mon code , je fait comment ?

rough tide
#

ah

#

tu met tous sur le index.js ?

keen narwhal
#

Oui

rough tide
#

pas ouf :/

keen narwhal
#

je sais

rough tide
#

jte conseil de séparer ton code pour commencer

keen narwhal
#

jsuis nul

rough tide
#

tu veux un tuto ?

#

super bien détaillé

keen narwhal
#

Si tu veux écoute

rough tide
#

jtenvoie la vidéo

#

si tu comprend pas quelque chose reviens vers moi

#

ca utilise fs , c'est possible sans mais c'est le plus opti

keen narwhal
#

j'ai tout les node modules

#

mais c'est il me servent a rien je les est

rough tide
#

impossible

#

y'as bcp trop de module sur node

humble storm
#

@queen ocean c'est quoi les limites de l'API discord ? (quantités de channels que tu peux créer, etc..)

plush lava
#

De base faut vraiment en abuser pour être ratelimited

#

Mais ça tu peux leur demander je pense

west plover
#

Perso je sais que tu peux faire seulement 1000 connexions de bot en 24h mais en channel thinkgeometric

slim anvil
#

tant que t'as pas de 429 continue kappa

plush lava
#

429?