#javascript-typescript
1 messages · Page 71 of 1
montre ton erreur @silk edge
guild tu le récupères d'où ?
client.on("guildMemberAdd", (member, data, guild) => {
console.log("add");
guild.channels.cache.get("555436620241698840").send(Bienvenue sur le serveur ${member});
// const MemberAddEmbed = new Discord.MessageEmbed()
// .setColor('#27ae60b')
// .setTitle('Une personne nous à rejoint')
// .setDescription(member.user.tag, "Nous à rejoint aujourd'hui")
// .setThumbnail(member.user.avatarURL())
// .setTimestamp()
// guildchannel.id('555436620241698840').send(MemberAddEmbed);
});
a aucun moment tu peux récupérer data et guild dans tes paramètres
tu peux faire un member.guild.channels....
bonjour , un dev js aurais du temps a m'accorder ?
pose direct ta question 😉
je cherche a faire un requete mysql
et je galère
con.query(`SELECT * FROM rdiscord WHERE pseudo, token = '${args[0]}', '${args[1]}'`, async (err, results) => {
// Si l'utilisateur n'existe pas dans la table :
if (results.length < 1) {
message.channel.send("je ne croie pas que tu t'est déja connecter au serveur ")```
j'asi tenter un code comme ca
sauf que ca me dis leght undifined
et en gros je souhaite cherche dans ma table des pseudo si royal existe , si il existe pas je le jarte
Ah
mais en soit la requete sql est bonne ?
tu devrais deja checker si tu as une err
avant de regarder si results.length etc
comme ca tu verras directement si ta requete sql passe
undefined
Et du coup si t'as pas d'erreur, oui vérifie ce que tu recois, si c'est un object tu peux juste checker qu'il existe bien sans faire ton .length
Je suis connecté à la base de données !
undefined
ca me connect maistrouve pas la colonne
ca fais 30 minutes je cherche dans la doc
je log result
Du coup log ton error il te précisera ce qui ne va pas
Idk là comme ça 
ou have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' token = 'royal', '123'' at line 1
oui ta requete sql n'est pas bonne du tout c'est tout
Débug la, commence déjà par enlever ton WHERE pseudo etc.. et fais le petit à petit
SELECT * FROM rdiscord WHERE pseudo, token = '${args[0]}', '${args[1]}'`
comment ca ?
Commence déjà par GET TOUT tes users, vois si tu reçois quelque chose
Puis ensuite commence par filtrer par un seul champ, voir si tu recois encore quelque chose
et comme ca petit a petit tu vas localiser ton soucis 
du débug
ouki mrc ^^
Maiss y'a une erreur SQL là x)
Tu peux pas faire un double where comme ça
SELECT * FROM rdiscord WHERE pseudo = '${args[0]}' AND token = '${args[1]}'
@keen narwhal
fallait le laisser debug 
il aurait bien vu que son premier where aurait fonctionné mais pas le 2eme

Non mais j'ai eu les yeux qui brûlait j'ai pas pu m'en empêcher déso 
merci xd er désoler , je commence en sql
Puis bon, je pense qu'en 1h il à eu le temps de debug X)
J'avoue que si tu ne t'y connais pas les erreur sql c'est pas évident 
oui , est ce que y'a une doc sur les erreurs ?
Stack overflow, ou de la doc sur ce que tu comptes faire 
car maintenant faut je voie si y'a rien dans le db bah ca marche pas
un handler c'est un module ? genre on a le fichier principale et les modules annexes ?
comment je peu faire pour avoir a partir d'une ID d'un membre pouvoir mp ce membre?
Renseigne toi sur le "members.cache"
tu peux juste utiliser client.users.fetch()
après tu as juste à .createDM() sur l'user que tu récupère dans ton .then https://discord.js.org/#/docs/main/stable/class/User?scrollTo=createDM
donc ```js
client.user.fetch("id").createDM("truc a send")
ou juste js client.user("id").createDM("truc a send") ?
c'est quoi ta commande ?
tu veux envoyer un mp à un mec qui fait une certaine commande dans un serveur ou ?
en gros la c'est pour mon bot de support mp et quand je fais !close ca get l'id du salon et sur la db y'a l'id du mec qui a crée le salon
ok alors
message.guild.members.cache.get("id bdd").send("tatata");
ça devrait work
mais je vois pas pourquoi tu get l'id du salon pour avoir l'id du mec ,
?
tu peux foutre en topic du channel l'id du mec
et tu récupères cet id quand tu close
plus simple
sauf que pour une autre commande j'ai besoin d'avoir ca dans une bdd
mh ok comme tu veux bg
sinon merci
client.users.fetch("id")
.then(user => user.createDM())
.then(dm => dm.send("truc à send"))
Ok
if (message.content.startsWith("!kickvoice")) {
message.mentions.users.first().user.voice.setChannel(null)
}
SA me dit Voice not defined comment le definir
voice c'est sur le member
@timid loom
hello, j'ai un ptit soucis, j'ai pas autocompletion en nodeJS pour n'importe quel module(j'utilise express, bcrypt, sequelize, jsonwebtoken), vous avez des idées pourquoi ? (je suis sous vscode)
ui

ok regarde
mon api meme.js
const { Command } = require('discord.js-commando');
const CatApi = require('../divers/api-meme-content')
module.exports = class CatCommand extends Command {
constructor(client) {
super(client, {
name: 'cat',
memberName: 'cat',
aliases: ['chat'],
group: 'divers',
description: 'Affiche une image aléatoire de chat.',
guildOnly: true,
clientPermissions: ['SEND_MESSAGES', 'ATTACH_FILES'], // on vérifie que le bot à la permission 'ATTACH_FILES'
throttling: {
usages: 2,
duration: 10,
},
});
}
async run(msg) {
const api = new CatApi()
const images = await api.random()
if (!images.length) { // si aucun résultat, on arrête là
return;
}
msg.say({
files: [
images[0].url // on affiche le contenu de l'attribut 'url' du premier résultat du tableau 'images'
]
});
}
};
mon api-content.js
const got = require('got');
const makeURL = () => `https://api.thecatapi.com/v1/images/search?limit=1`;
class CatApi {
async random() {
const res = await got(makeURL(), {
responseType: 'json'
})
if (!res || !res.body) {
throw new Error('Invalid response of api.thecatapi.com')
}
return res.body
}
}
module.exports = CatApi;
rien
si tu log avant de faire la requete, le log se fait bien ?
fin att
comment sa log res ?
c'est les logs normal quoi quand je démarre le bot ?
Bah non
de console.log(res) dans api-content.js
pour voir deja la réponse que tu as
voir le résultat que tu obtiens via ton fetch
tu fais simplement un console.log(res) après ton await
comme ca?
dans ton code
franchement je veux bien t'aider mais là avant de te lancer dans des appels API, etc etc peut etre complètement voir les bases je pense
si tu sais pas faire un console.log ca va etre compliqué :/
il a une vie donc le ping parce qu'il te réponds pas dans la soirée x)
désolé
Tu pourrais m’aider svp? J’ai envoyé l’erreur
sur ta réponse la tu fais juste un res.body.message
mais du coup c'est pas une erreur tu reçois bien un retour de l'api
dans ton fichier ou tu fais
const api = new CatApi()
rajoute a ce meme endroit
const api = new CatApi()
console.log('api : ', api)
console.log('log 1')
et dis moi si tu recois api avant log 1
Bonsoir à tous ! J'ai un problème qui est : j'ai un string qui ressemble à ça : ["OUIIII", "NOOON"]
Je le transforme donc en tableau avec la méthode split et le séparateur ,
Sauf que si je met une virgule dans mon texte comme à la 3e ligne du screen il me compte 4 éléments alors que "Oui Bonjour, Aurevoir" n'est censé être qu'un élément, savez-vous donc si il est possible que le séparateur intervienne pas dans les guillemets ? Merci par avance 😄
bah si tu le fais avec le séparateur ',' ca va etre compliqué
Le soucis étant que quand ça s'enregistre en bdd avec une ,
et quand je vais le récup de la bdd forcément il ressort avec une ,
Si y'a vraiment aucun moyen j'ai une autre solution mais un peu plus moche mais tant pis
Alors attend, comment tu l'enregistres, tu reçois quoi comme string ?
salut, merci beaucoup de ta réponse
j'ai fait donc les modif ici :
const { Command } = require('discord.js-commando');
const CatApi = require('../divers/api-meme-content')
const api = new CatApi()
console.log('api : ', api)
console.log('log 1')
module.exports = class CatCommand extends Command {
constructor(client) {
super(client, {
name: 'cat',
memberName: 'cat',
aliases: ['chat'],
group: 'divers',
description: 'Affiche une image aléatoire de chat.',
guildOnly: true,
clientPermissions: ['SEND_MESSAGES', 'ATTACH_FILES'], // on vérifie que le bot à la permission 'ATTACH_FILES'
throttling: {
usages: 2,
duration: 10,
},
});
}
async run(msg) {
const api = new CatApi()
const images = await api.random()
if (!images.length) { // si aucun résultat, on arrête là
return;
}
msg.say({
files: [
images[0].url // on affiche le contenu de l'attribut 'url' du premier résultat du tableau 'images'
]
});
}
};
no no no
mais aucune erreur s'affiche quand je run le bot ni quand j'éxecute la commande
merde
const api = new CatApi()
console.log('api : ', api)
console.log('log 1')
merde merde merde
merdee
ok j'ai eu sa quand j'ai run l'api :
api : CatApi {}
log 1
api : {
message: [ 'https://images.dog.ceo/breeds/schipperke/n02104365_6395.jpg' ],
status: 'success'
}
log 1
du coup tu dois envoyer images.message[0]
et donc images[0].url
en gros
async run(msg) {
const api = new CatApi()
const { message } = await api.random()
if (!message || !message.length) { // si aucun résultat, on arrête là
return;
}
msg.say({
files: [
message[0] // on affiche le contenu de l'attribut 'url' du premier résultat du tableau 'images'
]
});
}
par ex si je dis pas de bêtise
je vais essayé
sa marche
quel boss
pourquoi j'ai du changé ? la base de mon bot était pas bonne ?
pourquoi sur d'autre sa marche et moi j'ai été obligé de changer ?
mais ta réponse était pas la bonne en tout cas
merci beaucoup
Bonjour, encore moi XD
J'ai encore un souci avec la doc. En gros j'ai un embed et je veux modifier le message de temps en temps pour faire un minuteur. Mon souci est que je ne trouve pas comment modifier un message dans la doc
jcp si c'est ça
et si c'est ça je ne sais pas comment l'employer
https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=edit
Pour pouvoir edit un message il faut évidemment également avoir son objet donc pense à le fetch sur les messages de son channel si tu ne l'as pas stocké en mémoire.
Autrement, tu peux stocker un message après l'avoir envoyé (channel.send (https://discord.js.org/#/docs/main/stable/class/TextChannel?scrollTo=send) renvoie le message envoyé encapsulé dans une Promesse donc tu peux le récupérer via async/await ou via un .then)
bonjour, j'ai crée un bot discord, j'ai voulu mettre une api covid dessus que j'ai trouvé sur mtx, malheureusement quand je veut activer l'api en faisant !covid france il n'y à aucune réponse et aucune erreur dans la console.
Voici mon api:
cordialement
@keen narwhal met un .catch voir si tu recois une erreur de l'api
met des logs aussi voir si ton code s'éxécute bien step by step
ouais je peut faire sa donc je fais un truc du genre
catch (error) {
console.error(error);
}```
?
donc le catch (e) fonctionne avec un try {
la vu que tu fais un fetch, puis ton .then, tu peux avoir un .catch()
bien le bonjour. Je code un bot discord en suivant un tuto de cette vidéo: https://youtu.be/0opMcN8aoQs?list=PLkHw7J3J2iaqG5pYQdHhinDU2J5PNNA4A; Mais dans la commande pause.js j'ai une erreur qui me dit que le client n'est pas défini le probleme est que le probleme ne vient pas d'un fichier que j'ai crée si quelqu'un s'y connais le probleme viens d'un fichier 'warning.js' mais ce fichier n'a pas été crée (par moi en tout cas) et ne peut pas etre modifié. Je ne sais pas vraiment comment exxpliquer mais bon je vais envoyer des screen
⭐ Codez plus rapidement avec Kite : https://www.kite.com/get-kite/?utm_medium=referral&utm_source=youtube&utm_campaign=pentiminax&utm_content=description-only
Créer un bot Discord qui lit de la musique sur YouTube c'est pas compliqué !
On voit comment mettre sur pause une vidéo et la reprendre.
Serveur Discord :
⭐ Rejoignez mon serveur Discor...
mon code:
``const { VoiceConnection } = require('discord.js');
const { Command, CommandoMessage } = require("discord.js-commando");
const ytdl = require('ytdl-core-discord');
module.exports = class PlayCommand extends Command {
constructor(client) {
super(client, {
name: 'pause',
group: 'music',
memberName: 'pause',
description: 'Permet de mettre la musique active en pause.',
});
}
/**
*
* @param {CommandoMessage} message
* @param {String} query
*/
async run(message) {
console.log(message.member.voice.channel);
if (!message.member.voice.channel) {
return message.say('❌ Pour utiliser cette commande, rend toi dans un salon vocal !');
}
if (!message.client.voice.connections.first()) {
return message.say('❌ Je ne suis pas connecté à un salon vocal. Pour m\'y ajouter tape `join`');
}
if (message.client.server.dispatcher) {
server.dispatcher.pause();
}
return message.say('⏸️ La musique à bien été mise en pause 👍')
}
}``
C:\Program Files\nodejs\node.exe .\index.js
connecté en tant que Musique_bot#6578 - (822768341248245780)
(node:5496) UnhandledPromiseRejectionWarning: ReferenceError: client is not defined
at PlayCommand.runVideo (c:\Users\axelm\OneDrive\Bureau\bot musique\commands\music\play.js:43:9)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
(Use node --trace-warnings ... to show where the warning was created)
(node:5496) 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(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:5496) [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.
VoiceChannel {type: 'voice', deleted: false, id: '822769048949227524', name: 'Général', rawPosition: 0, …}
Process exited with code 1
et là c'est l'erreur
@small tulip
Faut pas ping gratuitement comme ca, quelqu'un te répondra quand il pourra
ok
client is not defined
deso je savais pas
oui je sais mais c'est ce que j'ai expliqué
c'est dans un fichier que j'ai pas créer
C'est dans ce fichier, à cette ligne, et à cette colonne : c:\Users\axelm\OneDrive\Bureau\bot musique\commands\music\play.js:43:9
oui mais je ne comprend pas mon erreur
client il peut pas venir de nulle part donc vérifie où tu le définit
j'ai refait toute la vidéo mais... Rien
-_- oui je sais merci 😂😂 mais je ne vois pas l'erreur car j'ai suivi la vidéo et lui n'a aucune erreur
tu peux envoyer ce fichier au moins?
ah oui pardon
l'erreur ne vient pas de pause.js mais de play.js
``const { VoiceConnection } = require('discord.js');
const { Command, CommandoMessage } = require("discord.js-commando");
const ytdl = require('ytdl-core-discord');
module.exports = class PlayCommand extends Command {
constructor(client) {
super(client, {
name: 'play',
aliases: ['p'],
group: 'music',
memberName: 'play',
description: 'Permet de lire une musique depuis youtube.',
args: [
{
key: 'query',
prompt: 'Quel musique veux-tu lire mon ami ?',
type: 'string'
}
]
});
}
/**
*
* @param {CommandoMessage} message
* @param {String} query
*/
async run(message, { query }) {
await message.member.voice.channel.join().then((connection) => {
this.runVideo(message, connection, query)
});
}
/**
*
* @param {CommandoMessage} message
* @param {VoiceConnection} connection
* @param {*} video
*/
async runVideo(message, connection, video) {
const dispatcher = connection.play( await ytdl(video, { filter: 'audioonly' }), { type: 'opus'} );
client.server.dispatcher = dispatcher;
dispatcher.on('finish', () => {
message.member.voice.channel.leave();
});
}
}``
mais c'est bizarre le play marche bien sans le pause
client n'est pas défini ici
ok je dois faire quoi alors ?
dsl je viens tout juste de voir ton message en tout cas merci par contre je ne comprend pas se que je dois stoker dans message pour faire l'edit
vu que tu es dans une commande commando tu peux faire this.client au lieu de client
ok merci
ou faire comme avant un message.client
ok
tu envoie le contenu du message une fois modifié
oui
ReferenceError: server is not defined ça me met ça maintenant
va au fichier qu'il t'indique et cherche où se trouve server et essaie de lui donner une valeur
dans la console y'a 0 erreurs mais c'est quand j'utilise la commande ça envoi ça sur le serveur
il fait appelle a quoi je vois pas comment l'utiliser sur le message send par mon bot XD
c'est ça ?
bah par exemple si tu viens d'envoyer un message et que tu veux l'éditer
// message ici représente le message auquel le bot est en train de répondre
message.channel.send('Salut!')
.then((sentMsg) => sentMsg.edit('Voici le message édité'))
sentMsg là c'est le message de ton bot et que tu veux éditer
j'en sais rien moi c'est pas mon code
tu peux m'envoyer l'erreur complète que t'as eu dans la console?
merci je vais essayer
justement dans la console y'a rien
c'est dans le serveur
c'est le bot qui m'envoi ça en mp
ok bah je sais pas d'où vient l'erreur
c'est quelle commande que tu essaies?
message.channel.send(Embedmin)
.then((sentMsg) => setInterval(function(){sentMsg.edit('This is my new content!')}, 1000) ```
!pause j'ai envoyé le code plus haut
run ton code hein pour voir si c'est bon
mets message.client.server à la place de server
bah il manque une virgule
à toi de trouver où
ah nan my bad il manque une parenthèse
tu as pas fermé ton .then
encore une erreur: TypeError: Cannot read property 'dispatcher' of undefined
c'est ici que je le définis
manifestement ton server reste undefined
assure-toi que tu exécute ça avant de run la commande qui déclenche une erreur
je peux pas t'aider davantage
il faut que tu trouve toi même les causes de tes erreurs
execute quoi ?
ça
ok
@timid loom maintenant y'a plus aucune erreur mais la musique ne se met pas en pause
repasse sur le tuto du mec ptet que t'as oublié un truc
je vais voir mais dans la mesure où je l'ai recommencé 3 fois ça m'étonnerait
c'est bon merci
@timid loom
je reviens dans un moment je vais avoir besoin d'aide pour de l'opti XD
c'est sur des petites erreurs que les choses fonctionnent pas bien souvent
oui au début le play marchait pas à cause d'un point virgule -_- en programmation un point peut tout chnanger
Hellooo @ everyone (lol/20) 'ai besoin d'aide pour un bot discord discord.js 12.5.1
1 const Discord = require('discord.js');
2 module.exports = (client,message,user) => {
3 client.on('guildMemberAdd', (member) => {
4 let welcomeEmbed = new Discord.MessageEmbed()
5 .setColor("1")
6 .setTitle("2")
7 .addField(`<@${user.username}>`)
8 .setDescription("4")
9
10 client.channels.cache.get("798938575130460271").send(welcomeEmbed);
11 })
12 }
voici la commande, elle sert à afficher un message de welcome en embed
c'est un event en fait
Et voici l'erreur : ```js
ReferenceError: user is not defined
at Client.<anonymous> (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\events\welcome.js:25:22)
at Client.emit (events.js:315:20)
at Object.module.exports [as GUILD_MEMBER_ADD] (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\discord.js\src\client\websocket\handlers\GUILD_MEMBER_ADD.js:16:14)
at WebSocketManager.handlePacket (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT
V2.2\node_modules\ws\lib\event-target.js:132:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\ws\lib\websocket.js:825:20)
at Receiver.emit (events.js:315:20)
Tu utilises user alors qu'il n'existe pas
message.author.username à la place de user.username
@plain crystal
TypeError: Cannot read property 'author' of undefined
at Client.<anonymous> (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\events\welcome.js:7:30)
at Client.emit (events.js:315:20)
at Object.module.exports [as GUILD_MEMBER_ADD] (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\discord.js\src\client\websocket\handlers\GUILD_MEMBER_ADD.js:16:14)
at WebSocketManager.handlePacket (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\ws\lib\event-target.js:132:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\ws\lib\websocket.js:825:20)
at Receiver.emit (events.js:315:20)
@boreal edge et donc, il faudrait que je mette quoi ?
@pure raven il y a du mieux !
mais pourquoi ca me met undefined :
member.user.username
Bonjour,
voici mon code dans un fichier db.js, qui me permet de me connecter à ma bdd :
const mysql = require('mysql');
module.exports = {
execute() {
const db = mysql.createConnection({
host: '',
port: '',
user: '',
password: '',
database: '',
});
db.connect(err => {
if (err) throw err;
console.log(`[+] Bdd "" connecté !`);
});
},
};
mon pblm est que j'aimerai exporter la variable db dans un autre fichier pour interagir avec ma bdd, comment puis-je faire ?
t'use un handler ?
oui
donc t'as un index.js qui regroupe "tout"
effectivement
tu require un truc pour les commandes ?
pour la cmd où je veux utiliser db ?
ah
non c'était à moi
j'ai fait sa perso
.then(response => response.json())
.catch()
.then(data => {
let confirmed = data.confirmed.value.toLocaleString()
let recovered = data.recovered.value.toLocaleString()
let deaths = data.deaths.value.toLocaleString()
ligne 40-45, cela n'affiche aucune erreur quand je run le script @slim anvil
C’est quoi ton soucis ??
T’es okay mais met des .catch pour voir si tu reçois une erreur de l’api et met aussi des logs pour voir si déjà tu appelles bien ton script @keen narwhal
Oui mais toi ton bug c’était quoi
j'ai essayé avec le catch mais je crois pas que je l'ai mit au bon endroit.
Et pour les logs je rajoute un console.log(embed) ?
jsuis un peu perdu sur le coup
un console.log peu importe ce qu’il@y a dedans pour voir si ta commande est bien appelle ou non
Et le catch c’est à la suite des .thé
.then*
Juste .then devient .catch
Non
je te laisse regarder comment se met un .catch sur internet ce sera bien explique pour que tu comprennes je pense
j'ai regarder sur différents forum et j'ai donc remplacer le premier .then par .catch regarde se que sa à donner
c'est bon pour toi ? @slim anvil
Je regarde après mange @keen narwhal
Très bien, merci infiniment.
Et bonne ap ^^
Re! Vous savez vite fais ce que c'est comme method les undefined ?
Alors undefined en js = un type
et du coup c’est que ta valeur n’est pas défini
ok 🙂
1 const Discord = require('discord.js');
2 module.exports = (client, message, user) => {
3 client.on('guildMemberAdd', (member) => {
4
5 let channel = message.mentions.channels.first
6 let welcomeEmbed = new Discord.MessageEmbed()
7 .setColor("7FA4FF")
8 .setTitle(`🎉***Bienvenue ${member.user.username} sur DrixizeRP !*** 🎉`)
9 .setDescription(`@${users.tag}`)
10 .addField("pense à lire le règlement ici:", "<\#📰・reglement>")
11 .addField("le serveur est sous Whitelist, pour la passer rend toi ici:", "<\#🛃・candidature>")
12 .addField("pour toute question, tu peux les poser ici:", "<\#💭・général-étrangers>")
13
14 client.channels.cache.get("798938575130460271").send(welcomeEmbed);
15 })
16 }
TypeError: Cannot read property 'mentions' of undefined
at Client.<anonymous> (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\events\welcome.js:5:27)
at Client.emit (events.js:315:20)
at Object.module.exports [as GUILD_MEMBER_ADD] (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\discord.js\src\client\websocket\handlers\GUILD_MEMBER_ADD.js:16:14)
at WebSocketManager.handlePacket (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\ws\lib\event-target.js:132:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (E:\bureau\Dev Jeux\Dev Discord\DRIXIBOT V2.2\node_modules\ws\lib\websocket.js:825:20)
at Receiver.emit (events.js:315:20)
Soucis...........
En gros
Cet embed. J'ai rajouté une ligne pour rendre les # cliquable, et ca ne marche plus..... J'ai cette erreur. C'est la fameuse ligne qu'il y a en erreur
Dispo?
Je sors le toutou
Il est bo
@slim anvil Un shiba
Chien shiba ?
Oh ok pas mal
Personne arrive à m'aider ? 😥
message n'est pas défini
comment je règle ce problème ? je débute 🙂
mhh bah la je ne vois pas ce que font "message" et "user" dans tes arguments, je pense pas que ton handler fonctionne comme ça, c'est pas très logique ou alors c'est l'endroit où ta mis ton event qui n'est pas logique, m'enfin dans tout les cas y a un soucis de logique dans ton handler la 🤔
aussi, je ne comprends pas trop pourquoi un message interviendrait dans l'event guildMemberAdd ?
De base, peu importe la logique, ca marche ca :
C'est en voulant rendre les salons cliquables que ca a planté
bah oui
car c'est au moment où t'a ajouté la ligne 5
que ça a posé problème
car cette ligne 5 pose soucis
exactement
pourquoi "message" ?
je sais pas, c'est un dev qui m'a dit de mettre ca
j'enlève ?
Tu veux vocal ? Ce sera peut-être plus simple ? Avec un partage
tu ne peux pas mettre n'importe quoi n'importe où, si il ta dit de mettre ça, il a du mal comprendre ta demande ou alors lui non plus comprenait pas trop ce qu'il faisait 🤷♂️
t'es channels c'est toujours les même on est d'accord?
oui
euh viens dans les bannis
juste j'ai pas de micro donc je vais parler dans #sans-micro
Sharpei hehe
@keen narwhal
fetch(`https://covid19.mathdro.id/api`)
.then(res => res.json())
.then(data => {
let confirmed = data.confirmed.value.toLocaleString()
let recovered = data.recovered.value.toLocaleString()
let deaths = data.deaths.value.toLocaleString()
const embed = new Discord.MessageEmbed()
.setTitle(`Statistiques mondiales sur le COVID-19 🌎`)
.addField('Cas confirmés', confirmed)
.addField('Rétablie', recovered)
.addField('Décès', deaths)
message.channel.send(embed)
})
.catch(error => console.log('erreur reçu : ', error))
Bonsoir un amis a un prob et je comprend pas d'ou elle viens
Error: Cannot find module './config.json'
Require stack:
- C:\Users\Genet\Desktop\Fresnocity\index.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
at Function.Module._load (internal/modules/cjs/loader.js:725:27)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (C:\Users\Genet\Desktop\Fresnocity\index.js:6:14)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ 'C:\\Users\\Genet\\Desktop\\Fresnocity\\index.js' ]
@keen narwhal remplace par ce fichier et regarde tu recois quoi comme log dans ta console
j'en ai placé plusieurs a des endroits important savoir exactement ou ca peut s'arrêter ou non
j'ai essayé avec sa, et aucune erreur apparait
j'essai mtn avec sa
J'ai aucune erreur qui apparait quand j'apelle l'api @slim anvil ....
Ah bah c'est que ta commande est meme pas appelé
c'est normal ?
genre ya une solution?
ah bah ca je sais pas ca dépend de ton handler ou autre, tes autres commandes fonctionnent ?
oui
juste cette api fonctionne pas
sur le bot d'un pote elle marche, mais pas le miens
je comprend pas
oui mais si t'as pas les logs que je t'ai mis c'est que ta commande est pas passé
car le code est bon on est d'accord ?
non je pense juste que tu dois avoir un soucis sur ta commande si elle est pas apeplé
tes autres commandes ont la meme structure ?
je te montre un autre exemple de commande
celle là marche :
const { Command } = require('discord.js-commando');
const Discord = require('discord.js');
module.exports = class StatsCommand extends Command {
constructor(client) {
super(client, {
name: 'stats',
memberName: 'stats',
group: 'divers',
description: 'Affiche le nombre de serveurs Discord où est présent le bot.',
});
}
async run(msg) {
const embed = new Discord.MessageEmbed()
.setDescription(`Je suis présent sur **${this.client.guilds.cache.size} **serveurs :heart:`)
.setColor('RED')
;
return msg.say(embed);
}
};
c'est la même structure normalement
oui celle ci fonctionne
ce qui ya de plus sur celle qui marche pas c'est
const embed = new Discord.MessageEmbed()
.setTitle(`Statistiques mondiales sur le COVID-19 🌎`)
.addField('Cas confirmés', confirmed)
.addField('Rétablie', recovered)
.addField('Décès', deaths)
sinon le reste est pareil pour moi..... sa m'embête beaucoup pour le coup...
tu peux me screen ta console qui run quand tu execute ta commande stp ?
comme tu peut le voir, il se passe rien
yes mais la tu as pas appelé ta commande, si ?
si
avec le bon prefix etc ? 🤔
yes
@slim anvil j'ai oublié de copié les exemple, tu peu les renvoyer stp?
yes en mp
ok^^
Hey, j'ai un petit soucis avec un script que je suis en train de créer
Je fais une commande (NodeJS) pour ajouter une arme dans une liste JSON, sauf qu'au lieu de me mettre:
"weapon_musket": {
"name": "Musket",
"price": "50000",
"link": "https://fivem.net/"
}
Ça me met:
weaponID: {
"name": "Musket",
"price": "50000",
"link": "https://fivem.net/"
}
Quelqu'un aurait une solution ?
Mon code:
var new_weapon = {
weaponID: {
"name": weaponName,
"price": weaponPrice,
"link": weaponLink
}
};
weapons_list.push(new_weapon);
fs.writeFileSync(`./weaponslist.json`, JSON.stringify(weapons_list));
bah oui normal tu définis weapon_musket a aucun moment dans ton objet
quand tu fais ça, tu ne récupères pas la valeur de ta variable au cas ou
Si si c'est défini, j'ai juste oublié de le mettre
args = message.content.split(' ').slice(2);
let weaponID = args.shift();
args = message.content.split(' ').slice(3);
let weaponPrice = args.shift();
args = message.content.split(' ').slice(4);
let weaponName = args.shift();
args = message.content.split(' ').slice(5);
let weaponLink = args.shift();
weaponID est bien récupéré
Cliquez sur [📝](#javascript-typescript message) pour accéder au message
quand tu fais ça, tu ne récupères pas la valeur de ta variable au cas ou
Ah
comment je peux faire du coup pour que mon json ressemble à ça ?
"weapon_musket": [{
"name": "Musket",
"price": "50000",
"link": "https://fivem.net/"
}]
[]
non du tout
const new_weapon = {
[weaponID]: {
"name": weaponName,
"price": weaponPrice,
"link": weaponLink
}
}
comme ça
J'ai encore un petit soucis, j'arrive pas à récupérer "weapon_musket" 
J'utilise json.parse pour récup en array
weapons_list = JSON.parse(fs.readFileSync(`./weaponslist.json`));
Ma console return:
[ { weapon_musket:
{ name: 'Musket',
price: '50000',
link: 'https://fivem.net' } }]
bah là pour le récup ça fait : weapon_list[0].weapon_musket
si tu log ça
ça va te log ton name, price, link
Ah j'suis un bouffon 
oui mais là lartaxx tu pars du principe que c'est 0
Va falloir que j'arrive à récup la key dans ma liste du coup
après il peut adapter comme il veut, il a au moins la structure pour choper son truc
Enfaite c'est juste la manière dont tu crées ton object qui est pas bonne
le key tu pourrais juste le mettre dans ton objet aussi
et tu ferais juste un .find
Parce qu'au niveau de mon fichier json j'ai ça:
[{"weapon_musket":{"name":"Musket","price":"50000","link":"https://fivem.net"}},{"weapon_rpg":{"name":"RPG","price":"5","link":"https://fivem.net"}}]
donc faudrait mieux que j'passe ça en:
[{"name":"Musket", "id": "weapon_musket","price":"50000","link":"https://fivem.net"}]
``` ?
bah ce serait plus simple mais tu peux aussi garder l'autre manière de faire mais elle a moins d'intérêt je trouve
Thx j'ai enfin réussi, merci beaucoup pour votre aide
if (message.content.startsWith("!kickvoice")) {
message.mentions.users.first().user.voice.setChannel(null)
}
Sa me demande de definir Voice car c'est pas defined Une idée plz ?.
tu dois get le member on te l'a deja dit
Bonsoir,
j'ai une bdd comme ça, et au niveau de motif_w j'aimerai pouvoir récupérer uniquement le motif qui m'intéresse (par ex pour avoir une liste des warns, des ids et des motifs qui correspondent, ou pouvoir supprimer un warn, donc un motif), mais je ne sais pas comment faire.
Hey, il faut déjà selon moi que tu fasses un array avec tout ça ( split ), puis tu find ;)
["teste", "fro", "Mage"].find(e=>e === "Mage")
Par exemple tu vois
Après là c'est useless
Mais tu peux toujours mettre une autre condition
tu enregistres pas les données comme il le faut, tu devrais pas avoir un champ avec tous les warns, mais une table warn avec une entrée pour chaque warn du user
ça a pas trop de sens la manière dont tu l'as fais , surtout ok tu vas transformer ta string en array en splitant avec un ","
mais si dans la raison il y a une "," tu fais comment du coup ? 🤔
Oof oui
😂
Après @slim anvil tout dépend ce qu'il a fait
Si c'est pas un système de warns ça peut être bien, même si je trouve ça quand même bizarre
par ex pour avoir une liste des warns
Donc bon
Si tu voulais vraiment tout regrouper en 1 Pierre tu devrais passer par du noSql
comme ça tu peux enregistrer des objets, array directement rattaché à ton user
mais la en passant comme ça c'est vraiment pas la bonne chose à faire
Effectivement au temps pour moi
let messageArray = message.content.split(" ")
let id = messageArray[1]
let user = message.guild.members.cache.get(id)
let isblacklisted = new Discord.MessageEmbed()
.setTitle(`${langage[alangage].isblacklist_t}`)
.addField(`${langage[alangage].blacklist_fi}`, `${reason}`)
.setFooter(`${langage[alangage].blacklist_fo}`)
user.send(isblacklisted).then(r => console.log(r))
et j'ai l'erreur cannot find cache mais l'id est bon vu que ca blacklist, c'est au niveau du mp que ca bug, une alternative?
Bonjour
nan mais j'y ai penser ça, j'ai changer la ',' 😅
ouais mais dcp t'as la masse de ligne, genre autant que de warn qu'à le user et ça pour chaque user 🤔
oui mais du coup faut pas faire du sql comme je t'ai dis mais du nosql ^^
faire du nosql en sql ca n'a aucun sens
dcp en sql tu ferai comment ?
bah j'aurais une table warn directement
genre une table warn avec une ligne par warn ou une ligne pas id ? 🤔
pcq si tu fais une ligne par id, bah ça revient à ce que j'ai fais, et une ligne par warn, bah comme je disais ça fera la masse de ligne dans la table.
une ligne par warn
oui mais c'est pas tes 200 warns tu sais qui vont changer quelque chose
Fais comme tu veux je suis juste entrain de te dire de faire du noSQL si tu veux faire comme tu as fais
ok mrc
https://mad.ac/ Savez-vous quel technologie est utilisé pour ce site ?
J'aime trop le style
la version mobile est super en plus 
ça a tout l'air d'etre de l'html classique avec jquery
Oh baleze !
Tu connaissais le site ?
Non j'ai juste mis en mode téléphone et c'est pas dingue
mais ouais le visu et l'idée c'est top par contre
ah ouais okay si my bad le mobile work faut juste pas baisser la taille de l'écran quand c'est deja chargé 👍
Bonjour à tous, j'aimerai savoir si j'envoie un objet créé en js avec ajax et je le récupère en lua, lua va t-il le considérer comme un objet et je vais pouvoir le manipuler normalement ? Peut-être question bête je sais pas, ou il est préférable de par exemple le convertir en tableau et le faire passer en tant que tableau ?
Salut Victor 👀
Coucou Wailronette

Hey les bg je reviens encore vers vous 😄 j'ai voulu que mon code ce refresh tout les 30sec un truc dans le genre voici le code
client.on("message", message => {
if (message.author.bot) return;
if (message.channel.type == "dm") return;
if (message.content == prefix + "serveur") {
Gamedig.query({
type: 'garrysmod',
host: '149.202.89.98',
port: '27015'
}).then((state) => {
setTimeout(function(){
let embed = new Discord.MessageEmbed()
.setTitle(state.name)
.setColor('#71b4d8')
.addField("Map :map:", state.map, true)
.addField("Ping :round_pushpin:", state.ping, true)
.addField("Nombre de joueurs :busts_in_silhouette:", `${state.players.length}/${state.maxplayers}`, true)
.addField("Se connecter :paperclip:", state.connect, true)
.addField("Mot de passe :lock:", state.password ? 'Oui' : 'Non', true)
.setFooter('AcruxRôleplay', 'https://cdn.discordapp.com/attachments/820704246760341534/822750123615715379/logo_acrux.png')
.setTimestamp()
message.channel.send(embed)
}).catch((error) => {
console.log("Le serveur est Hors Ligne.");
})
}, 3000);
}})
L'erreur
(node:10204) UnhandledPromiseRejectionWarning: TypeError: setTimeout(...).catch is not a function
at C:\Users\privé\Desktop\acruxbot\index.js:147:15
(Use `node --trace-warnings ...` to show where the warning was created)
(node:10204) 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(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:10204) [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.
Heu chépa je croyais que fallais faire cela
Bonjour qui pourrait m'aider , j'ai un souci avec mon bot discord il envoie deux fois le même message
Sans voir le code ca va être compliqué de t'aider
car t'as sûrement deux instances ouvertes
Bonjour,
j'ai un pblm, en gros je veux savoir dans ma bdd la nombre de fois qu'apparait une ligne avec l'id d'un membre (pour avoir le nbr de warns), donc j'ai fais ça :
const taille = rows.length;
let count = 0;
let nbr = 0;
while (count <= taille) {
if ((rows[count].id) === (mbr.id)) {
nbr += 1;
}
count += 1;
}
sauf que ça me sort de la propriété .id de rows[count].id n'est pas définie, pourtant si je fais console.log(rows[count].id) ça marche très bien
TypeError: Cannot read property 'id' of undefined
(me mentionner dans la réponse svp)
ok merci
pour ton probleme initial le soucis vient du fait que tu attend que count soit inférieur ou égale à taille, et comme les indexes commence à 0, pour une taille de 8 par exemple le dernier index c'est 7 et pas 8
du coup dans ton code tu aurais du faire while(count < taille)
aussi étant donnée que tu connais par avance le nombre d'itération a effectuer, il serait plus judicieux d'utiliser une boucle for plutot qu'une boucle while
Oui g changer en for. Mais merci 😊
Bonjoour j'ai un pblm je suis entrais de coder un bot musique mais une erreurs pouvez vous m'aider svp meric a vous
@bold flower c'est npm i discord.js-commando
relis mon message tu as mal pris la commande
Yo, désolé de déranger mais j'ai un petit soucis avec mysql
Donc voici mon code:
let prefix;
bot.db.query(`SELECT prefix FROM prefix WHERE guild_id = '${message.guild.id}'`, async (err, results) => {
if (results.length < 1) {
prefix = config.prefix;
console.log("1" + err)
} else {
prefix = results[0].prefix
console.log("2" + err)
}
})
Le probleme est que la variables prefix ne prend pas la valeur demandé quand results.lenght <1 et mon console.log("1" + err) me retourne null
Et pareil si y'a une valeur, prefix ne la prend pas et mon deuxieme console.log return aussi null
Ca fait 1 heure que je suis dessus et je sais pas trop comment regler cela^^
En vous remerciant d'avance pour votre aide
let prefix;
bot.db.query(`SELECT prefix FROM prefix WHERE guild_id = '${message.guild.id}'`, (err, results) => {
if (!results[0]) {
prefix = config.prefix;
console.log("1" + err);
} else {
prefix = results[0].prefix;
console.log("2" + err);
}
})```
Toujours le meme probleme
Peut être car tu définis mal ton prefix 🤔
Moi je l'exports mon prefix
Dans un fichier .js
J'ai ceci:
exports.PREFIX = "/";
Nan car en haut si je met let prefix = "!"; par exemple pour test sii ca vient du code pour recup leprefix ou tu code qui fait fonctionner le prefix, quand je fait par exemple !help cela fonctionne donc le probleme vient bien du code que j'ai mis ici
Ensuite je recupere donc le prefix dans un fichier config.json donc y'a pas de probleme
Je ne le definis pas ^^
je me suis juste mal exprimé c'est si je met let prefix = "!"; plutot que let prefix;
En gros il vient regarder si en base il existe pour le set avec ce qu’il a d’enregistré sinon il met celui par default
Oui j'avais compris
Mais du coup @tribal tide sans résoudre ton problème ou quoi
Tu pourrais juste faire au début let prefix = config.prefix
Et puis tu fais ta requête si tu l’as tu le modifies sinon tu le laisses
Oui mais bon c'est du detail ^^
Et ca regle pas le probleme, que d'ailleurs je ne comprends pas, il n'y a aucune raison pour que ca fasse ca :/
Puis pareille tu log err mais ne pas avoir de résultat ne signifie pas avoir une err d’où le null
oui mais je log erreur pour voir si il y'avais une erreur justement
Moi j'ai une technique de barbare 😂
Oui et à ça je te répond là même chose si tu veux trigger ton err tu fais juste un if err car là c’est juste qu’il trouve rien donc tu auras pas d’erreur
Montre ta table pour voir
si la requête SQL est bonne
Ah oui mais ok pour être sûr en gros là ton soucis c’est pas de récupérer le prefix existant mais justement quand il en a pas de venir set celui par default ?
En gros on lit la bdd
Si y'a rien on set la variable prefix avec la valeur qui se trouve dans mon fichier config
et sinon ( si il existe dans la bdd )
on recup prefix et on set la variable prefix avec cette valeur
Bonjour !
je cherche a faire que se code ne s'effectue que dans mon serveur j'ai mis cette ligne pour qu'il le fasse mais javascript if (message.guild.id == "780378714826342431") return;
il ne fonctionne pas pouvez vous m'aider ? merci beaucoup 🙂
if (message.guild.id = "id de ton server") {
ton code
} else return;
d'accord merci je te mentionne si ca va pas
Le else return n'est pas forcément obligatoire 😉
oui mais c'est surtout si il veux mettre un msg d'erreur pour les autres serveurs il a juste ajouter `message.channel.send("son msg d'erreur")
nan pas besoin de message
Sa si tu veut @keen narwhal
Et sinon pour mon probleme personne n'a d'idée ? :/
@dire latch merciiiii je t'aimeeee
Dr 🙂
ok @tribal tide step by step, tu peux log results déjà et me dire tu obtiens quoi dans ton cas
Je met un truc de ce genre c'est bon ?
if(err) {
console.log(err)
}
la ca va juste te montrer tes erreurs
ha nan ok je suis con
oki
donc du coup oui tu peux check results.length === 0 ou pleins d'autre façon, mais donc ma solution première reste la plus logique de le define dès le début dans ton let prefix = config.prefix et de uniquement le changer si tu as des résultats, car tant qu'à faire autant pas le define pour rien pour ensuite lui dire tiens si j'ai rien tu mets ça
tu peux lui set dès le début
ok je fait ca deja
let prefix = config.prefix
bot.db.query(`SELECT prefix FROM prefix WHERE guild_id = '${message.guild.id}'`, async (err, results) => {
if (err) return
if (results?.length > 0) {
prefix = results[0].prefix
}
})
déso pour l'indentation discord c'est vraiment nul pour ça
ca ne fonctionne pas :/
enfin si pour le prefix par defauts
mais pas quand je le change
donc quand tu as des résultats ?
?
ca ne te met pas le bon prefix lorsque tu as des results en bdd ?
Yep
ca laisse celui par defauts
ca ne met pas celui qu'il est censé trouver en bdd
log ton results encore une fois plz
okay et now si tu fais un results.length
je log un result.length ?
ca log 1
Mais enfaite c'est normal 
Ah oui mais normal enfaite j'avais pas fais gaffe
Montre un peu la suite du code ? 🤔
ca vient pas de la suite du code normalement
car ca fonctionne avec le prefix par defauts ^^
Oui mais comme le prefix est deja set il est peut etre chargé avec celui
Je veux juste voir la suite pour voir
if (prefix == commande.slice(0, 1)) {
let commandFile =
bot.commands.get(commande.slice(prefix.length)) ||
bot.commands.get(bot.aliases.get(commande.slice(prefix.length)));
if (commandFile) commandFile.run(bot, message, args);
}
Okay je pense que c'est pour ça, car tes commandes doivent etre chargé avant que ton nouveau prefix soit récupéré
Bah je pense pas car avec mon ancien systeme de prefix ( j'utilisé enmap et pas mysql ) ca fonctionnait tres bien
sachant que la parti au dessus été presque la meme
Pour être sur, fais juste un setTimeout(() => { console.log(prefix) }, 2000)
voir il te return quoi après 2000ms
si il te return le bon prefix c'est qu'il est bien changé mais tes fichiers sont chargés avant de le récupérer
Le mieux est pas ma solution ?
Genre, il met 2 fois un commandFile ?
Ou c'est useless ?
je met ca ou ducoup ?
Juste après pour voir si ca marche
Et si ca marchait avec Enmap c'est surement car c'est de la data stocké en local, alors que ta requete SQL tu dois attendre une réponse du serveur
DOnc tu peux faire une promise
je l'ai mis en dessous de
if (prefix == commande.slice(0, 1)) {
let commandFile =
bot.commands.get(commande.slice(prefix.length)) ||
bot.commands.get(bot.aliases.get(commande.slice(prefix.length)));
if (commandFile) commandFile.run(bot, message, args);
}
et ca log ?
ce qui est bien la valeurs dans la bdd
Donc c'est bien ce que je dis tes commandes son chargés avant de recevoir ta requête
donc je doit faire quoi ? mettre le code qui gere mon handler en dessous de mon event msg ?
Bon bah nan ^^
J'ai mis le code qui gere mon handler en dessous ca change rien
Oui car ça ne change rien de faire ça, tu peux faire une promise pour attendre le retour de ta requete pour ensuite passer à la suite
Ou alors dans ta requete mysql au moment ou tu as ta réponse venir ici appeler ton handler de commands
sauf que ce code est dans l'event message
et le code qui gere le commands handler et hors de l'event message
donc jsp comment je peut faire
au demarrage du bot
au start du bot je gere la valeur de la variable prefix
ensuite je laisse ca: ```js
if (prefix == commande.slice(0, 1)) {
let commandFile =
bot.commands.get(commande.slice(prefix.length)) ||
bot.commands.get(bot.aliases.get(commande.slice(prefix.length)));
if (commandFile) commandFile.run(bot, message, args);
}
C'est ca ?
ha oui mais non je peut pas
je suis debile
re bonsoir, pour mettre un lien dans le titre de l'embed c'est bien .setURL mais ou ?
svp merci
là ton embed tu le crée via un objet donc tu peux juste mettre url: 'ton url'
Bonjour 👋
Comment faire pour que mon bot exécute une cmd soit autorisé que pour moi ou un certains id ?
Me mentionner ;)
Merci enfaite
tu vérifie que l'id de la personne qui exécute la commande fasse bien partie des ids autorisés
donc que le message.author.id
soit inclus dans un tableau d'ids autorisés
Donc :
if message.author.id "mon.id" return;
message.channel.send "tu ne peux pas";
En gros
plutôt l'inverse si tu veux exécuter une commande
if (!authorizedUsers.includes(message.author.id)) return message.channel.send("tu ne peux pas!");
// le reste de ta commande
ici authorizedUsers c'est juste un tableau d'id
const authorizedUsers = ["id", "id"];
if (!authorizedUsers.includes(message.author.id)) return message.channel.send("tu ne peux pas!");
par ex
D'acc merci @oak turret ;)
tu peux faire une bdd, tout ce que tu veux enfaite
tu peux rajouter autant d'ids que tu veux
yep
il viendra check toutes les entrées, et si une des entrées === à l'id du mec qui fait la commande ça return le message
bah si tu le fais en bdd, oui il te faut une table
users par ex
et après tu fais tes colonnes comme bon te semble
Et tout en haut on doit pas définir authorizedUsers ?
en mettant l'id du mec dans une colonne ^^
bah du coup, t'auras juste à faire un SELECT tacolonneiduser FROM tatable
On va rester comme sa
je t'ai fais un exemple
Yes
Cliquez sur [📝](#javascript-typescript message) pour accéder au message
const authorizedUsers = ["id", "id"];
if (!authorizedUsers.includes(message.author.id)) return message.channel.send("tu ne peux pas!");
par ex
bah voilà ^^
np^^
alors le bot se répond à lui même
sur on message faut toujours ignorer les messages des bots
if (message.author.bot) return;
j'ai un problème j'ai commencer a coder un bot discord, j'en avais coder en python mais bon j'avais atteint la limite, mais je n'arrive pas a configurer node Js dans visual studio code
avec node.js
bah faut installer nodejs
et puis voilà
dans ton vscode
tu npm i tes packages
et c’est tout
npm init aussi
mais voilà
Bonjour, existe t-il une functions pour récupérer l'id d'un message, par exemple j'envois le message avec le bot message.channel.send('test') puis après j'aimerais récupérer l'id du message
test = a mon message @oak turret ?
Yep
Yep sa marche merci 👍
Hello, j'ai fini la première version de mon bot, je cherche désormais à l’héberger gratuitement, quelqu'un aurait une idée ?
Gratuitement ça va être compliqué
t'as Heroku mais c'est pas ouf, t'as une offre gratuite mais t'as un quota de ressources
sinon si t'as un autre pc, tu le laisses tourner en boucle :p
np
bonsoir, j'ai une question.
Comment je pourrais faire pour ajouter un embed dans cette commande ?
const { Command } = require('discord.js-commando');
module.exports = class ReplyCommand extends Command {
constructor(client) {
super(client, {
name: 'say',
memberName: 'say',
group: 'divers',
description: 'Reply.',
clientPermissions: ['SEND_MESSAGES'], // le bot doit avoir la permission d'envoyer des messages
throttling: {
usages: 2,
duration: 10,
},
args: [
{
key: 'text',
prompt: 'Quel texte voulez-vous que le bot dit ?',
type: 'string',
},
],
});
}
async run(msg, { text }) {
msg.say(`${text}`);
}
};
en gros que le message retourné sois en embed
bah tu fais une variable pour définir ton embed et après à la place de msg.say
Tu mets msg.channel.send(le nom de ta variable)
@keen narwhal
un exemple si possible ? première fois que je m'attaque au embed.... @topaz oar
Oui je t’envoie ça dans 5min
Très bien, merci bcp
T'as 2 options
soit tu import MessageEmbed de discord.js et tu le require
soit tu envoies un embed en objet
comme tu veux
donc soit
const {MessageEmbed} = require('discord.js');
async run(msg) {
let embed = new MessageEmbed()
.setColor()
.setTitle()
etc...
}
soit
msg.channel.send({embed: {
color: color,
title: title,
etc..
}})
oui mais là il use commando donc si il fait ta manière ça fonctionnera pas
il faut qu'il importe MessageEmbed()
commando 🥲
?
tu me conseil quoi?
j'aime pas
en quoi t'aimes pas ?
une question d'habitude surement
et tu restes en commando mtn ?
bien sûr
tu verras ton code sera beaucoup + lisible, ça passera beaucoup mieux
puis t'as pleins de trucs que t'auras pas à faire qui est inclut dans commando
genre les prompter par exemple
okok je vois merci je checkrais alors la prochaine fois !
^^
re
j'ai mit :
const { Command } = require('discord.js-commando');
const {MessageEmbed} = require('discord.js');
module.exports = class ReplyCommand extends Command {
constructor(client) {
super(client, {
name: 'say',
memberName: 'say',
group: 'divers',
description: 'Reply.',
clientPermissions: ['SEND_MESSAGES'], // le bot doit avoir la permission d'envoyer des messages
throttling: {
usages: 2,
duration: 10,
},
args: [
{
key: 'text',
prompt: 'Quel texte voulez-vous que le bot dit ?',
type: 'string',
},
],
});
}
async run(msg) {
let embed = new MessageEmbed()
.setColor(`BLUE`) // ou .setColor(`#0099ff`)
.setTitle(`test`)
.setTimestamp() // Vous pouvez passer un objet Date() en argument
}
};
mais quand je fait say et que je dit ce que je veut que le bot répond ya aucune réponse
merde
update j'ai oublié lol
new problème
enfaite le message que le bot envoi c'est "test" alors que moi je veut qu'il envoi ce que j'ai demandé à envoyer.
j'ai essayé en faisant sa :
const { Command } = require('discord.js-commando');
const {MessageEmbed} = require('discord.js');
module.exports = class ReplyCommand extends Command {
constructor(client) {
super(client, {
name: 'say',
memberName: 'say',
group: 'divers',
description: 'Reply.',
clientPermissions: ['SEND_MESSAGES'], // le bot doit avoir la permission d'envoyer des messages
throttling: {
usages: 2,
duration: 10,
},
args: [
{
key: 'text',
prompt: 'Quel texte voulez-vous que le bot dit ?',
type: 'string',
},
],
});
}
async run(msg) {
let embed = new MessageEmbed()
.setColor(`BLUE`) // ou .setColor(`#0099ff`)
.setTitle(`${text}`)
.setTimestamp() // Vous pouvez passer un objet Date() en argument
msg.channel.send(embed)
}
};
sans succès
donc sa ? :
async run(msg, {text}) {
let embed = new MessageEmbed()
.setColor(`BLUE`) // ou .setColor(`#0099ff`)
.setTitle(`${text}`)
.setTimestamp() // Vous pouvez passer un objet Date() en argument
msg.channel.send(embed)
}
oui
mais du couo
couo
coup
quand tu fais ta comande
l'embed s'enverra après ta réponse au prompt
oui normal, pourquoi je pourrais faire autrement ?
?
oui tu pourrais
si tu fais prompt: "",
bah tu feras tacommande prompt
et ça enverra
prompt: "" ???
""
prompt: ""
oui
ok je vais faire sa
De rien de t’avoir convaincu 
xD merci Enzo en effet :p
sa marche, c'est niquel merci
np
une dernière question
dis moi
concernant les embed
yep
j'utilise aussi ce format dans mon bot:
if (command === 'avatar') {
if (args[0]) {
// Change `getUserFromMention` to `getUserFromMentionRegEx` to try the RegEx variant.
const user = getUserFromMention(args[0]);
if (!user) {
return message.reply('Please use a proper mention if you want to see someone else\'s avatar.');
}
return message.channel.send(`Nom: **${user.username}** avatar: ${user.displayAvatarURL({ dynamic: true })}`);
}
return message.channel.send(`${message.author.username}, Votre avatar: ${message.author.displayAvatarURL({ dynamic: true })}`);
}
});
bah du couo
si je veut embed la réponse sur ce format faut faire pareil qu'avec l'autre ?
ouais mais du coup ta commande est obso là
faut faire une commande avec commando
donc un new fichier.js
et dans ton run(message)
tu mettras message.author.displayAvatarURL() comme tu as fais
nan nan elle marche celle-ci
oui?
okok donc je crée un new fichier ok je fait sa bouge pas je vais essayé sa
et après ainsi de suite pour toutes tes fonctionnalités 😉
oula
je crois j'ai fait dla merde
function getUserFromMentionRegEx(mention) {
const matches = mention.match(/^<@!?(\d+)>$/);
// The id is the first and only match found by the RegEx.
// However the first element in the matches array will be the entire mention, not just the ID,
// so use index 1.
const id = matches[1];
return client.users.cache.get(id);
}
client.on('message', message => {
if (!message.content.startsWith(prefix)) return;
const withoutPrefix = message.content.slice(prefix.length);
const split = withoutPrefix.split(/ +/);
const command = split[0];
const args = split.slice(1);
if (command === 'avatar') {
if (args[0]) {
// Change `getUserFromMention` to `getUserFromMentionRegEx` to try the RegEx variant.
const user = getUserFromMention(args[0]);
if (!user) {
async run(msg, message.author.displayAvatarURL()) {
let embed = new MessageEmbed()
.setColor(`BLUE`) // ou .setColor(`#0099ff`)
.setTitle(`message.author.displayAvatarURL()`)
.setTimestamp() // Vous pouvez passer un objet Date() en argument
msg.channel.send(embed)
}
return message.reply('Please use a proper mention if you want to see someone else\'s avatar.');
}
return message.channel.send(`Nom: **${user.username}** avatar: ${user.displayAvatarURL({ dynamic: true })}`);
}
return message.channel.send(`${message.author.username}, Votre avatar: ${message.author.displayAvatarURL({ dynamic: true })}`);
}
});
const { Command } = require('discord.js-commando');
const {MessageEmbed} = require('discord.js');
function getUserFromMentionRegEx(mention) {
const matches = mention.match(/^<@!?(\d+)>$/);
// The id is the first and only match found by the RegEx.
// However the first element in the matches array will be the entire mention, not just the ID,
// so use index 1.
const id = matches[1];
return client.users.cache.get(id);
}
module.exports = class ReplyCommand extends Command {
constructor(client) {
super(client, {
name: 'avatar',
memberName: 'avatar',
group: 'divers',
description: 'Reply.',
clientPermissions: ['SEND_MESSAGES'], // le bot doit avoir la permission d'envoyer des messages
throttling: {
usages: 2,
duration: 10,
},
args: [
{
key: 'text',
prompt: "Quel texte voulez-vous que le bot dit ?",
type: 'string',
},
],
});
}
async run(msg, message.author.displayAvatarURL()) {
if (!message.content.startsWith(prefix)) return;
const withoutPrefix = message.content.slice(prefix.length);
const split = withoutPrefix.split(/ +/);
const command = split[0];
const args = split.slice(1);
let embed = new MessageEmbed()
.setColor(`BLUE`) // ou .setColor(`#0099ff`)
.setTitle(`message.author.displayAvatarURL()`)
.setTimestamp() // Vous pouvez passer un objet Date() en argument
msg.channel.send(embed)
}
};
j'ai merdé ou c'est good ?
ta fonction fonctionnera pas, ton run ton message.author etc ça a rien à faire là dans ça, ton if(!message.content) etc vire le aussi
puis tout enfaite après sauf ton embed
ah merde
mais du coup tu m'avais dit de le mettre dans run
AHHHH
donc
:
async run(msg) {
let embed = new MessageEmbed()
.setColor(`BLUE`) // ou .setColor(`#0099ff`)
.setTitle(`${message.author.displayAvatarURL()}`)
.setTimestamp() // Vous pouvez passer un objet Date() en argument
msg.channel.send(embed)
??
pourquoi sa me l'affiche sous forme de lien ?
bah parce que dans un title ça l'affichera jamais
c'est dans ton .setImage() ou ton .setThumbnail()
ah d'accord je fait sa
bonsoir, si vous pouvez m'aider :
je vous remerci d'avance me mentionnez
l'image en + grande
merci d'avance
Sa sert à rien de le mettre en async 🤔 @keen narwhal
bonsoir, j'ai voulu faire une commande ban, seulement je comprend pas pourquoi elle marche pas... quand je veut ban rien ne ce passe.
const Discord = require('discord.js');
module.exports = {
name: "ban",
description: "Kicks a member from the server",
async run (client, message, args) {
if(!message.member.hasPermission("BAN_MEMBERS")) return message.channel.send('You can\'t use that!')
if(!message.guild.me.hasPermission("BAN_MEMBERS")) return message.channel.send('I don\'t have the right permissions.')
const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
if(!args[0]) return message.channel.send('Please specify a user');
if(!member) return message.channel.send('Can\'t seem to find this user. Sorry \'bout that :/');
if(!member.bannable) return message.channel.send('This user can\'t be banned. It is either because they are a mod/admin, or their highest role is higher than mine');
if(member.id === message.author.id) return message.channel.send('Bruh, you can\'t ban yourself!');
let reason = args.slice(1).join(" ");
if(!reason) reason = 'Unspecified';
member.ban(`${reason}`).catch(err => {
message.channel.send('Something went wrong')
console.log(err)
})
const banembed = new Discord.MessageEmbed()
.setTitle('Member Banned')
.setThumbnail(member.user.displayAvatarURL())
.addField('User Banned', member)
.addField('Kicked by', message.author)
.addField('Reason', reason)
.setFooter('Time kicked', client.user.displayAvatarURL())
.setTimestamp()
message.channel.send(banembed);
}
}
Possible de m'éclaircir ?
Voici l'erreur dans la console :
(node:37009) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Message
at RequestHandler.execute (/root/bot/node_modules/discord.js/src/rest/RequestHandler.js:154:13)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async RequestHandler.push (/root/bot/node_modules/discord.js/src/rest/RequestHandler.js:39:14)
at async TextChannel.bulkDelete (/root/bot/node_modules/discord.js/src/structures/interfaces/TextBasedChannel.js:333:9)
(node:37009) 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(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:37009) [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.
C'est pas mon code, c'est une personne qui dev un bot
Et il cherche a comprendre
Bonjour qui saurais faire / ou avoir du code déja fait pour faire un systeme de status qui ce met a jour tous seul dans un meme channel et qui fait sa par exemple :
:checkcheck: Site :web:
En ligne - 6ms
:checkcheck: Serveur GTA :web:
En ligne - 5ms
:checkcheck: Serveur GMOD:web:
En ligne - 5ms
yop j'aimerais savoir ou je pourrais apprendre le js et se qu'y est recommander de faire quand on commence a l'apprendre merci d'avance d'ailleurs ^^
je te conseille d'expérimenter des trucs simple
apprend à "maîtriser" le DOM
voir ce que tu peux faire avec
et après bah fixe toi des objectifs !
sinon va sur google t'en as des complets à peu près partout
Bonsoir j'ai voulu que mon embed s'actualise j'ai trouver setInterval sur le web je croyais que c'était sa donc j'ai essayer le prb ses que mon message s'envoie plusieur fois au lieu qu'il s'actualise pouvez-vous m'aider ?
tu l'envoies une fois puis tu setInterval pour l'éditer par exemple
Je suis obligé de l'éditer, je peut pas qu'il s'actualise automatiquement car ses juste pour que les informations s'actualise ( nombre de joueurs , ping )
Yep t'es obligé
Dac merci pour edit je doit let embed ?
Sinon tu peux à chaque fois renvoyer un message mais ça fera une notif
Si il y a un embed oui
Ok merci beaucoup
client.on("message", message => {
if (message.author.bot) return;
if (message.channel.type == "dm") return;
if (message.content == prefix + "serveur") {
Gamedig.query({
type: 'garrysmod',
host: '149.202.89.98',
port: '27015'
}).then((state) => {
let embed = new Discord.MessageEmbed()
.setTitle(state.name)
.setColor('#71b4d8')
.addField("Map :map:", state.map, true)
.addField("Ping :round_pushpin:", state.ping, true)
.addField("Nombre de joueurs :busts_in_silhouette:", `${state.players.length}/${state.maxplayers}`, true)
.addField("Se connecter :paperclip:", state.connect, true)
.addField("Mot de passe :lock:", state.password ? 'Oui' : 'Non', true)
.setFooter('AcruxRôleplay', 'https://cdn.discordapp.com/attachments/820704246760341534/822750123615715379/logo_acrux.png')
.setTimestamp()
message.channel.send(embed)
}).catch((error) => {
console.log("Le serveur est Hors Ligne.");
})
} 6000;
})
setInterval(() => {
const embed = new Discord.MessageEmbed()
.setTitle(state.name)
.setColor('#71b4d8')
.addField("Map :map:", state.map, true)
.addField("Ping :round_pushpin:", state.ping, true)
.addField("Nombre de joueurs :busts_in_silhouette:", `${state.players.length}/${state.maxplayers}`, true)
.addField("Se connecter :paperclip:", state.connect, true)
.addField("Mot de passe :lock:", state.password ? 'Oui' : 'Non', true)
.setFooter('AcruxRôleplay', 'https://cdn.discordapp.com/attachments/820704246760341534/822750123615715379/logo_acrux.png')
.setTimestamp()
}, 30)
message.edit(embed);
Je suppose que j'ai fait nimp car il y a une erreur
Voici l'erreur
message.edit(embed);
^
ReferenceError: message is not defined
at Object.<anonymous> (C:\Users\...\Desktop\acruxbot\index.js:164:1)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47
effectivement puisque tu ne récupère pas le message que tu as envoyé
@keen narwhal stv je peux te proposer sa, on sais quand il démare ect vien mp stv
il se modifie tout les 5 seconde
automatiquement
exemple
Il donne bcp d'info ton status la
on peux modif 😉
on peut enlever des chose ?
Bas pourquoi pas
Je vois qu'on a affaire a un businessman
XD
nan mais il crois que c'est gratuis O_o
@hybrid berry sa m'intrigue, tu était pas sur uranium avant ?
alias The100
zen x)
je connait
client.on('message', (message) => {
const toSend = message.content.slice(prefix.length).trimStart().slice(command.length)
if(!toSend) return message.channel.send(" Give a sentence to say.")
if (message.content.toLowerCase() == Config.prefix + 'ano <notre message>') {
if (message.author.bot) return;
message.delete();
message.channel.send('Test', {
embed: {
color: '#0e674',
title: 'test',
description: toSend,
author: { name: 'Anonymas's Bot' },
timestamp: new Date(),
footer: { text: 'By LulThy#0038' }
}
});
}
});```
Bonjour
je voudrais faire un !ano notre message
pour que le bot dellete la cmd
et envoie un embed avec se qui y'a apres le ano
Apres 10€ pour que tu m'aide pour que mon status ce refresh tout les 30sec sa fait bcp la non ?
j'ai dit que je peux arranger le prix..
Je t’aime contre 10€ 
Ha..
@slim anvil c'est pas de ma faute quand il comprend pas que je peux aranger le prix
j'ai je peux le faire free jusque a 10 euro j'ai pas dit sa coute 10 euro
10€ pour ça en plus
Bonjour, je débute le VueJS et je rencontre une petite erreur dans la console je ne sais pas de quoi sa viens et je ne trouve aucun #/ dans les différents fichiers JS, si vous avez besoin de plus de code n'hésitez pas à me le dire, Merci d'avance 🙂
Surtout 10€ pour faire un truc interdit par Discord 😂
C'est pas interdit, c'est pas un selfbot qu'il veux faire
Il veux juste que son bot édite un message de status de serveur toutes les X secondes
Autant pour moi dans ce cas, j’avais compris un self bot pour changer le statut de son compte personnel
cécé, vous savez connaissez un événement appelé lorsqu'un utilisateur change/obtient de/un rôle (discord.js@12.5.3) merci :)
yep thanks :)
salut
je voudrais faire en sorte que quand on fait cette cmd
qu'il n’arrête pas le bot mais qu'il le démarre
redémarre
En français ?
J’peux t’aidé stv
Déjà résolu merci :)
Hello, je suis en train de faire un système d'économie. Et le problème c'est que tout marche à la perfection mais forcément c'est trop beau. Donc, j'ai un problème qui est que lorsqu'on fait une commande pour recevoir de l'argent, cet argent ne s'enregistre pas dans votre porte-monnaie. Si quelqu'un a une solution je suis preneur. Bonne journée
Ps: Je ne sais pas quel est le fichier qui me pose problème mais si besoin mentionnez moi je vous envoie le fichier.
Sans code ça va être complexe
Je me doute mais j'ai aucune info sur la provenance de ceci
Bah logiquement c'est à l'appel de ta commande pour give de l'argent
Hello je suis entrain de faire un système d'authentification en NodeJS mais je suis confronté à un problème et je n'arrive pas à faire mon choix, je dois garder la connexion de l'utilisateur : faut-il utiliser JWT ou les sessions ? Merci
et user = message.author;
let author = await client.db.fetch(`work_${message.guild.id}_${user.id}`)
let timeout = 300000;
if (author !== null && timeout - (Date.now() - author) > 0) {
let time = ms(timeout - (Date.now() - author));
let timeEmbed = new Discord.MessageEmbed()
.setColor("#FFFFFF")
.setDescription(`:faux: Tu as trop travaillé\n\nEssaye encore dans ${time.minutes}m ${time.seconds}s `);
message.channel.send(timeEmbed)
} else {
let replies = ['Programmer','Builder','Waiter','Busboy','Chief','Mechanic']
let result = Math.floor((Math.random() * replies.length));
let amounta = Math.floor(Math.random() * 80) + 1;
let multiplier = await client.db.fetch(`multiplier_${message.guild.id}`);
if(!multiplier) multiplier = 1;
let amount = amounta * multiplier;
let embed1 = new Discord.MessageEmbed()
.setColor("#FFFFFF")
.setDescription(`:valid: Tu as travaillé comme ${replies[result]} et gagné ${amount} euros`);
message.channel.send(embed1)
await client.db.add(`money_${message.guild.id}_${user.id}.pocket`, amount)
await client.db.set(`work_${message.guild.id}_${user.id}`, Date.now())
};
} ```
Il y a des trucs qui se sont pas mis
Mais sinon aucune erreur
Bon bah ça restera un mystère ptdrrr je vais essayer de règler ça
Mais en soit je pense que ça vient de la db
Helloooooo ! Je suis en train d'apprendre le
, mais je me perd un peu, quels sont les bases à avoir ? Pour info je suis ce cours : https://fr.javascript.info/ 🙂 Merci de votre aide pour m'éclairer sur cette voix (C'est mon premier language pur et dur, sans compter html & css ^^)
hello
bah du coup les choses basiques
genre
conditions ( if, else ), les boucles ( for, foreach, while ), puis maitriser le DOM
après faut que tu saches manipuler les tableaux (array), les objets etc
mais tout ça doit être dans ton cours 😉
D'accord, merci beaucoup !
qui connait un moyen de ping la personne pour un message (pour mon message de bvn) ?
un ping a la forme <@id>
donc tu peux juste mettre ça
sur discordjs mettre directement l'user fonctionne aussi
genre ```js
channel.send(Hello ${user}!)
ça va afficher "Hello @timid loom!" si l'user c'est moi
mais la solution universelle ça reste <@id>
T'as oublié le ; à la fin 
Ok merci beaucoup
cc , je veux faire un embed ou dedans y a du code en cs , comment je mis prend ?
Tu peux mettre dans la description de l'embed (.setDescription) directement ton code comme ça tu voulais l'afficher en tant qu'utilisateur sur Discord
Pour envoyer un message avec un code il vous suffit d'entourer votre message de ceci : ```. Ainsi, pour poster votre code dans un message, vous devez faire comme ceci :
```langage
Votre code
```
Et par exemple pour un code en lua :
```lua
print("hello")
```
Le résultat sera le suivant :
Votre code
Et par exemple pour un code en lua :
print("hello")```
ok ok
Tu ne peux pas mettre de cs dans un embed, mais tu peux mettre une image qui contient du css (svg par exemple) dans ton embed
Salut, je sais pas si c'est possible mais,
après l'invocation de cette cmd ( !rg ) il envoi un embed, il le dellete 5 minutes après, c'est possible qu'il en renvoi un truc après les 5 minutes ?
Pourquoi tu veux le renvoyer ?
Tu ne veux pas directement le modifier avec des nouvelles valeurs ?
Nan, car c'est pour un statut de serveur gmod
j'ai deja un truc qui se modif tout seul ^^
c# , en gros je ve faire une partie dans le embed avec du code et les syntaxe qui ce colorie ^^
Ok, bah tu refais appel à la fonction execute au bout des 300 secondes ?
Genre je refait un message.channel.send
Non
apres le timeout
Tu as une fonction execute là
oui tout à fait
Tu as juste à refaire appel, l'embed va se créer à nouveau et se resupprimer au bout de 5 minutes et ainsi de suite
Explique moi alors aha
pas besoin en js au cas où hein
Ouais je sais mais c'est la norme askip
et le dellete au bout de 5minutes
apres les 5minute je voudrais qu'il renvoi un embed mais je ne veux pas qu'il le supprime dans les 5minute qui suivent
pour le coup les deux se font je t'assure
c'est compliqué
bah tu peux faire un autre .then
ou alors tu peux juste encapsuler çà dans une promise
et .then dessus
Les promise je sais pas faire
okay
non, suffit de juste voir les règles de linter qu'utilise Airbnb extra semicolon donc non c'est pas la norme
c'est juste conseillé si tu utilises un truc qui minified ton code, et encore un truc merdique car typiquement babel va te les mettre automatiquement
C'est une question de normes, c'est comme les && et les and en glua
genre ici
me prends pas pour un imbécile je t'assure que non
yep dans ton setTimeout
Bah j'dis pas que c'est interdit de faire sans
oui comme je disais certains compiler de code vont avoir des problemes c'est juste des compileurs de merde
c'est le vieux compiler vscode
tu comprends pas ce que je veux dire, relis le message d'enzo
et encore tu peux le changer ça vu avec des extensions je crois