#javascript-typescript

1 messages · Page 71 of 1

silk edge
#

pourtant j'ai bien le paramettre avec guildmemberadd

slim anvil
#

montre ton erreur @silk edge

silk edge
slim anvil
#

guild tu le récupères d'où ?

silk edge
#

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);

});

slim anvil
#

a aucun moment tu peux récupérer data et guild dans tes paramètres

#

tu peux faire un member.guild.channels....

silk edge
#

ah bon

#

ENFFFFFIN

#

putain merci

keen narwhal
#

bonjour , un dev js aurais du temps a m'accorder ?

queen ocean
#

pose direct ta question 😉

keen narwhal
#

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 ?

slim anvil
#

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

keen narwhal
#

undefined

slim anvil
#

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

keen narwhal
#

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

slim anvil
#

tu log err et ca te return undefined ? 🤔

#

ou ton log est ailleurs

keen narwhal
#

je log result

slim anvil
#

Du coup log ton error il te précisera ce qui ne va pas

keen narwhal
#

il me parle de maria .db mais je ne suis pas dessus

#

jsuis pomer

slim anvil
#

Idk là comme ça KappaShrug2

keen narwhal
#

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

slim anvil
#

oui ta requete sql n'est pas bonne du tout c'est tout

keen narwhal
#

shit

#

est ce que tu pourrais me montrer ?

#

ou t'aurais pas le temps

slim anvil
#

Débug la, commence déjà par enlever ton WHERE pseudo etc.. et fais le petit à petit

keen narwhal
#

SELECT * FROM rdiscord WHERE pseudo, token = '${args[0]}', '${args[1]}'`

#

comment ca ?

slim anvil
#

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 200iq

#

du débug

keen narwhal
#

ouki mrc ^^

broken lynx
#

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

slim anvil
#

fallait le laisser debug Kappangry

#

il aurait bien vu que son premier where aurait fonctionné mais pas le 2eme

broken lynx
#

Non mais j'ai eu les yeux qui brûlait j'ai pas pu m'en empêcher déso kappa

keen narwhal
#

merci xd er désoler , je commence en sql

broken lynx
#

Puis bon, je pense qu'en 1h il à eu le temps de debug X)

keen narwhal
#

xd

#

vive les error

#

^^

broken lynx
#

J'avoue que si tu ne t'y connais pas les erreur sql c'est pas évident notlikethis

keen narwhal
#

oui , est ce que y'a une doc sur les erreurs ?

broken lynx
#

Stack overflow, ou de la doc sur ce que tu comptes faire 200iq

keen narwhal
#

car maintenant faut je voie si y'a rien dans le db bah ca marche pas

dusk palm
#

un handler c'est un module ? genre on a le fichier principale et les modules annexes ?

bronze needle
#

comment je peu faire pour avoir a partir d'une ID d'un membre pouvoir mp ce membre?

broken lynx
#

Renseigne toi sur le "members.cache"

timid loom
#

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

bronze needle
#

donc ```js
client.user.fetch("id").createDM("truc a send")

#

ou juste js client.user("id").createDM("truc a send") ?

oak turret
#

c'est quoi ta commande ?

#

tu veux envoyer un mp à un mec qui fait une certaine commande dans un serveur ou ?

bronze needle
#

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

oak turret
#

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

bronze needle
#

sauf que pour une autre commande j'ai besoin d'avoir ca dans une bdd

oak turret
#

mh ok comme tu veux bg

bronze needle
#

sinon merci

timid loom
bronze needle
#

Ok

peak cedar
#

    if (message.content.startsWith("!kickvoice")) {
        message.mentions.users.first().user.voice.setChannel(null)

    }

#

SA me dit Voice not defined comment le definir

timid loom
#

voice c'est sur le member

peak cedar
#

ok donc direct

#

avec mentions ?

peak cedar
#

@timid loom

fathom jay
#

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)

timid loom
peak cedar
#

@timid loom Ptite question comment tej un grade a un joueurs

#

je met quio

peak cedar
#

MERCI

#

Mon bebou numero 6

hazy mirage
peak cedar
#

@timid loom Voice is not definde

#

du moins Maybe

#

😉

slim anvil
#

???

#

montre ton code ce sera plus simple

keen narwhal
#

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;
slim anvil
#

si tu log ton res dans api-content

#

tu recois quoi

keen narwhal
#

rien

slim anvil
#

si tu log avant de faire la requete, le log se fait bien ?

keen narwhal
#

fin att

#

comment sa log res ?

#

c'est les logs normal quoi quand je démarre le bot ?

slim anvil
#

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

keen narwhal
slim anvil
#

tu fais simplement un console.log(res) après ton await

keen narwhal
#

comme ca?

slim anvil
#

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é :/

keen narwhal
#

ah dans mon code j'ai compris j'avais mal lu sorry

#

voici mon erreur

ashen aspen
#

il a une vie donc le ping parce qu'il te réponds pas dans la soirée x)

keen narwhal
#

désolé

keen narwhal
slim anvil
#

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

delicate river
#

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 😄

slim anvil
#

bah si tu le fais avec le séparateur ',' ca va etre compliqué

delicate river
#

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

slim anvil
#

Alors attend, comment tu l'enregistres, tu reçois quoi comme string ?

delicate river
#

Je reçois ça comme string

#

Sauf que c'est pas un tableau lol, malgré les []

keen narwhal
#

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'
            ]
        });
    }
};
slim anvil
#

no no no

keen narwhal
#

mais aucune erreur s'affiche quand je run le bot ni quand j'éxecute la commande

keen narwhal
slim anvil
#

const api = new CatApi()
console.log('api : ', api)
console.log('log 1')

keen narwhal
#

merde merde merde

slim anvil
#

regarde ce que je t'ai envoyé

#

a cet endroit la

keen narwhal
#

ok j'ai eu sa quand j'ai run l'api :

api :  CatApi {}
log 1
slim anvil
#

euh pardonnn

#

console.log('api : ', images)
console.log('log 1')

#

pas api my bad

keen narwhal
#

api :  {
  message: [ 'https://images.dog.ceo/breeds/schipperke/n02104365_6395.jpg' ],
  status: 'success'
}
log 1
slim anvil
#

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

keen narwhal
#

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 ?

slim anvil
#

KappaShrug2 mais ta réponse était pas la bonne en tout cas

silk edge
#

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

timid loom
#

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)

keen narwhal
#

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

slim anvil
#

@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

keen narwhal
#

ouais je peut faire sa donc je fais un truc du genre

catch (error) {
  console.error(error);
}```
?
slim anvil
#

donc le catch (e) fonctionne avec un try {

#

la vu que tu fais un fetch, puis ton .then, tu peux avoir un .catch()

exotic kernel
#

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...

▶ Play video
#

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

queen ocean
exotic kernel
#

ok

timid loom
#

client is not defined

exotic kernel
#

deso je savais pas

exotic kernel
#

c'est dans un fichier que j'ai pas créer

timid loom
#

C'est dans ce fichier, à cette ligne, et à cette colonne : c:\Users\axelm\OneDrive\Bureau\bot musique\commands\music\play.js:43:9

exotic kernel
#

oui mais je ne comprend pas mon erreur

timid loom
#

client il peut pas venir de nulle part donc vérifie où tu le définit

exotic kernel
#

j'ai refait toute la vidéo mais... Rien

exotic kernel
#

-_- oui je sais merci 😂😂 mais je ne vois pas l'erreur car j'ai suivi la vidéo et lui n'a aucune erreur

timid loom
exotic kernel
#

ah oui pardon

timid loom
#

l'erreur ne vient pas de pause.js mais de play.js

exotic kernel
#

``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

timid loom
#

client n'est pas défini ici

exotic kernel
#

ok je dois faire quoi alors ?

silk edge
timid loom
#

vu que tu es dans une commande commando tu peux faire this.client au lieu de client

exotic kernel
#

ok merci

timid loom
#

ou faire comme avant un message.client

exotic kernel
#

ok

timid loom
silk edge
#

message.edit('This is my new content!')

#

le message là

timid loom
#

ouais ça par exemple

#

si tu veux mettre un embed tu envoie un embed

silk edge
#

oui

exotic kernel
#

ReferenceError: server is not defined ça me met ça maintenant

silk edge
#

mais je parler de message.edit('This is my new content!')

#

se message

timid loom
exotic kernel
silk edge
#

il fait appelle a quoi je vois pas comment l'utiliser sur le message send par mon bot XD

timid loom
#

sentMsg là c'est le message de ton bot et que tu veux éditer

timid loom
silk edge
#

merci je vais essayer

exotic kernel
#

justement dans la console y'a rien

#

c'est dans le serveur

#

c'est le bot qui m'envoi ça en mp

timid loom
#

d'où il vient ton referenceerror

#

ah

exotic kernel
timid loom
#

ok bah je sais pas d'où vient l'erreur
c'est quelle commande que tu essaies?

silk edge
#
message.channel.send(Embedmin)
            .then((sentMsg) => setInterval(function(){sentMsg.edit('This is my new content!')}, 1000)     ```
exotic kernel
timid loom
timid loom
#

mets message.client.server à la place de server

silk edge
#

je peux pas le run avec une erreur

#

XD

timid loom
#

bah il manque une virgule
à toi de trouver où

#

ah nan my bad il manque une parenthèse
tu as pas fermé ton .then

exotic kernel
#

encore une erreur: TypeError: Cannot read property 'dispatcher' of undefined

#

c'est ici que je le définis

timid loom
#

je peux pas t'aider davantage
il faut que tu trouve toi même les causes de tes erreurs

timid loom
exotic kernel
#

ok

#

@timid loom maintenant y'a plus aucune erreur mais la musique ne se met pas en pause

timid loom
#

repasse sur le tuto du mec ptet que t'as oublié un truc

exotic kernel
#

je vais voir mais dans la mesure où je l'ai recommencé 3 fois ça m'étonnerait

silk edge
#

c'est bon merci

#

@timid loom

#

je reviens dans un moment je vais avoir besoin d'aide pour de l'opti XD

timid loom
exotic kernel
misty pulsar
#

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)

boreal edge
#

Tu utilises user alors qu'il n'existe pas

plain crystal
#

message.author.username à la place de user.username

misty pulsar
#

@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 ?

misty pulsar
#

@pure raven il y a du mieux !
mais pourquoi ca me met undefined :

oak turret
#

member.user.username

fallen kindle
#

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 ?

oak turret
#

t'use un handler ?

fallen kindle
#

oui

oak turret
#

donc t'as un index.js qui regroupe "tout"

fallen kindle
#

effectivement

oak turret
#

tu require un truc pour les commandes ?

fallen kindle
#

pour la cmd où je veux utiliser db ?

slim anvil
#

??

#

Je parlais pas à toi pour mon message

keen narwhal
#

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

slim anvil
keen narwhal
#

l'api ne fonctionne pas

#

je sais parler tout seul

#

je veut juste t'aider calme toi

slim anvil
#

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

slim anvil
keen narwhal
#

jsuis un peu perdu sur le coup

slim anvil
#

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

keen narwhal
#

peut tu vérifié si c'est bien ce que tu attend ? bien à toi.

slim anvil
#

Non

#

je te laisse regarder comment se met un .catch sur internet ce sera bien explique pour que tu comprennes je pense

keen narwhal
#

j'ai regarder sur différents forum et j'ai donc remplacer le premier .then par .catch regarde se que sa à donner

misty pulsar
#

Je suis mort xD

#

Le JS gerri du Covid !

slim anvil
#

Je regarde après mange @keen narwhal

keen narwhal
misty pulsar
#

Re! Vous savez vite fais ce que c'est comme method les undefined ?

oak turret
#

comme "method" ?

#

si tu veux savoir ce que c'est

#

c'est les value de tes fileds

slim anvil
#

et du coup c’est que ta valeur n’est pas défini

misty pulsar
#

ok 🙂

misty pulsar
#
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

keen narwhal
slim anvil
#

Je sors le toutou

boreal edge
#

Il est bo

static grotto
#

@slim anvil Un shiba

spring dock
#

c'est un shar pei

keen narwhal
spring dock
#

c'est un shar pei

static grotto
misty pulsar
#

Personne arrive à m'aider ? 😥

spring dock
misty pulsar
spring dock
#

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 ?

misty pulsar
#

De base, peu importe la logique, ca marche ca :

#

C'est en voulant rendre les salons cliquables que ca a planté

spring dock
#

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

misty pulsar
#

exactement

spring dock
#

pourquoi "message" ?

misty pulsar
#

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

spring dock
#

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?

misty pulsar
#

oui

spring dock
#

euh viens dans les bannis

#

juste j'ai pas de micro donc je vais parler dans #sans-micro

slim anvil
#

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))
keen narwhal
#

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' ]
slim anvil
#

@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

keen narwhal
keen narwhal
#

J'ai aucune erreur qui apparait quand j'apelle l'api @slim anvil ....

slim anvil
#

yes okay mais tu as quoi comme log qui s'affiche ?

#

dans ta console

keen narwhal
#

rien

#

c'est sa le problème

slim anvil
#

Ah bah c'est que ta commande est meme pas appelé

keen narwhal
#

genre ya une solution?

slim anvil
#

ah bah ca je sais pas ca dépend de ton handler ou autre, tes autres commandes fonctionnent ?

keen narwhal
#

oui

#

juste cette api fonctionne pas

#

sur le bot d'un pote elle marche, mais pas le miens

slim anvil
#

oui mais si t'as pas les logs que je t'ai mis c'est que ta commande est pas passé

keen narwhal
#

ouais je vois

#

tu crois j'ai des dépendances à installer ou autre ?

keen narwhal
slim anvil
#

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 ?

keen narwhal
#

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);
    }
};

keen narwhal
slim anvil
#

et cette commande fonctionne ,

#

?*

#

essaye de comparer les 2 pour voir

keen narwhal
#

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)
keen narwhal
slim anvil
#

tu peux me screen ta console qui run quand tu execute ta commande stp ?

keen narwhal
#

oui

keen narwhal
slim anvil
#

yes mais la tu as pas appelé ta commande, si ?

keen narwhal
#

si

slim anvil
#

avec le bon prefix etc ? 🤔

keen narwhal
#

quand je l’appelle il ce passe rien

#

oui oui

slim anvil
#

🤔

#

tu peux m'envoyer ton truc que je test ?

#

en mp

keen narwhal
#

yes

bronze needle
#

@slim anvil j'ai oublié de copié les exemple, tu peu les renvoyer stp?

slim anvil
#

yes en mp

bronze needle
#

ok^^

spare trail
#

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));
slim anvil
#

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

spare trail
#

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();
slim anvil
#

Bon bah si t'as oublié de le mettre probleme réglé

#

??

spare trail
#

weaponID est bien récupéré

slim anvil
ancient sonnetBOT
#
Citation de Enzo0001 posté dans javascript

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

spare trail
#

Ah

#

comment je peux faire du coup pour que mon json ressemble à ça ?

"weapon_musket": [{
  "name": "Musket",
  "price": "50000",
  "link": "https://fivem.net/"
}]
slim anvil
#

[]

#

non du tout

#
const new_weapon = {
  [weaponID]: {
    "name": weaponName,
    "price": weaponPrice,
    "link": weaponLink
  }
}
#

comme ça

spare trail
#

Aaaaaaah

#

Thx

#

T'es vraiment mon sauveur

spare trail
#

J'ai encore un petit soucis, j'arrive pas à récupérer "weapon_musket" notlikethis
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' } }]
oak turret
#

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

spare trail
#

Ah j'suis un bouffon notlikethis

slim anvil
#

oui mais là lartaxx tu pars du principe que c'est 0

oak turret
#

ah oui

#

mais je me fie à son screen juste

spare trail
#

Va falloir que j'arrive à récup la key dans ma liste du coup

oak turret
#

après il peut adapter comme il veut, il a au moins la structure pour choper son truc

slim anvil
#

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

spare trail
#

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"}]
``` ?
slim anvil
#

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

spare trail
#

Thx j'ai enfin réussi, merci beaucoup pour votre aide

peak cedar
#

    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 ?.

slim anvil
#

tu dois get le member on te l'a deja dit

fallen kindle
#

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.

cyan iron
#

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

slim anvil
#

ç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 ? 🤔

cyan iron
#

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

slim anvil
#

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

cyan iron
bronze needle
#
    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?

cyan iron
#

Bonjour

fallen kindle
fallen kindle
slim anvil
#

faire du nosql en sql ca n'a aucun sens

fallen kindle
slim anvil
#

bah j'aurais une table warn directement

fallen kindle
#

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.

slim anvil
#

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

fallen kindle
#

ok mrc

dim sage
#

https://mad.ac/ Savez-vous quel technologie est utilisé pour ce site ?

#

J'aime trop le style

slim anvil
#

la version mobile est super en plus kappa

#

ça a tout l'air d'etre de l'html classique avec jquery

dim sage
slim anvil
#

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é 👍

delicate river
#

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 ?

dim sage
cyan iron
keen narwhal
#

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.
slim anvil
#

alors on catch pas un setTimeout

#

et pourquoi tu exports ton setTimeout

keen narwhal
#

Heu chépa je croyais que fallais faire cela

keen narwhal
#

Bonjour qui pourrait m'aider , j'ai un souci avec mon bot discord il envoie deux fois le même message

queen ocean
oak turret
#

car t'as sûrement deux instances ouvertes

fallen kindle
#

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)

boreal edge
#

Tu as le count sinon

#

SELECT COUNT(*) FROM table WHERE condition

fallen kindle
#

ok merci

south steppe
# fallen kindle Bonjour, j'ai un pblm, en gros je veux savoir dans ma bdd la nombre de fois qu'a...

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

fallen kindle
#

Oui g changer en for. Mais merci 😊

bold flower
#

Bonjoour j'ai un pblm je suis entrais de coder un bot musique mais une erreurs pouvez vous m'aider svp meric a vous

rustic shore
#

@bold flower c'est npm i discord.js-commando

bold flower
#

encore une erreur

rustic shore
#

relis mon message tu as mal pris la commande

tribal tide
#

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

dire latch
#
 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);
    }
})```
tribal tide
#

Toujours le meme probleme

dire latch
#

Peut être car tu définis mal ton prefix 🤔

#

Moi je l'exports mon prefix

#

Dans un fichier .js

J'ai ceci:

exports.PREFIX = "/";
tribal tide
#

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

dire latch
#

Pk tu met let prefix plus haut ??

#

Si tu le définis déjà

tribal tide
#

Je ne le definis pas ^^

#

je me suis juste mal exprimé c'est si je met let prefix = "!"; plutot que let prefix;

slim anvil
#

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

dire latch
#

Oui j'avais compris

slim anvil
#

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

tribal tide
#

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 :/

slim anvil
#

Puis pareille tu log err mais ne pas avoir de résultat ne signifie pas avoir une err d’où le null

tribal tide
#

oui mais je log erreur pour voir si il y'avais une erreur justement

dire latch
#

Moi j'ai une technique de barbare 😂

slim anvil
#

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

dire latch
#

Att je te montre comment je fais mdr @slim anvil

#

En mp

tribal tide
slim anvil
#

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 ?

tribal tide
#

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

keen narwhal
#

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 🙂

tribal tide
#
 if (message.guild.id = "id de ton server") {
ton code 
 } else return;
keen narwhal
#

d'accord merci je te mentionne si ca va pas

boreal edge
#

Le else return n'est pas forcément obligatoire 😉

dire latch
#
if (message.guild.id != "780378714826342431") return;
#

Sa fonctionne aussi 👍

tribal tide
#

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")

dire latch
tribal tide
#

Et sinon pour mon probleme personne n'a d'idée ? :/

keen narwhal
#

@dire latch merciiiii je t'aimeeee

dire latch
#

Dr 🙂

slim anvil
#

ok @tribal tide step by step, tu peux log results déjà et me dire tu obtiens quoi dans ton cas

tribal tide
#

Je met un truc de ce genre c'est bon ?

 if(err) {
      console.log(err) 
         }
slim anvil
#

la ca va juste te montrer tes erreurs

tribal tide
#

ha nan ok je suis con

slim anvil
#

mais tu peux oui

#

mais moi je veux le log de results

tribal tide
#

je vient de comprendre ton msg ^^

#

Ca me log ca: []

slim anvil
#

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

tribal tide
#

ok je fait ca deja

slim anvil
#
 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

tribal tide
#

ca ne fonctionne pas :/

#

enfin si pour le prefix par defauts

#

mais pas quand je le change

slim anvil
#

donc quand tu as des résultats ?

tribal tide
#

?

slim anvil
#

ca ne te met pas le bon prefix lorsque tu as des results en bdd ?

tribal tide
#

Yep

#

ca laisse celui par defauts

#

ca ne met pas celui qu'il est censé trouver en bdd

slim anvil
#

log ton results encore une fois plz

tribal tide
#

ok

#

[ RowDataPacket { prefix: '?' } ]

slim anvil
#

okay et now si tu fais un results.length

tribal tide
#

je log un result.length ?

slim anvil
#

results.length

#

du debug enfaite quoi

tribal tide
#

ca log 1

slim anvil
#

Mais enfaite c'est normal harold

#

Ah oui mais normal enfaite j'avais pas fais gaffe

#

Montre un peu la suite du code ? 🤔

tribal tide
#

ca vient pas de la suite du code normalement

#

car ca fonctionne avec le prefix par defauts ^^

slim anvil
#

Oui mais comme le prefix est deja set il est peut etre chargé avec celui

#

Je veux juste voir la suite pour voir

tribal tide
#
 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);
    }
slim anvil
#

Okay je pense que c'est pour ça, car tes commandes doivent etre chargé avant que ton nouveau prefix soit récupéré

tribal tide
#

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

slim anvil
#

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

dire latch
#

Le mieux est pas ma solution ?

#

Genre, il met 2 fois un commandFile ?

#

Ou c'est useless ?

slim anvil
#

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

tribal tide
#

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

slim anvil
#

Donc c'est bien ce que je dis tes commandes son chargés avant de recevoir ta requête

tribal tide
#

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

slim anvil
#

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

tribal tide
#

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

slim anvil
#

au demarrage du bot

tribal tide
#

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

keen narwhal
#

re bonsoir, pour mettre un lien dans le titre de l'embed c'est bien .setURL mais ou ?

svp merci

timid loom
#

là ton embed tu le crée via un objet donc tu peux juste mettre url: 'ton url'

keen narwhal
#

Ok merci

#

Genre en dessous de description

timid loom
#

où tu veux

#

l'ordre n'a pas d'importance sur les objets

keen narwhal
#

Bonjour 👋
Comment faire pour que mon bot exécute une cmd soit autorisé que pour moi ou un certains id ?
Me mentionner ;)

keen narwhal
timid loom
#

soit inclus dans un tableau d'ids autorisés

keen narwhal
#

Donc :

#

En gros

timid loom
#

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
keen narwhal
#

D'accord merci beaucoup 🙏

#

@timid loom , yes mais je met ou mon id x)

timid loom
#

ici authorizedUsers c'est juste un tableau d'id

oak turret
#

authorizedUsers = array

#

genre

keen narwhal
#

Je sais pas faire,et j'ai pas fait de tableau

#

On peux pas faire autrement :/

oak turret
#
const authorizedUsers = ["id", "id"];
if (!authorizedUsers.includes(message.author.id)) return message.channel.send("tu ne peux pas!");

par ex

keen narwhal
#

D'acc merci @oak turret ;)

oak turret
#

tu peux faire une bdd, tout ce que tu veux enfaite

timid loom
#

tu peux rajouter autant d'ids que tu veux

oak turret
#

yep

keen narwhal
#

Okay merci

#

La bdd faut juste créé un table ?

#

Une

oak turret
#

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

keen narwhal
#

Et tout en haut on doit pas définir authorizedUsers ?

oak turret
#

en mettant l'id du mec dans une colonne ^^

#

bah du coup, t'auras juste à faire un SELECT tacolonneiduser FROM tatable

keen narwhal
#

Non sans la bdd l

#

La

oak turret
#

et après selon ce que ça te retourne tu vois :p

#

là oui

keen narwhal
#

On va rester comme sa

oak turret
#

je t'ai fais un exemple

keen narwhal
#

Yes

oak turret
ancient sonnetBOT
#
Citation de Lartaxx8301 posté dans javascript

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

keen narwhal
#

Oui j'ai compris x)

#

Je viens de comprendre

oak turret
#

bah voilà ^^

keen narwhal
#

Plus tôt

#

XD

#

Merci beaucoup

oak turret
#

np^^

keen narwhal
#

:/ @oak turret

#

Je pense que y'a un p'tit problème

oak turret
#

ça vient de toi

#

t'as plusieurs instances node ouverte j'pense

keen narwhal
#

Yes j'essaye de régler le pro

#

Problème

timid loom
#

alors le bot se répond à lui même

#

sur on message faut toujours ignorer les messages des bots

oak turret
#

if (message.author.bot) return;

mystic bison
#

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

mystic bison
#

avec node.js

oak turret
#

bah faut installer nodejs

#

et puis voilà

#

dans ton vscode

#

tu npm i tes packages

#

et c’est tout

#

npm init aussi

#

mais voilà

weak grove
#

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

oak turret
#

.then(test => { console.log(test.id) })

weak grove
#

test = a mon message @oak turret ?

tribal tide
#

Yep

weak grove
#

Yep sa marche merci 👍

oak turret
#

ouais

#

test = il va te return toutes les infos

topaz oar
#

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 ?

oak turret
#

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

topaz oar
#

oui c'est vrai, j'ai pas passé à ca

#

merci

oak turret
#

np

keen narwhal
#

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

topaz oar
#

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

keen narwhal
#

un exemple si possible ? première fois que je m'attaque au embed.... @topaz oar

topaz oar
#

Oui je t’envoie ça dans 5min

keen narwhal
#

Très bien, merci bcp

oak turret
#

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..
}})
topaz oar
#

oui aussi

#

voilà comment je fais moi

oak turret
#

oui mais là il use commando donc si il fait ta manière ça fonctionnera pas

#

il faut qu'il importe MessageEmbed()

topaz oar
#

commando 🥲

oak turret
#

?

keen narwhal
oak turret
#

comme tu veux

#

à toi de voir

topaz oar
oak turret
#

en quoi t'aimes pas ?

topaz oar
#

une question d'habitude surement

oak turret
#

je faisais pareil avant

#

suffit de tester une fois

topaz oar
#

et tu restes en commando mtn ?

oak turret
#

bien sûr

topaz oar
#

ah

#

bon bah je vais m'interesser plus alors

oak turret
#

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

topaz oar
#

okok je vois merci je checkrais alors la prochaine fois !

oak turret
#

^^

keen narwhal
#

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

oak turret
#

faut que tu l'envoies hein

#

msg.channel.send(embed)

keen narwhal
#

merde

oak turret
#

update j'ai oublié lol

keen narwhal
#

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

oak turret
#

${text} = ?

#

faut que tu fasses

#

async run(msg, {text})

#

pour faire ${text}

keen narwhal
#

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)
}
oak turret
#

oui

#

mais du couo

#

couo

#

coup

#

quand tu fais ta comande

#

l'embed s'enverra après ta réponse au prompt

keen narwhal
#

oui normal, pourquoi je pourrais faire autrement ?

oak turret
#

?

#

oui tu pourrais

#

si tu fais prompt: "",

#

bah tu feras tacommande prompt

#

et ça enverra

keen narwhal
oak turret
keen narwhal
#

donc je remplace
prompt: 'Quel texte voulez-vous que le bot dit ?',

#

par

oak turret
#

""

keen narwhal
#

prompt: ""

oak turret
#

oui

keen narwhal
#

ok je vais faire sa

slim anvil
oak turret
#

xD merci Enzo en effet :p

keen narwhal
oak turret
#

np

keen narwhal
#

une dernière question

oak turret
#

dis moi

keen narwhal
#

concernant les embed

oak turret
#

yep

keen narwhal
#

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 })}`);
    }
});
oak turret
#

bah du couo

keen narwhal
#

si je veut embed la réponse sur ce format faut faire pareil qu'avec l'autre ?

oak turret
#

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

keen narwhal
oak turret
#

oui

#

mais

#

si tu utilises commando

keen narwhal
#

oui?

oak turret
#

bah tu fais tout avec commando

#

sinon ça a plus aucun sens

keen narwhal
#

okok donc je crée un new fichier ok je fait sa bouge pas je vais essayé sa

oak turret
#

et après ainsi de suite pour toutes tes fonctionnalités 😉

keen narwhal
#

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 })}`);
    }
});
oak turret
#

non mais

#

du coup tu copie colle ton autre commande avec commando

keen narwhal
#

ahhh

#

ok je fait sa

#

j'essaie

keen narwhal
# oak turret du coup tu copie colle ton autre commande avec commando
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 ?

oak turret
#

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

keen narwhal
keen narwhal
oak turret
#

ouais mais à l'intérieur quoi

#

tu laisses juste message dans ta fonction run()

keen narwhal
#

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)
#

??

oak turret
#

msg.author etc

#

donc oui après c'est good

keen narwhal
oak turret
#

bah parce que dans un title ça l'affichera jamais

#

c'est dans ton .setImage() ou ton .setThumbnail()

keen narwhal
#

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

dire latch
#

Sa sert à rien de le mettre en async 🤔 @keen narwhal

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.
keen narwhal
#

Et il cherche a comprendre

keen narwhal
#

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

hasty sundial
#

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 ^^

oak turret
#

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

keen narwhal
#

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 ?

slim anvil
#

tu l'envoies une fois puis tu setInterval pour l'éditer par exemple

keen narwhal
#

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 )

timid loom
#

Yep t'es obligé

keen narwhal
#

Dac merci pour edit je doit let embed ?

timid loom
#

Sinon tu peux à chaque fois renvoyer un message mais ça fera une notif

timid loom
keen narwhal
#

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

keen narwhal
#

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
timid loom
#

effectivement puisque tu ne récupère pas le message que tu as envoyé

keen narwhal
#

@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

hybrid berry
keen narwhal
#

XD

keen narwhal
#

@hybrid berry sa m'intrigue, tu était pas sur uranium avant ?

hybrid berry
#

non

#

je ne suis pas Lexa d'Uranium

keen narwhal
#

Même nom, même pp =/

#

x)

hybrid berry
#

PP => Pinterest

#

ciao

dapper coral
#

alias The100

keen narwhal
keen narwhal
keen narwhal
#
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

keen narwhal
keen narwhal
keen narwhal
#

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

oak turret
#

fallait dire "attend de l'aide sur gca" que de dire 10€ quoi

#

mdr

spring dock
#

10€ pour ça en plus

oak turret
#

en plus ouais

#

ça fait cher l'aide kappa

odd gust
#

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 🙂

idle ice
spring dock
#

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

idle ice
#

Autant pour moi dans ce cas, j’avais compris un self bot pour changer le statut de son compte personnel

plain crystal
#

cécé, vous savez connaissez un événement appelé lorsqu'un utilisateur change/obtient de/un rôle (discord.js@12.5.3) merci :)

slim anvil
#

memberUpdate

#

A toi dedans de checker du coup le a.roles et b.roles

plain crystal
#

yep thanks :)

keen narwhal
#

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

keen narwhal
#

En français ?

dire latch
#

Sa dépends si ton bot restart solo

#

Sinon, j'utilise ceci: process.exit(60000)

keen narwhal
#

Déjà résolu merci :)

keen narwhal
#

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.

boreal edge
#

Sans code ça va être complexe

keen narwhal
slim anvil
#

Bah logiquement c'est à l'appel de ta commande pour give de l'argent

fathom jay
#

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

keen narwhal
#
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

boreal edge
#

Fais du débug

#

Avec des console.log par exemple

keen narwhal
#

J'ai oublié de mettre les events warn et erreur

#

ça ne me met rien

keen narwhal
#

events

keen narwhal
#

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

dim sage
#

Helloooooo ! Je suis en train d'apprendre le langage_js, 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 ^^)

oak turret
#

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 😉

dim sage
#

D'accord, merci beaucoup !

keen narwhal
#

qui connait un moyen de ping la personne pour un message (pour mon message de bvn) ?

timid loom
#

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>

lone flax
#

T'as oublié le ; à la fin KappaRetard

keen narwhal
#

Ok merci beaucoup

#

cc , je veux faire un embed ou dedans y a du code en cs , comment je mis prend ?

boreal edge
#

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

keen narwhal
#

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")```
lone flax
keen narwhal
#

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 ?

lone flax
#

Pourquoi tu veux le renvoyer ?

#

Tu ne veux pas directement le modifier avec des nouvelles valeurs ?

keen narwhal
#

Nan, car c'est pour un statut de serveur gmod

#

j'ai deja un truc qui se modif tout seul ^^

keen narwhal
lone flax
#

Ok, bah tu refais appel à la fonction execute au bout des 300 secondes ?

keen narwhal
#

Genre je refait un message.channel.send

lone flax
#

Non

keen narwhal
#

apres le timeout

lone flax
#

Tu as une fonction execute là

keen narwhal
#

oui tout à fait

lone flax
#

Tu as juste à refaire appel, l'embed va se créer à nouveau et se resupprimer au bout de 5 minutes et ainsi de suite

keen narwhal
#

Alors, enfaite se que je veux faire est assez complex

#

je m'explique

lone flax
#

Explique moi alors aha

timid loom
keen narwhal
#

quand je fait la cmd !rg

#

il envoi l'embed

lone flax
keen narwhal
#

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

timid loom
keen narwhal
#

c'est compliqué

timid loom
#

bah tu peux faire un autre .then

#

ou alors tu peux juste encapsuler çà dans une promise

#

et .then dessus

keen narwhal
#

Les promise je sais pas faire

timid loom
#

tu delete via le paramètre?

#

hmm

#

alors attends

keen narwhal
#

okay

timid loom
#

ah tu passe par un settimeout

#

bah tu fais un .then sur ton msg.delete

slim anvil
# lone flax Ouais je sais mais c'est la norme askip

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

lone flax
keen narwhal
#

genre ici

timid loom
timid loom
lone flax
#

Bah j'dis pas que c'est interdit de faire sans

slim anvil
#

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

timid loom
timid loom