#javascript-typescript
1 messages · Page 57 of 1

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
Ah bah non (j'suis pas très intélligent
) 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
ah le bot est déjà sur le serveur ?
Si tu fais un node -v tu as quoi ? Pareille avec npm -v
J'effectue ou la commande ?
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
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
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
Quand je me suis connecté au ftp, j'avais juste deux fichiers à la racine sans dossier : index.js & package.json
yes ok ! dans ton package.json tu as quoi dedans ?
{
"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": {}
}
fais un npm i pour install tout les nodes_modules
ah oui ok 0 dépendance ça va être compliqué de le run 
Quand je fais la commande npm i dans ma console, ça fait rien
T’as des captures d’écran de ton panel ? Voir à quoi ça ressemble
Yes, wait please
@frosty idol
Sur les paramètres de démarrage, tu met npm i discord.js
Et ça va t'installe discord.js
Oki merci
Dr 🙂
ça n'a rien fais
Et non pas par les paramètres de démarrage
Je restart mais j'ai pareil
c'est en local ?
Non sur son serveur ouiheberg
Non hébergeur
Mais je sais pas comment ça fonctionne ce bordel
Alors
NodeJS
L'erreur au dessus ne vient pas de discord.js
surement que ton host doit check le fichier package.json
donc vérif que discord.js est bien dedans
Il n'arrive pas à avoir ton index.js
Justement discord.js n'a pas l'air d'être installé
Déjà à première vue,c'est un panel pterodactyl
L'erreur est clean, il t'indique juste que ton fichier index.js est introuvable
C'est ce que je viens de dire 🤔
Il saura pas, pterodactyl ne répond qu'à ce que devrait répondre node
La console ne répond pas aux commandes
@slim anvil
Connais po ptero alors
Les commandes ne fonctionnent pas
Ptero fonctionne sous base de "Eggs", qui donne le principe de fonctionnement et de démarrage
Tu peux juste start/off/restart via des boutons
Pour reconnaitre l'index.js je fais comment du coup ? x)
c’est naze ce truc
Met ton index.js dans la racine de ton FTP @frosty idol
les mecs vendent dés serveur nodejs
Tu peux juste start/off/restart via des boutons
@dire latch ouais donc pas vraiment une console mais juste un affichage de log
Et sa devrait fonctionner
C'est fait @dire latch
C'est puissant quand tu sais créer tes eggs correctement, pas comme certains hébergeur qui les prennent tout fait sur github 👀
De base j'ai deux fichiers qui sont à ma racine : index.js & package.json
Je quitte trash
@queen ocean Oui
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
@frosty idol Tu peux screen ton ftp pour voir ?
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
Yup
Je ne ment pas x) @dire latch
Pourrais po t’aider alors sorry shibaz je te laisse avec des pros
Nan tkt @frosty idol juste je demande
Aha pas de problème tkt
Ducoups sur le panel
Yes ?
@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
Tu as bien mis index.js dans les paramètres de démarrage ?
Oui
@dire latch Rien à voir ^^ Tu vois bien qu'il le cherche, mais il ne le TROUVE pas
Alors qu'il y est
C'est peut être une erreur de sa part
🤷♀️
Donc la seule possibilité, c'est que son Dock cherche à un endroit qui n'est pas celui où c'est stocké
Donc je demande avant au cas où
Et dans ton package.json,tu as bien l'index.js dedans ?
@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
{
"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....
En même temps t'a pas choisi le plus "clean" de tous hein soyons franc
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...
Le best qui fait NodeJs que j'ai eu : Skoali
rip
MAIS
combien tu payes par mois
Je m'en méfie maintenant, car on leur a demandé leurs documents légaux pendant des mois
On a jamais rien vu
simple curiosité shibaz
Skoali c'est 5.35€ le semestrielle
5.35€ pour 6 mois
yep
J'ai vu
Pourquoi sur ton fichier package.json, tu as main: bot
J'en sais rien
Or que tu devrais avoir index.js
Il était de base ce fichier, j'ai rien touché
@dire latch tu cherches dans le vide, l'erreur n'a rien à voir
L'erreur est clair
Fichier INDEX.JS INTROUVABLE
Mais elles n'ont rien à voir ^^, c'est indiqué blanc sur noir, son fichier index.js n'est pas trouvable ^^
x)
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
Tu es hébergé ou ? Un VPS je suis pose
J'suis sur un dédié moi ^^
Oki
Pardon "Mr" qui crois tout savoir 🤷♀️
Chez Cosmhost
Ah moi aussi je suis client dessus
@dire latch Pourquoi prendre le nez dès que je t'explique que j'ai de l'expérience avec Ptero ?
Je propose juste des solutions, stop saouler.
Mais je m'en fous @idle ice
Fais comme tu veux
@slim anvil Y a moyen que tu fasses comprendre (j'aime t'ennuyer) car j'suis crevé j'ai pas envie de refaire psycho 😂
T'inquiète McDuck 😉 Je te remercie^^ Apparemment ça n'a rien avoir donc j'attend le support de mon hébergeur :/
Mais viens pas me dire quelques choses quand je propose des solutions
Nan mais c'est dingue mdr
Je propose des solutions et j'ai le droit de rien dire
Insane
ça fini jamais bien alors on se calme, et on reprend le sujet initial 👀👀
Mdr
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)
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)
Tu fais new terminal
Voici ce qu'ils me disent de faire mais ça change rien du tout....
Mais quelle bande de brèle
Ils te font installer un truc alors que c'est ton fichier principal qui est introuvable

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
J'ai commandé un service NodeJS sur un hébergeur et j'ai que des merdes avec
La solution du support : Installer discord.js
MDR
Je n'arrive même pas à le lancer
oulah
Mais l'erreur reste : fichier index.js introuvable
c’est plutôt des tocards
Oui
t’as un accès ftp?
😂😭
Oui j'ai un accès & de base j'ai deux fichiers : index.js & package.json
Hé @oak turret j'ai un soucis, mon processeur a cramé
Réponse: Installe un disque dur
{
"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
JUSTEMENT IL PEUT PAS 😂
Tellement leur Egg ptero est bien fait
Ma console ne répond pas au commande x)
😂
donc nodejs n’est pas installé
wtf
Mais tu peux pas entrer de commande
Ouais mais la console de pterodactyl permet pas d'use des cmds
oulala
Le vps à 2€ par mois
Je sais mais j'ai voulu test leur produit NodeJS
Heroku : 🔫
Sauf que c'est de la....
Impossible même si je viens de l'acheter
pourquoi?
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é
Hé @oak turret mon serveur Nginx a un problème, tu sais pourquoi ?
Solution: Installe SFTP

Si je peux te conseiller un vps en mp pour 95 centimes/mois, tu me dis @frosty idol
Hé @oak turret mon serveur Nginx a un problème, tu sais pourquoi ?
Solution: Installe SFTP
![]()
![]()
![]()
@idle ice 😭😭😭😭
non mais du coup ouiheberg report les
A qui ?
Installe pm2 sur ton vps
Puis dans le dossier tu bot, tu fais pm2 index.js
Et il resteras H24 allumé
oki merci
Dr
Oui?
J'ai fais npm install pm2
Puis dans mon dossier du bot : pm2 index.js -> ça m'a mis -bash: mp2 : command not found
Screen stp
x)
Mdrr
OK attends deux secs
Si tu écris pm2, ça fais rien ?
Ah aussi
C'est pm2 start index.js
Dans le dossier de mon bot ?
Yes
command not found
Screen and tape comme Enzo a dis 😅
Command not found x)
Tu l’as bien install en global ?
Il est mal installé
-g ?
npm install pm2 -g
c'est good normalement 🙂
Essaye ouais
C'est fait
Dans la racine de ton bot
pm2 status maintenant ?
Normal ta un truc qui s'est affiché
start
T’as oublié le start
si tu veux fais un
pm2 start index.js —name bot
Comme ça tu auras bien le name
c’est good ?
Yes good
Si tu veux les logs de ton bot, tu fais pm2 status 0
Ta les deux façons 😁
Ta une erreur dans ton fichier ducoups
Mauvaise fermeture de fonction
?
Screen le code ligne 12 🙂
yes wait please
Oui tkt
J'ai delete mon fichier messageReactionAdd car il date et j'en ai plus besoin
Je dois refaire la commande du coup ?
pm2 restart index
C'est Gooood ! 🙂
belle manière de gérer le bug
Merciiii 
On supprime le fichier 
aha x)
Si je ferme ma console putty, mon bot reste open ?
Oui
Même pas, j'en avais réellement plus besoin x)
tkt po
ça marche, thanks man
😂
Ducoups on avait dis 40 euros pour l'aide, c'est ça Enzo ? Mdrr
J'avais fixé 60€ de base
Ah ba go 😁

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 🙂
Je ne sais pas dutout faire ça donc sûrement une autre personne répondras 😁
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 
Pour une fois qu'il fais une bonne passe 😮


😁

Zuper
Hello,
Comment utiliser game-server-query ? Je ne trouve pas la documentation sur discord.Js
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
Ouaip je t’envoie un exemple dès que je suis sur le pc
ça marche merci 🙂
du moins j’arrive plus à l’installer perso
je crois ouais
yep
oui
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
Bon, ça ne fonctionne pas... x)
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"
}
Je dois remplacer token & prefix ?
Ok, je trouve ou les deux infos ?
tu vas sur discord permissions sur interne
internet
tu mets les perms que tu veux
et tu mets le client id
et t'as un lien d'invitation, et de là tu l'invites sur ton discord
bah tu parles de quoi
Au serveur Garry's Mod
T'as vu le code que je t'ai donné ?
là où tu vois host et port
tu changes par le host de ton serveur
et le port de ton serveur
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 ? :/
Moi je fait des bots en python pas java script sorry :/
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
du coup l'erreur a l'air de venir d'un events.bind
surement ton handler de commande ?
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
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
Je cherche un hébergeur gratuit h24 7/7. Qui en a un ?
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 J'en ai 2 mais le problème étant que l'un des 2 est en maintenance.
Es-ce que tu es là ? @queen ocean
@dire latch ?
@zealous palm "bot"
est pas définis
vérifie tes variables tout en haut
c'est souvent client/bot
la variable new Client()
oui
okay
cad ?
j'ai compris l'erreur mais je ne sais pas la regler
normalement si
Ah si
Juste bizarre
c'est juste
pr une react ?
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
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"
} ```
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"
} ```
là
ça devrais fonctionner
g edit
okay lartaxx
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
je suis sur tel, j’te debug ça après
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
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 🙂
Qu’est-ce que t’arrive pas ? C’est quoi ton code ?
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
Jsuis en apéro je check après si personne t’a rep
Yes tkt
Personne pour m'aider ? 😦
Je suis pas trop dans les API pour l'instant l, desolay
Pas de soucis
Si quelqu'un s'y connais 🙂
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
Et une autre petite question, on peut augmenter ceci ?
@slim anvil Jcomprends pas trop mais pg tkt
Je doute que tu puisses augmenter, il s'agit de la limite imposée je crois
Ok merci 🙂
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"
Ouais @idle ice , après, tu peux en faire un bot perso 🙂
Justement quand je crée j'aime bien que ce soit utilisé au "grand public" 😦
Pense, pense, pense...
Peut être bien un bot permettant du RP 🤔
Let's go 🙂
@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)
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)
😢
@slim anvil Je vais voir demain mdr
@idle ice Ah mdr rip
@idle ice Sinon go faire tout à la main 🙂
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
😅
Fleo, si tu te lances dans un bot, et que t’as pas envie de le développer seul, mp moi 
Yep ainsi on mettra des vannes 😂😂

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
@frosty idol ton 2eme field
Il manque une value
c'est obligatoire pour les fields
.addField(title, value, inline)
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 ?
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é
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...
bah tu créé ton embed et ta commande
C'est bon, problème réglé
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")
});
Je ne serais malheureusement pas t'aider mais je cherche justement comment ajouter automatiquement une réaction à un embed
Après ca dépend de comment tu envoies ton message
exports.run = (client, message, args) => {
var done = new Discord.RichEmbed()
embed
message.channel.send(done);
message.delete();
};
J'ai fais mon embed comme ceci
message.channel.send(done).then(function (message) {
message.react("✅")
message.react("❌")
})
Merciiii 🙂
Dr 🙂
Et t'as une ID pour moi
Tu veux faire quoi exactement ? @junior echo
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)
Il faut dans ton addField
.addField(title, value, inline)
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
Non ?
Tu met ceci: ```js
.addField("Un truc", "un truc", true)
Oki thanks
Dr
@dire latch Du coup t'as une idée ?
@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;
}
}
})
Et c'est quoi la constante de bot ?
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
bot == nil pour moi
Ba tu met client si tu as déclarés client
Ahhh ok bot == client
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
Remplace bot par client ducoups
Oui oui tkt ca j'avais capté, merci beaucoup pour ton aide
Dr 🙂
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")
^
Si tu utilises la V12, faut que tu modifs 🙂
Il faut que je modifs quoi ?
Mon code
Mais ca c'est le mient
Ah ok
Mais je me suis inspiré du tiens
Mais avec la V12 je sais pas comment résupérer le role avec le .find
// 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 🙂
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);
};
Tu envois deux fois ton embed
Comment ça ?
Ah bien vu 🙂
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("❌")
});
};```
Mercii 🙂
Dr
Dernière question, j'ai fais plusieurs .addField sauf que mes fields se mettent bizarrement (la disposition n'est pas en "colonne")
Screen 🙂
Tu enlèves les true de tes .addField
Et pour par exemple
Mettre le lien dans la même ligne, tu ne peux pas
Comment ça se fait que mon message react ne fonctionne pas ? x)
C'est bon, j'ai trouvé
Quelle est la fonction pour set le rôle de quelqu'un en V12
Cadeau 🙂
@junior echo Si t'y arrives pas, tu me dis
Ok thx
je me suis jamais trop intéressé au db et j’aimerais faire un bot giveway, est ce nécessaire d’avoir une database ?
Oui tu peux
cimer je vais regarder
Dr
juste quelle est la différence entre le système d await et le système collector
@dire latch
member.roles.add(role);
Apparement cela n'est pas bon
ça te dis quoi ?
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
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
Ah
Tu as essayés de modif ?
je vais te donner le code
j'ai fais un truc similaire
message.member.roles.add("730418366799413249").catch(console.error);
C'est déjà régler
il l'a pas dit
Je suis sur son discord donc je réponds à sa place 🙂
ok
Ah oui, je m'en excuse
il dois être en v11
Rien à voir. @keen narwhal
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
chaque chose en son temps
de 1 - à quoi sert ton code
de 2 - quelle erreur ?
merci
c'est toi qui a fait ce code 
tu sais pas ce que c'est la commande ?
eval ?
mais eval = ?
oui ok ça j'avais compris
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
Tu sais pas ce que tu créais
:/
message.channel.send = code
:/
c'est censé faire eval tatata
eval c’est une méthode
capte pas
dsl si j'explique très mal
Vérifier si c'est un string nan ?
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
Sur tel c’est trop illisible tu peux screen stp
eval return true ou false
Prends un screen via Capture D'écran de Windows
ok
et du coup tu peux expliquer rapidement le but de la commande
genre tu veux faire un truc qui lit le code ?
ah pas pratique ça
j'ai un problème pour héberger sur Heroku quelqu'un pourrait m'aider ?
oe stv
pv ?
Bonjour, savez-vous comment marche les modules parce que à vrai dire je ne comprends pas, merci !
Modules de?
D'exportation
Ah non du tout
Commande Handlers =
Grosse performance et économie de co
Mais regarde des tutoriels sur YTB comme GetCodingKnolage ou autre.
Ils expliquent bien
sinon sur discord.js guide t’as des exemples pour la v11 et 12 de handlers
Mdrrr @odd ether tkt tu arriveras à écrire GetCodingKnowledge un jour
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
@terse salmon C'est pas le plus important
@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 oui via l'api pastebin
c'est super simple en plus
Si tu veux l'faire en Node.js utilise ce module ça seras encore + facile 😁 https://www.npmjs.com/package/pastebin-js
azy cimer je vais regarder
@junior echo No Problem
@terse salmon Le jour où j'arriverai à l'écrire correctement, sa serra la fin du monde
je comprends pas trop comment aligner des tectes dans les embed avec la technique inline: true
faire comme ca
.addField(title, value, true)
tu remmplace title & value pr cque tu veux mettre
bv
c'est carré
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
@keen narwhal https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/includes
⬆️
cim jvais regarder
dans mon fichier config.js :
{
"token": "***"
"prefix": "+"
}
et il y a une erreur avec le préfix...
pourtant tout est bon
C'est quoi ton erreur ?
Mon préfix
Oui mais dans la console, sa mets quoi ?
Ça te met quoi comme erreur ?
Ah et je pense avoir trouver. Essaie ça :
dans mon fichier config.js :
{
"token": "***",
"prefix": "+"
}
ah yess
mdr dans le discord js c'est incroyable comme un point ou une virgule ça peut ruiner ton code
@terse salmon Oui
Et aussi quand je suis dans mon terminal, je fait node index mais mon bot ne demarre pas...
Es-ce que tu a fais un client.login(token) ?
J'ai fait sa client.login(confing.token)
je doit peut etre enlever le config avant token
Oui, sa veut pas ce lancer
Ta fait npm I discord.js ?
Dans le terminal ?
Oui
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 .....
il faut mettre node puis le nom du fichier d'entrée du code
donc par exemple
node index.js
Sa change rien quand je le fait
c'est quoi le nom de ton fichier?
index.js
et quand tu fais node index.js ça te dit quoi
ReferenceError: confing is not defined
t'as fait une erreur à l'endroit où tu utilise ta config
client = new Discord.Client(),
config = require('./config.json')
fs = require('fs')```
J'ai fait sa
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"
je chek
normalement sur ton erreur il te donne la ligne où il y a un problème
T'aurai du faire un collecteur 🤔
ah
J'ai une nouvelle erreur...
C'est ?
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
Mouais, mais techniquement, c'est mieux car ta pas besoin de définir 2 valeurs
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'
}
pour savoir qu'il s'agit du token de ta config et pas le token d'autre chose
Oui aussi
car le nom token reste super vaste
@timid loom tien ^^
10ème ligne de ton index.js c'est quoi?
Oui, sa serai plus un KeySecret pour le BOT.
if (err) throw err
ok, y a quoi autour
Sa get l'erreur mais je vois pas quoi
err c'est quoi
error
Comment sa ?
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
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
et t'as un dossier commands?
Ta pas un truc undefilined
oui
euh, essaye de mettre un autre / après commands
Ta mis module.exports.help = {
Name
Etc...}
Sur toutes tes commandes ?
nan mais aucun rapport ça
le quelle commands ?
l'erreur est lié à la lecture du répertoire donc la première ligne
Sa peut @timid loom
non
Un fichier qui se scan pas, ça peut aussi être cette erreur
non
Bah preuve que si car sa le la fait il y a même pas 2 heures.
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?
oui mais rien du tout
sa change rien
t'as la même erreur? super bizarre
^``` mais pourquoi la fleche vers le haut ?
pour dire ce qui a levé l'erreur
en fait le programme s'arrête à ce moment là et la console te le dit
je peux pas venir en vocal
ok
t'es sûr que tu as un répertoire nommé "commands" ?
tu veux mon code en entier ? il est petit
visiblement c'est pas le souci
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)
})
ouais classique
ton fichier index.js il est au même niveau que le répertoire commands?
comment sa ? meme niveau ?
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
je doit le mettre en dossier ?
commands doit être un dossier oui, évidemment
comment tu veux mettre tes fichiers de commandes dedans autrement
Merci !
maintenant quand je fait la commande "node index.js" mon terminal bug
du coup je doit relancer a chaque fois...
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
ok
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
@keen narwhal https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/includes
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
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
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
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}
oe c’est ce que j’aimerais éviter qu’il faille changer à chaque fois
De mémoire tu as un mentions dans la collection message
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 :/
Bonsoir, je souhaiterai savoir si c'était possible d'ajouter la permission à un rôle spécifique sur visual studio code
jsp si j'ai bien compris ce que tu veux @keen narwhal mais va voir ça https://discord.js.org/#/docs/main/stable/class/Role?scrollTo=setPermissions
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
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
y’a une documentation que j’apprenne ??
j’ai jamais utilisé du tout cette technique
c'est la doc de javascript que tu cherche du coup

