#javascript-typescript

1 messages · Page 3 of 1

left forum
#

ValidationError > s.object(T)
Expected the value to be an object, but received string instead

Received:
| 'Ban'

#

pourtant sur la docs de djs il attend bien un string normalement

neat lintel
#

Essayes avec les bits alors

#

Mais c'est BanMembers pas juste Ban

left forum
#

if(!interaction.member.permissions.has("BanMembers")) return interaction.reply("Vous n'avez pas les permissions de ban ce membre !", { ephemeral: true })

#

j'ai bien mis BanMembers

left forum
neat lintel
#

Non pas les Intents mais les permissions

#

Normalement tu as un équivalent

left forum
#

mon bot a les perm admin de base donc c'est pour ça je comprends pas

steep forge
#

bon j'ai pas reussi a importer le dossier ini oes fichier ou quois du coup j'ai fais un doubleen txt

#

comme sa sa s'ouvre partout

left forum
steep forge
# steep forge les commandes

@civic fractal du coup tout y ets ^^
désolé pour ma presence un pex aléatoir je faisez plusieure truc a cotév x'3
normalement demain j'ai rien a fair donc si sa te derange pas ^^`
*au passage, jsp si on peux sa peux fonctionner en ajtant juste un truc dan sle messagecreate, pour que quand un gif, est envoye ( un lein qui commace par https://tenor.com/view/ blablabla, )le lein se mette en message avat l'embed , pour que le gif s'affiche

gentle zinc
#

@copper pagoda Ah ça ne fonctionne pas pour les fields ?

                try {

                 const invalidFieldID = new EmbedBuilder()
                    .setColor(0x2f3136)   
                    .setDescription(`Désolé. Field invalide`)

                    if (!(/[0-9]/g).test(embedService2)) {
                        return interaction.reply({ embeds: invalidFieldID, ephemeral: true })
                    }
                    embedService.addFields({
                        name: ':invite: Vendu par :', value: `<@${embedService2}>`, inline: true 
                    })
                }
                catch (error) {
                    embedService.addFields({
                        name: 'ID du membre invalide', value: null, inline: true
                    })
                }
#

En gros si l'utilisateur ne rentre pas un ID valide ça envoi une erreur en embed Désolé. Field invalide mais je sais pas si ça fonctionne comme ça avec les fields

#

TypeError: this.options.embeds?.map is not a function

copper pagoda
gentle zinc
civic fractal
gentle zinc
fierce plank
#

@left forum

ancient sonnetBOT
#
❓ Obtenir de l'aide

Tu as besoin d'informations ? Tu es au bon endroit !
Consulte la liste des sujets pour en savoir plus sur Creators Area.

💻 Comment on envoie du code ? 💻

Pour envoyer du code sur Discord c'est très simple !
||Il vous faut d'abord du code... Et deux cubes de Kubor ! bongoTap||

En vrai, il faut utiliser les blocs de code de Discord :
Pour cela entoure ton code de ceci : ```

Par exemple :
```js
console.log("Salut Creators Area !")
```

Le résultat sera le suivant :

console.log("Salut Creators Area !")
```*Si tu es sur téléphone, tu ne verras pas le bloc de code*

> *TIPS: Si ton code est trop long, tu peux le coller sur [pastebin.com](https://pastebin.com/) et envoyer le lien par message.*
left forum
copper pagoda
#
                    embedService.addFields([{
                        name: ':invite: Vendu par :', value: `<@${embedService2}>`, inline: true 
                    }])
#

Comme ça parce que je sais que si je fais l'embed en json il me les faut.

gentle zinc
#

c'est pour cela que je n'ai pas mis de []

copper pagoda
#

Peut être que ça vient du null alors mais bon ça m'étonnerai car l'erreur correspond pas le map correspond aux array.

copper pagoda
#

Dans le reply pour l'embed

gentle zinc
gentle zinc
# copper pagoda De rien écoute.

Et j'y pense, au lieu de faire comme ça :

                    if (!(/[0-9]/g).test(embedService2)) {
                        return interaction.reply({ embeds: [invalidFieldID], ephemeral: true })

Je peux peut être diretcement vérifier si ce que entre un utilisateur est un ID valide ou non ? (avec interaction.user.id) non ?

copper pagoda
gentle zinc
copper pagoda
#

Non y a rien qui change.

steep forge
civic fractal
#

Il faut donc chercher

steep forge
#

Oui je vais voir ça

#

J'enverrai tout vca vers 11h quand je serai rentré chez moi

civic fractal
#

Étant en vacances, je répondrais dans la soirée sûrement

wheat onyx
#

Bonjour, j'aimerais savoir comment faire car le setActivity ne marche pas mais je n'ai aucune erreurs

const Discord = require("discord.js")

module.exports = async bot => {

    console.log(`${bot.user.tag} est en ligne !`)

    bot.user.setActivity(`${bot.guilds.cache.size} serveurs`, { type: 'WATCHING' });
}

Merci d'avance pour l'aide

copper pagoda
wheat onyx
#

v14 😬

copper pagoda
#

Alors visiblement ça pourrait venir du type.

wheat onyx
#

ah

copper pagoda
#

Remplace WATCHING par 3

wheat onyx
#

J'ai remplacer par du coup ActivityType.Watching et sa marche

#

Tu as vu sa sur la doc ?

copper pagoda
#

Oki nickel alors.

copper pagoda
wheat onyx
#

Ah bah je l'avais même pas vu, bon bah merci et désolé du dérangement pour pas grand choses ^^

copper pagoda
wheat onyx
#

😁

gentle zinc
copper pagoda
steep forge
# civic fractal Étant en vacances, je répondrais dans la soirée sûrement

ca marche.
bon j'ai pas trouver le ffichier que tu m'as dit, j'ai un peux farfouiller et je trouve rien qui a ll'aire de correspondre dans tout ca, du coup je peux imite envoyer directement tout le truc, vu que y'as quasiment rine.
mais peux etre que le dev ne me l'as pas mis dans le dossier qu'il m'avais envoyé, et dans ce cas je ne sais comment faire

soft lion
#

Bonjours je viens tout juste de me lancer dans un développement d'un bot discord j'ai suivi donc des tuto y tb pour commencé mais le code ne fonctionne quelqu'un c'est ou il a une erreur svp ?

past nimbus
#

Avec l'erreur c'est mieux, et attention au fautes de frappe

copper pagoda
copper pagoda
# soft lion a je fait comment ducoup ?

Euh sachant que tu débutes essaye plutôt de trouver un tuto en V14 pour que tu comprennes mieux après si tu tiens à rester en V13.

Tu mets dans ton package.json là où tu as discord.js tu mets ^13.9.1

Et après tu fais npm i dans ton terminale.

gentle zinc
#

Pour récupérer le embedService.setImage(embedImage4) sur un embed dans un autre fichier

Est ce que ceci est bon :

const imageService = await interaction.channel.fetch(embedService.image.url)

civic fractal
untold shale
#

Bonjour je voudrais savoir si c'est possible avec une commande de édit un embed a l'aide de son id
Genre de juste changer son title er sa couleur ma il garde la même description

#

C'est juste pour savoir si on peut le faire

#

Après je me débrouille

soft lion
misty parcel
#

Bonjour, est ce qu'un bot peut régir à un message qui lui meme à envoyer ?

steep forge
#

c'est quelun qui a coder le bot pour moi directement

#

enfin je lui est dit ce que je voulais, ce que j'avais besoin que le bot fasse les fonctions a mettre comment il fonctioneras ect... et le gar c'est occuper de me coder tout ca

#

mais c'est pas moi qui l'es mis en ligne la 1er fois, vu que y'avais des test a fair de mon coté ect.. et que j'avais rien pour le host au debut, du coup bha il avais host le truc chez lui au 1er demarage a la base

#

c'est pour ca que je demandez si j'avasi pas une commanede a faire hors discord de mon coté pour que ca dise au truc de se syncro pour les commandes ect... vu que j'ai pas fais la mise en service, je sais pas si il y a effectivement quelque chose de spécifique a faire pour que les commandes soit syncro ou si c'est sensé le fair tout seul

#

(car pour le resumer, j'ai donc ce bot qui a les commandes et qui fonctione, et , j'ai fais un deuxiemme bot qui lui sera dédié a des evenement ,et on en revein a ce que je disez, c'est exactement le meme code que le permier, c'est le meme dosier qui est importer dans termux ect... j'ai juste changer le token, mais du coup, bah le 2eme qui est simplement la copie de celui de base, bien qu'il apparais en ligne , bha discord ne lui trouve pas de commandes intégrés)

civic fractal
#

Wow

steep forge
#

donc, c'est ce que je cherche a comepredre :

  • pk bien que ca soit le meme code, les commande n'apparaisse pas
  • et du coup, es-ce que au moment ou je le lance j'ai une action a faire pour lui dire d'envoyer les info a discord pour dire qu'il a tel commande ?
#

car , bah , le seul defaut qu'il a c'est que il plante a chaque erreur et que le fichier data sa fais pas le ménage correctement, mais en soit , tout fonctionne et il tourne impec, et bah les commandes fonctionnne nikel
donc a ce niveau pas de pb, ca marche correctement
donc techiquement, vu que c'est exactement le meme dossier pour le deuxiemme, bah en soit il " fonctionne " aussi, seul probleme, c'est que j'ai pas les commande qui se synco

#

et sans sa je peux rien en faire vu qu'il focntionnne que comme ca

gentle zinc
#
module.exports = {
    name: 'interactionCreate',
    once: false,
    async execute(client, interaction) {
        if(interaction.isButton()){

            if(interaction.customId.startsWith('buttonService')){

                interaction.guild.channels.create({
                    name: `commande #${interaction.user.username}`,
                    type: 0,
                    permission_overwrites: undefined,
                }).then(c => { // // then : est une fonction qui est appelée lorsque la promesse est résolue. || c = channel qui a été créé
  
                    let embedService; 
                    const commandChannel = new EmbedBuilder ()
                    .setColor(0x2f3136)
                    .setDescription(`Nouvelle commande\n\n  a été prévenu et va vous envoyer le lien du paiement.`)
                    .setThumbnail(`${embedService.image.url}`)
                    
                    const commandArticle = new EmbedBuilder ()
                        .setColor(0x2f3136)
                        .setDescription(`Votre commande se trouve ici : <#${c.id}>`)
                        
                    c.send({ embeds: [commandChannel], ephemeral: false });
                    
                    interaction.reply({ embeds: [commandArticle], ephemeral: true });
                });
            }
        }
    }
}```

Petite erreur :
                .setThumbnail(`${embedService.image.url}`)
                                              ^

TypeError: Cannot read properties of undefined (reading 'image')

red torrent
copper pagoda
sullen kelp
steep forge
sullen kelp
#

Ça me dérange pas, envoie moi ça en mp

steep forge
#

mercii

gentle zinc
#

Bonjour wavey

Pour ceux qui s’y connaissent bien en javascript

J'ai une commande qui ouvre un modal pour créer un menu de selection avec une seule catégorie à l'intérieur.

Ma question est : Est-il possible de faire une commande telle que /add_category pour ajouter une categorie à ce menu de sélection et si oui, peut-on utiliser l'ID du menu de Sélection ou alors faut il utiliser obligatoirement une base de donnée ?

Merci à vous

lone flax
#

Tu ne peux pas modifier un modal en direct

#

Tu dois le construire d’abord, puis l’afficher

#

Tu peux toujours essayer de le fermer et de le re-ouvrir, à voir si Discord te laisse le faire 2 fois sur la même interaction.
@gentle zinc

untold shale
#

Bonjour alors j'ai un petit souci mais je ne sais absolument pas d'où sa viens
En gros mon embed ne s'actualise pas il reste sur hors ligne alors que dans la console il met que le serveur est en ligne

#
const loadStatut = async function (client) {

client.on("ready", async  (client, message , args) =>{
    let channelstatus = client.channels.cache.get("993457517482999878");

    let status = await channelstatus.send('**Le status se chargera dans 60 secondes🕜**');

    setInterval(async () => {
        Gamedig.query({
            type: "garrysmod",
            host: "game3-fr.hosterfy.com",
            port: "63573"
        }).then((state) => {
            console.log(state);

            let StatusEmbed = new client.discord.MessageEmbed()
                .setColor('ORANGE')
                .setTitle(`${state.name}`)
                .addField("🟠Statut", `En Dev`, false)
                .addField("👥Joueurs", `${state.players.length} / ${state.maxplayers}`, true)
                .addField("📶Latence", `${state.ping}`, true)
                .addField("🗺️Map", `${state.map}`, true)
                .addField("🔒Mot de passe", `${state.password}`, true)
                .addField("🎮Lien de connexion", "gg", false)
                .addField("🔧Workshop", "ddddd", false)
                .setThumbnail("https://media.discordapp.net/attachments /993457596201705482/999670341238542466/logosm.png")
                .setFooter('🕛Derniere actualisation:')
                .setTimestamp();

            status.edit({embeds: [StatusEmbed]});

        }).catch((error) => {
            console.log("Serveur Off");

            let StatusEmbedOff = new client.discord.MessageEmbed()
                .setColor('RED')
                .setTitle(`Hors-Ligne`)
                .addField(`🔴Statut`, "Hors-Ligne", false)
                .addField("🔧Workshop", "ddddd", false)
                .setThumbnail("https://media.discordapp.net/attachments/993457596201705482/999670341238542466/logosm.png")
                .setFooter('🕛Derniere actualisation:')
                .setTimestamp();


                       status.edit({embeds: [StatusEmbedOff]});

    }, 60000);
});
}
copper pagoda
earnest dawn
#

Je pense que tu dois surtout faire un if (error) { } dans ton catch

untold shale
#

Justement

left forum
#

Salut, j'ai réussi à régler mon souci de commande ban donc je viens poster la source du problème si jamais quelqu'un venait à avoir le même souci. Voici l'erreur qui m'était retournée : Expected the value to be an object, but received string instead

Received:
| 'DiscordBOT'

L'erreur venait enfait de mon embed et notamment du .setFooter, apparemment on ne peut pas mettre une valeur string comme paramètre c'était ça qui causait une erreur dans mon code.

gentle zinc
lone flax
#

Si mais tu devrais refaire ouvrir le modal, tu pourras pas le modifier en direct

untold shale
#

Mais je ne comprend pas pourquoi

#

Avant le .catch fonctionné bine

earnest dawn
#

Je sais pas mais c'est une solution "temporaire"

untold shale
#

Ok ok

#

Et aussi j'ai essayé de faire ceci dans un field

Test
#

Mais il me met une erreur

dapper maple
#

quelqu'un peut me dire svp c'est quoi la différence entre un noeud et un élément, en js ? J'ai l'impression c'est la même chose. apparemment non

earnest dawn
untold shale
earnest dawn
#

Il faut que tu mettes

#

Ah

#

bon x)

#

bouge pas

#

Comme ça

untold shale
#

Ahhhh

#

Ok ok merci

untold shale
#

Et je voulais savoir si on peut whitelist des autres type de lien

#

Comme

#

steam://connect

#

Par exemple

left forum
earnest dawn
left forum
#

Merci bg

earnest dawn
#

Pas de soucis

earnest dawn
untold shale
#

Autorisé car si tu met pas un lien https il crash le bot

copper pagoda
untold shale
copper pagoda
untold shale
#

Ok ok merci

untold shale
#

Il send l'embed quand le serveur est on

#

Mais pas quand il est off

vast chasm
#

Hey ! Je fais une commande clear et j'ai cette erreur quelqu'un pourrait maider ?

#
    run: async (interaction, client) => {
        let deleteAmount = interaction.options.getNumber('number_of_messages');
        const user = interaction.options.getUser('user');
        const role = interaction.options.getRole('role');
        if (deleteAmount > 100) {
            deleteAmount = 100;
        }
        const fetchedMessage = await interaction.channel.messages.fetch({ limit: deleteAmount });
        if (user) {
            fetchedMessage.filter((r) => r.author.id === user.id).forEach((msg) => msg.delete());
            return interaction.reply({ content: `✅ Successfully deleted ${fetchedMessage.size} messages` });
        }
        if (role) {
            fetchedMessage.filter((r) => r.member.roles.cache.has(role.id)).forEach((msg) => msg.delete());
            return interaction.reply({ content: `✅ Successfully deleted ${fetchedMessage.size} messages` });
        }
        fetchedMessage.forEach((msg) => msg.delete());
        interaction.reply({ content: `✅ Successfully deleted ${fetchedMessage.size} messages` });
    },```
#
    at Object.run (g:\Drunk Guys\Drunk's Bot\slashCommands\moderation\clear.js:28:44)
    at Client.<anonymous> (g:\Drunk Guys\Drunk's Bot\events\interactionCreate.js:58:25)
    at Client.emit (node:events:538:35)
    at InteractionCreateAction.handle (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\actions\InteractionCreate.js:81:12)
    at Object.module.exports [as INTERACTION_CREATE] (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\handlers\INTERACTION_CREATE.js:4:36)
    at WebSocketManager.handlePacket (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31)
    at WebSocketShard.onPacket (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:481:22)
    at WebSocketShard.onMessage (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:321:10)
    at WebSocket.onMessage (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\event-target.js:199:18)
    at WebSocket.emit (node:events:526:28) {stack: 'TypeError: interaction.options.getNumber is n…8)
    at WebSocket.emit (node:events:526:28)', message: 'interaction.options.getNumber is not a function'}```
#

C'est un code que j'ai récupérer et chui en v14

left forum
vast chasm
# left forum let deleteAmount = interaction.options.getString('number_of_messages');
    at Object.run (g:\Drunk Guys\Drunk's Bot\slashCommands\moderation\clear.js:28:42)
    at Client.<anonymous> (g:\Drunk Guys\Drunk's Bot\events\interactionCreate.js:58:25)
    at Client.emit (node:events:538:35)
    at InteractionCreateAction.handle (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\actions\InteractionCreate.js:81:12)
    at Object.module.exports [as INTERACTION_CREATE] (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\handlers\INTERACTION_CREATE.js:4:36)
    at WebSocketManager.handlePacket (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31)
    at WebSocketShard.onPacket (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:481:22)
    at WebSocketShard.onMessage (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:321:10)
    at WebSocket.onMessage (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\event-target.js:199:18)
    at WebSocket.emit (node:events:526:28) {stack: 'TypeError: interaction.options.getString is n…8)
    at WebSocket.emit (node:events:526:28)', message: 'interaction.options.getString is not a function'}```
Marche pas
left forum
#

ah mais ok je vois

#

tu n'ajoutes pas de .addStringOption()

#

donc tu récupères une valeur vide là

vast chasm
left forum
#

envoie tout ton code pour voir

vast chasm
#

Attend je tenvoie le coe en entier

vast chasm
# left forum envoie tout ton code pour voir
const Discord = require('discord.js');

module.exports = {
    name: 'clear',
    permissions: 'MANAGE_MESSAGES',
    description: 'Cleans messages from a channel',
    options: [
        {
            name: 'number_of_messages',
            description: 'number of messages to clean',
            type: 10,
            required: true,
        },
        {
            name: 'user',
            description: 'User to clear messsages for',
            type: 6,
        },
        {
            name: 'role',
            description: 'Clear messages from role',
            type: 8,
        },
    ],
    timeout: 5000,
    category: 'mod',
    run: async (interaction, client) => {
        let deleteAmount = interaction.options.getString('number_of_messages');
        const user = interaction.options.getUser('user');
        const role = interaction.options.getRole('role');
        if (deleteAmount > 100) {
            deleteAmount = 100;
        }
        const fetchedMessage = await interaction.channel.messages.fetch({ limit: deleteAmount });
        if (user) {
            fetchedMessage.filter((r) => r.author.id === user.id).forEach((msg) => msg.delete());
            return interaction.reply({ content: `✅ Successfully deleted ${fetchedMessage.size} messages` });
        }
        if (role) {
            fetchedMessage.filter((r) => r.member.roles.cache.has(role.id)).forEach((msg) => msg.delete());
            return interaction.reply({ content: `✅ Successfully deleted ${fetchedMessage.size} messages` });
        }
        fetchedMessage.forEach((msg) => msg.delete());
        interaction.reply({ content: `✅ Successfully deleted ${fetchedMessage.size} messages` });
    },
};
left forum
#

tu as mélangé deux types de commandes là sa risque pas de marcher

#

c'est pas comme ça la structure d'une slashcommand

#
const { SlashCommandBuilder } = require('discord.js')

module.exports = {
    data: new SlashCommandBuilder()
        .setName('deleterole')
        .setDescription("Permet de supprimer un rôle de votre serveur discord")
        .addStringOption((option) => option.setName('roleid').setDescription("L'ID du rôle que vous souhaitez supprimer").setRequired('true')),
    async execute(interaction, client) {
        let owner = interaction.guild.ownerId;
        let roleid = interaction.options.getString('roleid')
        if (interaction.user.id != interaction.guild.ownerId) return interaction.reply({content: "Vous n'avez pas la permission d'exécuter cette commande !", ephemeral: true})
        if(owner){
            interaction.guild.roles.delete(roleid).then(interaction.reply(`**🚨 Le rôle à été supprimé avec succès !**`)).catch(err => {console.log(err)})
        }
    }    

}
#

normalement ça doit ressembler à ça

vast chasm
#

Je suis entrain de faire un systeme de ticket et j'ai sa comme erreur :

    at BaseError (g:\Drunk Guys\Drunk's Bot\node_modules\@sapphire\shapeshift\dist\index.js:174:17)
    at UnknownEnumValueError (g:\Drunk Guys\Drunk's Bot\node_modules\@sapphire\shapeshift\dist\index.js:1758:5)
    at handle (g:\Drunk Guys\Drunk's Bot\node_modules\@sapphire\shapeshift\dist\index.js:1823:66)
    at parse (g:\Drunk Guys\Drunk's Bot\node_modules\@sapphire\shapeshift\dist\index.js:142:88)
    at setStyle (g:\Drunk Guys\Drunk's Bot\node_modules\@discordjs\builders\dist\index.js:493:44)
    at run (g:\Drunk Guys\Drunk's Bot\commands\setup\ticket-setup.js:23:5)
    at <anonymous> (g:\Drunk Guys\Drunk's Bot\events\messageCreate.js:35:13)
    at emit (events:526:28)
    at handle (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\actions\MessageCreate.js:23:14)
    at module.exports (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
    at handlePacket (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31)
    at onPacket (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:481:22)
    at onMessage (g:\Drunk Guys\Drunk's Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:321:10)
    at onMessage (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\event-target.js:199:18)
    at emit (events:526:28)
    at receiverOnMessage (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\websocket.js:1178:20)
    at emit (events:526:28)
#
    at getData (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\receiver.js:446:17)
    at startLoop (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\receiver.js:148:22)
    at _write (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\receiver.js:83:10)
    at writeOrBuffer (internal/streams/writable:389:12)
    at _write (internal/streams/writable:330:10)
    at Writable.write (internal/streams/writable:334:10)
    at socketOnData (g:\Drunk Guys\Drunk's Bot\node_modules\ws\lib\websocket.js:1272:35)
    at emit (events:526:28)
    at addChunk (internal/streams/readable:315:12)
    at readableAddChunk (internal/streams/readable:289:9)
    at Readable.push (internal/streams/readable:228:10)
    at onStreamRead (internal/stream_base_commons:190:23)
    at callbackTrampoline (internal/async_hooks:130:17)```
#
const { ActionRowBuilder } = require('@discordjs/builders');
const { EmbedBuilder, SelectMenuBuilder, ApplicationCommandType, SelectMenuOptionBuilder, ButtonBuilder } = require('discord.js');

module.exports = {
    name: 'ticket-setup',
    description: "Commande pour setup le système de ticket.",
    cooldown: 3000,
    type: ApplicationCommandType.ChatInput,
    userPerms: ['Administrator'],
    botPerms: ['Administrator'],
    run: async (client, interaction, message) => {
        const embed = new EmbedBuilder()
        .setTitle('Open a ticket')
        .setDescription(`Welcome on the Drunk Guys Support Discord ! For continue, please select your own language. \n\nSincerly,\nDrunk Guys Staff`)
        .setColor('#0aaaff')
        .setTimestamp()
        .setThumbnail(client.user.displayAvatarURL())
        .setFooter({ text: client.user.tag })

        const button = new ButtonBuilder()
            .setCustomId('ticket-menu')
            .setLabel("Open a ticket")
            .setStyle("PRIMARY")
            .setEmoji("📥")

        await interaction.channel.send({
            embeds: [embed],
            components: [new ActionRowBuilder().addComponents(ticket-menu)],
        });

    },
};```
left forum
#

j'me suis jamais essayé à ce genre de commande et je n'arrive pas à bien comprendre ton erreur donc sur ça j'pourrais pas t'aider

copper pagoda
left forum
#

Salut, vous savez pourquoi j'ai cette erreur ? ValidationError: Expected a boolean primitive alors que je return bien un boolean

const { SlashCommandBuilder } = require('discord.js')

module.exports = {
    data: new SlashCommandBuilder()
        .setName('clear')
        .setDescription("Permet d'effacer un nombre de message en grande quantité")
        .addIntegerOption(option => option.setName('amount').setDescription('Le nombre de message que vous souhaitez supprimer').setRequired(true)),
    async execute(interaction, client){
        if(!interaction.member.permissions.has('ManageMessages')) return interaction.reply({ contenet: "Vous n'avez pas la permission nécessaire pour exécuter cette commande !", ephemeral: true })
        if(interaction.guild.me.permissions.has('ManageMessages')) return interaction.reply({ content: "Je n'ai malheureusement pas les permissions d'effectuer ce genre d'action !", ephemeral: true })

        let amount = interaction.options.getInteger('amount')
        if(isNaN(amount)) interaction.reply({ content: "Merci de spécifier un nombre / chiffre comme valeur d'entrée", ephemeral: true })
        if(parseInt(amount) > 99) {
            interaction.reply({ content: "Je peux seulement supprimer 99 messages à la fois !", ephemeral: true })
        } else {
            try {
                let { size } = await interaction.channel.bulkDelete(amount)
                await interaction.reply({ content: `**${size}** Message(s) supprimé(s) !` })
            } catch(e){
                console.log(e)
                interaction.reply({ content: "Je ne peux pas supprimer des messages datant de plus de deux semaines !", ephemeral: true })
            }
        }

    }    
}
#

c'est au niveau de addIntegerOption que sa bloque

copper pagoda
#

C'est bizarre c'est correct pourtant.

left forum
#

bah j'me suis dis la même chose

unique steeple
left forum
gentle zinc
#

Bonjour tout le monde,

Petit question ?
Peut-on attribuer un id unique a un embed et afficher cette id en Footer pour pouvoir l’update via un modal avec une commande.

gentle zinc
# lone flax https://tryitands.ee

Oui oui renvoyer un embed par dessus pour le modifier mais je veux dire est ce qu’on peut lui intégrer un id à cet embed ou pas utile ?

Comme ça avec l’id tu sais qu’elle embed modifier

lone flax
#

Bah tu peux récupérer tous les embeds d’un salon et vérifier lequel a un ID spécifique en footer oui

#

Mais c’est pas la meilleure solution dans ton cas je pense

gentle zinc
misty parcel
#

Salut, j'ai fais un petit système de suggestion que voici

#

Sauf que ce que je veux moi c'est que le thread commence sur l'embed en lui meme et pas à partir de rien

#

voici mon code

gentle zinc
# misty parcel

Ça peut être intéressant moi qui apprend aussi ! Peut être crée le thread avant et lui envoyer l’embed à l’intérieur ? 🤔

misty parcel
#

Ouais euh moi je veux faire comme ici quoi ^^

civic fractal
misty parcel
#

bah c'est ce que j'ai fais

civic fractal
#

Autant pour moi, je n'avais pas vu

placid gale
vast chasm
#

Hey ! J'ai cette erreur quand j'appui sur le button :

name[BASE_TYPE_REQUIRED]: This field is required
    at DiscordAPIError (g:\Drunk Guys\Drunk's Bot\node_modules\@discordjs\rest\dist\index.js:289:5)
    at runRequest (g:\Drunk Guys\Drunk's Bot\node_modules\@discordjs\rest\dist\index.js:748:15)
    at processTicksAndRejections (internal/process/task_queues:96:5)```
#
client.on('interactionCreate', async interaction => {
    if (!interaction.isButton()) return;

    if (interaction.customId === 'create-ticket') {
        let ticketName = `ticket-${interaction.user.username}`.toLowerCase();


        await interaction.reply({ content: `Creating ticket...`, ephemeral: true });

        if (interaction.guild.channels.cache.find(c => c.topic == interaction.user.id && c.name.includes("ticket"))) return interaction.editReply({ content: `You have already created a ticket!`, ephemeral: true });

        const createdChannel = await interaction.guild.channels.create(ticketName, {
            type: "text",
            topic: `${interaction.user.id}`,
            parent: "1000125211162718228",
            permissionOverwrites: [
                {
                    allow: ["VIEW_CHANNEL", "SEND_MESSAGES", "ATTACH_FILES", "EMBED_LINKS"],
                    id: interaction.user.id,
                },
                {
                    deny: "VIEW_CHANNEL",
                    id: interaction.guild.id,
                },
            ],
        });
        
        await interaction.editReply({ content: `Ticket created successfully in ${createdChannel}!` , ephemeral: true });

        const row = new ActionRowBuilder()
        .addComponents(
            new ButtonBuilder()
            .setStyle("1")
            .setEmoji("🔒")
            .setCustomId("ticket-close")
        );

        const embed = new EmbedBuilder()
        .setTitle("New Ticket!")
        .setDescription(`Hello <@!${interaction.user.id}>, a staff will assist you shortly!\n\n**Press the 🔒 button to close the ticket!**`)
        .setColor("#FFD74E")

        await createdChannel.send({ content: `New Ticket!`, embeds: [embed], components: [row] });
    }
});```
blazing wadi
#

ce serait pas ici : new ButtonBuilder()
.setStyle("1")
.setEmoji("🔒")
.setCustomId("ticket-close") ?

#

ou il faudrait mettre une couleur genre RED

blazing wadi
#

y a moyen c'est danger

#

Danger

#

ouais c'est ça

#
new ButtonBuilder()
            .setStyle("DANGER")
            .setEmoji(":lock:")
            .setCustomId("ticket-close")```
#

Un truc comme ça

sullen kelp
#

Oui mais en v14 ça à changé, donc ça dépend de sa version

vast chasm
#

Chui en V14

vast chasm
sullen kelp
#

Ducoup le numéro c'est bon

vast chasm
sullen kelp
#

Mais Thitis tu as raison en v13 c'est ça

blazing wadi
#

ah merde je pensais que c'était ça vu l'erreur et sur la doc c'était comme ça aussi dsl 😅

sullen kelp
#

C'est rien de grave

#

Ducoup re la 3g du seigneur est de retour

#

Essaye de mettre un .setLabel('ce que tu veux comme texte sur ton bouton')

#

Parceque j'ai l'impression que tu peux pas juste avoir un émoji

#

Après si tu veux vraiment pas de texte mais un caractère invisible

sullen kelp
#

Ah

blazing wadi
#
    .setLabel('Primary')
    .setStyle(ButtonStyle.Primary)
    .setEmoji('123456789012345678');``` si tu veux mettre un emoji seul c'est ça
#

donc je vois pas ce qui cloche

sullen kelp
#

Essaye avec ButtonStyle.Danger en style

vast chasm
sullen kelp
#

Ah

#

Là je sais pas

vast chasm
#

Ok pas grave merci quand meme

copper pagoda
copper pagoda
keen narwhal
#

bonjour tout le monde je viens de commencer javascript parce que c'est un langage que j'aime beaucoup et j'aimerais en faire mon métier plus tard (16 actuellement) j'aimerais m'exercer mais je ne trouve aucun exercice pour débutant comme moi y aurait il quelqu'un qui pourrait m'aider?

placid gale
#

Le mieux pour apprendre c'est de faire plein de petits projets qui t'amuses, tu verras ça rentrera tout seul

left forum
split copper
#

Il y a plein d’exercice sur codewars ou leetcode

#

Gratuit

keen narwhal
#

ok merci beaucoup tout le monde

soft lion
#

Bonjour, je début en programmation et Jsp où est l'erreur quelqu’un peut m'aider svp ?

soft lion
clever bane
#

Ici, nous allons voir les prérequis afin de commencer à développer votre propre bot discord ! Avec discord.js v14

----- Serveur partenaire -----
Creators Area : https://discord.gg/K3qyS4jDwc

------- Mon serveur discord ------
https://discord.gg/4GxNn7MWmz

------- Liens utiles -------

Discord developer : https://discord.com/developers/applic...

▶ Play video
left forum
soft lion
soft lion
#

entait j’aimerais crée un bot qui fait des ticket et comme je debute j'ai pris un code sur internet et jsp ou le mettre, je le mais dans index.js ou je cree un autre .js ? svp

#

qui pour m'aider pls ?

queen ocean
civic fractal
#

Aucune utilité d'en prendre sur internet. Pour apprendre, il faut pratiquer

soft lion
#

pas grave merci des conseil

heavy field
#

Bonjour, j'ai une erreur qui fait en sorte que mon bot ne réponde plus au message depuis que j'ai écris cette commande. Quelqu'un saurait me dire d'ou elle vient ? Bonne aprém.

heavy field
copper pagoda
#

Dans le terminal tu as rien ?

heavy field
copper pagoda
# heavy field

C'est client avec un c minuscule pour Client.application.commands

fickle flame
#

Salut les boys, actuellement, j'essaie de récupérer le système d'exploitation d'un utilisateur en js (Les navigateurs ne détectant pas w11 avec http_user_agent en php), j'ai donc trouvé sur le site de microsoft un code qui permet de détecter la version de l'os et le code marche sur certains navigateurs mais pas tous (en particulier sur firefox), il s'agit de userAgentData https://developer.mozilla.org/en-US/docs/Web/API/Navigator/userAgentData je voulais donc savoir si vous auriez une alternative pour pouvoir détecter si l'utilisateur est sur w11 ?

The userAgentData read-only property of the Navigator interface returns a NavigatorUAData object
which can be used to access the User-Agent Client Hints API.

vast chasm
#

Je fais un systeme de voice channel creator et je sais pas comment faire pour que lorsque je quitte le channel il ce delete automatiquement

client.on("voiceStateUpdate", async (oldState, newState) => {
    const user = await client.users.fetch(newState.id)
    const member = newState.guild.members.cache.get(user.id);

    if(!oldState.channel && newState.channel.id === '999659692726952086') {
        const channel = await newState.guild.channels.create(user.tag, {
            type: 'GUILD_VOICE',
            parent: newState.channel.parent,
        });
        member.voice.setChannel(channel);
        voiceCollection.set(user.id, channel.id);
    } else if(!newState.channel) {
        if(oldState.channel === voiceCollection.get(newState.id)) return oldState.channel.delete()
    }
})```
copper pagoda
# vast chasm Je fais un systeme de voice channel creator et je sais pas comment faire pour qu...

Tu test ça.

    else if(newState.channel != oldState.channel) {
        if(oldState.channelId == "999659692726952086") return;
        const a = [];
        bot.voiceCollect.each((e) => a.push(`${e}`));
        setTimeout(() => {
            if(oldState.channel == null) return;
            if(oldState.channel.members.size > 0) return;
                if(a.find(d => d == oldState.channel.id)){
                    bot.voiceCollect.set(owner, null);
                    oldState.channel.delete();
                    return;
                }
        }, 1000);
    }
mortal junco
#

Bonjour j'ai un gros pronleme

#

est ce que les interval trop élevés ne marchent pas ?

#

Car j'ai fais qui doit envoyer un message 1 fois par mois

#

donc j'ai mis le temps en millisecondes sauf qu'il spam le messages, comme si il y avait 0 secondes d'interval

vast chasm
copper pagoda
#

Enlève bot je l'ai rajouté mais j'avais pas vu toi tu as direct défini VoiceCollection

#
    else if(newState.channel != oldState.channel) {
        if(oldState.channelId == "999659692726952086") return;
        const a = [];
        voiceCollection.each((e) => a.push(`${e}`));
        setTimeout(() => {
            if(oldState.channel == null) return;
            if(oldState.channel.members.size > 0) return;
                if(a.find(d => d == oldState.channel.id)){
                    voiceCollection.set(owner, null);
                    oldState.channel.delete();
                    return;
                }
        }, 1000);
    }

Voilà.

vast chasm
#

Ouais j'ai fais sa mais mtn j'ai sa comme erreur : Uncaught ReferenceError ReferenceError: owner is not defined

copper pagoda
#

Ah oui mince tu as owner

vast chasm
copper pagoda
#

Faut que tu récupère le créateur du channel que tu as mis dans ton collector pour pouvoir le mettre à null.

#

Moi j'avais utilisé l'intermédiaire d'un fichier json si jamais le bot redem trql.

copper pagoda
vast chasm
copper pagoda
#
    else if(newState.channel != oldState.channel) {
        if(oldState.channelId == "999659692726952086") return;
        const a = [];
        voiceCollection.each((e) => a.push(`${e}`));
        setTimeout(() => {
            if(oldState.channel == null) return;
                if(a.find(d => d == oldState.channel.id)){
                    voiceCollection.set(user.id, null);
                    oldState.channel.delete();
                    return;
                }
        }, 1000);
    }

Essaye ça.

vast chasm
copper pagoda
#

De rien écoute.

civic fractal
#

Hey ! J'avais une question, je n'arrive pas à faire quelqur chose de tout bête. Je voudrais faire en sorte que ça n'envoie pas toujours le même message. Un peu comme quand quelqu'un join (#general)
J'ai commencé par définir mes messages mais, je ne sais pas comment faire avec Math.random(). Désolé, mon explication n'est pas clair 😅

civic fractal
#

Je n'ai pas vraiment de code pour le coup. Mais il ressemblerai à cela

const MyMessageForJoin = [
"Ceci est la phrase 1",
"Ceci est la phrase 2",
"Ceci est la phrase 3",
]

message.channel.send({ content: `Math.random(${MyMessageForJoin})` })```
#

Je n'ai jamais utilisé Math.random, c'est pour cela que je ne sais pas comment faire

copper pagoda
civic fractal
#

Je vais essayer ! Je te remercie

copper pagoda
#

De rien 😉

civic fractal
#

Ça à l'air de fonctionner ! Merci

lone flax
#

math.floor va impacter les résultats du rng en faisant ça

#

Ah non en fait vu que le random en js n’inclus pas le 1 ^^

#

Quelqu’un a déjà su faire du 3D-2D avec du Canvas sur node et saurait nous aiguiller sur comment ça marche ?

copper pagoda
lone flax
#

Yes yes j’ai vu après mb

weak grove
#

Salut, j'ai un problème avec mon bot, dés lors que mon bot envois un message a un joueur ayant bloqué le bot ou que les messages privées du joueur en question sois bloqué le bot crash, j'ai essayé avec un try catch mais le bot crash toujours, avez vous une solution ?

client.users.cache.get(member.id).send("test");
DiscordAPIError: Cannot send messages to this user
    at RequestHandler.execute (/home/rytrak/bot/utility/node_modules/discord.js/src/rest/RequestHandler.js:154:13)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async RequestHandler.push (/home/rytrak/bot/utility/node_modules/discord.js/src/rest/RequestHandler.js:39:14) {
  method: 'post',
  path: '/channels/772129344520323102/messages',
  code: 50007,
  httpStatus: 403
left forum
#

tu fais une condition if else

sullen kelp
#

si tu n'as pas de await tu n'as pas bessoin de try

#

Et je crois que createdm est plus optimisé mais à vérifier

left forum
#

ouais tu fais un await function().catch()

#

comme ça ton bot ne crash pas

#

@weak grove

weak grove
#

Ok merci les gars je vais faire ça 👍

left forum
#

Salut, vous savez pourquoi ça me fait ça ?

#

je n'ai pas d'erreur console et je ne remarque pas d'erreur flagrante dans mon code

#
const { SlashCommandBuilder } = require('discord.js')

module.exports = {
    data: new SlashCommandBuilder()
        .setName('addrole')
        .setDescription("Permet d'assigner un rôle à un membre du discord")
        .addStringOption((option) => option.setName('user').setDescription("L'utilisateur souhaité").setRequired(true))
        .addStringOption((option) => option.setName('roleid').setDescription("L'ID du rôle que vous souhaitez attribuez").setRequired(true)),
    async execute(interaction, client){
        let user = interaction.options.getString('user')
        let role = interaction.options.getString('roleid');
        let member = interaction.guild.members.cache.get(user.id) || await interaction.guild.members.fetch(user.id).catch(error => {console.log(error)})

        if(!role) interaction.reply({ content: "Je ne trouve pas ce rôle !", ephemeral: true })
        if(!interaction.member.permissions.has("ManageRoles")) interaction.reply({ content: "Vous n'avez pas la permission d'exécuter cette commande!", ephemeral: true })
        if(interaction.member.roles.highest.position <= member.roles.highest.position) return interaction.reply("Ce membre est supérieur à vous je ne peux donc pas lui assigner de rôle !")

        await user.roles.set([role]).then(interaction.reply({ content: `Le rôle ${role} à bien été attribué à ${user}` })).catch((err) => { console.log(err) })
    }    
}
copper pagoda
#

Ah si j'ai rien dit tu as tout mis sur la même ligne.

left forum
#
const { SlashCommandBuilder } = require('discord.js')

module.exports = {
    data: new SlashCommandBuilder()
        .setName('addrole')
        .setDescription("Permet d'assigner un rôle à un membre du discord")
        .addStringOption((option) => option.setName('user').setDescription("L'utilisateur souhaité").setRequired(true))
        .addStringOption((option) => option.setName('roleid').setDescription("L'ID du rôle que vous souhaitez attribuez").setRequired(true)),
    async execute(interaction, client){
        let user = interaction.options.getString('user')
        let role = interaction.options.getString('roleid');
        let member = interaction.guild.members.cache.get(user.id) || await interaction.guild.members.fetch(user.id).catch(error => {console.log(error)})

        if(!role) interaction.reply({ content: "Je ne trouve pas ce rôle !", ephemeral: true })
        if(!interaction.member.permissions.has("ManageRoles")) interaction.reply({ content: "Vous n'avez pas la permission d'exécuter cette commande!", ephemeral: true })
        if(interaction.member.roles.highest.position <= member.roles.highest.position) return interaction.reply("Ce membre est supérieur à vous je ne peux donc pas lui assigner de rôle !")

        await member.roles.set([role]).then(interaction.reply({ content: `Le rôle ${role} à bien été attribué à ${member}` })).catch((err) => { console.log(err) })
    }    
}
#

j'ai modifier mon code il avait quelques erreurs

left forum
#

c'est tout sur la même ligne

#

mais je comprends pas j'ai pas d'erreur console juste mon application qui ne veut pas répondre

#

mes autres slashcommand fonctionne parfaitement pourtant

copper pagoda
#

C'est bizarre j'ai jamais vu la fonction set pour ajouter un rôle.

left forum
#

je me réfère a la docs djs après

#

TypeError: Cannot read properties of undefined (reading 'roles')

#

j'ai enfin une erreur

#

J'ai changer mon code mais mon application ne répond toujours pas

#
const { SlashCommandBuilder } = require('discord.js')

module.exports = {
    data: new SlashCommandBuilder()
        .setName('addrole')
        .setDescription("Permet d'assigner un rôle à un membre du discord")
        .addStringOption((option) => option.setName('user').setDescription("L'utilisateur souhaité").setRequired(true))
        .addStringOption((option) => option.setName('roleid').setDescription("L'ID du rôle que vous souhaitez attribuez").setRequired(true)),
    async execute(interaction, client){
        let user = interaction.options.getString('user')
        let role = interaction.options.getString('roleid');
        let member = interaction.guild.members.cache.get(user.id) || await interaction.guild.members.fetch(user.id).catch(error => {console.log(error)})

        if(!role) interaction.reply({ content: "Je ne trouve pas ce rôle !", ephemeral: true })
        if(!interaction.member.permissions.has("ManageRoles")) interaction.reply({ content: "Vous n'avez pas la permission d'exécuter cette commande!", ephemeral: true })

        await member.add(role)
        .then(interaction.reply({ content: `Le rôle ${role} à bien été attribué à ${member}` }))
        .catch((err) => { console.log(err) })
    }    
}
#

TypeError: Cannot read properties of undefined (reading 'add')

civic fractal
#

Tu es en v13 ou bien v14

left forum
left forum
copper pagoda
civic fractal
copper pagoda
#

C'est pas le await.

left forum
#

TypeError: Cannot read properties of undefined (reading 'roles')

#

Error [GuildMembersTimeout]: Members didn't arrive in time.

#

DiscordAPIError[10062]: Unknown interaction

#

j'ai 3 erreurs principales je pense

copper pagoda
left forum
#

let member = interaction.guild.members.cache.get(user.id) || await interaction.guild.members.fetch(user.id).catch(error => {console.log(error)})

#

pourtant cette ligne marche parfaitement pour mes commandes ban et kick

copper pagoda
left forum
#

ouais

#

Perso je bloque sur le pourquoi du comment j’ai pas tellement de solution qui me viennent en tête

copper pagoda
#

Au lieu de mettre un string pour l'user pour tu mets pas direct user ?

left forum
#

ok je viens de régler le plus gros avec ta remarque en effet j'avais pas remarqué mon erreur

#

TypeError [CommandInteractionOptionType]: Option "user" is of type: 3; expected 6.

#

m'ai j'ai encore cette erreur

copper pagoda
#

Tu as fait le code comment ?

left forum
#
const { SlashCommandBuilder } = require('discord.js')

module.exports = {
    data: new SlashCommandBuilder()
        .setName('addrole')
        .setDescription("Permet d'assigner un rôle à un membre du discord")
        .addUserOption((option) => option.setName('user').setDescription("L'utilisateur souhaité").setRequired(true))
        .addStringOption((option) => option.setName('roleid').setDescription("L'ID du rôle que vous souhaitez attribuez").setRequired(true)),
    async execute(interaction, client){
        let user = interaction.options.getUser('user')
        let role = interaction.options.getString('roleid');
        let member = interaction.guild.members.cache.get(user.id) || await interaction.guild.members.fetch(user.id).catch(error => {console.log(error)})

        if(!role) interaction.reply({ content: "Je ne trouve pas ce rôle !", ephemeral: true })
        if(!interaction.member.permissions.has("ManageRoles")) interaction.reply({ content: "Vous n'avez pas la permission d'exécuter cette commande!", ephemeral: true })

        await member.roles.add(role)
        .then(interaction.reply({ content: `Le rôle ${role} à bien été attribué à ${member}` }))
        .catch((err) => { console.log(err) })
    }    
}
copper pagoda
#

Oki.

#

C'est bizarre

left forum
#

ok c'est bon sa marche j'ai repush mes slashcommand et relancer le bot

#

merci

copper pagoda
#

oki nickel.

pine creek
#

salut je cherche une personne qui peux me debugé un mods minecraft

full drum
#

bonjour a tous, je suis novice dans le domaine du JS et je me lance dans la création d'un bot discord complet. Je viens de suivre un tuto du créateur du serveur, mais j'ai une couillette quelques part dans le code mais je n'arrive pas a trouver où ? je suis dans la phase entrée d'un membre avec l'incorporation d'une image

civic fractal
near saddle
#

Hello, je rencontre actuellement quelques soucis avec mon code, qui refuse d'envoyer un message via un webhook lorsque je l'execute et qui ne return pourtant aucune erreur ;

#

Je n'ai pas vraiment d'idée d'où le souci peut venir, donc je suis ouvert à toute suggestion

near saddle
#

Une erreur a fini par pop !

keen narwhal
#

c'est quoi le meilleur hebergeur pour un bot discord javascrip

clever bane
#

Après y'a pas vraiment de "meilleur hébergeur" tu choisis celui que tu veux

keen narwhal
sullen kelp
#

Ducoup prend un vps, parceque sinon tu va payer 10 000 hébergement pour des bots, le vps sera plus rentable (en gros c'est comme un pc mais à distance)

keen narwhal
sullen kelp
#

OVH en fait de bon, après je suis pas un expert en hébergement x)

#

Attend aussi l'avis de Shuttle

#

(Et prend ton temps avant d'acheter)

keen narwhal
#

ok ok merci

clever bane
#

Mon avis n'a aucune valeur mdr j'ai encore jamais hébergé de bot ou truc similaire

blazing wadi
#

les vps y sont pas si chers et tu peux mettre pas mal de bots dessus

oak turret
#

tout dépends lequel, mais pas besoin de payer 50€ ton hébergement pour un petit bot,; si c'est pas un Mee6 bis te fais pas trop chier

oak turret
left forum
near saddle
#

justement je pense pas

#

si tu veux les messages s’envoient

left forum
#

Il ne trouve pas ton token

near saddle
#

mais pas tout le temps

left forum
#

Ah

near saddle
#

genre des qu’il est 40 ça s’envoie

#

et après faut attendre une heure

left forum
#

Il y a peut être une limite imposé par discord je sais pas du tout

near saddle
#

c’est peut être ça le souci ui

#

tu sais si y’a une limite de création de webhook ?

left forum
#

T’as commande c’est pour quoi ? Tu peux peut être passer par autre chose que les webhooks

left forum
#

Mais y a moyen

near saddle
#

tu connais tupperbox comme bot?

left forum
#

Non pas du tout

near saddle
#

c'est un bot pour le RP sur discord, tu enregistres ton personnage via une commande ( avec préfixe, nom, et URL d'avatar ), et dès lors que tu envoies un message commençant par ton préfixe, un webhook envoie un message avec la suite de ton message

left forum
near saddle
#

Exemple plus concret, si tu enregistres un pesonnage comme ça : prefixe = 'IB!', nom='LDB',
En écrivant ceci :
IB! Hello! Je suis un webhook

Le rendu sera le suivant :

LDB -- Hello! Je suis un webhook```
near saddle
#

à savoir en webhooks

#

toute ma partie BDD est déjà gérée à vrai dire, pour l'insertion, ça se passe via une commande slash

left forum
#

Ouais mais au lieu de copier coller un bot et d’avoir des perfs horrible explique lui et montre lui la différence

#

Après si il est têtu tant pis pour lui il restera avec un bot qui envoie des messages 1h après l’envoie de la commande

near saddle
#

et puis même après pour l'immersion dans le RP, un "vrai" message ( via webhook ) fait plus correct qu'un embed x)

#

sinon si j'essaie de créer plusieurs webhooks ? genre un dédié par personnage ?

#

à savoir que chaque membre peut avoir pas mal de perso ( 5 ~6 )

left forum
#

Je sais pas du tout à toi de faire des test et de voir ce qui rend le mieux pour ton client

near saddle
#

ok ok,merci de ton aide ^^

fierce plank
#

Hello pouvez vous me dire pourquoi j ai ca ?

hazy mirage
#

Salut tu es en quelle version de discordjs ?

fierce plank
#

v13

hazy mirage
#

La fonction existe plus en c13

#

Faut passer par un await guild.members.fetch(user.id)

fierce plank
#

ok

fierce plank
lone flax
#

ligen 9

hazy mirage
#

Tu as envoyé une erreur plus haut… avec une ligne….

fierce plank
#

oui mais laisse tomber chui con

lone flax
#

oui

hybrid elk
#

On est d'accord qu'il n'est pas possible de fetch (et du coup modifier) un message envoyé avant que le bot ait été allumé?

hybrid elk
#

Hein

#

Ah bon

#

Comment?

lone flax
#

.fetch

open cradle
#

Bonsoir, je voulai savoir si c'etait possible ou il y a le ping d'afficher de reduire le nombre de chiffre apres la virgule ?

#

Je suis pas très connaisseur du js alors faudra essayer de m'expliquer 😉

untold shale
#

Ptn j'adore le système je cherche justement à le faire

open cradle
#

x)

hybrid elk
#

Mais quand je fetch ça ne marche pas

lone flax
#

Bah demande pas alors

#

Bah tu fetch mal

untold shale
hybrid elk
#

L'entraide elle a changé

lone flax
#

Les demandes d’aides elles ont changé aussi

open cradle
#

Pour le ping tcp-ping

lone flax
#

D’habitude les gens montrent leur code déjà ´

untold shale
#

Ok ok merci

hybrid elk
untold shale
hybrid elk
lone flax
#

Oui et j’te donne une réponse légitime aussi mais tu me dis « je sais », si tu sais bah résous le problème demande pas de l’aide ^^

#

Bah pourtant c’est ton code le problème

#

Parce que c’est bien fetch qu’il faut utiliser

hybrid elk
#

Ok, je vais recheck

lone flax
#

Envoie le code et éventuellement l’erreur on pourra peut-être t’aider plus concrètement

oak turret
#

2 = nombre de chiffres après la virgule

open cradle
#

Dans mon code ces quelque chose du genre 😉

oak turret
#

.avg.toFixed(2)

open cradle
#

Okay je vais test 🙂

oak turret
#

check et tu me dis

open cradle
#

Yes 😉

open cradle
oak turret
#

np

cosmic plaza
#

Quelqu'un peut m'aider ?

Quand je lance mon bot en local il marche mais dès que je le mais en machine il beug.

#

@copper pagoda T'es dispo ?

cosmic plaza
# dire latch Erreur ?

Je sais pas comment accèder au log donc je sais pas si y'a une erreur mais en tout cas le bot ne fais pas les actions mais reste en ligne

dire latch
cosmic plaza
dire latch
#

Tu fais pm2 logs 0

#

Et tu auras les logs

cosmic plaza
#

Error: Cannot enqueue Query after fatal error.
0|server | at Protocol._validateEnqueue (/home/adminuser/www/server/node_modules/mysql/lib/protocol/Protocol.js:212:16)
0|server | at Protocol._enqueue (/home/adminuser/www/server/node_modules/mysql/lib/protocol/Protocol.js:138:13)
0|server | at Connection.query (/home/adminuser/www/server/node_modules/mysql/lib/Connection.js:198:25)
0|server | at /home/adminuser/www/server/server.js:333:8
0|server | at Layer.handle [as handle_request] (/home/adminuser/www/server/node_modules/express/lib/router/layer.js:95:5)
0|server | at next (/home/adminuser/www/server/node_modules/express/lib/router/route.js:144:13)
0|server | at Route.dispatch (/home/adminuser/www/server/node_modules/express/lib/router/route.js:114:3)
0|server | at Layer.handle [as handle_request] (/home/adminuser/www/server/node_modules/express/lib/router/layer.js:95:5)
0|server | at /home/adminuser/www/server/node_modules/express/lib/router/index.js:284:15
0|server | at Function.process_params (/home/adminuser/www/server/node_modules/express/lib/router/index.js:346:12) {
0|server | code: 'PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR',
0|server | fatal: false
0|server | }

copper pagoda
#

Fait pm2 logs --lines 100 comme ça tu verras tout

cosmic plaza
#

Ah oui je vois

#

Plein

copper pagoda
#

ça vient de ton express ça non ?

cosmic plaza
#

Je sais pas, d'habitude c'est pas moi qui gère sa et j'ai besoin de le mettre

#

Donc bizzare

#

Tu peut passer vocal ?

copper pagoda
#

J'ai jamais eu cette erreur je sais pas à quoi elle correspond

copper pagoda
cosmic plaza
#

Ah ok

dire latch
#

Tu peut écrire là ?

#

Ou tes bloqué dans tes logs ?

cosmic plaza
#

Je peut écrire

dire latch
#

Ok fais pm2 logs --lines 100

#

Tu auras plus de détails

copper pagoda
#

XD oula

dire latch
#

Ah il a delete

#

Je lisais xd

cosmic plaza
copper pagoda
#

XD

cosmic plaza
#

C'est bon tenez mdr

cosmic plaza
copper pagoda
#

Il mets que les logs de pm2 ou je rêves XD.

cosmic plaza
dire latch
cosmic plaza
#

Ah pas grave

copper pagoda
#

Ah mais faut que je download le fichier j'suis con XD.

dire latch
#

Chelou les logs pm2 mdr

copper pagoda
#

Déjà tu as ça

cosmic plaza
#

Je pense savoir c'est quoi mais je saurai vraiment pas le règle

dire latch
#

Ah

copper pagoda
dire latch
#

Mais ta oublié le numéro @cosmic plaza

#

Fais pm2 status

copper pagoda
#

Et ça.

dire latch
#

Et tu regards le nombre à gauche

cosmic plaza
dire latch
#

Ducoups pm2 logs 0 --lines 200

cosmic plaza
copper pagoda
#

Aucune idée.

cosmic plaza
copper pagoda
#

En tout cas il aime pas ton bot XD

cosmic plaza
#

Je vois sa

copper pagoda
#

Tu as utilisé express où ?

cosmic plaza
#

Dans mon VPS

#

Dans mon autre site

#

Franchement je suis vraiment pas trop fort, fini ton montage et dès que t'es disponible, essaye de venir vocale stp.

copper pagoda
#

C'est vraiment reloue.

cosmic plaza
#

Oui

copper pagoda
#

Ouais après j'ai rendez vous avec mon kiné je sais pas si je serai là.

cosmic plaza
#

Ah ok pas grave

dire latch
#

Yes idk

cosmic plaza
#

Quelqu'un de dispo ?

ashen rapids
#

Quelqu'un connait une bonne lib Javascript pour transformer un channel discord en HTML ?
De la même manière que fait Ticket Tool

#

Peut-être @queen ocean si vous avez développer le votre 😏

queen ocean
ashen rapids
#

Je l'ai vu passer
Elle est bien maintenue ?

copper pagoda
#

Perso je l'utilise j'ai juste du edit le module pour la V14.

ashen rapids
#

On va partir là-dessus alors, j'espère que ça tient la route leur truc

queen ocean
ashen rapids
copper pagoda
ashen rapids
#

Tu participes à la communauté open source en envoyant pour vérification (auprès des créateurs de la lib), une ou plusieurs fonctionnalité

#

Ici une compatibilité DJS14

#

Enfin, j'ai l'impression que ça l'est déjà d'après leur github :

This module is designed to work with discord.js v13 and v14.

copper pagoda
misty parcel
#

Salut les copains j'ai un soucis en faite je souhaite faire en sorte que quand on clique sur une option d'un selectMenu ça modifie le premier embed d'une série de 3 embeds, pour ce faire, j'ai fias ça

#

sauf que redUpdate est undefined

idle ice
#

Normal, fields c'est un tableau avec chaque champs

#

donc fields[0] pour le premier, etc

#

@misty parcel

misty parcel
#

🤔

idle ice
misty parcel
#

Mh ?

idle ice
#

Tu me met un emoji pensif, donc, je suppose que t'as pas capté

#

Mais faut m'en dire plus

misty parcel
#

j'ai tester

idle ice
#

Combien de champs as-tu ?

misty parcel
#

3

idle ice
#

Tu as dis 3 Embeds

#

Un champ, c'est pas un embed

misty parcel
#

oui

idle ice
#

Fais un screen de ce que tu appeles "embed"

misty parcel
#

oui je sais j'ai 3 embeds

idle ice
#

Et je te demande combien de CHAMPS tu as dans ton embed

misty parcel
#

y'en a 3

idle ice
#

On avance! 🙂

#

Si tu console.log selectMenu.messages.embeds[0]

#

Ca te print quoi ?

misty parcel
#

fields c'est empty je comprends po

idle ice
#

Tes fields ne sont pas chargés, ca explique déjà les undefined

misty parcel
#

🤔

#

ouais

idle ice
#

Essaye de fetch ton message avant de print

#

Tes fields ne sont sûrement pas en cache

misty parcel
#

okok

keen narwhal
#

Est ce que quelqu'un aurais des connaissance en bot vinted par hasard ici ?

vast chasm
round valve
vast chasm
round valve
#

ce lien t'aidera 😉

vast chasm
broken solar
#

Salem, quelqu'un s'y connait bien avec recharts les gars ?

sullen kelp
left forum
#

Tu l’as déclare jamais t’as variable message

keen narwhal
misty parcel
#

salut

#

j'ai un problème, je communique avec une libraire d'un jeu de guerre, quand on est en guerre contre une autre équipe je veux que ça me renvoie le nom des deux équipes qui s'affrontent, sauf que ça me spam complètement la réponse car les guerres durent deux jours, du coup quand le bot revérifie moins de 2 jours après si les équipes sont toujours en guerre, ça renvoie true (je suppose)

#

meme avec le return

misty parcel
#

ok bon j'ai contourner le pb

left forum
#

Salut, j'aimerais savoir si c'était possible de spécifier au bot ou créer un channel, j'ai déjà la commande de base sauf que les channels se créent en dehors des catégories

const { SlashCommandBuilder, ChannelType } = require('discord.js')

module.exports = {
    data: new SlashCommandBuilder()
        .setName('createchannel')
        .setDescription("Permet de créer un channel discord")
        .addStringOption((option) => option.setName('channelname').setDescription("Le nom souhaitez pour le channel discord").setRequired(true))
        .addStringOption((option) => option.setName('channeltype').setDescription("Le type de channel discord souhaitez").setRequired(true)),
    async execute(interaction, client) {
        let channelname = interaction.options.getString('channelname');
        let channeltype = interaction.options.getString('channeltype');

        let writechannel = ChannelType.GuildText;
        let voicechannel = ChannelType.GuildVoice;

        let owner = interaction.guild.ownerId;
        if (interaction.user.id != interaction.guild.ownerId) return interaction.reply({content: "Vous n'avez pas la permission d'exécuter cette commande !", ephemeral: true});

        if(channeltype === 'voice' && owner) {
            interaction.guild.channels.create({
                name: channelname,
                type: voicechannel
            })
        } else if(channeltype === 'text' && owner) {
            interaction.guild.channels.create({
                name: channelname,
                type: writechannel,
            })
        } else {
            interaction.reply({ content: "Je ne connais pas ce type de salon, merci de spécifier votre choix entre voice & text !", ephemeral: true })
        }
    }    
}
#

voilà mon code

neat lintel
#

tu peux passer une option "parent" pour indiquer la catégorie

left forum
#

ah oui ok je l'avais zappé sur la docs merci je vais essayer

left forum
# neat lintel tu peux passer une option "parent" pour indiquer la catégorie

j'ai essayer avec ce code

const { SlashCommandBuilder, ChannelType } = require('discord.js')

module.exports = {
    data: new SlashCommandBuilder()
        .setName('createchannel')
        .setDescription("Permet de créer un channel discord")
        .addStringOption((option) => option.setName('channelname').setDescription("Le nom souhaitez pour le channel discord").setRequired(true))
        .addStringOption((option) => option.setName('channeltype').setDescription("Le type de channel discord souhaitez").setRequired(true)),
    async execute(interaction, client) {
        let channelname = interaction.options.getString('channelname');
        let channeltype = interaction.options.getString('channeltype');

        let writechannel = ChannelType.GuildText;
        let voicechannel = ChannelType.GuildVoice;

        let owner = interaction.guild.ownerId;
        if (interaction.user.id != interaction.guild.ownerId) return interaction.reply({content: "Vous n'avez pas la permission d'exécuter cette commande !", ephemeral: true});

        if(channeltype === 'voice' && owner) {
            let voiceChannel = interaction.guild.channels.create({
                name: channelname,
                type: voicechannel,
            })
            voiceChannel.parent('1005161613214634166')
        } else if(channeltype === 'text' && owner) {
            interaction.guild.channels.create({
                name: channelname,
                type: writechannel,
            })
        } else {
            interaction.reply({ content: "Je ne connais pas ce type de salon, merci de spécifier votre choix entre voice & text !", ephemeral: true })
        }
    }    
}
#

mais il me retourne une erreur

#

TypeError: voiceChannel.parent is not a function

neat lintel
#

c'est pas une fonction parent mais une option

copper pagoda
neat lintel
#

tu as peut être setParent pour choisir la catégorie

neat lintel
#

faut un channel resolvable

left forum
copper pagoda
neat lintel
#

ah nn pardon c'est moi qui lis pas les bonnes lignes

copper pagoda
#

ça peut arriver je t'en veux pas.

neat lintel
left forum
viral minnow
#

Bonjourrr, en ce momment j'essaie de fetch le contenu d'une api mais j'obtiens toujours cette erreur, pouvez vous m'aider ?

Code complet : cf Pj (message.txt) (La fonction qui nous intéresse : LoadDrink() (searchById())

Code : ```jsx
const SearchById = async (id) => {
await fetch(https://www.thecocktaildb.com/api/json/v1/1/lookup.php?i=${id})
.then(response => {
console.log(response.body)
console.log(response.json())
response.json()
})
.then(data => {
setDrinkData(data["drinks"])
})
console.log(drinkData)
setOneDrink(true)
setAllDrinks(false)
}



Erreur (je l'obtiens plusieurs fois juste en chargant la page, lors du chargement je ne demande meme pas de lancer le fetch) :
keen narwhal
#

Salut, j'ai une question pour les dev JS ; Comment avez vous appris JS ? Merci ;))

left forum
#

J’ai ciblé certains concepts de JS en fonction du projet que je prévoyais (ici DJS) je sais pas si c’est une bonne méthode mais elle a été efficace pour ma part

placid wind
#

Cest pas ton code qui merde, mis a pars que tu essaie d’acceder a l’index drinks qui n’existe pas vu que tu as une erreur dans la promesse

keen narwhal
left forum
viral minnow
#

Jr ne sais juste pas comment faire

left forum
#

Cherche sur internet tu auras sûrement la réponse

viral minnow
viral minnow
#

Aucuns id que j'utilise est null

#

Ahhh

#

Att

#

12450 @placid wind

civic fractal
#

Hey ! Connaissez-vous un bon module pour un système de level ?

left forum
civic fractal
#

Pourquoi pas, mais je pense ne pas savoir comment faire

left forum
civic fractal
#

Ok merci ! Je vais me renseigner

left forum
#

Salut, vous savez pourquoi j'ai cette erreur ? j'ai suivi l'exemple de la docs DJS pourtant : TypeError: Cannot read properties of undefined (reading 'getTextInputValue')

civic fractal
#

Tu es en quelle version de Discord.JS ?

left forum
#

14

civic fractal
#

Tu as bien suivi la documentation en v14 ?

left forum
#

oui

civic fractal
#

Hum, tu as la ligne où se situe l'erreur ?

left forum
#

c'est bon j'ai plus d'erreur console mais les valeurs de mon modal ne s'envoie pas dans mon embed

#

fin mon embed ne s'envoie pas tout court

left forum
#

ouais impossible d'envoyer mes valeurs dans un embed si quelqu'un pourrait m'aider

civic fractal
#

Tu pourrais renvoyer ton code ?

left forum
#

ouais

#

c'est embêtant si la docs de DJS n'est pas bonne

#

@neat lintel salut excuse de te déranger mais tu as déjà bosser avec les modals ?

civic fractal
#

Où est ton embed suefort

left forum
#

Error [InteractionAlreadyReplied]: The reply to this interaction has already been sent or deferred.

#

j'ai tout changer j'essaye de voir où sa coince

#

tien le code actuelle avec l'embed

#

j'suis pas aider avec une docs qui est fausse gun harold

civic fractal
#

Il faut mettre l'embed dans un interactionCreate suefort

left forum
#

C’est déjà le cas toutes mes slash command sont automatiquement assigner à la fonction interactionCreate

civic fractal
#

Oui, mais il faut le faire dans un event séparé (learn the doc)

left forum
#

J’ai du louper un épisode ou alors j’ai pas la bonne logique mais pourquoi faire 2 interactionCreate si mon fichier actuelle prend déjà en charge cette fonction

civic fractal
#

J'en ai aucune idée. Pratiquement tout le monde fais cette technique mais parfois ça ne fonctionne pas parfois l'inverse

#

C'est un peu le bordel

left forum
#

Ça va pas être chiant ça encore gun kappathugs

neat lintel
fading glacier
# left forum Ça va pas être chiant ça encore <:gun:697784338699386992> <:kappathugs:796831259...

En gros là il faut que tu modifies ton handler pour qu'il prenne aussi en charge les modals, parce que là tu fais await interaction.showModal(modal); qui équivaut à une réponse à l'interaction de ta commande, puis tu veux récupérer les valeurs de ton modal. Dcp ici tu dois dans ton interactionCreate faire que si interaction.isModal() (ou qqc comme ça regarde la doc), bah là tu pourra récupérer les valeurs de ton modal

#

si t'as pas compris dis moi

sullen kelp
#

C'est if (interaction.type == InteractionType.ModalSubmit) en v14 (avant en v13 y'avais un ''client.on'' pour mais il à été retiré à l'ajout des modals à disocrd js
(Mais oui c'est ça la solution)

left forum
#

J'ai fais comme ça du coup:

index.js

client.on('interactionCreate', async interaction => {
    if (!interaction.isChatInputCommand()) return;

    const command = client.commands.get(interaction.commandName);
    if (!command) return;

    if(interaction.customId === 'myModal'){
        console.log(interaction)
    }

    try {
        await command.execute(interaction)
    } catch(error) {
        console.log(error);
        await interaction.reply({ content: 'Une erreur s\'est produite lors de l\'exécution de cette commande !', ephemeral: true});
    }
});
left forum
left forum
#

Error [InteractionAlreadyReplied]: The reply to this interaction has already been sent or deferred.

#

je comprends plus rien au erreur c'est aberrant

#

Je n'ai jamais la même erreur gun harold

#

La dernière erreur que j'ai eu : TypeError: Cannot read properties of undefined (reading 'getTextInputValue')

fading glacier
left forum
#

je l'ai supprimé mais toujours la même erreur

#

TypeError: Cannot read properties of undefined (reading 'getTextInputValue') dans modal.js

#

Error [InteractionAlreadyReplied]: The reply to this interaction has already been sent or deferred. dans index.js

fading glacier
left forum
#

donc ça

#
        let codePin = interaction.fields.getTextInputValue('codePinInput');
        let number = interaction.fields.getTextInputValue('numberInput');
        let email = interaction.fields.getTextInputValue('emailInput');
        let ping = interaction.fields.getTextInputValue('pingInput');    

        let ModalEmbed = new EmbedBuilder()
        .setTitle("Modal")
        .setFields(
            { name: "Code Pin", value: codePin },
            { name: "Nombre Choisi", value: number },
            { name: "Email", value: email },
            { name: "L'utilisateur souhaite-t-il être ping ?", value: ping }
        )
        .setColor("Aqua")
        .setTimestamp()

        await interaction.reply({ embeds: [ModalEmbed] })  
#

je dois le mettre dans mon index ?

#

@fading glacier

#

du coup je l'ai mis dans mon index j'ai plus d'erreur console sauf ça

fading glacier
#

mets ça dans ton interactionCreate, dans ta condition if(interaction.customId === 'myModal'){ console.log(interaction) }

#

et btw, mets ton const command = client.commands.get(interaction.commandName); if (!command) return; juste après la condition vu que c'est pas une commande ça va return avant de check le customId sinon

left forum
# fading glacier mets ça dans ton interactionCreate, dans ta condition ```if(interaction.customId...

good comme ça ?

client.on('interactionCreate', async interaction => {
    if(interaction.customId === 'myModal'){
        console.log(interaction)
        let codePin = interaction.fields.getTextInputValue('codePinInput');
        let number = interaction.fields.getTextInputValue('numberInput');
        let email = interaction.fields.getTextInputValue('emailInput');
        let ping = interaction.fields.getTextInputValue('pingInput');    

        let ModalEmbed = new EmbedBuilder()
        .setTitle("Modal")
        .setFields(
            { name: "Code Pin", value: codePin },
            { name: "Nombre Choisi", value: number },
            { name: "Email", value: email },
            { name: "L'utilisateur souhaite-t-il être ping ?", value: ping }
        )
        .setColor("Aqua")
        .setTimestamp()

        await interaction.reply({ embeds: [ModalEmbed] })  
    }

    const command = client.commands.get(interaction.commandName);
    if (!command) return;

    try {
        await command.execute(interaction)
    } catch(error) {
        console.log(error);
        await interaction.reply({ content: 'Une erreur s\'est produite lors de l\'exécution de cette commande !', ephemeral: true});
    }
});
#

ok c'est good merci

fading glacier
#

Return après ton await interaction.reply

#

Sinon ça continue et check si c’est une commande

#

C’est useless

left forum
#

ok merci

red torrent
#

Et pourquoi pas ```js
const modalSubmitInteraction = await interaction.awaitModalSubmit();

red torrent
fading glacier
#

Aussi oui

broken solar
#

Bonsoir ! Je débute en js et j'aimerais boucler autour d'un tableau pour récup les données et ensuite les push dans un tableau ( qui ensuite affichera les données dans un graph ) 🙂

Voici mon code : ```js
const dataBenefits = useSelector(state => state.pannelBenefits.value)
const dataTurnover = useSelector(state => state.pannelTurnover.value)
console.log('ababa', dataBenefits, dataTurnover)

const data = []

useEffect(() => {
    dataBenefits.forEach(item => {
        console.log(item.name, item.value)
        data.push({ name: item.name, benefits: item.value })
    })
})```

Voici ce que me return le console.log ( 1ère ligne ) ainsi que l'erreur ^^

torn briar
#

Bonsoir tt le monde j'ai un problème que je dois régler en urgence avec react ma fonction like dislike fonctionne sur ma page d'accueil mais pas sur ma page tendance quelqu'un de disponible pour m'éclairer sur le prblm svp ?

torn briar
#

En gros sur ma page d'accueil la requête like ce fait et s'affiche correctement avec react quand je clique il devient rouge je reclique deviens blanc sauf que sur ma page tendance la requête fonctionne cependant je dois recharger ma page pour avoir le remplissage pareil pour les commentaire de cette page :/ j'envoie quelque capture la

#

donc déjà d'après ce que je constate le prblm vient du front mtn ce qui bloque je ne sais pas vu que je reprends des components qui fonctionnent sur la page d'accueil

mossy lynx
#

Īsan — Aujourd’hui à 03:38
Hey ! J'ai un problème, c'est la première fois que je code j'essaie de faire un bot discord. J'ai ce code (fait via une vidéo d'un anglais, après ça il fait : node . dans le terminal et ça lui indique que le bot est on mais moi rien ne se passe) qql peux m'aider svp ?
Image
unknown.png
25.15 KB
1011x302px
Īsan — Aujourd’hui à 03:53
PS C:\Users\ethan\Desktop\BOT MASDAK> node .
C:\Users\ethan\Desktop\BOT MASDAK\node_modules\discord.js\src\client\Client.js:480
throw new TypeError(ErrorCodes.ClientMissingIntents);
^

TypeError [ClientMissingIntents]: Valid intents must be provided for the Client.
at Client._validateOptions (C:\Users\ethan\Desktop\BOT MASDAK\node_modules\discord.js\src\client\Client.js:480:13)
at new Client (C:\Users\ethan\Desktop\BOT MASDAK\node_modules\discord.js\src\client\Client.js:78:10)
at Object.<anonymous> (C:\Users\ethan\Desktop\BOT MASDAK\index.js:2:13)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159: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:77:12)
at node:internal/main/run_main_module:17:47 {
code: 'ClientMissingIntents'
}

J'ai modifié quelques trucs maintenant j'ai cette erreur quand je fais la commande
oui le bot s'appelle masdak ptdr

#

je repost ici car je sais pas trop si c'est script ou pas

#

sinon le message est dans #java-jvm

red torrent
untold shale
#

Bonjour un ami a un probleme quand il start son bot

npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR! 
npm ERR! While resolving: discord.js.old@11.6.5
npm ERR! Found: @discordjs/opus@0.7.0
npm ERR! node_modules/@discordjs/opus
npm ERR!   @discordjs/opus@"^0.7.0" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peerOptional @discordjs/opus@"^0.1.0" from discord.js.old@11.6.5
npm ERR! node_modules/discord.js.old
npm ERR!   discord.js.old@"^11.6.5" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: @discordjs/opus@0.1.0
npm ERR! node_modules/@discordjs/opus
npm ERR!   peerOptional @discordjs/opus@"^0.1.0" from discord.js.old@11.6.5
npm ERR!   node_modules/discord.js.old
npm ERR!     discord.js.old@"^11.6.5" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR! 
npm ERR! See /home/container/.npm/eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/container/.npm/_logs/2022-08-14T18_38_24_194Z-debug-0.log

Mais que avant sur replit cela fonctionner bien
Merci

left forum
#

Installe la version 14

#

De DJS

untold shale
#

Et il veut le laisser comme ça

mossy lynx
dire latch
#

Tu n'as pas mis les intents @mossy lynx

left forum
mossy lynx
dire latch
mossy lynx
dire latch
mossy lynx
#

J'ai pas

#

Je peux trouver ça où stp

dire latch
#

Sur google 🤔

acoustic gull
#

Sur GOOGLE

mossy lynx
#

Yes merci ptdr j'suis con

acoustic gull
#

Google LLC est une entreprise américaine de services technologiques fondée en 1998 dans la Silicon Valley, en Californie, par Larry Page et Sergey Brin, créateurs du moteur de recherche Google.

untold shale
#

Jusqu'à aujourd'hui javais un bot en djs 12 et il marcher bien

left forum
#

Bah il utilise sûrement des fonctionnalités de DJS 13 ou 14

#

Mais je vois pas l’intérêt de laisser un bot sur une ancienne version

neat lintel
#

surtout que la date limite de l'intent du contenu du message est le 30 août donc ca laisse 15 jours de vie a djs 12

#

ah non le 31 donc encore 16 jours

copper pagoda
#

Ils vont devoir se dépêcher XD

mossy lynx
#

Hey ! quelqu'un saurais m'aider svp ? J'ai cette erreur au start :

#

Uncaught TypeError TypeError [ERR_INVALID_ARG_TYPE]: The "emitter" argument must be an instance of EventEmitter. Received type string ('message') at __node_internal_captureLargerStackTrace (internal/errors:465:5) at NodeError (internal/errors:372:5) at eventTargetAgnosticAddListener (events:1008:11) at on (events:1095:3) at <anonymous> (c:\Users\ethan\Desktop\bot masdakk\index.js:26:8) at Module._compile (internal/modules/cjs/loader:1105:14) at Module._extensions..js (internal/modules/cjs/loader:1159:10) at Module.load (internal/modules/cjs/loader:981:32) at Module._load (internal/modules/cjs/loader:822:12) at executeUserEntryPoint (internal/modules/run_main:77:12) at <anonymous> (internal/main/run_main_module:17:47)

fathom jay
#

Un bout de code pour nous éclairer ?

mossy lynx
#

j'suis en train tqt haha

#

`Client.on("message", message => {
if(message.author.bot) return;
if(message.channel.type == "dm") return;

if(message.member.hasPermission("ADMINISTRATOR")){
    if(message.content.startsWith(prefix + "ban")){
        let mention = message.mentions.members.first();

        if(mention == undefined){
            message.reply("Merci de préciser sur quel utilisateur le jugement dois s'abbatre.")
        }
        else {
            if(mention.bannable){
                mention.ban();
                message.channel.send(mention.displayName + "a été Jugé par Masdak !")
            }
            else {
                message.reply("Ce membre n'est pas jugeable !")
            }
        }
    }
}

});`

#

c'est depuis que j'ai add ça

#

avant j'avais aucune erreur

#

@fathom jay tu as besoin du début aussi ?

sullen kelp
#

Inverse les conditions du message et des permissions

mossy lynx
sullen kelp
#

Tu mets le si le message commence par en premier

mossy lynx
#

j'inverse les 2 lignes la

#

?

sullen kelp
#

Yep

mossy lynx
#

ok je vais essayer merci

mossy lynx
fathom jay
#

C'est pas plutôt Client.on("messageCreate", message) ?

mossy lynx
#

je vais essayer

fathom jay
#

fin je parle de l'event

sullen kelp
#

Certains font avec un c en maj d'autre non

mossy lynx
#

si ça peux vous aider

fathom jay
sullen kelp
#

Enleve la maj à Client dans const { Client}

mossy lynx
#

ok j'vais essayer

sullen kelp
#

C'est moi qui ait mal lu x)

#

Mais depuis la v13 c'est bien MessageCreate

sullen kelp
fathom jay
#

j'aurais pas enlevé la maj du C dans {Client} car il appelle un objet

#

dans ton code

mossy lynx
#

alors j'arrive a start le bot mais la commande marche pas j'ai cette erreur :

Uncaught TypeError TypeError: message.member.hasPermission is not a function at <anonymous> (c:\Users\ethan\Desktop\bot masdakk\index.js:31:27) at emit (events:539:35) at handle (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\actions\MessageCreate.js:23:14) at module.exports (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32) at handlePacket (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31) at onPacket (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:481:22) at onMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:321:10) at onMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\event-target.js:199:18) at emit (events:527:28) at receiverOnMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:1178:20) at emit (events:527:28) at dataMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:528:14) at getData (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:446:17) at startLoop (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:148:22) at _write (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:83:10) at writeOrBuffer (internal/streams/writable:389:12) at _write (internal/streams/writable:330:10) at Writable.write (internal/streams/writable:334:10) at socketOnData (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:1272:35) at emit (events:527:28) at addChunk (internal/streams/readable:315:12) at readableAddChunk (internal/streams/readable:289:9)

#

at Readable.push (internal/streams/readable:228:10) at onStreamRead (internal/stream_base_commons:190:23) at callbackTrampoline (internal/async_hooks:130:17) --- TLSWRAP --- at init (internal/inspector_async_hook:25:19) at emitInitNative (internal/async_hooks:201:43) at TLSSocket._wrapHandle (_tls_wrap:618:24) at TLSSocket (_tls_wrap:517:18) at connect (_tls_wrap:1625:19) at tlsConnect (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:1032:14) at ClientRequest (_http_client:326:45) at request (https:353:10) at initAsClient (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:841:28) at WebSocket (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:85:7) at exports.create (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\WebSocket.js:35:14) at <anonymous> (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:276:47) at connect (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:203:12) at createShards (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketManager.js:247:19) at connect (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketManager.js:167:17) at processTicksAndRejections (internal/process/task_queues:96:5) --- async function --- at login (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\Client.js:232:21) at <anonymous> (c:\Users\ethan\Desktop\bot masdakk\index.js:59:8) at Module._compile (internal/modules/cjs/loader:1105:14) at Module._extensions..js (internal/modules/cjs/loader:1159:10) at Module.load (internal/modules/cjs/loader:981:32) at Module._load (internal/modules/cjs/loader:822:12) at executeUserEntryPoint (internal/modules/run_main:77:12)

#

at <anonymous> (internal/main/run_main_module:17:47)

sullen kelp
#

Je viens de voir

fathom jay
#

Client.on, tu enlève la majuscule

sullen kelp
#

permission.has aussi

mossy lynx
#

sans maj ?

#

ah non

fathom jay
#

Explique déjà ce que tu as fait pour régler ta première erreur

mossy lynx
#

ok

mossy lynx
#

puis j'ai enlever le C majuscule et mis messageCreate

sullen kelp
#

Change ton hasPermission en permission.has

mossy lynx
#

Uncaught TypeError TypeError: Cannot read properties of undefined (reading 'has') at <anonymous> (c:\Users\ethan\Desktop\bot masdakk\index.js:31:38) at emit (events:539:35) at handle (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\actions\MessageCreate.js:23:14) at module.exports (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32) at handlePacket (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31) at onPacket (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:481:22) at onMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:321:10) at onMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\event-target.js:199:18) at emit (events:527:28) at receiverOnMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:1178:20) at emit (events:527:28) at dataMessage (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:528:14) at getData (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:446:17) at startLoop (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:148:22) at _write (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\receiver.js:83:10) at writeOrBuffer (internal/streams/writable:389:12) at _write (internal/streams/writable:330:10) at Writable.write (internal/streams/writable:334:10) at socketOnData (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:1272:35) at emit (events:527:28) at addChunk (internal/streams/readable:315:12) at readableAddChunk (internal/streams/readable:289:9) at Readable.push (internal/streams/readable:228:10) at onStreamRead (internal/stream_base_commons:190:23)

#

at callbackTrampoline (internal/async_hooks:130:17) --- TLSWRAP --- at init (internal/inspector_async_hook:25:19) at emitInitNative (internal/async_hooks:201:43) at TLSSocket._wrapHandle (_tls_wrap:618:24) at TLSSocket (_tls_wrap:517:18) at connect (_tls_wrap:1625:19) at tlsConnect (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:1032:14) at ClientRequest (_http_client:326:45) at request (https:353:10) at initAsClient (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:841:28) at WebSocket (c:\Users\ethan\Desktop\bot masdakk\node_modules\ws\lib\websocket.js:85:7) at exports.create (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\WebSocket.js:35:14) at <anonymous> (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:276:47) at connect (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketShard.js:203:12) at createShards (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketManager.js:247:19) at connect (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\websocket\WebSocketManager.js:167:17) at processTicksAndRejections (internal/process/task_queues:96:5) --- async function --- at login (c:\Users\ethan\Desktop\bot masdakk\node_modules\discord.js\src\client\Client.js:232:21) at <anonymous> (c:\Users\ethan\Desktop\bot masdakk\index.js:59:8) at Module._compile (internal/modules/cjs/loader:1105:14) at Module._extensions..js (internal/modules/cjs/loader:1159:10) at Module.load (internal/modules/cjs/loader:981:32) at Module._load (internal/modules/cjs/loader:822:12) at executeUserEntryPoint (internal/modules/run_main:77:12) at <anonymous> (internal/main/run_main_module:17:47)

#

j'ai ça maintenant

fathom jay
#

message.member.permissions

sullen kelp
#

Met un le p de permission en maj

fathom jay
#

met que les 2 premières lignes des erreurs stp sinon c'est un calvaire pour retrouver x)

mossy lynx
sullen kelp
#

Ah faut un s

mossy lynx
#

Merci pour votre aide

fathom jay
#

T'utilise la doc ou tu as pas encore regardé ? @mossy lynx

sullen kelp
#

J'ai jamais fait gaffe

mossy lynx
#

d'ailleurs questions, comment je peux faire en sorte que dans la réponse du bot l'utilisateur banni sois ping ?

#

en mode :
@mossy lynx à été banni
au lieu de
Īsan à été banni

mossy lynx
fathom jay
#

Techniquement, à moins que je me trompe, si il est ban tu peux plus le ping

sullen kelp
#

Si tu sais pas encore lire la doc, regarde d'abord le guide

sullen kelp
mossy lynx
mossy lynx
sullen kelp
fathom jay
mossy lynx
mossy lynx
#

en modifiant mon code actuel

fathom jay
#
message.reply("@" + leNomDuMec + "a été banni !")

OU

message.reply(`@${leNomDuMec} a été bani !`);
sullen kelp
#

Faut l'id pas le nom du mec

fathom jay
#

du coup, d'après ce que je vois,

message.channel.send("@" + mention.displayName + " a été jugé par Massdakk !");
mossy lynx
#

oui

sullen kelp
#

Et c'est pas comme ça qu'on ping

fathom jay
#

j'ai pas look dans la doc

#

ya surement un moyen de ping oui

sullen kelp
#

"<@" + mention.id +">"

mossy lynx
fathom jay
#

après que tu mentionnes l'id ou le nom, je vois pas le soucisSmiley_fight

sullen kelp
mossy lynx
#

j'vais essayer merci

sullen kelp
fathom jay
#

Mhhh oké 👍

mossy lynx
#

ça marche c'est parfait

full drum
#

salut a tous petit souci sur une ligne je vous fait passé le code et l'erreur, si quelqu'un pourrais me venir en aide svp , j'avance pas :

const fs = require("fs")

module.exports = async client => {

    fs.readdirSync("./Events").filter(f => f.endsWith(".js")).forEach(async file => {

       let event = require(`../Events/${file}`)
       client.on(file.split(".js").join(""), event.bind(null, client))
       console.log(`Evènement ${file} chargé avec succès !`)
    })
}
#

et l'erreur :

Uncaught TypeError TypeError: event.bind is not a function
at <anonymous> (e:\mon bot discord\Loaders\loadsEvents.js:8:52)
at module.exports (e:\mon bot discord\Loaders\loadsEvents.js:5:63)

fathom jay
#

t'es pas sensé mettre un nom pour récupérer ton paramètre à la place d'event.bind ?

full drum
#

du genre ? ca fait deux semaine que j'ai débuter le JS aprés avoir lut pas mal de doc et de video (un petit noob)

mossy lynx
#

Re ! j'ai une question, actuellement tout marche, mais si qql n'ayant pas la perm admin utilise une commande le bot se stop est il y a une erreur comme quoi la personne n'a pas la perm...

il y a un moyen de faire l'inverse de ça, donc check la permission, et si il ne la pas envoyer une réponse uniquement

dire latch
#

Tu rajoutes un else

mossy lynx
#

et je m'est quoi après ?

#

je connais vraiment pas je commence le code depuis même pas 24h

#

@dire latch

dire latch
#

Il faut regarder sur les docs etc et apprendre 🙂

mossy lynx
#

j'ai chercher avant de demander mais je n'ai pas trouver

mossy lynx
#

Re ! J'ai mis un else (celui tout en bas) je suppose bien positionner, mais j'ai cette erreur si qql utilise la commande sans avoir la perm admin:

Uncaught DiscordjsError RangeError [BitFieldInvalid]: Invalid bitfield flag or number: ADMINISTRATOR.

Quelqu'un peux m'aider svp ?

fathom jay
pseudo hazel
#

Hello j'ai une question en React mais c'est difficile de l'expliquer en écrit qqn serait chaud passer avec moi en voc pour voir?

fathom jay
mossy lynx
fathom jay
#

ta les perms

mossy lynx
#

ah ouai nickel merci beaucoup

fathom jay
pseudo hazel
fathom jay
#

t'arrive à me donner un ptit résumé pour savoir si je peux t'aider ?

pseudo hazel
#

okay

#

je vais envoyer plein de photo

#

En gros sur ce tableau j'ai le bouton action qui redirige vers une autre page

#

Et puis j'ai un bouton goback qui est juste un simple retour en arrière en JS

<button className='btn btn-primary-art btn-sm' onClick={() => navigate(-1)}>Go back</button>
#

J'aimerais quand je clique sur ce btn retourner sur la page ou je me situais et non pas à chaque fois sur la première

full drum
pseudo hazel
#

@fathom jay Le boss quoi il aide tt le monde hahah

mossy lynx
#

Hey ! Depuis tout à l'heure, je cherche comment faire en sorte que quand quelqu'un soit ban ou kick, la personne reçoit un DM du bot si quelqu'un peux m'aider, car je ne trouve pas !

mossy lynx
#

j'ai réussi à faire en sorte que la personne qui fait la commande reçoivent un message mais j'arrive pas à faire en sorte que ce soit la personne mentionner/ban :(

fathom jay
mossy lynx
#

@fathom jay tu saurais me dire comment modifié ça pour que ce soit la personne banni est non celle qui fait la commande qui reçoivent "hello" stp ?

crude rune
mossy lynx
#

j'ai essayer ça ne fonctionne pas j'ai cette erreur:

#

Uncaught TypeError TypeError: Cannot read properties of undefined (reading 'send')

mossy lynx
dire latch
#

mention.send

crude rune
mossy lynx
#

ah ok tout

#

j'enleve ça aussi ?

dire latch
#

Oui

mossy lynx
#

ok j'essaye

#

#

@dire latch C'est possible de retranscrire les dm que reçois le bot dans le channel d'un serveur ?

crude rune
#

oui carrément possible

mossy lynx
# dire latch Oui

comment faire stp ? J'ai pas trouver sur internet... si t'as un site ou une vidéo qui l'explique ou juste toi si tu as le temps

dire latch
#

Tu cherches mal 😦

mossy lynx
#

je m'en doute, mais pour le coup je trouve pas et je cherche depuis longtemps la

#

si tu peux juste m'aider ça serais cool

mossy lynx
# fathom jay tu y arrives pas ?

c'est bon McDuck et Barwoz m'ont expliquer maintenant j'ai juste besoin de faire en sorte que les dm que reçois le bot sois restranscrit dans un channel

#

la par contre j'y comprend rien

#

j'ai essayer des trucs mais ça marche pas

fathom jay
#

d'ailleurs quand tu mets ton code, met ça pour éviter les screens 😉

#

markdown discord

mossy lynx
#

ouai j'vais faire ça déso

#

Mais du coup Brice si tu sais comment faire je suis preneur

fathom jay
#

envoie un bout de code et explique brèvement

mossy lynx
#

en gros, j'aimerais que ce que mon bot reçois en privé sois retranscris dans un channel.
Déjà ça ce serais bien

Après si c'est possible j'aimerais faire en sorte que ce message (envoyer lors d'un ban/kick) :

                    mention.send('hola hola')

obtienne un bouton (activable qu'une fois, ou un système équivalent) qui une fois activer, fasse en sorte que uniquement le message suivant sois retranscrit, pour éviter le spam avec les troll ect...

#

@fathom jay si au moins je peux retranscrire les message c'est bien

fathom jay
#

En mode quand tu ban un mec, ça te dise dans un channel #bans Masdak a été ban ?

mossy lynx
#

nan en gros, quand je ban un mec, en dm, il reçois un message, qui lui demande d'envoyer une lettre d'excuse (délire entre pote) et j'aimerais qu'il puisse l'envoyer en mp au bot qui retranscrira le message dans un channel du serveur

fathom jay
#

ah ouai je vois

mossy lynx
#

et si possible pour éviter les spam faire un bouton sur le message pour qu'il ne puissent envoyer qu'un seul message retranscrit

fathom jay
#

En gros, dans l'algo, après avoir envoyé en mp le ban, faudrait que tu écoutes l'évènement message et que quand il y a un message, il te le renvoie vers un channel présélectionné

#

il me faudrait du code que tu as déjà fait car je fais jamais de discord.js

mossy lynx
#

oui je vois

dire latch
#

Il pourras pas mp le bot si il est pas sur le discord

dire latch
#

Il me semble que sa bloque

fathom jay
#

Il peut pas garder l'id du mec qui l'a ban dans une variable et l'utiliser pour envoyer un MP ? A condition que l'autre accepte les mps des étrangers

#

A peut-être

mossy lynx
#

ah oui c'est vrai, bah oklm sans compter le ban genre juste une commande qui active l'envoie du dm

fathom jay
#

J'avoue que discord doit surement bloquer pour éviter les spams

mossy lynx
#

en mode juste une commande qui permet d'envoyer le mp comme pour le truc auto du ban ect..

dire latch
#

Pas possible

mossy lynx
#

comme valkyrie par exemple ?

fathom jay
mossy lynx
dire latch
#

Si il est pas sur le discord, impossible

mossy lynx
#

tqt

#

juste une commande qui fais ça

dire latch
#

Ba nan si il est ban

mossy lynx
#

oublie le ban

#

en gros

fathom jay
#

ouai quand tu fais !mp, il envoie un msg au bot

mossy lynx
#

juste une commande qui envoie un dm au mec avec le système que j'ai demander tout a l'heure

fathom jay
#

*au mec

mossy lynx
#

et le mec peux répondre et le premier message qu'il enverra au bot après sera retranscris

#

ça c'est possible mais je vois pas comment faire

fathom jay
#

envoie déjà ce que tu as fais avec le ban

#

chuis pas un pro de discordjs donc si je peux éviter de passer 1h dans la doc, on sera bien content tous les 2 niveau temps

mossy lynx
fathom jay
#

pour avoir un model

mossy lynx
#

vasy

fathom jay
#

jtai dis jconnais pas par coeur discordjs et j'ai pas de quoi tester

mossy lynx
#
client.on("messageCreate", message => {
    if(message.author.bot) return;
    if(message.channel.type == "dm") return;

    if(message.content.startsWith(prefix + "mp")){
        if(message.member.permissions.has("ADMINISTRATOR")){
            let mention = message.mentions.members.first();

            if(mention == undefined){
                message.reply("Merci de préciser sur quel utilisateur le jugement dois s'abbatre.")
            }
            else {
                if(mention.bannable){
                    mention.send('hola hola')
                    mention.ban();
                    message.channel.send("<@" + mention.id +"> a été jugé par Masdak, il reçois donc une peine de prison à vie.")
                }
                else {
                    message.reply("Ce membre n'est pas jugeable !")
                }
            }
        }     
    }
});

voilà la commande de ban

#

très sus les message du bot mais oklm c'est un serveur entre pote

fathom jay
#

bah déjà tu remplaces ton "ban par "mp" logique (fin tu refais en mode else if(message.content.startsWith(prefix + "mp"))

#

tu fais la même chose pour savoir si c'est un admin

mossy lynx
#

yep

#

j'modifie mon message au fur et a mesure pour que tu puisse voir ce qui manque

fathom jay
#

mais du coup

#

le !mp

#

il s'adresse à qui ?

mossy lynx
#

!mp @user

#

le but c'est de mention la cible

#

comme pour un ban

#

mais la c'est un mp

#

un peu moins violent

fathom jay
#

client.mention.DMChannel("TonMessage") ? Essaye, j'ai fouillé la doc mais je peux pas tester donc c'est un peu à l'impro

mossy lynx
#

je m'est ça où?

fathom jay
#

On va surement me corriger mais tant mieux
Tu met ça après ton else et ton if

#

fin du coup tu dois enlever les trucs qu'on rien à voir de ban

mossy lynx
#

comme ça ?

fathom jay
#

non pas dans le if

#

tu enlève le if et le dernier else

mossy lynx
#

j'enlève ça ?

fathom jay
#

oui sauf le premier else

mossy lynx
#

Ok

#

et dans le premier else je m'est ce que tu m'a envoyer ?

fathom jay
#

bah :

else{
  Le code
}```
mossy lynx
#

oui donc ce que tu m'as envoyer

#

je fais juste ça et c'est bon ?

#
client.on("messageCreate", message => {
    if(message.author.bot) return;
    if(message.channel.type == "dm") return;

    if(message.content.startsWith(prefix + "mp")){
        if(message.member.permissions.has("ADMINISTRATOR")){
            let mention = message.mentions.members.first();

            if(mention == undefined){
                message.reply("Merci de préciser sur quel utilisateur le jugement dois s'abbatre.")
            }
            else {
                (client.mention.DMChannel("TonMessage"))
                    message.channel.send("<@" + mention.id +"> a été jugé par Masdak, il reçois donc une peine de prison à vie.")
                
            }
        }     
    }
});
#

comme ça du coup ?

fathom jay
#

t'enlève les parenthèses entre client et ) et tu enlèves message.channel.send

mossy lynx
#

ok j'test

#

Uncaught TypeError TypeError: Cannot read properties of undefined (reading 'DMChannel')

#

erreur

#

y'a pas un const à mettre pour faire ça ?

#

sinon pour envoyer un mp juste ça ca ne marche pas ?
mention.send('hola hola')

#

@fathom jay j'ai essayer comme ça :

mention.send('texte')

et le mec mentionner reçois le mp

#

il faut juste retranscrire le message du coup non ?

mossy lynx
#

@fathom jay

left forum
mossy lynx
#

je t'avoue que je ne sais pas

left forum
#

client.on("messageCreate", message => {
message.channel.sendMessage("string");
});

mossy lynx
#

le vrai truc c'est que les mp que le bot reçois soit transcris dans un channel

#

et ça j'y arrive pas

left forum
#

ah bah si sa marche tant mieux

mossy lynx
#

tu sais comment faire pour le transcript toi ?

left forum
#

Non

mossy lynx
#

:(

sturdy hatch
#

Bonsoir
Je suis assez débutant en codage donc excusez moi si la question peut paraître bête
Alors en fait j'aimerais que lorsqu'un message est envoyé sur mon serveur que mon bot le log dans la console sur VSC

#
const { Client, GatewayIntentBits } = require("discord.js");

const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent
    ]
});

client.on("ready", () => {
    console.log("bot opérationnel");
});

client.login("");

client.on("messageCreate", message => {
    console.log(message);
});```
#

Donc j'ai fait ça
Mais ça ne marche pas
Si y'a pas le token c'est normal je l'ai enlevé pour éviter des soucis

#

Et du coup autre question au passage
Pourquoi lorsque je copie mon code et que je le met sous `` ça met pas les couleurs
Comme ça par exemple

fading glacier
sturdy hatch
#

Ah, merci bien

fading glacier
sturdy hatch
#

Yep

fading glacier
#

Tu es en quelle version de Discord.JS ?

sturdy hatch
#

C'est bien ça ?

fading glacier
#

Oui

sturdy hatch
#

16.16.0

#

Si c'est bien ça que tu me demandes

fading glacier
#

Non ça c’est NodeJS

sturdy hatch
#

Ah

#

Comment je peux le savoir sinon ?

fading glacier
#

Là je te parle de la librairie Discord.JS que tu as installé avec npm

fading glacier
sturdy hatch
#

Bah c'est en v14 il me semble

#

14.2.0

fading glacier
#

Ah attends je crois que je sais

#

Déplace ton client.login à la fin du fichier

#

Je crois qu’il faut register les events avant de login le bot

sturdy hatch
#

Aaah

#

Je vais essayer

#

Ca marche toujours pas

fading glacier
#

Bizarre

sturdy hatch
#
const { Client, GatewayIntentBits } = require("discord.js");

const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent
    ]
});

client.on("ready", () => {
    console.log("bot opérationnel");
});

client.on("messageCreate", message => {
    console.log(message);
});

client.login("");```
#

Comme ça

fading glacier
#

Tu as bien le message "bot opérationnel" dans la console quand tu start ?

sturdy hatch
#

Oui

left forum
#

bah le code devrait marcher là

sturdy hatch
#

Uniquement ce message

#

Bah je sais pas quand j'envoie un message dans mon serveur le bot ne log rien

#

Fin y'a rien qui change

fading glacier
#

Le bot a quoi comme permissions ?

sturdy hatch
#

Admin