#javascript-typescript

1 messages · Page 4 of 1

left forum
#

c'est normal ça

#

tu console.log un argument donc il est encore vide avant d'être utiliser

fading glacier
#

Non ça devrait quand même log qqc

#

Même si c’est undefined ou null

sturdy hatch
#

Ah du coup ça peut être quoi le soucis

fading glacier
#

Attends je vais tester ton code

left forum
#

tu as essayer de créer une commande toute basique pour voir si le bot répondait ?

sturdy hatch
#

Euh pas encore, je suis pas très bon en codage, je commence tout juste donc je sais pas trop faire ça

left forum
#

tu as appris javascript avant de te lancer dans le DJS ?

sturdy hatch
#

Du tout

left forum
#

ah bah conseil d'ami avant que tu sois dégouté de la programmation apprends le javascript avant de te lancer sur DJS

dire latch
#

C'est pas GatewayIntentBits.GUILD_MESSAGES ?

sturdy hatch
fading glacier
sturdy hatch
#

Ah

left forum
sturdy hatch
#

D'accord

#

Tu connais des sites ou autre pour apprendre le langage ?

dire latch
left forum
fading glacier
fading glacier
# sturdy hatch D'accord

Dcp je viens de tester j’ai copier coller ton code et j’ai mis le token de mon bot ça log bien, donc ça doit être un problème de permissions

dire latch
#

Ok

sullen kelp
mossy lynx
#

Hey ! Quelqu'un sais comment faire pour retranscrire les dm que reçois le bot sur un channel discord svp ?

timid loom
# mossy lynx Hey ! Quelqu'un sais comment faire pour retranscrire les dm que reçois le bot su...

Il suffit d'écouter sur l'event messageCreate de ton client, et de vérifier que la propriété .channel.type [1] du message reçu est égale à 'DM' [2]. De là, tu fais du message ce que tu veux ; par exemple, envoyer son .content dans le channel de ton choix.

[1] : https://discord.js.org/#/docs/discord.js/stable/class/TextChannel?scrollTo=type
[2] : https://discord.js.org/#/docs/discord.js/stable/typedef/ChannelType

mossy lynx
#

j'ai r capter

#

je débute vraiment fort

timid loom
#

si tu veux une solution clé en main où je te file juste du code j'ai pas le temps de te l'écrire

mossy lynx
#

je comprend pas tout

timid loom
#

normalement tu as un client, que tu as créé en faisant quelque chose qui ressemble à ça :

const { Client } = require('discord.js')
const client = new Client() // ici

client.login('ton token')
mossy lynx
#
const { Client, GatewayIntentBits } = require("discord.js");
#

J'ai ça

#

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

#

et ça

timid loom
#

oui voilà

mossy lynx
#

Ok ouai

timid loom
#

client c'est ton client discord, c'est ce qui te permet de communiquer avec ton bot

mossy lynx
#

ok je comprend

timid loom
#

ce que je te dis c'est d'écouter l'event messageCreate (donc un truc qui ressemble à client.on('messageCreate', (msg) => { ... })) et dans les ... tu vérifies que la propriété msg.channel.type est égale à 'DM', et tu en fais ce que tu veux

#

après le reste c'est de la syntaxe js de base, à base de if

#

tiens attends vas-y je te donne le squelette du truc :

client.on('messageCreate', (msg) => {
  if (msg.channel.type === 'DM') {
    // tu fais ce que tu veux ici
  }
}
mossy lynx
#

ah ok je vois

#

et dans ça je peux essayer d'envoyer les dm dans un channel c'est ça ?

timid loom
#

ouais t'envoies msg.content dans le channel que tu veux via channel.send(msg.content) par exemple

#

mais il faut que tu récupère un channel pour ça

mossy lynx
#

comment ça que je récup un channel ?

timid loom
#

bah que tu dise où tu veux l'envoyer

mossy lynx
#

Oui ça je peux le faire avec la selection de l'id ?

timid loom
#

oui voilà

mossy lynx
#

ok je vois

#

Bah merci beaucoup de ton aide j'vais essayer de faire ça

timid loom
#

Mais tu vois le premier message ça correspond à comment tu dois explorer la doc pour avoir ce genre de réponse, essaie de voir toi aussi comment j'ai fait

#

je suis parti de https://discord.js.org/#/docs/discord.js/stable/class/Client et puis j'ai cherché un event qui correspond et avec ce qu'il me donne j'ai cherché comment filtrer le fait que ça corresponde à un message de DM

mossy lynx
#

oui je vais essayer de check après j'ai essayer de chercher dans la doc mais j'avoue ne pas avoir trouver...
c'est assez compliqué de tout comprendre sachant que j'ai même pas les bases, au début je faisait ça juste pour troll avec un bot sur un serv entre pote mais je commence à bien aimer faire ça donc j'vais regarder des guides pour faire des trucs en solo ou avec le moins d'aide possible

timid loom
#

en l'occurence messageCreate te donne une variable de type Message donc tu remonte à partir de là

mossy lynx
#

c'est un cheminement

timid loom
#

ouais exactement

mossy lynx
#

ok ok bah merci beaucoup

#

j'vais essayer de commencer ça ce soir pour finir demain car la j'suis crever

timid loom
#

du reste faut que tu apprennes les bases du js et ça devrait couler tout seul

mossy lynx
#

d'ailleurs à part les bots discord on peux faire quoi en JS ?

#

car je m'y connais vraiment pas

timid loom
#

bah par exemple sur les sites internet quand tu clique sur un bouton et que ça ouvre un message ou que ça déclenche quelque chose c'est souvent du js derrière

mossy lynx
#

ah ok oui je vois

#

ça se rapproche du java dans le langage ou aucun rapport ?

timid loom
#

aucun rapport

#

c'est proche en syntaxe, et encore

#

y a pas mal de différences

mossy lynx
#

Ouai je vois

#

ok ok

#

bah j'vais check ça

#

merci

timid loom
#

de rien, bonne chance

mossy lynx
#

merci dans tout les cas demain voir ce soir y'aura la réponse de si j'ai réussi ou non haha

timid loom
#

il se peut que tu aies besoin d'un intent pour avoir le contenu du message mais je suis pas sûr pour le coup

mossy lynx
#

un intent pour les dm ?

timid loom
#

bah c'est possible, ça fait un bail que j'ai pas fait de bot mais il me semble qu'ils ont changé le fonctionnement

#

je sais pas trop, teste tu verras bien si ça marche

#

mais si ça marche pas cherche du côté des intents

mossy lynx
#

ok j'ferais ça

#

merci

mossy lynx
#
client.on('messageCreate', (msg) => {
  if(msg.channel.type === 'DM') {
    client.channels.get('id du channel').send(msg.content);
  }
})
#

j'ai fait ça, et au démarrage j'obtient ça;

Uncaught ReferenceError ReferenceError: Cannot access 'client' before initialization

#

sur google j'ai pas trop compris comment faire

copper pagoda
sturdy hatch
#

Ah c'est bon ça a marché, je pense que c'était un problème de permissions car j'avais juste mis la permissions Administrateur et ça a marché quand j'ai coché toutes les permissions. Merci bien

sturdy hatch
#

Bonjour

#

Maintenant j'essaye de faire une commande où le bot répond "pong" lorsque j'écris "ping"

#

Donc ça, ça marche nickel

#

Hors je voulais que il ne log plus tous les messages mais uniquement les messages de réelles personnes et non de bot

#
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 => {
    if(message.author.bot) return;

    console.log(message);
    if(message.content === "ping"){
        message.reply("pong");
    }
});

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

J'ai fait ça

#

Et petit soucis

#

Déjà lorsque j'écris "ping" il me répond "pong" puis une 2ème fois "pong"

#

Et lorsque je réécris "ping" il me répond "pong", "pong" et "pong"

#

Et lorsque je réécris une 3ème fois "ping" il me répond "pong", "pong", "pong" et "pong"

#

Donc en gros plus j'écris "ping", plus le nombre de "pong" augmente

#

Etc

sturdy hatch
#

Problème résolu, désolé

mossy lynx
#

C'est quand j'add ça que j'ai l'erreur

left forum
mossy lynx
#

Ah attend j'suis pas chez moi je t'envoie ça après

mossy lynx
cyan iron
mossy lynx
spare rune
#

sinon il n'y a que celui à qui tu l'as envoyé qui pourra t'aider

left forum
#

Nan mais c’est bon c’était une erreur de code

#

Faut juste lire les erreurs console 200iq

mossy lynx
# timid loom de rien, bonne chance
client.on('messageCreate', (msg) => {
    if(msg.channel.type === 'DM') {
      client.channels.get('855605406549278733').send(msg.content);
    }
  })

Bon du coup j'ai essayer ça, marche pas...

il ne se passe rien

#

littéralement

#

il doit me manquer des intents

#

j'en avais add mais ils fonctionnent pas

left forum
#

Tu essayes d’envoyer quoi avec ta commande la ?

#

Tu veux envoyer tout les messages du salon à ton bot en DM ?

#

Ah nan l’inverse ok

mossy lynx
#

l'inverse, en gros ce que le bot reçois

#

il l'envoie dans un salon

#

si quelqu'un sais ce qui ne va pas dans mon code je veux bien de l'aide

sullen kelp
#

Tu as l'intents pour les message privées ?

near saddle
#

Hello, je bloque sur un truc tout bête dans mon code ;

#

quand je run mon bot en local, je n'ai aucun souci et tout fonctionne parfaitement

#

quand je le met sur heroku, ce morceau de code dysfonctionne pas mal

#

c'est à dire que dès lors que je met un message commençant par un préfixe reconnu, la condition à la ligne 24 devient en toute logique true, mais le code suivant ne s'éxécute pour autant qu'une fois sur 20

#

tandis qu'en local je n'ai pas de souci comme ça

copper pagoda
# near saddle

Quand tu définis prefix essaye de mettre let prefix = "";

copper pagoda
#

1 correspond au DM.

near saddle
#

en 1 ce que je suis supposé avoir

#

et en 2 ce que j'ai maintenant

copper pagoda
mossy lynx
near saddle
#

si tu parlais bien de ça, oui

copper pagoda
#

Oui.

#

En faites pour l'erreur elle vient de là car c'est ici que tu définis ton prefix.

#

Et c'est bien ça car sans les "" tu as undefined et avec tu as rien donc un .slice(0) comme je le pensais.

sullen kelp
copper pagoda
near saddle
#

ahh

copper pagoda
#

Essaye de mettre ton prefix de base dans ton let prefix voir.

near saddle
#

beh pourtant si, c'est juste que dès lors que je sors de la requête et des résultats, il se 'reintialise'

#

je push sur heroku et je te dis ça

mossy lynx
sullen kelp
# sullen kelp direct message
DirectMessagesReactions//Permet d'avoir "accès aux reactions sur les dms*" avec le bot
DirectMessagesTyping //Permet de voir si un utilisateur ecrit un message```
mossy lynx
#

cimer

near saddle
#

voilà ce que ça me return à l'envoi de ldb!hello

copper pagoda
#

Bizarre.

#

Et tu as mis let prefix = "ldb" ?

near saddle
#

yes

#

tu reveux le code tel qu'il est actuellement?

copper pagoda
#

Non mais c'est bizarre du coup parce que c'est censé marcher.

#

ça veut dire que ton args = ldb!hello au lieu de hello.

near saddle
#

le problème vient vraiment du préfixe alors

#

mais je sais aps comment faire x)

#

il faudrait juste que je puisse redéclarer mon prefix et qu'il soit accessible ensuite

#

et ça règlerait mon souci

#

genre comme ça ça pourrait fonctionner ?

copper pagoda
# near saddle

Avant de faire ça j'aurai tester avec un console.log du prefix dans la boucle mais bon vas-y ça peut toujours.

burnt perch
#

Ce thème 🤯

copper pagoda
#

XD

near saddle
#

je suis plus ou moins toujours confronté au même souci au final ;
dans la boucle, ça fonctionne, dans le if, ça fonctionne, mais quand je sors des résultats de la requête ( je sais pas si c'est compréhensible ), prefix n'est plus défini x)

near saddle
near saddle
#

concrètement, mon problème se résume à ça

mossy lynx
mossy lynx
#
client.on('messageCreate', message => {
    if(message.channel.type === (discord.DMChannel)) {
        message.guild.channels.cache.get('855605406549278733').send(message.content);
    }
});
#

quelqu'un sais comment faire en sorte que ça fonctionne svp ?

copper pagoda
copper pagoda
#

oki

mossy lynx
#

oula non

#

attend

#

la tienne ?

#

j'ai pas v

copper pagoda
#

Ouais les 2 ensemble.

mossy lynx
#

ah si le truc du 1

#

oui j'ai essayer

copper pagoda
#

Avec l'Intents plus le 1.

mossy lynx
#

oui j'ai essayer l'un, puis l'autre, puis les deux

copper pagoda
#

oki

sullen kelp
#

Une erreur ou rien dans la console ?

near saddle
#

Re, au final j'ai opté pour un try catch ( qui fonctionne très bien en local ), mais qui foire 9x sur 10 quand je met le code sur Heroku, une idée de comment régler ça ? xD

#

( n'hésitez pas à me ping si vous avez une idée, j'en peux clairement plus xD )

mossy lynx
sullen kelp
#

Tu as l'intent pour le contenue des messages ?

mossy lynx
#

j'ai ça

graceful spruce
#

Salut j'aimerais savoir pourquoi mon else if ne fonctionne pas ?
if ({ favoriteColor} = ("Roi Lion","Roi lion","roi lion","roi Lion","Le Roi Lion","le roi lion")){

         interaction.reply({ embeds: [RoiLion], ephemeral: true})};
    

    else if ({ favoriteColor} = ("Alpha","alpha")){

         interaction.reply({ embeds: [Alpha], ephemeral: true})};
#

svp

fathom jay
graceful spruce
#

non j'ai mis ferme mon code après je ne l'ai juste pas copier

fathom jay
#

faudrait que tu mettes ton code en markdown

near saddle
mossy lynx
#

donc j'ai que ceux la

near saddle
#

en l'occurence ça c'est good

#

je crois du moins

mossy lynx
#

bah il doit manquer un intents

#

car ça fonctionne pas :/

sullen kelp
#

Avant l'envoie du message fait un console log et réessaye

mossy lynx
sullen kelp
#

Envoie d'envoyer le contenus de message

#

Tu marque

#

console.log("mp recus")

#

Et tu réessaye et regarde ce qu'il y'as dans la console

#

C'est pour voir si il voit au moins le mp

mossy lynx
#

j'vais essayer

mossy lynx
sullen kelp
#

Non

#

Avant l'envoie de ton message

#

À la ligne au dessus

mossy lynx
#

la ?

sullen kelp
#

Oui voila

mossy lynx
#

bah j'ai essayer il se passe rien

sullen kelp
#

Ok donc le problème c'est qu'il ne reçoit pas le mp

mossy lynx
#

bah je vois pas comment faire :(

sullen kelp
#

Moi non plus

#

Attend on va tenter un truf

#

Truc*

mossy lynx
#

vsy

sullen kelp
#

Mets des intents dans un autre onglet vs code en attend

#

Attendant*

#

Et met

#

32767 pour les intents

#

Ça met tout les intents de discord js

mossy lynx
#

32767 ??? je débute je connais pas grand chose hein

sullen kelp
#

C'est pas conseillé mais là on veut juste test pour voir si il manque un intents

sullen kelp
mossy lynx
#

et je dois taper quoi pour faire ça ?

sullen kelp
#

32767

#

À la place de tout tes intents

mossy lynx
#

genre juste le chiffre pas de const ou quoi ?

#

je t'avoue que je capte pas trop

sullen kelp
#

Envoie tes intents je te montre

mossy lynx
sullen kelp
#

Juste fait une copie dans un bloc note pour après

mossy lynx
#

c'est fait

sullen kelp
#

const client = new Client({ intents: [ 32767 ] }]

#

Comme ça en gros

mossy lynx
#

ok

#

les crochet sont pas reconnu je m'est des {} à la place ?

sullen kelp
#

Ah oui my bad

mossy lynx
#

comme ça ?

#

c'est good ?

#

ah nn att j'ai un prblm avec un truc

#

jsp pq

sullen kelp
#

Ah non pas les crochet au intents

mossy lynx
#

c'est bon

sullen kelp
#

Non une maj au C de client après le new

mossy lynx
#

pourquoi ? sur mes truc y'a pas de maj moi

sullen kelp
#

Au new Client si

mossy lynx
#

ok ok

#

bah c'est fait

sullen kelp
#

Non

#

Pas au const client

#

Au new Client

#

Le deuxième client en gros

mossy lynx
#

bah il y était déjà nn ?

mossy lynx
sullen kelp
#

Ah attends

#

What

#

Il devrait être en vert

mossy lynx
#

bh si ?

#

pourquoi ?

sullen kelp
#

Je sais pas

mossy lynx
#

j'ai rien en vert moi

#

sur tout mon truc j'ai jamais de vert

sullen kelp
#

Pas grave

mossy lynx
#

sauf pour les gateway

sullen kelp
#

Ducoup test avec le mp

mossy lynx
#

ok

#

ah j'ai une erreur au démragge

#

Uncaught ReferenceError ReferenceError: Client is not defined

#

ça me demande de mettre en minuscule le c après new

sullen kelp
#

Alors met le

mossy lynx
#

Uncaught ReferenceError ReferenceError: Cannot access 'client' before initialization

#

faut pas que je mette ça avant ?

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

sullen kelp
#

Change ta ligne de const client par const client = new Client({

mossy lynx
#

lstmb

#

j'suis un zgeg

#

j'l'ai mis après

#

att je le bouge

#

ça change rien

#

Uncaught DiscordjsError Error [DisallowedIntents]: Privileged intent provided is not enabled or whitelisted.

#

j'ai encore une erreur

sullen kelp
#

Ah oui

#

Vas sur le dev portal

#

Là où tu activé le message content

#

Active le member

#

Dans les intents privilégier

mossy lynx
sullen kelp
#

Yep

mossy lynx
#

c'est bon il est on

#

je try

#

ça fait rien dans la console ni sur discord

#

comme si la commande exister pas

sullen kelp
#

C'est pas une commande x)

mossy lynx
#

t'as compris 😭

sullen kelp
#

Oui x)

mossy lynx
#

ça change rien

sullen kelp
#

Ah

#

Alors là

#

Aucune idée

#

C'est vachement bizzare

mossy lynx
#

:(

#

ça viens pas de mon code ? genre des trucs en plus ou en moins ?

blazing wadi
red torrent
#

Ca sera toujours plus rapide que d'essayer tout ce qui est possible d'essayer et de venir demander à ce qu'on te lise ton message d'erreur et qu'on corrige le code que tu as essayé de recopier

mossy lynx
# red torrent Ca sera toujours plus rapide que d'essayer tout ce qui est possible d'essayer et...

À la base c'était juste pour créer un bot pour un délire entre pote, au final j'aime bien faire ça, je recopie pas bêtement j'essaie de comprendre ce que j'écris, ce n'es juste pas si évidemment pour vous que pour moi, je débute totalement, par le fait qu'à la base je ne souhaitais pas apprendre à coder mais juste faire 2-3 commandes en vif je n'ai littéralement aucune base. En posant des questions, je comprend et j'arrive à me débrouiller seul pour les prochaines fois.

#

Au final j'aimerais apprendre le js mais j'essaie juste de finir ce que je demande actuellement donc la retranscription des messages pour commencer à regarder des vidéos d'explication du js.

mossy lynx
blazing wadi
#

Moi (personnellement) j'ai appris le JS en même temps que j'ai appris à faire un bot

hybrid elk
#

Hello, j'essaye de faire un cdn avec express js, c'est très bricolage et ça ne marche pas

fs.readdir("./content", (err, files) => {
    if (err) {
        console.log(err);
        return;
    }

    files.forEach(file => {
        app.get(`/${file}`, (req, res) => {
            res.sendFile(__dirname + `/content/${file}`);
        })
    })
})
mossy lynx
#

Mais bon c'est pas simple, ça prend du temps donc je pose des questions

left forum
#

Apprendre les bases du JS facilitera l’apprentissage du djs

mossy lynx
blazing wadi
#

Tu peux tjr pas envoyer le code ?

hybrid elk
#

Non mais je viens de trouver une solution

#
app.get("/*.png$/", (req, res) => {
    fs.stat(`${__dirname}/content${req.path}`, (err, stats) => {
        if (err) {
            res.status(404).send('404 - Not Found');
            return;
        }

        res.sendFile(`${__dirname}/content${req.path}`);
    })
})
blazing wadi
hybrid elk
#

Sync non

blazing wadi
#

Non ça ne marche pas ou pas essayer ?

hybrid elk
#

Pas essayé

blazing wadi
#

Ah d'accord d'accord

hybrid elk
#

Mais cette solution fonctionne donc c'est ok, le soucis c'est juste le regex

#

Je suis éclaté en regex donc je sais pas comment l'appliquer à tous les formats

blazing wadi
hybrid elk
#

Mdrr

#

Je vais faire ce code pour chaque format en attendant de trouver

#

En fait non même pas besoin

#

Je suis con

blazing wadi
#

Bah tant mieux alors !

hybrid elk
#
app.get("/*", (req, res) => {
    fs.stat(`${__dirname}/content${req.path}`, (err, stats) => {
        if (err) {
            res.status(404).send('404 - Not Found');
            return;
        }

        res.sendFile(`${__dirname}/content${req.path}`);
    })
})
#

J'ai juste à faire ça

#

C'était pas adapté à ce que j'avais fait avant mais vu que je check si le fichier existe c'est bon

blazing wadi
#

Tu fais quoi avec ton exprèss ?

mossy lynx
blazing wadi
#

Yes sir ;)

mossy lynx
#

Bon ben en fait j'ai un problème avec mon PC je peux pas te l'envoyer je fais ça dès que mon problème est réglé

gaunt merlin
#

Salut, est ce que quelqu'un saurait trouvé une solution : Je cherche a appeler une fonction qui utilise des variables venant de useState, mais j'aimerais que la fonction s'execute juste après avoir set les variables... Je donne un exemple :

const [var1, setVar1] = useState(0);
const [var2, setVar2] = useState(0);

const exemple = () => {
  setVar1('1');
  setVar2('2');
  let result = add(var1, var2);
}

const add = (a, b) => {
  return a + b;
}
exemple();

Dans ce code par exemple, j'aimerais que result soit égale à 3 et pas à 0. Comment puis-je faire pour faire mon add() seulement une fois que les deux var seront set ? Je ne peut pas passer par un useEffect car il y a 2 variables, le useEffect serait alors appeler soi 2 fois (useEffect avec les deux var en dépendance), soi 1 seule fois mais pas sûr que l'autre variable aurait bien été mis a jour (useEffect avec var2 comme dépendance par exemple)

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

const { ActivityType } = require('discord.js');

const { EmbedBuilder } = require('discord.js');

const discord = require("discord.js");

const client = new Client({
    intents: [
        32767
    ]
        
});

const channel = client.channels.cache.get('id');

const feedbackChannelID = `AAA`;


const prefix = ";";

client.on("ready", () => {
    console.log("BOT OPÉRATIONNEL");
    client.user.setActivity('Prépare le tribunal !', { type: ActivityType.Competing });
});

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

    if(message.content.startsWith(prefix + "ban")){
        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.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 !")
                }
            }
        }     
    }
});

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

    if(message.content.startsWith(prefix + "kick")){
        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.kickable){
                    mention.kick();```
#

                    message.channel.send("<@" + mention.id +"> a été jugé par Masdak, il est relaché en liberté conditionnelle.")
                }
                else {
                    message.reply("Ce membre n'est pas jugeable !")
                }
            }
        }
        else {
            message.reply("Vous n'avez pas la possibilité de procéder à un jugement !");
        } 
    }    
});


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

    if(message.content.startsWith(prefix + "prison")){
        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 {
                mention.send("Tu viens d'être envoyer en prison, tu peux ressortir en répondant à ce message avec une lettre d'excuse."),
                message.channel.send("<@" + mention.id +"> a été jugé par Masdak, il restera donc pendant un temps indeterminé en prison.")
                let testRole = message.guild.roles.cache.find(role => role.id == "1008795504265670679")         
                mention.roles.add(testRole)        
                
            }
        }     
    }
});

client.on('messageCreate', message => {
    if(message.channel.type === (discord.DMChannel)) {
        console.log("mp recus");
        message.guild.channels.cache.get('AAA').send(message.content);
    }
});







client.login("AAA")

@blazing wadi`

#

Voilaaaa

blazing wadi
#

C'est quoi qui coince ?

#

@mossy lynx

mossy lynx
#
client.on('messageCreate', message => {
    if(message.channel.type === (discord.DMChannel)) {
        console.log("mp recus");
        message.guild.channels.cache.get('AAA').send(message.content);
    }
});

ne fonctionne pas

#

il ne passe rien

#

ni dans la console ni sur le serveur

#

comme si rien n'était écris

dire latch
#

Normal, tu as pas mis d'intents

#

@mossy lynx

mossy lynx
#

const client = new Client({
intents: [
32767
]

#

y'a ça

#

c'est qql qui m'avais fait test de mettre tout les intents

dire latch
#

32767 c'est avec les anciennes version

mossy lynx
#

ahh

#

mais si il manque un intent c'est pas sensé faire une erreur ?

dire latch
#

Non

mossy lynx
mossy lynx
dire latch
#

3276799

mossy lynx
#

ah oui d'accord

dire latch
#

Normalement

mossy lynx
#

il ne se passe toujours rien :/

neat lintel
dire latch
#

Si jamais

mossy lynx
#

j'ai également essayer avec ('DM') ('Dm') et 1 à la place

neat lintel
#

et ensuite arrêtez de mettre systématiquement toutes les intents, si elles sont la il y a une raison, et dernier truc, faut pas mettre une série de listeners du meme event les uns derrière les autres

mossy lynx
neat lintel
mossy lynx
#

et comment ça une série de listeners ?

mossy lynx
dire latch
#

Tu fais plusieurs messageCreate

neat lintel
dire latch
#

Or que tu peut en faire que un

mossy lynx
#

ah ok je vois

#

je ferais ça la prochaine fois

mossy lynx
dire latch
#
if (!message.guild) {
  console.log("mp recus");
};
neat lintel
mossy lynx
mossy lynx
neat lintel
#

ton évent est bien déclenché ?

dire latch
mossy lynx
neat lintel
#

tu mets un console.log en haut de messageCreate et tu vois si il fonctionne, si il est pas déclenché ca vient des intents ou des partials

#

ah bah oui tu as pas mis de partials

mossy lynx
#

ah bah non justement je reçois rien dans la console

neat lintel
#

il te faut au moins Channel depuis djs 13 pour recevoir des DM

mossy lynx
#

mais je suis pas sensé avoir tous les intents la ?

neat lintel
#

j'en sais rien je lis pas encore le bitfield mais les partials c'est aautre chose

mossy lynx
#

jusqu'à présent j'avais ceux-la

    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent,
        GatewayIntentBits.DirectMessages,
        GatewayIntentBits.DirectMessageReactions,
        GatewayIntentBits.DirectMessageTyping,
#

ok ok

#

du coup faut que je trouve l'intent qui me manque

neat lintel
#

il te manque pas une intent mais une partial

#

mets Channel

mossy lynx
#

Uncaught ReferenceError ReferenceError: Partials is not defined

neat lintel
#

faut importer de djs ou passer par ta variable discord

mossy lynx
#

ah oui att

#

j'ai ça quand il reçois un dm:
Uncaught ReferenceError ReferenceError: ChannelType is not defined

dire latch
#

Code ?

mossy lynx
#

j'ai essayer de faire mettre
if(message.channel.type === ('ChannelType.DM'))

Pour voir, et mtn je reçois le message qu'il reçois dans la console

#

si j'enlève les '' j'ai l'erreur

mossy lynx
#

c'est déjà fait

dire latch
#

Good alors ?

neat lintel
mossy lynx
#

je crois qu'il faut que je définisse dans mon code l'id de la guild car dans l'erreur ça reconnais pas ça

#

mais je vois pas comment faire

#

j'avais déjà essayer

neat lintel
mossy lynx
#

juste au dessus de l'erreur y'a guildId: null

#

donc déjà je doit faire ça nn ?

mossy lynx
#

comment faire ?

neat lintel
#

pour importer une variable ?

mossy lynx
#

j'ai aucune base vraiment

#

je t'avoue que j'ai pas tout compris à ton message

neat lintel
#

du coup apprends le JS pour avoir les bases et comprendre ce que tu fais et ensuites reprends ton bot, tu verras tu iras beaucoup plus vite

mossy lynx
#

Ouai je sais je compter faire ça mais comme il me manque que ça pour que mes potes puissent déjà s'en servir je voulais finir ça avant

#

car en vrai faire le bot ma donner envie d'apprendre vraiment et pas de juste faire ça en vif

#

il me manque juste la retranscription des messages pour pouvoir le finir

sullen kelp
#

Y'as de module qui permet de transcript

mossy lynx
sullen kelp
#

Cherche sur internet

#

Ça depend de ce que tu as bessoin

#

Y'en à pour transcript en hmtl, d'autre sur un bloc note en ligne,ect..

mossy lynx
#

moi je veux renvoyer ça vers un channel discord

sullen kelp
#

Alors prend le html que tu envoies en tant que fichier

copper pagoda
# mossy lynx lequel ?

Perso j'en connais un mais il n'existe pas en V14 donc j'ai du le modifier moi même pour le rendre fonctionnel.

mossy lynx
copper pagoda
mossy lynx
#

cimer

copper pagoda
north matrix
#

bonjour j essay actuellement de crée un bot discord sauf que quand je tape "node." dans ma console un message d erreur apparé

#

on peut me dire ou est l erreur

dire latch
#

C'est node . @north matrix

north matrix
#

ok merci

dire latch
#

Dr

north matrix
dire latch
#

Erreur ?

north matrix
#

sa me met sa

#

node .
...

north matrix
dire latch
#

Le bot est en ligne non ?

north matrix
dire latch
#

Code + erreur

north matrix
dire latch
#

Ba il me faut ton code que tu as fais

#

Et les erreurs que tu as

copper pagoda
#

Ah tous les coups c'est une erreur avec les Intents

#

Un GuildMemberAdd sans Intents ça marche pas ça il me semble.

north matrix
#

en fait j ai suivie un tuto

#

mais ya une etape que j ai pas compris

copper pagoda
#

Tu es en V14 je suppose et tu as regardé un tuto V13 ?

north matrix
#

probable

copper pagoda
#

Tu as une erreur pour le coup ?

north matrix
#

j ai suivie se tuto

copper pagoda
#

2/12/20 ouais ça date XD.

north matrix
#

je fait comment alors ?

#

je vous laisse me guidée

fathom jay
#

Bonjour, j'ai switch mes pages React avec mon project Nextjs (j'avais séparé le temps que je comprenne les 2) et maintenant que j'ai ajouté (tout en faisant les changements nécessaire), j'ai cette magnifique erreur Error: Hydration failed because the initial UI does not match what was rendered on the server qui vient de mon component Navigation et plus précisément d'ici :

const [burger, setOpenBurger] = useState(false);
const toggleSmallNav = ()=>{
   useEffect(()=>setOpenBurger(!burger), [])
 };

d'après ce lien https://nextjs.org/docs/messages/react-hydration-error, je semble faire la bonne chose. Merci pour ce qui peuvent m'aider

copper pagoda
# north matrix je fait comment alors ?
const { Client, GatewayIntentBits } = require('discord.js')
const config = require('./config.json');

const client = new Client({
    intents: [
        GatewayIntentBits.GuildMembers
    ]
});

client.on('ready', () => {
    console.log('Le bot est connecté !')

    client.user.setActivity('Tué dioxyde', {
        type: 0
    })
});

client.on("guildMemberAdd", member => {
    console.log(`${member.user.tag} a rejoint le discord !`);
})

client.login(config.token)

Tiens test ça

north matrix
#

sa ne marche pas

north matrix
#

{
"token": " (token du bot) "
}

copper pagoda
north matrix
#

non

north matrix
#

( ce n est pas le vrai token )

copper pagoda
#

Ah mais tu l'allumes pas là

#

fait direct ctrl + c 3 fois et après tu fais node .

north matrix
#

sa marche pas

raw birch
north matrix
#

apparament non

fathom jay
#

Bonjour, j'ai switch mes pages React avec mon project Nextjs (j'avais séparé le temps que je comprenne les 2) et maintenant que j'ai ajouté (tout en faisant les changements nécessaire), j'ai cette magnifique erreur Error: Hydration failed because the initial UI does not match what was rendered on the server qui vient de mon component Navigation et plus précisément d'ici :

const [burger, setOpenBurger] = useState(false);
const toggleSmallNav = ()=>{
    setOpenBurger(!burger)
 };

d'après ce lien https://nextjs.org/docs/messages/react-hydration-error, je semble faire la bonne chose. Merci pour ce qui peuvent m'aider

hollow zinc
#

Hello, j'ai un petit soucis, je suis sur react, entrain de faire les routes dans ma page App mais l'autocomplétion ne fonctionne pas, quelqu'un à déjà eu ce soucis?

past nimbus
#

l'autocomplétion ?

hollow zinc
#

Oui, normalement je devrais avoir Home qui s'affiche et ça me l'import automatiquement

#

ça fonctionne sur d'autres projets mais sur celui là, il ne veut rien savoir..

past nimbus
#

Tu as le bon nommage ?

hollow zinc
#

Oui, mais je ne comprends pas là, je viens d'y arriver en ouvrant les pages dans VSC.. si les pages ne sont pas active ça ne marche pas..

#

Normalement (même sur les autres projets) je n'ai pas besoin de les ouvrir pour qu'elles soient detectées.. Encore un mystère VSC

nova hazel
#

Hello a tous,
Je sais que ce tuto n'est plus a jour mais est il toujours utilisable ? Si on suit la video le resultat sera til le même ? Car je trouve le result au top
https://www.youtube.com/watch?v=pS0v5eY7W9k
Merci d'avance

!! Attention !! ce projet comporte des morceaux de code qui sont maintenant dépréciés (tout va très vite en React ^^), un cours à jour de React est disponible ici : https://www.youtube.com/watch?v=f0X1Tl8aHtA

░ Fichier de base → https://github.com/JustFS/react-cv/archive/master.zip

0:00 - Intro
4:03 - Config
24:55 - Router & Navigation
54:02 ...

▶ Play video
pallid plume
#

Si c'est pour refaire la même chose achete / trouve un template sur internet le but c'est de comprendre ce qu'il fait surtout

blazing wadi
#

hello les mecs j'ai une petite erreur mais je ne sais pas vraiment quoi faire pour la règler si vous avez des idées je suis preneur ! Merci d'avance 🙂

#

Editing application command permissions requires an OAuth2 bearer token, but none was provided.

#
 client.once(`ready`, async () => {
        try {
            await client.application.commands.set(globals);
            await client.guilds.cache.get(require(`../config.json`).dev_guild_id).commands.set(locals);
            await client.guilds.cache.get(require(`../config.json`).dev_guild_id).commands.fetch().then(cmds => {
                const permissions = [
                    {
                        id: require(`../config.json`).bot_owner,
                        type: `USER`,
                        permission: true,
                    },
                ];
                cmds.forEach(cmd => {
                    if (devs.includes(cmd.name)) cmd.permissions.set({ permissions });
                });
            });
        } catch (err) {
            console.error(err);
        }
    });```
#

voici le code

graceful spruce
#

Pouvez vous m'aider car cela m'affiche peut importe le resultat, cela m'affiche l'embed RoiLion

#

svppppppppp

sullen kelp
sullen kelp
blazing wadi
#

Yes normalement

#

Ouais c'est lis @sullen kelp

#

Bah ouais sinon je pourrais pas faire de slash

sullen kelp
#

Ok

#

Je m'en doutais mais je préfère demander

blazing wadi
#

Ouep 😅

#

Ça va être un truc tout con en plus

sullen kelp
#

C'est possible x)

blazing wadi
#

Si on en suit l'erreur il me faut un token 0Auth2 mais je l'ai pas précisé

sullen kelp
#

Après le truc c'est pourquoi tu aurais besson d'un token autre que celui du bot ?

blazing wadi
#

Bah ouais aussi

#

Je veux juste pouvoir utiliser les commands dev que sur un serveur

#

Les commands spéciales pour le owner du côté

#

Vot

sullen kelp
blazing wadi
#

Bah ouai exact

#

En gros y a mes globals

#

Donc le reste du bot

#

Et les commands du dossier Owner que sur un serveur ou du moins que je puisse que moi les utiliser

#

Pas très français mais l'idée est là

sullen kelp
#

J'ai capté x)

#

Mais je pense pas trop pouvoir t'aider mais va voir sur le discord officiel de discord js

#

Je t'envoie le lien en mp

blazing wadi
#

Yes sir !

timid loom
# graceful spruce Pouvez vous m'aider car cela m'affiche peut importe le resultat, cela m'affiche ...

Alors je comprends absolument rien à ta condition donc à moins que le js soit un langage très différent de ce que je pensais il y a un (gros) problème de syntaxe
Si tu voulais tester que la variable favoriteColor correspond à un des éléments que tu as mis entre parenthèses, la syntaxe correcte c'est :

if (['roi lion', 'Roi Lion'].includes(favoriteColor)) {
  ...
}

Mais bon quitte à vérifier que ton truc contient "roi lion" fais plutôt ce genre de condition :

if (favoriteColor.toLowerCase().includes('roi lion')) {
  ...
}

Mon dernier exemple détecte s'il existe 'roi lion' quelque part dans favoriteColor ; et vu que normalement c'est sensible à la casse, il suffit de tout mettre en minuscule pour vérifier tous les cas de figure

light sluice
#

vous savez où je peux apprendre le js ?

hasty shoal
#

bonjour je crée mon bot discord et je voulais savoir si il était possible, après avoir cliquer sur une option d'un selectmenu, de générer un autre selectmenu automatiquement dans le channel. si quelqu'un sait je veux bien. merci !

civic fractal
blazing wadi
graceful spruce
sullen kelp
sullen kelp
indigo solar
#

Bonjour, je vais commencer à développer mon tout 1 er bot
Je sais comment faire ce qui est mis dans les divers tutoriels.
Mais j' aimerais au lieux de faire un ban def de faire un ban qui met le membre dans un salon réservé aux bannissement en enlevent le rôle membre et en ajoutant le rôle banned comment dois-je faire, car je ne co nais pas la manipulation à faire svp ?

Je vous remercie d'avance

sullen kelp
#

Ok

#

Tu connais la différence entre un user et un member ?

hybrid elk
#

J'ai loupé un truc? Ca ne répond pas à l'interaction

hybrid elk
queen ocean
neat lintel
#

yes faut utiliser la propriété emitter

sullen kelp
#

Par exemple pourquoi on peut pas rajouter un rôle à un user

hybrid elk
hybrid elk
sullen kelp
#

Je vais faire ça

sullen kelp
indigo solar
indigo solar
#

Donc si j'ai bien compris quand je vais ajouter cela si j' execute la commende de ban (pour mettre dans le salon des bans) cela va enlever le rôle membre et le remplaçer par le rôle banned

sullen kelp
#

Oui

indigo solar
#

D'accord merci de ton aide

keen narwhal
#

bonjour est ce que quelqu'un peut m'aider a propos de ce problème svp,

Code:

const fs = require("fs")

module.exports = async bot => {

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

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

Erreur:
```      throw er; // Unhandled 'error' event
      ^

TypeError: Cannot read properties of undefined (reading 'forEach')```
copper pagoda
keen narwhal
#

pourtant j'en ai 2

hearty crypt
keen narwhal
#

c ce que g fait et oui c bien bon

#

mais sa marche aps

hearty crypt
#

essaie sans "./" avant le nom de ton dossier

#

Parce qu'il renvoi None lors de la lecture du dossier, ou alors ce sont tes fichiers qui n'ont pas d'extensions .js

hasty shoal
civic fractal
#

à toi de voir

cyan kernel
#

Des devs react native here?

hasty shoal
mossy lynx
#

Hey ! :

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

J'ai ce message d'erreur quand cette commande est effectuer:

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

    if(message.content.startsWith(prefix + "ban")){
        message.delete(1000);
        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.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 !")
                }
            }
        }     
    }
});

C'est car la personne qui l'a fait n'a pas la perm admin mais j'aimerais savoir comment éviter le crash dans le cas ou la personne n'a pas la perm svp

#

(l'erreur fait crash le bot du coup)

left forum
mossy lynx
left forum
#

le permissions.has

mossy lynx
#

oui je sais

#

mais j'aimerais faire en sorte que ça ne crash pas si qql n'ayant pas la perm essaye de faire la commande

left forum
#

il ne s'écrit plus en full maj mais juste Administrator

mossy lynx
#

car la c'est le cas

mossy lynx
left forum
#

bah si j'me fie au message d'erreur normalement oui

mossy lynx
#

bah la si qql qui a la perm fait la commande marche mais si qql fait la commande sans la perm ça crash

mossy lynx
#

D'ailleurs @left forum où je peux mettre que si le mec n'a pas la perm ça message.reply

left forum
#

tu fais la même condition mais avec un ! avant

#

genre if(!condition) message.reply("Ton message")

mossy lynx
#

ok merci

errant echo
#

Sur quel application on script moi je suis sur Android

tulip jackal
hasty shoal
#

Bonsoir est ce que vous avez une idée (discord.js) de comment générer un autre select_menu après avoir cliqué sur une des options d'un premier select_menu ? merci !

sullen kelp
#

Juste en recrée un et l'envoyé

nova hazel
#

J'apprends le react c'est pr sa

placid gale
#

Techniquement ça devrait être là même chose

hasty shoal
sullen kelp
#

À l'interaction de ton menu de sélection

hasty shoal
# sullen kelp À l'interaction de ton menu de sélection
if(interaction.isSelectMenu()){
        if(interaction.customId === 'classe'){
            await interaction.deferReply({ephemeral: true})
            const roleId = interaction.values[0];
            const role = interaction.guild.roles.cache.get(roleId)
            const memberRoles = interaction.member.roles;
            const setchannelName = interaction.member.user.username.toLowerCase()
            const userChannel = interaction.guild.channels.cache.find(channel => channel.name === `${setchannelName}`)
            
            
            memberRoles.add(roleId)
            interaction.reply(`${role.name} t'a été ajouté`).then(msg => {
                interaction.channel.bulkDelete(1).then(messages => console.log(`Bulk deleted ${messages.size} messages`)).catch(console.error);
            })

            const SecondRow = new ActionRowBuilder()
                .addComponents(
                    new SelectMenuBuilder()
                    .setCustomId('options')
                    .setPlaceholder('Choisi tes options')
                    .setMaxValues(1)
                    .setMinValues(1)
                    .setOptions(
                        {
                            label: '2A',
                            value: '1001470727389724702',
                            description: "T'en en 2A ? C'est ici !"
                        },
                        {
                            label: '2B',
                            value: '1001471018948378744',
                            description: "T'en en 2B ? C'est ici !"
                        },
                    )
                )
                await interaction.reply({content:'Clique sur le menu ci-dessous :', components: [SecondRow] });
        }

Ca me met l'erreur : Error [InteractionAlreadyReplied]

sullen kelp
#

Vérifie que tu as pas lancé ton bot 2 fois

#

Ok j'ai capté

hasty shoal
#

je n'ai qu'un terminal d'ouvert

pallid plume
sullen kelp
#

Tu peux avoir 2 interaction.reply

#

C'est 1 par interaction

hasty shoal
#

peux ou peux pas du coup ?

sullen kelp
#

Tu peux

#

Faut juste pas répondre 2 fois à l'interaction

hasty shoal
#

je vois donc du coup je fais un 2e bout de code du style

if(interaction.isSelectMenu()){
        if(interaction.customId === 'classe'){
            await interaction.deferReply({ephemeral: true})
}

où juste le custom id change ?

sullen kelp
#

?

hasty shoal
#

dans interactionCreate comme pour le premier selectmenu

sullen kelp
#

Ah ok

#

J'ai capté

#

Bah enfaite tu suprimme juste 1 interaction.reply

#

Soit en mettant tout le texte dans interaction.reply

#

Soit en faisant une interaction.channel.send (envoie le message dans le salon actuel

hasty shoal
#

bah en fait je veux que le 2e s'affiche uniquement quand on a cliqué sur une option du premier menu

#

ok je vais test la deuxieme solution

hasty shoal
sullen kelp
#

Pas de soucis

nova hazel
oak turret
#

quelqu'un sait pourquoi les utilisateurs lambda ne peuvent pas voir les /commands d'un bot ?

copper pagoda
oak turret
#

C'est déjà par défaut, mais apparemment y a que les plus haut grade qui peut les voir

tulip jackal
#

il faut activer un parametre dans ses settings

oak turret
#

lesquels ?

tulip jackal
tulip jackal
oak turret
#

ok merci

keen narwhal
#

Bonjour, je fais une app avec react & express et j'aurais aimé avoir un peu d'aide s'il vous plait merci !

visual sequoia
#

Salut, je suis en discord.js@v14 et je n'arrive plus a crée de channel discord. Je ne sais pas si ses moi qui est débile peut être mdr voici l'erreur:

DiscordAPIError[50035]: Invalid Form Body
name[BASE_TYPE_REQUIRED]: This field is required
    at SequentialHandler.runRequest (D:\Bureau\Emma\node_modules\discord.js\node_modules\@discordjs\rest\dist\lib\handlers\SequentialHandler.cjs:287:15)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async SequentialHandler.queueRequest (D:\Bureau\Kobra\node_modules\discord.js\node_modules\@discordjs\rest\dist\lib\handlers\SequentialHandler.cjs:99:14)
    at async REST.request (D:\Bureau\Emma\node_modules\discord.js\node_modules\@discordjs\rest\dist\lib\REST.cjs:52:22)
    at async GuildChannelManager.create (D:\Bureau\Emma\node_modules\discord.js\src\managers\GuildChannelManager.js:145:18)
    at async Object.execute (D:\Bureau\Emma\Events\interactionCreate.js:76:7) {
  rawError: {
    code: 50035,
    errors: { name: [Object] },
    message: 'Invalid Form Body'
  },
  code: 50035,
  status: 400,
  method: 'POST',
  url: 'https://discord.com/api/v10/guilds/832607976971960390/channels',
  requestBody: {
    files: undefined,
    json: {
      name: undefined,
      topic: undefined,
      type: undefined,
      nsfw: undefined,
      bitrate: undefined,
      user_limit: undefined,
      parent_id: undefined,
      position: undefined,
      permission_overwrites: undefined,
      rate_limit_per_user: undefined,
      rtc_region: undefined,
      video_quality_mode: undefined
    }
  }
}

Mon code

 await interaction.guild.channels.create(channelName,{
        type:"GUILD_TEXT",
        parent:"920157034882695218",
        permissionOverwrites:[
          {

             id:"832607976971960390",
             deny:["SEND_MESSAGES","VIEW_CHANNEL","READ_MESSAGE_HISTORY"],
           },
        ]

Merci les poto

sullen kelp
#

Les permission ont changé en v14 (pas les perm en elle-même mais la façon de les écrire)

keen narwhal
#

petite erreur puis-je avoir votre aide svp:

code:

const Canvas = require ("canvas")

  client.on("guildMemberAdd", async member => {
    console.log("un membre est arrivé !")
    client.channels.cache.get("985944863398854656").send(member.displayName + " À rejoin le serveur !")
    member.roles.add("985934744120348806");

    var canvas = Canvas.createCanvas(1050, 700);

    ctx = canvas.getContext("2d");

    var background = await Canvas.loadImage("./ba-background.jpeg");
    ctx.drawImage(background, 0, 0, 1050, 700);

    var attachment = new Discord.MessageAttachment(canvas.toBuffer(), "Welcome.png");

    client.channels.cache.get("985944863398854656").send({files: [ attachment]});

  });```

erreur:

```Discord.MessageAttachment is not a constructor```
sullen kelp
#

V14 ?

keen narwhal
#

oui

#

c'est bon g regarder dans le discord api et maintenant c AttachmentBuilder

cyan iron
cyan iron
#

C'est ce que je viens de t'envoyer

keen narwhal
#

oe c sa

#

merci quand meme

sullen kelp
#

Ok

copper pagoda
copper pagoda
sharp grail
#

Yes

#

ChannelType.GuildText

copper pagoda
#

Ouais

visual sequoia
sharp grail
#

Yep

#

Depuis djs

visual sequoia
#

Merci

copper pagoda
visual sequoia
#

ok ok merci a vous

copper pagoda
#

De rien 😉

idle tide
#

salut ! j'ai voulu copier/coller tous les fichiers de mon bot pour faire un bot test mais ça me met cette erreur :

Uncaught Error Error: \\?\c:\Users\louan\Desktop\bot test\node_modules\canvas\build\Release\canvas.node n’est pas une application Win32 valide.```
que je n'ai pas sur mon bot principal
#

possible d'avoir de l'aide svp ?

keen narwhal
#

hello ! petite erreur

code:

    let Embed = new Discord.MessageEmbed()
    .setColor(bot.color)
    .setFitle("Rôle de notifications")
    .setThumbnail(bot.user.displayAvatarUrl({dynamic: true}))
    .setDescription("Veulliez choisir les rôles de notifications que vous voulez dans le menu déroulant ci-dessous.")
    .setTimeStamp()
    .setFooter(`${bot.user.username}`, bot.user.displayAvatarURL({dynamic: true}))```

erreur:
```Cannot read properties of undefined (reading 'MessageEmbed')```
visual sequoia
#

@copper pagoda J'ai une petite erreur:

TypeError [InvalidType]: Supplied parameter is not a User nor a Role.
    at Function.resolve (D:\Bureau\Kobra\node_modules\discord.js\src\structures\PermissionOverwrites.js:184:28)
    at D:\Bureau\Kobra\node_modules\discord.js\src\managers\GuildChannelManager.js:143:81
    at Array.map (<anonymous>)
    at GuildChannelManager.create (D:\Bureau\Kobra\node_modules\discord.js\src\managers\GuildChannelManager.js:143:51)
    at Object.execute (D:\Bureau\Kobra\Events\interactionCreate.js:77:44)
    at Client.<anonymous> (D:\Bureau\Kobra\main.js:58:50)
    at Client.emit (node:events:390:28)
    at InteractionCreateAction.handle (D:\Bureau\Kobra\node_modules\discord.js\src\client\actions\InteractionCreate.js:81:12)
    at Object.module.exports [as INTERACTION_CREATE] (D:\Bureau\Kobra\node_modules\discord.js\src\client\websocket\handlers\INTERACTION_CREATE.js:4:36)
    at WebSocketManager.handlePacket (D:\Bureau\Kobra\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31) {
  [Symbol(code)]: 67
}

Code:

          await interaction.guild.channels.create({
            name: channelName,
            type: ChannelType.GuildText,
            parent: Config.ticketSystem.categoryId,
            permissionOverwrites: [{
                id: userID,
                allow: [PermissionsBitField.Flags.ViewChannel, PermissionsBitField.Flags.SendMessages, PermissionsBitField.Flags.ReadMessageHistory],
              },
              {

                id: Config.UserFunctionStaffRole,
                allow: [PermissionsBitField.Flags.ViewChannel, PermissionsBitField.Flags.SendMessages, PermissionsBitField.Flags.ReadMessageHistory],
              },
              {

                id: Config.GuildID,
                deny: [PermissionsBitField.Flags.ViewChannel, PermissionsBitField.Flags.SendMessages, PermissionsBitField.Flags.ReadMessageHistory],
              },
            ]
          })

Tu serait? Merci

copper pagoda
keen narwhal
#

d'acc mrc juste c ou que ta trouver sa stp

copper pagoda
copper pagoda
visual sequoia
keen narwhal
#

mrc

copper pagoda
#

Ouais.

visual sequoia
#

ah mais nan chu trop debile mdr merci

copper pagoda
#

De rien.

keen narwhal
#

nn toujour le message

Cannot read properties of undefined (reading 'EmbedBuilder')

copper pagoda
keen narwhal
#
const { Discord } = require("discord.js");
copper pagoda
#

Enlève les {}.

keen narwhal
#

ok

misty parcel
#

hey j'ai un p'tit soucis

#

j'essaye de faire l'addition de la description d'un embed avec un nombre aléatoire entre 0 et 3000

#

donc j'ai fais ça :

#
.setDescription(`${parseInt(button.message.embeds[0]?.description) + amount}`)
keen narwhal
#
  1 ExpectedValidationError > s.literal(V)
  |   Expected values to be equals
  |
  |   Expected:
  |   | null
  |
  |   Received:
  |   | undefined

  2 ValidationError > s.number
  |   Expected a number primitive
  |
  |   Received:
  |   | undefined

  3 ValidationError > s.tuple(T)
  |   Expected an array
  |
  |   Received:
  |   | undefined```

oula c quoi sa???
#

c mon erreur

misty parcel
#

amount est égal à ça

let amount = Math.floor(Math.random() * 3000)
sharp grail
sharp grail
misty parcel
#

le problème c'est que ça ma répond NaN : (

keen narwhal
sharp grail
#

Que représente button?

#

Et si t'as pas d'embed ou ta description n'est pas un nombre bah ça te renverra NaN

sharp grail
#

setTimestamp

misty parcel
sharp grail
#

Represente donc l'interaction ?

misty parcel
#

oui

sharp grail
#

Et ton embed ressemble a quoi ?

misty parcel
#

y'en à 2, un pour avant et un pour après

#
let startringPoints = 0;

      const tournoiEmbedAlpha = new MessageEmbed()
        .setAuthor({
          name: "Equipe Alpha",
        })
        .setColor("BLUE")
        .setTitle("Point de l'équipe Alpha")
        .setDescription(`\`\`\`diff\n${startringPoints}\n\`\`\``)
        .setThumbnail(
          "https://emojipedia-us.s3.amazonaws.com/source/skype/289/crossed-swords_2694-fe0f.png"
        )
        .setTimestamp()
        .setFooter({
          text: "Equipe Alpha",
        });
sharp grail
#

Ah bah du coup normal

#

T'as vu ta description ?

misty parcel
#

oui

#

faut pas metre diff ? 🤔

sharp grail
#

Bah nan mais pourquoi pas mais tu te retrouves pas avec un number du coup

#

Et startringPoint-?

#

Pas plutôt starting?🤔

keen narwhal
#

g une erreur vraiment dure pouvez vous m'aider svp

  Received one or more errors

  1 ExpectedValidationError > s.literal(V)
  |   Expected values to be equals
  |
  |   Expected:
  |   | null
  |
  |   Received:
  |   | undefined

  2 ValidationError > s.number
  |   Expected a number primitive
  |
  |   Received:
  |   | undefined

  3 ValidationError > s.tuple(T)
  |   Expected an array
  |
  |   Received:
  |   | undefined

    at UnionValidator.handle (C:\Users\ethan\Documents\DOOVMIBOT\DOOVMI\node_modules\@sapphire\shapeshift\dist\index.js:1085:23)
    at UnionValidator.parse (C:\Users\ethan\Documents\DOOVMIBOT\DOOVMI\node_modules\@sapphire\shapeshift\dist\index.js:142:88)
    at EmbedBuilder.setColor (C:\Users\ethan\Documents\DOOVMIBOT\DOOVMI\node_modules\@discordjs\builders\dist\messages\embed\Embed.cjs:47:31)
    at EmbedBuilder.setColor (C:\Users\ethan\Documents\DOOVMIBOT\DOOVMI\node_modules\discord.js\src\structures\EmbedBuilder.js:22:18)      
    at module.exports (C:\Users\ethan\Documents\DOOVMIBOT\DOOVMI\events\client\ready.js:11:6)
    at Client.<anonymous> (C:\Users\ethan\Documents\DOOVMIBOT\DOOVMI\loaders\loadEvents.js:28:50)
    at Client.emit (node:events:539:35)
    at WebSocketManager.triggerClientReady (C:\Users\ethan\Documents\DOOVMIBOT\DOOVMI\node_modules\discord.js\src\client\websocket\WebSocketManager.js:385:17)
    at WebSocketManager.checkShardsReady (C:\Users\ethan\Documents\DOOVMIBOT\DOOVMI\node_modules\discord.js\src\client\websocket\WebSocketManager.js:368:10)
    at WebSocketShard.<anonymous> (C:\Users\ethan\Documents\DOOVMIBOT\DOOVMI\node_modules\discord.js\src\client\websocket\WebSocketManager.js:194:14)
sharp grail
sharp grail
#

C'est quoi bot.color?

keen narwhal
#

couleur de fond

#

meme couleur que le bot dcp

sharp grail
#

Cette propriété n'existe pas

#

Sauf si tu l'as set manuellement ?

keen narwhal
#

oui c sa

sharp grail
#

Je peux voir?- parce que manifestement c'est la que ça bloque ?

keen narwhal
#

problème régler ! j'avait mal défini un objet

sharp grail
#

Bon bah nickel alors

sharp grail
#

Bah

sharp grail
#

Le markdown n'est pas ignore hein

normal lichen
#

Bonjour, je fait un système de ticket et stocke l'id du membre qui ouvre ce ticket, j'aimerais que ce joueur reçoit un mp lorsque son ticket est fermer, mais je ne sais pas comment m'y prendre, la récupération de mon id est bonne, je lui passe ensuite

const user = client.users.fetch(membre)

lors du console.log celui me retourne bien un tableau qui correspond au info de l'id (username et autre) comment puis-je désormais mp le membre a partir de cela s'il vous plait .

near saddle
#

user.send

normal lichen
#

non cela me dit que se n'est pas une fonction

copper pagoda
mossy lynx
#

Hey !!

  if(message.member.permissions.has("ADMINISTRATOR")){

Comment je peux faire en sorte qu'il faut la perm ADMINISTRATOR comme dans mon code OU que ce soit un utilisateur spécifique

#

en mode si la personne possède admin ou qu'il soit cet utilisateur, il peux utiliser la commande

near saddle
#
  if(message.member.permissions.has("ADMINISTRATOR") || message.author.id == 'ID_de_la_personne'){
mossy lynx
#

super merci beaucoup

near saddle
#

je t'avoue ne pas avoir compris ta question x)

tough ferry
#

exusez moi j'ai eu une erreur quand je fait npm i

#

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 C:\Users\acaly\AppData\Local\npm-cache\eresolve-report.txt for a full report.

mossy lynx
sullen kelp
normal lichen
#

Bonjour vous savez comment faire pour split le resultat d'une requete sql, je souhaiterais récupéré la date et l'heure d'ouverture de mon ticket et je recupere toute cette ligne 😅
Mon Aug 22 2022 10:45:16 GMT+0200 (heure d’été d’Europe centrale)

past nimbus
#

Tu formates ta date

normal lichen
#

je vais regarder a sa merci

keen narwhal
#

bonjour je bloque sur ce problème pouvez vous m'accordez 5min svp

code:

    run: async(client, interaction, args) => {
        if (interaction.options.getSubcommand() === "member") {
            let raison = await interaction.options.getString("reason") || "Pas de raison donnée.";
            const target = await interaction.options.getMentionable('membre');

            if(target.id === interaction.member.id) return interaction.reply({content: ":x: | Vous ne pouvez pas vous bannir vous-mêmes !", ephemeral: true})
            if(interaction.guild.ownerId === target.id) return interaction.reply({content: ":x: | Vous ne pouvez pas bannir le créateur du serveur !", ephemeral: true})
            if(target.id === client.user.id) return interaction.reply({content: ":x: | Vous ne pouvez pas me bannir !", ephemeral: true})
            try {
                await interaction.guild.members.ban(target, raison);
                return interaction.reply('Malheureusement ' + target.user.tag + ' a été banni du serveur, raison:  ' + raison + ' !');
            } catch (err) {
                if (err) {
                    console.error(err);
                }
            }
        };
    },
};```

erreur:

```TypeError [InvalidType]: Supplied options is not an object.```

merci d'avance !
versed storm
keen narwhal
#

en gros ce que g fait c que g copier coller le code de ma commande /kick et g remplacer les "kick" par "ban"

keen narwhal
versed storm
normal lichen
#

Bonjour, j'ai une erreur "query was empty" et je ne comprend pas pk 😅

db.query(`UPDATE membres SET level = 'level1' WHERE user_id = ?` [id])

merci beaucoup

burnt oar
#

pouriez vous me dire ce qui ne va pas

#

c discord.js

normal lichen
#

ta quoi comme erreur ?

burnt oar
#

et ba sa marche pas quand j'ai ecrir mention

#

stv vien dans le vocal michel sauvage

normal lichen
#

je ne peut pas actuellement

#

mais tu souhaite que quand tu ecrit mention sa te renvoie ce message ?

burnt oar
#

oui il faut ca te mentionne et et mention le chanel

normal lichen
#

tu veut que lorsque un membre et mentionné sa lui renvoie ce message ?

burnt oar
sullen kelp
#

C'est

#

<@#iddusalon>

burnt oar
#

ahh mais c visual studio qui march pas c normale

#

<@#iddusalon> je met ou

normal lichen
#

non iddusalon tu le met pas mdrr

#

tu remplace iddusalon par la methode

#

je code pas comme sa alors je suis pas sur a 100% que la mise en forme sois bonne, mais normalement c'est sa ^^

sullen kelp
#

C'est la bonne méthode

#

Mise en forme*

keen narwhal
#

hey- une erreur que je ne comprends pas pouvez vous m'aider svvp:

code:

    async run(bot, interaction, args) {
      let embed1 = new discord.EmbedBuilder()
      .setDescription(`**__Ping__**\n\n 🏓 Pong ! \n\n**__🔧・Latence:__**\n\n \`${bot.ws.ping}\`ms`)
      .setColor("Red")
      .setFooter ({
        iconURL: client.user.displayAvatarURL(),
        text: client.user.tag
      })```

erreur:
```[FATAL] Possibly Unhandled Rejection at: Promise  Promise {
  <rejected> ReferenceError: client is not defined
versed storm
# keen narwhal hey- une erreur que je ne comprends pas pouvez vous m'aider svvp: code: ```js ...

Pour comprendre ton erreur, il faut que tu assimile la notion de bloc, visibilité, portée... Je n'ai plus le terme exact goddamn

En gros, tu es dans ta fonction asynchrone run(bot, interaction, args), les variables et opérations effectuées dans ce bloc lui sont propres par défaut. Les autres fonctions ne peuvent pas appeler ses variables, et lui ne peut pas non plus appeler les variables des autres blocs.

Et du coup, une fois que l'on sait ça, on voit que tu essayes d'appeler la variable client mais elle n'est pas visible par ton bloc, donc pour lui elle est inexistante.

charred lake
#

Des gens qui gère VueJS ici ?
J'ai une petite question, sur les animations Bootstrap de Focus et le router

versed storm
charred lake
#

Pour faire simple, j'ai une animation sur une input quand je focus

#

Donc quand je clique sur l'input pour écrire le label se décale tu vois l'idée ?

#

Et bah, ça marche parfaitement quand j'accède à la page normalement, mais quand j'accède à cette page depuis un router push, cette animation elle plante, et je me retrouve avec ça

versed storm
#

Alors là sue
Si ton router.push accède exactement à la même view que quand tu y accèdes via URL, il ne devrait pas avoir de différences sur les déclarations des ressources et le style

charred lake
#

Baaaaaaaah, j'sais pas j'ai déjà eu plusieurs fois ce problème, et j'ai jamais su d'où ça venait :/

#

Mais du coup, je me retrouve bloqué la

versed storm
#

deeddede c'est ton animation ? Tu n'as aucun message d'erreur dans la console ou un élément qui ne devrait pas être là quand tu inspecte l'élément ?

charred lake
#

Dededede, c'est mon texte. C'est Email* qui devrait dégager :/
Et non rien d'anormal

#

J'ai remarqué que le css de focus se prend pas en compte

#

Quand j'y accède normalement il rajoute :focus sur mon CSS pour faire l'animation

keen narwhal
#

Bonjour je suis le tuto "Créer un réseau social | Partie Back-end" et j'ai cette en utilisant une méthode put avec postman alors que dans la vidéo cela fonctionne très bien pour lui. merci !!

#

voici le code

left forum
#

ton header doit être initialisés avant que tu envoies les données côté client

keen narwhal
#

comment on fait pour importer des émojis de notre serveur discord sur visual studio svp

versed storm
# keen narwhal comment on fait pour importer des émojis de notre serveur discord sur visual stu...

J'ai trouvé cet exemple qui date de Mars donc doit être à jour avec la version de discord.js
https://github.com/AnIdiotsGuide/discordjs-bot-guide/blob/master/coding-guides/using-emojis.md

GitHub

The basic new coder friendly "idiot's guide", Created by Hindsight#2020 and maintained by the community. - discordjs-bot-guide/using-emojis.md at master · AnIdiotsGuide/di...

keen narwhal
left forum
#

tu devrais viser plus facile niveau projet

keen narwhal
#

Et bien justement je m'y intéresse pour comprendre '-'

left forum
#

oui mais là tu suis sûrement un tuto qui dépasse ton niveau en backend js

#

tu peux regarder chez graven il y a un tuto expressjs qui est pas mal pour les débutants

keen narwhal
#

Merci!

keen narwhal
left forum
#

je me suis trompé entre grafikart et graven tu risquais pas de trouver

modern skiff
#

Y a pas longtemps je l'ai vu

#

Mais j'avais pas le temps de regarder en entier

left forum
#

Mais apprends déjà javascript avant de te lancer dans le backend

#

et ensuite nodejs pour comprendre le fonctionnement du backend en js

keen narwhal
#

merci !!

burnt oar
#

qui peux venir en voc pour m'aider

#

ba je voudrait ajouter des commande a se bot const { Client, GatewayIntentBits } =require("discord.js");

const client = new Client({intents: [3276799] });

client.on("ready ", () => {
console.log("bot operationel")
})

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

console.log(message);
if (message.content === "help" ){
  message.reply("Les Commandes du bot : \n ...");  
}

})

blazing wadi
keen narwhal
#

les gars comment je créé une commande /unmute svp:

code de ma commande /mute:

const discord = require("discord.js");
const ms = require('ms')
const { ApplicationCommandOptionType } = require("discord.js");
module.exports = {
    name: "mute",
    description: "🔇・mute un membre ",
    category: "Moderation",
    userPerms: ["MuteMembers"],
    botPerms: ["MuteMembers"],
    dm: false,
    options: [
        {
            name: "membre",
            type: ApplicationCommandOptionType.User,
            description: "Quel membre voulez-vous mute?",
            required: true
        },
        {
            name: "temps",
            type: ApplicationCommandOptionType.String,
            description: "Pour combien de temps?",
            required: true
        },
        {
           name: "raison",
           type: ApplicationCommandOptionType.String,
           description: "Pourquoi le mute?",
           required: true
        }
    ],```
#
async run(bot, interaction, args,) {
        let user = await interaction.options.getUser("membre")
        if (!user) return interaction.reply("Pas de membre !")
        let member = interaction.guild.members.cache.get(user.id)
        if (!member) return interaction.reply("Pas de membre !")

        let time = await interaction.options.getString("temps")
        if (!time) return interaction.reply("Pas de temps !")
        if (isNaN(ms(time))) return interaction.reply("Pas le bon format !")
        if (ms(time) > 86400000) return interaction.reply("Le mute ne peut pas durer plus de 28 jours !")

        let reason = interaction.options.getString("raison")
        if (!reason) return interaction.reply("Pas de raison fournise !")

        if(interaction.user.id === user.id) return interaction.reply("Ne te mute pas tout seul !")
        if((await interaction.guild.fetchOwner()).id === user.id) return interaction.reply("Ne mute pas le propriétaire du serveur !")
        if(!member.moderatable) return interaction.reply("Je ne peux pas mute ce membre !")
        if(interaction.member.roles.highest.comparePositionTo(member.roles.highest) <= 0) return interaction.reply("Tu ne peux pas mute ce membre !")
        if(member.isCommunicationDisabled()) return interaction.reply("Ce membre est déjà mute !")

        try {await user.send(`Tu as été mute du serveur ${interaction.guild.name} par ${interaction.user.tag} pendant ${time} pour la raison: \`${reason}\``)} catch(err) {}

        await interaction.reply (`${interaction.user} a mute ${user.tag} pendant ${time} pour la raison: \`${reason}\``)

        await member.timeout(ms(time), reason)
    }
}```
floral charm
#

Bonjour je viens d'arriver dans le discord j'aurais besoin d'un coup de main en ReactJS svp

#

j'ai l'impression que mon filter ne fonctionne pas, quand j'arrive sur ma page tout mes projet y sont, et j'ai un menu sur lequel je choisi un input radio. la valeur est prise dans la variable selectedRadio mais rien ne s'affiche et je n'ai aucun message d'erreur dans la console, si quelqu'un a un idée

fading glacier
keen narwhal
#

c quoi la commande pour retirer un role?
svp

burnt oar
#

///const { Client, GatewayIntentBits } =require("discord.js");
const client = new Client({intents: [3276799] });

const prefix = ".";

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

Client.on("messageCreate", message => {
if (message.author.bot) return;

//.help

if(message.content === prefix + "help"){
const embed = new Discord.MessageEmbed()
.setTitle("Liste des commandes");

   message.channel.send({ embeds : [embed]});

}
})///

#

le bot beug

keen narwhal
#

pourquoi il me dit sa?

code:

const { ApplicationCommandOptionType } = require("discord.js");

module.exports = {
    name: "addroles",
    description: "Ajouter un role a un membre",
    options: [
        {
            name: "membre",
            description: "À qui voulez - vous ajouter un rôle?",
            type: ApplicationCommandOptionType.User,
            required: true
        },{
            name: "role",
            description: "Quel rôle voulez - vous ajouter un role?",
            type: ApplicationCommandOptionType.Role,
            required: true
        }
    ],
    async execute(interaction) {
        const member = interaction.options.getUser("membre");
        const role = interaction.options.getRole("role");

        member.roles.add(role);
        then( async () => {
            await interaction.reply(`Le rôle ${role} a été correctement ajouter à ${member}?`);
        })
        .catch (async (error) => {
            console.log(error);
            await interaction.reply({ephemeral: true, content: `Je n'ai pas réussi à ajouter le rôle ${role}  a ${member} sûrement dû à un manque de permission.`});
        })
    }
}```

mon bot répond sa:
keen narwhal
#

Bonjour j'ai un problème avec mon bot.

Le code :

const Discord = require('discord.js');
const client = new Discord.Client();

const config = require('./config.json');

client.on("ready", () => {
    client.user.setActivity(config.activity);
    console.log("Ready !")
});

client.on("message", message => {
    if (message.author.bot) return;
    message.reply("Salut !")
})

client.login(config.token);

L'erreur :

PS C:\Users\Elève\Documents\GitHub\Bot Discord JS Zikaa V1\Bot-Dsicord-Zikaa-V1> node index.js
C:\Users\Elève\Documents\GitHub\Bot Discord JS Zikaa V1\Bot-Dsicord-Zikaa-V1\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\Elève\Documents\GitHub\Bot Discord JS Zikaa V1\Bot-Dsicord-Zikaa-V1\node_modules\discord.js\src\client\Client.js:480:13)
    at new Client (C:\Users\Elève\Documents\GitHub\Bot Discord JS Zikaa V1\Bot-Dsicord-Zikaa-V1\node_modules\discord.js\src\client\Client.js:78:10)
    at Object.<anonymous> (C:\Users\Elève\Documents\GitHub\Bot Discord JS Zikaa V1\Bot-Dsicord-Zikaa-V1\index.js:2:16)    
    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'
}
versed storm
dire latch
#

@keen narwhalIl te manque les intents

keen narwhal
#

Ah ok merci beaucoup !

normal lichen
#

Bonjour vous savez comment je peut afficher toute les lignes d'une base de données ? je veut faire un classement ^^

normal lichen
#

non mais sa merci je sais faire une requete sql mdrr x)

#

mais c'est pour ma requete de count je recupere pas un int et je sais pas le convertir x)

red torrent
#

Il faut un peu plus de détails

#

Tu récupères quoi si c'est pas un integer ?

normal lichen
#

je developpe du php moi a la base alors j'ai l'habitude d'utiliser le foreach x)

#

avec ma requete de count je recupere sa
RowDataPacket { 'count(id)': 5 }
je voudrais juste recuperer 5 ^^

red torrent
#

Dans ta requête sql tu peux donner un alias à ton count

#

Ensuite le RowDataPacket tu l'utilises comme un objet

#
SELECT COUNT(id) AS nombre FROM xxxx
normal lichen
#

oui je vois, et je recupere la valeur de nombre

red torrent
normal lichen
#

je vais essayer sa merci beaucoup

#

sa fonctionne, merci ^^

willow mountain
#

Salut , je cherche un dev qui est capable de faire sa :
Crée un système de ticket staff quand les joueurs rentre dans le Channel sa crée un ticket que les staff peuvent claim
Crée un système d’absence avec une commande /absence temps raison commande utilisable uniquement dans le Channel absence et on reçois l’es raison et le temps dans le Channel abs raison
Crée un système de création de Channel dès que les joueurs rentre dans le Channel « crée son Channel » sa crée automatiquement leur Channel perso
Message automatique : crée des messages automatiques pour les réunions qu’on est juste à mettre /réunion et sa Ping les staff Vargas sa met un message automatique dans annonce réunion samedi 21h etc
Crée un système de validation il faut accepter le règlement sur discord pour avoir accès à tout le discord et pouvoir se déplacer librement
crée une commande pour crée des sondages.
Si vous êtes interessé mercci de me mp pour discuter du prix

dry hawk
#

c'est autorisé sa dans les chanelle ? de faire des demande comme sa ?

willow mountain
#

Est ce que c'est vraiment la fin du monde ?

#

Le dévlopement de bot discord

dry hawk
#

je pose une question bordel

willow mountain
#

c'est bien javascript, nn ?

dry hawk
#

euu python peut etre aussi

willow mountain
#

Ah j'avais pas vue x)

dry hawk
#

pgrv

feral oyster
keen narwhal
dry hawk
keen narwhal
#

Ah ok merci

keen narwhal
#

comment je remplace tout les "message" d'un coup?

blazing wadi
#

Normalement

keen narwhal
#

c sa mrc

blazing wadi
#

😋 👍

orchid garden
#
=> {
    for (var i = 0; i < PersonsOftab.length; i++) {
        for (let Person of PersonsOftab) {
            console.log("Bonjour Monsieur/Madame  " + Person + ".Vous êtes a la " + i + " ère place de ce tableau")
        }
    }
}

sayHelloToArr(["mamère", "monfrer", "Mathéo"]);
keen narwhal
#

hey qui pourrait m'aider svp

code:

const discord = require ("discord.js")
const { ApplicationCommandOptionType } = require("discord.js");

module.exports = {
    name: "userinfo",
    description: "🌟・affiche les informations d'un membre ",
    Permissions: "Aucune",
    dm: false,
    options: [
        {
            name: "membre",
            type: ApplicationCommandOptionType.User,
            description: "sur qui voulez-vous avoir des informations ?",
            required: true
        }
    ],

    async run(bot, interaction, args,) {
        let user = await interaction.options.getUser("membre")
      let embed1 = new discord.EmbedBuilder()
      const username = interaction.mentions.user.first()
      if(username) {
          user = username;
      } else {
          user = interaction.author;
      }
      const member = interaction.mentions.user.first() || interaction.author;
  
      interaction.delete({ timeout: 100 })
      interaction.channel.send(`- ID du membre : ${user.id}.\n- Pseudo sur le serveur : ${member.nickname ? member.nickname : user.username}.\n- Dates de création du compte : ${user.createdAt.toLocaleDateString('en-GB')}.`)

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

erreur:

```TypeError: Cannot read properties of undefined (reading 'user')```
#

( je suis en v14)

near saddle
#

interaction.mentions ?

#

jamais vu ça

#

tu cherches à avoir quoi ?

copper pagoda
blissful hemlock
#

Bonjour/Bonsoir, j'ai créé un embed et, j'ai cette erreur :

TypeError: this.options.embeds?.map is not a function
    at MessagePayload.resolveData (S:\dev\Bot UltrArthy\node_modules\discord.js\src\structures\MessagePayload.js:201:36)
    at CommandInteraction.reply (S:\dev\Bot UltrArthy\node_modules\discord.js\src\structures\interfaces\InteractionResponses.js:101:50)
    at Client.<anonymous> (S:\dev\Bot UltrArthy\index.js:229:21)
    at Client.emit (node:events:539:35)
    at InteractionCreateAction.handle (S:\dev\Bot UltrArthy\node_modules\discord.js\src\client\actions\InteractionCreate.js:83:12)
    at Object.module.exports [as INTERACTION_CREATE] (S:\dev\Bot UltrArthy\node_modules\discord.js\src\client\websocket\handlers\INTERACTION_CREATE.js:4:36)
    at WebSocketManager.handlePacket (S:\dev\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketManager.js:346:31)
    at WebSocketShard.onPacket (S:\dev\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:478:22)
    at WebSocketShard.onMessage (S:\dev\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:317:10)
    at WebSocket.onMessage (S:\dev\Bot UltrArthy\node_modules\ws\lib\event-target.js:199:18)

je n'arrive pas vraiment à la comprendre, quelqu'un pourrait m'aider ?
et voici le bout de code :

      case 'userinfo' :
        const myEmbed = new Discord.MessageEmbed()
        .setColor('DARK_GREEN')
        .setTitle('Test')
        .setDescription(`test`)
        .setFooter({text: `ceci est un test`, iconURL: interaction.user.avatarURL()})
        .setTimestamp();
        interaction.reply({embeds: myEmbed})
      break;
ionic swan
#
      case 'userinfo' :
        const myEmbed = new MessageEmbed()
        .setColor('DARK_GREEN');
        .setTitle('Test');
        .setDescription(`test`);
        .setFooter({text: `ceci est un test`, iconURL: interaction.user.avatarURL()});
        .setTimestamp();
        interaction.reply({ embeds: [myEmbed] });
      break;
#

try ça (discordjs V13)

blissful hemlock
#

hey, désolé, j'avais réglé mon problème et j'avais totalement que j'avais demandé de l'aide ici

#

le problème était bel et bien l'oubli de crochets

#

merci beaucoup

ionic swan
#

nickel alors

orchid garden
keen narwhal
#

Bonjour j’aimerai s’avoir si on m’aider à crée un bot perso

misty charm
#

Bonjour tout le monde,
Je suis débutant dans JavaScript et je viens de suivre la formation les bases de JavaScript d'openclassroom. J'ai appris aussi à manipuler le DOM.

Mais je suis bloqué au niveau des API dans la formation, je ne comprends plus rien...

Est-ce que vous avez quelques conseils ?

Voici le lien de la formation

https://openclassrooms.com/fr/courses/5543061-ecrivez-du-javascript-pour-le-web/5543068-comprenez-ce-quest-le-dom

left forum
misty charm
#

Tout le chapitre
Je n'ai pas compris à quoi ça sert, ni comment l'utiliser...

Surtout ce cours : Récupérez des données d'un service web

misty charm
#

Qu'est-ce que le fetch, etc..

left forum
#

une API c'est juste un moyen d'échanger des données tu peux te renseigner sur internet tu trouveras pleins d'explications

#

mais je te conseille pas de directement te lancer dans tout ce qui est API si tu es encore débutant en JS approfondis déjà les bases, la manipulation du DOM, etc

#

@misty charm

lapis onyx
# misty charm Tout le chapitre Je n'ai pas compris à quoi ça sert, ni comment l'utiliser... ...

A quoi ça sert:
Une API (Application Programming Interface) c’est un ensemble de service qui est mis à disposition pour être interconnecté à d’autres services externe

Exemple: Tu as des prises de courant connectées de chez l’entreprise A, l’entreprise A met à disposition une API pour la gestion des prises connectés.
Donc théoriquement tu peux créer ta propre application (mobile, web, script automatique) qui va communiquer avec l’API pour effectuer différents action sur tes prises connectées (allumer, éteindre, la prise est allumée ?, la prise est éteinte ?)
Etc etc

misty charm
misty charm
versed storm
# misty charm Merci beaucoup Je comprends l'utilité Mais qu'est-ce que je peux faire concrè...

Avec ces bases en JS tu peux essayer d'utiliser une API dispo sur internet pour manipuler des données dans le DOM.

Par exemple https://swapi.dev/
Tu pourrais par exemple créer un formulaire qui demande à l'utilisateur quel film il veut, quel personnage... Puis faire une requête à cette API avec les paramètres indiqués par le form, trier les données et les insérer dans le DOM.

Ce n'est pas quelque chose de très complexe à faire, mais ça pourrait te permettre de renforcer les bases.

distant depot
#

Hey

pulsar kite
#

Bonjour, j'ai codé ceci pour empêcher de cliquer sur un bouton de validation. Cependant j'ai plusieurs formulaires bouton radio et j'aimerais que cela fonctionne uniquement si tous les formulaire ont été remplis et pas uniquement le 1er. Je ne sais pas comment m'y prendre :

document.querySelector('form').addEventListener('change', function(){
  let elts = document.querySelectorAll('input');
            for (var z = 0; z < elts.length; z++) {
                if ( elts[z].checked === true ) break;    
            }
      document.querySelector('button').removeAttribute("disabled");
            console.log('checked => '+elts[z].checked);        
        })```
j'ai essayé de mettre querySelectorAll('form') au début du code mais ca ne fonctionne pas
keen narwhal
copper pagoda
keen narwhal
#

Bonjour, quand je fais la commande z/ping le message ne s'envoie pas. Pouvez vous m'aider ?

Code :

module.exports = {
    name: "ping",
    execute(client, messageCreate, args) {
        message.channel.send("Pong ! Calcul en cours...").then(msg => {
            msg.edit(`Pong ! Latence : ${msg.createdTimestamp - message.createdTimestamp}`)
        })
    }
}
blissful hemlock
#

Bonsoir, je ne trouve pas comment utiliser le joinedTimestamp dans une interaction, quelqu'un sait comment ça marche ?

oak turret
#

Hello, comment ça ?

blissful hemlock
#

j'aimerais connaître la date à laquelle à rejoint un membre en utilisant une commande slash

oak turret
#

et c'est le membre qui exécute la commande ?

#

Je look ton live j'ai compris

blissful hemlock
#

j'ai fais en sorte qu'on puisse cibler quelqu'un donc, avec un getUser

regal zodiac
#

Salut j'aimerais savoir comment je pourrais faire en sorte que les liens dans lembed soit tiré au hasard a chaque commande effectuées

#

en gros que il y est plusieurs image a chaque fois tiré au sort

floral bolt
#

ah j'ai trouver

orchid garden
#

(node:4496) [INSPECTOR_ASYNC_STACK_TRACES_NOT_AVAILABLE] Warning: Warning: Async stack traces in debugger are not available on 32bit platforms. The feature is disabled.
(Use node --trace-warnings ... to show where the warning was created)

#

quelqu'un peut m'epliquer pourquoi j'ai cette erreur et comment l'a régler .

orchid garden
copper pagoda
# regal zodiac

Personnellement, j'ai mis tous mes liens dans un array et je tire un nombre random qui correspondra à la ligne de l'array soit le lien.

hearty kraken
#

Je sais pas si c'est vraiment ici que je peux poser ma question, dites-moi s'il faut que je demande ailleurs.
Je voudrais apprendre le React mais je n'ai commencé que très récemment, et je ne suis pas chez moi : je n'ai donc accès qu'à mon téléphone portable. J'utilise CodeSnackIDE, une app qui donne accès à son propre linux ubuntu à distance (sûrement via ssh). Mais venons-en à mon problème : lorsque je fais npx create-react-app le-nom, à un certain moment de l'installation quelque-chose ne fonctionne pas et l'installation s'annule après avoir affiché cette erreur :

#

Une explication, une solution où simplement un projet vide à m'envoyer ne serait pas de refus !

fiery wave
#

Salut @hearty kraken, as-tu une option pour la commande, afin d'afficher la raison de l'erreur ? Car là, il ne dit pas la raison de l'arrêt d'installation

hearty kraken
#

J'm'y connais pas beaucoup, j'suis sous linux chez moi mais je passe pas beaucoup de temps dans le terminal, tu sais ce qu'il faudrait que je mette ?

fiery wave
#

Tu dois avoir une option --help pour voir toutes les options disponibles s'il y en a

#

Ou regarde sur la doc de react

fiery wave
soft lion
#

il a des tuto youtube pour faire des plugin ? pls

keen narwhal
#
          <script type="text/javascript" src="jquery-1.4.2.min.js"></script>

            <button id="but" disabled="disabled" onClick="window.location.reload();">5</button>

          <script type="text/javascript">
          $(function () {
              var $but = $('#but'),
                  temps = 5;
              setTimeout(function f() {
                  temps = temps - 1;
                  if (temps >= 0) {
                      $but.html(temps);
                      setTimeout(f, 999);
                  } else {
                      $but.attr('disabled', false).html('Cliquez ici').click(function () {
                          alert('Plop !');
                      });
                  }
              }, 999);
          });
          </script>

Mon bouton ne marche pas vous pouvez m'aider svp ?

copper pagoda
keen narwhal
# copper pagoda Personnellement, moi dans le onClick je mets le nom de la fonction créé pour.
<div class="refresh-buttons">
          <script>
          function refreshPage(){
            window.location.reload();
          }
          </script>
          <script type="text/javascript" src="jquery-1.4.2.min.js"></script>

            <button id="but" disabled="disabled" onClick="refreshPage;">5</button>

          <script type="text/javascript">
          $(function () {
              var $but = $('#but'),
                  temps = 5;
              setTimeout(function f() {
                  temps = temps - 1;
                  if (temps >= 0) {
                      $but.html(temps);
                      setTimeout(f, 999);
                  } else {
                      $but.attr('disabled', false).html('Cliquez ici').click(function () {
                          alert('Plop !');
                      });
                  }
              }, 999);
          });
          </script>
        </div>
#

Cela ne marche toujours pas.

left forum
keen narwhal
copper pagoda
hearty kraken
fiery wave
#

Aussi oui

fiery wave
#

Essaie de séparer ton code js dans un fichier @keen narwhal

#

C'est une mauvaise pratique de mélanger des langages différents

copper pagoda
left forum
#
<button id="button" onclick="refreshPage()">Refresh</button>
#

quand je fais comme ça c'est bon de mon côté

#
function refreshPage(){
    window.location.reload();
}
#

@keen narwhal

#

Tu devrais séparer ton code js de ton code HTML comme l'a dit Lukas mais si tu préfères tout garder dans un seul fichier évite de faire 15 balises script car ton code devient vite illisible et tu auras du mal à t'y retrouver à l'avenir

keen narwhal
#

D'accord merci.

keen narwhal
keen narwhal
#

D'accord

#

Mais moi personnellement ça marche toujours pas.

left forum
#

envoie ton code

keen narwhal
#

Fichier js :

function refreshPage(){
  window.location.reload();
}

$(function () {
    var $but = $('#but'),
        temps = 60;
    setTimeout(function f() {
        temps = temps - 1;
        if (temps >= 0) {
            $but.html(temps);
            setTimeout(f, 999);
        } else {
            $but.attr('disabled', false).html('Cliquez ici').click(function () {
                alert('Plop !');
            });
        }
    }, 999);
});

Fichier html :

        <div class="refresh-buttons">
            <button id="but" disabled="disabled" onClick="refreshPage()">60</button>
        </div>
left forum
#

enlève le disabled de ton bouton

keen narwhal
#

Ok

left forum
#

est c'est onclick pas onClick

keen narwhal
left forum
left forum
#

et tu devrais utiliser le getElementById pour définir tes éléments html

#
function compte_a_rebours(){
    let button = document.getElementById('button')
    // ton code de compte à rebour
};
#

faut juste pas oublier d'appeler ta fonction

keen narwhal
keen narwhal
#

Toujours pas.
HTML :

<button id="but" onclick="refreshPage()" onclick="compte_a_rebours()">60</button>

JS :

function compte_a_rebours(){
    let button = document.getElementById('button')
    var $but = $('#but'),
        temps = 60;
    setTimeout(function f() {
        temps = temps - 1;
        if (temps >= 0) {
            $but.html(temps);
            setTimeout(f, 999);
        } else {
            $but.attr('disabled', false).html('Cliquez ici').click(function () {
                alert('Plop !');
            });
        }
    }, 999);
};
#

Je vais refaire mon bouton. Il doit y avoir un truc qui cloche

left forum
#
function compte_a_rebours(){
    let button = document.getElementById('button')
    let temps = 60;
    setTimeout(function f() {
        temps = temps - 1;
        if (temps >= 0) {
            button.html(temps);
            setTimeout(f, 999);
        } else {
            button.attr('disabled', false).html('Cliquez ici').click(function () {
                alert('Plop !');
            });
        }
    }, 999);
};
#

je sais pas si ça va marcher mais ton code devrait ressembler à ça avec les changements

keen narwhal
#
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
 
<button id="but" disabled="disabled">5</button>
 
<script type="text/javascript">
$(function () {
    var $but = $('#but'),
        temps = 5;
    setTimeout(function f() {
        temps = temps - 1;
        if (temps >= 0) {
            $but.html(temps);
            setTimeout(f, 999);
        } else {
            $but.attr('disabled', false).html('Cliquez ici').click(function () {
                alert('Plop !');
            });
        }
    }, 999);
});
</script>

J'avais suivis ce code à la base.

left forum
#

Article ► https://grafikart.fr/tutoriels/timer-compteur-javascript-263
Abonnez-vous ► https://bit.ly/GrafikartSubscribe

Dans ce tutoriel vidéo vous apprendrez à créer un système de décompte en Javascript qui vous permettra d'annoncer la sortie de vos prochains sites/applications.

Soutenez Grafikart:
Devenez premium ► https://grafikart.fr/prem...

▶ Play video
#

c'est un bon tuto tu pourras comprendre ce que tu écris

keen narwhal
#

Merci

left forum
#

Salut, question con mais je sais pas si j'ai louper une étape pour que mon bot réagisse à chaque message envoyer dans un salon (ce qu'il ne fait pas actuellement)

client.on('message', async message => {
    if(message.channel.id === '1005161613214634168'){
        await message.react('🍎')
    }
})
neat lintel
#

tu es en V12 de djs ?

left forum
#

non en V14 c'est le message qui dérange ?

neat lintel
#

ouais messageCreate

left forum
#

messageAddReaction c'est ça maintenant ?

#

ah ouais ok je suis bête j'y avais même pas pensé

left forum
neat lintel
#

verifies les intents

left forum
#

ouais j'ai que lui GatewayIntentBits.Guilds

neat lintel
#

ca suffit pas faut un truc pour les messages

#

GuildMessages

left forum
#

ok c'est good merci

feral oyster
#

Bonjour, je sais pas si vous avez déjà eu ce problème :

Error: EISDIR: illegal operation on a directory, read
at Object.readSync (node:fs:728:3)
at tryReadSync (node:fs:434:20)
at Object.readFileSync (node:fs:480:19)
at /home/container/index.js:25:29
at Array.forEach (<anonymous>)
at Object.<anonymous> (/home/container/index.js:24:19)
at Module._compile (node:internal/modules/cjs/loader:1099:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12) {
errno: -21,
syscall: 'read',
code: 'EISDIR'

left forum
#

Salut, je cherche à épingler mon embed lors de l'envoie mais j'ai une erreur TypeError: interaction.pin is not a function

return await interaction.reply({ embeds: [ModalEmbed] }).then((interaction) => interaction.pin());
red torrent
left forum
sullen kelp
#

Si tu essaye de le send dans le salon et de le pins ?

cyan iron
# left forum yep

Normalement il te renvoie un Message dans une promise, donc c'est censé fonctionner, bizarre