#javascript-typescript

1 messages · Page 55 of 1

oak turret
#

member.send peut fonctionner

#

tu send ton embed

keen narwhal
#

Yep

#

Je comprend pas son code

#
bot.on("guildMemberAdd", (member) => {
    var E = new Discord.MessageEmbed()
        .setColor(``)
        .setTimestamp()
        .setImage(``)
        .setDescription(``)
    member.send(E)
})```
#

Essaie ça

#

@keen narwhal

weak grove
#

ducoup des solutions a mon problème ?

client.on('messageReactionAdd', (reaction, user) => {
    if(reaction.emoji.name === "✅") {
        client.channels.get("727153672248885269").fetchMessage(tv832)
        .then(message => client.channels.get("727155213718388807").fetchMessage("727471151416213555").edit('coucou') )
        .catch(console.error);
    }
});

j'aimerais modif le message que j'ai fetch sauf que sa marche po

keen narwhal
#

Simplement parce que on fetch pas un message comme ça

weak grove
#

mon fetch marche bien

#

mais le edit ne marche pas du tout

keen narwhal
#

Fait une var

weak grove
#

qui contient quoi

keen narwhal
#

Ton message fetch

slim anvil
#

c'est un embed ?

weak grove
#

nop

#

msg normal

oak turret
#

log le

weak grove
#

je console.log tout mon client.channels.get?

oak turret
#

ton fetch

#

voir si c'est le bon

weak grove
#

Promise { <pending> }

slim anvil
#
client.channels.get("727153672248885269").fetchMessage(tv832)
        .then(message => console.log(message) )
        .catch(console.error);
#

voir ce que tu reçois

hazy mirage
#

et tv832 == ???

slim anvil
#

surement une variable avec son id

weak grove
#

yep

#

sa me print carrément tout sauf mon msg

#

_maxListeners: 10,
options: [Object],
rest: [RESTManager],
dataManager: [ClientDataManager],
manager: [ClientManager],
ws: [WebSocketManager],
resolver: [ClientDataResolver],
actions: [ActionsManager],
voice: [ClientVoiceManager],
shard: null,
users: [Collection [Map]],
guilds: [Collection [Map]],
channels: [Collection [Map]],
presences: [Collection [Map]],
user: [ClientUser],
readyAt: 2020-06-30T18:56:54.140Z,
broadcasts: [],
pings: [Array],
_timeouts: [Set],
_intervals: [Set],
[Symbol(kCapture)]: false
},
_guild: Guild {
members: [Collection [Map]],
channels: [Collection [Map]],
roles: [Collection [Map]],
presences: [Collection [Map]],
deleted: false,
available: true,
id: '',
name: '',
icon: '',
splash: '',
region: 'eu-west',
memberCount: 740,
large: true,
features: [Array],
applicationID: null,
afkTimeout: 300,
afkChannelID: '',
systemChannelID: '',
embedEnabled: undefined,
verificationLevel: 2,
explicitContentFilter: 0,
mfaLevel: 0,
joinedTimestamp: 1573923145672,
defaultMessageNotifications: 'ALL',
ownerID: '217177855157600256',
_rawVoiceStates: [Collection [Map]],
emojis: [Collection [Map]]

keen narwhal
#
        var join_embed = new Discord.MessageEmbed()
        .setAuthor("x",)
        .setColor("#ff00b7")
        .setTitle("x")
        .setURL('x')
        .setThumbnail('xxx')
        .setDescription(`xxx`)
        .setImage(`xxx`)
        .setFooter("x")
        member.send(join_embed)
        console.log("embed envoyé à " + member.tag )
    })```
#

la c'est censé envoyé un message des que quelqu'un rejoint un des serveurs ou y'a le bot et ca lui envoie l'embed et je peux savoir qui est concerné dans ma console ?

hazy mirage
#

problème de Rytrak résolu

keen narwhal
#

Tu peux pas savoir avant de tester @keen narwhal test

#

.....

#

j'ai tester oe mais chep ca met rien mdr

#

Error ?

#

nan juste ca envoie pas

#

si le bot a 0 perm sur le serv, il peut quand meme savoir qui rejoint ?

#

Tu as ton token ?

#

Ton bot il se lance ?

#

oe oe

#

mais si le bot a 0 perm sur le serv, il peut quand meme savoir qui rejoint ?

#

Oui

#

Pourquoi il ne pourrait pas

#

?

#

nan comme ca x)

weak grove
#

re, ont peux check si la reaction du mec et sur le bon message ??

timid loom
#
if (reac.message.id === '727631959408246905') {
  // on fait des trucs
}
weak grove
#

ah niquel merci

keen narwhal
#

quelqu'un peut m'aider svp,
je trouve pas le code pour faire ce type de commande :

je fais par exemple >say @keen narwhal test
et ca envoie le message (test pour l'exemple) a la personne mentionné

oak turret
#

tu mentionnes l'user en first

#

puis la raison après fin le message

keen narwhal
#

faut faire 2 args ?

oak turret
#

après tu fais ta let member en faisant member.send(const message)

#

j'ai fais le code vite fait

#
if (command === "say") {
        let member = message.mentions.members.first();
        if(!member) return message.channel.send("Vous devez mentionner un joueur");
        const mess = args.slice(1).join(" ");
        if(!mess) { res = "Pas de message";} else { res = mess; }
        member.send(mess).catch(error => message.channel.send(`Je ne peux pas envoyer de message à cette personne car ${error}`));

    }
#

command c'est un truc perso

#

tu peux faire message.content === "say"

keen narwhal
#

parfait

#

ca marche tu geres !

oak turret
#

np ^^

keen narwhal
#
        let member = message.mentions.members.first();
        if(!member) return message.channel.send("**Vous devez mentionner un utilisateur**");
        const mess = args.slice(1).join(" ");
        if(!mess) { res = "Pas de message";} else { res = mess; }
        member.send(mess +  member.mentions).catch(error => message.channel.send(`**Je ne peux pas envoyer de message à cette personne car** : \n ${error}`));

    }```
#

j'aimerais si possible que l'utilisateur soit mentionné a un moment spécifique dans le message si c'est possible

#

tu sais faire ca ? ^^

oak turret
#

à un moment spécifique ?

keen narwhal
#

fin je veux dire pas au début du message

lunar nebula
#

Bonjour,

Je début dans la création de bot (discord), j'ai regardé une vidéo pour m'aidé a commencer.
Mon problème est que j'arrive pas a prendre un utilisateur mentionner.

const Discord = require("discord.js");
const moment = require("moment");

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

    const membre = message.mentions.users.first() || message.member;
    //if(!membre) return message.channel.send("Veuillez mentionner un user");

    message.channel.send({
        embed: {
            color: 0xe43333,
            title: `Statistique de l'utilisateur **${membre.user.tag}**`,
            thumbnail: {
                url: membre.user.displayAvatarURL
            },
            fields: [
                {
                name:"> ID :",
                value: membre.id
                },

                {
                    name: "Crée le :",
                    value: moment.utc(membre.user.createdAt).format("LL")
                },

                {
                    name: "Jeux :",
                    value: `${membre.user.presence.game ? `${membre.user.presence.game.name}`: "Aucun jeux"}`
                },

                {
                    name: "Rejoin le :",
                    value: moment.utc(membre.joinedAt).format("LL")
                },
            ],
            footer: {
                text: `Infomration de l'utilisateur ${membre.user.username}`
            }
        }
    })
};

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

Merci pour l'aidé d'avance.

keen narwhal
#

@lunar nebula

#

tu veux genre que on fasse

#

!info @keen narwhal

ancient sonnetBOT
#

@keen narwhal, You provided an invalid numéro de l'info. Please try again.
Respond with cancel to cancel the command. The command will automatically be cancelled in 30 seconds.

keen narwhal
#

et ca donne ses infos ?

ancient sonnetBOT
#

@keen narwhal, You provided an invalid numéro de l'info. Please try again.
Respond with cancel to cancel the command. The command will automatically be cancelled in 30 seconds.

keen narwhal
#

cancel

ancient sonnetBOT
#

@keen narwhal, Cancelled command.

lunar nebula
#

Yes,quand je mentionne une personne la function ne réagie pas

keen narwhal
#
        user = message.mentions.users.first();
   } else {
        user = message.author;
   }
 
   const member = message.guild.member(user);
 
   const embed = new Discord.MessageEmbed()
      .setColor('RANDOM')
      .setThumbnail(user.avatarURL)
      .setTitle(`${user.username}#${user.discriminator}`)
      .addField('Nickname :', `${member.nickname !== null ? `${member.nickname}` : 'None'}`, true)
      .addField('ID :', `${user.id}`, true)
      .addField('Compte créer le :', `${moment.utc(user.createdAt).format('dddd, MMMM Do YYYY, HH:ss')}`, true)
      .addField('Rejoin le serveur le : :', `${moment.utc(member.joinedAt).format('dddd, MMMM Do YYYY, HH:ss')}`, true)
      .addField('Status :', `${user.presence.status}`, true)
      .addField('Joue a :', `${user.presence.game ? user.presence.game.name : 'None'}`, true)
      .addField('Roles :', member.roles.map(roles => `${roles.name}`).join(', '), true)
      .setFooter(`Info Demander Par ${message.author.username}#${message.author.discriminator}`)
      .setTimestamp()
 
  message.channel.send({embed});```
#

@lunar nebula

#

ca devrait pouvoir t'aider

lunar nebula
keen narwhal
#
        user = message.mentions.users.first();
        const  member = message.mentions.members.first();

        var avtar_embed = new Discord.MessageEmbed()
        .setColor("#ff00b7")
        .setThumbnail('https://cutt.ly/uouiXbI')
        .setDescription(`**TESTTT`)
        .setFooter("testtt")
                if(!member) return message.channel.send("**Vous devez mentionner un utilisateur**");
        member.send(avtar_embed + `<@${user.id}>`)

}```
#

j'aimerais que ca envoie un embed + une mention a la personne en question en mp

#

mais ca envoie [object Object]@ytzmo

#

je ne sais pas pourquoi l'embed est remplacé par [object Object]

oak turret
#

member.user.username

keen narwhal
#

: (

oak turret
#

bah sinn ${user}

keen narwhal
#

toujours : [

west plover
#

tu veux pas plutôt log ton object

oak turret
#

mais c'est où le object object ?

keen narwhal
#

heu cmt ??

west plover
#

au lieu de le faire à l'aveuglette

oak turret
#

quelle ligne

#

console.log

keen narwhal
#

enfait ca me met aucun message d'erreur c'est juste qu'a la place de l'embed ca m'envoie [object Object]

oak turret
#

quelle ligne

#

montre

west plover
#

oé mais Discord c pas ton debuggeur 🤷‍♀️

keen narwhal
#

c'est ma commande ca =>

#

et le résultat =>

oak turret
#

ouais ok

#
member.send(avtar_embed).then(r => r.channel.send(`<@${user.id}>`)

pas sur du .then mais test

keen narwhal
#

ok cimer

#

oep ducoup ca marche mais ca fait comme si je faisais :

#

et j'aimerais que l'embed soit aussi mentioné en jaune ^^

oak turret
#

oui

#

tu peux pas

keen narwhal
#

comme ces pubs toxiques

oak turret
#

on peut pas mentionner un user en embed, fin il aura pas de notif donc pas de trucs jaunes

#

dans le setTitle

keen narwhal
#

meme avec un string

oak turret
#

dans le setTitle c'est good je pense

#

att

#

ah non

keen narwhal
#

nan j'ai test x)

oak turret
#

avant ta var de ton embed t'envoies un message avec ${user}

#

ça l'enverra en même temps que ton embed

keen narwhal
#

mais ca sera 2 message differents nan ?

oak turret
#

non j'en doute vu que c'est envoyé avec quelques ms d'intervalles

#

test

keen narwhal
#

en mode ca ?

oak turret
#

yas

keen narwhal
#

mais avec ca ?

oak turret
#

non là tu dm l'user

keen narwhal
#

oe c'est cque je veux ^^

#

qu'il recoive un embed et un message le mentionnant

oak turret
#

mais un mp notif déjà l'user

#

useless

keen narwhal
#

mdr

#

je sais

#

mais

oak turret
#

une notif c'est suffisant

keen narwhal
#

ca m'intrigue qd meme de pas savoir comment ils font ca

red snow
#

Ptet ça change selon le langage 🤷‍♂️

#

Parce que je pense pas que l'api discord limite ça

oak turret
#

c'est tout simple mdr

#

ils send le dm avec un message simple et leur liens

#

point barre

#

niveau technique c'est ez

keen narwhal
#

mais ca reste le mm msg

oak turret
#

bah normal

#

c'est un lien

#

c'est rien de plus que

#
member.send(`<@{user.id}> https://google.com/`);
#

discord fait le reste

keen narwhal
#

att l'embed vient d'un lien ?

oak turret
#

c'est pas un embed

keen narwhal
oak turret
#

c'est car t'es mentionné dedans

#

simplement

keen narwhal
#

cmt on fais x)

oak turret
#

j'tai donné le code

red snow
#

Il parle du join and take your nitro

oak turret
#

ahh

#

j'pense que c'est un message avec une image intégrée

keen narwhal
#

Mais. Si on peut

weak grove
#

hello, j'ai un problème actuellement sur mon .setName, je veux modifier le nom de mon channel vocal a chaque fois que je rajoute une variable tout fonctionne via mon console.log sauf que quand je fait via .setName et bah sa change bien le 1 mais après plus rien sa bloque sur le 1

client.guilds.get(' ').channels.get(' ').setName(`POLICE: ${policenb}`)
keen narwhal
red snow
#

@weak grove jai pas bien compris, mais faut savoir que discord limite à 2 modifications de channel par 0 minutes (Donc setName et tout le tralala)

weak grove
#

Ah merde mais ducoup les serveur avec un member count il font comment?

oak turret
#

@keen narwhal c'est exactement ce que j'lui ai dis xd

keen narwhal
#

xD, chuttt

oak turret
#

ptdrr

#

content: <@${user.id}>, il voulait ça lui je crois

#

Rytrak, je pense qu'ils l'updatent à chaque nouveau membre, si y a + 2 joueurs chaque minutes, le truc update après

keen narwhal
#

@weak grove Perso j'ai utilisé un setInterval() qui se produit toutes les 90 secondes pour updates le nom des channels par le memberCount

#

Donc tu pourrais mettre dans le setInterval la variable policenb (Comme ça elle est "mise à jour" à chaque fois, et le changement de nom du salon

slim anvil
#

Pourquoi tu mets juste pas à jour ton nom de channel quand quelqu'un leave / join ?

keen narwhal
#

C'est vrai que c'est plus opti

#

Mais j'imagine que si c'est policenb c'est peut-être en fonction du nombre de personnes qui ont le rôle police ?

hazy mirage
#

tu devrais faire un combo du setInterval et une condition pour voir si ça à changé depuis la dernière fois, car si jamais y'a plein personnes qui rejoignent en moins d'une minute (╯°□°)╯︵ ┻━┻

oak turret
#

j'trouve que l'idée d'enzo est better

hazy mirage
#

> car si jamais y'a plein personnes qui rejoignent en moins d'une minute

slim anvil
#

Oui mais c'est oujours que de faire des interval, car tu peux aussi lancer une requête pour rien, alors que au join/leave tu sais que si ta requête part, c'est pas pour rien

Et la requete sera en success, ils vont juste crée une task et l'éxécuté plus tard, et si tu en renvoies une entre temps, ils prendront la dernière

Sinon, si c'est en fonction d'un role, tu peux aussi le faire au memberUpdate et tu regardes si ça concerne le role "Police" et ensuite tu updates

hazy mirage
#

haaaa oui my bad

weak grove
#

Donc je dois créer une function avec mon truc mon changer de nom de channel et je l'appelle quand j'ai besoin c'est sa ?

keen narwhal
#

Question on peut faire en sorte que à des heures prédéfini dans le code le bot marque des messages ?

drowsy turtle
#

quelqu'un sait comment on fait pour relier un bot discord (discord.js) avec l'api de steam pour savoir cmb de personnes sont connectés a un serveur gmod?

oak turret
#

npm i game-server-query

drowsy turtle
#

t'a la docu?

oak turret
drowsy turtle
#

ok jvais test ça

#
0|index  | RangeError [ERR_SOCKET_BAD_PORT]: Port should be >= 0 and < 65536. Received 274400.
0|index  |     at validatePort (dgram.js:360:11)
0|index  |     at Socket.send (dgram.js:613:12)
0|index  |     at ExtendedObject._udpSendNow (/home/---/www/node_modules/game-server-query/lib/protocol.js:300:18)
0|index  |     at /home/---/www/node_modules/game-server-query/lib/protocol.js:281:9
0|index  |     at processTicksAndRejections (internal/process/task_queues.js:79:11) {
0|index  |   code: 'ERR_SOCKET_BAD_PORT'``` voila ce que ça me dit
#

@oak turret

oak turret
#

quand t'as fais quoi ?

drowsy turtle
#

bah quand j'ai executé la commande

oak turret
#

la commande ?

#

npm i game-server-query ?

drowsy turtle
#

g fait une commande pour que ça s'execute

oak turret
#

montre ton code

drowsy turtle
#
const query = require('game-server-query');


module.exports.run = async(client, message, args) => {
    query(
        {
            type: 'garrysmod',
            host: '178.33.77.158',
            port: '27440'
        },
        function(state) {
            if(state.error){
        console.log("Server is offline");
        console.log(query)
        }
            else {
        console.log(state);
        }
        }
    );
};

module.exports.help = {
    name: "serverinfo",
    group: "admin"
};```
oak turret
#

ton port t'as du te gouré

#

il a récup 274400

#

remets le bien, ctrl+s, tu le redémarre

drowsy turtle
#

mais c lui il a rajouté un 0

oak turret
#

euh no

drowsy turtle
#

quoi no

oak turret
#

bah si il rajoute un 0, mets juste 2744

#

mais ça m'a jamais fais ça mdr

drowsy turtle
#

quand j'enl;ève un 0 ça me met le serveur est offline

oak turret
#

et il est ouvert ton serveur ?

drowsy turtle
#

oui

oak turret
#

bah moi ça marche nickel, mais j"utilise pas les modules donc ça doit être ça

drowsy turtle
#

bah comment tu fais sans module?

oak turret
#

je gère tout avec l'event message tout simplement, et je fais mes commandes perso avec une syntaxe perso

drowsy turtle
#

oui mais comment tu fais pour avoir les info du serveur sans module

oak turret
#

non mais j'use le package, mais pas module.exports etc

drowsy turtle
#

ça change rien ça

#

c juste un command handler

oak turret
#

j'en sais rien, j'ai jamais use ces trucs là, ton code me parait bon, donc idk

drowsy turtle
#
  run `npm audit fix` to fix them, or `npm audit` for details``` ça me met ça quand j'installe le module
#

jsp si c normal

oak turret
#

dans ton node_modules t'as le package ?

drowsy turtle
#

oui

oak turret
#

bah c'est censé être bon alors

#

donc ça vient pas du package, ni du code de l'exemple

drowsy turtle
#
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ HighInsufficient Entropy                                         │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ cryptiles                                                    │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in    │ >=4.1.2                                                      │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ game-server-query                                            │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ game-server-query > request > hawk > cryptiles               │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://npmjs.com/advisories/1464                            │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ HighPrototype Pollution Protection Bypass                        │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ qs                                                           │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in    │ >=6.0.4 <6.1.0 || >=6.1.2 <6.2.0 || >=6.2.3 <6.3.0 ||        │
│               │ >=6.3.2                                                      │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ game-server-query                                            │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ game-server-query > request > qs                            ```
#

│
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://npmjs.com/advisories/1469                            │
└───────────────┴──────────────────────────────────────────────────────────────┘``` ça me met ça quand je fait npm audit`
#

faut que j'installe d'autres trucs que ça?

oak turret
#

non

drowsy turtle
#

tu peux envoyer ton code toi ou pas?

oak turret
drowsy turtle
#

host: 'host', port: port(int) elle sont définit ou les variable host et port?

oak turret
#

nulle part, c'est juste pour ne pas mettre les valeurs

drowsy turtle
#

ah ok

#

jsp j'ai fait quoi avec mon code mais le tien fonctionne

#

mrc

#

tu sais comment on peut avoir une liste avec le nom de tt le monde de co?

#

ah non c bon g juste fait un .map

oak turret
#

okay

#

np

keen narwhal
#

guild marche plus ?

oak turret
#

client.guild

#

et au lieu de faire 36 addfield

#

tu peux faire

#
.addFields(  
    {name: "test", value: "test", inline: true/false},
    {name: "test", value: "test", inline: true/false}
)
keen narwhal
#

Thx bro

oak turret
#

np

keen narwhal
#

pour savoir le nombre de serveur ou est le bot il faut faire quoi svpp

timid loom
#

client.guilds.cache.size si t'es en v12
client.guilds.size si t'es en v11

keen narwhal
#

cim

round maple
#

Bonjour j'ai une question débile mais je n'y arrive pas, en gros j'aimerais bien mettre mes commandes dans un fichier commandes

#

Je sais que c'est facile mais je n'y arrive pas :/

drowsy turtle
#

faudrait faire un command handler

keen narwhal
#

Je me demande, si on peut faire un math random, seulement pour les fields, genre, que ce n'est pas nécessairement le même pour chaque personne

oak turret
#

bah le contenu oui

#

la value

#

tu fais un tableau, avec tes différents contenus

#

et dans la value tu fais un math.floor(math.random() * array.length) c’est en majuscule je crois mais j’ai pas la syntaxe sous la main

keen narwhal
#

Ouah, j'ai oublié comment get le message qu'on vient juste d'envoyer pour ajouter des reactions.

#

Ah non, c'est bon

oak turret
#

juste un .then après le message que t'envoies

keen narwhal
#

Yep

#

J'ai une question comment on fait pour laissé rien dans value dans un embed

#

Genre

#

aussi

#

Si je veux que genre

#

Les 3 choix possible soit aligner, mais que le montant soit en dessous de chacun comment je fais ?

#

j'ai beau mettre l'id mais le embed n'est pas dans le channel

#

prédéfinit

#

normal ?

#

Il faut un message.channel.get('id').send(Suprime)

#

Je vois même pas à quoi ta const channel sert

#

Si tu veux faire une sorte de log

#

Ouai je veux faire une sorte de log

#
client.channels.cache.get(`id`).send(`Suprime`)
#

ou bot

#

Ça dépent

#

De ce que tu as mis

#

Ouaip

#

thx bro

oak turret
#

J'ai pas capté c'que tu veux faire Alex

keen narwhal
#

Tkt

#

J'ai trouvé

#

En gros, au lieu d'avoir un espace dégeu entre la missions et ce que ça rapporte bah, c'est collé

#

Mais je me dis que ça va faire moche

oak turret
#

après le e de arbre par exemple fais un espace

#

dans ton code

keen narwhal
#

est ce que c'est possible de mettre en place un systeme pour que par exemple dans un salon spécial les membres de peuvent faire qu'une commande fin si la commande ne commence pas pas !rank (exemple) ca supprime le message

oak turret
#

en français ?

keen narwhal
#

En gros quand la commande du bot n'est pas mise tous les messages autre que la commande sont suppr

#

stv je justifie mieux

oak turret
#

je comprends encore moins

#

mdr

keen narwhal
#

en gros j'ai un salon j'aimerais que les membres ne peuvent faire qu'un seul type de message

#

fin mdr att

#

pas compliqué pourtant

#

si le bot ne trouve pas !rank dans leur message ou si il ne commence pas par !rank ca delete le msg

oak turret
#

bah les gars exprimez vous plus simplement

keen narwhal
#

c'est le plus simple possible

oak turret
#

bah ui simple

keen narwhal
#

🤷‍♂️

oak turret
#

bah tu get le fameux channel dans une const, et tu fais une condition

keen narwhal
#

jme suis jamais intéressé aux conditions ^^

#

donc j'y connais pas grand choses

oak turret
#
const channel = client.guild.channels.cache.get("id");
if ( channel && message.content !== "!rank" || !message.content.startsWith("!rank") ) {
  message.delete();
}
#

bah si tu veux dév, faut apprendre les conditions, c'est la base

#

j'avais oublié le commence par !rank

keen narwhal
#

cimer et oe je vais m'y interessé x)

oak turret
#

obligatoire

keen narwhal
#

x)

weak grove
#

Hello, j'ai un problème, j'ai un bot music sauf que quand je play un lien youtube sa me dit ffmpeg/avconv not found! sauf que je l'ai bien installer, ont ma dit de mettre le fichier ou se situe index.js (j'ai aussi essayer avec le .exe)

keen narwhal
#

Est-ce que tu le require ?

timid loom
#

tu as ajouté ffmpeg à ton PATH ?

weak grove
#

Ah il faut le require?

#

Sinon le path c'est le package lock?

keen narwhal
#

Bah essaie

#

Jsp

#

Salut wavey ,

Je voulais essayé de faire un système de mission sur un bot. Il envoi bien les informations en mp, etc, mais c'est lorsqu'il faut rajouté une réaction au message pour qu'il choisisse la mission que je galère, je sais absolument pas quoi faire.

oak turret
#

tu fais une condition sur la réaction, en fonction tu fais ton code

keen narwhal
#

Je comprend pas

oak turret
#
const { message, _emoji } = reaction;
if ( message.reaction._emoji.name === "l'émoji" ) {
    // ton code
}

Comme ça me semble t-il

keen narwhal
#

Je vais regarder ça plus tard, merci.

weak grove
#

Sa me met carrément une erreur dés que je le require Error: Cannot find module 'ffmpeg'

oak turret
#

c'est normal

#

c'est pas un module ,

#

?

weak grove
#

nn c'est ffmpeg

oak turret
#

et t'as mis juste le fichier "ffpemg" donc ni extension ni rien

weak grove
#

il faut tout mettre?

oak turret
#

bah c'est en js dedans ?

weak grove
#

nn c'est ffmpeg ya sois windows ou version linux donc j'ai pris linux mais le contenu c'est sa

oak turret
#

oula

#

idk, cherche plutôt un module npm

weak grove
#

ok

keen narwhal
#

quelqu'un sait comment faire un embed sans les bords x)

oak turret
#

sans les bords ?

keen narwhal
#

a moins que ca soit pas un embed

oak turret
#

c'est un embed

keen narwhal
#

tu sais cmt faut faire ?

#

pour enlever les bords

oak turret
#

mais enlever quel bord ? mdr

#

alex avait mit le code

keen narwhal
#

bah le bord a gauche

#

^^

#

dans cette pub la y'a un bord a gauche ^^

oak turret
#

bah tu mets pas de couleur

#

tu mets pas de .setColor

keen narwhal
#

moi ca met en noir quand je mets pas de couleur

#

la le premier embed j'ai enlevé le setColor

#

le deuxieme j'ai mis .setColor("000")

oak turret
#

sinon tu mets la même couleur que l'embed

keen narwhal
#

ah

#

bien vu

#

jvais test

oak turret
#

c'est à dire

round maple
#

bonne chance

oak turret
#

#2f3136

round maple
#

Ha gg

keen narwhal
#

OH

#

BG

round maple
#

eheh

oak turret
keen narwhal
#

je trouve ca clean de fou

oak turret
#

si c'est ce que tu cherches, tant mieux 🙂

keen narwhal
#

j'aimerais que quand quelqu'un rejoigne le serveur, il recoive un dm

#

il y a une erreur dans ce code ?

#
                  member.send("Bienvenue !");
              });```
oak turret
#

oui

#

user useless enl_ve le

#

enlève message aussi

#

tu mets juste

#

member.send("Salut");

keen narwhal
#
                  member.send("Bienvenue !");
              });```
#

la c'est bon ?

oak turret
#

ui

keen narwhal
#

thanks

keen narwhal
#

comment on fait deja genre la je fais un systeme badword qui supprime le message

#

pour que ca soit aussi en majuscule

#

Bah tu rajoutes une option, en majuscule

oak turret
#

string.upper je crois

keen narwhal
#

if (message.content.includes('fake') || message.content.includes('quittez') tu as des trucs à caché ?

#

je viens de le copier

#

mdr

#

on m'a envoyé ca

oak turret
#

t'as compris le code ?

keen narwhal
#

oe

#

cim

oak turret
#

on a même pas répondu à ton pb

#

mdr

keen narwhal
#

nan j'ai compris fin jme suis rappelé fin cst bon okllm

oak turret
#

mh

keen narwhal
#

C'est étrange

oak turret
#

il a du trouvé un truc sur internet mdr

keen narwhal
#

oe ^^

#

mais je l'avais deja utilisé

#

J'me dis mais genre, t'ser mee6 toute les options qu'il a

#

Wtf

#

Le mec

#

Il a dû tryhard sa mère

#

J'espère que c'est rentable

#

Parce

oak turret
#

mee6 ?

#

c'pas le mais les mecs

keen narwhal
#

Yep

#

xD

#

Bah ils ont

#

Tryhard sa mère quand même

oak turret
#

Bah en vrai, suffit de bien maitriser le truc

keen narwhal
#

c'était ca

oak turret
#

Lowercase c'est minuscule

#

uppercase c'est majuscule

#

.toUpperCase()

keen narwhal
#

oep

oak turret
#

arrête de prendre sur internet

keen narwhal
#

nan nan

oak turret
#

tu te trompes car tu connais pas la différence entre lower et upper

keen narwhal
#

je sais que jme suis trompé psk j'ai test et j'ai bien vu que ca marchais pas

oak turret
keen narwhal
#

qd mm sans internet je saurais pas grand chose sur js

oak turret
#

faut apprendre

round maple
#

👀

keen narwhal
#
    const channel = client.guild.channels.cache.get("728962678663676004");
    if ( channel && message.content !== "!rank" || message.author.bot || !message.content.startsWith("!rank") ) {
    message.delete();
                  }```
oak turret
#

?

keen narwhal
#

depuis tout a l'h je comprend pas pourquoi quand je fais !rank
ca m'envoie cette erreur TypeError: Cannot read property 'channels' of undefined

oak turret
#

guilds ?

keen narwhal
#

la ca marche mais ducoup ca supprime des que je met un message dans un autre salon ^^

oak turret
#

|| = or

#

&& = and

keen narwhal
#
    if ( channel and message.content !== "!rank" or message.author.bot or !message.content.startsWith("!rank") ) {
    message.delete();
                  }
#

ca me met full erreur la

oak turret
#

maos

#

mdr

#

mets &&

#

att

#
const channel = client.channels.cache.get("728962678663676004");
    if ( channel and message.content !== "!rank" || message.author.bot && !message.content.startsWith("!rank") ) {
    message.delete();
                  }
keen narwhal
#

oe la j'ai test ca met met des erreurs

oak turret
#

mais ne mets pas and

#

mets &&

keen narwhal
#

ca delete encore les message quand c'est autre part x [

oak turret
#

normal

#

tu fais

#

else {
return;
}

keen narwhal
#
                if ( channel && message.content !== "!rank" || message.author.bot && !message.content.startsWith("!rank"))   
                {
                  message.delete();
                                }          
                else {
                  return}  ```
#

je vois pas ou est mon erreur ? x)

oak turret
#
  const channel = client.channels.cache.get("728962678663676004");
      if ( channel && message.content !== "!rank" || message.author.bot && !message.content.startsWith("!rank"))   {  
      message.delete();
}
else {
  return;
} 
keen narwhal
#

ca delete encore : (((((

oak turret
#

tu veux faire quoi en fait attend

keen narwhal
#

juste que si dans un channel spécial, si une personne mets un autre message que !rank ca delete

oak turret
#
const chan = message.guild.channels.cache.get("728962678663676004");

  if ( chan && message.content !== "!rank" || message.author.bot ) {
    message.delete();
}
 else {
  return true;
}
keen narwhal
#

ca delete toujours dans les autres channels ^^

oak turret
#

alors c'le if chan

keen narwhal
#

au pire jvais pas t'embeter jvais juste blacklist quelques mots

oak turret
#

non mais ça doit être un truc que j'ai zappé

keen narwhal
#

: [

oak turret
#

ok je sais

keen narwhal
#

: )

oak turret
#
const chan = message.guild.channels.cache.get("728962678663676004");
  if ( chan ) {
    if ( message.content !== "!rank" || message.author.bot ) {
      message.delete();
  }
}
else {
  return true;
}
#

pas sur du else, j'suis fatigué mdr

keen narwhal
#

ah je vois

#

if chan

#

rahhhh c'est relou

#

ca delete encore

oak turret
#
const chan = message.guild.channels.cache.get("728962678663676004");
  if ( chan ) {
    if ( message.content !== "!rank" || message.author.bot ) {
      message.reply("Différend de !rank")
  }
}
else {
  return message.channel.send("Test");
}
#

look pour voir

keen narwhal
#

azy

#

oe la deja c'est mieux

#

fin ca met different de rank

#

mais partout

#

pas que dans le channel

oak turret
#

partout ?

#

wtf

keen narwhal
#

: //

#

oe

#

Vous voulez faire quoi ?

oak turret
#
const chan = message.guild.channels.cache.get("728962678663676004");
  if ( chan ) {
    if ( message.content !== "!rank" || message.author.bot ) {
      message.reply("Différent de !rank")
  }
  if ( !chan ) {
    return;
  }
}

#

c'bizarre

keen narwhal
#

oe azy pas grave jvais essayer de trouver une alternative merci qd mm x)

keen narwhal
#
                  if ( message.author.bot ) {
                    return;
                }
                 else {
                                   
                  {   var embed_embed = new Discord.MessageEmbed()
                        .setDescription("list des commandes :")                                   
                        .setColor("#2f3136")   
                
                
                    message.author.send(embed_embed)
                
                }
              }
                }```
#

j'aimerais que si la personne envoie la commande !help au bot en dm, il ne réponde pas, en revanche si c'est sur un salon, il réponde

#

...

#

if (message.channel.type === "dm") return;

#

ok cimer et pour faire une condition en mode il faut que l'ID du channel soit égal a xxxxxxx ?

oak turret
#

quoi ?

keen narwhal
#

genre pour pouvoir une commande que dans un salon spécifique

#

il faut faire une condition avec l'id ou le nom du salon nan ?

oak turret
#

oui

keen narwhal
#

Hello ! J'aimerais faire une sorte de Captcha avec mon bot Discord, lorsqu'un utilisateur rejoint. Du coup ça fonctionne, sauf qu'il faudrait que lorsqu'il rate, cela retourne au awaitMessages, jusqu'à ce qu'il ait la bonne réponse
(Ce code est dans un commande test, donc j'utilise pas directement le member comme dans client.on('message') ^^ )


    const filter = m => m.author.id === message.author.id

    message.channel.awaitMessages(filter, { max: 1, time: 60000 }).then(collected => {

        let content = collected.first().content.toLowerCase()

        console.log(content)

        if (content == c) {
            return message.channel.send("Vrai !")
        }
        else {
            message.channel.send("Faux ! Veuillez réessayer")
        }
    })
keen narwhal
#

Résolu

#
    const filter = m => m.author.id === message.author.id

    const collector = message.channel.createMessageCollector(filter)

    collector.on('collect', m => {
        if (m.content == c) {
            return message.channel.send("Vrai !")
        }
        else {
            message.channel.send("Faux ! Veuillez réessayer")
        }
    })
#

J'ai utilisé un collector

keen narwhal
#

comment je peut faire une commande pour faire un giveway

keen narwhal
#

Normal ?

#

Quel version de discord.js ?

#

12.2.0

#

Je crois pas que tu as les bonnes infos, regarde les changements

#

Ça me semble de v11 ton code so..

#

Mais je peux me tromper

#

nn ta raison c'est un ancien code

keen narwhal
#

Oh

keen narwhal
#

JPp

#
client.on('message', msg => {
    if(msg.content.toLocaleLowerCase() === 'oof') {
        msg.channel.send('OOF')
    }

    if(msg.content.toLocaleUpperCase() === 'oof') {
        msg.channel.send('OOF')
    }
})
#

Je trouve pas l'error

#

Pourquoi ça spam

west plover
#

déjà t’as deux fois le même code qui envoie un message donc quand t’envoie un oof ça répond 2 fois 🤔

keen narwhal
#

Ouais, mais

#

Ça

#

Je viens de le comprendre, mais genre

#

Il le spam sans se stop

spring dock
#

car son message est oof

keen narwhal
#

Ah

spring dock
#

donc forcément ça spam

keen narwhal
#

Mmh

spring dock
#

vérifie que l'auteur du message n'est pas le bot

west plover
#

faut check si c un bot du coup

keen narwhal
#

Yep

#

Mais du coup

#

Comment je fais pour que ça ne renvoie pas deux fois

#

La même chose

slim anvil
#

t'as 2 fois la meme condition

#

vires en une

#

et tu rajoutes une vérif de si l'author n'est pas un bot

spring dock
#

ça va pilot?

slim anvil
#

if (msg.author.bot) { return }

spring dock
#

(je dit ça car tu répète juste ce qu'on viens de lui dire comme lui, tocard)

slim anvil
#

Bah il redemande

#

donc tu l'as boucles branleur

spring dock
#

je faisait réf au

t'as 2 fois la meme condition

slim anvil
#

Comment je fais pour que ça ne renvoie pas deux fois

#

même réponse

spring dock
#

soif go dormir

slim anvil
#

??

spring dock
#

moi

keen narwhal
#

Je demandais parce que je pensais pas que un des deux regardais

#

ouais non laissé tomber my bad

round maple
#

@keen narwhal tu met un if(message.author.bot) return;

#

en haut du code

keen narwhal
#

Je sais xD

round maple
#

ha ptdr

keen narwhal
#

C'était pas ça mon problème x,) Mais merci quand même

round maple
#

ha dr 😂

keen narwhal
#

xD

oak turret
#

c’était quoi ton pb?

keen narwhal
#

Il postait à l'infini mon truc

#

Mais c'est patch xD

slim anvil
#

Bah si le probleme venait bien du message.author.bot par contre

keen narwhal
#

Yep, mais le dernier problème en liste n'était pas ça

burnt perch
keen narwhal
#

RIP

burnt perch
#

ça m'aide pas vraiment 😦

keen narwhal
#

Library is Corrupt

#

Pas sûr qu'on puisse faire grand chose

burnt perch
#

bah reinstall tout non ?

#

mais enfaite c'est déja fait et non....

oak turret
#

c’est kocé

keen narwhal
#

Tu dois réinstaller jsp quoi mais tu dois réinstaller un truc

burnt perch
#

oui ça je sais 😂 mais quoi j'ai essayer des trucs avec node-gyp mais sans résultat downgrade upgrade nodejs npm aussi enfin tout ce que tu veux mais non mais ça me fait ça que avec quick.db

#

et better sql lite

#

mais si vous avez un module du genre sympas je suis prenneur !

oak turret
#

euh t'es dans la mouise alors

#

réinstalle node pour voir

burnt perch
#

yes go tenter ça

burnt perch
#

c'est fix

keen narwhal
#

Nice

oak turret
#

c’était node?

burnt perch
#

oui c'était cet enfoiré

oak turret
sand shore
#

Npm c’est une galère

#

Sois ça marche bien, sois npm te fait une crise et tu galère à installer un package

oak turret
#

c’est comme tout

timid loom
#

j'ai rarement des gros problèmes avec npm perso

oak turret
#

j'en ai pas trop eu non plus

slim anvil
#

same

keen narwhal
#

    if (command === "test") {
        let member = message.mentions.members.first()
        bot.guilds.find("id","729999915173806211").channels.find("name","annonces").send("Test")
    }```
#

j'aimerais envoyer un message dans un autre salon ^^

#

et je ne trouve pas la soluce ca ca : TypeError: bot.guilds.find is not a function

oak turret
#

encore un truc d'internet ?

keen narwhal
#

??

oak turret
#

déjà c'est .cache.find

#

donc

#

message.channels.cache.get("id").send("test")

keen narwhal
#

    if (command === "test") {
        let member = message.mentions.members.first()
        message.channels.cache.get("729999915173806211").send("test")

    }```
oak turret
#

.channel pardon

#

et attend

keen narwhal
#

heu

red snow
#

Oula

#

🤔

oak turret
#

po normal

#

pourtant c'est la suite logique du wkiki

#

attend

red snow
#

Bah si c'est normal OwO

oak turret
#

attend

#

je vais look un truc

#

message.client.channels.cache.get("id").send("ok")

#

ça c'est good

#

my bad

keen narwhal
#

oep cimer et c'est possible avec 2 args ? en mode :

#

test < id du salon > < message >

#

ah bah cst good j'ai réussi

oak turret
#

comment t'as fais, mets le pour les autres qui ne savent pas que ça servent

keen narwhal
#

    if (command === "test") {
        let arg1 = args[0]
        let arg2 = args.slice(1).join(    ' ');
        let member = message.mentions.members.first()
        
        message.client.channels.cache.get(arg1).send(arg2)
        

    }
cyan iron
#

Salut j'aurais besoin de l'avis de pro !
J'aimerais savoir quel est selon vous le meilleur handler discord js

#

Je recherche quelque chose avec les aliases, description et le plus opti possible

#

(mentionnez moi s'il vous plaît)

slim anvil
#

@cyan iron bah sois tu te fais le tiens vraiment poussé comme tu le souhaites sois commando qui est déjà très complet je trouve

cyan iron
#

Ok je check Merci 😉

#

Ouf ça a l'air compliqué non

#

Au pire je tente de comprendre demain

cyan iron
#

Enzo, je voulais te demander, j'ai fait ça :
message.js

    cmd.run(client, message, args);

say.js

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

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

    if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("> :non: **Désolé mais tu n'as pas les permissions d'effectuer cette commande**")

    if (!args[0]) return message.channel.send("> :non: **Met quelque chose dans le message !**")

    let message_content = args.join(" ")

    if (message.guild.members.cache.get(client.user.id).hasPermission("MANAGE_MESSAGES") || message.guild.members.cache.get(client.user.id).hasPermission("ADMINISTRATOR")) message.delete()

    message.channel.send(message_content)
}

En fait j'aimerais ajouter la description, les aliases etc

#

Comment je pourrais faire ?

#

En fait sur mon autre bot j'ai déjà un handler, mais il est pas très opti et il n'utilise pas les events

#

C'est bon quelqu'un m'aide merci quand même :)

slim anvil
#

sorry wailrone je suis au taff pas trop le temps :/

cyan iron
#

pas grave enzo j'ai réglé le problème ;)

#

je me suis fait un bot "base"

oak turret
#

Hello les gars, comment je peux check qu'un user est un certain grade ?

cyan iron
#
if(message.member.roles.cache.has('ROLEID')) {
// Ton code ici
}
oak turret
#

nice merci , j'y avais pensé mais je pensais que has c'était pour les permissions

cyan iron
#

nope c'est pour tout ^^

#

Enfin presque

oak turret
#

okay bah tant mieux car j'étais pas sur !

cyan iron
#

^^

#

Comment on level up déjà

#

Parceque "débutant" 😂

keen narwhal
#

Evaluation Michel

slim anvil
oak turret
#

zaros répond po xd

spring dock
#

il est occupé

#

faut le relancer

queen ocean
#

va si je fais ca mtn la tout de suite

cyan iron
#

srx

oak turret
#

Yop,

Alors j'ai un problème assez bizarre, en utilisant game-server-query, je test avec oscarrp, en me basant sur top-serveurs pour les stats.
J'ai donc un tableau d'objet quand je log ma fonction, donc je fais .length pour avoir la valeur en int, mais ce n'est pas la bonne valeur, et je comprends pas pourquoi xD

 if (command === "status") {
        query(
            {
                type: 'garrysmod',
                host: "208.103.169.225",
                port: 27015,
            },
            function(state) {
                if(state.error){
              const err = new Discord.MessageEmbed()
                    .setColor("#CB0000")
                    .addFields(
                        {name: 'Etat du serveur', value: 'Le serveur est actuellement éteint, vous ne pouvez donc pas voir les données.', inline: true},
                    );
                    message.channel.send(err);
            }
            else {
                const map = state.map;
                const players = state.players.length;
                const name = state.name;
                const maxplayers = state.maxplayers;
                console.log(state);
                const Embed = new Discord.MessageEmbed() 
                      .setColor('#f05a29')
                      .addFields(
                          {name: 'Nom du serveur', value: `${name}`, inline: false},
                          {name: 'Carte', value: `${map}`, inline: false},
                          {name: 'Joueurs connectés', value: `${players}/${maxplayers}`, inline: false},
                      );
                      message.channel.send(Embed).then(msg => {
                          setInterval(function() {
                            msg.edit(Embed);  
                          }, 5000);
                      })
  
            }
            }
        );
    }

Screen de mon log https://gyazo.com/e1ad1cccfa503f8f8413358f91041a74

slim anvil
#

Quand tu log state tu as bien un .players dedans ? C’est le log que tu nous montres ?

oak turret
#

yep

#

players est un des éléments de state

slim anvil
#

Tu peux log ton state et me montrer plz

#

(En entier)

oak turret
#

yep

#

trop gros pour le screen

slim anvil
#

ouais ça me parait normal fais ça pour voir

#
const { map, players, name, maxplayers } = state
console.log(players)
#

en enlevant les autres truc

oak turret
#

je fais ça juste après

#
[
  { name: 'Mede Mede', score: 1, time: 27193.3046875 },
  { name: 'Thomas OSCAR-RP', score: 1, time: 24747.21875 },
  { name: 'gammex34', score: 0, time: 22420.52734375 },
  { name: 'Hass_La_Hess', score: 0, time: 21979.373046875 },
  { name: 'Leonid', score: 4, time: 17944.673828125 },
  { name: 'Rogue', score: 1, time: 13071.826171875 },
  { name: 'lgtheo72', score: 1, time: 10978.2880859375 },
  { name: 'GamerFaceLamb', score: 2, time: 10684.6533203125 },
  {
    name: '[OSCAR RP] Thibault Delabarre',
    score: 2,
    time: 6991.31787109375
  },
  { name: 'gaeljugu7', score: 0, time: 5916.45361328125 },
  { name: 'korosenai', score: 0, time: 5658.91552734375 },
  { name: 'tiagofaria', score: 0, time: 5141.587890625 },
  { name: '[EXON] LePanda76', score: 0, time: 4674.607421875 },
  { name: 'cl.relook', score: 0, time: 4132.076171875 },
  { name: '[LDA] Pompote.exe', score: 0, time: 4000.537109375 },
  { name: '[oscar rp] djeydjey', score: 0, time: 3921.153564453125 },
  { name: 'Amphiel', score: 0, time: 3250.076171875 },
  { name: 'Lacourge', score: 0, time: 2598.99853515625 },
  { name: 'Darkos043', score: 0, time: 2577.84423828125 },
  { name: 'Adrien', score: 0, time: 1292.843994140625 },
  { name: 'juliusdu14', score: 0, time: 1206.460693359375 },
  { name: 'Amnezki - Julory', score: 0, time: 1158.6915283203125 },
  { name: 'Marcel', score: 0, time: 1116.3837890625 },
  { name: 'YUNN35YT', score: 0, time: 1081.76806640625 },
  { name: 'Oscar RP | Tommy Jack', score: 0, time: 1075.53759765625 },
  { name: 'Marco$', score: 0, time: 1051.306884765625 },
  { name: 'DESERTIX25', score: 0, time: 975.3837280273438 },
  { name: 'Kaneki Ken', score: 0, time: 961.6144409179688 },
  { name: 'Drakhfun', score: 0, time: 820.076171875 },
  { name: 'Alexis Patrovich', score: 0, time: 497.3828125 }
]
#

voici

slim anvil
#

et si dans ton console.log(players.length) ??

oak turret
#

c'est ce que j'allais faire

#

ça me mets 31/85 alors que sur Top-Serveurs c'est 39/85 :x

slim anvil
#

bah après ça j'y peux rien

#

peut etre que eux c'est pas à jour

oak turret
#

J'ai pensé à un truc, c'est que game-server-query prends tous les joueurs qui sont connectés

slim anvil
#

il refresh peut etre toutes les x secondes

oak turret
#

et pas ceux qui sont en train de se co

slim anvil
#

oui par ex

#

mais ça t'y peux rien

#

sinon tu fais

#

+5

oak turret
#

okay donc c'est good alors xD

#

xDDD

keen narwhal
#
    bot.on('guildMemberAdd', member => {
      member.send(`Bienvenue sur le serveur ${member}`).catch(error => console.log(`message non envoyé à ${member.username}`))
      });```

Avec ce codage, on est d'accord que c'est censé envoyé un message en mp quand un utilisateur rejoint le serveur ??
oak turret
#

pourquoi tu testes pas avant de demander ?

#

mais ui

keen narwhal
#

bah enft ca m'affiche aucun message d'erreur

#

mais ca n'envoie ps le message

oak turret
#

déjà dans le catch

#

error => console.error

#

j’ai pas fais la syntaxe car j’suis sur tel

#

mais t’as compris

frosty idol
#

Quelqu'un sait me dire comment Ajouter un grade quand on clique sur une réaction d'un embed qui se met dans le salon avec une commande ? Merci 😅

cyan iron
#

Il faut faire avec un collector

keen narwhal
#

@frosty idol Comme à dit Wailrone, il faut le faire avec un collector.

west plover
#

pour quoi faire un collector? 🤔

keen narwhal
#
message.channel.send('Ton message').then(function (message) {
                message.react('🛑')

                const collector = message.createReactionCollector((reaction, client) => !client.bot, { time: 120000});
                collector.on("collect", async(reaction, user) => {
                
                if(reaction.emoji.name === '🛑') {
            
                    message.member.roles.add('IDduRôle').catch(console.error);
                    await reaction.users.remove(user.id);
                }```
#

Il veut que ce soit. Un message en particulier Guthen. Genre lorsque je fais /pokemon. Ça envoit un embed et lorsque je réagis avec une reaction bah ça me donne un rôle

#

:octogonal_sign:

#

\🛑

west plover
#

oé mais tu peux toujours le faire sans collector 🤔

keen narwhal
#

Jamais essayé

west plover
#

a moins que l’event ne s’active plus quand le message est publié avant le démarrage du bot

oak turret
#

je l'ai déjà fais

#

sans collector

west plover
#

oé comme en v11 j’imagine?

#

avec les events messageReactionAdd

#

le collector à pas l’air hyper utile dans son cas, si ça a pour but d’être un auto-roles

terse salmon
#

C'est quoi le but d'un collector ? (Désolé je débute)

keen narwhal
#

En français Collector c'est quoi ?

timid loom
#

Un collector est adapté au fait de récupérer les réactions sur une période donnée

#

Là je pense pas que ce soit l'idéal

terse salmon
#

Aaah donc ça sert pour les giveaways par exemple ?

frosty idol
#
message.channel.send('coucou').then(function (message) {
    message.react('🛑')

    const collector = message.createReactionCollector((reaction, client) => !client.bot, { time: 120000});
    collector.on("collect", async(reaction, user) => {
    
    if(reaction.emoji.name === '🛑') {

        message.member.roles.add('730925370538459236').catch(console.error);
        await reaction.users.remove(user.id);
    };
});

Quel est le problème ? -> Je souhaite, lorsque je fais la commande !coucou dans un salon -> un message prédéfini dans le fichier apparait en embed avec une réaction et lorsqu'on clique dessus on reçoit le grade (définit dans le fichier).

keen narwhal
#

Je t'ai donné la structure du code avec un collector et lorsque tu rajoute un grade, pas la structure exacte

#

Faut bien que tu travail un peu ^^

frosty idol
#

Ok, j'avais récupéré ton code mais apparemment il était pas correcte mais je vais remplir ça moi même 😉

#

Merci

oak turret
#

Hello, vous connaissez l'event quand un user boost un serveur ?

#

J'ai vu "nitroBoost", seulement je n'ai aucun moyen de vérifié si ça fonctionne

crimson fern
#

Non c'est pas ca

#

Enfin y'en a pas a proprement parlé

oak turret
#

Je check avec quoi ?

crimson fern
#

premiumSince ou un truc dans le genre

#

je sais plus exactement c'est quoi le nom

terse salmon
#

Hey, comment je peux résoudre "message is not defined" ?

keen narwhal
#

Montre ton code.

#

On peut pas t’aider si on voit pas ton code.

terse salmon
#

Screen ou copié/collé ?

keen narwhal
#

Screen

terse salmon
#

yep

keen narwhal
#

Pourquoi tu require une deuxième fois discord.js ?

#

Ensuite, genre normal que message soit pas défini. Il est dans aucun évent

terse salmon
#

Je suis un vrai débutant donc je suis plusieurs vidéos et je m'embrouille parfois 😅

#

Je dois faire quoi du coup ?

keen narwhal
#

Tu essaies de faire quoi ?

terse salmon
#

Actuellement, obtenir des rôles par des réactions sur un embed

keen narwhal
#

Un message permanent, ou un message qui s’envoie grâce à une commande

terse salmon
#

grâce à une commande

keen narwhal
#

Pourquoi .channel.send ?

terse salmon
#

ah faute de frappe

keen narwhal
#

Tu sais que là, tu regardes seulement, si le message commence.. donc il peut y avoir des trucs après ...

#

Je te conseil de faire. message.content === config.prefix + "ta commande"

terse salmon
#

Ce que je vais faire c'est que je finis le code, je règle mon problème avec mon hébergeur et je te dis quoi

#

je vais tester merci

keen narwhal
#

Rien compris à ta phrase

oak turret
#

Hello, quelqu'un sait comment détecter si un user join un channel vocal (pas un channel défini mais le type du channel donc vocal)

J'ai fais dans un premier temps avec un channel vocal définit mais aucun résultat concret, donc je viens vers vous

slim anvil
#

voiceStateUpdate

oak turret
#

je vais chercher ça ! merci

slim anvil
#

je crois

oak turret
#

ah yes c'est ça je vais tester ça

oak turret
#

alors yes ça fonctionne, du moins je ne sais pas à qui je dois update les permissions du channels xD

 client.on("voiceStateUpdate", (oldMember, newMember) => {
        let newUserChannel = newMember.voiceChannel
        let oldUserChannel = oldMember.voiceChannel
        const chan = client.channels.cache.get("730736395278221432");
      
      
        if(oldUserChannel || newUserChannel) {
            chan.updateOverwrite(member, {
                VIEW_CHANNEL: true,
                SEND_MESSAGES: true
            })
        }
    
        else {
            chan.updateOverwrite(member, {
                VIEW_CHANNEL: false,
                SEND_MESSAGES: false
            })
        }
    
        
    })
cedar cloud
#

bjr, qqun c comment récup des infos dans une bdd mongodb avec le module mongoose

keen narwhal
#

C’est quoi ça

slim anvil
#

Tu es bien connecté à ta db mongo déjà @cedar cloud ?

cedar cloud
#

oui @slim anvil j'arrive à enregister les info mais pas a les resortir

Pour enregistrer

exports.run = async (client, message, args) =>{
    if(args.length >= 1){
            let logschannel = message.mentions.channels.first() || message.guild.channels.cache.get(args[0]);
            if(!logschannel) return message.channel.send(':x: | Veuillez mettre l\'id du salon ou le metionné : `!setLogs <#change-logs>`');

            if(logschannel.type == "category") return message.channel.send(':x: | Veuillez mettre l\'id du salon ou le metionné : `!setLogs <#change-logs>`');
            message.delete();
            exports.logs(client, message, logschannel);
         };
};


exports.logs = async (client, message, logschannel) => {
    const modelogs = await mongoose.model('Logs', { id: String, guild: String });
    await new modelogs({ id: logschannel.id, guild: message.guild.id }).save()
    
    let embed = new Discord.MessageEmbed()
      .setTitle('✅ | Salon Logs `' + logschannel.name + '` ajouté avec succès !')
      .setAuthor(message.guild.name, message.guild.iconURL())
      .setFooter('Setup')
      .setTimestamp(new Date())
    message.channel.send(embed)
};
#

Pour resortir (marche pas) :

const { Message } = require("discord.js");
const Discord = require("discord.js");
const mongoose = require('mongoose');
const modelogs = mongoose.model('Logs', { id: String, guild: String });
const moment = require('moment');
const bdd = require('../bdd.json')
module.exports =  (client, member) => {
    client.on('guildMemberAdd', async member => {
        modelogs.find({
            guild: member.guild.id
        }), function (err) {
            const sendlogs = client.channels.cache.get(id)
        console.log(sendlogs)
        if(!sendlogs) return; 
        let log = new Discord.MessageEmbed()
            .setColor(4504882)
            .setAuthor(member.user.username, member.user.displayAvatarURL())
            .setDescription(member.toString() + " à rejoint le discord")
            .addField('Création du compte', moment(member.user.createdAt).format('DD/MM/YYYY HH:mm:ss'), true)
            .addField('ID', member.user.id, true)
            .setTimestamp(new Date());
        member.guild.channels.cache.get(sendlogs).send(log);
            }
        })
slim anvil
#

dans ton const modeLogs tu mets déjà tes params que tu remets ensuite à l’exécution de la commande

#

Je sais que pour un bot que j’avais fais je faisais juste:

#

Pour require mon model

#

Si tu en veux qu’un tu fais un findOne avec tes params dedans

#

sorry je suis sur tel obligé de screen

cedar cloud
#

oui mais moi au lieu de mettre le model dans un file je préfere le mettre direct comme ca

slim topaz
#

Quelqu'un pourrait m'aider avec les commandes d'un bot musique ? car je viens de finir tout mon code mais j'ai rien qui fonctionne donc ce serait sympas d'avoir un peu d'aide

dim stirrup
#

Bonjour une personne saurais comment trouver quia supprimer un salon pour un anti raid ?

#

Merci a vous.

slim anvil
#

Dans les logs du serveur si tu es admin

#

Sinon tu logs avec ton bot chaque action

keen narwhal
#

Channel update ?

dim stirrup
#

@slim anvil non mais ce que je veux c la fonction

#

pour un script anti raid

#

que en gros si la personne a supprimer 3 salon en 10 seconde sa la ban

keen narwhal
#

Hey

#

Peut-on m'aider ?

#

newRole.guild.fetchMember is not a function

timid loom
#

Tu es en v12 je pense donc il faut que tu adapte ton code à la v12

#

ici ça donnerait let member = await newRole.guild.members.fetch(entry.executor);

slim topaz
#

Il semblerait que à partir d'ici ça bloque mes commandes comme par exemple "play" pour la musique peut-on m'aider s'il vous plait ?

keen narwhal
#

Ça bloque ?

#

Tu as une error ?

#

Un truc

#

Parce que bon on peut pas t’aider avec ça bloque

#

@timid loom merci

slim topaz
#

ça donne ça dans la console

oak turret
#

euh mais ton code fais rien lâ

#

fin tu veux faire quoi en fait

timid loom
#

@slim topaz où est-ce que tu enregistre les commandes?

#

tu utilise un handler non?

slim topaz
timid loom
#

ouais mais je veux dire

#

dans ton code elles sont stockées où

#

t'as fait un handler quelque part normalement non?

slim topaz
#

je te montre le code en entier attends

#

ensuite j'ai ce fichier là si c'est ça que tu appels "handler" car je débute totalement là dedans puisque c'est mon premier bot

timid loom
#

ton handler c'est le truc où tu vas load tous tes fichiers de commandes

slim topaz
#

Je vois en faite je viens de comprendre d'où venait mon problèle

#

problème*

#
const args = message.content.slice(PREFIX.length).trim().split(/ + /) //removing prefix from args
#

j'avais définis de devoir utilisé / + / dans la commande pour faire fonctionné le bot

#

que j'ai ensuite redéfinis

timid loom
#

hmm

slim topaz
#
 const args = message.content.slice(PREFIX.length).trim().split(" ") //removing prefix from args
#

et maintenant il fonctionne

timid loom
#

yes

#

en fait le soucis c'est que .split(/ + /) ça découpe ta chaîne de caractères si tu as deux ou plus d'espaces entre les paramètres

slim topaz
#

Merci beaucoup pour l'aide 🙂

timid loom
#

pour le coup t'as trouvé tout seul haha

slim topaz
#

haha mais je remercie quand même car tu as voulu m'aider

dim stirrup
#

Dite moi une personne pourait maider car je trouve pas la fonction pour trouver qui a supprimer le chanelle

#

si un eperosnne la connait

oak turret
#

y en a pas à proprement parlé

#

faut que tu check si un user delete un channel

dim stirrup
#

Tu sais fais ca ?

#

faux faire un event ?

oak turret
#

là j’ai pas le code en tête

dim stirrup
#

merde

oak turret
#

dans l’event message je pense

dim stirrup
#

si tu en a un tu me fais signe je peux te le payer sa me derange pas

#

car la je suis vraiment perdu

oak turret
#

non mais je compte pas te le faire

dim stirrup
#

ok

keen narwhal
#

Je compte te le payer kappa

oak turret
keen narwhal
#
client.on('channelDelete', (deletedchannel) => {
var embed = new Discord.MessageEmbed()
.setcolors('edeb58’)
.addfields(
{name: 'Personne qui a supprimé le Channel :', value: deletedchannel.author.username, inline: true},
{name: 'Channel qui a été delete :', value: deletedchannel.channel, inline: true}

message.channel.cache.get('id du salon log').send(embed)}```
#

Tu me payes de combien du coup ?

#

Ah mais c’est facile ptdr

oak turret
#

il existe pas cet event thinkingplayer

keen narwhal
#

Pourtant, il est sur la documentation de Discord.js

oak turret
#

ah bon

keen narwhal
#

Yep

oak turret
#

c’est channelDelete

#

tu le fous en (member)

#

client.channels.cache.get(id).send(${member} a delete un channel)

slim anvil
#

tu le fous en (member)

#

Comment ça

oak turret
#

au lieu de msg

#

du moins j’avais fais comme ça

#

pour les autres events de mes logs

slim anvil
#

mais c’est pas parce que tu mets member dans les paramètres

#

Que tu reçois le member

#

🤣 tu peux l’appeler toto c’est pareille

#

dans l’évent channelDelete tu reçois le channel en question

#

Et dedans tu as un truc executor ou quoi qui est celui qui l’a delete

keen narwhal
#

Voilà

#

C’est bon

oak turret
#

oui après c’est ce que je faisais hein

keen narwhal
#

Mon code devrait être bon

oak turret
#

mais bon

slim anvil
#

je sais pas tu sors member de nul part du coup

keen narwhal
#

C’est long écrire sur iPad

oak turret
#

bah j’utilise member tout le temps pour quasi tous les autres events, après je sais po j’avais pas connaissance de celui là alors my bad

keen narwhal
#

J’attend d’être payé du coup kappo

#

@dim stirrup

slim anvil
#

Mais c’est pas toi qui décide d’utiliser member c’est juste l’évent qui te renvoie ça, mais que tu l’appelles member, toto ou tutu c’est pareille

full scaffold
#

Vous savez comment j'peux faire un #php dans un Embed, quand j'essaye ça ne fonctionne pas

keen narwhal
#

Quoi ?

#

Montre ton code et un exemple de ce que tu veux faire

cyan iron
#

@full scaffold <#IDCHANNEL>

full scaffold
#

Ok je check ça

keen narwhal
#

Ah ouais, j’avais pas vue ça comme ça

full scaffold
#

ça fonctionne merci

keen narwhal
#

J’avais pas compris ce qu’il voulait. Désolé Firyo xD

cyan iron
#

De rien 😉

dark sonnet
#

bonjour / bonsoir , j'aurais besoin d'aide , actuellement je fais un bot en python et j'ai besoin de save un dictionnaire , j'ai fais quelque recherche sur google et je suis tomber sur les DataFrame qui utilise le module Pandas et Numpy pour save des dictionnaire / tuple / listes en .txt ou .csv mais je me demande si il existe pas un meuilleur moyen de save les dictionnary.

idle ice
#

Je passe mon tour, je fais mon bot en JS :/

humble storm
#

idem, JS ou Lua

dark sonnet
#

ah

timid loom
#

csv c'est assez rapide, cela dit par définition un dictionnaire ça peut être assez long à charger

#

par "save un dictionnaire" j'imagine tu veux dire enregistrer des infos dans une structure de données puis y accéder après un redémarrage; la solution du csv est bien, le txt aussi

#

si il faut grappiller c'est sans doute pas là-dessus

#

numpy de mémoire est plus axé maths et je connais pas le module Pandas, cela dit si ce sont des modules connus, ces méthodes font probablement partie des meilleures (pour le python du moins)

#

voilà, en espérant que ça t'aide @dark sonnet, même si je dois avouer que ta question est pas super claire
Pour les dictionnaires d'après mes propres recherches y a le module Pickle, https://docs.python.org/3/library/pickle.html

#

en gros de la serialization quoi

dark sonnet
#

@timid loom c'est exactement ce que je veux , je veux garder des info meme aprés un redémarrage , et Pickle j'y connais pas grand chose , donc je vais essayer de me débrouiller avec ce que j'avais trouver sur google , mais en tout cas merci de m'avoir répondu .

peak cedar
#

Sa existe un bot qui fait en sorte que pour join le serveur "GMOD" Il faut etre sur le serveur discord ?

unborn igloo
#

Faudrait relier le compte steam au Discord de la personne, je pense

peak cedar
#

@unborn igloo Je sais pas du tout dev le JS 😢

unborn igloo
#

Moi non plus

#

Mais de ce que je sais, faut que tu débrouille pour que la personne relié son compte steam à Discord (avec t'es services), puis tu stocke que le tt dans une base de données

cyan iron
#

Salut les gars, je travaille sur un truc pour gérer les erreurs
Et en fait le problème étant que je voudrais rendre ça un peu plus lisible que ça :

#

Du coup comment récupérer la ligne et le fichier de l'erreur

#

err.filename ne fonctionne pas
err.lineNumber ne fonctionne pas

#

Le but étant d'encombrer le moins possible la console

cyan iron
#

Personne ne sait ?

#

;-;

idle ice
#

En regardant le contenu de err t’a rien qui s’y rapporte? C’est étrange

hybrid berry
#

@cyan iron tu utilises quel event pour detecter une erreur ?

cyan iron
#

En regardant le contenu de err t’a rien qui s’y rapporte? C’est étrange
Je peux faire le err.stack

#

Mais le problème c'est que c'est pas assez visible

#

Désordonné

#

@hybrid berry try catch

hybrid berry
#

@cyan iron tu peux me montrer un bout du code pour comprendre ?

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

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

    try {

        message.channel.send("Pong ! `" + ( Date.now() - message.createdTimestamp ) + " ms`")

    } catch (err) {
        client.utils.get("error").run(err, message, client);
    }
}

exports.help = {
    name: "ping",
    description: "Réponds pong !",
    category: "Utiles",
    aliases: ["p"]
}
#

ping.js

hybrid berry
#

ouah t'es un génie

cyan iron
#

de ?

slim anvil
#

Log juste ton error et tu le parse pour que ce soit visible

cyan iron
#

Là j'ai du partir je tente demain Merci ^^

indigo willow
#

Bonjour je suis peut passer a coter d'un erreur débile mais je voulais faire une commande pour ban en testant les premieres ligne le bot n'execute pas le message.channel.send et il me catch rien

terse salmon
#

là tu dis que si le membre a la permission de ban le bot return "Vous n'avez pas la permission"

#

tu as oublié un !

indigo willow
#

Je l'avazis retiré pour test mais ca change rien

oak turret
#

fais ça plutôt

cyan iron
#

@indigo willow Déjà il ne faut pas faire un client.on a chaque commande

#

:sueur:

oak turret
#

if(message.content === "?ban") {
if(!message.member.hasPermission("BAN_MEMBERS") return message.channel.send("Pas la perm")
else {
member.ban().catch(error =>console.log(error)
}
}

cyan iron
#

Sinon ton bot va saturer et fuck la planète et le CPU

oak turret
#

je suis sur tel donc galère

cyan iron
#

Met les ``` 😂

#
if(message.content === "?ban") {
if(!message.member.hasPermission("BAN_MEMBERS") return message.channel.send("Pas la perm")
else { 
member.ban().catch(error =>console.log(error)
}
 } 
oak turret
#

j’ai oublié

#

j’suis sur tel hophophop

cyan iron
#

Tkt 🙂

#

Ride in bike yo

odd ether
#

Oula, j'espère que tu vas remplacer les client.on car la, c'est juste une optimisation de gitan x)

Et pour ton erreur, tu es en V12 ?

#

Salut !

#

Ta peut-être oublier un .cache

cyan iron
#

Oula, j'espère que tu vas remplacer les client.on car la, c'est juste une optimisation de gitan x)

@odd ether #fuckl'ecodeveloppement

#

#fucklaplanete

#

J'ai fait ajouté l'emotesuspisiouscat

odd ether
#

Mdr

#

Tellement.

#

X)

cyan iron
#

Comme je l'ai faite ajouter sur WH

oak turret
#

vous utilisez les handlers vous

peak cedar
#

Sa existe un bot qui fait en sorte que pour join le serveur "GMOD" Il faut etre sur le serveur discord ?

odd ether
#

Elle est tellement bien cette emote

cyan iron
#

Et sur d'autres serv

oak turret
#

Nin hugo

cyan iron
#

vous utilisez les handlers vous
@oak turret La baaaaaaase

oak turret
#

je crois pas

odd ether
#

@peak cedar Non mais tu peux créé via une API Requête je pense

oak turret
#

connais pas vos handlers mdrr

#

ça a l’air tellement relou

peak cedar
#

@odd ether avec du JS ?

oak turret
#

oui

odd ether
#

Oui, et du GLUa

#

Aussi

peak cedar
#

jsp faire 😂

#

le js

oak turret
#

mais useless

odd ether
#

T'aura 2 chose à faire.

oak turret
#

ça c’est comme five m

#

archi chiant

#

si tu veux 0 joueurs fait le

odd ether
#

Et le handler, c'est la vie, ont peux si retrouver tellement facilement x)

oak turret
#

comprends pas les handlers

#

flemme surtout soif

cyan iron
#

Et le handler, c'est la vie, ont peux si retrouver tellement facilement x)
@odd ether ouiiii

#

J'ai fait une base handler

#

Si tu veux

#

Avec erreurs events et commande

#

et help

odd ether
#

Alors que ta des gitans qui de foncé l'environnement en optimisant pas leurs codes x)

#

Yep

cyan iron
#

Et plus qu'a ajouter ses fichier

odd ether
#

Les erreurs évent, faut que je bosse dessus moi

oak turret
#

vasy envoie moi ton handler simple pour que je passe intermédiaire moi aussi, à cause de ça que je le sui encore ptdrr

cyan iron
#

18754627 €

#

😂

#

Je te le passe cette aprem

oak turret
#

par cb virtuelle

cyan iron
#

Ok mdr

oak turret
#

merci bg

cyan iron
#

En vrai si t'as un nitro en trop 😏

odd ether
#

Mdr

#

FORCEUR

cyan iron
#

😏

odd ether
cyan iron
#

Bref, moi je peux passer Confirmé j'ai juste pas donné assez de code

#

Je suis en train de refaire tout mo' bot et je lui filé

peak cedar
#

@cyan iron donne le code de mon bot 😂

cyan iron
#

Comme ça -> confirmé

#

Hein

odd ether
#

Mdr

cyan iron
#

@cyan iron donne le code de mon bot 😂
@peak cedar 600€