#javascript-typescript
1 messages · Page 58 of 1
https://openclassrooms.com/fr/courses/2984401-apprenez-a-coder-avec-javascript/3195501-manipulez-les-chaines-de-caracteres va check ça si ça peut t'aider
jvais regarder ça
Mais comme je disais tu as deja un Pattern pour ta regex existant sur discordJS
pour venir récupérer que les mentions d'un message
Plus simple que de créer ta propre regex pour le faire
pour le coup je me suis jamais penché sur regex donc là je peux plus aidé ^^
ah bah oups
dis nous
Quand j'exécutes la commande pour mettre en ligne mon bot
bah sa fait rien
pq tu fais pas f5 ?
petit question mon bot se mets hors ligne comment je fais pour qui reste en ligne ?
Normalement oui
Faut l'hébergé CSK
petit question mon bot se mets hors ligne comment je fais pour qui reste en ligne ?
@keen narwhal Faut un hébérgeur
a ok ok
merci
t'as npm i discord.js au cas-où ?
@oak turret Oui
bah enfaite ton process se lance
Mais comme tu as 0 log ou quoi
Ta console reste vide
C’est tout
Donc pour y remedier que dois-je faires ?
Bah rien c’est bon enfaite
c’est run
Tu peux écrire dans ta console une fois run ou pas du tout ?
Si tu peux écrire c’est qu’il y a un soucis
faut juste log pour voir tes différents process qui se lancent etc
Si non c’est que le process tourne bien
quand tu fais node index.js
est ce que ensuite ton terminal te laisse la possibilité d’exécuter une autre commande ?
ou juste ton fichier
Ou c’est bloqué ?
Donc c'good
non justement si il peut écrire c’est que non
screen ce que ça fait quand tu lances la commandes ? Sans couper ton terminal
dumb que je suis
@pure raven t'es un god x)
J'avais même pas remarqué
Thx
x)
Lire est primordial dans le code
Faudra que je me revérifie la prochaine fois
Une grosse erreur que j'applique à plusieurs reprise
Il manque un .
... t’aurais pas du lui donné
Faut apprendre à chercher aussi par soi même
Nan mais vous avez pas compris
Je connais l'erreur, c'est juste comme quoi je l'ais encore re-produis
Nice
const array1 = ['a', 'b', 'c'];
array1.forEach(element => console.log(element));
// expected output: "a"
// expected output: "b"
// expected output: "c"
y’a t’il une autre méthode que for each ?
pour exécuter une action sur chaque élément ?
Pourquoi tu voudrais autre chose? C'est fait pour ça
enfin bon alternativement tu peux faire une boucle for of
Coucou, je viens de voir quelque chose qui me fait uen erreur mais je ne sait pas quoi :
(node:7324) UnhandledPromiseRejectionWarning: TypeError: Cannot read property '675644706784542743' of undefined
at Object.module.exports.run (c:\Users\Quentin\Desktop\...\commands\moderation\warn.js:15:29)
at module.exports (c:\Users\Quentin\Desktop\...\events\client\message.js:81:13)
Alors que tout est définie
client.db.warns[member.id].unshift({
reason,
date: Date.now(),
server : guild.name
mod: message.author.id,
});
fs.writeFileSync('./bdd.json', JSON.stringify(client.db))```
Bonjour quand je lance mon .bat il se ferme instantané et je sais pas comment faire :/ ( problème résolue)
Ride le user existe bien ? Car là en gros il te dit que le warns.id_user n’existe pas
c'est règler
donc cette entrée ne doit pas exister dans ta base donc il te peut pas unshift
Ah oki top
@slim anvil l'user existe
c'est lié a son .json que ça a bug
si il existerais pas ça mettrais pas l'id
est ce que quelqu'un sait bien utilisé la technique array ici ?
est ce que ca peut remplacer la méthode ForEach
ça n’a rien à voir
Un array c’est juste le type, c’est un tableau
Ta méthode for each, map etc sert à boucler sur ton tableau
Tu cherches à faire quoi

comment je peux définir des embed dans un fichier json
J'allais poser cette question
coincidence.....
par contre ca fait 20min que je cherche et rien
Tu veux faire quoi exactement
Mais ils seront fixe ?
Ça change pas de contenu en fonction de x ou Y ?
ahh nan
T’as 2 façons de créer un embed , sois avec le richEmbed() ou tu fais ton .setTitle etc
Ou sois en lui passant un objet qui contient le title, fields etc etc
oee ca je vois
Donc tu peux dans ton JSON stocker cet objet
Et l’appeler quand t’en as besoin et l’envoyer
mais je n'arrive pas ^^
La t’as un exemple de comment
Tu fous ce truc dans ton JSON
Et tu l’appelles ensuite ou t’en as besoin
tu n’arrives pas à quoi ? Car c’est large comme mot
ahh ok
et c'est possible avec cette forme ?
c'est celle que j'utilise couramment
Whut
où tu l'as trouvés celle-la
comment ca ?
Bah du coup stocker ce système en JSON non ou tu vas galerer
Alors que l’autre c’est un objet donc c’est parfait
Ça te change rien
ok et comment faut faire avec l'autre comme c'est different de d'habitude
Regarde sur la doc mais le screen que je t’ai envoyé est assez parlant
C’est un objet quoi
j'imagine que c'est pas du tout comme ca
comment on fais pour avoir le rôle débutant dev bot
Oui mais dans Discord.js Ca montre pas commen
t
heu presque ^^
ducoup l'a j'ai mis ca dans mon index : const embed = require('./embed.json');
Si tu débutes de 0, je te conseille de regarder des tutos sur YouTube sur la création de la base de ton bot @keen narwhal
c'est nécessaire ou pas ?
oui pour le récupérer là où tu veux faire ton embed
Quel vidéo youtube genre
si tu as un embed de help, un de bienvenue par exemple tu les appelle welcome, help à la place de embed car tu peux avoir que un seul@non unique
Quel vidéo youtube genre
@keen narwhal Stop force ca deviens du troll
je demande juste
tu me parles de troll
et apres comme j'ai fais ca
Cherche tutoriel création de bot discordjs
Regarde ton pseudo et viens me parler de troll
tu feras embed.test
Pour afficher ton embed
Ah ce sera ça ytzmo je crois
send({ embed: embed.test })
du coup msg.channel.send hein
Ou autre en fonction de comment tu fais ton truc
log ta variable embed pour voir si tu reçois bien toi
Tout*
normal
Ton test t’as mis un tableau d’objet
c’est juste un objet
Ou alors tu fais un tableau d’objet mais du coup faudra faire embed.test[0] ou 1 etc
enlève juste le tableau je pense
heu comment ca ?
Tu as test: [{}]
[] = tableau en JS
{} object
Sauf que là du coup tu lui envoies tout ton tableau donc il trouce pas le .title
donc tu vires juste les []
ah oe et si j'enleve ca mets [object Object]
Faudrait que tu regardes les différents types en JS
log du coup please ton embed screen et envoie
le embed celui que tu require
Non log embed.test please
Tu fais un console.log(embed.test) et screen la réponse dans ta console
@queen ocean
oof le Ping 
y'a un problème, il trouve pas le module
npm i discord.js
...
^^
Ah
Att
Je te conseil de regarder des tut
Tutos*
Wah c'est bon
@queen ocean
y'a un problème
Tu cherches aussi
Tu as un fichier token.json ?
dans ton projet
@keen narwhal du coup ?
Est ce que tu as un fichier token.json ?
nan
Tu l’as trouvés où ton truc là
Bah du coup c’est logique il le trouve pas il existe pas
comment je le fais exister
Tu as pris ton truc ou
re
re
lui
ca me mets ca : /
Là tu prends un truc existant
Pas ouf
Suis un tuto de 0 @keen narwhal
@keen narwhal je t’ai dis d’enlever ton tableau 
Mais comment je fais pour avoirs le token.json
hehe
ca marche ducoup
Dis moi si c’est good now
bien joué
Parfait
comme ca
.....
Là tu as un token.json.txt
C’est ce que je viens de dire
comment je le mets json json
Oui comme un fichier texte
@slim anvil
/!\ Nouveau serveur Discord disponible pour tous: https://discord.gg/jmdwPME /!
Vous désirez apprendre à coder un bot Discord sans aucune connaissance ? Dans cette vidéo, nous allons simplement introduire la série ! Visionnez notre vidéo pour en savoir plus !
[0/??] Introduc...
Regarde un tuto
Comme ca
Ça sera beaucoup plus simple que t’explique ça
Oui bah tu crées ton fichier json de la même manière qu’un fichier texte.... réfléchis aussi un peu
J’ai juste l’impression qu’il troll
Là tu cherches pas de l’aide mais qu’on te fasse tout donc tu vas dans #618846980298375168 sinon tu suis un tuto et tu apprends un peu aussi de ton côté car là tu poses des questions ou vraiment on peut pas te tenir la maison
Moi j'ai 3 trucs
Text
Dossier
Raccourci
Document au format tf
Archive winrar et un autre
j'ai pas de json
Lis, le, message, d’Enzo
Omg
Comme ca ?
C’est lourd là
j'ai une autre question plus compliqué je pense ^^
Azy dit
j'ai pas de fichier json
Oui ytzmo
quand je fais clique droit sur mon bureau
j'ai une liste des serveurs ou sont le bot et j'aimerais avoir un systeme de page j'ai commencé a me renseigner mais je n'y comprends pas grand chose
je trouve interessant le systeme de page avec les réactions si j'arrive je vais bcp l'use
Bah en gros
@slim anvil
?
Tu créer
Et j'écris quoi dedans
@keen narwhal Arrête de Ping h24 et vas regardée un tuto.
y'a rien du tout dedans
et quand je le fais
Ça se passe comment ?
Tu veux qu’on le fasse pour toi ton bot ?
Oui stp
avec des commandes ban
🤣🤣
et mute
C’est chaud..
Stop troll @keen narwhal
trolll pas
je
troll pas
Alors, @keen narwhal. Si je comprends bien, tu veux que quand on appuie sur une réaction ça change le contenue de l’embed ou du message peu importe ?
yes ca change le contenue
avec un systeme de page
En gros, tu dois utiliser la fonction message.edit.. qui va charger ton deuxième embed
Tu as l’évent messagesReactionAdd
Je sais pas si tu comprends, j’explique pas bien
Y'a personne qui veut m'aider
et en footer y'a ca genre
Y'a personne qui veut m'aider
@keen narwhal T’as tout compris
Et à l’évent tu peux edit ton embed mais attention car l’édit d’embed est différent
Tu dois récupérer ton ancien embed et le renvoyer au complet pour l’edit
Je te laisse lui expliquer Enzo
du coup quand tu le récupères tu peux changer les valeurs que tu veux, comme le footer par exemple
Je sais pas si c’est clair
@keen narwhal c’est pas qu’on veut pas t’expliquer mais tu fais 0 efforts si t’as besoin d’un bot c’est #618846980298375168
Non, c’est un count, en fonction de comment tu fais ça mais si il appuie sur + tu ajouteras 1, et si il fais - tu enlèveras 1, ou alors tu gères ça différemment genre dans un tableau et donc ton index sera ta page
par exemple
Hello GCA, j'obtiens cette erreur:
/Users/moi/Desktop/le_bot/node_modules/discord.js/src/structures/MessageEmbed.js:443
.flat(2)
^
TypeError: fields.flat is not a function
Dès que j'appel cette fonction: (avec des infos valides)
let commands = [];
function addCommand(variable, path)
{
let _c = require(path);
variable.addField(`${Prefix}${_c.config.name}`, _c.config.description);
commands.push(_c);
}
// Je l'appel comme ça:
let pull = require(`./commands/${dirs}/${file}`);
addCommand(tabs[pull.config.category], `./commands/${dirs}/${file}`); // Infos valides
(Demandez moi plus infos si besoin)
Merci ^^
On a pas l’error là
et oui les éléments de ma table sont des embeds:
// Ma table (console.log)
{ miscellaneous:
MessageEmbed {
type: undefined,
title: 'Page d\'aide | miscellaneous',
description: undefined,
url: undefined,
color: undefined,
timestamp: null,
fields: [],
thumbnail: { url: undefined },
image: null,
video: null,
author: null,
provider: null,
footer: null,
files: [] },
moderation:
MessageEmbed {
type: undefined,
title: 'Page d\'aide | moderation',
description: undefined,
url: undefined,
color: undefined,
timestamp: null,
fields: [],
thumbnail: { url: undefined },
image: null,
video: null,
author: null,
provider: null,
footer: null,
files: [] },
fun:
MessageEmbed {
type: undefined,
title: 'Page d\'aide | fun',
description: undefined,
url: undefined,
color: undefined,
timestamp: null,
fields: [],
thumbnail:
{ url: 'https://image.flaticon.com/icons/png/512/272/272055.png' },
image: null,
video: null,
author: null,
provider: null,
footer: null,
files: [] } }
ah bon?
Le fields.flat il vient de toi ?
Je suis sur tel compliqué de regarder à droite ou à gauche
Un truc que tu comprendra pas
j'ai trouvé ceci ^^
@keen narwhal
Et ta version discord
t’es sûr ?
attend je regarde
Essaye de mettre à jour ta version node tout simplement
@keen narwhal képasa
Oui AbMilus je te laisse avec zaza
dit moi
index.js ta quoi
et dans token.json ? (remplace le token par d'autre caractère)
j'ai rien dedans
rien du tout ?

haha
@keen narwhal écrit dans token.json
{
token: "ton_token"
}
Mais du coup oui pou la v12 faut aussi upgrade node
Il va vraiment mettre ton token
tu remplaces ton_token par le token de ton bot évidement
@keen narwhal test de modif ca puis lance le bot
C'est bno
t'arrive a lancer le bot ?
pour récupérer le token dans ton fichier index.js tu dois faire :
const config = require('token.json')
bot.login(config.token)
au début ?
le require tu le fais au début oui et le bot.login tu le fais après avoir instancier ton objet client (new Discord.Client)
par rapport a tes screen, ton bot.login(config.token) tu peux le faire a la ligne 12
ligne 3, remplace const token par const config
@queen ocean Et, sincèrement, merci, Tu es la seul personne à vouloir véritablement m'aider, et je t'en suis reconnaissant (malgrès mon manque de connaissance) Tu poursuis celle-ci et c'est pour cette raison que
@queen ocean Et, sincèrement, merci, Tu es la seul personne à vouloir véritablement m'aider, et je t'en suis reconnaissant (malgrès mon manque de connaissance) Tu poursuis celle-ci et c'est pour cette raison que
@keen narwhal On a tous un niveau de patience et de motivation différent ... je ne doute pas que les autres voulaient aussi t'aider mais peut-être effectivement qu'ils ont été découragé par ton faible level mais voila dont panik be monique ils t'aideront peut-être sur ton prochain problème 😉
ta encore des erreurs au lancement du coup ?
Franchement, chapeau
tu le mérites grandement ton rôle (Sans vouloirs dénigre certains)
ha oui ok, supprime carrément ta ligne 3 enfaite j'avais pas vu que tu l'avais mit aussi a la ligne 1
en gros en JS tu peux pas déclarer 2 variables constante (const ta_var) avec le même nom et comme la tu as le même nom à la ligne 1 et 3 il te sort cette erreur
Ouais j'avais pas remarqué
Enfaite, @keen narwhal. Ce n’est pas qu’on ne voulait pas t’aider, seulement, d’aller regarder un tuto pour apprendre à partir de 0, mais tu as fait à ta tête et tu as pris une base déjà faite et continuer d’insister et de ne pas vouloir nous écouter
Ce qui es dommage c'est qu'il ne disent pas quels lignes x Quels lignes etc
Sa serait plus simple
Enfaite, @keen narwhal. Ce n’est pas qu’on ne voulait pas t’aider, seulement, d’aller regarder un tuto pour apprendre à partir de 0, mais tu as fait à ta tête et tu as pris une base déjà faite et continuer d’insister et de ne pas vouloir nous écouter
@keen narwhal Et donc? Tu insinues que je ne t'ais pas écoutés ?
Effectivement
Si TU m'aurais écouté t'aurais sus que j'ai effectuer attentivement ce quoi vous m'aviez proposés
Et à ton avis
Comment j'ai pu l'obtenir ce shema
En regardent le tuto
En le trouvant sur github
il était donc suggéré
Pas en le faisant de toi-même
J'ai dis que je l'avais faites ?
nan
j'ai suivis le tuto
ils ont suggerés de le télécharger
Alors tu apprends pas, si tu ne le fais pas..
ce qui serait plus simple
Ce qui es dommage c'est qu'il ne disent pas quels lignes x Quels lignes etc
@keen narwhal tu as l'info ici ...
de manière général c'est écrit comme ceci : nom_du_fichier**:numero_de_ligne:**numero_de_colonne
Donc la c'est dans le fichier index.js à la ligne 1 et la la colonne 16
Ah bon? J,avais jamais remarqué
Maintenant je sais où le trouver, thx
1:16 ?
genre ligne 1 ET ligne 16 ?
Ahhhhhh
D'accooorddd
Et pourquoi ils disent qu'ils arrivent pas à la trouver ?
Le modèle
remet une fois const config = require('./token.json') à la place de const config = require('token.json')
Même si chelou car il devrais le trouver 🤔
la si il a trouvé
c'est un autre fichier qu'il trouve pas
dans le tuto que tu as suivit il parle d'un fichier dbb.json ?
J'vais aller revoir
au pire des pires
au lieux de te déranger, je vais TOUT Refaire le tuto
👌
Y'a pas un sytème de notation
c'est a dire ?
nan rien tkt
y'a probablement pas
genre tu notes le modo/personne qui t'as aidé
(j'pense)
ouaip
Vous savez c'est quoi les lignes de codes pour le clear ?
Car le mien ne marche pas
Personne peut m'aider ?
30 secondes
et soit patient
C'est plutot args 0
Essaie ça
Comme cela ? @keen narwhal
Tout 0
Ping pas, s'il te plait ^^
ok ok
Ca marche toujours pas :/
une idee de comment faire
@keen narwhal ta condition ligne 48
C’est ce qui doit bloquer l’envoi, elle est pas utile, tu peux juste dans celle d’avant rajouter sur l’args 0 qu’il soit bien de type number
une idee de comment faire
@karmic frigate Comment faire quoi ?
sur le discord de meta construct il on fait un server status avec truc comme ca
je pense qu'il et en .lua
J'en sais rien désolé
@karmic frigate
c'est possible avec gamedig
Pour la liste des membres tu le fait via l'array de la liste de membre ect..
merci apo ces se que je cherche 
if (command === "info" ) {
const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
let arg7 = args[1]
if(!arg7) { message.channel.send("send id of a server")
} else {
console.log(arg7)
var server = bot.guilds.cache.get(arg7)
if(!server) { message.channel.send("id is incorrect")
} else {
message.channel.send("id is correct")
}}}```
donc j'essaye de faire une commande pour avoir des infos sur un serveur (ou est le bot bien sur)
avec l'id du serveur mais le message est toujours id is correct meme quand je mets une ID valide
regarde ce que tu renvoie ton server quand tu met un mauvaise id
car c’est peut être juste la condition !server qui est pas bonne y a peut être une valeur de set
Faut prendre l’habitude de faire du débug à log un peu tout pour comprendre d’où peut venir me soucis
fais un console.log de server et montre ce que ça te return
Et l’erreur là elle vient d’où
bah la j'ai mis un ID valide donc je pense que c'est cette partie qui est invalide nan ?
var server = bot.guilds.cache.get(arg7)
car j'ai log mon argument et il étais bien valide
Elle te retourne undefined même avec un bon ID ?
heu bh la que je mette un id valide ou pas j'ai dans ma console un undefined et ensuite TypeError: Cannot read property 'id' of null
screen ton code please car sur tel ton truc c’est pas hyper visible
Tu peux mieux indenter tout ton code car là ça reste assez illisible
au niveau des accolades
aussi
Même pas
Niveau optimisation on peut mieux faire avec des return
oui je me suis fail 2 fois x)
Après @keen narwhal je te conseillerais de partir sur un handler
j’en faisais avant
Parceque si tu fais comme moi et que tu dois passer tout ton bot en handler après c'est la galère
-_-
Salut, j'ai un problème avec mon bot, mais je ne comprends pas https://img.wailronefirelion.fr/bGYODDU.png
Ca ne le fait qu'avec une seule personne
Non je viens de trouver
La personne a bloqué le bot
Mais je ne sais pas comment remédier à ce problème je vais sûrement fait un catch
Je ne pensais pas que le fait de bloquer le bot l'empechait de réagir
oO cst la première fois j'vois cette erreur
idem
c'est possible de configurer un évènement dans le config.json fin par exemple je mets trueou falseet ensuite si c'est trueca m'envoie un message quand quelqu'un rejoins mon serveur (exemple)
genre activer le message d'arrivée ou nan
Je vous conseille de travailler avec une base de données
C'est beaucoup plus pratique
Les fichiers json peuvent se corrompre
j'ai regardé mais c'est compliqué
je rencontre ce probleme pour mes lignes du tempmute
@keen narwhal ?
il te manque ce module
Je le met ou ?
Je le faisais après il y a encore une erreur
C’est vrai que les fichiers json peuvent se corrompre, mais tu sais @cyan iron ta base de données aussi hein lool, si t’as pas des backup auto le jour où ça saute tu perds tout aussi....
Parce que c’est pas fais pour du stockage réellement le json, et car sur une base de donnée tu as moins d’accès aussi pour faire des conneries, contrairement au json où tu as toute la main dessus donc tu peux faire des tests et chier le truc...
oui exactement
Mais le json je l'utilise pour le stockage "immobile" entre guillemets
Par exemple les répliques du bot sont toutes stockées en json
La config ?
Tu peux aussi avoir un .ENV pour le token, accès bdd etc etc comme ça tu peux avoir des config différente pour le dev et pour la prod 🤪
.env 🤔
ui
Je connais pas
Généralement le .env ne se push pas comme ça tu peux avoir des configs différente
Comme des cles API différente par personne, des tokens différent ou autre
Comme ça tu peux faire une diff entre ton local et ta prod. Ça évite de run le bot qui est en prof par exemple sans toucher à la config et oublier de la mettre à jour 
bonjour, j'ai un problème avec mon code
client.on('ready', (user) => {
console.log('je marche')
setInterval(function(){
let cle = JSON.parse(fs.readFileSync("./clé.json", "utf8"));
//let user = cle[user.id]
Object.keys(cle).forEach( c => {
if(Date.now() - c.timeout < 0) {
delete cle[user]
user.send('Votre abonnement est expirée')
console.log('suppression réussite.')
}
})
},9000)
})```
mais moi j'aimerais que genre
le timeout est fini dans clé.json
sa supprime l'id de l'user dans la bdd et la clé
et sur discord ça envoie un mp à l'user
Déjà là tu as fais un interval donc ça va répéter ton action toutes les x secondes c’est ça que tu veux ?
non, ce que je veut c'est qu'il vérifie toute les x secondes si la clé n'est pas expiré
Ah d’acc !
^^'
Du coup c’était oui la réponse 
Je suis sur tel tu peux screen ton code aussi et envoyer ici ? Comme ça je regarde des que je peux
Un jour discord mettra aussi le highlight en mobile 
Le même code que tu as envoyé mais en screen
oki
Je reviens soon
Le timeout dans ton fichier json est égal à quoi ? Tu peux me screen un exemple de clé stp?
Oui vas-y
timeout: 9000 + Date.now()
Et les clés sa va être 50 caractères
pour le moment la seule clé que j'ai faite elle fait 2 caractères xD
Le truc c’est que Date.now ça renvoie quoi déjà
Ça return pas une date en ms depuis le 1er janvier 1900 et quelques la ? pas sûr que ce soit good du coup
Le temps commence le 1er janvier 1970 je sais pas quoi
ouais voilà
Et ce termine la en 2020
La clé est censé duré combien de temps ?
Pourquoi tu fais pas un new Date() ou tu ajoutes 1 mois ?
Donc 9 seconde + l'heure actuelle 50
Et comme ça ta condition serait de regarder si le new Date() est inférieur à timeout
Après ça revient au même tu me diras
Oui
Non du coup juste un new Date() vide
je trouve sa juste plus clair de stocker la date limit en clair et pas en ms
Comment faire pour stocker la date limite ?
c’est pas le contraire du coup ? Faut que ce soit si ton timeout - le date now est < 0 ?
Je sais pas
Je suis pas sûr mais je pense du coup
car si il est inférieur à 0 c’est que le ms actuel est plus haut et donc la clé est plus valable
mais du coup c’était quoi ton erreur exactement enfaite ça va être plus simple haha 🤪
Il doit pas entrer dans ta condition du coup essaye de l’inverser du coup comme j’ai dis
Ça me parait plus logique timeout - date.now() < 0
If (c.timeout - Date.now() <= 0)
et au dessus de ta condition tous juste un console.log avec ta condition
okep
console.log('c.timeout - Date.now() <= 0') ?
Sans les ‘´ du coup
okok
la genre ma clé est active
dans la console sa me met false
sa me spam la console uffed
Faudrait que tu changes ce système d’interval par un système ou ça check juste tous les soirs à 00h par exemple
tu as des modules sur node pour faire ça
yes et du coup ta condition te renvoie false encore ?
Essaye juste d’isoler ton c.timeout - Date.now() dans des parenthèses
If ((c.timeout - Date.now()) <= 0)
Pas sûr mais restons
Testons*
Et tu peux aussi si ça marche pas juste log
c.timeout - Date.now()
Voir le résultat
c'est toujours " false "
if (command === "list") {
let list_Embed = new Discord.MessageEmbed()
.setColor("#2f3136")
.setAuthor(`🚀 Liste des serveurs : [ ${client.guilds.cache.size} serveurs | ${client.users.cache.size} membres ] :`)
.setDescription(`\n${client.guilds.cache.map(a => `- ${a.name} | ${a.members.cache.size}** membres** | ${a.id}`).join("\n")}`);
message.channel.send(list_Embed);
}```
je crois qu'il y a un problème
sur le nombre de membres total
Et du coup quand tu log les sans le <= tu as quoi comme résultats ?
je vais essayer
Des -0 ou des + que 0 ?
Non celui que je t’ai envoyé, je te demande juste du coup de me dire si tu obtiens un resultat négatif ou position ?
positif* correcteur à la con
attend tu as essayé quoi show me ton code
NaN c’est que t’en as un ou tous qui sont des strings
Convertis les en number
Tu fais juste un Number(ici_ta_variable)
c'est à dire
?
client.on('ready', (user) => {
console.log('ENCULER')
setInterval(function(){
let cle = JSON.parse(fs.readFileSync("./clé.json", "utf8"));
//let user = cle[user.id]
Object.keys(cle).forEach( c => {
console.log((c.timeout - Date.now() - 0))
if((c.timeout - Date.now() - 0)) {
delete cle[user]
user.send('Votre abonnement est expirée')
console.log('fuck')
}
})
},9000)
})```
En screen please, screen ton éditeur comme ça c’est bien indente aussi 
Ah oui ok
pense à bien indenter ton code tu t’y retrouveras mieux bg
ok, tu peux juste essayer de faire dans ton console.log :
console.log(typeof c.timeout, typeof Date.now()) please
et tu me montre
ok donc ton c.timeout existe pas, log moi ton cle please
En dehors de ta boucle et screen ton result
console.log(cle) ?
oui
{ '585797058280030228': { cle: 'es', timeout: 1597348160188 } }
Tu devrais pas créer ton json comme ca en ayant en clé l’ID du mec je trouve pas ça clean perso, tu devrais juste avoir un tableau de users avec dedans chaque user { id: xxxxx, timeout: xxxx } comme ça tu auras juste à boucler sur ton tableau
comme ça en plus on pourra gagner de la place ensuite en faisant juste un cle.filter(c => c.timeout - Date.now() < 0) alors que là tu es obligé de passer par un Object.keys etc relou
Montre où tu crées ton user
cle[message.author.id] = {
cle: args[0],
timeout: 9000 + Date.now()
}```
fais juste un cle.push({ id: message.author.id, timeout: même chose, cle: même chose })
Quand je dis même chose c’est par rapport à ce que tu mets déjà
Du coup supprimes ce que tu as déjà dans ton json
tu mets juste un tableau vide dans
[]
pour que le push marche
[] dans ton json
screen ton fichier json du coup et montre ce que tu viens de faire aussi
Je fais aller manger
vais
Oui car du coup faut changer le reste now
Ce que je t’ai envoyé justement
Tu peux faire un :
cle.map(c => {}) et dedans tu reprends ce que tu as dans ton object.keys
c'est à dire je fais comment la ?
cle.map(a => {
Object.keys(cle).forEach( c => {
comme ça ?
cle.map(c => {
c.timeout - Date.now() < 0
delete cle[user]
user.send('Votre abonnement est expirée')
console.log('fuck')
})```
comme ça ?
non mais presque regarde bien la 2eme ligne il te manque ta condition
c.timeout - Date.now() < 0
bah elle est la nan ?
c.timeout < Date.now() < 0
faut faire ça ?
Comme sur l’ancien oui
bah maintenant
c'est user.send
uffed
client.users.cache.get(user.id).send ?
je mets
montre ton truc please que je vois si tout est ok
la il faut qu'il récupère l'id de la personne à qui la clé est expiré
client.on('ready', (user) => {
console.log('ENCULER')
setInterval(function(){
let cle = JSON.parse(fs.readFileSync("./clé.json", "utf8"));
//let user = cle[user.id]
//console.log(typeof c.timeout, typeof Date.now())
cle.map(c => {
if(c.timeout - Date.now() < 0){
delete cle[user]
user.send('Votre abonnement est expirée')
console.log('fuck')
}
})
},9000)
})```
En screen
Tu peux indenter tout bien stp c’est pas hyper lisible
je suis sur l'api dont je peut pas zoumer
Non toujours pas
Attends, je vais te le faire
merci
Good ? @slim anvil
Redéfinis ton user du coup
Yes merci mcduck
Tu l’as commentes
Enfin ce sera toujours pas bon d’ailleurs
je le défini comment ?
Dr 🙂
Je fais devoir y aller mais tu peux du coup rajouter dans ton map((c, key) =>
Et faire un cle.splice(key, 1)
pour ton delete
Sinon @keen narwhal clic droit format document si t'es sur VSC sinon Ctrl alt l sur les ide de jetbrains
je suis sur vps
Mais là je fais devoir m’arrêter là pour ce soir je sors
Pour que le code soit un minimum propre 
Vais*
pas grave vous m'avez bien aidez !
je suis sur vps
?
Je te parle de ton éditeur de code
Pas de ton moyen d'hebergement
T'es sur quoi? PHP storm?
Tu te galères un peu mais bon après y a encore des devs qui sont sur vim
VSCode ❤️
VSCode j’use
Ah ok
je m’en branle de lequel est le meilleur
Ce qui est important c’est ce qu’on produit
Pas l’outil
Je préfère Jetbrains 

Pour du Java pur IntelliJ est plus pratique oui, pour le reste je préfères VSCode
perso j'ai eu une meilleur prise en maina vec intellij
Vas-y je vais essayer de faire un bot discord en Java 
Une bonne lib à conseiller ?
Sinon @keen narwhal tu as juste en gros now à fetch ton user via le c.id et quand tu l’as tu pourras le send
Oh l'fou
Sinon @keen narwhal tu as juste en gros now à fetch ton user via le c.id et quand tu l’as tu pourras le send
@slim anvil j'ai réussi
mais
@humble storm Bonne chance jeune aventurier 😂
sa supprime pas la key
La gestion d’erreur c’est pas mon IDE qui le fait mais mon projet
@opaque parrot Stop spam
Personne n'a de lib Java à conseiller ? 
enlève ton delete je t’ai envoyé le code à mettre à la plage éreintée
je reçois le dm mais la clé n'est pas delete
Place* remonte*
oui
mais
genre
c'est pas que la key 1 qu'il doit delete
c'est toute les clés invalide
donc ça marchera quand même ?
sa supprimera tout ce qui est invalide ou seulement la 1 ?
Oui la clé c’est la clé du tableau
Enfin c’est chaque element enfin t’inquiete
C’est l’élément du tableau à chaque fois
Je sais pas comment t’expliquer mais voilà
show me je pars pas encore
sa supprime pas la key
mais j'ai réussi à réparer
@cyan iron
mais
xd
je vais te goumer xd
Les yeux
désouler
😂
mdr
Pas grave tkt
là ça supprime pas la key tje queen?
Je lisais tranquille et là PAF 😂
Du blanc 😂
Ah oui mais faut rewrite ton json du coup
là ça edit ta variable pas ton json
Regarde pour le coup la doc de fs pour chercher un peu toi aussi
Mais de la même manière que quand tu ajoutes ton user
yes bah tu peux faire pareille
Mais en delete
?
cle.push({ id: message.author.id, timeout: 9000 + Date.now(), cle: args[0] }).delete()
?
Bah pour update
C'est if(cle[c.id]){
id: undefined
cle: undefined
}
Mdr
Je viens directement edit et tout transformé en undefined
non mais là tu veux la supprimer pas l’éditer
Donc tu l’as déjà supprimé
Maintenant tu remplaces ton ancien tableau par le nouveau
Je sors bonne soirée 😉
avec le cle.slice tu supprimes l’élément de ton tableau mais seulement côté js (de ta variable clé)
Maintenant tu dois rewrite ton JSON en lui envoyant ton nouveau tableau cle pour remplacer l’ancien
comment créer un channel avec les permissions en sorte que la personne mentionnée puisse voir et envoyer des messages dans le salon mais everyone ne peut pas le voir
Google it
Yes là si tu cherches tu vas trouver direct
chan.overwritePermissions(message.author.id, {'VIEW_CHANNEL': true, 'SEND_MESSAGES': true, 'MENTION_EVERYONE': false})


avec le cle.slice tu supprimes l’élément de ton tableau mais seulement côté js (de ta variable clé)
Maintenant tu dois rewrite ton JSON en lui envoyant ton nouveau tableau cle pour remplacer l’ancien
@slim anvil bah, j'essaye de m'aider de google mais sa marche pas
genre ce que j'aimerais que sa supprime c'est le timeout l'user id et la clé en gros tout
:/
j'ai ça la cle.splice(0, 3);
sa supprime pas
c’était très bien
ni update
Car tu dois rewrite ton json
Je peux pas être plus précis
Si tu fais un console.log de cle
Tu verras qu’il y est plus
Mais ça va pas edit ton json automatiquement t
ah je comprend pas le rewrite en faite
ah
[ { id: '585797058280030228', timeout: 1597349416665, cle: 'es' } ]
j'ai console log cle en dessous du splice
il y est quand même ? 
console.log(cle)```
je suis pas étonné 
mais après pour le json
je peut faire comment ?
je fais une fonction delete
ou je fais une fonction write
Pourquoi delete
?
function write() {
fs.writeFile("./clé.json", JSON.stringify(cle), (err) => {
if (err) console.log(err)});
}
cle.push({ id: message.author.id, timeout: 9000 + Date.now(), cle: args[0]})
write()```
Toujours en screen 



