#javascript-typescript
1 messages · Page 100 of 1
dans l'insertion sql
car dans un console.log il m'ecrit le hash
const name = req.body.name
const password = req.body.password
const hashedPassword = await bcrypt.hash(password, 10);
User.sync().then(function () {
User.findAll({
where: {
name: name,
},
defaults: {
name: name,
}
}).then(function (result) {
const created = result[1];
console.log(hashedPassword)
if (!created) {
User.create({name, hashedPassword})
console.log("User Created!")
} else {
res.send("User Already Exists");
}
})
})
Tu comprend ce que tu fais dans ton code là ?
oui
Non mais tqt il sait ce qu'il fait
Pourquoi tu utilises function alors que tu utilises pas le scope ?
Pourquoi tu mixes .then et await ?
Pourquoi tu utilises User.sync ?
Et comme je l'avais dis déjà ce matin, valide les data utilisateurs avant de les utiliser
Comment ca ?
User.init ?
a la place ?
Ce que l'utilisateur t'envoie, sous forme de body, params ou query, tu valides
Si tu attend un number, tu vérifies que c'est bien un number, si tu attends une valeur d'un enum, tu vérifies etc etc...
T'as pleins de package pour ça (joi, class-validator...)
Pour quoi faire ? Tu as lu la doc ?
J avais mais aussi nan juste user ?
Honnêtement tu sais pas ce que font ces méthodes non ?
nan, en metant un $.write("") (c'est du vieux javascript) j'ai tout qui est log c'est pas ca
Tu le mets où ton $.write("") ?
yes 
De toute évidence non
bah tu m a demandé si je ne savais pas donc je t ai dit oui
app.enableQE();
var qeTrack = qe.project.getActiveSequence().getVideoTrackAt(0);
if (qeTrack){
var qeClip = qeTrack.getItemAt(0);
if (qeClip){
var effectToAdd = qe.project.getVideoEffectByName("Crop");
if (effectToAdd){
qeClip.addVideoEffect(effectToAdd);
$.write("done")
}
}
}```
Du coup le mieux que je puisse te dire c'est de commencer par les bases de js et de lire la doc de sequelize
Sync et init ont rien à faire dans un endpoint
ahh
mais moi je te parlais de sequelize le js je sais
De toute évidence pas uniquement sequelize le problème. Ici les préceptes de bases d'une API ne sont pas respectées non plus
En ce qui concerne uniquement sequelize, comment t'en es arriver à foutre sync et init ? Pourquoi tu as une props default dans un where ?
Pourquoi tu fais un peu de .then et un peu de await ?
Le create c'est async donc tu dois l'await
Gère tes retours d'erreur
Pourquoi tu fais un findAll alors qu'un findOne ou un count suffirait ?
Dans ton cas, si tu utilises un findAll/findOne et que tu prévois pas d'utiliser l'objet sequelize, ajoute la props raw:true, inutile de créer une instance que tu n'utilisera pas
Salut !
Premiere fois que j'essaie de faire un bot en js.
Je mets ce code
const Discord = require("discord.js")
const client = new Discord.Client()
const config = require("./config.json")
client.on("ready", () => {
console.log("Client is ready !")
})
client.login(config.token)
et des que je mets node index.js
ca me mets cette erreur
^
TypeError [CLIENT_MISSING_INTENTS]: Valid intents must be provided for the Client.
at Client._validateOptions (E:\Discord.js Bots\codebot\node_modules\discord.js\src\client\Client.js:548:13)
at new Client (E:\Discord.js Bots\codebot\node_modules\discord.js\src\client\Client.js:76:10)
at Object.<anonymous> (E:\Discord.js Bots\codebot\index.js:3:16)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47 {
[Symbol(code)]: 'CLIENT_MISSING_INTENTS'
}
tu n'as pas mentionner tes intents
Comment je fais ca 👀
Tout est la @tacit shore
Yes merci bg ca marche
pas de prob bonne soirée si tu d'autre problème mentionne moi j'essayerais dis répondre de plus vite possible
tu te mets au js dis donc
Yes Merci frerot 😉
Oe et c'est vraiment pas plaisant 😢
tu parle de moi de CodeOs
@visual sequoia Tu sais pourquoi ca me fais ca ?
import DiscordJS, { Intents } from 'discord.js'
import dotenv from 'dotenv'
dotenv.config()
const client = new DiscordJS.Client({
intents: [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MESSAGES
]
})
client.on('ready', () => {
console.log('The bot is ready')
const guildId = '900420087809466399'
const guild = client.guilds.cache.get(guildId)
let commands
if (guild) {
commands = guild.commands
}else {
commands = client.application?.commands
}
commands?.create({
name: "ping",
description: 'Replies with pong'
})
})
client.on('interactionCreate', async (interaction) => {
if (!interaction.isCommand()){
return
}
const { commandName, options } = interaction
if (commandName === 'ping') {
interaction.reply({
content: 'pong',
ephemeral: true
})
}
})
client.login(process.env.TOKEN)
heum je sais pas trop mais ta suivie la template pour commencer un bot v13 car la v13 ses un bordel monstre
Je suis entrain de suivre un tuto mais pour lui ca marche et pas moi alors qu'on a exactement la meme
etrange mais perso je te conseil pas de regarder des tuto car il sont pratiquement toujours outdated
Meme ceux de la v13
oui
sa arrive souvent
je te passe une template stv
Non c'est bon le con que je suis n'a pas donner les bonne perms quand j'invitais le bot
ahah

toi aussi non ?
Bah sa fait minimum genre 6 mois que j’en fait
S'il vous plait c'est quoi la fonction pour creer une categorie avec discord.js
j'arrive pas a trouver
:_: GuildChannelManager#create()
Creates a new channel in the guild.
Re !
J'essaie de fetch les channels du serv puis check la categorie et le nom mais ca me laisse pas acceder les valeur de la promesse ?
alors non du coup
tu dois check la parentId qui est l’id de la category tout en faisant un get de channels mais en cherchant l’id avec le parentId
fin j’ai pas trop compris ce que tu voulais faire mais pour get les categories c’est avec le parentId puis tu pourras voir les childrens ensuite
En ts le type de base quand tu fetch un channel c’est juste un Channel, donc soit tu forces le type en TextChannel, sois tu mets un // @ts-ignore
Let's go le ts-ignore
Ouais du coup juste vérifier via instanceof ou en faisant une condition sur GuildChannel.type
Sinon aucun intérêt le typescript
yep
Documentation suggestion from @timid loom:
:_: GuildChannel#type
The type of the channel
Ça du coup
Tqt je vois ce que tu veux dire merci, ||I WANNA DIE ||
ahaha, si t’as des soucis dis le on t’aidera
salut comment on sais si sont bot est rate limit
Du coup tu vas dans ton event ready
oe
oep
Att je cherches comment j'ai fait
vsy
fetch("https://discord.com/api")
.then(res => res.text())
.then(text => console.log(text));
Puis tu lance le code
Et si dans la console tu vois "too many request" t'es rate limit
🤔

ouais j'arrive
je t'explique la sitations
Yo question j'aimerais apprendre les bases de l'API Discord.js car j'en ai marre de regarder des tutos. Quelqu'un à des conseils svp ?
Tu suis des tutos, tu regardes la doc et tu test par toi même @novel crow
Ok merci
Dr
Hey, qqn c’est où on peut coder un bot en DiscordJS et l’héberger ?
Pour coder il va te falloir un editeur de code comme visual studio code ou intelij, après pour l’hébergement il va falloir passer sur quelque chose de payant si tu veux de la qualité
Bien sûr
👀
Ok 👍
Hey, vous n'aurez pas un bout de code qui génère des phrases en français?
Comment générer des phrases en français ?
depuis une autre langue ?
Non
Juste des phrases randoms
En anglais c'est pas compliqué y a des milliers de générateur
en français je pense pas que ça existe
des mots c’est ok mais alors des phrases 
des phrases sans aucun sens pourquoi pas
<title>
Aujourd'hui il y a un an, c'était le premier septembre. - French example sentence - Tatoeba </title>
Yeye
Trop simple alors
Bon après
Gen 50000 phrases d'un coup

Rechercher -> NordVPN -> Quick Connect

c’est pour faire quoi ?
Un model
De ML
Pour détecter le flood
Genre faire différence entre une phrases
Et du flood
Ex: frejhguvyeshgwetghtrhwgrfe
compliqué de détecter du flood après
Non
Faut juste lui donner plein de phrase
Non flood
Et il va comprendre a force
un peu useless quand même
bah fait avec les mots
c'est + simple je pense
mais si quelqu'un parle en abrégé ça va compter
Faut juste que je lui donne plein d'exemple
Le mieux
C'est de récolter les messages qui circulent
Tu lance un bot
Et il enregistre tout
Mais après pas très Privacy friendly tout ca

Yep
Oh merci
Pour l'api
Je dois pas me faire chier à scrap

En plus
J'ai les traductions
Si je veux
Salut, c'est normal ça quand j'installe le cli de vue ? ( je n'y connais absolument rien )
Salut, y’a pas de problème dans ce que tu montres 😅 Ça fait juste un résumé de ce qui a été installé en dépendances avec ça
d'acc merci beaucoup
Tu peux éventuellement faire la commande npm audit fix à la fin comme il te dit de faire, mais si c’est juste pour du dev et t’entraîner chez toi pas sûr que ça te soit utile
Bonjour commest est ce que jepeux get le nombre de salons sur un serveur avec discord.js svp ? J'ai essayer message.guild.channels.channelcount et message.guild.channelcount mais ça me renvoie undefined
Parce que cette propriété existe pas
La propriété c'est ça https://discord.js.org/#/docs/discord.js/stable/class/GuildChannelManager?scrollTo=channelCountWithoutThreads
Donc message.guild.channels.channelCountWithoutThreads
mmh d'accord
Comme le nom de cette propriété l'indique ça inclut pas les threads, si tu veux ça aussi il faudra que tu boucle dessus je vois pas trop d'autre moyen
Tkt
Encore plus long le truc mdrr
Mdr oui
Ptêt qu'ils comptent rajouter une propriété qui inclut les threads direct
🤷♀️
Je reviens vers vous encore une fois, comment est ce qu'on affiche l'icon du serveur ? j'ai tout essayer avec icon mais ça nemarche pas
je viens de voir qu'on peut afficher le lien de l'icon du serveur mais moi je veux afficher l'icon dans l'embed
dans le thumbnail pardon
les threads sont en cache / fetch 👀/ donc -> cache.size (Et attention le channelCount et le cache prend en compte les GUILD_CATEGORY, donc au pire tu peux filter la collection)
tu peux consulter la doc pour ce genre de questions ;)
:_: Guild#iconURL()
The URL to this guild's icon.
C'est ce que j'ai fais @sharp grail
c'est automatiquement en cache?
je savais pas
dans ce cas plus rapide oui
sinon obligé de fetch puis de reduce dessus
Les threads pas sur (donc faut fetch préalablement)
y a d'ailleurs une méthode pour fetch les threads actif
iconURL au lieu de icon @misty parcel
Pourquoi reduce ? x)
J'ai mis mais ça ne marche pas
bah ça fait un oneliner c'est plus clean qu'un for
c'est un exemple hein pas obligé
c'est ce qu'il a écrit
j'ai mis hein
Pourquoi pas .size ?
Il a écris juste iconURL, pas iconURL() 🤔
nn regardes au dessus
attends attends on va reprendre
?
le iconURl tu le met dans le setImage
bah tu fetch les channels et tu reduce dessus pour ajouter tous les .size des collections de threads que tu fetch aussi
c'est pareil hein au final
je vois pas l'intéret du reduce ici
rien c'est juste une façon de le faire
const members = message.guild.members.cache;
${members.filter(member => !member.user.bot).size}`
C'est ce que j'utilisais mdr
nan mais on parle pas de membres et dans tous les cas c'est pas un filtre qu'on cherche à faire

Ouais mais jfais pareil pour les channels
ah remarque le reduce sera chiant vu qu'il faut fetch les threads t'as pas tort @sharp grail
const channels = message.guild.channels.cache;
${channels.filter(channel => channel.type === 'text').size}
nan mais arrête mcduck t'as rien compris
Oui 👀 autant fetch les deux, et tu fais la somme de la size de chacune des collections
ça marche hein mais c'est pas ça qu'on veut faire
quelqu'un pour me sortie de ce bourbier please
🤔
🙏
euh oui deux sec je check
Merci
iconURL c'est une méthode de la classe Guild pas MessageEmbed
possible d'avoir ton code actuel sous format de block ?
// code
Mdr rip
rip
client.on('messageCreate', message => {
if(message.content === `${PREFIX}infoserver`){
const infoserver = new MessageEmbed()
.setTitle(`Serveur : ${message.guild.name}`)
.setColor("BLURPLE")
.setDescription(`Propriétaire du serveur : <@${message.guild.ownerId}>`)
.setImage(message.guild.iconURL())
.setThumbnail(message.author.avatar)
.setTimestamp()
message.channel.send({embeds: [infoserver]})
}
})
Ah ok
tu devrais utiliser .avatarURL() et non .avatar pour le setThumbnail
le line ?
oui
qu'est ce que c'est ?
Sa va juste mettre ton avatar 🤔
?
Reprenons
Sa mettras l'image
oui
La doc oublier
:_: User#avatar
The user avatar's hash
il faut une url dans le setThumbnail
là tu lui donne autre chose qu'une url
:_: User#avatarURL()
A link to the user's avatar.
donc ça fonctionne pas
t'inquiète x)
bah en faite le pb venait de set thumbnail
je pensais pas
alors j'ai mis avatarURL et ça a marcher
t'inquiète

J'ai une autre question mais j'ai l'impression d'abuser
un autre pb plutot
Je vous vois venir j'ai regarder la doc mais y'a rien ou alors le nom n'est pas aidant
?
t'es sur que tu regardes dans la bonne classe par exemple ?
Je pense que oui
Je pense avoir trouver, je cherche à classer uniquement les channels textuel, du coup il faut faire un filter ?
oui
après attention
t'as éventuellement le GUILD_NEWS que tu pourrais considérer comme un channel de type text
`Textuel: ${message.guild.channels.cache.filter(
(ch) => ch.type === "GUILD_TEXT"
)}`
J'ai essayer ça
Bon je comprends plus rien
en faitre j'ai une erreur mais elle ne me dis pas a quelle ligne
oui ça me parait correct
montre 👀
.addField("Infos général", [
`ID: ${message.guild.id}`,
`Nom: ${message.guild.name}`,
`leader supreme: ${message.guild.ownerId}`,
])
apparemment l'erreur vient de la
Salut, qui aurais un bon lien pour expliquer à quoi sert Vue s'il vous plait ?
merci
la value d'un field ne peut pas être un array
seulement un string
ah
client.on('messageCreate', message => {
if(message.content === `${PREFIX}infoserver`){
const infoserver = new MessageEmbed()
.setTitle(`${message.guild.name}`)
.setColor("BLURPLE")
.setDescription(`Informations sur le serveur`)
.setImage(message.guild.iconURL())
.addField("Infos général",
`ID: ${message.guild.id}`,
`Nom: ${message.guild.name}`,
`leader supreme: ${message.guild.ownerId}`,
)
.addField("Salons",
`Textuel: `,
`Textuel: ${message.guild.channels.cache.filter(
(ch) => ch.type === "GUILD_TEXT"
)}`,
`Total: ${message.guild.channels.cache.size}`,
)
.setThumbnail(message.author.avatarURL())
.setTimestamp()
message.channel.send({embeds: [infoserver]})
}
})
Du coup j'ai modifier mon code et voila
Voila ce que ça m'affiche
:_: MessageEmbed#addField()
Adds a field to the embed (max 25).
:_: EmbedFieldData
Alors je me base sur ce code la, est ce qu'il est bon ?
A moitié (v12), mais c'est pas ce que tu fais
ah c'est de la v12
excuser moi lorsque je lance mon bot j'ai cette erreur
Uncaught Error [DISALLOWED_INTENTS]: Privileged intent provided is not enabled or whitelisted.
Process exited with code 1
Quelqu'un a une solution ?
Vérifie que les intents que tu as activé sur ton client sont bien autorisés sur le dashboard des bots de Discord
Ca me casse la tête, mon bot fonctionne en local mais quand je le met sur mon vps ça marche plus
Même en réinstallant ffmpeg-static qui avait résolu le problème en local ça marche toujours pas
ah bah
Je comprend quand même pas pourquoi
Tu as bien installé ffmpeg..? Le package est c'est juste un helper pour formater la commande
Le soucis a été régler si jamais @past nimbus
Okok
let sql;
//check si le joueur existe
function userExist(userId){
const sql = `SELECT currentLevel FROM Users WHERE discordId = ${userId}`
con.query(sql, async(err, req, res) => {
if(err) throw err;
console.log('test1')
if(!req[0]) return false
else return true
})
}
//ajout du joueur si il n'existe pas
let exist = (await userExist(message.author.id))
if(exist == false) {
console.log('test3')
sql = `INSERT INTO Users VALUES (${message.author.id}, 0, 0, 0, 0, "user", "user", NULL)`;
con.query(sql, (err, req, res) => {
if(err) throw err;
console.log('user add')
})
}
Je ne comprends pas pourquoi le if n'attends pas que la function est fini de load avant de partir car là, ducoup exist est undefined pour le if.
Si vous pouviez m'aider ce serait gentil.
bonjour, mon bot discord créer tout seul un channel au moment où une réaction est cliquer (ce que je veut) j'aimerais egalement qu'il modifie les permissions du salon afin qu'il ne sois pas visible par tout le monde, comment puis-je faire ?
if(interaction.values == "option1"){
var channel_ticket = interaction.message.guild.channels.create('Developpement', {
type: 'text',
parent: "942804032345501767",
permissionOverwrites: [{
id: interaction.message.guild.id,
deny: ['SEND_MESSAGES'],
allow: ['ADD_REACTIONS']
}]
}).then(channel_ticket => {
channel_ticket.send("<@" + interaction.user.id + "> bienvenue");
channel_ticket.send({embeds: [embed_ticket_on], components: [close]});
})
interaction.reply({content: "le salon a été créer dans la catégorie Developpement ou bug ", ephemeral: true});
}
voici mon code, comment puis je faire s'il vous plait ?
dans le deny tu mets VIEW_CHANNEL et tu enlèves le allow avec ADD_REACTIONS qui a pas vraiment de sens
mais comment je fait pour que citoyen puisse pas voir le channel, mais la personne qui clique puisse ^^
Tu fais un nouvel objet dans ton array de permissionOverwrites
Tu interdis a everyone de voir le channel mais tu autorises une personne en particulier
merci je vais essayer
id: interaction.message.guild.id,
c'est ici que je met everyone ?
d'accord merci et pour mettre a un role je modifie guild ?
tu mets :
permissionOverwrites: [
{id: interaction.message.guild.id, deny: ['VIEW_CHANNEL']},
{id: /* id de ton role ou utilisateur*/ , allow: ['VIEW_CHANNEL']}
]
Soucis régler depuis ? @normal lichen
@neat lintel juste mettre lid du rôle fonctionne 🤔
Merci oui j’ai trouvé, j’ai également trouvé pour set les permissions de la personne qui clique sur la réaction ^^
Dac ba nickel @normal lichen
Bonjour j'ai une erreur que je trouve pas
const Discord = require("discord.js");
require("dotenv").config()
const Client = new Discord.Client();
Client.on('ready',() => {
console.log("le bot et connecté ",Client.user.tag);
});
{
(!message.content.startsWith(PREFIX)||message.author.bot)
const args = message.content.slice(PREFIX.length).split(/[ ]+/);
const Command = args.shift().toLowerCase();
(Command == "ping")
message.channel.send("pong")
}
Client.login(process.env.CLIENT_ID)
A ok
A la limite regarde
Suis le tuto https://g-ca.fr/tutoriels/tutoriel/creer-un-bot-discord-le-code
et a la place de js const client = new Client({ partials: ['GUILD_MEMBER', 'CHANNEL', 'USER', 'REACTION'] })
met ```js
const client = new Client({
intents: ["GUILDS", "GUILD_MEMBERS", "GUILD_PRESENCES", "GUILD_MESSAGES", "GUILD_VOICE_STATES", "GUILD_MESSAGE_REACTIONS"],
partials: ['GUILD_MEMBER', 'CHANNEL', 'USER', 'REACTION']
})
Le génie
Ok merci
Si tu y arrives pas, tu reviens ici @cedar breach stuveux
Bonjour je suis entrain de créer un bot ticket et modération, je suis entrain de mettre les logs du bot et j'aimerais que dans l'embed de log la personne cliquant sur le menu deroulant sois mentionner dans cette embed, comment puis je faire ?
Voici la definition de l'embed:
const log_ticket_on = new Discord.MessageEmbed()
.setColor("FAC003")
.setAuthor('StarLife',','')
.setDescription("ouvert un ticket")
Voici le moment ou j'envoie l'embed:
if(interaction.isSelectMenu()){
if(interaction.customId === "selection1"){
console.log("un ticket a été ouvert");
Client.channels.cache.get("943142533670764564").send({embeds: [log_ticket_on]});
interaction.member.toString() ?
j'y ait penser mais me dit une erreur avec le "interaction" vue que je defini pas l'embed dans lintreactioncreate ^^
Bah, définit le dedans
non c bon j'ai réussi, désoler
Hello, je suis à la recherche d'un projet à faire en js des idées ?
projet débutant
Recode Discord
Ou slack au choix
euh non ca va allez 🤣
Je te laisse 8h je suis pas sadique non plus
je viens de finir la v1 d'un réseaux sociall
à je pensais que tu me laisse 30 min
Fait un calculateur dip
c'est quoi dip ?
Ip
tu veux pas dire d'ip
je n'ai aucune idées de comment ça fonctionne
C’est le moment de comprendre à travers JS
bon je vais allez me renseigner merci
quand tu dis un calculateur d'ip, c'est juste récupérer l'ip ? @bold sparrow
je pense car je ne trouve rien sur internet
je comprend pas le terme calculateur juste
ahh ok
Déterminer un sous réseau j'imagine
Nbr de clients / IP pour un réseau données (IP/masque)
Le lycée ? 🤔
nsi peut être
sti2d juste 
Hey
Il y a une liste qui existe qui met tout les apis disponible ? (Pour générer des images et autres)
👀 @sharp grail
Merci 😉
Je suis le dev d'un assez gros bot, et j'ai remarqué que depuis quelques jours mon bot possède beaucoup de latence
Genre il répond 5 secondes après l'appel de la commande
pleasure
12 serveurs mais avec plus de 6000 membres
c'est peut-être juste ton serveur qui est pas dingue alors
Rien à voir les 6k de membre pour le coups
car ce n'est rien 12 serveurs, même si tu avais 10* + de membres
Faut opti !
a moins que les 6K spam les commandes ce qui pourrait ralentir le process je pense, là non c'est plus un soucis de perf
Que as-tu comme perf sur ta machine ?
Soucis de perfs, soucis d'opti, ou soucis de ce que fait ton bot ? 🤔
Oui mais j'ai un bot avec plus de 120 serveurs, le code est plus au moins similaire et j'ai 0 problème de latence
Ou les 3 🤔
sur le meme serveur ?
Après, les membres/serveurs, on s'en fous un peu
C'est savoir si le bot est utlisé ou non
(serveur => machine dans mon sens)
Oui mais si ils usent pas le bot, c'est useless
ma question est juste de savoir si c'est sur la même machine
mais oui 120 serveurs ce n'est rien non plus
c'est pas ça qui va rendre le bot lent c'est sur :p
Yep
ça dépend de ce fait le bot après
847 discords sur mon bot vérifié qui est hors ligne maintenant, et j'avais 0 soucis
Des choses normales...
Des commandes de modérations, d'administrations,...
Tout dépend de l’opti, mon bot était arrivé avant que je le delete sur 21k serveurs et j’avais 0 problèmes non plus
sans sharding ?
Au pire dites moi si je vous fait chier les gars ??
Avec
Non non désolé :)
Ah oui donc c'est logique
Un peu 🤷♀️ Sinon, on ta posés une question, on attends ta réponse mdr
c'est pas possible sans je crois
en tout cas pas avec discord.js
Pour les gros bots go eris 👀
Est-ce que tu as qqc genre qui fait plusieurs requêtes bdd (genre mysql) quand qqn envoie un msg ? Je sais que si il y a beaucoup de messages ça peut vite faire lag le bot
Cquoi eric 🤔
Nope 2.5k max/shard
eris c’est une lib like djs
Eris, a NodeJS Discord library
pour les gros bots tu fais à la main
Ah ok
Non j'ai verif il fait vraiment peu de requetes à l'api
trop chiant d'être dépendant d'une lib ou quoi à ce niveau
yes mais ton serveur a d'autres choses dessus ?
d'autres process qui tourne aussi ? peut-être qu'il ne tient pas la charge
(serveur => machine je le redis)
Bdd !== api

Bdd c’est la base de données
Bdd, je fais vraiment peu de requetes tkt
après tout dépend de comment tu fais tes requêtes aussi
Non j'ai que ce process
Même 2 si c’est à chaque message et qu’il y a bcp de messages ça fera lag
selon l’opti de ton code ça ralentira le process, logiquement
faut voir l’opti de ton projet et les specs de ton serveur
Moi jfais 50 requêtes, ya quoi ? mdrr
oui à la limite envoie leur ici un exemple de commande qui effectue des requêtes
Oui bah rip l’opti
je vais rien dire
😭
encore heureux 
Jfais une requête par commande, trkl 🤔
@glossy ledge
Mais t’es plus staff toi ?
Non, il est moche askip 🤔
Ça se voit
Bah juste un script d'une commande ping a de la latence
si il a plus le rôle c’est que non, no drama on s’aime tous 
En vrai, jsp, très bonne question
message.channel.send({ content: 'pinging...' }).then(m => {
m.edit(`🏓 Pong ! ${m.createdTimestamp - message.createdTimestamp}ms. Latence de l'API: ${Math.round(client.ws.ping)}ms`);
});
Montre ton command handler
peut-être ton serveur qui a du mal alors aussi
Oui tkt ||nan jt’aime pas moi||
Cquoi les perfs de ta machine ? @glossy ledge
moi si
Attends son command handler avant mdr
On verra après ça
Faut déjà qu’on ai le code 
Yes
@glossy ledge
Calculer adresse réseau, adresse machine, déterminer la classe même si ça existe plus aujourd’hui, nombre de machines possibles, bits dédiés etc etc
Calcul en binaire, décimal etc
Bonjour, est ce que un bot discord peut être connécté a une base de donnée en localhost pour les test ?
Oui
je vous remercie
Oui, socket.io c'est simplement du ws (pas très opti mais c'est un autre sujet)
Yep je confirme tu peux 👍
bonjour excuser moi, je suis entrain de rentrer des données de mon bot dans une base de données, et j'aimerais insérer l'heure a laquelle le membre rejoin le serveur, mais ma colonne sql me dit "mauvais parametre pour "date", du coup j'aimeerrais savoir si c possible que dans mon index.js je récupére l'heure a laquelle le membre rejoin pour l'insérer
Le format de la date est le bon ?
j'ai créer la colonne date, en timestamp et auto incrément, j'ai également essayer les autres (date, time) et ca ne fonctionne pas nonplu
Pourquoi l’avoir mit en auto increment ?
Aussi, montre nous le format de la date que tu essaies de save en bdd
parce que je souhaite que la date s'inscrivent toute seul lors de la creation ^^
je vous montre ca
Auto increment ce n’est pas ça
Auto increment, c’est pour que a chaque fois que tu ajoutes une ligne dans ta bdd, la variable qui est en auto increment soit augmentée de 1
Pour des ID par exemple
d'accord merci, comment puis-je faire alors pour que la date de la creation de la ligne sois mise automatiquement ?
timestamp ?
Non tu peux laisser en date, mais dans ces cas là enlèves le auto increment, et tu seras obligé quand tu ajoutes la ligne de mettre la date avec
il faut que dans ma requete j'insére la date également ?
Oui
Client.on("guildMemberAdd", async member => {
db.query(INSERT INTO membres(id_user, user, date) VALUES ("${member.user.id}", "${member.user.username}", "${member.joinedTimestamp}"))
j'ai cette requete, mes champs sont bon, mais comment puis-je recuperer la date alors s'il vous plait ?
Ça dépend comment tu veux mettre la date dans ta base de données, en timestamp (nombre de secondes écoulées depuis le premier janvier 1970, donc un grand nombre), ou alors une date style 1er Janvier 1970 à 0h00 ?
du style 1 janvier 1970 a 00h00 ^^
Ok, dans ces cas là créer une nouvelle date avant ta requête (avec l’objet Date), et dans ta requête tu remplaces ton member.joinedTimestamp par la date
je vous remercie
Bonjour combien y'a t'il de choix maximum qu'on peut mettre dans un select menu please ?
Illimité ?
ah oui ?
Si c'est plus grand que l'écran je pense qu'un scroll va se rajouter
Techniquement c'est limité par ce que ton navigateur peut soutenir, mais dans cette situation tu peux considérer que tu as le champ libre
salut, j'ai crée un mod mail simple mais j'ai une erreur que je n'arrive pas à resoudre https://i.imgur.com/Ef9D22o.png
https://i.imgur.com/Nd0Geco.png
pouvez vous m'aider ?
message.guild.members.cache.get(message.author)
qu'elle est mon erreur ?
pour que je comprenne
c’est pas ton code ?
La plus par si, mais j’ai essayé de le crée avec des resources git Hun
après si tu veux vraiment comprendre, tu vas sur la doc et tu parcoure les méthodes voir où est ton erreur
Github*
Je comprend pas l’erreur, c’est pour sa que je poste un message ici
ton code était juste deprecated
ça a changé depuis
look la doc tu verras
et fais gaffe à ton token
regen le
la doc de djs est super attractive
np
25, si tu parlais d'un sélect menu discord
Je regarde message.guild. Members sur la doc et normalement je vais trouvé
sinon
:_: Message#member
Represents the author of the message as a guild member. Only available if the message comes from a guild where the author is still a member
➜ ExtendableEvent.ExtendableEvent()
Experimental: Cette fonction est expérimentalePuisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.
Example:
var myExtendableEvent = new ExtendableEvent(type, init);
➜ ExtendableEvent
L'interface ExtendableEvent étend la durée de vie des événements install (en-US) et activate (en-US) envoyés dans la portée globale dans le cycle de vie du service worker. Elle s'assure que les événements fonctionnels (comme FetchEvent) ne soient pas distribués avant de mettre à jour les schémas de la base de données et de vider l'ancien cache.
➜ extends
Le mot-clé extends est utilisé dans les déclarations et expressions de classes afin de signifier qu'un type représenté par une classe hérite d'un autre type.
Example:
class ClasseFille extends ClasseParente { ... }
Non effectivement discord.js l'a retiré
ha, comment le remplacer ?
si je met a jour le module discord commando
sa devrait fonctionner ?
Le module discord-commando n'est plus maintenant
C'est une mauvaise idée de continuer à l'utiliser
hm :/
passe en v13 avec Sheweny
Salut la team, dite moi j'ai fait ca :
index :
const ASCIIColorLog = require('ascii-color-log');
bot.log = new ASCIIColorLog();
bot.config = require('./config/config.js');
bot.couleur = require('./config/couleur.js');
bot.login(bot.config.token);
module.exports = bot;
unfichierrandom.js
const bot = require('../index.js');
function init() {
bot.log.success("Module ready charger");
}
module.exports = init();
mais
bot.log.success("Module charger");
^
TypeError: Cannot read properties of undefined (reading 'success')
en faite je veut eviter de faire 100 import dans mes fichier pour les fonction que j'utlise tout le temps
dans le fichier index le bot.log marche mais pas dans les autres
transformes exports.modules = bot; en module.exports = bot;
Je vien de corriger mais toujour la meme erreur du coup
si je log le bot ca me sort juste un {}
Pourquoi tu fais pas du ES6 ?
J'ai tenter XD mais je sais pas faire un module handler en es6 XD
le code utilise déja ES6, il y a des fonctions fléchées
si tu parles de la syntaxe esm, c'est plus répandu le cjs que le esm avec node pour l'instant
Sinon utilise Sheweny et t’embête pas
C'est pas parceque c'est plus répandu (à vérifier) que c'est bien pour autant
et de là tu pourras export tes modules etc dans ta class directement avec des this.x = client.options.x
j'aime bien faire moi en "native"
pour ca que ""
xD
essayes d'exporter ton client avant de charger les modules alors
ça c’est sûr
aah peut etre XD
avec cjs tout est synchrone les require donc ca vient surement de ca déja
c'est bon ca marche xD juste debile du coup c'est bien pcq je charger apres les modules
oof 1 ou 2 ans mais des heure pas ci par la avec des pause de 4 mois XD mais bon j'arrive a oublier des truc si con .. XD
Okok
excuser moi je pense que cette question est stupide, mais peut-on connecter un bot discord localhost a une base de donnée d'un jeu heberger sur un serveur ?
Oui
Bien sur si ton hébergeur autorise la connexion a distance au mysql
Si la db est publique
je vais essayer je vous remercie, comment savoir si elle est publique ?
Si il te donne une IP et un port
j ai un username et un mot de passe
C'est quel jeu ? Dans quel contexte ?
c un serveur fivem, j'ai username, mot de passe, ip de connexion et port base de donnée
est ce cela qu'il faut ?
Oui, c'est pas très sécurisé mais bon ^^'
je sais mdrr mais la connexion fivem bd demande tout cela pour fonctionner ^^
Ce que je veux dire c'est avoir une db accessible sur internet, sans passer par un proxy, une whitelist etc...
ah d'accord je vous remercie ^^
salut, première fois que j'ai cette erreur et je sais pas comment je peut la réglé
https://i.imgur.com/YBGA3KD.png
Bonjour bonjour !
J'ai un code js qui me permet de jouer une animation, pour cela, j'enchaine les différentes images de l'animation en changeant la source de mon image.
L'animation se joue, hors au début avant que les images soit chargé j'ai du coup des moments "blanc"
Est il possible de "précharger" toutes les images avant le lancement de l'animation ?
Merci beaucoup !
Créer pour chaque image que tu veux charger une <img> en visibility hidden; ou display: none; (a voir lequel fonctionne)
Je pense que ça peux fonctionner
Sinon j'ai trouvé ça https://stackoverflow.com/questions/3646036/preloading-images-with-javascript
L'idée c'est que je charge l'image dans un canvas et que j'ai un 20ene de petite images pour l'animation du personnage 🤔
https://guillaume-delfly.fr/#/parcours
Mais du coup lorsque on démarre le jeu y'a un effet de blanc et de lag, si on a vraiment une mauvaise co les images ont meme pas le temps de charger et comme on passe à l'animation suivante on ne voit même plus le personnage
tu devrais charger tes images dans une seule, un sprite
ca aidera un minimum je pense
Mh c'est ce que je voulais évité parce que je trouvais ça galère, mais pas le choix je suppose
Merci de l'aide du coup!
Bonjour, j'aimerais attribuer un role lorsque un menu selection est cliquer, mais je n'arrive pas a attribuer le role, j'ai ce code, quelqu'un peut me dire l'erreur s'il vous plait ?
Client.on("interactionCreate", interaction => {
if(interaction.isSelectMenu()){
if(interaction.customId === "rolereactionp"){
if(interaction.values == "console"){
interaction.reply("console");
interaction.roles.add("943554790405845032");
}
Oui, il faut que tu cibles le membre et non l'interaction en elle meme.
Remplacer interaction.roles.add("943554790405845032"); par interaction.member.roles.add("943554790405845032"); devrait régler ton soucis 👌
d'accord je te remercie^^
quelqu'un s'y connait en expression régulière (regXp) ? '^'
ne demande pas, pose directement ta question et tu verras si quelqu’un te répond 👀 (https://dontasktoask.com/fr/)

ah lets go
level 5
trofor
du coup ok
Bah en gros je veux faire du mini traitement de texte en javascript, et j'utilise les regXp avec str.match(), et je ne comprends pas comment utiliser ^ et $ pour signifier que le texte doit commencer ou finir par quelque chose
Perso, si tu veux test des regex
Thanksss
Si j’ai bien compris, en gros tu dois escape ton ^ en début par un anti slash qui le suit, et pour l’autre c’est la même chose sauf que tu escapes à la fin ( je crois ) 🤔
🤔
Ouais c’est flou je sais 🤔
at Object.Module._extensions..node (node:internal/modules/cjs/loader:1185:18)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at bindings (/root/Puty-Logs/node_modules/bindings/bindings.js:112:48)
at Object.<anonymous> (/root/Puty-Logs/node_modules/better-sqlite3/lib/database.js:9:24)
at Module._compile (node:internal/modules/cjs/loader:1103:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
at Module.load (node:internal/modules/cjs/loader:981:32) {
code: 'ERR_DLOPEN_FAILED'```
quelqu'un sais pourquoi?
c'est sur mon vps sa me le fais
sinon en local-host tout marche correctement
réinstalle les node_modules
npm ci
supprimes le package-lock et le dossier node_modules et surtout ne fait pas de copier-coller du dossier
il me semble que c'est userUpdate pour l'avatar global et guildMemberUpdate pour l'avatar de guild
Ok
Bijour je cherche un moyen de reproduire ca sous reactjs mais je trouve rien de bien fous :/ https://www.youtube.com/watch?v=7AXFDn5qKo4 Quelquun aurait une idée ?
Circular ListView is a library that allows developers to easily create a looped circular list view. Scrolling up or down you can select the target item.
You can find the project at Codecanyon Envato Marketplace: http://codecanyon.net/item/circular-listview/14206478?ref=bandst
A demo app made with this library is available on Google Play Store:...
Tu peux t'inspirer de quelque chose qui existe déjà
cool mais j'ai pas trouver le moyen de 'scroll' dans le vide
Salutation, jaimerais connecter un input select file a mon threejs pour faire un systeme d'import de model GLTF. J'ai actuelement un loader et un input mais je ne sais pas comment le relier! merci d'avancer :p
hey, je viens de résoudre mon problème en stockant mon fichier gltf localement, c'est plus que suffisant pour mon utilisation :p
Ca doit être une connerie en jouant avec overflow, les props de scroll
a
Je suis nouveau sur Java Script, j'essaye de faire des scripts sur Visual Studio Code avec Discord.js, une personne peut m'expliquer un peu comment ça marche, le langage...
Commence par apprendre les bases de Javascript 😇
Justement, je vous demande de m'aider sur ça
Salut J'ai besoin de comprendre deux ou trois truc NextJs peut faire le back et le front en meme temps ? car j'aimerais faire un dashboard mais je ne sais pas trop quoi utilisé pour le faire :/
Youtube/doc pour apprendre
Non next.js c'est comme nuxt.js
ça te gère le rendu côté serveur
tu peux surement faire un côté api comme nuxt 3 mais ce sera de façon légère pour faire des petites requetes
je suis pas sur de ça a 100%
Pas forcément mais oui c'est un framework front pas back
https://nextjs.org/docs/api-routes/introduction ouais c'est ça t'as une partie API
mais bon j'irais pas la faire dessus si c'est huge
alors je vais rester sur AdonisJS 😄
mais next c'est cool tu vas booster ton référencement
tu peux le faire sur react aussi direct mais plus chiant a mettre en place
Heyy, j'ai un petit problème depuis tout à l'heure, quand j'allumes mon bot il marche pendant les 10 premières secondes, et après plus rien, pourtant il ne crash pas, aucune erreur en console mais il passe hors-ligne sur Discord et ne répond plus aux commandes/interactions... Est-ce que quelqu'un sait d'où ça peut venir ?
(Me ping)
c'est pour ca que je me suis mis sur next 😉
tu n'as aucune erreurs ?
Nope
We need your code
Voilà la console
quelle partie ? 
hier tout marchait et j'ai rien changé depuis
Bah pour le coup on peut pas savoir quelle partie si on a aucune erreur
Je vais essayer sur un bot de test voir si le problème vient du bot
Ca ne vient pas de l'API Discord c'est sur
Sinon tu aurais des erreurs
Mais c'est peut-etre betement une requete HTTP qui foire et qui stop ton bot ou je sais pas
Mais sans code on peut pas t'aider en tout cas
Il n'y en a pas
Quand je passe sur mon bot de test tout marche nickel
pas d'erreur non plus mais le bot reste en ligne et répond aux interactions
ton bot des test est aussi sur linux ?
oui j'ai juste modifié le token dans mon config.json donc même machine, tout pareil juste token différent
c'est pas un soucis d'autorisation du bot ? un truc coché ou non ? les intents ?
bah pourquoi le bot de test marche ?
alors qu'il est sur le même hébergeur, même machine
comment je peux vérifier ?
tente avec ça
je vais essayer avec l'event error voir si j'ai qqc
Yep bonne idée, shardDisconnect éventuellement aussi ?
t'es sur que ton bot se connecte même ?
Yep
l'event ready donne quelque chose?
dans les 10 premières secondes après l'avoir lancé les commandes marchent
et après
plus rien
très étrange
sûrement un problème de rate limit dcp pcq ça marche très bien sur un autre bot
je le relancerais demain pour voir
yep 🤔
J'ai un petit problème quand je veux démarrer le bot le terminal indique qu'il ne voit pas les modules
Tu les a install au moins ?
Yep
Ta supprimés/refais les installations ? @onyx summit
possible d'avoir le message d'erreur?
Aussi
Je suis sur téléphone
Ou att j'allume mon mac
Ta bien un dossier node_modules ?
Non aucun
Tu as que sa en erreur ?
un coup de npm i
Dja fais
Oui
Dacc je le ferais demain
Np
Bonsoir j'aurais besoin d'aide car sur cette boucle for je veut que si il y a plusieurs permissions que ça mette un "+" entre chaque permission et au contraire si il n'y qu'une permission ça mette pas de "+"
ton nombre correspond à une permissions à chaque fois ? Pourquoi pas juste verifié si nombre.length est supérieur à 1 ?
Alors déjà merci de m'avoir répondu, ensuite oui et Oui mais si il y a 3 permission ca va faire comme ça ADMINISTRATEUR + GÉRER LES MESSAGES + GÉRER LES CHANNELS +
il suffit de mettre la condition "si c'est superieur a 1 et i est inferieur à nombre.length -1" ?
ça te permets de pas mettre le "égal" sur le dernier passage de la boucle ^^
d'accord bas je vais essayer ça merci
Pas de soucis ! Hésite pas
Alors j'ai fait ça, je suppose que j'ai fait un erreur
if (1 < nombre.length) {
if (nombre.length + 1 > i) {
permissionsenfr = `${permissionsenfr} + `
}
}
Oui ! Relis bien ce que j'ai écris !
if(nombre.length > 1 && i < (nombre.length-1))
c'est ça ta condition
Ah oui
Tu me fais signe si ça fonctionne !
tu vas garder toute cette boucle là ?
tu peux la lighter très facilement pour avoir un truc moins lourd
oui
Et comment ?
Tu peux commencer par avoir un fichier de traduction assez simple
{
"MANAGE_ROLES: "Modifier les roles",
//....
}
et venir juste chercher la traduction via la clé et le push dans un tableau
puis à la fin tu .join(' + ') ton tableau, comme ça il gère lui même si ll y a qu'un seul élément d'ajouter ou non le +
command.permissions te return quoi stp ?
si tu peux m'envoyer le truc que je vois ce serait cool
(3) ['MANAGE_CHANNELS', 'MANAGE_MESSAGES', 'ADMINISTRATOR']
ok avec ce que tu m'as envoyé en mp, par exemple tu pourrai juste faire ça
const trads = {
MANAGE_MESSAGES: 'Gérer les messages',
MANAGE_CHANNELS: 'Gérer les channels',
ADMINISTRATOR: 'Administrateur'
}
const permissions_translated = command.permissions.map(perm => trads[perm]).join(' + ')
voilà
j'essaie
a toi d'ajouter toutes les traductions dans l'objet trads évidemment sinon ca va te return des undefined dans ton tableau
Yes bas niquel, merci à vous deux 😉
J'étais plutôt partie pour gardé ta base sans trop compliqué la chose ! Merci à lui surtout !
Tu pourrais faire plus simple en récupérant l'interface des PermissionsResolvable
👀
c'est-à-dire ?
Discord propose des interfaces pour faciliter la tâche, mais de ce que j'ai compris tu travail avec JS, autant pour moi !
Ah oui je travail en js, pas grave
Yep désolé, ça va te prendre un p'tit moment pour traduire toutes les perms x)
Bon courage!
const trads = {
MANAGE_MESSAGES: 'Gérer les messages',
MANAGE_CHANNELS: 'Gérer les channels',
ADMINISTRATOR: 'Administrateur',
CREATE_INSTANT_INVITE: 'Créer une invitation instantanée',
KICK_MEMBERS: 'Expulser les membres',
BAN_MEMBERS: 'Bannir les membres',
MANAGE_GUILD: 'Gérer le serveur',
ADD_REACTIONS: 'Ajouter des reactions',
PRIORITY_SPEAKER: 'Voix prioritaire',
STREAM: `Partage d'écran`,
SEND_MESSAGES: 'Envoyer des messages',
SEND_TTS_MESSAGES: 'Envoyer des messages Text To Speech',
EMBED_LINKS: 'Liens intégrés',
ATTACH_FILES: 'Joindre des fichiers',
READ_MESSAGE_HISTORY: `Voir l'historique des messages`,
MENTION_EVERYONE: `Mentionner en @Everyone`,
USE_EXTERNAL_EMOJIS: `Utiliser des emojis externe`,
VIEW_GUILD_INSIGHTS: `Voir les stats du serveur`,
CONNECT: 'Se connecter',
SPEAK: `Parler`,
MUTE_MEMBERS: `Mute les membres`,
DEAFEN_MEMBERS: `Mettre en sourdine`,
MOVE_MEMBERS: `Deplacer les membres`,
USE_VAD: `Détection micro`,
CHANGE_NICKNAME: `Changer de speudo`,
MANAGE_NICKNAMES: `Gérer les speudos`,
MANAGE_ROLES: `Gérer les rôles`,
MANAGE_WEBHOOKS: `Gérer les applications`,
MANAGE_EMOJIS_AND_STICKERS: `Gérer les emojis et les autocollants`,
USE_APPLICATION_COMMANDS: `Utiliser les commandes d'application`,
REQUEST_TO_SPEAK: `Demander pour parler`,
MANAGE_EVENTS: `Gérer les évenements`,
MANAGE_THREADS: `Gérer les fils`,
CREATE_PUBLIC_THREADS: `Créer des fils publics`,
CREATE_PRIVATE_THREADS: `Créer des fils privé`,
USE_EXTERNAL_STICKERS: `Utiliser des autocollants externes`,
SEND_MESSAGES_IN_THREADS: `Envoyer des messages dans les fils`,
START_EMBEDDED_ACTIVITIES: 'Lancer des activités',
MODERATE_MEMBERS: 'Modérer les membres'
}
Ce que tu peux faire si la générosité te vient, c'est de le poster ici #partage-ton-code 👀
Yes
Même si certaines traductions sont incorrectes
bas c'est déjà bien
Bien sûr oui, mais quitte à le partager autant traduire parfaitement
Fin du moins, ce qu'il s'en approche
Les quelles ne sont pas correcte ?
DEAFEN_MEMBERS
MODERATE_MEMBERS
Assourdir c'est pas très français, Mettre en sourdine ?
Bas enfaite je ne sais pas à quoi elles servent
Et MODERATE_MEMBERS c'est modérer les membres
DEAFEN, t'avais bon mais c'est pas français
READ_MESSAGE_HISTORY ce n'est pas pour voir les logs
Mais lire l'historique des messages
VIEW_GUILD_INSIGHTS, j'aurais plus dit voir les stats
je chipote sûrement désolé
tkt pas de soucis
SEND_TTS_MESSAGES
Tu peux pas le traduire par " envoyer des messages vocaux"
C'est juste envoyer des messages Text To Speech
ça devrait être bon
Ca me semble good globalement
C'est gentil de partager ça en tout cas
Ca devrait en aider plus d'un
pas de soucis et oui je pense
Yo, j'ai toujours le même problème qu'hier concernant mon bot. Lorsque je le lance, il répond pendant les 10 premières secondes, et après plus rien, aucune erreur en console mais il s'éteint...
J'ai attendu 24h pour voir si c'était pas un rate limit mais ça n'a pas l'air, donc si quelqu'un peut m'aider je ne dis pas non ^^ (Me ping)
ca ce passe sur ton PC ou sur un hébergeur spécifique ?
Sur un vps linux, mais quand je change le token du bot pour mettre celui d'un bot de test tout marche très bien et le bot reste en ligne
t'as tenté de regen le token?
Oui
avec les mêmes droits?
Yep
je vois pas alors dsl
et le bot qui pose problème est pas présent sur un serveur sur le quel le 2eme bot de test ne serait pas ?
Si mais j'ai pas d'erreurs dans la console donc je vois pas d'où ça vient
essayes d'écouter les évents "debug", "warn" et "error" pour voir si il y a pas une erreur qui ne serait pas throw
C'est ce que j'ai fait mais toujours rien 😢
Juste le bot reçoit plus aucun event, comme si je l'avais éteint à la main sauf que je l'ai pas éteint
et si tu émit un évent a la main avec client.emit('unTest') avec un setInterval ou setTimeout de 15minutes par exemple, l'évent est bien émit ?
oui par exemple. Et tu mets un listener de unTest à coté de tes autres évents comme messageCreate, guildMemberAdd etc
Pareil, au bout de 10 secondes ils arrête de log
(j'ai mit toutes les 2 secondes et il a log 5 fois depuis plus rien)
Bah la franchement je vois pas. Ton application a du cracher d'une façon ou d'une autre
Bon sinon comment je peux voir si il est rate limit ?
Tu as un évent rateLimit mais meme si ton bot est rate limit c'est pas censé le faire cracher
yep
mmh
sachant que quand je start mon bot avec l'event debug j'ai tout ça de log mais pas d'erreur
au bout de 10 secondes après il "crash" sans que la console crash
et avec un autre bot non ?
Nope avec l'autre bot il reste en ligne
ce code c'est toi qui l'a fait ?
les 3/4 voir plus
la base (event/command handler) ?
Si j'ai presque tout fait sauf une petite commande ou qqn m'a aidé
ah dac x)
Bah
si le programme continue c'est que l'erreur est catch quelque part (si c'est une erreur)
mais normalement je vois pas autrement comment ça pourrait influencer un event emit manuellement
tente juste un console.log() par ex ?
ça fait pareil quand je log juste
genre ça log pdt 10 secondes
et après plus rien
le setInterval il est placé où ?
dans mon main.ts
Je vais essayer en désactivant certaines parties de mon code pour essayer de voir d'où ça peut venir
Ok, bon bah le premier truc que j'ai désactivé à fait que mtn ça marche
donc bah je vais check pourquoi il crash
🤔
Up
Problème réglé !
une boucle qui tournait en rond
j'ai galéré pdt 3h pour un truc aussi con 😂
c'est pas grave 
mais du coup pourquoi ça marchait que sur un bot
t'avais une condition style if (client.user) .. ?
@fading glacierZuper
Nope juste le bot de base est publique et le bot de test n'était pas sur tous les serveurs
donc quand il trouvait pas le message qu'il devait trouver il passait
et quand je suis repassé sur le bot normal a marchait pas parce que il trouvait le message mais après le tirage au sort tournait en boucle à cause d'une petite erreur de merde 😂
@fading glacierDéçus de toi
pourquoi ?
Déçus !
bonsoir, j'aimerais que lorsqu'un joueurs rejoigne le serveur, il soit insérer dans ma base de données, j'ai ce code, mais rien n'est insérer dans ma base de donnée, pourriez vous m'aider ?
Client.on("guildMemberAdd", async member => {
const join = new Discord.MessageEmbed()
.setColor("FAC003")
.setTitle('StarBot')
.setAuthor({ name: 'Another Star', iconURL: '', url: '' })
.setDescription(`Bonjour, Bienvenue a toi sur Star Night RP ${member.user.username}, si tu souhaite jouer sur le serveur, tu doit lire le réglement, et te rendre en attente visa, un douanier te prendra en charge `)
.setTimestamp()
.setFooter({ text: 'AnotherBot', iconURL: '' });
console.log("un membre est arrivé");
member.send({embeds: [join]});
//Client.channels.cache.get("939579655911002190").send("<@" + member.id + "> est arrivé");
member.roles.add("943551839230636062");
member.roles.add("945337551969988698");
db.query(`INSERT INTO membres(id_user, username) values ("${member.id}", "${member.username}")`);```
l'id user correspond a l'identifiant du membre et le username au pseudo du membre
dans l'insertion base de donnée ?
Montre ta table sql @normal lichen
Hmmm
je pense que l'erreur vien de la requet, car lorsque il ya la requete rien ne fonctionne, alors que lorsque je la passe en commenatire tout refonctionne
db.query(`INSERT INTO membres (id_user, username) values ("${member.id}", "${member.user.username}")`);
bon bah non toujour pas ^^ je vais essayer de trouver mon erreur x)
db.query(`INSERT INTO membres (id_user, username) values ("${member.id}", "${member.user.username}")`), function(err) { if(err) throw err;}
Ducoups, pour voir l'erreur
/home/container/index.js:126
db.query(INSERT INTO membres (id_user, username) values ("${member.id}", "${member.user.username}")).catch(err => console.log(err));
^
TypeError: db.query(...).catch is not a function
at Client.<anonymous> (/home/container/index.js:126:113)
la voici ^^
mais l'erreur est le .catch rajouter a la fin la ^^
Ah euh, jamais use de catch perso 😦
je ne comprend pas la requete est pourtant bonne et la connexion base de données également
Essaye la modif que j'ai fais @normal lichen
j'essaye ^^
Mais c'est pas un code aux dessus qui fais foirer plutot ?
non car tout fonctionne, sauf qd je met la ligne db.query... ^^
Si tu met tout en commentaire et tu met juste la requête ?
sa ne fonctionne pas j'ai essayer ^^
Euh
Peut être ta connexion est fausse @normal lichen
elle est où ta connexion
Cquoi ce pseudo mdrr @oak turret
si tu juges, attention 
const db = mysql.createConnection({
host: 'localhost',
user: 'root',
port: '3306',
password: '',
database: 'AnotherBot'
});
port:3306
oui
const mysql = require("mysql")
Tu as fais les modifs et testé ? @normal lichen
oui j'ai supprimer le port et ce ne sont pas des " mais des ' ^^
toujour rien mdrrr
Bizarre
je comprend vraiment pas
j'ai un hebergeur en ligne pour mon bot avec une base de données, je vais me mettre dessus pour tester ^^
Tu dois pas await ta connection ?
Pourquoi l'await ?
j'utilise pas le module sql mais a priori n'importe quelle action avec un tier est async
j'ai un async dans mon Client.on("GuildmemberAdd") ^^
Ouais ?
D'ailleurs tu es sur que mysql gère les promises et pas uniquement les callback ?
(le package)
j'ai partiellement resolu le pb (j'ai honte de l'erreur que j'avais faite mdrr) mtn cela fonctionne pour le msg de bienvenue mais rien n'est ajouter dans la base de donnée
D'acc, maintenant modifie ta requête pour éviter les injections sql
Mais c'est une règle de base pour tout les accès à des bases de données (et autres)
petite question vue que je suis sur un hebergeur en ligne ma base de donnée a une ip de connexion
Et utilise le nouveau package, il ajoute les promises (qui ne sont pas dans celui de base normalement)
bdd.connect(err => {
if (err) throw err;
});
on est d'accord l'ip sans le port ce met en host ?
non je le met
vue que je suis sur une base de donnée en ligne je reprécise le port ?
Tu peut
db.connect(err => {
if (err) throw err;
});
aucune erreur ne s'affiche
je vais remettre le port
Normal
j'ai une erreur desormais !
code: 'ER_WARN_DATA_OUT_OF_RANGE',
errno: 1264,
sqlMessage: "Out of range value for column 'id_user' at row 1",
sqlState: '22003',
index: 0,
sql: 'INSERT INTO membres (id_user, username) values ("822464660686897205", "Deter187")'
}
db.query(`INSERT INTO membres (id_user, username) values ('${member.id}', "${member.user.username}")`);


