#javascript-typescript

1 messages · Page 100 of 1

fierce plank
#

Dcp j ai reusis mais mtn je voudrais savoir pourquoi est ce que bcrypt ne fonctionne pas

#

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");
            }
        })
    })
past nimbus
#

Tu comprend ce que tu fais dans ton code là ?

fierce plank
#

oui

cyan iron
past nimbus
#

Non mais tqt il sait ce qu'il fait

fierce plank
#

oui

#

je viens de clean

past nimbus
#

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

fierce plank
#

User.init ?

#

a la place ?

past nimbus
#

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...)

past nimbus
fierce plank
past nimbus
#

Honnêtement tu sais pas ce que font ces méthodes non ?

mental terrace
#

nan, en metant un $.write("") (c'est du vieux javascript) j'ai tout qui est log c'est pas ca

fading glacier
#

Tu le mets où ton $.write("") ?

past nimbus
#

De toute évidence non

fierce plank
#

bah tu m a demandé si je ne savais pas donc je t ai dit oui

mental terrace
# fading glacier Tu le mets où ton $.write("") ?
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")
        }
    }
}```
past nimbus
fierce plank
#

mais moi je te parlais de sequelize le js je sais

past nimbus
#

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

fierce plank
#

Ok

#

En tt cas c est bon j ai regler mon pb

tacit shore
#

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'
}
visual sequoia
tacit shore
#

Comment je fais ca 👀

visual sequoia
#

Tout est la @tacit shore

tacit shore
#

Yes merci bg ca marche

visual sequoia
oak turret
#

tu te mets au js dis donc

tacit shore
visual sequoia
tacit shore
#

@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)
visual sequoia
tacit shore
#

Je suis entrain de suivre un tuto mais pour lui ca marche et pas moi alors qu'on a exactement la meme

visual sequoia
#

etrange mais perso je te conseil pas de regarder des tuto car il sont pratiquement toujours outdated

tacit shore
#

Meme ceux de la v13

visual sequoia
#

sa arrive souvent

#

je te passe une template stv

tacit shore
#

Non c'est bon le con que je suis n'a pas donner les bonne perms quand j'invitais le bot

oak turret
visual sequoia
tacit shore
#

S'il vous plait c'est quoi la fonction pour creer une categorie avec discord.js

#

j'arrive pas a trouver

desert riverBOT
sharp grail
#

et tu renseignes en options le type GUILD_CATEGORY

#

@tacit shore 👀

tacit shore
#

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 ?

oak turret
#

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

fading glacier
#

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

past nimbus
#

Let's go le ts-ignore

timid loom
#

Sinon aucun intérêt le typescript

fading glacier
#

yep

desert riverBOT
#

Documentation suggestion from @timid loom:
:_: GuildChannel#type
The type of the channel

timid loom
#

Ça du coup

tacit shore
oak turret
#

ahaha, si t’as des soucis dis le on t’aidera

keen narwhal
#

salut comment on sais si sont bot est rate limit

hybrid elk
#

Du coup tu vas dans ton event ready

keen narwhal
#

oe

hybrid elk
#

Non index.js

#

Ca ira aussi

keen narwhal
#

🤔

#

hmm ok

hybrid elk
#

tout en haut tu met

#

const fetch = require("node-fetch");

keen narwhal
#

oep

hybrid elk
#

Att je cherches comment j'ai fait

keen narwhal
#

vsy

hybrid elk
#
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

cyan iron
#

@keen narwhal si tu veux je te le fais

#

Sinon avec postman ça va plus vite

hybrid elk
#

Ouais bah ma technique elle est bien

#

tu juge pas oké

keen narwhal
cyan iron
keen narwhal
#

viens mp

#

wailrone

cyan iron
#

ouais j'arrive

keen narwhal
#

je t'explique la sitations

novel crow
#

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 ?

dire latch
#

Tu suis des tutos, tu regardes la doc et tu test par toi même @novel crow

novel crow
#

Ok merci

dire latch
#

Dr

quasi warren
#

Hey, qqn c’est où on peut coder un bot en DiscordJS et l’héberger ?

fading glacier
quasi warren
#

Je peux faire du DiscordJS sur VS code

#

?

fading glacier
#

Bien sûr

sharp grail
#

Juste 👀

#

Discord.js c'est une libraire, fonctionnant avec node.js

keen narwhal
#

👀

sharp grail
#

donc pas un langage à part entière 🤔

#

(je voulais juste préciser au cas où)

deep torrent
#

Hey, vous n'aurez pas un bout de code qui génère des phrases en français?

oak turret
#

depuis une autre langue ?

deep torrent
#

Non

#

Juste des phrases randoms

#

En anglais c'est pas compliqué y a des milliers de générateur

oak turret
#

en français je pense pas que ça existe

deep torrent
#

J'ai trouvé ca

#

Je vais essayé de scrap leur api s'ils en ont une

oak turret
#

des mots c’est ok mais alors des phrases KaPOP

frank sparrow
#

des phrases sans aucun sens pourquoi pas

deep torrent
#
<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

oak turret
#

c’est pour faire quoi ?

deep torrent
#

Un model

#

De ML

#

Pour détecter le flood

#

Genre faire différence entre une phrases

#

Et du flood

#

Ex: frejhguvyeshgwetghtrhwgrfe

frank sparrow
oak turret
#

compliqué de détecter du flood après

frank sparrow
#

tu regarde si c'est pas du francais

#

au pire

deep torrent
#

Faut juste lui donner plein de phrase

#

Non flood

#

Et il va comprendre a force

oak turret
#

un peu useless quand même

deep torrent
#

Oh

#

Mais vu que j'ai rien d'autre a faire

#

¯_(ツ)_/¯

frank sparrow
#

bah fait avec les mots

#

c'est + simple je pense

#

mais si quelqu'un parle en abrégé ça va compter

deep torrent
#

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

frank sparrow
#

oui voila

#

au pire tu demande a un maximum de gens des phrases et tu insert hein

deep torrent
#

Yep

frank sparrow
#

en vrai ça peut être cool

deep torrent
#

Oh merci

#

Pour l'api

#

Je dois pas me faire chier à scrap

#

En plus

#

J'ai les traductions

#

Si je veux

frank sparrow
#

Salut, c'est normal ça quand j'installe le cli de vue ? ( je n'y connais absolument rien )

hazy mirage
#

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

frank sparrow
#

d'acc merci beaucoup

hazy mirage
#

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

misty parcel
#

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

timid loom
# misty parcel Bonjour commest est ce que jepeux get le nombre de salons sur un serveur avec di...
#

Donc message.guild.channels.channelCountWithoutThreads

misty parcel
#

mmh d'accord

timid loom
#

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

misty parcel
#

merci beaucoup

#

oui je vois

timid loom
#

Tkt

dire latch
#

Encore plus long le truc mdrr

timid loom
#

C'est clair quel enfer

#

Mais bon au moins c'est pratique et explicite

dire latch
#

Mdr oui

timid loom
#

Ptêt qu'ils comptent rajouter une propriété qui inclut les threads direct

dire latch
#

🤷‍♀️

misty parcel
#

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

sharp grail
sharp grail
desert riverBOT
misty parcel
#

C'est ce que j'ai fais @sharp grail

dire latch
#

Montre le code @misty parcel

#

Sa iras plus vite

misty parcel
timid loom
#

je savais pas

#

dans ce cas plus rapide oui

#

sinon obligé de fetch puis de reduce dessus

sharp grail
#

y a d'ailleurs une méthode pour fetch les threads actif

dire latch
#

iconURL au lieu de icon @misty parcel

sharp grail
misty parcel
#

J'ai mis mais ça ne marche pas

timid loom
misty parcel
timid loom
dire latch
#

iconURL**()**

#

Faut lire la doc, c'est marqué quoi 😦

timid loom
#

c'est ce qu'il a écrit

misty parcel
#

j'ai mis hein

sharp grail
dire latch
neat lintel
#

nn regardes au dessus

sharp grail
misty parcel
sharp grail
#

le iconURl tu le met dans le setImage

timid loom
#

c'est pareil hein au final

dire latch
#

Tu met juste un filter dessus et sa fonctionne 🤔

#

Plus simple

timid loom
#

hein

#

qu'est-ce que tu raconte

sharp grail
timid loom
dire latch
#
const members = message.guild.members.cache;
${members.filter(member => !member.user.bot).size}`
#

C'est ce que j'utilisais mdr

timid loom
#

nan mais on parle pas de membres et dans tous les cas c'est pas un filtre qu'on cherche à faire

misty parcel
dire latch
#

Ouais mais jfais pareil pour les channels

timid loom
#

ah remarque le reduce sera chiant vu qu'il faut fetch les threads t'as pas tort @sharp grail

dire latch
#
const channels = message.guild.channels.cache;
${channels.filter(channel => channel.type === 'text').size}
timid loom
#

nan mais arrête mcduck t'as rien compris

sharp grail
timid loom
misty parcel
#

quelqu'un pour me sortie de ce bourbier please

dire latch
#

🤔

misty parcel
#

🙏

timid loom
misty parcel
#

Merci

neat lintel
sharp grail
timid loom
#

ah yes exact tu le fais juste après le setImage

#

!code

#

ah fonctionne plus

dire latch
#

Mdr rip

sharp grail
#

rip

misty parcel
#
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]})
    }
})
sharp grail
misty parcel
#

Mais ça va envoyer le line non ?

#

Ou je dis une betise

sharp grail
#

le line ?

misty parcel
#

oui

sharp grail
#

qu'est ce que c'est ?

dire latch
#

Sa va juste mettre ton avatar 🤔

misty parcel
#

?

sharp grail
#

Reprenons

misty parcel
#

ah le lien pardon

#

faute de frappe

sharp grail
#

en fait

dire latch
#

Sa mettras l'image

sharp grail
#

oui

misty parcel
#

ok

#

en sois ça change rien non ?

sharp grail
#

si justement

#

la dooooooc

misty parcel
#

ah

#

pardon pardon xD

dire latch
#

La doc oublier

desert riverBOT
timid loom
#

il faut une url dans le setThumbnail
là tu lui donne autre chose qu'une url

desert riverBOT
timid loom
#

donc ça fonctionne pas

misty parcel
#

ah ok

#

Bon je viens de trouver l'erreur

#

un peu honte de le dire

sharp grail
#

t'inquiète x)

misty parcel
#

bah en faite le pb venait de set thumbnail

#

je pensais pas

#

alors j'ai mis avatarURL et ça a marcher

sharp grail
#

kapp t'inquiète

misty parcel
timid loom
#

le classique

#

"mais ça devrait marcher ça pourtant !"

misty parcel
#

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

dire latch
#

?

sharp grail
misty parcel
#

Je pense que oui

sharp grail
#

bah x)

#

envoie ton problème tkt 👀

#

le principal c'est déjà de faire des efforts

misty parcel
#

Je pense avoir trouver, je cherche à classer uniquement les channels textuel, du coup il faut faire un filter ?

sharp grail
#

oui

#

après attention

#

t'as éventuellement le GUILD_NEWS que tu pourrais considérer comme un channel de type text

misty parcel
#
`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

sharp grail
#

oui ça me parait correct

misty parcel
#
.addField("Infos général", [
                `ID: ${message.guild.id}`,
                `Nom: ${message.guild.name}`,
                `leader supreme: ${message.guild.ownerId}`,
            ])
#

apparemment l'erreur vient de la

frank sparrow
#

Salut, qui aurais un bon lien pour expliquer à quoi sert Vue s'il vous plait ?

timid loom
frank sparrow
#

merci

sharp grail
#

seulement un string

misty parcel
#

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

sharp grail
#

Oui

#

car

desert riverBOT
misty parcel
#

Alors je me base sur ce code la, est ce qu'il est bon ?

sharp grail
#

A moitié (v12), mais c'est pas ce que tu fais

misty parcel
#

ah c'est de la v12

normal lichen
#

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 ?

timid loom
#

Vérifie que les intents que tu as activé sur ton client sont bien autorisés sur le dashboard des bots de Discord

hybrid elk
#

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

sharp grail
#

mmh

#

essaye encore une fois de rebuild le tout ?

hybrid elk
#

Je viens de supprimer node_modules puis npm i et ça marche

#

🤷‍♂️

sharp grail
#

ah bah

hybrid elk
#

Je comprend quand même pas pourquoi

past nimbus
#

Tu as bien installé ffmpeg..? Le package est c'est juste un helper pour formater la commande

dire latch
#

Le soucis a été régler si jamais @past nimbus

past nimbus
#

Okok

robust jetty
#
        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.

normal lichen
#

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 ?

neat lintel
#

dans le deny tu mets VIEW_CHANNEL et tu enlèves le allow avec ADD_REACTIONS qui a pas vraiment de sens

normal lichen
#

mais comment je fait pour que citoyen puisse pas voir le channel, mais la personne qui clique puisse ^^

neat lintel
#

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

normal lichen
#

merci je vais essayer

neat lintel
#

ca correspond déja a everyone

#

l'id du role everyone est l'id de la guild

normal lichen
#

d'accord merci et pour mettre a un role je modifie guild ?

neat lintel
#

tu mets :

permissionOverwrites: [
  {id: interaction.message.guild.id, deny: ['VIEW_CHANNEL']},
  {id: /* id de ton role ou utilisateur*/ , allow: ['VIEW_CHANNEL']}
]
dire latch
#

Soucis régler depuis ? @normal lichen

#

@neat lintel juste mettre lid du rôle fonctionne 🤔

normal lichen
#

Merci oui j’ai trouvé, j’ai également trouvé pour set les permissions de la personne qui clique sur la réaction ^^

dire latch
#

Dac ba nickel @normal lichen

cedar breach
#

Bonjour j'ai une erreur que je trouve pas

hazy mirage
#

hop je l'ai trouvé !

#

Montre nous ton code 👀

cedar breach
# hazy mirage Montre nous ton code 👀
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)
hazy mirage
#

@cedar breach oulala le code est pas bon oiseau_pas_content

#

tu sors ça d'ou ? tu suis un tuto ?

hazy mirage
#

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']
})

GCA

Apprends dans ce tutoriel le code pour créer un bot Discord avec Discord.JS !

dire latch
dire latch
#

Si tu y arrives pas, tu reviens ici @cedar breach stuveux

normal lichen
#

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]});

bold sparrow
normal lichen
bold sparrow
#

Bah, définit le dedans

normal lichen
#

non c bon j'ai réussi, désoler

mystic bison
#

Hello, je suis à la recherche d'un projet à faire en js des idées ?

#

projet débutant

bold sparrow
#

Ou slack au choix

mystic bison
#

euh non ca va allez 🤣

bold sparrow
#

Je te laisse 8h je suis pas sadique non plus

mystic bison
#

je viens de finir la v1 d'un réseaux sociall

mystic bison
bold sparrow
#

Fait un calculateur dip

mystic bison
#

c'est quoi dip ?

bold sparrow
#

Ip

mystic bison
#

tu veux pas dire d'ip

bold sparrow
#

Si

#

Mais flemme de corriger

mystic bison
#

je n'ai aucune idées de comment ça fonctionne

bold sparrow
#

C’est le moment de comprendre à travers JS

mystic bison
#

bon je vais allez me renseigner merci

slim anvil
#

quand tu dis un calculateur d'ip, c'est juste récupérer l'ip ? @bold sparrow

mystic bison
#

je pense car je ne trouve rien sur internet

slim anvil
#

je comprend pas le terme calculateur juste

mystic bison
#

il parle de ça je pense

slim anvil
#

ahh ok

past nimbus
#

Déterminer un sous réseau j'imagine

#

Nbr de clients / IP pour un réseau données (IP/masque)

oak turret
#

bien relou ça

#

ça me rappelle le lycée

past nimbus
#

Le lycée ? 🤔

frank sparrow
#

nsi peut être

oak turret
#

sti2d juste kappathugs

frank sparrow
#

ah oui sinon

#

ma filière >>

oak turret
#

on faisait ça à l’époque lointaine

#

👌

dire latch
#

Hey

#

Il y a une liste qui existe qui met tout les apis disponible ? (Pour générer des images et autres)

#

👀 @sharp grail

slim anvil
glossy ledge
#

Salut

#

Je viens ici pour demander de l'aide (c'est ma dernière solution)

dire latch
glossy ledge
#

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

sharp grail
#

Le problème peut venir de plusieurs choses 🤔

#

Ton bot est sur beaucoup de serveurs ?

slim anvil
glossy ledge
slim anvil
#

c'est peut-être juste ton serveur qui est pas dingue alors

dire latch
#

Rien à voir les 6k de membre pour le coups

slim anvil
#

car ce n'est rien 12 serveurs, même si tu avais 10* + de membres

dire latch
#

Faut opti !

slim anvil
#

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

dire latch
#

Que as-tu comme perf sur ta machine ?

sharp grail
#

Soucis de perfs, soucis d'opti, ou soucis de ce que fait ton bot ? 🤔

glossy ledge
#

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

dire latch
#

Ou les 3 🤔

slim anvil
#

sur le meme serveur ?

dire latch
#

Après, les membres/serveurs, on s'en fous un peu

#

C'est savoir si le bot est utlisé ou non

slim anvil
#

(serveur => machine dans mon sens)

dire latch
#

Oui mais si ils usent pas le bot, c'est useless

slim anvil
#

ma question est juste de savoir si c'est sur la même machine

dire latch
#

Yes

#

Mal compris ducoups 😦

slim anvil
#

mais oui 120 serveurs ce n'est rien non plus

#

c'est pas ça qui va rendre le bot lent c'est sur :p

dire latch
#

Yep

sharp grail
#

ça dépend de ce fait le bot après

dire latch
#

847 discords sur mon bot vérifié qui est hors ligne maintenant, et j'avais 0 soucis

glossy ledge
#

Des commandes de modérations, d'administrations,...

fading glacier
glossy ledge
#

Au pire dites moi si je vous fait chier les gars ??

fading glacier
sharp grail
sharp grail
dire latch
slim anvil
#

en tout cas pas avec discord.js

sharp grail
fading glacier
dire latch
#

Cquoi eric 🤔

fading glacier
oak turret
#

eris c’est une lib like djs

fading glacier
slim anvil
dire latch
glossy ledge
slim anvil
#

trop chiant d'être dépendant d'une lib ou quoi à ce niveau

slim anvil
#

d'autres process qui tourne aussi ? peut-être qu'il ne tient pas la charge

#

(serveur => machine je le redis)

fading glacier
oak turret
fading glacier
#

Bdd c’est la base de données

glossy ledge
oak turret
#

après tout dépend de comment tu fais tes requêtes aussi

glossy ledge
fading glacier
#

Même 2 si c’est à chaque message et qu’il y a bcp de messages ça fera lag

oak turret
#

selon l’opti de ton code ça ralentira le process, logiquement

#

faut voir l’opti de ton projet et les specs de ton serveur

dire latch
#

Moi jfais 50 requêtes, ya quoi ? mdrr

slim anvil
#

oui à la limite envoie leur ici un exemple de commande qui effectue des requêtes

fading glacier
slim anvil
fading glacier
#

Oui

#

Bah

#

Chut

dire latch
#

C'est faux hein

#

Mdr

fading glacier
#

😭

oak turret
dire latch
#

Jfais une requête par commande, trkl 🤔

fading glacier
dire latch
#

Non, il est moche askip 🤔

fading glacier
#

Ça se voit

glossy ledge
oak turret
dire latch
#

En vrai, jsp, très bonne question

glossy ledge
#
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`);
        });
fading glacier
oak turret
#

peut-être ton serveur qui a du mal alors aussi

dire latch
#

On t'aime tkt @slim anvil || En vrai, jpense pas ||

#

Hmm

fading glacier
#

Oui tkt ||nan jt’aime pas moi||

dire latch
#

Cquoi les perfs de ta machine ? @glossy ledge

frank sparrow
#

moi si

fading glacier
#

On verra après ça

#

Faut déjà qu’on ai le code KappaRetard

dire latch
#

Yes

fading glacier
dire latch
bold sparrow
#

Calcul en binaire, décimal etc

normal lichen
#

Bonjour, est ce que un bot discord peut être connécté a une base de donnée en localhost pour les test ?

normal lichen
#

je vous remercie

fading glacier
#

Yo, petite question pour ceux qui s’y connaissent avec socket.io, est-ce que c’est possible de relier deux programmes écrits dans différents langages avec socket.io ? (Genre le serveur en js, et le client en java)

past nimbus
ashen rapids
#

Yep je confirme tu peux 👍

normal lichen
#

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

full scaffold
#

Le format de la date est le bon ?

normal lichen
#

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

fading glacier
#

Aussi, montre nous le format de la date que tu essaies de save en bdd

normal lichen
#

parce que je souhaite que la date s'inscrivent toute seul lors de la creation ^^

#

je vous montre ca

fading glacier
#

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

normal lichen
#

d'accord merci, comment puis-je faire alors pour que la date de la creation de la ligne sois mise automatiquement ?

#

timestamp ?

fading glacier
#

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

normal lichen
#

il faut que dans ma requete j'insére la date également ?

fading glacier
#

Oui

normal lichen
#

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 ?

fading glacier
#

Ç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 ?

normal lichen
#

du style 1 janvier 1970 a 00h00 ^^

fading glacier
#

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

normal lichen
#

je vous remercie

misty parcel
#

Bonjour combien y'a t'il de choix maximum qu'on peut mettre dans un select menu please ?

full scaffold
#

Illimité ?

misty parcel
#

ah oui ?

full scaffold
#

Si c'est plus grand que l'écran je pense qu'un scroll va se rajouter

misty parcel
#

ah bah niquel alors

#

meci

#

merci

past nimbus
#

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

slim anvil
#

Je pense qu’il parle dans un sélect menu discord.js

#

Mais pas sûr

keen narwhal
oak turret
keen narwhal
keen narwhal
oak turret
#

c’est pas ton code ?

keen narwhal
oak turret
#

après si tu veux vraiment comprendre, tu vas sur la doc et tu parcoure les méthodes voir où est ton erreur

keen narwhal
#

Github*

keen narwhal
oak turret
#

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

keen narwhal
#

Je vais look

oak turret
#

np

sharp grail
keen narwhal
#

Je regarde message.guild. Members sur la doc et normalement je vais trouvé

sharp grail
#

sinon

desert riverBOT
#

:_: 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

ancient sonnetBOT
#
Résultats de la recherche: extend

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 { ... }
keen narwhal
#

en v13 sa fonctionne plus ?

#

le "extend"

sharp grail
keen narwhal
#

si je met a jour le module discord commando

#

sa devrait fonctionner ?

sharp grail
#

Le module discord-commando n'est plus maintenant

#

C'est une mauvaise idée de continuer à l'utiliser

keen narwhal
#

hm :/

oak turret
#

passe en v13 avec Sheweny

coarse hinge
#

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

neat lintel
#

transformes exports.modules = bot; en module.exports = bot;

coarse hinge
#

Je vien de corriger mais toujour la meme erreur du coup

#

si je log le bot ca me sort juste un {}

neat lintel
#

je peux voir le fichier en entier stp ?

#

le fichier dans lequel tu déclares bot

past nimbus
#

Pourquoi tu fais pas du ES6 ?

coarse hinge
neat lintel
#

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

oak turret
#

Sinon utilise Sheweny et t’embête pas

past nimbus
#

C'est pas parceque c'est plus répandu (à vérifier) que c'est bien pour autant

oak turret
#

et de là tu pourras export tes modules etc dans ta class directement avec des this.x = client.options.x

coarse hinge
#

j'aime bien faire moi en "native"

past nimbus
#

Utilise l'API discord si tu veux faire du "natif"

#

^^

coarse hinge
#

pour ca que "" sue xD

neat lintel
oak turret
#

ça c’est sûr

coarse hinge
neat lintel
#

avec cjs tout est synchrone les require donc ca vient surement de ca déja

coarse hinge
#

c'est bon ca marche xD juste debile du coup c'est bien pcq je charger apres les modules

past nimbus
#

Tu dev depuis cb de temps ?

#

En js

coarse hinge
#

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

past nimbus
#

Okok

normal lichen
#

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 ?

past nimbus
#

Oui

coarse hinge
past nimbus
#

Si la db est publique

normal lichen
#

je vais essayer je vous remercie, comment savoir si elle est publique ?

past nimbus
#

Si il te donne une IP et un port

normal lichen
#

j ai un username et un mot de passe

past nimbus
#

C'est quel jeu ? Dans quel contexte ?

normal lichen
#

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 ?

past nimbus
#

Oui, c'est pas très sécurisé mais bon ^^'

normal lichen
#

je sais mdrr mais la connexion fivem bd demande tout cela pour fonctionner ^^

past nimbus
#

Ce que je veux dire c'est avoir une db accessible sur internet, sans passer par un proxy, une whitelist etc...

normal lichen
#

ah d'accord je vous remercie ^^

keen narwhal
ashen rapids
#

Tu n'as pas initialisé ton client avec des Intents

#

Obligatoire en V13

tawny estuary
#

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 !

full scaffold
#

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

tawny estuary
#

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

slim anvil
#

tu devrais charger tes images dans une seule, un sprite

#

ca aidera un minimum je pense

tawny estuary
tawny estuary
#

Merci de l'aide du coup!

normal lichen
#

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");
}

hazy mirage
#

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 👌

normal lichen
#

d'accord je te remercie^^

sharp grail
#

quelqu'un s'y connait en expression régulière (regXp) ? '^'

hazy mirage
sharp grail
#

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

deep torrent
#

Perso, si tu veux test des regex

sharp grail
#

Thanksss

bold sparrow
sharp grail
#

🤔

bold sparrow
#

Ouais c’est flou je sais 🤔

sharp grail
#

Au final Je vais faire autrement donc plus besoin de galèrer avec ça

keen narwhal
#
    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

neat lintel
#

réinstalle les node_modules

keen narwhal
#

ok att

#

ya une commande

#

?

inner escarp
#

npm ci

neat lintel
#

supprimes le package-lock et le dossier node_modules et surtout ne fait pas de copier-coller du dossier

dire latch
#

Hey

#

C'est dans quel évent pour savoir qu'une personne a changé d'avatar 🤔

neat lintel
#

il me semble que c'est userUpdate pour l'avatar global et guildMemberUpdate pour l'avatar de guild

dire latch
#

Ok

floral bolt
#

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:...

▶ Play video
ashen rapids
floral bolt
#

cool mais j'ai pas trouver le moyen de 'scroll' dans le vide

worn garnet
#

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

worn garnet
#

hey, je viens de résoudre mon problème en stockant mon fichier gltf localement, c'est plus que suffisant pour mon utilisation :p

bold sparrow
rustic mulch
#

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...

ashen rapids
#

Commence par apprendre les bases de Javascript 😇

rustic mulch
floral bolt
#

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 :/

dire latch
slim anvil
#

ç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%

past nimbus
#

Pas forcément mais oui c'est un framework front pas back

slim anvil
#

mais bon j'irais pas la faire dessus si c'est huge

floral bolt
#

alors je vais rester sur AdonisJS 😄

slim anvil
#

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

fading glacier
#

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)

floral bolt
fading glacier
#

Nope

fading glacier
#

Voilà la console

fading glacier
#

hier tout marchait et j'ai rien changé depuis

lone flax
#

Bah pour le coup on peut pas savoir quelle partie si on a aucune erreur

fading glacier
#

Je vais essayer sur un bot de test voir si le problème vient du bot

lone flax
#

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

fading glacier
#

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

floral bolt
#

ton bot des test est aussi sur linux ?

fading glacier
#

oui j'ai juste modifié le token dans mon config.json donc même machine, tout pareil juste token différent

floral bolt
#

c'est pas un soucis d'autorisation du bot ? un truc coché ou non ? les intents ?

sharp grail
#

Rate limit potentiel de ton hebergeur

#

J'ai eu la même chose hier

fading glacier
#

bah pourquoi le bot de test marche ?

#

alors qu'il est sur le même hébergeur, même machine

sharp grail
#

Rate limit du bot alors

#

En lui même

fading glacier
#

comment je peux vérifier ?

sharp grail
#

tente avec ça

fading glacier
#

yes je vais tester

#

Nope j'ai aucune erreur

#

même avec l'event

sharp grail
#

mmh

#

le bot doit crash quelque part dans le code alors

fading glacier
#

je vais essayer avec l'event error voir si j'ai qqc

sharp grail
#

Yep bonne idée, shardDisconnect éventuellement aussi ?

fading glacier
#

J'essaye ça

#

le error a rien donné non plus

#

et le shardDisconnect non plus...

sharp grail
#

t'es sur que ton bot se connecte même ?

fading glacier
#

Yep

sharp grail
#

l'event ready donne quelque chose?

fading glacier
#

dans les 10 premières secondes après l'avoir lancé les commandes marchent

#

et après

#

plus rien

fading glacier
sharp grail
#

très étrange

fading glacier
#

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

sharp grail
#

yep 🤔

onyx summit
#

J'ai un petit problème quand je veux démarrer le bot le terminal indique qu'il ne voit pas les modules

onyx summit
#

Yep

dire latch
#

Ta supprimés/refais les installations ? @onyx summit

onyx summit
#

Oui plusieurs fois @dire latch

#

Mais le problème persiste

dire latch
#

Tu as supprimés quoi ?

#

As-tu bien installé dans le bon dossier ?

#

@onyx summit

sharp grail
dire latch
#

Aussi

onyx summit
#

Ou att j'allume mon mac

queen ocean
onyx summit
#

Yep

#

Jlai installé et desinsataller

sharp grail
#

C'est pas un module (like npm / yarn etc.) ca c'est ton code

dire latch
#

Module not found

#

Il te manque pas un module ?

#

@onyx summit

onyx summit
dire latch
#

Tu as que sa en erreur ?

oak turret
#

un coup de npm i

onyx summit
onyx summit
dire latch
#

Hmm

#

Tu check tout tes fichiers et tu installes 1 par 1 tes modules

#

@onyx summit

onyx summit
#

Dacc je le ferais demain

dire latch
#

Np

signal marsh
#

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 "+"

tawny estuary
signal marsh
tawny estuary
#

ça te permets de pas mettre le "égal" sur le dernier passage de la boucle ^^

signal marsh
#

d'accord bas je vais essayer ça merci

tawny estuary
signal marsh
tawny estuary
#

Oui ! Relis bien ce que j'ai écris !

if(nombre.length > 1 && i < (nombre.length-1))
#

c'est ça ta condition

tawny estuary
#

Tu me fais signe si ça fonctionne !

slim anvil
#

tu vas garder toute cette boucle là ?

#

tu peux la lighter très facilement pour avoir un truc moins lourd

signal marsh
slim anvil
#

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

signal marsh
#

(3) ['MANAGE_CHANNELS', 'MANAGE_MESSAGES', 'ADMINISTRATOR']

slim anvil
#

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à

signal marsh
#

j'essaie

slim anvil
#

a toi d'ajouter toutes les traductions dans l'objet trads évidemment sinon ca va te return des undefined dans ton tableau

signal marsh
#

Yes bas niquel, merci à vous deux 😉

tawny estuary
bold sparrow
#

👀

bold sparrow
#

Discord propose des interfaces pour faciliter la tâche, mais de ce que j'ai compris tu travail avec JS, autant pour moi !

signal marsh
#

Ah oui je travail en js, pas grave

bold sparrow
#

Yep désolé, ça va te prendre un p'tit moment pour traduire toutes les perms x)

#

Bon courage!

signal marsh
#
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'
        }
bold sparrow
#

Ce que tu peux faire si la générosité te vient, c'est de le poster ici #partage-ton-code 👀

signal marsh
#

Yes

bold sparrow
#

Même si certaines traductions sont incorrectes

signal marsh
#

bas c'est déjà bien

bold sparrow
#

Bien sûr oui, mais quitte à le partager autant traduire parfaitement

#

Fin du moins, ce qu'il s'en approche

signal marsh
#

Les quelles ne sont pas correcte ?

bold sparrow
#

DEAFEN_MEMBERS

#

MODERATE_MEMBERS

#

Assourdir c'est pas très français, Mettre en sourdine ?

signal marsh
#

Bas enfaite je ne sais pas à quoi elles servent

bold sparrow
#

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é

signal marsh
#

tkt pas de soucis

bold sparrow
#

SEND_TTS_MESSAGES

#

Tu peux pas le traduire par " envoyer des messages vocaux"

#

C'est juste envoyer des messages Text To Speech

signal marsh
#

ça devrait être bon

bold sparrow
#

Ca me semble good globalement

#

C'est gentil de partager ça en tout cas

#

Ca devrait en aider plus d'un

signal marsh
fading glacier
#

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)

neat lintel
#

ca ce passe sur ton PC ou sur un hébergeur spécifique ?

fading glacier
#

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

timid loom
#

t'as tenté de regen le token?

fading glacier
#

Yes, deux fois

#

toujours pareil

timid loom
#

ah ouais bizarre

#

l'autre bot est présent sur le même serveur ?

fading glacier
#

Oui

timid loom
#

avec les mêmes droits?

fading glacier
#

Yep

timid loom
#

je vois pas alors dsl

neat lintel
#

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 ?

fading glacier
#

Si mais j'ai pas d'erreurs dans la console donc je vois pas d'où ça vient

neat lintel
#

essayes d'écouter les évents "debug", "warn" et "error" pour voir si il y a pas une erreur qui ne serait pas throw

fading glacier
#

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

neat lintel
#

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 ?

fading glacier
#

genre

setInterval(() => {
  client.emit('unTest')
}, 1000 * 60 * 15)
#

?

neat lintel
#

oui par exemple. Et tu mets un listener de unTest à coté de tes autres évents comme messageCreate, guildMemberAdd etc

fading glacier
#

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)

neat lintel
#

Bah la franchement je vois pas. Ton application a du cracher d'une façon ou d'une autre

fading glacier
#

Bon sinon comment je peux voir si il est rate limit ?

neat lintel
#

Tu as un évent rateLimit mais meme si ton bot est rate limit c'est pas censé le faire cracher

fading glacier
#

yep

sharp grail
#

mmh

fading glacier
#

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

sharp grail
#

et avec un autre bot non ?

fading glacier
#

Nope avec l'autre bot il reste en ligne

sharp grail
#

ce code c'est toi qui l'a fait ?

fading glacier
#

les 3/4 voir plus

sharp grail
#

la base (event/command handler) ?

fading glacier
#

Si j'ai presque tout fait sauf une petite commande ou qqn m'a aidé

sharp grail
#

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

sharp grail
fading glacier
#

ça fait pareil quand je log juste

#

genre ça log pdt 10 secondes

#

et après plus rien

sharp grail
#

le setInterval il est placé où ?

fading glacier
#

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

sharp grail
#

🤔

tacit shore
#

Up

fading glacier
sharp grail
#

c'était quoi le pb

fading glacier
#

une boucle qui tournait en rond

sharp grail
#

aaah x)

#

nice

fading glacier
#

j'ai galéré pdt 3h pour un truc aussi con 😂

sharp grail
#

c'est pas grave KaPOP

#

mais du coup pourquoi ça marchait que sur un bot

#

t'avais une condition style if (client.user) .. ?

dire latch
#

@fading glacierZuper

fading glacier
#

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 😂

sharp grail
#

ahhh

#

je vois

dire latch
#

@fading glacierDéçus de toi

fading glacier
#

pourquoi ?

dire latch
#

Déçus !

normal lichen
#

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

oak turret
#

rajoute un ,function(err) {if (err) throw err;} après ton `

#

voir ce qui cloche

normal lichen
#

dans l'insertion base de donnée ?

dire latch
#

Montre ta table sql @normal lichen

normal lichen
dire latch
#

Hmmm

normal lichen
#

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

dire latch
#
    db.query(`INSERT INTO membres (id_user, username) values ("${member.id}", "${member.user.username}")`);
normal lichen
#

bon bah non toujour pas ^^ je vais essayer de trouver mon erreur x)

dire latch
#
    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

normal lichen
#

/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 ^^

dire latch
#

Ah euh, jamais use de catch perso 😦

normal lichen
#

je ne comprend pas la requete est pourtant bonne et la connexion base de données également

dire latch
#

Essaye la modif que j'ai fais @normal lichen

normal lichen
#

j'essaye ^^

dire latch
#

Mais c'est pas un code aux dessus qui fais foirer plutot ?

normal lichen
#

non car tout fonctionne, sauf qd je met la ligne db.query... ^^

dire latch
#

Si tu met tout en commentaire et tu met juste la requête ?

normal lichen
#

sa ne fonctionne pas j'ai essayer ^^

dire latch
#

Euh

oak turret
#

t’as importé tout ça ?

#

db = ?

dire latch
#

Peut être ta connexion est fausse @normal lichen

oak turret
#

elle est où ta connexion

dire latch
#

Cquoi ce pseudo mdrr @oak turret

oak turret
dire latch
#

Ya quoi mdr

normal lichen
#

const db = mysql.createConnection({
host: 'localhost',
user: 'root',
port: '3306',
password: '',
database: 'AnotherBot'
});

oak turret
#

port:3306

dire latch
#

Port inutile

#

Enlève

oak turret
#

pas de ""

#

t’as bien mis ton require au-dessus ?

normal lichen
#

oui
const mysql = require("mysql")

dire latch
#

Tu as fais les modifs et testé ? @normal lichen

normal lichen
#

oui j'ai supprimer le port et ce ne sont pas des " mais des ' ^^

dire latch
#

Ok

#

Et si tu test ?

normal lichen
#

toujour rien mdrrr

dire latch
#

Bizarre

normal lichen
#

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 ^^

past nimbus
#

Tu dois pas await ta connection ?

dire latch
#

Pourquoi l'await ?

past nimbus
#

j'utilise pas le module sql mais a priori n'importe quelle action avec un tier est async

normal lichen
#

j'ai un async dans mon Client.on("GuildmemberAdd") ^^

past nimbus
#

Ouais ?

#

D'ailleurs tu es sur que mysql gère les promises et pas uniquement les callback ?

#

(le package)

normal lichen
#

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

past nimbus
#

D'acc, maintenant modifie ta requête pour éviter les injections sql

normal lichen
#

les injection ?

#

les ${...} ?

#

je met quoi a la place du coup ?

past nimbus
#

Si je te dis quoi faire c'est pas bon ^^

#

La doc est la réponse

dire latch
#

Met des ' au lieu de " @normal lichen

#

Voir

past nimbus
#

Mais c'est une règle de base pour tout les accès à des bases de données (et autres)

normal lichen
#

petite question vue que je suis sur un hebergeur en ligne ma base de donnée a une ip de connexion

past nimbus
#

Et utilise le nouveau package, il ajoute les promises (qui ne sont pas dans celui de base normalement)

dire latch
#
bdd.connect(err => {
    if (err) throw err;
});
normal lichen
#

on est d'accord l'ip sans le port ce met en host ?

dire latch
#

Ta ajoutés sa aussi nan ?

#

Oui

normal lichen
#

non je le met

#

vue que je suis sur une base de donnée en ligne je reprécise le port ?

dire latch
#

Tu peut

normal lichen
#

db.connect(err => {
if (err) throw err;
});

#

aucune erreur ne s'affiche

#

je vais remettre le port

dire latch
#

Normal

normal lichen
#

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")'
}

dire latch
#
    db.query(`INSERT INTO membres (id_user, username) values ('${member.id}', "${member.user.username}")`);