#javascript-typescript
1 messages · Page 85 of 1
bonjour j'ai un problème : des que je lance le debogage ca me dit qu'il n'y a pas de debogeur disponible
Du coup il faut faire une API pour l'API si tu veux faire des appels en client
@regal steppeJe te conseille de modifier ton token au cas ou
ah je t'avoue que je suis plutot débutant ducoup je vais aller chercher un tuto
ok j'essaye et je te dit quoi merci ^^
Nan mais tu l'as mis sur ton screen, c'est pas très prudent @regal steppe rien à voir avec ton soucis 😉
ah oui tu n'a pas tord 😅
👍
voila c'est changé merci de m'avoir prévenus ^^
Np
est ce que tu peut m'expliquer brèvement ce qu'un api ?
il ne te parlait pas à toi ^^
ah ok zut ^^
Une API c'est pour communiquer avec un service
Ok mrc ^^
Bonsoir,
Je me permets d’exposer à nouveau mon problème, j’ai réalisé un bot depuis un certain temps qui a pour objectif de calculer une durée précise entre deux commandes qui sont envoyées par le membre. Le problème étant que la nuit, les données soustraites au date.now() actuel sont considérées comme invalide (alors que j’obtiens logiquement la date et l’heure précise en ms), auriez-vous une idée voire besoin d’une partie du code ?
Merci.
@regal steppe toujours besoin d’aide ?
What, Date.now() a peur de sortir la nuit ?
@bold sparrow sûrement 😂😂
Ah bah oui sur MDN c'est précisé
MDRRR
Bientôt on apprendra qu'il fonctionnera sur les mêmes horaires que les fonctionnaires 
😂
Pour le coup ce n'est pas logique que ton Date.now() déconne la nuit
Hello j'aimerais couper le nom de plusieurs fichiers qui sont dans un dossier, j'ai donc ça : javascript //requiring path and fs modules const path = require('path'); const fs = require('fs'); //joining path of directory const directoryPath = path.join(__dirname, '/base/'); //passsing directoryPath and callback function fs.readdir(directoryPath, function (err, files) { //handling error if (err) { return console.log('Unable to scan directory: ' + err); } //listing all files using forEach files.forEach(function (file) { // Do whatever you want to do with the file console.log(file.slice(17)); let newFile = file.slice(17); fs.renameSync(`/base/${files}`, `/base/${files.slice(17)}`) }); });
Mais j'ai cette erreur
Fais un readDirSync plutôt
En quoi veux tu renommer tes fichiers ?
Tu aurais un exemple ?
Chaque fichier commence par ça j'aimerais enlever tout ce qui y'a avant le ^ (inclus)
{file}.split("^")[1]
{file} est une variable générale, je n'ai pas lu ton code donc c'est pas adapté
Juste ce que je t'ai envoyé ça sert à split ton string en tableau, et je lui dit de récupérer la deuxième partie qui correspond à ce que tu veux
Okk merci !
Bonjour,
Comment je pourrais faire pour changer le nom d'un channel déjà existant en discord.js
Car j'ai trouvé plein de truc pour les permissions mais pas changer le nom du channel
let channel: TextChannel|VoiceChannel;
channel.setName("nom");
Tout simplement la méthode setName ?
➡️ https://discord.js.org/#/docs/main/stable/class/TextChannel?scrollTo=setName
Je n'arrive pas car j'ai fait ça mais après il me sort une error
message.channel.setName("nom")
Laquelle ?
Hello, tu es en discordjs v13 ou v12 ?
(node:2580) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'id' of undefined
at Object.module.exports.run (c:\Users\sandr\Documents\AtlanticaBotDiscord\commandes\ticketclaim.js:9:51)
at Client.<anonymous> (c:\Users\sandr\Documents\AtlanticaBotDiscord\index.js:165:33)
at Client.emit (events.js:376:20)
at MessageCreateAction.handle (c:\Users\sandr\Documents\AtlanticaBotDiscord\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (c:\Users\sandr\Documents\AtlanticaBotDiscord\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (c:\Users\sandr\Documents\AtlanticaBotDiscord\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (c:\Users\sandr\Documents\AtlanticaBotDiscord\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (c:\Users\sandr\Documents\AtlanticaBotDiscord\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (c:\Users\sandr\Documents\AtlanticaBotDiscord\node_modules\ws\lib\event-target.js:132:16)
at WebSocket.emit (events.js:376:20)
(Use `node --trace-warnings ...` to show where the warning was created)
<node_internals>/internal/process/warning.js:43
@pseudo hollow
J'ai ça
if(bdd["channelticketopen"][message.author.id]["id"] == message.channel.id){
"channelticketopen": {
"665890800835624971": {
"type": "text",
"deleted": false,
"id": "877824995789783071",
"name": "🔴-arissbalaka",
"rawPosition": 5,
"parentID": "871050627906674699",
"permissionOverwrites": [
"860497208784584744",
"665890800835624971",
"861671951646982154"
],
"topic": null,
"nsfw": false,
"lastMessageID": "877824997207441438",
"rateLimitPerUser": 0,
"lastPinTimestamp": null,
"guild": "860497208784584744",
"messages": [
"877824997207441438"
],
"createdTimestamp": 1629360188196
}
},
L'objet avec la clé message.author.id dans ton objet channelticketopen n'est pas défini visiblement :p
Je pense que si tu fais un console.log de bdd["channelticketopen"][message.author.id] tu vas te retrouver avec undefined dabs ta console.
Yes
Dans ce cas ton problème vient de ta gestion de ta base de donées.
merci mec
J'ai fait autrement
Pas de soucis 👍
Et tu saurais comment je fais pour mettre à jour des permissions d'un channel ?
quelqu'un aurait un tuto de 2021 pour les bots discord en js (version 13) parce que quasi l'entièreté des variables que j'entre ne sont plus valides xD
merci :DDD
Salut je suis toujours entrain de coder mon bot discord, je suis entrain de faire un système de member count qui s'affiche sur un channel discord. Je vous mets le code ci dessous:
client.on('guildMemberAdd', member => {
var servID = member.guild.id
console.log(servID);
var countChannel = {
total: bdd[member.guild.id]["Count"],
serverID: servID
}
client.channels.cache.get(countChannel.total).setName(`Membres: ${member.guild.memberCount}`);
})
client.on("guildMemberRemove", member => {
var servID = member.guild.id
console.log(servID);
var countChannel = {
total: bdd[member.guild.id]["Count"],
serverID: servID
}
client.channels.cache.get(countChannel.total).setName(`Membres: ${member.guild.memberCount}`);
})
et ma bdd.json:
"877845327833608212": {
"Count": "877845539889217578"
}
Et donc comme vous l'aurez peut etre compris je veux appeler l'id du channel sur lequel il y aura le nombres de membres et l'id du serv. J'ai fait ce code mais il ne fonctionne pas et il ne retourne auccune erreurs. Quelqu'un pourrait m'aider svp?
Var n’existe plus déjà
C'est a dire ?
let ou const mais pas var
nan mais ça arrangera pas ton problème
Ah
Juste c’est pour te le dire
:_: TextChannel#setName()
Sets a new name for the guild channel.
Il est plus formalisé Var
Je suis en v12 pour info
mais quel rapport, c'est une déclaration de variable
avec les nouvelles versions de ECMA
Node c’est du JS
oui
Oui
mais ça existe toujours ;_;
Et il dépend de Lecma
Oui mais bon si tu fais ça t’auras jamais de client en tant que free-lance 
je vois pas trop le rapport avec le freelance par contre mais bon
Mais oui il a raison sur le fait que var s'utilise plus vraiment, c'est ton compiler qui va venir te générer un code lisible pour tous les navigateurs
mais var s'utilise plus trop de part sa trop grande portée
dacc
Ok donc let ou const
Oui
Dacc
Bref même une seule fois ça fonctionne pas ?
J’ai horreur des bdd en JSON vraiment
Je comprends pas le principe
ils en font pas mention dans le mdn par contre
plus simple à utiliser pour le début
Non
Clairement pas
Passe sur du SQL après du JSON ça va être l’enfer pour comprendre
Mongo c’est très bien
Et c’est 15x plus simple que du JSON
effectivement
Pourquoi
Ah
SQL est très bien mais pas dans le même principe que Mongo
c'est pas interdit
c'est juste comme je t'ai dis plus vraiment conseillé
à cause de la porté de la scope de var
la scope de Var est trop dangereuse
c'est + reco de passer par une let
Parfois ça peut t’aider d’utiliser Var quand t’as la flemme
utiliser une fonctionnalité dépréciée n'est pas interdit 🤔
C’est déprécié pour l’expérience utilisateur
Pas dans la doc
J’ai pas utiliser les termes clés
ça veut pas dire interdit deprecated
Rooh
c'est non recommandé
je t'expliquais juste pourquoi
Déprécier c’est mieux qu’interdît kapp
je vais test
Si tu le fais manuellement forcément que ça va pas fonctionner
bah il faut faire npm i et c'est bon, il peut le mettre si il veut si il installe après 🤔
après oui ça suffit pas
là c'est surtout l'url qui est pas bonne mais oui il peut le fait manuellement y a aucun soucis là dessus 🤔
salut j'ai un problème 
const connection = await message.member.voice.channel.join();
const receiver = connection.receiver.createStream(message.member, {
mode: "pcm",
end: "silence"
});
const writer = receiver.pipe(fs.createWriteStream(`./recorded-${message.author.id}.pcm`));
writer.on("finish", () => {
message.member.voice.channel.leave();
message.channel.send("Finished writing audio");
});```
j'essaie d'enregistrer un vocal mais il me dit que le ficher est corrompu
une idée ?
Passe pas par le debugger @analog hamlet
je passe par quoi du coup ?
Normalement
tu peux l'exécuter directement via le terminal
Sincèrement, je ne sais pas :d (j'envoie le code)
if (timeServiceMinutes >= 15) {
function timeService(duration) {
var minutes = Math.floor((duration / (1000 * 60)) % 60),
hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
hours = (hours < 10) ? "0" + hours : hours;
minutes = (minutes < 10) ? "0" + minutes : minutes;
return hours + "h. " + minutes + "min.";
}
const embedTotalMsg = new Discord.MessageEmbed().setColor('#34C924');
if (timeServiceMinutes >= 60) {
embedTotalMsg.setDescription(`${check}・__Prise de Service__
Ton service a duré ${timeService(totalTime)}`);
} else {
embedTotalMsg.setDescription(`${check}・__Prise de Service__
Ton service a duré: ${timeService(totalTime)}`);
}
await message.author.send(embedTotalMsg).catch((err) => {});
const embedServiceEnd = new Discord.MessageEmbed()
.setColor('#34C924')
.setDescription(`${check}・Fin de service de ${message.author} (${timeService(totalTime)} de service)`)
.setFooter(moment().format('Do MMMM YYYY, HH:mm:ss'))
bot.channels.cache.get(config.servicelogs).send(embedServiceEnd);
isTimer = 0;
time = 0;
const service = [...dataSERVICE[message.author.id].service];
if (dataSERVICE[message.author.id].timeRemoved) {
const timeRemoved = [...dataSERVICE[message.author.id].timeRemoved];
dataSERVICE[message.author.id] = {
time,
isTimer,
timeRemoved,
service
};
dataSERVICE[message.author.id].service.push(`${totalTime}`);
fs.writeFile('./pds_data/data_service.json', JSON.stringify(dataSERVICE, null, 4), err => {
if (err) console.log(err);
});
} else {
dataSERVICE[message.author.id] = {
time,
isTimer,
service
};
dataSERVICE[message.author.id].service.push(`${totalTime}`);
fs.writeFile('./pds_data/data_service.json', JSON.stringify(dataSERVICE, null, 4), err => {
if (err) console.log(err);
});
}
}
timeServiceMinutes est la durée entre les deux commandes en minutes (ms convertis en minutes), le bot ne réagit plus dans la nuit lorsque cette commande est rentrée (je n'ai pas tout mis parce que la cmd contient largement plus de 4000 caractères, j'ai mis ce qui était nécessaire)
pourquoi client.commands = new Discord.Client(); ne marche plus ?
ben je veux faire un client.commands.set(props….)
Là tu initialises un client discord dans commands
Bah oui donc faut faire une collection
effectivement
er n'existe pas @analog hamlet
const channel = message.member.voice.channel;
const connection = await channel.join();
const receiver = connection.receiver.createStream(message.member, {
mode: "pcm",
end: "silence"
});
const writer = receiver.pipe(fs.createWriteStream('./recording.pcm'));
writer.on('finish', () => {
channel.leave();
message.channel.send('It went quiet, so I left...');
});``` il y a aucun **er** dans mon code, juste de ne comprend pas pourquoi il me sort "**the compressed data passed is corrupted**"
Tu as un fichier nommer events.js ?
oui
en fin j'ai pas de "fichier event.js" mais j'ai un dossier event avec tout les events de dans
Ah, ba regarde dans tes fichiers, tu as mis throw er
non plus :/
en fait mon code marchais bien et puis il m'a sorti un jour cette erreur
Ah ba là, jsp
ha update !
le code fonctionne mais que sur l'app discord, si je vais sur la version web et que j’exécute la fonction le bot crash
🤔
attend si tu veux je te rec wtf
Ba là, je ne saurai pas quoi te dire mdr
Mais, tu as l'erreur quand tu vas dans un vocal ? @analog hamlet
Sa doit être le module pour enregistrer qui te fais ça
il y a pas de module mis a part fs
Car c'est comme ça 🤷♀️
je sais pas si je peux mettre des liens ici, par précaution je te send mp
Pas besoin
j'ai essayer et ca a l'aire de fonctionner ! mais j'ai une autre erreur encore plus venere ...
C:\Users\ProMr\OneDrive\Bureau\blud\v2\node_modules\discord.js\src\rest\RequestHandler.js:298
throw new DiscordAPIError(data, res.status, request);
^
DiscordAPIError: Cannot send an empty message
at RequestHandler.execute (C:\Users\ProMr\OneDrive\Bureau\blud\v2\node_modules\discord.js\src\rest\RequestHandler.js:298:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (C:\Users\ProMr\OneDrive\Bureau\blud\v2\node_modules\discord.js\src\rest\RequestHandler.js:50:14)
at async TextChannel.send (C:\Users\ProMr\OneDrive\Bureau\blud\v2\node_modules\discord.js\src\structures\interfaces\TextBasedChannel.js:171:15) {
method: 'post',
path: '/channels/866003769404555283/messages',
code: 50006,
httpStatus: 400,
requestData: {
json: {
content: undefined,
tts: false,
nonce: undefined,
embeds: undefined,
components: undefined,
username: undefined,
avatar_url: undefined,
allowed_mentions: undefined,
flags: undefined,
message_reference: undefined,
attachments: undefined,
sticker_ids: undefined
},
files: []
}
}
oui
je vais envoyer mon code ...
const { MessageEmbed } = require("discord.js")
module.exports = {
name: "stats",
category: "Infos",
description: "stats important du serveur",
emoji: "👥",
run: async (client, message, args) => {
if(message.author.bot) return;
message.delete();
const member = message.guild.members.cache
const onlines = member.filter(u => u.guild.presences.cache === 'online').size
const dnd = member.filter(u => u.guild.presences.cache === 'dnd').size
const idle = member.filter(u => u.guild.presences.cache === 'idle').size
const offline = member.filter(u => u.guild.presences.cache === 'offline').size
const stats = new MessageEmbed()
.setColor('#2f3136')
//.setTitle('Stats !')
.addField(`⭐ Nitro boost`, `\`Niveau\` [»](https://google.com) **${message.guild.premiumTier}**\n\`Nbr de boost\` [»](https://google.com) **${message.guild.premiumSubscriptionCount}**`)
.addField(`👥 Membres » ${message.guild.memberCount}
`, `> 🟢 En ligne [»](https://google.com) **${onlines}**
> 🔴 Ne pas déranger [»](https://google.com) **${dnd}**
> 🟡Inactif [»](https://google.com) **${idle}**
> ⚫ Hors ligne [»](https://google.com) **${offline}**
────────────
**${message.guild.members.cache.filter(member => !member.user.bot).size}** Humains [»](https://google.com) **${message.guild.members.cache.filter(member => member.user.bot).size}** Robots`)
.setFooter(`demandé par ${message.author.username}`,message.author.avatarURL())
.setTimestamp()
message.channel.send(stats);
}
};
donc non ... je n'envoie pas un message vide
enfin je ne crois pas le faire .... 
yep !
je dois mettre ?
:_: MessageOptions
Options provided when sending or editing a message.
alors bon ... j'ai essayer, ca marche ... a moitier par contre ... attend j'envoie le code et un screen
dacc
deja voila l'erreur
(node:8124) DeprecationWarning: The message event is deprecated. Use messageCreate instead
(Use `node --trace-deprecation ...` to show where the warning was created)
dans ma console et le screen arrive ^^
ah c'est normal, en v13, le nouvel event lors de l'envoi d'un message est messageCreate, l'ancien marche toujours, mais il est déprécié
comment ca ?
voila le probleme... les online,inactif, ext ne marche pas ...
En gros l'event marche toujours, mais il est déconseillé, donc mieux vaut mettre messageCreate
yes, par rapport à al dernière fois
en fait
le soucis là dedans c'est que déjà pour chaque membre tu vas voir la presence manager
alors que c'est celle de la guild
donc
perte de performances
@twin baneTu as mis les intents ?
ah aussi 👀
mais vue que mon code est fait via module.export, je dois le mettre ou ?
comment ca ?
Ah, sur discord developer, sur google, tu dois cocher 2 trucs
est ce que tu as un fichier qui s'appelle message dans un dossier event ?
oui je l'ai mis ^^'
est il mentionné dans les intents de ton client ?
bah oui je l'ai ai activé sur discord dev yep
yop, du coup
const presence = message.guild.presences.cache
const onlines = presence.filter(u => u.status === 'online').size
const dnd = presence.filter(u => u.status === 'dnd').size
const idle = presence.filter(u => u.status === 'idle').size
const offline = presence.filter(u => u.status === 'offline').size
oui mais tu dois aussi le mettre dans les intents de ton client 👀
ah bon ? et je fais sa comment ? (Merci beaucoup pour le temp que je vois prend ! vous m'etes d'une grande aide !)
pas de soucis 👀
est il possible d'avoir un screen de ton client ?
ou le code
je m'explique
à partir de la v13
le index ?
oui, la parti où tu déclares ton client
const config = require("./config.json");
const { Client, Collection } = require("discord.js");
const discord = require("discord.js");
const { glob } = require("glob");
const { promisify } = require("util");
const globPromise = promisify(glob);
const chalk = require("chalk");
const client = new Client({
intents: 32767,
});
const fs = require("fs");
module.exports = client;
client.commands = new discord.Collection();
client.slashCommands = new Collection();
let folders = fs.readdirSync("./commands/");
folders.forEach((dir) => {
const commandFiles = fs
.readdirSync(`./commands/${dir}/`)
.filter((file) => file.endsWith(".js"));
for (const file of commandFiles) {
const command = require(`./commands/${dir}/${file}`);
client.commands.set(command.name, command);
console.log(chalk.green(`${command.name} load successfully [COMMAND]`));
}
});
let eventFolder = fs.readdirSync("./events");
eventFolder.forEach((dir) => {
const eventFiles = fs
.readdirSync(`./events/`)
.filter((file) => file.endsWith(".js"));
for (const file of eventFiles) {
const Event = require(`./events/${file}`);
const eventNames = file.split(".")[0];
console.log(chalk.yellow(`${eventNames} load successfully [EVENT]`));
}
});
client.login(config.token);
voilà
tu déclares ton client
Pourquoi tu déclares deux fois ton discord.js ?
Supprime cet ligne const discord = require("discord.js");
se n'est pas ma base
je l'ai eu sur github pour la V13 donc je n'y suis pour rien la dedans
Et modifie ceci client.commands = new discord.Collection(); en ceci client.commands = new Collection();
Ah github
voila c'est fait !
👍
par contre je dois avouer que je ne trouve aucun informations sur les intents avec les nombres
donc en gros les intents te permettent d’accéder à des events et des données
:_: discord developer docs results:
• Gateway: Gateway Intents - List of Intents
• Gateway: Commands and Events - Event Names
• Gateway: Gateway Intents - Privileged Intents
par exemple, pour accéder à la précence, tu as besoin de cet intent :
GUILD_PRESENCES
De ce flags *
effectivement
bon ducoup tout refonctionne bien ! mais j'ai toujours ce warning ...
(node:11716) DeprecationWarning: The message event is deprecated. Use messageCreate instead
(Use `node --trace-deprecation ...` to show where the warning was created)
mais vue que j'utilise module.export ... je vois pas comment changer ca ...
Tu as mal nommé ton fichier ?
client on messageCreate
Rien à voir avec ça
Bien sûr que si
mais vue que je suis en module.export mon evenement utilise pas de client.one
Non
si, c'est l'event 👀
C’est messageCreate l’événement pas message
et comment ca mal nommé mon fichier ?
Tu dis de faire un client.on -__-
Utilises la doc Duck pour une fois
en fait c'est déprécié, ils l'ont changé en messageCreate 👀
à la place de message
Tu dis nimp, tu lui dis de faire un client.on or qu'il fais en export -__-
Va lire la doc plutot que moi même
Ton fichier dois se nommer messageCreate
Dans un export, on utilise pas de client.on réfléchis un peu -__-
J’ai pas regardé son code c’était pour qu’il comprenne
Que c’était dans un client on
Mais tu dis nimp, donc ne me dis pas que c'est moi qui a tort mdrr

ehhhh ... nàn ... mon fichier se nomme stats.js ? a moin que je n'ai pas compris ??
Tu as l'event messageCreate quelque part nan ?
Du coup message, pas messageCreate
pas du tout ?
Ou message ? @twin bane
const { MessageEmbed } = require("discord.js")
module.exports = {
name: "stats",
category: "Infos",
description: "stats important du serveur",
emoji: "👥",
run: async (client, message, args) => {
if(message.author.bot) return;
message.delete();
const member = message.guild.members.cache
const presence = message.guild.presences.cache
const onlines = presence.filter(u => u.status === 'online').size
const dnd = presence.filter(u => u.status === 'dnd').size
const idle = presence.filter(u => u.status === 'idle').size
const offline = presence.filter(u => u.status === 'offline').size
/*const onlines = member.filter(u => u.guild.presences.cache === 'online').size
const dnd = member.filter(u => u.guild.presences.cache === 'dnd').size
const idle = member.filter(u => u.guild.presences.cache === 'idle').size
const offline = member.filter(u => u.guild.presences.cache === 'offline').size */
const stats = new MessageEmbed()
.setColor('#2f3136')
//.setTitle('Stats !')
.addField(`⭐ Nitro boost`, `\`Niveau\` [»](https://google.com) **${message.guild.premiumTier}**\n\`Nbr de boost\` [»](https://google.com) **${message.guild.premiumSubscriptionCount}**`)
.addField(`👥 Membres » ${message.guild.memberCount}
`, `> 🟢 En ligne [»](https://google.com) **${onlines}**
> 🔴 Ne pas déranger [»](https://google.com) **${dnd}**
> 🟡 Inactif [»](https://google.com) **${idle}**
> ⚫ Hors ligne [»](https://google.com) **${offline}**
────────────
**${message.guild.members.cache.filter(member => !member.user.bot).size}** Humains [»](https://google.com) **${message.guild.members.cache.filter(member => member.user.bot).size}** Robots`)
.setFooter(`demandé par ${message.author.username}`,message.author.avatarURL())
.setTimestamp()
message.channel.send({ embeds: [stats] })
}
};
concrètement pour les intents, tu peux faire comme ça
const { Client, Collection, Intents } = require("discord.js");
const client = new Client({
intents: [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MEMBERS,
Intents.FLAGS.GUILD_BANS,
Intents.FLAGS.GUILD_EMOJIS_AND_STICKERS,
Intents.FLAGS.GUILD_INTEGRATIONS,
Intents.FLAGS.GUILD_WEBHOOKS,
Intents.FLAGS.GUILD_INVITES,
Intents.FLAGS.GUILD_VOICE_STATES,
Intents.FLAGS.GUILD_PRESENCES,
Intents.FLAGS.GUILD_MESSAGES,
Intents.FLAGS.GUILD_MESSAGE_REACTIONS,
Intents.FLAGS.GUILD_MESSAGE_TYPING,
Intents.FLAGS.DIRECT_MESSAGES,
Intents.FLAGS.DIRECT_MESSAGE_REACTIONS,
Intents.FLAGS.DIRECT_MESSAGE_TYPING,
],
});
et mettre en commentaire ceux que tu n'utilises pas
Nan pas ça, tu dois avoir un event nommé message quelque part
ah dans tout mes code ?
@twin bane Etant donné que tu utilises un handler, tu dois avoir un fichier dans tes événements nommé message
Oui, dans ton dossier event
trouver mais avec messageCreate ...
const client = require("../index");
const prefix = require("../config.json").prefix;
client.on("messageCreate", async (message) => {
if (!message.content.startsWith(prefix)) return;
if (message.author.bot) return;
const args = message.content.slice(prefix.length).trim().split(/ +/g);
const cmd = args.shift().toLowerCase();
let command = client.commands.get(cmd);
if (command) command.run(client, message, args);
});
Screen ton arbre de fichiers
Le dossier event
le nom du fichier ducoup ?
Oui, attends le fichier message c'est celui qui contient ce que tu as envoyé ?
yep
Ah bah ça sert à rien alors
ca
Tu changes client.on("messageCreate", async (message) => { par module.exports = (bot, message) => {
PS: Supprime ton async dans ta fonction
Il est inutile
@twin bane
Je t'invite au passage, à apprendre Javascript si tu veux continuer ton bot
Sinon tu vas galérer
plus rien ne marche
enfin si ... le bot demarre mais les commande ne marche plus ducoup
je connais le JS mais pas toute les nouvelle chose de la V13 ...
Change bot par client
JS !== V13
Pour commencer
Tes commandes ne fonctionnent pas c'est normal
discord js ... en V13
Non
Je parlais de JS, pas DJS
Va falloir que tu apprennes le js toi aussi, nan ? @bold sparrow
Pour faire quoi au juste ? 🤔
pour faire un système handler correcte
vous avez pas bientot fini @dire latch & @bold sparrow
Son nom de fichier correpond à l'event
Ok mek
Laisse tomber mdrr, il croit s'y connaître et il dit nimp
@bold sparrowStop chercher pour rien, tu dis nimp depuis tout à l'heure en fait, donc calme toi
pour faire un handler correct je pense qu'il faudrait aussi changer le handler en lui même 🤔
fait mais ne marche toujours pas ...
mrfafidoo, modifie le nom du fichier stp
ouais faut changer le handler ptdrrr
J'viens de voir
Il load pas les events
Il faut le préciser dans l'export
Oula

for (const file of eventFiles) {
const Event = require(`./events/${file}`);
const eventNames = file.split(".")[0];
client.on(eventNames, ...args)
console.log(chalk.yellow(`${eventNames} load successfully [EVENT]`));
}```
Un truc du genre
Je sais pas c'est quoi ton Client, si c'est client, bot ou quoi
c'est client manifestement
et btw : @dire latch A quel moment il a bind client dans son event ?
(client, message) n'existe pas
Ok mek
Quand je lis pas les codes forcément je dis n'imp mais quand on connait pas JS on se minisme à dire " va sur google "
hein :)
Si tu le dis
Vous voulez pas arrêter de faire les barbos 2 secondes
Et juste aider normalement sans passer pour des branquignoles 
Yep
Mes excuses Duck
Salut, dites moi je cherche a trouver la fonction OnKeyUp mais pour React quelqun sait comment ca marche ?
C'est ce que tu cherche ou po?
oui mais ca marche po
C'est bon j'ai trouvé !
j'avais compris que ça te renvoyais ça
tu peux envoyer l'index.js stp Valerio
ah merci
c'est ça que je voulais
j'arrive
version de discord.js ? la 12 ?
Euh
C'est étonnant, moi je n'ai pas le problème
Je veux dire par là que ça m'envoie le message
Est-ce que ça ne viendrait pas de tes paramètres discord ou meme des paramètres que tu as défini sur le serveur ?
Les intents @hazy mirage
il est en v12
et je crois pas que y a de gateaway intent sur les direct message
Si si
Nope
Bah chepas mais j'ai déjà eu le prblm et c'était ça
Moi je propose ptdr
Tu étais en v13 alors 🤷♀️
juste faut edit quoi dans son handler pour le passer en v13 ?
à part les intents
Euh jsp
J'ai pas trop fais de v13 🤷♀️
moi aussi
c'est pour ça que je demande
😂
TypeError: Cannot create property 'shardCount' on string '1M5Gr2Ob2WPNZT7JmLkSW3SztEFVKmQ1eFad-4fwaCtOxWsB4QBVCpARxEMg1XbzZsZ-'
J'ai toujours cette erreur
Shard, tu le démarres mal ?
Slt ! J'ai une petite question svp. Comment faire pour que mon appli web apparaissent parmis les appli quand un utilisateur appuie sur le bouton partage sur les resaux comme youtube ou tik tok ?
Faut que les applis en question les acceptes @wide jacinth
🤷♀️
Je m'y connais pas donc jsp
Ok merci quand meme
Go Google après et demande dans #general @wide jacinth
Bah c'est pas facile de trouver un resultat google quand tu sais pas expliquer clairement avec des mots cle ce que tu veux
Ouais c'est vrai 😅
x)
API
How to create a share button with API
Something like this
Tu peux le faire avec express
Ok je vais voir merci
@bold sparrow t’as pas compris
Je veux que on vois mon site parlais ma liste des appli quand on appuie sur le bouton share de TikTok par exemple
D'acc
C'est pas en fonction des applications que tu as sur ton téléphone ? 🤔
J'en ai pas de shard
C'est ce que je croyais aussi
Peut être une option a ajouté sur ton site pour le rendre lisible au yeux des autres app ?
Je pense qu'il voulait dire que il croyait que c'était en fonction des apps sur ton tel mais que en fait faut contacter TikTok
Mais vous êtes sur que c'est ça?
Non pas du tout
Le menu de partage est fait par Apple/Android
Pas les applications
Ça c'est made by android par exemple
Yes, je suis plus d'accord, et je pense que le menu est fais automatiquement en fonction des applis du tel qui ont ou non le param de partage ou un truc du style
Oui, il faut ajouter l'action quand tu dev sur Android Studio
Yes, ou sur react native du coup
When the Android system wants to 'add an image' or 'view a webpage' you can allow your application to be chosen as the app to do so. This tutorial will show you how to use intent filters to be able to nominate your application to help out that other application in need.
Ah je me disais aussi
Hello, quelqu'un aurait le lien ou utilise un éditeur html dans ce genre ? https://simditor.tower.im/, si quelqu'un en connait un cool ou quoi !
Je comprends rien à Discord.js V13
c'est ouff
Genre je dois édit quoi pour le passer en v13
voici mon index en v12 :
const {Collection, MessageEmbed, Client, WebhookClient} = require('discord.js');
const config = require('./Database/config.json');
const token = config.token,
client = new Client({
partials: [
"MESSAGE",
"CHANNEL",
"GUILD_MEMBER",
"REACTION",
"USER"
]
});
require('dotenv').config();
require("moment-duration-format");
const disbut = require('discord-buttons');
disbut(client);
client.commands = new Collection;
client.aliases = new Collection;
client.cooldown = new Collection;
client.login(token).catch(console.error);
require(`${process.cwd()}/handlers/eventHandler.js`)(client);
require(`${process.cwd()}/handlers/commandHandler.js`)(client);
client.config = require(`${process.cwd()}/Database/config.json`);```
Ton command handler est probablement à refaire
En V13, ce n'est plus les partials mais les intents. Il me semble.
Premièrement effectivement je crois pas que les partiales existent encore, c'est des intents, ensuite, discord buttons n'est pas compatible donc il va falloir utiliser l'event interaction create et beaucoup de choses changent. Ensuite je ne sais pas comment fonctionne ton commande handler mais normalement il devrait toujours fonctionner 🤔
T'enregistre pas forcément les commandes de la même façon si tu veux faire quelque chose de commun entre le handler et l'enregistrement des slash commands
Nop j'utilise pas de slash commande
En fait j'aime pas trop le système 
Faut peut être que je vous montre mon commandHandlze
Je vais créer un fil pour pas encombrer
j'vois pas trop à quoi ça sert les / commands
Discord se veut le plus interactif possible, l’implémentation des / commands en fait partie
Des choses interactives
Ce qui est pas mal c’est que si ta commande est globale tu peux l’utiliser partout
Comme ici avec Discord JS
Ouais bof, un peu pourri je trouve cette maj mais ok
ouais mais on est pas obligé
Nan c’est tellement bien
juste moi je veux juste passé en v13 après je suis trkl
Ça peut paraître compliqué à comprendre le système mais ça va
Toi non
Mais les bots certifiés c’est la dictature
Ce qui est normal
Ouais peut-être, fin franchement ça a l'air + chiant à faire qu'autre chose ces / commands j'ai regardé vite fait ça vaut pas trop le coup
Mais genre comment je fais pour passer du handler djs 12 à 13
je te confirme
Si ça vaut largement le coup !
j'ai essayé trois fois
au bout d'un moment j'en ai eu marre
surtout pour l'utilité c'est la même chose
Faut lire la doc attentivement
Les commandes sont classées par bot
Donc aucun problème
avec tous les bots*
en tout cas si vous pouvez m'aider pour mon handler
Ouais bah du coup, j'préfère la v12 resté avec mon bon commando et implémenté tout ce système sans v13
j'ai crée un fil si vous voulez 🙂
Ton handler n’est pas censé ne pas fonctionner
bah ça me mets ça regarde vient dans mon fil je vais pas encombrer ici
Pense à dire adieu à commando

jamais
Tu resteras en v12 jusqu’à la fin de DJS
maybe
si c'est possible ça me déranhge pas
Au contraire c'est ultra pratique leur maj
Plus besoin de gérer les arguments et c'est tellement plus simple pour l'utilisateur, nottament pour mention
bah je veux bien mais j'arrive déjà pas à mettre mon handler à jour
😂
Regarde déjà comment enregistrer une commande en slash command
si tu veux j'ai mis mes codes dans un fil
Yes, je me doute. Mais pour le moment je veux juste avoir ce que j'ai actuellement en v13
c'est tout
Quelle est l'erreur avec ton handler actuel ?
Justement j'en ai aucune
En fait, quand je fais admettons !help
Ça me renvoie rien
Alors que ma.commande est faite et aucun bug est à déplorer
Car le nom de l'event qui se déclenche lorsqu'un message est envoyé a changé
C'est messageCreate maintenant il me semble
Regarde la doc 😁
C'est plus message
Techniquement message fonctionne encore
Enfin il me semble
Il est déprécié
Donc si tu use message tu vas avoir un warn dans ta console
Donc vaut mieux utiliser messageCreate
@slim anvil t'en aurais à me conseillé stp ?
oui
Tu en veux un vraiment comme ça
Ou même un plus type article etc
Car en mieux t’as Editor.js
Et après t’en quill editor aussi dans ce style
Parfait merci c'est ce que je cherchais !
C'est déprécié, donc ça va finir par disparaître. Après suffit de débug ton évent avec des console.log pour voir ce qui ne fonctionne pas
Pour ma part j'utilise TinyMCE
Quill j'utilisais avant et c'est sympa aussi
Les widgets tiny je les trouve très intuitifs et beaux, j'ai découvert cet éditeur rte via Umbraco, ils utilisent ça et franchement j'en suis pas déçu
Salut, je débute avec la librairie discord.js et je ne comprends pas pourquoi lorsque j'écris un message sur mon serveur il n'est pas log dans ma console ? ```js
require('dotenv').config();
const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS]});
client.on('ready', () => {
console.log(Logged in as ${client.user.tag}!);
});
client.on('message', msg => {
console.log(debug => ${msg});
});
client.login(process.env.CLIENT_TOKEN);```
Met messageCreate à la place de message @lapis onyx
c'est pas le problème du coup, car ça sera quand même censé marché 🤔
le problème vient des intents provided
Go mettre ces intents 🙂
il faut pour les messages dans une guild :
GUILD_MESSAGES (l'intent, qui te donne accès à)
- MESSAGE_CREATE
- MESSAGE_UPDATE
- MESSAGE_DELETE
- MESSAGE_DELETE_BULK
moui
Merci, c'était bien les intents
pas de soucis 👀
Good ducoups
Clique sur [📝](#javascript-typescript message) pour accéder au message
Bonsoir,
Je me permets d’exposer à nouveau mon problème, j’ai réalisé un bot depuis un certain temps qui a pour objectif de calculer une durée précise entre deux commandes qui sont envoyées par le membre. Le problème étant que la nuit, les données soustraites au date.now() actuel sont considérées comme invalide (alors que j’obtiens logiquement la date et l’heure précise en ms), auriez-vous une idée voire besoin d’une partie du code ?
Merci.
@keen narwhal
Clique sur [📝](#javascript-typescript message) pour accéder au message
```js
if (timeServiceMinutes >= 15) {
function timeService(duration) {
var minutes = Math.floor((duration / (1000 * 60)) % 60),
hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
hours = (hours < 10) ? "0" + hours : hours;
minutes = (minutes < 10) ? "0" + minutes : minutes;
return hours + "h. " + minutes + "min.";
}
const embedTotalMsg = new Discord.MessageEmbed().setColor('#34C924');
if (timeServiceMinutes >= 60) {
embedTotalMsg.setDescription(`${check}・__Prise de Service__
Ton service a duré ${timeService(totalTime)}`);
} else {
embedTotalMsg.setDescription(`${check}・__Prise de Service__
Ton service a duré: ${timeService(totalTime)}`);
}
await message.author.send(embedTotalMsg).catch((err) => {});
const embedServiceEnd = new Discord.MessageEmbed()
.setColor('#34C924')
.setDescription(`${check}・Fin de service de ${message.author} (${timeService(totalTime)} de service)`)
.setFooter(moment().format('Do MMMM YYYY, HH:mm:ss'))
bot.channels.cache.get(config.servicelogs).send(embedServiceEnd);
isTimer = 0;
time = 0;
const service = [...dataSERVICE[message.author.id].service];
if (dataSERVICE[message.author.id].timeRemoved) {
const timeRemoved = [...dataSERVICE[message.author.id].timeRemoved];
dataSERVICE[message.author.id] = {
time,
isTimer,
timeRemoved,
service
};
dataSERVICE[message.author.id].service.push(`${totalTime}`);
fs.writeFile('./pds_data/data_service.json', JSON.stringify(dataSERVICE, null, 4), err => {
if (err) console.log(err);
});
} else {
dataSERVICE[message.author.id] = {
time,
isTimer,
service
};
dataSERVICE[message.author.id].service.push(`${totalTime}`);
fs.writeFile('./pds_data/data_service.json', JSON.stringify(dataSERVICE, null, 4), err => {
if (err) console.log(err);
});
}
}
timeServiceMinutes est la durée entre les deux commandes en minutes (ms convertis en minutes), le bot ne réagit plus dans la nuit lorsque cette commande est rentrée (je n'ai pas tout mis parce que la cmd contient largement plus de 4000 caractères, j'ai mis ce qui était nécessaire)
Pour faire ce genre de chose, je te conseille moment
Moins galère
Avis à ceux qui ont déjà implanté un automod (anti spam) sur leur bot JS :
Vous êtes parti sur une solution open source ou tout from scratch ?
Ça a l'air sacrément chiant à coder et à tester haha
Sois tu le fais toi même, sois avec un module @ashen rapids
C'était pas vraiment ma question 😂
#general message

vois avec Zaros je crois il a mit un anti spam sur GCA mais c’est du basique
Comment tu vois la chose toi
J'avais vu un module existant exprès pour Discord sur git mais ça a pas l'air top + le gars pète un peu plus haut que son cul (excusez moi du terme)
est-ce que c'est possible de me dire comment faire pour compter les visiteur sur mon site je sais pas comment programmer ceci
Tu stockes ta valeur dans une base de données. Et tu comptes les visiteurs à partir de leur IP que tu peux mettre en cache pour éviter les gars qui vont spam F5
Oui mais ta valeur faut bien que tu la stocke quelque part
Que du front tu peux pas
C'est dynamique
Mais aujourd'hui tu peux utiliser un outil comme Google Analytics ou Matomo pour calculer ce genre de chose
Sur GCA, on applique ceci automatiquement :
- Suppression des msg avec des invitations Discord
- Suppression des msg avec un lien qu'on a indiqué comme pas legit
- Suppression du msg si l'auteur a écrit exactement la même chose dans son précédent msg
Pour le reste, full manuel pour éviter les erreurs 👀
Oue je vois
Genre Dyno et Mee6, où ils ont un système bien poussé, ça supprime souvent des messages legit
Pas très poussé du coup
Ya pas un truc pour les full maj non plus ?
Waaaa j'aime pas les gens qui auto delete les full maj 
Des fois, c'est bien utilisé mais la plupart du temps, c'est pour du troll / pub (d'après mon expérience)
Oula non
Disons que ça dépend des serveurs et des communautés 😅
Mais merci pour le retour Zaros !
tqt
Bonjour, comment savoir le badge hypesquad d'une personne ?
bah look son profil
toi t’es de la bravery
mais js paspossible
j’crois pas du moins
c’est pas return comme info
Ahhhhhhhhhhhh
bv
C'est dur de relier un site Web à un bot discord ?
non
Comment est fait le colorless des embed discord gca ?
Le fait que ce soit transparent la ?
ui
c'est quel code couleur exactement
car moi quand je le fais si je mets ma souris dessus on le voit mais sur gca non
Euh je l’ai pas sur tel la
#2f3136
je trouve que le "discord button" est vraiment fais avec le cul
genre jtrouve plein de soucis
Comme ?
bah passe en v13 
salut j'ai suivit le tutoriel de pilot2 sur le site mais quand je fait node . ca me met cette erreur :
^
TypeError [CLIENT_MISSING_INTENTS]: Valid intents must be provided for the Client.
at Client._validateOptions (C:\Users\erwin\node_modules\discord.js\src\client\Client.js:544:13)
at new Client (C:\Users\erwin\node_modules\discord.js\src\client\Client.js:73:10)
at Object.<anonymous> (C:\Users\erwin\OneDrive\Bureau\programmation\botjs\PerduX\index.js:4:16)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47 {
[Symbol(code)]: 'CLIENT_MISSING_INTENTS'
}```
Car tu as probablement suivi un tutoriel pour la V12 de DiscordJS
Alors qu'on est en V13
ah
Maintenant, quand tu instancis le client, faut préciser les intents
j'ai juste copier coller le code
Mauvaise idée 😏
La flemme surtout mdr
mais c'est dur le js aussi
Tu peux suivre ça : https://discordjs.guide/
C'est officiel, très complet et ultra pédagogue
non c'est trop long
Tu suis juste les parties qui t'intéressent
je veux pas apprendre
Ba abandonne 🤷♀️
Dans ce cas là, je vois pas ce que tu fais ici 😅
mais la derniere fois que jai suivi le tuto de pilot2 ca fonctionner
😭😭😭😭
Faut que tu te met en v12
Et non en v13
Ya rien de compliqué là dedans
Sauf que DiscordJS a proposé une nouvelle version récemment. Évidement, les tuto de la V12 ne fonctionnent plus
j'ai pas installer de nouvelle version depuis
Ils fonctionnent, faut juste changer sa version de djs @ashen rapids 🙂
la v12 est surement destinée à devenir obsolète :/ donc
Quand tu installes avec npm i discord.js, sa te met en v13, à toi de trouver pour installer la v12
Oui mais pas pour le moment
a ok
Ca sert à rien de commencer à dev sur une ancienne version, juste pour faire fonctionner un tuto
il y a quoi qui change dans la nouvelle version ?
Plein de chose
Eh oh
oui
Il fait ce qu'il veut
je t'invite à consulter le guide
Tu es personne pour juger il me semble 😂
Laisser le dév sur la v12 si il préfère rhoo lala
On est là pour aider, on est là aussi pour guider sur ce qui est bon de faire ou non
a chaque fois que je veux apprendre un language j'abandonne
Tu essaie d'apprendre comment ? Par des cours ? Des exercices ?
Ba si il veut pas être en v13, il ne veut pas, forcer pas pour qu'il change -__-
des videos et des livres
La doc button est à jour?
Si c'est vraiment ce que tu veux faire, fonce ! Si jamais tu as des questions, des principes en JS que tu comprends pas, tu peux demander ici 😁
Yep
Sur discordjs v13 ? Normalement oui tout est bon fin je crois
non pas trop les bots moi c'est les sites
Le site c'est discord.button.js.org u'e connerie du genre
Jsplus jsuis sur tel
tu parles du package npm discord-buttons ?
Donc t'as une bonne connaissance en JS mais c'est juste les bots où t'as du mal ?
chui pas tres fort en math
non
je connais rien
pour la doc de discord-buttons https://discord-buttons.js.org/docs/stable/#welcome (perso je l'avais vraiment trouvé pas ouf)
juste html css xD
Je te rassure pour faire des bots discord y a même pas besoin d’être bon en JS
faut juste savoir lire la doc de discordjs
T’as pas besoin de math non plus pour un bot, sauf si tu cherches à faire un truc vraiment qui change
a apprendre
Le guide tu as un paragraphe dans Get Started
Et tout est expliqué pour que tu puisses tout comprendre
Mais si c’est juste un bot de base comme on en voit souvent po besoin
pas grave j'attendrai avant j'apprend le web
Ouo
pas folle la doc je trouve après à toi de voir 🤔
Bah la doc est nul clairement
façon de le dire 
oulah non c'est pas le soucis
car message.delete() serait censer fonctionner
Bonjour, c'est car fetch fonctionne avec un système de promise
Il faut que tu utilises await
Oui oui c'est bon j'ai trouvé merci
Oep
Ou then, mais await c'est mieux 😏
Parfait alors, par contre, pourquoi n'utilises-tu pas un event handler ?
prcq je peux mettre reactionadd et reactionremove dans 1 fichier 👀
ah, je vois 🤔 après du coup tu te retrouves pas avec tout le reste dans le même fichier ?
tkt je gère

est-ce que avec une commande prédéfini de javascript
c'est possible de voir si il y a quelqu'un qui vient sur ton site
Tu check l'IP
nan mais en code je parle
Comme ça je te réexplique ce que t'as pas compris
oui je veux bien
Tu peux commencer par stocker une valeur. Cette valeur correspond à ton nombre de visites
Tu peux la stocker où tu veux, en fonction de ton archi
Dans une base de données MySQL, NoSQL ou tout simplement un fichier
Mais faut que ça soit côté back
désolé de ne pas t'avoir répondue mais c'etait parce que j'etais en vacance pendant 2 semaines
la ou tu me dis que j'avais pas compris
Justement je sais pas où tu as pas compris
Mais tu veux faire ça pourquoi ?
Parce que tu veux avoir une idée du nombre de visiteurs ?
oui
Dans ce cas là, réinvente pas la roue
T'as plein d'outils qui te permettent de mesurer une audience, avec des chiffres encore plus précis
Google Analytics pour le plus connu
T'as aussi Matomo, qui est plus libre
mais tu peux utiliser ca en javascript
si c'est possible tu peux me montrer comment faire
ok
Regarde sur Internet, t'as plein de très bons exemples
ca marche avec un fichier js externe
Oui
ok merci pour la leçon
En t'inscrivant sur Google Analytics, ils te donnent toutes les étapes pour inclure la balise, avec toutes les explications
Comme tu veux !
Après c'est pas forcément une bonne idée d'utiliser ce genre de choses
Vaut mieux être sur du langage pur web et ne pas se rajouter une couche inutile
pk
Google Analytics, c'est un copié collé, ça te prends 5 minutes et c'est réglé
ha d'accord
Car à la base Python c'est pas pour faire du web
C'est mon avis mais je trouve ça bête de créer une framework pour tout et n'importe quoi
Si un jour le framework fonctionne plus, tu fais quoi ?
Et puis plus tu rajoutes de couches, moins t'es libre dans ce que tu fais
Alors qu'en restant sur du langage pur web, t'es sûr de pouvoir faire tout ce que tu veux
oui...
je vois ce que tu veux dire
ok mais le ruby non plus c'est pas fait pour le web java non plus
et pourtant...
Oui après le backend c'est autre chose
bha avec python c'est back-end
Mais bon, après faut choisir ce qui est bon ou non
Un back en java où tu passes 3h par jour à compiler ce que tu fais, un peu chiant
c'est vrai
Flask fait du front
Oui mais tu fais aussi du front
C'est un peu la principale utilité 😏
jsp
Ca utilise d'ailleurs Jinja pour faire le rendu HTML
C'est du fullstack oui
c est ca qui est cool
T'as des framework JavaScript aussi qui sont aussi simples à utiliser
Genre Vue
Et tu te rajoutes pas de stack inutile
Après si c'est pour une petite application, toute bête, Flask peut être bien. Mais je te conseille pas de prendre cette " mauvaise habitude "
A toi de voir, et hésite pas au besoin 😇
Mauvaise habitude de rajouter des stacks comme ça sur des choses qui peuvent se faire aussi facilement sur les technos adaptées au web
ok
en faite c'est facile
je fais
visit = 0
counter = function() {
visit += 1
balise = document.queryselector(".p").Innerhtml(visit)
}
sauf que faut bien le save quelque part ce truc là
qui le stock ou du coup
JavaScript est un langage qui s'exécute côté client, donc sur le navigateur. Si tu le stockes dans JavaScript, tu le stockes que chez le client
j'ai un prblm
ca me dit que la variable est null
js: let visit = 0;
compte = function () {
visit +=1;
compteur = document.querySelector(".nbvisit");
compteur.innerHTML = visit};
compte();
html:<p class="nbvisit">0</p>
Laquelle ?
Déjà tu appelles mal ta fonction
Et regarde ce que veut dire le mot clé let et quelle est la différence avec var
Mais encore une fois, ce que tu fais là ne te permettra pas d'atteindre ce que tu veux
compteur is null
Pour récupérer un élément sur ton DOM via une classe, c'est : getElementsByClassName
je met quoi entre les parentheses
Le nom de la class que tu veux récupérer
avec le point ou pas
Non
Le .value ?
Tu te feras moins chier yep
Yep, il faut
Bonjour, j'ai un problème avec mon .hasPermission et je ne trouve pas le problème..
Voici mon erreur:
C:\Users\neird\OneDrive\Bureau\Hobbies\Développement\JS\Bot ElToman\index.js:61
if (!message.member.hasPermission('KICK_MEMBERS')) {
^
TypeError: message.member.hasPermission is not a function
at Client.<anonymous> (C:\Users\neird\OneDrive\Bureau\Hobbies\Développement\JS\Bot ElToman\index.js:61:25)
at Client.emit (node:events:406:35)
at MessageCreateAction.handle (C:\Users\neird\OneDrive\Bureau\Hobbies\Développement\JS\Bot ElToman\node_modules\discord.js\src\client\actions\MessageCreate.js:23:14)
at Object.module.exports [as MESSAGE_CREATE] (C:\Users\neird\OneDrive\Bureau\Hobbies\Développement\JS\Bot ElToman\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\neird\OneDrive\Bureau\Hobbies\Développement\JS\Bot ElToman\node_modules\discord.js\src\client\websocket\WebSocketManager.js:345:31)
at WebSocketShard.onPacket (C:\Users\neird\OneDrive\Bureau\Hobbies\Développement\JS\Bot ElToman\node_modules\discord.js\src\client\websocket\WebSocketShard.js:443:22) at WebSocketShard.onMessage (C:\Users\neird\OneDrive\Bureau\Hobbies\Développement\JS\Bot ElToman\node_modules\discord.js\src\client\websocket\WebSocketShard.js:300:10)
at WebSocket.onMessage (C:\Users\neird\OneDrive\Bureau\Hobbies\Développement\JS\Bot ElToman\node_modules\ws\lib\event-target.js:132:16)
at WebSocket.emit (node:events:394:28)
at Receiver.receiverOnMessage (C:\Users\neird\OneDrive\Bureau\Hobbies\Développement\JS\Bot ElToman\node_modules\ws\lib\websocket.js:970:20)
C'est message.author si tu vises l'auteur du message
Et pas member
Si tu as un doute, tu as le doc de discordjs qui est hyper complète 😇
ah d'accord, pourtant avant cela fonctionner 😅
Mercii
mais ca ne fonctionne toujours pas
TypeError: message.author.hasPermission is not a function
mais
c'est un member d'une guild
donc forcément message.member
c'est message.member.permissions.has()
Faut bien penser à gérer ce cas d'erreur : Only available if the message comes from a guild where the author is still a member
évidemment, voilà pourquoi message.member et non message.author 👀
le permissionhas à changé ?
Yep j'ai confondu user et member
ok merci à vous deux 🙂
Bonjour
je voudrais faire un anti spam sur mon bot
pouvez vous m'aider
svp mercii
Je suis aussi en train d'en faire un
Qu'est ce que tu aimerais mettre en place dans ton anti spam?
Un truc assez réactif genre$
et qu'il agie de manière diférante quand les personne spam
avec différente chose
Mon systeme de langue sur mon bot discord est cassé tant que Quick.db n'est pas mis à jour pour la v13 sad
comme imaginon si c'est des lien discord il ban plus vite
en gros
Pour les liens c'est assez facile
Tu check le message avec un regex, et s'il y a un lien discord.gg, tu ban
un truc opti aussi x)
(si tu veux ban)
oui sa sera un ban
C'est opti
Un regex qui check le message (une ligne) et une deuxième ligne pour ban
apres avec quickdb je voudrais qu'il sois posible d'activé ou de désactiver se systement
systeme
d'accord, et ducoup, l'anti spam en général tu a une idée ?
Genre avec une commande ou un config externe ?
Ca dépend ce que tu veux faire en anti spam ?
Tu peux check si quelqu'un envoie le même message en boucle
Tu saves l'ancien message de l'utilisateur, dès qu'il en envoie un autre, tu check si c'est le même, si c'est le même tu agis
En gros, je voudrais que dés qu'une personne ajoute le bot l'anti spam et activé, ensuite si on fait une cmd il désactive l'anti spam
ensuite
Tu peux même rajouter une sorte de timer en se disant : " est ce que ça fait + de 5 secondes ? "
en gros sa sera un truc comme sa oui
Oui, ça se fait, tu fais une commande et tu stockes l'état quelque part
genre att vien ici stv
Oui
pas tellement
Tu peux même en send plusieurs facilement maintenant
maintenant on peut plus juste faire ```javascript
message.channel.send(embed) on doit faire
message.channel.send({ embeds: [exampleEmbed] })
les messagesoptions ont changés oui et je trouve ça mieux perso
Je trouve ça mieux aussi !
juste ce qui est pas pratique c'est les messageattachment
jvais lire la doc
de changement
bonne lecture
je peux avoir le lien de la doc please
merci
Ah oui !

Trop fort !
heuresement que l'equipe de discord.js ont des cerveaux surdeveloppés
je preferais avant
Et après ça se vante d'être un module simple pour interagir avec l'API Discord.
Very easy 
c'est pas compliqué mdr
oui ils ont remplacés les ID par Id

Bonjour ! je voulais savoir si une personne qui connais pas mal la nouvelle maj DJS 13 peux m'aider a tranformer un code de la V12 ? si oui voila le code ! merci d'avance, mrfafidoo
client.on('guildMemberAdd', async (member) => {
if(db.has(`captcha-${member.guild.id}`)=== false) return;
const url = 'https://api.no-api-key.com/api/v2/captcha';
try {
fetch(url)
.then(res => res.json())
.then(async json => {
console.log(json)
const msg = await member.send(
new MessageEmbed()
.setTitle('Please enter the captcha')
.setImage(json.captcha)
.setColor("RANDOM")
)
try {
const filter = (m) => {
if(m.author.bot) return;
if(m.author.id === member.id && m.content === json.captcha_text) return true;
else {
msg.channel.send("You have answered the captcha incorrectly!")
}
};
const response = await msg.channel.awaitMessages(filter, {
max : 1,
time : 10000,
errors : ['time']
})
if(response) {
msg.channel.send('Congrats, you have answered the captcha.')
}
} catch (error) {
msg.channel.send(`You have been kicked from **${member.guild.name}** for not answering the captcha correctly.`)
member.kick()
}
})
} catch (error) {
console.log(error)
}
})
le probleme fondamentale est les message send ... les packages requis sont
const db = require('quick.db')
const fetch = require('node-fetch');
const { MessageEmbed } = require("discord.js");
quand tu l'utilises ca te return une erreur ?
ça retournera déjà forcément une erreur
ce que tu peux changer déjà :
// v12
const msg = await member.send(
new MessageEmbed()
.setTitle('Please enter the captcha')
.setImage(json.captcha)
.setColor("RANDOM")
)
// v13
const msg = await member.send({ embeds:
[new MessageEmbed()
.setTitle('Please enter the captcha')
.setImage(json.captcha)
.setColor("RANDOM")]
})
// v12
const response = await msg.channel.awaitMessages(filter, {
max : 1,
time : 10000,
errors : ['time']
})
// v13
const response = await msg.channel.awaitMessages({ filter,
max : 1,
time : 10000,
errors : ['time']
})
Sur le guide t'as tout ce qui change en détail ..
SALUT
merci infiniment ! je teste sa et je te dis !
Comme l'a dit Calypso pour tous les changements de la v13
apres j'ai la theorie mais pas la pratique donc je voyais pas comment utiliser sa ...
:_: discordjs.guide results:
• Additional Information: Updating from v12 to v13
• Additional Information: Before you start
Dacc
cc je passe par ici, sur un discord anglais de dev djs, le « gérant » qui a dev notamment la lib des boutons est entrain de faire sa propre lib à la djs, et va faire un truc simple d’utilisation, clair et sans avoir besoin de tout changé à chaque maj
Utilité ?
J'attends de voir ça
Car généralement ce genre d'initiative, ça dure 6 mois puis après c'est plus maintenu
Et on se fait tous avoir
C’est un mec sérieux ce dev anglais, il en a ras le cul de djs, et il va utiliser ses compétences pour faire sa propre lib et « régler » les soucis majeurs de djs entre guillemet
A quoi sa sert d'avoir 2 choses pareils ?
Esce que sa seras fiable ?
Stable et autres ?
En quoi c'est pas pareil ?
c’est pas fait on en sait rien pour l’instant
Bah parce que il va proposer des manières de faire différentes, plus claires / simples après je ne connais pas sa todolist
Même par quelqu'un de sérieux
Mais à voir, si c'est quelque chose qui a fonctionnalités en plus, qui sait le maintenir et qui sait rassembler une communauté autour de ça, je dis pourquoi pas 😇
Ba voilà, donc pareil que djs 🤷♀️ en quelque sorte donc bon
La communauté ça sera sans doute l'étape la plus compliquée
mais si tu t’arrêtes à dire « useless ça existe déjà, faudra arrêter pleins de choses mdr
Surtout qu'on le connais pas le mec, esce que c'est fiable, stable et autres
toit tu connais pas, mais tous les dev « djs » anglais sont dessus
Mouais
Sans oublier que DiscordJS ça a déjà le soutiens de Discord, donc ça sera compliqué de faire concurrence
bah y a ~4k membres, au lieu de partir dans le negatif voit le positif après fait ce que tu veux j’informe c’est tout
Faut voir !
Djs est très bien je trouve
J'vois pas trop le problème
mais son but c’est d’avoir une utilisation plus simple et pas à se casser le cul à tout changer â chaque maj
Du même avis, j'ai pas spécialement de soucis sur l'utilisation, je trouve ça hyper simple
Comment tu peux avoir plus simple que djs
Oui mais du coup ça sera à lui de se casser le cul à chaque maj de Discord
Juste simplifier ce qu'il existe déjà, c'est pas ouff après mdr
la v13 pour moi ça commence à faire chier
J'ai commencé le djs j'avais jamais fait du js de ma vie juste du Lua, et j'y arriverai super facilement
Si justement, sinon il le ferait pas
Ba en sois, c'est juste copier djs en simplifiant à ce que je comprends
Je verrai pas l'utilité de changé juste pour ça quoi
Oui bah la v13 faut l'améliorer ça j'suis d'accord c'est complexe pour rien, mais à part ça c'est easy
Juste si on pouvait retirer ce .cache qui sert à rien et qu'on sait jamais où faut le mettre 
Faut juste apprendre comme de la v11 en v12
🙂
Il peut être motivé sur le coup et se rendre compte que maintenir le projet est long ..
Beaucoup se lancent dans des projets, te pondent des merveilles mais ça meurt au bout de 3 mois avec aucune communauté derrière pour récupérer le projet
Encore une fois je connais pas sa todolist, mais perso rien qu’à voir la v13 se faire chier pour peu , commando outdated de plus, mon v12 me va bien
Bah écoute à voir
On a quoi à perdre ? rien
Et la V13 ya beaucoup de modif car faut dire que Discord est pas allé de main morte sur cette version avec toutes les nouveautés
La V11 à la V12 était pas aussi chiante
Oui je sais

Bonsoir,
