#javascript-typescript
1 messages · Page 68 of 1
Salut les gars, je viens vous voir car j'ai un problème assez majeur, que je n'arrive pas à résoudre :/
this.isMod = async function (member, guild, permission) {
this.db.query(`SELECT * FROM guilds WHERE id = '${guild.id}'`, async (err, results) => {
let final_position = false
if (member.hasPermission('ADMINISTRATOR')) final_position = true
if (permission) final_position = guild.members.cache.get(member.user.id).hasPermission(permission);
if (results[0].moderator_roles) final_position = !!member.roles.cache.array().find(role => results[0].moderator_roles.split('/').includes(role.id));
return final_position
})
}
J'ai fait une fonction pour savoir si quelqu'un est modérateur sur un serveur, sauf que le problème, c'est que quand je return, ça ne me return rien :/
En gros, ça ne prend pas en compte les returns et les affectations de variables qui sont DANS le db query, comment faire ?
pourquoi t'as mis !! ?
Alors écoute, c'est mon INTELIJ qui m'a mis ça 
J'ai testé, et ça marche, je me suis renseigné, et en fait, ça détecte si il y a " quelque chose " ça return true
par exemple, "" ça return false
et "hey" ça return true
Sinon tu sais comment faire ou pas ? Parceque je suis en train de rager un peu
Bonsoir j'ai un soucis avec mon bot c'est qu'il prend pas en compte les attachement
jsp pourquoi quelqu'un peut m'aider svp ?
Salut @mossy orchid c'est quoi le problème exactement ?
Si c'est que l'image ne s'envoie pas, il faut supprimer après avoir envoyé le message et lui laisser un temps ( message.delete( {timeout: 1000} )) pour que l'image charge
Personnellement je n'ai trouvé aucun moyen pour que l'image soit téléchargée puis envoyée pour éviter tous les bugs mais c'est la manière que j'ai trouvé d'éviter le plus de bugs
je veux quelle se voit dans lembed
comme ça
avant ça marchait
Ok et ça te donne quoi
.pnj ?
oui
Aucune erreur dans la console ?
C'est pas .png plutôt ?
C'est ça qui doit faire buger
Le format de l'image est pas le même que dans le code
alors je change lequel ?
dans le code ?
"img.pnj" c'est quoi
bah limage
pas de diff
ok
Mais tu as upload dans le même channel la même image tout ?
oui
Essaie de mettre un await devant pour être sûr que l'image soit bien chargée
Salut les gars, je viens vous voir car j'ai un problème assez majeur, que je n'arrive pas à résoudre :/
this.isMod = async function (member, guild, permission) {
this.db.query(`SELECT * FROM guilds WHERE id = '${guild.id}'`, async (err, results) => {
let final_position = false
if (member.hasPermission('ADMINISTRATOR')) final_position = true
if (permission) final_position = guild.members.cache.get(member.user.id).hasPermission(permission);
if (results[0].moderator_roles) final_position = !!member.roles.cache.array().find(role => results[0].moderator_roles.split('/').includes(role.id));
return final_position
})
}
J'ai fait une fonction pour savoir si quelqu'un est modérateur sur un serveur, sauf que le problème, c'est que quand je return, ça ne me return rien :/
En gros, ça ne prend pas en compte les returns et les affectations de variables qui sont DANS le db query, comment faire ?
Sans promise si possible car je sais comment faire mais c'est pas ouf
Personnellement je dev pas comme ça, je peux pas t'aider désolé
Avant le client.channels.cache.get('747903815126089748').send
Et met bien en haut le async
Euh normalement client.on('message', async message => {
utilise Array.from() plutôt
c fait mais 0 changement
après je t'avoue que je trouve ton code un peu chelou mais bon
jsp ça veut pas
c'est bizzare que ça marche pas
Ouai fait ça
Un twitter
un twitter ? 
Genre t'envoie un message et ça le met en embed comme ça avec l'image si il y en a une
J'avais aussi fait ça pour un serveur FiveM mais je l'avais pas fait comme ça
Moi j'avais pris le lien de l'image mais ça faisait des bugs de chargement
non
comme ça?
Comment ça ?
Oui mais là c'est pas le problème xD
Le problème c'est la fonction
Elle me return pas ce qu'il faut
Problème résolu. Pour ceux que ça intéresse : https://pic.is-inside.me/w2XTldMj.png
Et lorsqu'on appelle la fonction : https://pic.is-inside.me/McW2tPNj.png
Salut, vous savez si il y a une api sur Amazon pour voir les prix et les transférer sur discord.js ?
duh, je crois pas
Check sur le site de npm
Non Check juste sur le site d’Amazon developers
Bonjour
J'ai une commande sur mon bot qui repont a un message, sauf je voudrais que cette dernière soit régulé ( slowmode ou coldown )
Avez vous une ligne a rajouter sur ce code pour éviter que l'utilisateur spam cette fonctionnalité de mon bot?
le code :
if (message.content === "Salut") { // Lorsque "Salut" est envoyé
message.channel.send("Salut l'ami !")
}
})```
N'hésitez pas à me mentionner
Ça ne prendra pas qu'une ligne malheureusement
L'idée de base c'est de faire en sorte de stocker le timestamp de la dernière exécution de la commande et de vérifier que la commande est exécutée après un certain temps.
Il est aussi possible de stocker (dans une Collection ou une Map par exemple) l'id du dernier utilisateur qui l'a utilisée et le supprimer après les x secondes de ton intervalle d'utilisation via un setTimeout.
Tu l'auras compris y a plusieurs solutions, ça a déjà été fait donc tu peux par exemple utiliser des librairies qui implémentent ça (c'est ce qu'on appelle du throttling en anglais donc tu peux chercher ça sur google).
Une librairie comme Discord.js-Commando (https://discord.js.org/#/docs/commando/master/general/welcome) implémente ça en tant que feature "de base" donc tu auras juste une option à rajouter à ton constructeur de commandes et ça fonctionnera. Je te laisse décider toi-même et bonne chance
Oula, j'ai pas trop compris.. donc, faut créé plusieurs fichier ?
Dossier*
Et le lien que tu m'a donné, tu peux plus m'expliquer stp ^^`
Y a pas nécessairement besoin de créer plusieurs fichiers
C'est juste que c'est un système assez gros à mettre en place
Et le lien que je t'ai envoyé c'est le plugin Commando de discord.js
Il permet de faire des commandes de façon plus complexe que de base
attends j'ai un guide stv
Sinon tu peux le faire manuellement avec une collection et un setTimeout
Moi je fais comme c'est simple et efficace
C'est d'ailleurs le système qui est implémenté par discord.js-Commando
Je dis juste que si tu vois pas comment faire voilà y a ça aussi
Il lui aura fallu 1 minute et 24 secondes pour comprendre commando, très rapide 
Roh j'ai compris dans sa globalité abuse pas 
Je te ré contacte si j'ai un problème
Merci
@timid loom, tu est disponible ?
Je suis vraiment perdu tu peux pas m'aider stp
Yo, je cherche à récupérer le n ème élement d'une liste que je récupère avec un querySelector sachant que
let currentLink = navList[1]
Ne fonctionne pas
Mais c'est du HTML ça
Bah c'est du js que je fais là
peut-être parce qu'il fait du js la
Oui mais c'est plus logique je trouve
bah non?
Pas logique
ce que tu viens de dire c'est comme si tu disais: "ah tu fait du php, bah va dans html-css wtf mec?"
rien à voir
Oui ça reste du js hein js c’est pas que discord js 
c'est donc pour ça que du javascript pour du web ça deviens du html ou du css
je comprends mieux
Sinon du coup bro désolé je connais pas ton truc je suis à chier en web
T'as pas compris
Vous devriez séparer et faire un salon " web " et un salon " discordjs "
¯_(ツ)_/¯
C'est ce qui avait avant, on préfère tous la nouvelle structure donc go t'habituer 
Oui je sais c'est pour ça
Après c'est plus de la remise en question personnelle je trouve, si pour toi tu es développeur discord.js et pas développeur js.... chacun ces ambitions 
Après bon pour l'instant je débute en développement j'ai commencé en milieu 2020
Donc bon
J'ai fait vite fait du html css
salut bg
.children[1]
``` sur ton element
Enzo le beau gosse comme d'habitude
si tu veux voir a quoi ressemble l'objet html tu fais juste un log avec les {} genre
console.log({ navList })
et la tu auras toute la structure de ton node element
const navList = document.querySelector('ul')
console.log(navList.children[1])
en gros
ok je check le boss
Désolé de vous interrompre, mais tu t'en sers pour faire quoi exactement ?
J'essaye d'apprendre en même temps 👀
ça fonctionne merci 
Pour agir sur ton DOM via JavaScript
oui
Cibler un élément c’est important pour qu’ensuite tu puisses dessus faire des évents, animation ou autre
ok donc en gros c'est pour edit du CSS ?
nan pour edit le contenu
Mais en JS ?
Pas forcément
Le contenu de la page
pour agir dessus que ce soit visuel ou non
Donc ça peut être le texte d'un paragraphe, ajouter un élément à une liste
En gros tu sélectionne une partie de ton code pour le modifier
On peut le voir comme ça sauf que tu le modifie que pendant l'exécution
En gros agir sur le DOM c’est une base clé du JavaScript côté web
bah déjà t'as 2 fois le même event donc bon
ou sa O_o ?
client.on("message") x2
Ha mais oui sa c'est normal car il a différant message
C’est pas bien grave en soit d’avoir 2 évents enfin ça cassera pas le code c’est juste pas opti
Faut juste que tu vérifie que le contenu du message soit la commande au tout début de ton event, si ce n'est pas le cas, tu return
au lieu de vérifier après avoir fait tes vérifications de cooldown
dis @slim anvil, t'as utiliser quoi comme module pour faire tes prompter en dm ?
car il peut pas awaitMessages en dm donc je vois pas comment faire
pour les vocaux privés je parle
@slim anvil
j'ai besoin d'aide s'il te plaît
Comment on donne une suite logique a un bot ?
discord
J'ai rien trouvé sur internet
2 mention en moins de 5m x)
c'est juste une commande
et avec commando si c'est pas bon tu peux choisir de reposer la question ou non
comment ça une suite logique @tame shore ?
Genre si je demande a mon bot de marqué des chiffre a l'infinie sur un channel
avec un écart de 0
suite logique = 1 2 3
une suite logique
mais comment je fait pour qu'il l'a poursuive
@tame shore tu fais une boucle ou il incremente une variable de 1
x)
une commande ?
je sais pas si c'était du troll mais c'est une suite logique oui
avec un écart de 0 0 0 5
let count = 0;
while (count < 20) {
console.log(count++)
}
@tame shore par ex
oh thanksss
Ha bon x)
a merde
je savais pos
bah @oak turret tu parles de set un password etc ?
oauip en rejoignant un vocal
toute suite est logique 1-2-3-8 la suite --> 9-10-11-16
je passe par voiceStateUpdate perso ?
Ah oui pour le vocal oui
ha oki
Mais ensuite pour set le password c'est via une commande
yes ça j'imagine
Mais du coup oui le principe de créer etc c'est via le voiceStateUpdate
yep mais du coup comment tu le dm le mec ? car awaitMessage fonctionne po quoi, fin avec un prompter ( j'use pas commando là )
bah tu lui envoie un message pour lui dire "fais ça"
et ensuite il fait ça sans await Messages
je passe par une commande ensuite
du coup c'est plus dans l'event stateUpdate mais message
Bonjour,
Est-ce que c'est possible de faire que une action se fait que si le message existe encore ?
Explications :
On envoie un message et on réagis avec 7 émojis, à partir du moment que il y a une réaction le message se supprime (même si il n'y a pas encore toutes les réactions) c'est le but.
Mais du coup ça fait une erreur comme le message n'existe plus on peut pas rajouter de réactions.
Mon code pour vérifier si le message existe (qui ne fonctionne pas) :
Je précise que message est bien le message auquel on veut ajouter la réaction
if (message) message.react("🚨")
if (message) message.react("🔰")
if (message) message.react("🆘")
if (message) message.react("🏆")
if (message) message.react("❔")
if (message) message.react("📝")
if (message) message.react("💬")
Tout fonctionne mais si on réagis avant que il y ait toutes les réactions ça met une erreur "Unknown message"
Merci de bien vouloir m'aider :)
tu mets un try catch
Tu vas devoir get avant chaque réaction
Alors qu’avec un try catch tu peux stopper des une erreur
try {
message.react(":rotating_light:")
message.react(":beginner:")
message.react(":sos:")
message.react(":trophy:")
message.react(":grey_question:")
message.react(":pencil:")
message.react(":speech_balloon:")
} catch(error) {
console.error(error)
}
try{
message.react("🚨")
message.react("🔰")
message.react("🆘")
message.react("🏆")
message.react("❔")
message.react("📝")
message.react("💬")
} catch{
}
Comme ça c'est good ?
Ah et si je veux qui se passe juste rien
bah tu peux rien mettre
j'ai mis un console.error pour que tu puisse quand même voir l'erreur au cas où
mais tu peux rien mettre si tu veux
Ouai
try {
message.react("🚨")
message.react("🔰")
message.react("🆘")
message.react("🏆")
message.react("❔")
message.react("📝")
message.react("💬")
} catch(error) {
console.log(error)
}
Donc ça c'est bon
oui
Oui
oui
Merki
C'est bon vous allez pas mettre les 4000 membres pour me dire que c'est bon x)
oui
oui
Mais du coup j'ai quand même l'erreur dans ma console, ça a rien changé xD
Breeef c'est pas grave
Bien vu sherlok
Hey,
Vous avez un code ou une technique pour détécter quand quelqu'un rejoins un vocal et le quitte ?
J'ai beau essayer avec le voiceStateUpdate.js j'y arrive pas
C'est avec l'event voiceStateUpdate, il faut comparer le channel du old et le channel du new 😉
On est d'accord que c'est censé fonctionner ?
module.exports = (oldMember, newMember) => {
let newUserChannel = newMember.voiceChannel
let oldUserChannel = oldMember.voiceChannel
if(oldUserChannel === undefined && newUserChannel !== undefined) {
console.log("Rejoins !")
} else if(newUserChannel === undefined){
console.log("Quitté !")
}}
Quand je rejoins et quand je quitte ça met que je quitte
Fait du débug alors 
Comment ça
console.log ton newUserChannel et ton oldUserChannel
Ils sont "NaN"
perso
j’ai fais
si oldstate == null || oldstate != null && newstate != null // il rejoint un vocal
de mémoire
mais check oldstate.channelID et newstate.channelID
donc ta condition c’est si oldState == null ou si il est !== null ? 
T’as pas l’impression qu’il y a un soucis

Ah non autant pour moi j’avais pas vu le || 
Ça me donne toujours pas la solution
J'ai rejoins puis quitté
module.exports = (oldState, newState) => {
let newUserChannel = newState.channelID
let oldUserChannel = oldState.channelID
console.log("New Channel : " + newUserChannel + " | Old Channel : " + oldUserChannel)
if (oldUserChannel == null || oldUserChannel != null && newUserChannel != null) {
console.log("Rejoins !")
} else {
console.log("Quitté !")
}}
.channelID
J'ai réussi mais j'arrive pas à moove la personne
user.setChannel(chan)
Ça marche pas
faut faire .join()
Je veux pas faire rejoindre le bot
Je veux moove la personne
Trouver
C'est voice.setChannel
Hello, vous savez comment arrêter cette foutu erreur, alors que bon je pense que ma condition est ok non ?
c'est good ! j'ai juste clearInterval() ^^
Tu fais comment ?
Merci
Est-ce que quelqu'un sait comme faire quelque chose comme ça dans un filtre de await message ? (vérifier si c'est un nombre positif -> si pas le cas envoyer "mettre un nombre positif")
if (m.author.bot) return
if (Number.isNaN(+m.content)) {
user.send({embed: new MessageEmbed()
.setColor("#105785")
.setTitle("Entrez un nombre positif !")})
} else {
if (!m.content >= 0) {
user.send({embed: new MessageEmbed()
.setColor("#105785")
.setTitle("Entrez un nombre positif ! 2") })
return
}
}
si il est < 0 :x
Oui mais aussi vérifier si c'est un nombre
Et faire que ça envoie le message "mettre un nombre positif" dans le filtre on fait comment
C'est surtout ça, parce que les conditions ça fonctionne
Je demande pas ça mais pas grave :|
Je veux que si le nombre n'est pas positif ou n'est pas un nombre, le bot envoie un message "Envoyez un nombre positif !"
message.channel.awaitMessages((m) =>
!m.author.bot
&&
!Number.isNaN(+m.content)
&&
m.content >= 0,
{ max: 1, time: 0 })
ça fonctionne mais il y a pas le message
Tu as pas compris
:|
Je veux que si les conditions ne sont pas respecter (pas un nombre ou un nombre négatif) ça envoie un message en disant "mettez un nombre positif"
const number = Number(m.content)
if (isNaN(number) && number < 0) {
return user.send({embed: new MessageEmbed()
.setColor("#105785")
.setTitle("Entrez un nombre positif ! 2") })
}
aah mais j'avais pas compris
Mais ça on peut pas le mettre dans le filtre du awaitmessage non ?
Hey tout le monde, je sais pas si vous voyez ce que j'essaye de faire, mais en gros je tente de stocker des infos DANS DES EMBEDS xD
Donc j'ai tenté ça, mais ça serait trop beau https://pic.is-inside.me/oVQjGlcK.png
C'est pour un système qui fonctionne quasiment H24 et que j'essaye d'optimiser au maximum, donc si on peut éviter de remplir la database ou de créer des fichiers JSON, ce serait cool !
Je suis fou ?
Ajouter une nouvelle propriété ne fonctionne pas ni le cacher dans le timestamp
Je confirme c'est triste
tu peux me foutre dans le timestamp
Nan ça essaye de convertir en date je pense et du coup work pas :c
Mais tu pourras pas ajouter un nouveau champ comme ça ce qui est normal en soit
Oui mais j'aurais essayé xD
Ah oui fous le dans le footer sinon
Je tente ailleurs
Comme dans #suggestions
Oui mais on le voit :c
ewi
AHAAHAHAH
C'est exactement ce que je veux faire
Mais je compte utiliser ce système pour un système de vérifications, et donc ça serait plus pratique de le cacher, si j'y arrive je vous dit, sinon tan pis -> footer
Ah les enfoirés, je crois qu'ils delete tout ce qui ne s'affiche pas 
work pas non plus https://pic.is-inside.me/iX7vaZd9.png
Bon bah RIP xD

c’était sur
Tu passes par l’api de discord qui doit forcément checker chaque champs que tu envoies pour vérifier si il est conforme ou autre
Sinon c’était vraiment fait avec les pieds 
Oui xD
Bonjour j'ai un problème
Bout du code :
const SetChannel = member
const response = await SetChannel.awaitMessages(filter, {max: 1, time: 60000, errors: ['time']});
Erreur :
TypeError: SetChannel.awaitMessages is not a function
Tu peux pas awaitMessages sur un membre
Ca doit être sur un channel !
ha et je peut pas faire pour que sa soit en mp ?
member.send("patata").then((message) => {
message.channel.awaitMessages(filter, {max: 1, time: 60000, errors: ['time']})
J'ai un problème avec mon système d'invitation (je stock toute les invitations dans le fichier invites.json)
Voici le code :
const invites = {}
const guildSupport = client.guilds.cache.get("681855957441183755");
let logsInvites = require("../../invites.json");
guildSupport.fetchInvites().then(guildInvites => {
invites[guildSupport.id] = guildInvites;
const invite = guildInvites.find(i => logsInvites.get(i.code).uses < i.uses);
L'erreur :
UnhandledPromiseRejectionWarning: TypeError: logsInvites.get is not a function
Est-ce que quelqu'un connait une autre méthode pour .get ou régler le problème ?
Tu n'utilises pas bien le find, en fait il faut que ça soit comme dans un if une comparaison
Du coup pas sûr que tu puisses get dans logsInvites, mais plutôt tu dois faire un autre find
Ah mais non c'est un fichier JSON !
Je peux voir la structure du fichier please ?
Bonjour,
J'aurais besoin de vos connaissances,
Actuellement mon bot change un embed tout les 5 seconde, qui indique le statut de mon serveur.
J'aurais besoin de quand le serveur gmod et entrain de s'éteindre ( voir image ou y'a marqué Stoping ) que le bot envoi un message en dessous avec la mention d'un rôle prédéfinis, et qu'il supprime se message dans les 10minutes ou 5minutes qui suis
Et de la même chose quand il démarre
Merci de vos réponses
Mentioner moi svp si vous pouvez m'aider..
@keen narwhal
Ui ?
C'est drôle ?
Oui très
:|
@cyan iron par hasard, tu sais pas comment je pourrait faire pour le message du dessus ?
Tu sais comment savoir si ton serveur est OFF ?
Ou c'est ça que tu cherches
C'est pas très clair
Alors, je vais mieux expliquer
Si tu sais, je peux t'aider, si tu sais pas, je peux rien faire désolé
Je voudrais que quand le serveur s'arrête donc que quand y'a l'embed Stoping, que le bot envoie un message juste en dessous de Lembed avec une mention de rôle plus un message disant que le serveur s'est arrêté et de même quand le serveur s'allume, je peux t'expliquer vocal si tu comprend pas ^^
Et que en suite il supprime le message en dessous de l'embed 10m après
@cyan iron du coup oui il sait quand le serveur est off
@keen narwhal tu rajoutes juste une condition si le serveur est off d’envoyer un second message
@half osprey on delete les messages automatiquement qui contiennent une invitation discord
Ok d'accord, donc oui du coup t'as juste à faire un channel.send je comprends pas :/
D'accord tu a un code si sa te dérange pas ?
Et pour supprimer le message 10 après ?
10m* après ^^
tu .send un nouveau message, et tu .then dessus pour ensuite message.delete(duration) par exemple
Oula, je sens qu'il va avoir des erreur xD
Après si le bot crash avant les 10 minutes faudrait que au démarrage tu fetch les messages du channel et que tu les supprimes tous sauf le principal
Y'a pas de raison qu'il crash, enfin je pense
on sait jamais
Sa te dérangerai de vocal juste pour éviter que je niq#e tout le code
En gros :
"guildID": "681855957441183755",
"code": "yYbnD6YrEy",
"temporary": false,
"maxAge": 0,
"maxUses": 0,
"inviterID": "295129219426680833",
"targetUser": null,
"targetUserType": null,
"channelID": "708082687331795037",
"createdTimestamp": 1612202770108,
"url": "-",
"expiresTimestamp": null
}
]```
C'est tout le fichier ça ?
Dans ce cas tu peux delete les [, ça sert pas à grand chose si tu rajoutes rien après
Sorry je suis dehors là donc je peux pas
@half osprey
Non c'est que une des invites
Ok, mais je peux en voir 2 ou 3 alors ?
Ha tkt 🙂
"guildID": "681855957441183755",
"code": "rBBrGgTmcx",
"temporary": false,
"maxAge": 0,
"maxUses": 0,
"inviterID": "402042342627999744",
"targetUser": null,
"targetUserType": null,
"channelID": "708285634720170075",
"createdTimestamp": 1612729316011,
"url": "https:// rBBrGgTmcx",
"expiresTimestamp": null
},
{
"guildID": "681855957441183755",
"code": "yYbnD6YrEy",
"temporary": false,
"maxAge": 0,
"maxUses": 0,
"inviterID": "295129219426680833",
"targetUser": null,
"targetUserType": null,
"channelID": "708082687331795037",
"createdTimestamp": 1612202770108,
"url": "https:// yYbnD6YrEy",
"expiresTimestamp": null
}
]```
@cyan iron, tu est dispo pour que tu m'aide apres avoir aidé Yphar ? ^^
Oui si tu veux
Merci ^^
Dans ce cas, tu peux vraiment delete les [ ]
Ah mais non
Attends 2s
Tu veux rechercher dans ton JSON ?
Oui
bah t'as qu'à faire une boucle
Bah non y'a mieux
Il met en nom le code
{
"rBBrGgTmcx" : {
"guildID": "681855957441183755",
"temporary": false,
"maxAge": 0,
"maxUses": 0,
"inviterID": "402042342627999744",
"targetUser": null,
"targetUserType": null,
"channelID": "708285634720170075",
"createdTimestamp": 1612729316011,
"url": "https:// rBBrGgTmcx",
"expiresTimestamp": null
},
"yYbnD6YrEy" : {
"guildID": "681855957441183755",
"temporary": false,
"maxAge": 0,
"maxUses": 0,
"inviterID": "295129219426680833",
"targetUser": null,
"targetUserType": null,
"channelID": "708082687331795037",
"createdTimestamp": 1612202770108,
"url": "https:// yYbnD6YrEy",
"expiresTimestamp": null
}
}
Voilà
Tu peux même
Je peux pas le changer parce que c'est une génération automatique
Comme ça tu fais Change ça dans ce cas
En vocal mp, ou sur le serveur ? ^^
Je vais devoir déco déso :/
Sinon tu fais juste un .find @half osprey
Pas besoin de le foutre en objet si ça te dérange, juste un find et puis voilà
faire une boucle c’était en 2014 ça 
On peut faire un .find dans un JSON ? 
client.on("message", function (message) {
if (State === 'on') {
client.channels.get("812698800622796850").send("@Notifications status serveur { Gmod }, Le serveur démarre !")
.then(msg => {
msg.delete(6000)
})
}
})```
@cyan iron @slim anvil, le code et bon comme sa ?
je suis pas sur x)
test tu verras
Bah oui pourquoi tu pourrais pas ??
si tu le parse avant tu auras un tableau ou un object
Faut que tu mettes ce code au meme niveau que l'embed qui gère le statut pour avoir accès au State
car là tu es pas dans la meme scope donc tu auras pas accès a cette variable, sauf si elle est global mais g-d-doutes
Fonctionne toujours pas 😭
On peut m'aider svpp
En fait il faut prendre le nombre d'utilisations des invites avant l'arrivé du membre et de comparé avec le nombre d'utilisations des invites après l'arrivé du membre pour trouver quel invite a été utilisé
Bonsoir, j'ai un petit soucis avec mon code si dessous :
client.on("message", message => {
if(message.channel.type === "dm"){
if(message.content == prefix+"candidature"){
if(message.author.bot) return;
if(message.content.length >= 1024) return message.author.send("**×** Ton message doit faire moins de 1024 caractères ");
var msg = message.content.substring(12)
if(msg === "") return;
var embed = new Discord.RichEmbed()
.setAuthor('Candidature')
.setThumbnail('https://cdn.discordapp.com/app-icons/692211367595474955/b3b51ec7db655b1a46976ff4d14a8318.png?size=256')
.addField(`Candidature :`, `${msg}`)
.setTimestamp()
.setColor(0x1770c9)
client.channels.get(candiatureId).send(embed)
};
};
})
Mon (if(message.content == prefix+"candidature")) ne marche pas, en gros en faisait -candidature [candidature] en mp du bot rien ne se passe, si j'enlève la ligne n'importe qu'elle message marche
Auriez vous une idée ? (sa fait longtemp que je n'est pas fait de bot, je suis rouillé)
client.channels.cache.get
message.content
Pas besoin du .substring je pense
Après la comme ça c’est compliqué
@keen narwhal
if(message.content == prefix+"candidature")
la tu vérifies que le message envoyé = -candidature seulement donc si toi tu mets autre chose après forcément ce ne sera pas bon
if(message.content.startsWith(`${preix}candidature`)) {
// code block
}
Bonjour, je pourait avoir un code hyper simple pour que mon bot supprime les invite discord svp, merci de votre aide ^^ ( me mentionner si vous pouvez m'aider ) ^^
@keen narwhal il faut que tu utilises une regular expression 👍
Regular expressions are patterns used to match character combinations in strings. In JavaScript, regular expressions are also objects. These patterns are used with the exec() and test() methods of RegExp, and with the match(), matchAll(), replace(), replaceAll(), search(), and split() methods of String. This chapter describes JavaScript regular ...
Voilà
D'accord merci ^^
La documentation MDN
Super merci beaucoup
J'ai 2h d'etudes je me fait chier donc si quelqu'un a besoin d'aide, I'm here
Hier tu m'avais dit que tu pouvais m'aider xD
👀
Pour le moment le code donne sa
Mais ne fonctionne pas °-°`
Ui mon pc fait une mise à jour Windows ☹️
D'accord
Avec le fetch t'es obligé de faire un then
Donc relou
Dans ton if state === off
Tu met ça
client.channels.cache.get('ID').send("le serv est off!")
Tout bêtement
State = 'En-ligne ✅';
Color = '#00FF00';
} else if (State === 'off') {
client.channels.cache.get('ID').send("le serv est off!")
State = 'Hors-Ligne ❌';
Color = '#FF0000';
} else if (State === 'stopping') {
State = 'Arrêt ❌';
Color = '#FF0000';
} else if (State === 'starting') {
State = 'Démarrage 🚀';
Color = '#FFFF00';
}
/*
client.channels.fetch("812698800622796850").send("@Notifications status serveur { Gmod }, Le serveur démarre !").then(msg => {
msg.delete(6000)});```
Comme sa ?
Je vais essaye
Si tu ne comprends pas et que tu copies bêtement ça sert à rien :/
Je comprend vaguement
Il crash
D'accord merci beaucoup ^^
Tu t'es trompé d'ID sûrement
Alors soit je suis con ou con tu choisi ^^ xD
T'as vraiment laissé " ID " PTDRRR
😐
Et encore je peux dire Merci a ftnl, d'avoir détecté son spam qui a supp des message °-°
Et oui xD
Ptdrrr
@cyan iron faut faire quoi ducoup ?
Je veux qu'il envoie qu'un message et qu'il le supprimer 10m après
Tu peux faire un interval et toute les 10 minutes il supprime ton message
Bah le hasPermission et null mais je comprend pas pourquoi
alors normalement c'est bien sur le <GuildMember> mais message existe bien aussi ?
Yes tu a une piste pour le faire ? :/
S'il te plait ^^
Normalement yep ^^ (dsl je suis en cours de math donc j'ai prit du temp avant de répondre)
Je te laisse chercher par toi même
j'ai fait mais j'ai une erreur 😦
pour quoi tu fait une variables var ?
Internet :/
Je vais te send en mp une setInterval simple ^^
Super merci ^^
tu as log message pour voir si il existe ?
Faut que j'install nodejs et que je setup tout car j'ai reboot mon pc il y à pas longtemp
Et le prob c'est que il es 10:10 donc dans 10 minutes je dois aller en sport
Donc je sais pas si j'aurai le temps

logiquement c'est sur le member donc message.member
log juste message, puis message.member et tu verras direct si c'est okay ce sera le plus simple
Alors svp
J'ai une erreur que j'arrive pas a resoudre pouvez vous m'aider voici le code :
if (State === 'on') {
var interval = setInterval (function () {
client.channels.cache.get('812698800622796850').send("( test ) le serveur est en ligne !");
message.delete({timeout: 600000});
});
State = 'En-ligne :white_check_mark:';
Color = '#00FF00';
} else if (State === 'off') {
var interval2 = setInterval (function () {
client.channels.cache.get('812698800622796850').send("( test ) le serveur est arrêté !");
message.delete({timeout: 600000});
});
State = 'Hors-Ligne :x:';
Color = '#FF0000';
} else if (State === 'stopping') {
var interval3 = setInterval (function () {
client.channels.cache.get('812698800622796850').send("( test ) le serveur est entrain de s'arrêté !");
message.delete({timeout: 600000});
});
State = 'Arrêt :x:';
Color = '#FF0000';
} else if (State === 'starting') {
var interval4 = setInterval (function () {
client.channels.cache.get('812698800622796850').send("( test ) le serveur est entrain de démarrer");
message.delete({timeout: 600000});
});
State = 'Démarrage :rocket:';
Color = '#FFFF00';
}```
message is not defined
car tu message.delete() mais tu le definis nul part
@half osprey tu peux me reexpliquer ton soucis spt
@keen narwhal tu peux faire un .then sur le .send
comme ca tu pourras récupérer le message envoyé puis le .delete()
Si tu veux un conseil essayé de revoir les bases @keen narwhal pour apprendre à mieux gérer tout ça 😉
Tu vas voir que ça va être plus simple pour toi
client.channels.cache
.get('812698800622796850')
.send("( test ) le serveur est en ligne !")
.then(message => {
message.delete({timeout: 600000})
})
si je dis po de connerie
je test sa imediatement enzo et je te dirait ^^
Yep c'est ça
if (State === 'on') {
setInterval(() => {
client.channels.cache
.get('812698800622796850')
.send("( test ) le serveur est en ligne !")
.then(message => {
message.delete({timeout: 600000})
})
})
}
et ensuite tu fais ce qu'il faut pour si il est off ou autre
ok, je test merci beaucoup
Mais a quoi sert l'interval enfaite
ouais fin le setInterval c'est justemement pour éxécuter une action toutes les x secondes 😂
no
😢
effectivement il spam °-°'
Comment on fait pour lui dire de l'envoyé qu'une fois ?
let status, title, color
switch (State) {
case 'off':
status = 'le serveur est arrêté'
color = '#FF0000'
title = 'Hors-Ligne :x:'
break;
case 'stopping':
status = 'le serveur est entrain de s\'arrêté'
color = '#00FF00'
title = 'Arrêt :x:'
break;
case 'starting':
status = 'le serveur est entrain de démarrer'
color = '#FFFF00'
title = 'Démarrage :rocket:'
break;
default:
status = "Le serveur est en ligne"
color = '#00FF00'
title = 'En-ligne :white_check_mark:'
}
client.channels.cache
.get('812698800622796850')
.send(status)
.then(message => {
message.delete({timeout: 600000})
})
tiens ca évite le code redondant
Je modif tout le code par se code
sa je vire
Ouais le var Color aussi
car je l'ai define plus bas donc pas de soucis
c'est un sacré bordel tout ça
Tu est dispo vocal pour un partage ?
no sorry je suis au taff 😦
Meme si tu parle pas ? x)
tu fait dans un ecrit
sa donne sa
je lance le bit
bot je te dit
Crash
.setColor(Color)
ReferenceError: Color is not defined
Color = ?
Yes faut que je mette une couleur
bah oui du coup
je t'ai dis de delete color
ben je l'ai dellete
ya que celui la
dans ton .setColor(Color)
met .setColor(color)
regarde juste l'erreur c'est bien indiqué
hello, je suis un ptit peu embêté car je n'arrive pas à trouver la propriété JS qui me permet de trouver l'endroit de ma section sur la page qui ferait que quand je clique sur le bouton, mon scroll descend jusqu'à ma section qui fait 100vh, merci
ups c'est pas le bon screen
En vrai @fathom jay te fait pas trop chier avec du JS pour ça
joue avec les encres html et un smooth scroll
scroll-behavior: smooth
sur ta div ou ca doit aller tu mets par exemple un id="section_1 et sur ton lien href="#section_1
Je te fais ça dans une heure
Y'a plus d'erreur mais il spam toujours
a chaque requete de l'api
qui est de 5 seconde
Ah bah oui moi je sais pas après comment est fait le code qui contient tout ça
tu dois avoir un interval sur ta requête principal donc oui ca reste logique en soit
Et on peut faire quoi quand c'est comme sa x)
c'est sa, j'ai une requete api toute les 5 seconde
Bah le truc je vois pas trop de logique a ton truc
ah oui je me complique la vie pour rien 0_O, merci Enzo
mais pourquoi t'envoies un message ? et pas plutôt tu modif le title de ton embed ? ou ton field
car je veux metre une mention normalement
un peu pété mais comme tu veux
Il peux juste pas l'envoyer qu'une fois ?
bah normalement ça l'envoi qu'une fois mais ton truc doit être mal fait
nop pas mp
ok
je te donne via un truc de mon hebergeur
Tu vois qu'elle que chose?
j'ai supp
dit moi si tu en a besoin
@keen narwhal c'est juste que tu fais un interval toutes les 5 secondes ou ta requete est rappelé, donc forcément le code de ce message aussi
Il faudrait a la limite venir voir si il y a pas deja ce message d'existant mais bof car toutes les 5 secondes ca va spam requete c'est pas ultra dingue
J'ai pas compris
Il modif l'embed toute les 5s, apres faudrai faire en sorte qu'il n'envoi pas le message tout les 5s aussi
Bon @slim anvil j'abandone le truc, je vais faire en sorte que quand on fait !statuson bas il envoie le message
J'ai un problème avec mon système d'invitation
Voici le code :
const invites = {}
const guildSupport = client.guilds.cache.get("681855957441183755");
let logsInvites = require("../../invites.json");
guildSupport.fetchInvites().then(guildInvites => {
invites[guildSupport.id] = guildInvites;
const invite = guildInvites.find(i => logsInvites.get(i.code).uses < i.uses);
L'erreur :
UnhandledPromiseRejectionWarning: TypeError: logsInvites.get is not a function
Le invites.json :
[ {
"guildID": "681855957441183755",
"code": "rBBrGgTmcx",
"temporary": false,
"maxAge": 0,
"maxUses": 0,
"inviterID": "402042342627999744",
"targetUser": null,
"targetUserType": null,
"channelID": "708285634720170075",
"createdTimestamp": 1612729316011,
"url": "https:// rBBrGgTmcx",
"expiresTimestamp": null
},
{
"guildID": "681855957441183755",
"code": "yYbnD6YrEy",
"temporary": false,
"maxAge": 0,
"maxUses": 0,
"inviterID": "295129219426680833",
"targetUser": null,
"targetUserType": null,
"channelID": "708082687331795037",
"createdTimestamp": 1612202770108,
"url": "https:// yYbnD6YrEy",
"expiresTimestamp": null
}
]```
Est-ce que quelqu'un connait une autre méthode pour .get ou régler le problème ?
Ce que je veux faire : prendre le nombre d'utilisations des invites avant l'arrivé du membre et comparer avec le nombre d'utilisations des invites après l'arrivé du membre pour trouver quel invite a été utilisé (celle qui a eu une utilisation en plus)
Comme nous l'a si bien dit notre cher Enzo, on peut faire un .find dans un fichier JSON :o
Je t'avoue que je n'ai pas encore essayé, mais si tu tente de faire un logsInvites.find() ça peut fonctionner j'imagine, je tente pour voir
Je te dis quand j'ai essayé !
Faire un find dans un find ?
ui
ton .get il sort de nul part
const invite = guildInvites.find(i => logsInvites.find(inv => inv.code === i.code).uses < i.uses)
en gros après fait des vérifications etc de si ca existe bien
Et oui y a pas de raison de pas pouvoir, une api peut te faire un retour en json, donc ca revient au même 😄
par contre bien entendu il faut le JSON.parse() avant qu'on soit d'accord sinon je vous ban 
je sentais venir la question
j'ai eu raison ?
Il sort d'où le i ?
Ah non pardon
J'ai mal lu

C'est une variable
Tu peux l'appeler prout
Ou GCA
const invite = guildInvites.find(gca => logsInvites.find(inv => inv.code === gca.code).uses < gca.uses)
Oui j'avais compris mais j'avais pas vu le premier find
oki pourtant c'était le tient de base
Oui mais j'ai regarder trop vite
Ça va là OH xD
Il y a moyen de faire +1 au nombre d'utilisation de l'invite ?
On peut modifier que le nombre d'utilisations de cet invite ?
Faire ça où dans le JSON ?
Modifier pour l'invite dans le JSON
Avec le module FS
Enzo je t'ai vu delete ma réaction 👀
Enzo je t'ai vu delete ma réaction 👀
Bref, déjà tu prend ton fichier, et tu le récupères comme ceci ( donc avec le JSON PARSE )
logsInvites = JSON.parse(fs.readFileSync(`./invites.json`, "utf8"));
Juste invites.json xD
Ok ok xD
Ensuite, tu vas venir modifier ton truc, donc tu vas déjà prendre ce qui t'intéresse et le modifier
Alors vu que je fonctionne pas du tout comme toi pour les .json, je vais tenter un truc, j'espère que quelqu'un pourra me confirmer
Du coup tu prends ton logsInvites, et tu prend la valeur que tu souhaites modif
Hmm....
Pourquoi stocker dans un JSON?
xD
Suffit de stocker dans le cache xd
Une db enmap
Il veut stocker les invites
Car si on récupère chaque fois, c'est que les invites actuels, je veux aussi les invites qui ont expirés
Oui mais si il débute c'est plus simple, et puis c'est utile le JSON :)
Le truc c'est si le JSON se fait trop "call" bah...Il a mass chance de se faire corrompre
Oui, mais pas pour une db
Le mieux c'est du enmap
Simple, puissant et reste local
Le problème c'est que généralement le bot jongle entre mon pc et ma machine
Après ArviX a raison @half osprey si ton bot gère trop d'invites en même temps le JSON risque la corruption
Bah alors le plus simple c'est une db MySql
Dans ce cas
ah !
Car c'est la même des 2 côtés
Attends
i.inv++
ça incremente de +1 auto
Oui mais je sais pas comment faire autrement, c'est la solution que j'ai trouver
Y'a un méga beau gosse qui a fait un tuto
@half osprey Voici comment use une db enmap...
//npm i enmap
//nmp i better-sqlite3
//Dans le dossier du bot crée un dossier database
//Puis crée un dossier avec le nom de la db exemple: guilds
//En haut de votre code
client.guildsdb= new enmap({
name: 'guilds',
dataDir: './database/guilds/' //chemin d'acces du dossier
});
//Dans l'évent ready
await client.guildsdb.defer
//Avant d'exploiter les données verifier que le serveur est dans la db
client.guildsdb.ensure(guild.id, {
_id: guild.id,
prefix: ">",
lang: "fr"//etc
});
client.guildsdb.get(guild.id).prefix//Pour récuperer la donné il faut faire .cequevoussouyhaiter
//Pour modifier une donné
const data = client.guilds.get(guild.id);
data.prefix = "!"
client.guildsdb.set(guild.id, data);
//Voilà tout
Mdrrr
Xdd
J'ai galéré dessus...Genre la reconnaissance faciale buggais
Maintenant y a juste des problèmes visu
Mais ca c'est pas grave
:o
Du coup @half osprey dans ton cas, il faut que utilises plutôt MYSQL
Arrête de spam ton tuto mdrr
Tu vas voir c'est simple, efficace, et une fois que t'as compris tu vas faire des miracles avec
Super le mysql, un petit problème, si je veux en avoir un je dois payer une machine non ? Parce que mon bot je l’héberge sur ma raspberry
Non pas obligé
Ou je peux faire un mysql sur ma raspberry
Suffit d'installer MariaDB sur ton raspberry
Ou je sais pas comment
Normalement oui
C'est du linux
Donc comme sur tous les VPS
Quasi tous
Le cas de la base de données c'est bien mais ça se trouve dans son cas il y en aura juste pas d'utilité non plus
Le mieux c'est de stocker dans le cache
Si son discord est pas destiné à forcément recevoir un tas de personne, et que c'est bien fait le JSON suffit largement
Oui...Mais faut voir pour le future xd
Oui mais justement c'est ça qu'il faut savoir, c'est un gros serveur que t'as @half osprey ?
moi et mon bot à 200 serveurs sur une db en JSON
bruh
Justement mon but serait d'avoir du monde 
Combien d'utilisateurs ?
Bah....Le plus "futur proof" c'est du MySQL
Si ton système d'édition de JSON tu le fais bien encore une fois tu auras pas de corruption c'est toujours pareille
Pour l'instant on en a 50... xD
Ah !
utiliser du mysql ne garantit pas aucun bug lol
Euh
Suffit de bien faire les choses et tout ce passe bien btw 
Oui, mais permet une meilleur stabilité que du JSON h24 edit
Faut vraiment être un boulet pour avoir une corruption quand même
Déjà corrompu une db JSON et une db enmap
Parce que t'utilises les bases de données pour un minimum wailrone
Oui pour un bot Discord quoi
Avec un bot Discord tu peux pas trop corrompre je pense pas, ou du moins j'ai jamais réussi à le faire xD
Après si il a l'envie oui tant qu'à faire fait le avec une base de données que ce soit sql ou nosql
au moins t'apprendras des choses @half osprey

Moi c'était la db de prefix en JSON
xd
Par contre fun fact, @deep torrent doit s'en souvenir, j'ai déjà fail une requête SQL et j'ai clear toute l'économie de mon bot 😂
Oui mdrr
Donc à la base je vous rappelle que c'est pour m'AIDER pas pour débattre xD
Bah ton truc fonctionne en JSON ?
Pas faux
Bah j'ai pas pu essayer
Si oui et que tu as envies passes avec une base de données
J'ai pas fini de lui expliquer l'autre gland est arrivé 😂
Parce que j'essaie de suivre ce que vous racontez
ArviX fait le dashboard du bot stp 
...
J'ai une vie quand même
Fait le stv
Bref, déjà tu prend ton fichier, et tu le récupères comme ceci ( donc avec le JSON PARSE )
logsInvites = JSON.parse(fs.readFileSync(`./invites.json`, "utf8"));
FIN DU DÉBAT JE FAIS MYSQL
oui mais déjà fais le fonctionner en JSON
oui
histoire de comprendre la logique
Oui Enzo a raison, au moins tu pourras réutiliser
J'avoue
Parceque bon tu vas pas non plus tout stocker en MYSQL
Tu vas en avoir besoin un jour du JSON et tu vas suer donc tu seras bien content de le savoir
Sur mon bot j'ai d'autres trucs stocké en json
Tkt
Mais en gros déjà find tes uses
Je vais me débrouiller comme on dit dans le milieu, c'est la rue la vrai
Perso sur mon github
J'ai un tuto comment faire une db JSON
++
@half osprey https://github.com/LordAlex2015/tuto-bdd/tree/json
Ca date un peu..
Donc c'est pas opti
Mais c'est fonctionnel
Merci je vais essayer
Personnellement j'utilise plus le JSON...Sauf pour des données fixe...Comme un config.json
Avec le token du bot etc
^^
Comment je fais pour faire une variable avec ça de stocké dedans :
{"yYbnD6YrEy": {
"guildID": "681855957441183755",
"code": "yYbnD6YrEy",
"temporary": false,
"maxAge": 0,
"maxUses": 0,
"inviterID": "295129219426680833",
"targetUser": null,
"targetUserType": null,
"channelID": "708082687331795037",
"createdTimestamp": 1612202770108,
"url": "-yYbnD6YrEy",
"expiresTimestamp": null
}}
À partir de la variable invite qui contient :
{
"guildID": "681855957441183755",
"code": "qDZHg8Eyuv",
"temporary": false,
"maxAge": 0,
"maxUses": 0,
"inviterID": "402042342627999744",
"targetUser": null,
"targetUserType": null,
"channelID": "727959820371755009",
"createdTimestamp": 1613335721143,
"url": "-qDZHg8Eyuv",
"expiresTimestamp": null
}```
Invite contient le deuxième truc
Et je veux faire une variable qui contient le premier
Comment tu fais pour inclure la db JSON?
Bah tu fais quoi pour afficher le message au dessus?
Une variable
C'est quoi comme event?
Invitecreate
Quand une invite est crée je la récupère et je la met dans mon json mais avec le code en "titre"
Tout fonctionne sauf le truc pour trouver comment mettre en "titre"
Non
Ah...
Celui du github ?
Parce que il y a rien dedans
Bah si xd
Pour stocker une date d'anniversaire ?
Oui mais c'est pas ce que je veux
Mais c'est le même principe
Faut pas chercher le code
Mais chercher un code similaire qui fait +- ce que tu veux et que tu vas adapter
T'inclus donc comment t'as base de donnée en JSON?
J'ai cru que tu stockais id, date pas id:{date} :)
PS: j'ai fait une tuto comment use une db enmap sur g-ca.fr, mais faut que le staff verif
"cbKRPKY": {
"invite": {
"guildID": "681855957441183755",
"code": "cbKRPKY",
"temporary": false,
"maxAge": 1800,
"maxUses": 0,
"inviterID": "295129219426680833",
"targetUser": null,
"targetUserType": null,
"channelID": "708082687331795037",
"createdTimestamp": 1614027145357,
"url": "-cbKRPKY",
"expiresTimestamp": 1614028945357
}
}
Ça me donne ça
logsInvites[invite.code] = {
invite
}
J'ai trouvé je suis bête
Ça marche merci
Dr
Bonjour, qu'elle qu'un aurai une idée ?
** if(!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send("Vous n'avez pas la permission d'utiliser cette commande.")
^
TypeError: Cannot read property 'hasPermission' of null
**
Message: -infra
Member: null
Comment régler le member = null ?
message.member n'est jamais null....Sauf si dans des DM
Bah justement c'est pas en Dm
Hmm...
Bah alors...Ton .hasPermission n'est pas valable
Je peux pas plus t'aider
J'utilise plus discord.js
Je comprend vraiment pas pourquoi :/
@cyan iron
@deep torrent
@cyan iron
C’est message.author non ?
Je peux try mais normalement non
@keen narwhal console log ton message, ça vient de là je pense
Je pense que tu exportes mal ton message et que message = client une connerie du genre
Console log de mon message: Message: -infra
oui mais bon
c'est pas grave x)
Un DDOS va le faire down xd
Si sa t'aide à te sentir mieux x)
x) un petit bypass ovh
Normalement la dessus je suis assez safe
Oracle VM => Start ParrotOS
T'as console log ton message ?
ParrotOS ❤️
**Message: -infra
**
Kali buggait
Le console log de mon message c'est **Message: -infra
**
T'es pas censé avoir ça, t'es censé avoir le message avec author, member, etc
Yop
Bah
Donc je pense que ma théorie est validée
Zebi c'est quoi ça
😂
Lubuntu xD
Je lui ai déjà dis tout à l’heure concernant le log il cherche pas vraiment à comprendre pourquoi
18.04 il me semble
C'est quoi ce truc
Montre comment t’as fais ton console.log Keysex
Niveau UI c'est pas ouf ton truc
Oui ptdr
Ubuntu de base est mieux
Yop
Attendais xD je dois cherché mon screen
bah fais-en un nouveau
Remonte dans ton code
Jusqu’à ou ?
En haut pour voir
Juste avant le client.on
Car d'après ce que je vois tu fais avec plusieurs client.on
De même event
Tout en haut
T’as combien d’avant message ?
;-;
D’event *
Ok donc on a trouvé la source du problème
Tu veux un code propre? Utilise le handler ArviX, le meilleur handler au monde..
Je sais pas je dirai 4 ou 5
😂
aie
Je voulais faire par event handler mais j'ai eu des soucis
Justement il son pas un dans l'autre
Pas ouf
Tu veux un handler pas simple, mais classe, check mon github..
J'en fait trop? je crois bien 😂
Ça change pas grand chose
Bah justement non xD je vais pas checké un truc complexe si un event handler basic j'ai du mal x)
essaye de remonter ton console.log en haut le if member has permissions
Pour voir un truc plz

Vraiment bizarre ça que ça te renvoie le content direct et pas la collection
T’aurais pas touché à quelque chose ou autre
Eris ?
