#javascript-typescript
1 messages · Page 49 of 1
Et ça devrait marché ?
Ca va t'envoyer un object dans ta console
Faut trouver le bon lien maintenant
Je vais devoir y aller bonne chance
Si tu n'y arrives toujours pas, je reviendrai demain
Okay a+ et a demain surement :3
Je peux ptet t'aider mais je connais pas super agent 😅
Il faut mettre list et la recherche du joueur non ?
Genre "blablabla/search/list/${recherche}
Et tu remplace recherche par l'argument du joueur
Bah en gros je veux que lorsque le joueur fait example a!search Nature de Chakra bah ça envoit un lien naruto.fandom
Avec au bout la recherche du joueur
Oki :3
Tu veux un screen sur pc ?
Vsy
Tu as seulement à me dire ce que tu cherche et je te prend un screen
Envoit le lien du coup :3
Merde ;-; ( Envoit le lien de la page de base :3 )
superagent documentation, tutorials, code examples, API reference, metrics, alternatives, and more
Vsy tu feras ça avec Samuel demain mdrr, la je suis claque
Oki bah va dormir :3
@keen narwhal tu cherche a faire quoi ?
Faire en sorte que lorsque je fais a!search ( La recherche ) bah sa nous redirige vers la page ( fandom ) du site ... un peu comme le wiki glua
https://marvel.fandom.com/api/v1#!/Search ? @keen narwhal
?
bah tu as la liste des api
Oui, mais je ne sais pas comment faire ce que je veux ;-;
https://community.fandom.com/api/v1/Search/List?query=test&limit=25&minArticleQuality=10&batch=1&namespaces=0%2C14 tu changes le query par le nom de ta recherche
et ca renvois plusieurs resultats
query=test
Met du coup query serait égal à x et x est égal à args 1 ?
Comme j’ai fais pour mon embed
J'ai fait une commande qui demandait certaine permission, mais lorsque j'essaie la commande ça me met une error dans la console...
if(!message.guild.member(message.author).hasPermission("MENAGE_MESSAGES")) return message.channel.send("***`Si je te dis que j'ai la flemme tu me crois ?`***");
Pourtant j'ai cette erreur (node:5552) UnhandledPromiseRejectionWarning: RangeError [BITFIELD_INVALID]: Invalid bitfield flag or number.
Je viens de trouvé, j'avais fait une faute dans Manage, j'avais mis Menage
oui voilà xD
:3
vrai flemmard ton bot dis donc mdrr
xDDD
d'ailleurs, tu devrais faire
if(!message.guild.me.hasPermission("MANAGE_MESSAGES")) return message.channel.send("***`Si je te dis que j'ai la flemme tu me crois ?`***");
Je voudrais que ça donne un truc du genre
tu vas boucler sur tes résultats, et chaque tour de boucle = un .addField()
Ouais, mais il va falloir déjà que je réussis à utiliser l'API :3
bah tu dois fetch sur l'url indiqué
addField avec un inline: true
Y'a une api pour le wiki gmod ?
pour les bots discord ?
yes ou autre
Quel wiki ?
Welcome to the Garry's Mod Wiki!
Current game discussion as well as update progress can be found on Discord.
You can test changes for the next update on the Dev Branch through Steam.
The Garry's Mod Lua Source Code is available on GitHub.
To report b..
lui
Par contre comment on exploite les callbacks de gameserver-query genre le nom du serveur etc ?
ye
p
j'ai bien toutes mes infos, mais je les récup comment, genre récup le nom etc
state c'est global
Si c'est le cas, suis cet exemple: JS var query = require('game-server-query'); query( { type: 'minecraft', host: 'mc.example.com' }, function(state) { if(state.error){ console.log("Server is offline"); } else { console.log(state); // ça te mettra dans la console le tableau avec toutes les infos, et donc ce sera sous ce format là: a = "coucou" je crois } } );
et donc tu auras juste à faire state.valeur
state.name fonctionne pas :x
et ça te retournera la valeur a droite
state.name est bien dans la console ?
quel est le code/qu'est-ce qui est affiché dans la console ?
yep
dans la console ça fonctionne
et pour les call dans une const je fais quoi ?
j'ai trouvé je crois bien xD
Hey j'ai un problème avec un event qqun peut m'aider ?
updateStatus(member.guild);
^
TypeError: Cannot read property 'guild' of undefined
at Client.<anonymous> (/home/pi/Desktop/JeanMarc/events/counter.js:18:29)
at Client.emit (events.js:315:20)
at PresenceUpdateAction.handle (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/actions/PresenceUpdate.js:39:19)
at Object.module.exports [as PRESENCE_UPDATE] (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/handlers/PRESENCE_UPDATE.js:4:33)
at WebSocketManager.handlePacket (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/WebSocketManager.js:386:31)
at WebSocketShard.onPacket (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/WebSocketShard.js:436:22)
at WebSocketShard.onMessage (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/WebSocketShard.js:293:10)
at WebSocket.onMessage (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/event-target.js:125:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/websocket.js:800:20)
at Receiver.emit (events.js:315:20)
at Receiver.dataMessage (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:436:14)
at Receiver.getData (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:366:17)
at Receiver.startLoop (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:142:22)
at Receiver._write (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:77:10)
at doWrite (_stream_writable.js:403:12)
module.exports = (client) => {
const channelOn = "714507595871813642";
const channelOff = "714507663987179651";
const bots = "9";
client.on("guildMemberAdd", function (member) {
updateStatus(member.guild);
updateStatus1(member.guild);
})
client.on("guildMemberRemove", function (member) {
updateStatus(member.guild);
updateStatus1(member.guild);
})
client.on("presenceUpdate", function (member) {
updateStatus(member.guild);
updateStatus1(member.guild);
})
function updateStatus(guild){
let max = guild.memberCount-bots;
let online = guild.members.cache.filter(m => m.presence.status != "offline").size-bots;
let formatString = ":heartbeat: En ligne : " + online + "/" + max ;
let channel = guild.channels.cache.get(channelOn);
if(channel.name !== formatString){
channel.setName(formatString);
}
}
function updateStatus1(guild){
let max = guild.memberCount-bots;
let online = guild.members.cache.filter(m => m.presence.status != "offline").size-bots;
let offline = max-online;
let formatStringoff = ":zzz: Hors ligne : " + offline + "/" + max ;
let channel = guild.channels.cache.get(channelOff);
if(channel.name !== formatStringoff){
channel.setName(formatStringoff);
}
}
}```
Hello, j'use gameserver-query, et pour show le nombre de joueurs co j'use : state.players mais je veux avoir le nombre donc j'ai pensé à un .size vu que c'est un array mais ça me met undefined des idées ?
code :
const players = state.players.size;
.length
au lieu du size
oo merci Samuel ^^
Bonsoir, comment pourrais-je faire pour faire un \n dans mon tableau à chaque nouvelle valeur, en gros je vous montre mon code vous allez comprendre
const admin = ["Michael Wood", "Nom du staff", "Nom du staff"];
.addFields(
{name: `Administrateur(s) [${admin.length}]`, value: `${admin}`, inline: false},
)
J'ai pris que les lignes concernées, et j'aimerais qu'à chaque nom de staff ça \n mais je vois pas comment
Je fais une boucle, ou je fais juste un "\n" après chaque nom dans mon array
le \n du coup me rajoute une valeur dedans du coup et ça rends pas bon mon array à la fin
fin pas le bon compte
Tu fais tonArray.forEach(trucMsg => {
Truc truc.send("\n" + trucMsg)
})
Je crois que ça marche
Aaaah OK
For(int i; i < array.length; i++) {
Embed.addfield("Adinistrateur", array[i])
})
Ça ça va t'ajouter un field pour chaque admin
Cest ça que tu veux ?
alors pas une field mais une value dans ma field
xDDD
Tu fais un field avec ("Admins", tonArray.join("\n"))
Ca marche de base mais dans un embed jsp
.addField("Admin", tonArray.join("\n"))
en value ?
Jsp si ça marche dans un embed
Oui
En gros a chaques arguments de ton array ça va rajouter \n
yep j'ai compris, si simpliste j'avais oublié ce genre de truc, au lieu de me cassé la tête ! Merci Burger !
Pas de soucis :)
Quelqu'un peut me dire comment faire en sorte que dans un salon si la commande n'est pas détecté Bah le bot supprime le message de l'user ?
Tu fais ton évent message
Et tu fais que si message.content n'est pas ega' (ou ne commence pas par) ta commande
Message.delete()
oui mais je n'arrive pas a le définir
Tu vas sur la doc
mais j'y suis de 4h
Et tu regarde les attributs de l'objet qui ressors de guildMemberAdd
Donc de member je crois
Et tu verras que c'est member.guild
Et non guild
sauf que j'ai mit member.guild
Pas dans le code que tu as envoyé
si
Non
bah montre moi ou ?
A non excuse, j'avais pas vu les fonctions
dcp je suis tjrs bloqué
Je crois que c'est juste que le guildMemberRemove ne renvoie pas le même objet que le add
Je vais voir
bah il a tjr marché en 11
Ouais fu coup
Au lieu de member, tu mets (member, guild)
Et au lieu d'envoyer member.guild, t'envoie guild
oui
Au lieu de (member), tu mets (member, guild)
Quel event ?
client.on("guildMemberAdd", function (member, guild) {
updateStatus(member.guild);
updateStatus1(member.guild);
})
client.on("guildMemberRemove", function (member, guild) {
updateStatus(member.guild);
updateStatus1(member.guild);
})
client.on("presenceUpdate", function (member, guild) {
updateStatus(member.guild);
updateStatus1(member.guild);
})
Parce que le deuxième paramètre de guildMemberRemove est la guilde je crois
Ouais comme ça
Si vous parlez de guildMemberAdd, y'as qu'un paramètres, member
pareil pour le remove
et ca c'est pour le presence update
Il prend aussi la guild
le truc c que ca marche 10 minute et après le bot crash
euh, pas le guildMemberAdd
Il est sur la 12
ah
bah la ca marche je vous dit demain si le bot a crash a cause de ca
S'il crash ya in problème OwO
met tes fonctions avant tes events @cedar cloud
ok
let max = guild.memberCount-bots;
```y'as un problème 
Bonne nuit a tous je vous tien au courant
-bots existe pas
const bots = "9";
Envoie l'erreur entière
ouai sinon tu connait pas comment je peu faire pour récup le nombre de bot sur le serveur ?
Je sais pas s'il ya plus opti, mais tu fais une boucle de tous les membres
tu utilises quoi ?
Et il ya un bool discord js qui vérifie si c'est jn bot
a ca y est le bot vien de crash
/home/pi/Desktop/JeanMarc/events/counter.js:38
updateStatus(member.guild);
^
TypeError: Cannot read property 'guild' of undefined
at Client.<anonymous> (/home/pi/Desktop/JeanMarc/events/counter.js:38:29)
at Client.emit (events.js:315:20)
at PresenceUpdateAction.handle (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/actions/PresenceUpdate.js:39:19)
at Object.module.exports [as PRESENCE_UPDATE] (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/handlers/PRESENCE_UPDATE.js:4:33)
at WebSocketManager.handlePacket (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/WebSocketManager.js:386:31)
at WebSocketShard.onPacket (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/WebSocketShard.js:436:22)
at WebSocketShard.onMessage (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/WebSocketShard.js:293:10)
at WebSocket.onMessage (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/event-target.js:125:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/websocket.js:800:20)
at Receiver.emit (events.js:315:20)
at Receiver.dataMessage (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:436:14)
at Receiver.getData (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:366:17)
at Receiver.startLoop (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:142:22)
at Receiver._write (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:77:10)
at doWrite (_stream_writable.js:403:12)
ca vient du presenceUpdate je suppose
T'as pas modifié
A non j'ai rien dis
simplement car ce que tu utilises n'existe pas
regarde mon lien
et regarde les parameters
il y en a deux et les deux sont des presences
Trop fast ce Samuel
je comprend rien au truc old et new
et là, les deux te renvoie vers ca
old = ancienne "presence"
new = nouvelle "presence"
oui mais je comprend pas comment les integré au code
https://discord.js.org/#/docs/main/stable/class/Presence
@crimson fern avec ca tu peux faire un <Presence>.member.guild
qui revient à la guild
tu renames juste tes variables, car là elles s'appellent member et guild
sauf que ca a aucun rapport
genre dans mon cas faut que je fasse quoi ?
ca change quoi si je met old ou new ?
module.exports = (client) => {
const channelOn = "714507595871813642";
const channelOff = "714507663987179651";
const bots = "9";
function updateStatus(guild){
let max = guild.memberCount-bots;
let online = guild.members.cache.filter(m => m.presence.status != "offline").size-bots;
let formatString = ":heartbeat: En ligne : " + online + "/" + max ;
let channel = guild.channels.cache.get(channelOn);
if(channel.name !== formatString){
channel.setName(formatString);
}
}
function updateStatus1(guild){
let max = guild.memberCount-bots;
let online = guild.members.cache.filter(m => m.presence.status != "offline").size-bots;
let offline = max-online;
let formatStringoff = ":zzz: Hors ligne : " + offline + "/" + max ;
let channel = guild.channels.cache.get(channelOff);
if(channel.name !== formatStringoff){
channel.setName(formatStringoff);
}
}
client.on("guildMemberAdd", function (member) {
updateStatus(old.member.guild);
updateStatus1(old.member.guild);
})
client.on("guildMemberRemove", function (member) {
updateStatus(old.member.guild);
updateStatus1(old.member.guild);
})
client.on("presenceUpdate", function (member) {
updateStatus(old.member.guild);
updateStatus1(old.member.guild);
})
}
t'as fonction de presenceUpdate
oui
regarde, tu définis member
oui
mais comme je t'ai dit, y'as deux paramètres
ouai
j'ai rien
et tu utilises old alors que tu le définis pas
donc remplace member par old
ok
seulement dans presenceUpdate
ok
module.exports = (client) => {
const channelOn = "714507595871813642";
const channelOff = "714507663987179651";
const bots = "9";
function updateStatus(guild){
let max = guild.memberCount-bots;
let online = guild.members.cache.filter(m => m.presence.status != "offline").size-bots;
let formatString = "💓 En ligne : " + online + "/" + max ;
let channel = guild.channels.cache.get(channelOn);
if(channel.name !== formatString){
channel.setName(formatString);
}
}
function updateStatus1(guild){
let max = guild.memberCount-bots;
let online = guild.members.cache.filter(m => m.presence.status != "offline").size-bots;
let offline = max-online;
let formatStringoff = "💤 Hors ligne : " + offline + "/" + max ;
let channel = guild.channels.cache.get(channelOff);
if(channel.name !== formatStringoff){
channel.setName(formatStringoff);
}
}
client.on("guildMemberAdd", function (member) {
updateStatus(member.guild);
updateStatus1(member.guild);
})
client.on("guildMemberRemove", function (member) {
updateStatus(member.guild);
updateStatus1(member.guild);
})
client.on("presenceUpdate", function (old) {
updateStatus(old.member.guild);
updateStatus1(old.member.guild);
})
}
yep
ah non
ta const bots
j't'ai dit que tu devais mettre un number et pas un string
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/String
L'objet Number est une enveloppe objet (wrapper) autour du type primitif numérique. Autrement dit, il est utilisé pour manipuler les nombres comme des objets. Pour créer un objet Number, on utilise le constructeur Number().
genre un var ca marche ?
Ca change rien
a
Normalement ca va plus crash
Bonsoir, je reviens vers vous, car mon bot hébergé ne trouve plus mon module game-server-query :x et je ne comprends pas pourquoi
2020-05-27T21:19:40.003616+00:00 app[worker.1]: (node:4) UnhandledPromiseRejectionWarning: Error: Cannot find module 'game-server-query'
T'as npm i?
sur heroku ?
Ui
dans quoi ?xD
Bah jsp quand t'héberger tu npm i tes modules ?
faut que je le refasse ?
essaye de le refaire
Pour le server query
Ok, essaye de faire npm i --save game-server-query
attend je build et je test
Ok maintenant je saurais qu'il faut npm i une fois hébergé
yep je npm i discord.js car il me mettait undefined client
et je test
je build je vous dis ça
maintenant il trouve plus mon client xD
je re build en ayant save les modules
(en ayant git add . et commit ^^)
a l'époque ou j'utilisais heroku, je faisais déjà tout le temps des --save
ah :x
2020-05-27T21:27:44.032485+00:00 app[worker.1]: TypeError: Cannot read property 'client' of undefined
et j'ai jamais eu 0 problèmes
Plus besoin de —save aujourd’hui
ca s'auto save ?
oui depuis les nouvelles versions
2020-05-27T21:27:44.032485+00:00 app[worker.1]: TypeError: Cannot read property 'client' of undefined
@oak turret envoie ton Discord.Client()
le npm i le fait
const client = new Discord.Client();
et ton discord ?
const Discord = require('discord.js');
ca doit être une autre ligne
je peux envoyer mon code en txt ^^ ?
t'as la ligne de l'erreur ?
nop j'ai que ça
2020-05-27T21:27:37.200899+00:00 app[worker.1]: Le bot a démarré, avec 49 utilisateurs dans 3 serveurs.
2020-05-27T21:27:44.032447+00:00 app[worker.1]: /app/node_modules/discord.js/src/structures/MessageEmbed.js:13
2020-05-27T21:27:44.032483+00:00 app[worker.1]: Object.defineProperty(this, 'client', { value: message.client });
2020-05-27T21:27:44.032484+00:00 app[worker.1]: ^
2020-05-27T21:27:44.032485+00:00 app[worker.1]:
2020-05-27T21:27:44.032485+00:00 app[worker.1]: TypeError: Cannot read property 'client' of undefined
2020-05-27T21:27:44.032486+00:00 app[worker.1]: at new MessageEmbed (/app/node_modules/discord.js/src/structures/MessageEmbed.js:13:60)
2020-05-27T21:27:44.032486+00:00 app[worker.1]: at Object.callback (/app/index.js:34:27)
2020-05-27T21:27:44.032487+00:00 app[worker.1]: at ExtendedObject.done (/app/node_modules/game-server-query/lib/protocol.js:78:42)
2020-05-27T21:27:44.032487+00:00 app[worker.1]: at ExtendedObject.fatal (/app/node_modules/game-server-query/lib/protocol.js:38:8)
2020-05-27T21:27:44.032487+00:00 app[worker.1]: at Timeout.<anonymous> (/app/node_modules/game-server-query/lib/protocol.js:288:22)
2020-05-27T21:27:44.032487+00:00 app[worker.1]: at listOnTimeout (internal/timers.js:549:17)
2020-05-27T21:27:44.032488+00:00 app[worker.1]: at processTimers (internal/timers.js:492:7)
2020-05-27T21:27:44.070782+00:00 heroku[worker.1]: Process exited with status 1
2020-05-27T21:27:44.107131+00:00 heroku[worker.1]: State changed from up to crashed
ligne 34 de ton index ?
const err = new Discord.MessageEmbed()
montre ton embed
if (command === "status") {
query(
{
type: 'garrysmod',
host: 'host',
port: port
},
function(state) {
if(state.error){
const err = new Discord.MessageEmbed()
.setColor("#CB0000")
.addFields(
{name: 'État 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 + state.bots.length;
const name = state.name;
const bots = state.bots.length;
const maxplayers = state.maxplayers;
const notes = state.notes;
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);
}
ça marchait en local ^^
ok
Ah
Apres le dernier de tes objects pour les addFields
tu mets une virgule
essaye de la supprimer
C'est bizarre
trop :x
Il mets pas à jour je crois bien
j'ai changé client par bot
il s'en fou :x
j'ai trouvé
remove et npm i
et ça fonctionne
Ok
Merci Samuel ^^
Désolé, j'avais pas eu l'idée :)
pas de soucis ! Maintenant on l'aura ^^
c'est en faisant des erreurs qu'on apprend comme on dit ^^
Oui 
Dites moi je trouve pas comment delete un embed avec un timer de 60 000ms (message.delete()) ne fonctionne pas, c'est pas possible ?
(node:4) UnhandledPromiseRejectionWarning: TypeError [INVALID_TYPE]: Supplied options is not an object.
Et je trouve nul part quelqu'un qui supprime un embed xD
dans mon embed
?
message c'est une classe
qui a l'attribut delete
mais ça marche pour un message mais pas pour un embed
Oui mais où est le message, il est définit par quoi ?
Et cest quel event ?
bah delete
event delete de la classe message quoi xd
Na mais, client.on('ici'
client.on("message"
Donc quand un message est posté tu veux delete un embed ?
yep
Bah
Comment ça ce fait que ton message veut pas se delete
Normalement tu peux tout delete
je mets lenomdemonembed.delete(60000);
et ça me dit
(node:4) UnhandledPromiseRejectionWarning: TypeError: help_embed.delete is not a function
Aaa mais c'est normal
Le nom de lembed.delete normal que ça marche pas par contre
Mais pour le is invalid truc object
C'est parce qu'au lieu de mettre message.delete(60) il faut mettre message.delete({timeout: 60})
Oui enfin ton chiffre quoi
ouais 60000 j'attends là xD
2020-05-27T22:31:22.937573+00:00 app[worker.1]: (node:4) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Message
Uh
if ( command === "help") {
message.delete();
const help_embed = new Discord.MessageEmbed()
.setColor("#E5AD00")
.setAuthor("SunCoast", "https://cdn.discordapp.com/attachments/715251504281419836/715256937083568218/suncoast_logo.png")
.addFields(
{name: '.staff', value: 'Permet de voir tous les staffs du serveur', inline: true},
{name: '.forum', value: 'Permet d\'avoir le lien du forum', inline: true},
{name: '.addons', value: 'Permet d\'avoir le lien du workshop', inline: true},
{name: '.boutique', value: 'Permet d\'avoir le lien de la boutique', inline: true},
{name: '.help', value: 'Permet de voir toutes les commandes du bot', inline: true},
{name: '.status', value: 'Permet de voir en temps réel les informations du serveur Garry\'s Mod', inline: true}
)
message.channel.send(help_embed);
message.delete({timeout: 60000});
}
Attend tu veux delete ta réponse ?
fait un .then de message.channel.send
A mais normal que ça marche pas la
que tu nommes m par exemple et tu fais m.delete
Tu delete le message et tu le redelete
Comme ça c'est good ?
message.channel.send(help_embed).then(message.delete({timeout: 60000}));
Avec plaisir 
@crimson fern le bot a crash
ok @crimson fern
/home/pi/Desktop/JeanMarc/events/counter.js:38
updateStatus(old.member.guild);
^
TypeError: Cannot read property 'member' of undefined
at Client.<anonymous> (/home/pi/Desktop/JeanMarc/events/counter.js:38:26)
at Client.emit (events.js:315:20)
at PresenceUpdateAction.handle (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/actions/PresenceUpdate.js:39:19)
at Object.module.exports [as PRESENCE_UPDATE] (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/handlers/PRESENCE_UPDATE.js:4:33)
at WebSocketManager.handlePacket (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/WebSocketManager.js:386:31)
at WebSocketShard.onPacket (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/WebSocketShard.js:436:22)
at WebSocketShard.onMessage (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/WebSocketShard.js:293:10)
at WebSocket.onMessage (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/event-target.js:125:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/websocket.js:800:20)
at Receiver.emit (events.js:315:20)
at Receiver.dataMessage (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:436:14)
at Receiver.getData (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:366:17)
at Receiver.startLoop (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:142:22)
at Receiver._write (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:77:10)
at doWrite (_stream_writable.js:403:12)
Oui mon bot s"apelle jean marc ^^
Montre ton index.js
Et ton code
Old.member.guild n’existe pas... si j’ai bien cherché
Essaie plutôt GuildMember.old
@cedar cloud
Surtout pourquoi tu veux utiliser old ?
Il est censé faire quoi ton .old ?
l'a t-il déclaré déjà
Il est normalement déclaré
Peut-être mais il doit avoir quelque chose de définis avec son .old...
Si il n’y a pas c’est normal que ça ne marche pas...
Et comment il a formuler ça phrase aussi
Si j’étais lui j’essayerais (GuildMember.old);
il n'est pas déclaré
Il faudrait voir son code...
oui c'est clair
Hello, je gère l'event messageUpdate pour check dès qu'un client édite un message, mais je n'arrive pas à choper l'old message (comme dans le doc) ils mettent un old & updated mais je ne sais pas comment les appelés, vous pouvez m'help merci ^^
client.on("messageUpdate", async message => {
message.channel.send(`${message.author} a édité le message **${message.old}** en **${message.update}**`);
});
J'ai juste test mais ça me met undefined ce qui est normal ^^
client.on("messageUpdate", async (old, new) => {
euh l'appelle pas new my bad
interdit
mais tu as saisis le truc
Il le veut pas le new
mais dans la doc c'est comme ça fin j'ai look sur ça
const { old, updated } = client.actions.MessageUpdate.handle(packet.d);
client.on("messageUpdate", async (message, old, updated) => {
message.channel.send(`${message.author} a édité le message **${message.old}** en **${message.updated}**`);
});
Undefined xD
tu uses quelle version
Il le veut pas le new
yes j'ai dis juste plus haut ça fait parti des noms interdit
regarde juste ton package.json
bah le /collection ou le form-data ?
3.0.1 pour le form-data ou 0.1.5 pour le collection
j'ai pas eu de package-json qui s'est create xD wtf
this c'est bon ?
"discord.js": {
"version": "12.2.0",
c'est plus cohérent là xD
yep
Mais apr!ès j'ai check l'event est le meme
chelou
ah mais ok pavu
client.on("messageUpdate", async (message, old, updated) => {
là tu passes 3 params
forcément que le 3eme sera undefined
c'est
yep
client.on("messageUpdate", async (oldMsg, newMsg) => {
je l'ai mis au dessus pourtant 🤔 en disant de changer juste la clé new car elle est inutilisable
ouais mais du coup mon message.channel veut plus xD
faut que je la déclares du coup
bah tu l'as déjà
c'est les params que tu recois de l'event messageUpdate
oldMessage et newMessage
Hello, je me remet à Enmap pour compter xD, et mon code semble marché mais il ne s'envoie pas, j'ai repéré à quelle ligne il y a un soucis, mais je ne vois pas pourquoi (j'ai console.log "ok" après la ligne en question pour voir si il passait mais il ne passe pas)
J'ai repris le code que m'avais fais Samuel pour les tickets et modif "tickets" en "warns" et "ticket" en "warn"
if(!db.get(`user.${message.author.id}.warn`)) return db.ensure(`user.${message.author.id}.warn`, 0);
@hazy mirage @keen narwhal @crimson fern voici mon index ainsi que mon counter.js :
Index :
https://pastebin.com/ANyPW9zk
Counter :
https://pastebin.com/XY8bATg9
je vien de rentré je vais tester
@oak turret t'as ligne est bonne, ca doit être autre chose
@crimson fern ```js
if (command === "warn" ) {
const db = new Enmap({name: "warns"});
const warn = db.get(user.${message.author.id}.warn);
console.log(warn);
if(!db.get(user.${message.author.id}.warn)) return db.ensure(user.${message.author.id}.warn, 0);
console.log("ok");
const accused = message.mentions.users.first();
const reason = message.content.split(" ").slice(1).join(" ");
if(!reason || !accused) return message.channel.send("Vous devez mettre un accusé + raison !");
}
Je voulais tester le if juste pour voir mais :x
le log warn me met 0 mais le le ok ne passe pas
bah yes quand tu return tu stop tout
if(!db.get(`user.${message.author.id}.warn`)) { db.ensure(`user.${message.author.id}.warn`, 0) }
A la fin c'est normal que ca fonctionne
y a plus rien après

C'est juste de la relecture de code la qu'il faut faire ^^
à force de trop chercher je deviens fou 
D'ailleurs, enzo, un gros bot public peux me permettre d'être évalué ou il faut plusieurs petits bots ?
Ah d'accord
faut que tu envoies ton bot à @queen ocean
Ca va etre en fonction de la propreté du code, des features etc etc
Et si l'indentation est pas belle ?
je croit que discord va pas tarder à DECEDER !!!!
/home/pi/Desktop/JeanMarc/events/counter.js:8
let online = guild.members.cache.filter(m => m.presence.status != "offline").size-bots;
^
TypeError: Cannot read property 'cache' of undefined
at updateStatus (/home/pi/Desktop/JeanMarc/events/counter.js:8:36)
at Client.<anonymous> (/home/pi/Desktop/JeanMarc/events/counter.js:38:9)
at Client.emit (events.js:315:20)
at PresenceUpdateAction.handle (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/actions/PresenceUpdate.js:39:19)
at Object.module.exports [as PRESENCE_UPDATE] (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/handlers/PRESENCE_UPDATE.js:4:33)
at WebSocketManager.handlePacket (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/WebSocketManager.js:386:31)
at WebSocketShard.onPacket (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/WebSocketShard.js:436:22)
at WebSocketShard.onMessage (/home/pi/Desktop/JeanMarc/node_modules/discord.js/src/client/websocket/WebSocketShard.js:293:10)
at WebSocket.onMessage (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/event-target.js:125:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/websocket.js:800:20)
at Receiver.emit (events.js:315:20)
at Receiver.dataMessage (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:436:14)
at Receiver.getData (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:366:17)
at Receiver.startLoop (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:142:22)
at Receiver._write (/home/pi/Desktop/JeanMarc/node_modules/ws/lib/receiver.js:77:10)
@keen narwhal voila avec les changements
@red snow
en fonction de la propreté du code
Si il arrive pas à te relire, c'est compliqué
Jpp Discord font des maj il faut rajouter cache et la il me dit qu'il faut l'enlever !!
@crimson fern tu c pk ?
On est d'accord que ça ça ne mentionne pas un user wtf ?
const reason = message.content.split(" ").slice(1).join(" ");
moi ?
non
me ?
oui
essaye de ca :
const name = args.slice(1).join(" ")```
ça fonctionne mais maintenant il mets +1 aux warns même si je warn quelqu'un d'autre
montre comment tu add le nombre de warn a la db
g t avant mais bon je suis gentil
?
bah regarde plus haut
si tu veux qu'on juge qui a fait sa demande avant
xd j'était la hier soir
nn je dec
dcp en attendant @oak turret tu peux ptetre m'aider @crimson fern ?
ah mais tu met l'autheur du message
ah oui je doits mettre ${accused.id} non ?
oui
mais d'ailleurs :
if(!db.get(`user.${message.author.id}.warn`)) return db.ensure(`user.${message.author.id}.warn`, 0);
ici aussi tu t'es trompé
t'as une erreur ?
message.mentions.users.id.first();
Cannot read proprety "first" of undefined
en gros je veux chopé l'id de la personne mentionné quoi
ouais mais je veux chopé l'id
message.mentions.members.first().id
Alors ouais mais ça fais toujours le plus 1 à tout le monde
if (command === "warn" ) {
const db = new Enmap({name: "warns"});
const warn = db.get(`user.${message.author.id}.warn`);
const accused = message.mentions.members.first();
const id = accused.id;
const name = args.slice(1).join(" ")
if(!db.get(`user.${id}.warn`)) { db.ensure(`user.${id}.warn`, 0) }
if(!name || !accused) return message.channel.send("Vous devez mettre un accusé + raison !");
else {
db.math(`user.${id}.warn`, "+", 1)
}
const warn_embed = new Discord.MessageEmbed()
.setColor("#00ff00")
.setAuthor(`${accused.tag} a reçu un avertissement`)
.addFields(
{name: "Joueur", value: `${accused}`, inline: true},
{name: "Raison", value: `${name}`, inline: true},
{name: "Modérateur", value: `${message.author}`, inline: true},
{name: "Total", value: `${accused} cumule désormais ${warn} avertissement(s)`},
);
message.channel.send(warn_embed);
}
ahh oui
oups
Nickel merci Sam
bah il est pas changer
Voici mon index ainsi que mon counter.js :
Index :
https://pastebin.com/ANyPW9zk
Counter :
https://pastebin.com/XY8bATg9
mais dans ton code, tu te complique la vie de fou
pk ?
mais enfaite, counter.js, c'est quoi ? c'est un event ?
oui
mais ton code est illogique
normalement, les events que tu crées, c'est ceux de discord
Sam on peut relier deux db enmap (le warn marche bien) mais j'ai envie de le connecté avec une autre commande pour lui faire un -1 xD ?
a bah moi g tjrs coder comme ca et je suis pas le seul
mais je comprend pas ce qui va pas
@oak turret fait t'as db autrement alors
met le dans tes const principales avec djs
J'ai try de changé le nom de la db, puis de prendre les values de l'autre pour faire le -1 mais il me prend pas le nom de la new db
fait ta const dans tes principales
me ?
pour les deux db ?
t'en a qu'une
c'est la même justement
le but est d'en avoir une commune pour les warns on est d'accord
yep
const db = new Enmap({name: "warns"});
```ca tu le met tout en haut de ton code
et t'auras juste a réutiliser db.math
oauis j'suis con xD
Alors ça fonctionne mais ça me met tout le temps -1 xD (même pour warn)
ça fonctionne 1 fois sur deux en fait xD
J'ai pas compris 
En gros
quand j'unwarn ça marche
mais quand je veux re-warn il me re unwarn
xD
Warn
if (command === "warn" ) {
const accused = message.mentions.members.first();
const warn = db.get(`user.${accused.id}.warn`);
const id = accused.id;
const name = args.slice(1).join(" ")
if(!db.get(`user.${id}.warn`)) { db.ensure(`user.${id}.warn`, 0) }
if(!name || !accused) return message.channel.send("Vous devez mettre un accusé + raison !");
else {
db.math(`user.${id}.warn`, "+", 1)
}
const warn_embed = new Discord.MessageEmbed()
.setColor("#00ff00")
.setAuthor(`${accused.tag} a reçu un avertissement`)
.addFields(
{name: "Joueur", value: `${accused}`, inline: true},
{name: "Raison", value: `${name}`, inline: true},
{name: "Modérateur", value: `${message.author}`, inline: true},
{name: "Total", value: `${accused} cumule désormais ${warn} avertissement(s)`},
);
message.channel.send(warn_embed);
}
Unwarn
if (command === "unwarn" ) {
const accused_unwarn = message.mentions.members.first();
const id_unwarn = accused_unwarn.id;
const warn = db.get(`user.${accused_unwarn.id}.warn`);
const name_unwarn = args.slice(1).join(" ");
if(!name_unwarn || !accused_unwarn) return message.channel.send("Vous devez mettre un accusé + raison !");
else {
db.math(`user.${id_unwarn}.warn`, "-", 1);
}
const unwarn_embed = new Discord.MessageEmbed()
.setColor("#00ff00")
.setAuthor(`${message.author} a enlevé un warn de ${accused_unwarn}`)
.addFields(
{name: "Joueur", value: `${accused_unwarn}`, inline: true},
{name: "Raison", value: `${name_unwarn}`, inline: true},
{name: "Modérateur", value: `${message.author}`, inline: true},
{name: "Total", value: `${accused_unwarn} cumule désormais ${warn} avertissement(s)`},
);
message.channel.send(unwarn_embed);
}
c'est pas normal
peut-être parce que je le restart beaucoup xD
j'avais mis l'inverse
add pour warn on est d'accord xD
oui
bon on peut m'aider maintenant svp ?
@cedar cloud autant mettre ce que tu as fait dans ton fichier principal
ca changera rien
Non
Ca changera rien je suis d'accord
mais là, c'est pas un event
et au lieu de faire des grosses fonctions, tu fais direct :
<Channel>.setName(`💓 En ligne : ${guild.members.cache.filter(f => f.user.bot === false && f.user.presence.status !== "offline").size}/${guild.members.cache.filter(f => f.user.bot === false).size}`)```
mouais et si je fait ca c bon ? :
client.on("guildMemberAdd", function (member) {
updateStatus(member.guild);
updateStatus1(member.guild);
})
client.on('presenceUpdate', async (oldMember, newMember) => {
updateStatus(newMember.guild);
updateStatus1(newMember.guild);
});
client.on("guildMemberRemove", function (member) {
updateStatus(member.guild);
updateStatus1(member.guild);
})
mais je prefere m'organiser comme ca
change tes fonctions alors
Sam petite question, on est d'accord que mes warns dans la db sont des "Number" ?
oui
je peux pas soustraire tous mes warns, car il me dit que warns sont des strings 
Fait un Math.floor de ta db
console.log(Math.floor(db)); => NaN
non mais de ce que tu veux
dans ton cas :
console.log(Math.floor(db.get(`user.${id}.warn`)));
Oula
Pour enlever tous les warns du joueur je fais
db.math(`user.${id_unwarn_all}.warn`, "add", `${warn}`);
et ça me refais le bug des + -
Pauvre Lartaxx
pourtant c'est tout con ce que je veux faire
je veux que ça fasse +1 pour le nombre de warns et -1 pour unwarns xD
mais pour l'id de l"utilisateur mentionné
et unwarnall j'enlève tous les warns de l'id de l'utilisateur mentionné tout simplement
mais il sue mon bot il veut plus xD
Ptdr
Bah get le nombre de warn que le mec à et ensuite tu le soustrais par se nombre quand tu fais unwarnall
Ou tu reset seulement son casier
ouais mais je passe par enmap
j'ai fais ça
ça fonctionne bien
mais
il emmêle à un moment
on dirait qu'il n'applique pas les instructions de la commande
Passe par un autre chemin non ?
j'vais passer par une db "réelle" et faire mes requêtes je pense
mais j'attends l'avis de Sam
oui aussi xD
ensuite, remontre tes codes, et dit moi ce qu'il se passe
au pire, fait un js db.deleteAll()ca va te permettre de reset ta db
montre ton code en entier plutôt
juste le delteAll rien dedans ?
if (command === "unwarnall" ) {
const accused_unwarn_all = message.mentions.members.first();
console.log(Math.floor(db.get(`user.${accused_unwarn_all.id}.warn`)));
const id_unwarn_all = accused_unwarn_all.id;
const warn = db.get(`user.${accused_unwarn_all.id}.warn`);
const name_unwarn_all = args.slice(1).join(" ");
if(!name_unwarn_all || !accused_unwarn_all) return message.channel.send("Vous devez mettre un accusé + raison !");
else {
db.set(`user.${id_unwarn_all}.warn`, 0);
}
const unwarn_all__embed = new Discord.MessageEmbed()
.setColor("#00ff00")
.setAuthor(`${message.author} a enlevé tous les warnsde ${accused_unwarn_all}`)
.addFields(
{name: "Joueur", value: `${accused_unwarn_all}`, inline: true},
{name: "Raison", value: `${name_unwarn_all}`, inline: true},
{name: "Modérateur", value: `${message.author}`, inline: true},
{name: "Total", value: `${accused_unwarn_all} cumule désormais ${warn} avertissement(s)`},
);
message.channel.send(unwarn_all__embed);
}
okay je fais ça merci pour ton temps ^^
message.guild.roles.exists il est remplacer par quoi à la v12 ?
message.guild.roles.cache.exists
avec find :
https://pastebin.com/fAw1AgkD
Comment ont créer une embeds genre j'aimerais dire a mon bot créer une commande !info et avoir l'embeds qui montre toute les info que je vais afficher
@brave coral
const embed = new Discord.MessageEmbed()
.setColor("#FFFFF")
.setAuthor("tata");
message.channel.send(embed);
Je n'est pas commencer la commande
bot.on('message', function (message) {
if (message.content === '!info'){
message.reply('message')
}
})
A si
bot.on('message', function (message) {
if (message.content === '!info'){
const embed = new Discord.MessageEmbed()
.setColor("color")
.setAuthor("Nom du bot", "icone du bot")
.addFields(
{name: "Test", value: "Test", inline: true},
{name: "Test", value: "Test", inline: true}
);
message.channel.send(embed);
}
})
Ho ok
Ok je vais allez sur la ducomentation discord
discord.js
Hello, quelqu'un a déjà crée un channel depuis une commande ?
guild.channels.create('new-general', { reason: 'Needed a cool new channel' })
.then(console.log)
.catch(console.error);
Ne me prends pas le guild (undefined) c'est censé être une classe non ?
Montre ton event sil te plaît
je suis dans l'event client.on("message"
Je crois que je suis fatigué 
trop dév aujourd'hui xD merci à toi
^^
Ah et dernière question ouch, on peut define la catégorie dans laquelle le channel pop ?
parentID
je l'use comment ?
type: 'text',
parentID: '715671104387154020',
Po trouvé d'exemple sur le wiki
setParent
channel.setParent
et tu passes l'id pardon
quand j'envoie mon contenu ?
ça fonctionne
mais
il m'envoie plus mon contenu
.then(chan => chan.setParent('715671104387154020').send(`Raison : ${raison}`)).then(chan => chan.react("❌"))
ah d'accord je pensais pouvoir en faire plusieurs de suite
Na vu que le.setParent ne retourne rien
pas comme ça non ?
.then(chan => chan.setParent('715671104387154020'),
chan.send(`Raison : ${raison}`)).then(chan => chan.react("❌"))
Non
Non plus
Tu peut mettre le parent quand tu crée le channel
La virgule elle n'a rien à faire là
ça me le met en rouge sinon :x
Il peut aussi le faire la
C'est pas opti
Ça a la même optimisation
et me dit que chan n'est pas define xd
Et si tu créer un channel tu envoie deux requêtes aussi, la création, le set parent
Pour le coup, l'optimisation ne changera vraiment rien ici
C'est à son goût
channels.create('new-channel', {
type: 'text',
permissionOverwrites: permissionOverwriteArray,
reason: 'New channel added for fun!',
parent: 16465191916
});
Pour le coup, l'optimisation ne changera vraiment rien ici
Une requête en moins et toujours de l'optimisation
Tu n'as pas fais de requête en moins ici
Et l'objet sera plus "lourd" ... Vraiment entre les deux il n'y presque aucune différence
Si
J'ai use comme ça pour voir
mais il m'envoie plus dans la catégorie*
const chan = message.guild.channels.create(`ticket-de-${message.author.username}`, {
type: 'text',
parent: 715671104387154020,
permissionOverwrites: [
{
id: message.author.id,
deny: ['VIEW_CHANNEL'],
},
],
})
.then(chan => chan.send(`Raison : ${raison}`)).then(chan => chan.react("❌"))
if(user.client.reaction == "❌") {
message.chan.delete();
}
}
Tes variables n'ont pas de sens
.then(chan => chan.send(`Raison : ${raison}`)).then(chan => chan.react("❌"))```
Parce que le.then après le message ne renvoie pas un channel
.then(c => {
c.send(`Raison : ${raison}`))
c.react("❌")
)}```
Tu réagis au channel ?
T'as pas redéfinis c
Tu le met au mauvais endroit ton .then
Désolé, première fois que je fais ce genre de truc :x
et le .then marche pas Fire
le parent ne marche po non plus xD
Ctrl z
Et au lieu de la virgule met un ;
🤷♂️ c'est ptet ça
On est pas obligé de mettre { pour les then ?
const chan = message.guild.channels.create(`ticket-de-${message.author.username}`, {
type: 'text',
permissionOverwrites: [
{
id: message.author.id,
deny: ['VIEW_CHANNEL'],
},
],
}).then(chan => {
chan.send(`Raison : ${raison}`)
chan.react("❌")
chan.setParent("715671104387154020")
})```
Et si
Bah voilà pour ça que t'avais une erreur plus haut
Car tu fais plusieurs actions dans ton .then
Tu fais plusieurs requêtes 👀
ça me fais pas le setParent mais ça fonctionne sinon
Euh
Tu met bien l'id de la catégorie au moins ?
Chan.react pas correct
Yep
const chan = message.guild.channels.create(`ticket-de-${message.author.username}`, {
type: 'text',
permissionOverwrites: [
{
id: message.author.id,
deny: ['VIEW_CHANNEL'],
},
],
}).then(chan => {
chan.send(`Raison : ${raison}`).then(msg => msg.react("❌"))
chan.setParent("715671104387154020")
})```
msg.react("truc")
})
Chan.setparent('truc')
})
C'est un int
Nickel ça fonctionne
Pas besoin de préciser ``
et pour mon if vous auriez pas d'idée ?
il sert a rien le premier le premier const chan du coup Fireless
si tu promise
pas besoin d'assigner ton const chan
Je trouve pas les bons attributs :x
il la copier
.reaction.name je crois je sais plus
Mec
Désolé si je mets pas les trucs dans les parenthèses mais je suis sur tel lartaxx
wtf @red snow
Tu dis n'imp @red snow
tqt pas grave ^^
.reaction.name je crois je sais plus
Dans mes souvenirs c'était ça
Non
non car c'est un event différent
c'est messageReactionAdd
du coup tu vas recevoir 2 paramètres, le reaction et le user
reaction._emoji.name
ou avec l'id tu fais comme tu veux
A oui le emoji
Si tu fais des emojis custom c'est un peu différent
:smart:
Ensuite tu regardes d'ou ca a été react, et tu delete le channel yes
je l'use comment du coup pour mon coup ?
Sinon ya pas le await pour les réactions?
Bah si vous faites des .then a gauche et des await à droite bof
sois tu promise chaining
sois tu await je trouve
mais sinon oui il aurait pu faire pour reagir
const msg = await chan.send(Raison : ${raison})
if (msg) msg.react('xx')
Mais pour récupérer l'event de reaction non je crois que c'est seulement l'evenement reactionAdd
const filter = (reaction, user) => {
return ['👍', '👎'].includes(reaction.emoji.name) && user.id === message.author.id;
};
message.awaitReactions(filter, { max: 1, time: 60000, errors: ['time'] })
.then(collected => {
const reaction = collected.first();
if (reaction.emoji.name === '👍') {
message.reply('you reacted with a thumbs up.');
} else {
message.reply('you reacted with a thumbs down.');
}
})
.catch(collected => {
message.reply('you reacted with neither a thumbs up, nor a thumbs down.');
}); ```
J'ai trouvé ça
Ah bah yes why not
wah je suis plus trop là xd
Je me demandais si ça serait possible de créer en genre de timer, que après exemple 1 jour, si la personne n’a pas fait une certaine vérification sur le serveur bah elle est kick ?
Essaye le truc de SB Lartaxx le awaitReactions idk ce que ca donne
mais ca a l'air cool
si tu peux le gérer comme ça c'est bien
dans son if il détecte un réaction, mais j'voudrais détecter quand le message.author réagi avec l'émoji juste xD
Mmh alex
Je vais peut être te donner le truc le moins opti sur terre mais bon 🤷♂️
Ton member il a un rôle quand il est vérifié ?
Oui, le rôle membre
@oak turret regarde ce que tu recois le "collected" tu as peut etre un member dedans pour savoir quel user
Mais je veux juste qu’on me dise si c’est possible et avec quel truc le faire que j’apprenne à me débrouiller seul :3
OK
Alex tu regardes tt les jours en gros chaque membre d'un certains role le last message
Quelqu'un qui me dit si c'est bien ou pas 🤷♂️
si le lastMessage est plus vieux que xx/xx/xx
Tu vérifie toutes les 12h par exemple
alors tu le kick
Enzo là j'ai rien changé à mon if, j'ai pas trop suivi le reactionAdd, fin pas d'exemple find
Kk
Essaye l'exemple de SB Lartax
son awaitReactions, tu reagis et log ce que tu recois pour voir si tu as bien le member dedans
je pense que oui
donc tu pourras faire ton truc je suppose
idk
Si le member.joinedAt.getDay(Je sais pas si c'est ça) n'est pas égal au current Time.getDay bah tu kick
Un truc dans le genre
Je fais ça dans le index on est d’accord
tu crées une task qui va etre appelé tout les soirs
un setInterval pas la bonne option si tu relances le serveur
ca peut complètement changer les heures de lancement
Yep,
faire ca en journée vérifié chaque membre
Oe faut lancer aux bonnes heures effectivement
Du coup, je fais quoi ?
ca peut etre touchi
je l'ai dis plus haut
tu as des modules npm
pour faire ça
simple à use
T'as log quoi?
collected
ta collection est vide
donc il détecte pas quand je réagis
Tu as pris un truc de github ?
c'est SB qui m'a dit de test
Bah mec
Perso je n'aide pas pour des ressources github, surtout si par derrière la personne n'a pas les basses en js
const collector = message.createReactionCollector(filter, { time: 15000 });
collector.on('collect', r => console.log(`Collected ${r.emoji.name}`)); collector.on('end', collected => console.log(`Collected ${collected.size} items`));```
C'est des trucs de la doc au cas où
@keen narwhal Je sais pas d'où vient le code ^^ Et j'ai les bases hein ^^ juste que au départ je trouvais juste pas les bon attributs pour détecter quand l'auteur du message réagissez ^^
Laisse tomber ^^ tu apprends, comme tout le monde
Non mais si je poste, c'est que j'ai look les attributs avant, et que j'ai juste pas trouvé
Sauf que des gens n'ont pas assez de patience pour le comprendre, et renvoient vers la doc, bêtement (Bon après ya des trucs obvious)
Essaye ce que je t'ai mis Lartaxx
Là y a pas d'exemple donc je sais pas trop comment l'use
Pour voir si ça te log
yep je test
c'est un event
Collected 0 items
pas de code, pas d'aide
T'as réagis ? Et t'as mis au lieu de message ta variable ?
Ouais j'avais compris, mais je l'use comment ? Je suis déjà dans l'event message
Regard
yep j'ai mis ma réaction
Fireless arrête... Il a juste testé ce que je lui ai envoyé, stop te remarques inutiles, qui ne font que perturber une simple conversation...
et la bonne
client.on('messageReactionAdd', msg => {
console.log(msg)
})```
Oui merci je sais comment on use un event
du moins un event dans un event j'ai jamais fais, donc je demande si c'est possible
De quoi un event dans un event
Non cet event tu le emt pas dans le message
Aya
je te l'ai dis plus haut
tu as le awaitReactions de SB mais je connais pas
et l'event msgReactionAdd
Ouais je sais
avec 2 params, la reaction et le user
Enzo, regarde le derbier que j'ai envoyé
C'est la doc de djs mais ça Lio met 0 collected OwO
Mais après ça c'est comment je le fais fonctionner avec ma commande
Je suis peut-être teubé mais je vois pas pourquoi :x
Un timeout au lieu de setInterval ?
const collector = message.createReactionCollector(filter, { time: 15000 }); collector.on('collect', r => console.log(`Collected ${r.emoji.name}`)); collector.on('end', collected => console.log(`Collected ${collected.size} items`));```
@red snow
mais après le délai indiqué
A mais attend Lartaax
j'ai mis 1000 pour 1s
T'as remplacé some Id?
Ah ok
pour l'id du user ?
Oui
Une schedule !
🤔
Oui Alex
Le module il faut que je l'install on est d'accord ?
xD
tu es plus content de l'avoir trouvé tout seul je suppose
Mdrr
@red snow user.id === message.author.id; ?
Meme si pour le reste j’ai aucune idée comment faire, maintenant que j’ai une petite idée de quoi faire je vais essayé et faire des erreurs et recommencer !
bah le message.author.id quoi
Oui parce que le message.author.id ca va etre celui du bot qui a publié l'embed non ?
5s
A
je mets ^^
Wait haha
Pareil ^^
Lartaxx le mec doit reagir direct ?
Non
Comment t'as 0 item collected
oui par exemple
là il va attendre une reaction dans le timing donné
fin quand il le veut quoi
Si il réagit demain et que t'as mis 10 minutes c'est foutu
Abandonne mon cmtruc alors
donc passes par le messageReactionAdd ^^
Ah yes, donc là j'aimerais savoir comment relier l'event à ma commande ?
je la fous dedans ?
Euh

6 ?
