#javascript-typescript

1 messages · Page 113 of 1

blissful hemlock
#

genre t'as tout copié collé ?

hidden cypress
#

Wesh il est seul en meme temps 😭

hidden cypress
blissful hemlock
#

waa l'oeil de Faucon

broken walrus
#

Essaie de remplacer ton .setDescription(`${msg}`) par .setDescription("test embed")

#

Je veux voir si ça vient de la description ou pas

hidden cypress
#

Vas-y

#

Le code a changer

broken walrus
#

Apparemment ça veut supprimer un message qui existe pas

hidden cypress
#

Bruhh

#

Mais dcp ?

broken walrus
#

Bah je sais pas j'ai pas plus d'infos harold

hidden cypress
#

Ah

blissful hemlock
#

ah

copper pagoda
summer hornet
#

Bonjour, je cherche un moyen de récupérer des informations sur une playlist YouTube musique, (image de cover, titre et artiste) pour les incorporer sur une page web, le tout se mettant à jour régulièrement. Avez vous pistes sur comment je pourrait faire ça ?

copper pagoda
cosmic plaza
summer hornet
#

Ok mrc je vais regarder ça, mais es ce que je pourrais modifier le css ?

hidden cypress
copper pagoda
blissful hemlock
#

désolé mais, je comprend pas trop ce qu'il m'arrive

    if (!this.deferred && !this.replied) throw new Error('INTERACTION_NOT_REPLIED');
                                               ^

Error [INTERACTION_NOT_REPLIED]: The reply to this interaction has not been sent or deferred.
    at CommandInteraction.editReply (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\structures\interfaces\InteractionResponses.js:142:48)    
    at Client.<anonymous> (C:\Users\arthu\Desktop\Bot UltrArthy\index.js:90:19)
    at Client.emit (node:events:406:35)
    at InteractionCreateAction.handle (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\actions\InteractionCreate.js:83:12)
    at Object.module.exports [as INTERACTION_CREATE] (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\handlers\INTERACTION_CREATE.js:4:36)
    at WebSocketManager.handlePacket (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketManager.js:346:31)
    at WebSocketShard.onPacket (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:478:22)
    at WebSocketShard.onMessage (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\discord.js\src\client\websocket\WebSocketShard.js:317:10)
    at WebSocket.onMessage (C:\Users\arthu\Desktop\Bot UltrArthy\node_modules\ws\lib\event-target.js:199:18)
    at WebSocket.emit (node:events:394:28) {
  [Symbol(code)]: 'INTERACTION_NOT_REPLIED'
}```
et mon code :
```js
      case 'suggest':
      interaction.deferReply({ephemeral: true})
      embedSuggest = new Discord.MessageEmbed()
      .setColor('#0dff00')
      .setTitle('📝 Nouvelle Suggestion')
      .setDescription(`**Auteur:** \`\`${interaction.user.username}\`\`\n\n**Suggestion:**\n> ${texte}`)
      .setFooter({text: `Suggestion trouvée par ${interaction.user.username}`, iconURL: interaction.user.avatarURL()})
      .setTimestamp();
      client.channels.cache.get('903386282909134918').send({ embeds: [embedSuggest]})
      interaction.editReply('suggestion envoyée', {ephemeral: true})
      break```
#

frerrot, je deferReply juste au dessus

#

🤔

copper pagoda
blissful hemlock
#

haaa

#

qu'est-ce que le await change ?

#

🤔

copper pagoda
blissful hemlock
#

(j'essaie d'apprendre)

#

ah

#

¯_(ツ)_/¯

#

tkt moi aussi ça a marché mais, je voulais savoir à quoi il servait

#

pas grave

#

en tout cas, merci pour ton aide

copper pagoda
#

Le await de base c'est l'équivalent du .then.

copper pagoda
blissful hemlock
#

en gros, ça veut dire qu'il attend une réponse ?

cosmic plaza
blissful hemlock
#

dites-moi, si j'ai créé un embed et que je l'ai envoyé, comment je pourrais le modifier plus tard pour l'envoyer mais avec une seule différence ?

#

genre, pour éviter de recréer l'embed entièrement
en gros, j'ai créé un embed qui va s'envoyer dans un certain channel et, une fois envoyé, j'aimerais rajouter un .setContent('suggestion envoyée') et l'envoyer à nouveau, est-ce possible ?

cosmic plaza
#

Mais c'est un peu compliquer

#

En gros faut crée juste un endroit dans le discord avec un sélecteur qui te permet de naviguer entre les différente choses que tu veut changer

#

Ensuite tu met dans ton code se que le sélecteur reçois

blissful hemlock
#

oulà

#

compliqué tout ça

#

tu peux pas récupérer le dernier embed envoyé dans les channel pour le modifier ?

#

faudrait que j'essaie un truc comme ça

#

je reviens dans 10 mins, je vais promener mon chien

broken walrus
# blissful hemlock en gros, ça veut dire qu'il attend une réponse ?

En gros, les fonctions qui prennent un certain temps d'exécution (genre quand tu fais appel à une API extérieure, par exemple), elles renvoient ce qu'on appelle des Promises (promesses)
Et await ça sert à attendre que cette promesse soit complétée, pour en obtenir le résultat

blissful hemlock
#

re

cosmic plaza
blissful hemlock
#

pas grave

#

quelqu'un a quelque chose pour faire attendre le programme ?

#

🤔

quaint summit
#

Hello je cherche pk est-ce que mon code ne focntionne pas

blissful hemlock
#

montre ton code + ton erreur

#

et demande à quelqu'un d'expérimenté harold

quaint summit
#
const { Client } = require("discord.js");
const client = new Client({intent: 1});
const { Token } = require("./config.json");


client.once("ready", "" >= {
    console.log("Bot Op");
    client.user.setActivity("Je suis un test", {type : "PLAYING"})
});

client.login(Token);
C:\Users\carfun\Desktop\Bot Discord GLua\index.js:7
    console.log("Bot Op");
           ^

SyntaxError: Unexpected token '.'
    at Object.compileFunction (node:vm:352:18)
    at wrapSafe (node:internal/modules/cjs/loader:1033:15)
    at Module._compile (node:internal/modules/cjs/loader:1069:27)
    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
[Finished in 119ms]
blissful hemlock
#

bizarre

cosmic plaza
#

Les gars qui sait comment utiliser model.export ?

blissful hemlock
#

pas moi, déso

quaint summit
blissful hemlock
#

non, ça vient pas de ça

#

impossible

quaint summit
cosmic plaza
#

Déjà c'est pas config.json c'est que .env

blissful hemlock
#

noon

#

montre pas ton config

quaint summit
cosmic plaza
quaint summit
#

biensure

blissful hemlock
#

ok tranquille

quaint summit
#
{
    "Token" : "xxxxxxxxxxxxxxxxxxx"
}
#

je suis con mais pas a ce point

cosmic plaza
#

Mais pas comme sa

#

bg

#

Faut tu laisse TOKEN=xxxxxxxxxxxxxxxxxxxxxxxx

#

Et c'est bon

#

pas bsoins d'autre choses

quaint summit
#

donc juste
Token = xxxx

blissful hemlock
#

j'ai réagi comme ça car il y a déjà un mec qui m'a montré son config.json entier et s'est fait raid son serveur Discord à cause des méchants qui lui ont pris le token

cosmic plaza
quaint summit
cosmic plaza
#

CLIENT_TOKEN=[YOUR_BOT_TOKEN]

#

Tien met sa

#

Mais d'abord crée un fichier qui s'appelle .env

#

et c'est la ou tu met sa

quaint summit
#

il y a une marche a suivre ?

cosmic plaza
#

Non tu crée un fichier

#

Et tu rennome .env

blissful hemlock
#

à quoi ça sert ?

#

perso j'ai mon token dans mon config, qu'est-ce que ça change ?

quaint summit
#

mais ducoup

#

je mes mon token ou dans la config.json ou dans le config.env

blissful hemlock
#

ton fichier doit s'appeler juste .env

cosmic plaza
#

Laisse tomber

#

regarde

#

Tu vois ton fichier

#

Config.js

blissful hemlock
#

json

cosmic plaza
#

ru écris : exports.TOKEN = "XXXXXXXXXXXXXXXXXXX"

#

et juste en bas tu écris exports.PREFIX = "?"

quaint summit
#

ok

cosmic plaza
#

Comme sa sa ressemble

quaint summit
#

yep

cosmic plaza
#

Avec le point virgules biensur

quaint summit
#

sur les deux ligne

cosmic plaza
#

Oui

quaint summit
#

OK

cosmic plaza
#

Ensuite

quaint summit
#

mais ducoup c'est du js pas du json on est d'accord

cosmic plaza
#

tu vois tout en haut

cosmic plaza
#

Tu vois tout en haut y'a les const require

#

tu écris

#

Et ensuite

quaint summit
#

donc ça donne ça

const { Client } = require("discord.js");
const client = new Client({intent: 1});
const { TOKEN, PREFIX } = require('./config');
cosmic plaza
#

Ensuite

#

Tu vois dans ton index

#

tu va tout en bas et

#

tu vois ou y'a ton token de base ?

#

en bas

#

tu écris

#

Et c'est bon normalement

quaint summit
#

ok je test

#

tjr pas

#
C:\Users\carfun\Desktop\Bot Discord GLua\index.js:7
    console.log("Bot Op");
           ^

SyntaxError: Unexpected token '.'
    at Object.compileFunction (node:vm:352:18)
    at wrapSafe (node:internal/modules/cjs/loader:1033:15)
    at Module._compile (node:internal/modules/cjs/loader:1069:27)
    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
[Finished in 98ms]
#
const { Client } = require("discord.js");
const client = new Client({intent: 1});
const { TOKEN, PREFIX } = require('./config');


client.once("ready", "" >= {
    console.log("Bot Op");
    client.user.setActivity("Je suis un test", {type : "PLAYING"})
});

client.login(TOKEN);
cosmic plaza
#

Tu vois

#

dans la page config.js

#

tu enleve

#

les deux guillemet

#

dans le token

quaint summit
#

j'ai peut-être oublie le mettre les string sur le token

#

c'est peut-être ça

cosmic plaza
#

enleve

#

Les guillemet sur le token

#

dans config.js

quaint summit
#

bas il y en a pas

cosmic plaza
#

exports.TOKEN = "XXXXXXXXXXXXXXXXXXX"

#

t'enleve les deux guillemet

#

tu les a enelever ?

lapis onyx
#

L’erreur parle pas de ça hein ^^

quaint summit
lapis onyx
#

Je vous invite à la relire

cosmic plaza
lapis onyx
quaint summit
blissful hemlock
#

d'ailleurs, j'ai pas tout pigé à ce que vous faites, vous avez fait un config en javascript ?

cosmic plaza
#

Mais normalement c'est en .env mais j'ai oublier

lapis onyx
blissful hemlock
#

le .env, j'en ai un tout petit peu entendu parler

#

j'ai pas totalement pigé comme ça marche

cosmic plaza
#

Tu l'a mis surement à l'envers

blissful hemlock
#

ah oui, bien vu

#

c'est ça

quaint summit
#

j'ai peut-être trop fait de lua

cosmic plaza
#

Glua

#

Non

blissful hemlock
cosmic plaza
#

?

blissful hemlock
#

les deux

quaint summit
#

j'ai changé mais j'ai tjr une erreur

blissful hemlock
#

la même ?

quaint summit
#
const { Client } = require("discord.js");
const client = new Client({intent: 1});
const { TOKEN, PREFIX } = require('./config');


client.once("ready", "" => {
    console.log("Bot Op");
    client.user.setActivity("Je suis un test", {type : "PLAYING"})
});

client.login(TOKEN);
C:\Users\carfun\Desktop\Bot Discord GLua\index.js:6
client.once("ready", "" => {
                     

SyntaxError: Malformed arrow function parameter list
    at Object.compileFunction (node:vm:352:18)
    at wrapSafe (node:internal/modules/cjs/loader:1033:15)
    at Module._compile (node:internal/modules/cjs/loader:1069:27)
    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
[Finished in 97ms]
lapis onyx
#

Ton arrow function est malformé

blissful hemlock
#

j'ai oublié comment ça marche mais, perso, l'entrée de mon ready ressemble à ça : client.on('ready', async () => {

#

ah mais oui !

lapis onyx
#

Le async est pas nécessaire dans son cas mais oui

blissful hemlock
#

oui, pardon, j'ai oublié de l'enlever

#

mais genre, les deux guillemets, essaies de les remplacer par des parenthèses

quaint summit
#

mais ducoup ?

blissful hemlock
#

t'as encore l'erreur ?

quaint summit
#

j'ai une autre

blissful hemlock
#

dis-moi ?

quaint summit
#
const { Client } = require("discord.js");
const client = new Client({intent: 1});
const { TOKEN, PREFIX } = require('./config');


client.on('ready', async () => {
    console.log("Bot Op");
    client.user.setActivity("Je suis un test", {type : "PLAYING"})
});

client.login(TOKEN);

C:\Users\carfun\Desktop\Bot Discord GLua\node_modules\discord.js\src\client\Client.js:548
      throw new TypeError('CLIENT_MISSING_INTENTS');
      ^

TypeError [CLIENT_MISSING_INTENTS]: Valid intents must be provided for the Client.
    at Client._validateOptions (C:\Users\carfun\Desktop\Bot Discord GLua\node_modules\discord.js\src\client\Client.js:548:13)
    at new Client (C:\Users\carfun\Desktop\Bot Discord GLua\node_modules\discord.js\src\client\Client.js:76:10)
    at Object.<anonymous> (C:\Users\carfun\Desktop\Bot Discord GLua\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 {
  [Symbol(code)]: 'CLIENT_MISSING_INTENTS'
}
[Finished in 617ms]
blissful hemlock
#

il te manque des intents

#

d'ailleurs, enlève le async, c'est pas utile, pour toi

quaint summit
#

mais ducoup je remplace par toi ?

blissful hemlock
#

enlève juste le async, laisse le reste

#

en gros, "Malformed arrow function parameter list", c'est parce que la flèche ne prenait pas les parenthèses qui correspondent à une fonction, je crois

#

et pour les intents

#

remplace ta deuxième ligne par ça :
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_PRESENCES] });
comme ça t'es sûr d'avoir toutes les intents et de ne jamais avoir de problème avec

quaint summit
#

comme ça

#
const { Client } = require("discord.js");
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_PRESENCES] });
const { TOKEN, PREFIX } = require('./config');


client.on('ready', () => {
    console.log("Bot Op");
    client.user.setActivity("Je suis un test", {type : "PLAYING"})
});

client.login(TOKEN);
blissful hemlock
#

yep

#

une erreur ?

quaint summit
#

encore

blissful hemlock
#

ah

quaint summit
#

on va les collectionner

blissful hemlock
oak turret
#
const { Client, Intents } = require("discord.js");
#

si tu le défine pas ça marchera jamais

quaint summit
#

C:\Users\carfun\Desktop\Bot Discord GLua\index.js:2
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_PRESENCES] });
^

ReferenceError: Intents is not defined
at Object.<anonymous> (C:\Users\carfun\Desktop\Bot Discord GLua\index.js:2:39)
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
[Finished in 522ms]

blissful hemlock
#

il l'a pas défini ?

#

ah non

quaint summit
oak turret
#

tu rajoutes juste intents

#

tu cut & paste ce que je t'ai donné

blissful hemlock
oak turret
#
const { Client, Intents } = require("discord.js");
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_PRESENCES] });
const { TOKEN, PREFIX } = require('./config');


client.on('ready', () => {
    console.log("Bot Op");
    client.user.setActivity("Je suis un test", {type : "PLAYING"})
});

client.login(TOKEN);
quaint summit
#

alors ça c'est déplacé de fichier

blissful hemlock
#

tu copie ça et CTRL + A et CTRL + V

oak turret
#

wtf?

blissful hemlock
#

?

oak turret
#

pas toi

blissful hemlock
quaint summit
#

maintnant c'est mon config

#

je vous montre

oak turret
#

ton config il est où

#

montre nous ton archi

#

c'est un json ?

blissful hemlock
#

d'ailleurs, ton config est vraiment en javascript ?

oak turret
#

si il est en json c'est normal que ça fonctionne pas

blissful hemlock
#

le json fonctionne avec le js, non ?

#

ou c'est juste un mythe ? harold

quaint summit
#
C:\Users\carfun\Desktop\Bot Discord GLua\config.js:1
exports.TOKEN = ChgziqgrqonfgqjgDGjbOGBFQDJGNQJFGQJGN;
                ^

ReferenceError: OTk4MjQ2NzU2NjQwODkwOTIy is not defined
    at Object.<anonymous> (C:\Users\carfun\Desktop\Bot Discord GLua\config.js:1:17)
    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 Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (C:\Users\carfun\Desktop\Bot Discord GLua\index.js:3:27)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
[Finished in 585ms]
oak turret
#

oui, mais il doit pas le require comme ça

#

normal

#

tu dois le mettre sous ""

#

c'est un string hein

#

mais tu te fais chier pour rien

quaint summit
oak turret
#

fais un json

#

c'est bien plus simple

blissful hemlock
#

yep, faut comme ça, ton token c'est une variable

quaint summit
oak turret
#

look je te montre

blissful hemlock
#

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

oak turret
#

config.json

{
"TOKEN": "TON TOKEN",
"PREFIX": "TON PREFIX"  
}

index.js

const { Client, Intents } = require("discord.js");
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_PRESENCES] });
const config  = require('./config.json');


client.on('ready', () => {
    console.log("Bot Op");
    client.user.setActivity("Je suis un test", {type : "PLAYING"})
});

client.login(config.TOKEN);
blissful hemlock
#

ouiiii

#

t'as pas besoin de mettre en Full Maj

oak turret
#

je reprends son exemple c'est tout

quaint summit
#

je fais ça et je vous dir

blissful hemlock
oak turret
#

:p

blissful hemlock
quaint summit
#

juste c'est quoi le préfix ?

#

et devinez j'ai encore une erreur

blissful hemlock
#

le préfixe c'est ce qu'on va devoir mettre devant la commande en question pour qu'elle s'active

blissful hemlock
quaint summit
#
C:\Users\carfun\Desktop\Bot Discord GLua\node_modules\discord.js\src\client\websocket\WebSocketManager.js:245
        throw new Error(WSCodes[error.code]);
              ^

Error [DISALLOWED_INTENTS]: Privileged intent provided is not enabled or whitelisted.
    at WebSocketManager.createShards (C:\Users\carfun\Desktop\Bot Discord GLua\node_modules\discord.js\src\client\websocket\WebSocketManager.js:245:15)
    at async Client.login (C:\Users\carfun\Desktop\Bot Discord GLua\node_modules\discord.js\src\client\Client.js:254:7) {
  [Symbol(code)]: 'DISALLOWED_INTENTS'
const { Client, Intents } = require("discord.js");
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_PRESENCES] });
const config  = require('./config.json');


client.on('ready', () => {
    console.log("Bot Op");
    client.user.setActivity("Je suis un test", {type : "PLAYING"})
});

client.login(config.Token);

{
"Token": "JBDJBNBQJFBNQPEBNQFB",
"Prefix": "?"  
}
blissful hemlock
#

cette fois-ci, faut que tu ailles dans Discord developer portal

quaint summit
#

ça change de d'habitude 😉

blissful hemlock
#

yep

quaint summit
#

je t'écoute qu'est-ce que je dois faire

blissful hemlock
#

tu vas dans Bot

#

une fois dedans, tu actives toutes les intents

#

si tu as encore un erreur, demande à quelqu'un d'autre car je vais manger harold

plush lava
#

Mdr moi mon config.json ne fonctionne pas 🙃

cosmic plaza
#

Y'a quelqu'un qui peut venir m'aider en 2 2

#

@oak turret Désoler de la mention

#

Mais est-ce que tu peut m'aider ?

#

@broken walrus

#

Tu peut m'aider et désoler de la mention

plush lava
cosmic plaza
#

C'est bon

#

Tu utilise Keyv

cosmic plaza
plush lava
#

nope

#

j'essaye déjà de régler ce problème de fichier

#

qui n'est pas trouvé

quaint summit
#

Hello j'ai de nouveau un probl

const { Events } = require("../Validation/EventNames");
const { promisify } = require("util");
const { glob } = require("glob");
const PG = promisify(glob);
const Ascii = require("ascii-table");


module.exports = async (client) => (
    const Table = new Ascii("Evennement Chargé");

    (await PG(`${process.cwd()}/Events/*/*.js`)).map(async (file) => {
        const event = require(file);
        if(!Events.includes(event.name) || !event.name) {
            const L = file.split("/");
            await Table.addRow(`${event.name || "MANQUANT"}`, `📛 Le nom de l'évènement est invalide ou manquant : ${L[6] + `/` + L[7]}`);
            return;
        }

        if(event.once) {
            client.once(event.name, (...args) => event.execute(...args, client));
        } else {
            client.on(event.name, (...args) => event.execute(...args, client));
        };

        await Table.addRow(event.name, ":white_check_mark: SUCCES")
    });

    console.log(Table.tostring());
)

C:\Users\carfun\Desktop\Bot Discord GLua\Handlers\Events.js:9
    const Table = new Ascii("Evennement Chargé");
    ^^^^^

SyntaxError: Unexpected token 'const'
    at Object.compileFunction (node:vm:352:18)
    at wrapSafe (node:internal/modules/cjs/loader:1033:15)
    at Module._compile (node:internal/modules/cjs/loader:1069:27)
    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 Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (C:\Users\carfun\Desktop\Bot Discord GLua\index.js:7:1)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
[Finished in 809ms]


#

Quelqu'un a une idée ?

lapis onyx
#

Juste avant la ligne indiqué

quaint summit
cosmic plaza
lapis onyx
quaint summit
cosmic plaza
#

En vite fait mon reuf

lapis onyx
cosmic plaza
#

Car tu va rien comprendre

#

tu peut passer

#

vocale

lapis onyx
#

Bah il va bien falloir car je ne peux pas voc

cosmic plaza
#

Ah

#

Bon ok

#

En gros

#

J'ai un selector

#

et 2 Modals

#

et en gros forms c'est la 1er modals et broken c'est le 2eme

lapis onyx
#

Je te le dis mtn , je ne suis pas dev discord JS

cosmic plaza
kind rain
#

help j'ai besoin d'aide mon bots ne ce lance pas et ça me met ça

#

qui peut m'aider

plush lava
# plush lava

Quelqu'un sait pourquoi mon config.json ne peut pas être trouvé alors que c'est bien le bon chemin d'accès ?

quaint summit
#

Les gars j'ai un probl (encore)

const { Events } = require("../Validation/EventNames");
const { promisify } = require("util");
const { glob } = require("glob");
const PG = promisify(glob);
const Ascii = require("ascii-table");


module.exports = async (client) => {
    const Table = new Ascii("Evennement Chargé");

    (await PG(`${process.cwd()}/Events/*/*.js`)).map(async (file) => {
        console.log("carfun1");
        const event = require(file);
        if(!Events.includes(event.name) || !event.name) {
            const L = file.split("/");
            await Table.addRow(`${event.name || "MANQUANT"}`, `Le nom de l'évènement est invalide ou manquant : ${L[6] + `/` + L[7]}`);
            return;
        }

        if(event.once) {
            client.once(event.name, (...args) => event.execute(...args, client));
        } else {
            client.on(event.name, (...args) => event.execute(...args, client));
        };

        await Table.addRow(event.name, "SUCCES")
    });
    console.log("TEST1");
    console.log(Table.toString());
    console.log("TEST2");
}

Il me sort un truc chelou

TEST1
.
||
|
'
TEST2

sans me print le carfun1

kind rain
#

qui peut me dire comment je resou ce probleme

blissful hemlock
quaint summit
blissful hemlock
#

qu'est-ce qui va pas ?

#

tu veux faire des commandes slash ?

quaint summit
#

j'ai l'impression d'être maudit

quaint summit
#

mais ça bug comme pas permis

blissful hemlock
# plush lava j'adore le nom du bot

de base, il s'appelait UltrArthy 2, il était sensé me servir à je sais plus quoi mais, comme je l'utilise plus, j'ai dis qu'il avait dit chocolatine et je l'ai renommé

blissful hemlock
quaint summit
blissful hemlock
#

comment ça ?

#

dans la console tu CTRL C

#

comme si tu voulais copier qqchose

#

mais tu sélectionne rien

blissful hemlock
quaint summit
blissful hemlock
#

tu code sur sublime text ?

#

ah je sais pourquoi

#

LUA ?

quaint summit
blissful hemlock
#

haa

quaint summit
#

j'ai juste l'habitude de mettre sublime

blissful hemlock
#

d'acc

#

oui, je comprend, les habitudes, ça reste

quaint summit
#

comme tu dit

blissful hemlock
#

d'ailleurs

quaint summit
#

voila il vien seulement de s'arrêter

blissful hemlock
#

ce que tu fais, c'est que tu le lance en "débogage", je connais plus trop bien la différence mais, perso, je préfère le lancer dans le terminal avec un node index.js

quaint summit
blissful hemlock
#

CTRL C dedans

#

sans rien sélectionner

quaint summit
blissful hemlock
#

bizarre

#

ahhh

#

genre, quand tu dis qu'il prend 15 ans à s'arrêter , c'est genre, le bot est hors-ligne au bout de 15 ans ?

quaint summit
#

yep

blissful hemlock
#

mais tkt, c'est juste Discord, c'est comme ça

quaint summit
#

ah ok

blissful hemlock
#

dès que tu l'arrête, il répond plus

quaint summit
#

dac mais ducoup il bug a moitier

blissful hemlock
#

en fait, c'est comme quand tu arrête d'écrire sans avoir envoyé ton message

blissful hemlock
#

en vrai, je suis trop fier, j'ai réussi à aider quelqu'un

quaint summit
#

je t'envoie ça

#
const { Events } = require("../Validation/EventNames");
const { promisify } = require("util");
const { glob } = require("glob");
const PG = promisify(glob);
const Ascii = require("ascii-table");


module.exports = async (client) => {
    const Table = new Ascii("Evennement Chargé");

    (await PG(`${process.cwd()}/Events/*/*.js`)).map(async (file) => {
        console.log("carfun1");
        const event = require(file);
        if(!Events.includes(event.name) || !event.name) {
            const L = file.split("/");
            await Table.addRow(`${event.name || "MANQUANT"}`, `Le nom de l'évènement est invalide ou manquant : ${L[6] + `/` + L[7]}`);
            return;
        }

        if(event.once) {
            client.once(event.name, (...args) => event.execute(...args, client));
        } else {
            client.on(event.name, (...args) => event.execute(...args, client));
        };

        await Table.addRow(event.name, "SUCCES")
    });
    console.log("TEST1");
    console.log(Table.toString());
    console.log("TEST2");
}

Il me sort un truc chelou

TEST1
.
||
|
'
TEST2

sans me print le carfun1

blissful hemlock
#

haa je sais

#

c'est les derniers console.log

#

par contre, je sais pas du tout ce qu'est le Table.toString()

#

ah, il y a écrit juste au dessus

#

j'ai jamais utilisé quelque chose qui s'appelle Table, désolé

#

et tu as raison, il manque ton console.log("carfun1");

quaint summit
#

enfaite j'ai l'impression que le await ne passe pas

blissful hemlock
#

¯_(ツ)_/¯

#

je t'avoue, aucune idée, déso

blissful hemlock
#
11 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
PS C:\Users\arthu\Desktop\Bot UltrArthy> npm fund
Bot UltrArthy
├── https://github.com/sindresorhus/is?sponsor=1    
│   └── @sindresorhus/is@4.6.0
├── https://github.com/sponsors/sindresorhus
│   └── pify@5.0.0, make-dir@3.1.0, p-map@4.0.0
├── https://github.com/sponsors/feross
│   └── buffer@5.7.1, base64-js@1.5.1, ieee754@1.2.1, safe-buffer@5.2.1
├── https://opencollective.com/ioredis
│   └── ioredis@5.2.1
└── https://github.com/sponsors/isaacs
    └── rimraf@3.0.2, glob@7.2.3```
#

je crois avoir compris que c'est eux qui gardent les infos, pas nous

quaint summit
blissful hemlock
#

c'est triste

blissful hemlock
quaint summit
blissful hemlock
#

ah

#

je vois

#

bien joué

#

quelqu'un a quelque chose pour envoyer un message avec un embed mais ... dans le même message

#

🤔 j'ai essayé le .setContent mais il ne marche pas, c'est pas une fonction

gentle zinc
#

Hey !! wavey
Pour éviter les spams, peut on faire en sorte de désactive un bouton pour le membre qui a interagi avec celui-ci mais qui reste actif pour ceux qui n'ont pas appuyé pepe_chock

queen ocean
#

Enfin

#

Il pourra tjs cliquer

#

mais après dans le code de ton bot tu peux détecter si il a déjà cliquer

#

et ne pas faire ce que ca devrais faire si il a déjà cliquer

gentle zinc
queen ocean
gentle zinc
#
const { MessageEmbed } = require('discord.js');

const welcome_phrases = [
    ":grill: <@{senderid}> dit : **Bienvenue !!!**",
    ":beer: <@{senderid}> dit : **Hey Salut !**"
]

module.exports = (client) => {
    client.on('interactionCreate', async interaction => {
        if(interaction.isButton()){
            
            if(interaction.customId.startsWith("welcome:")){
                const embed = new MessageEmbed()
                    .setColor('#3997C2')
                    .setDescription(welcome_phrases[Math.floor(Math.random() * welcome_phrases.length)].replace("{senderid}", interaction.member.id).replace("{joinerid}", interaction.customId.split(":")[1]));

                await interaction.deferUpdate();
                return await interaction.channel.send({ embeds: [embed] })
            }
            
        }
    });
};

Je suis débutant, je t'avouerai que je ne serais pas ou placer ma table ni comment :/
Je suppose que c'est ou je créé mon bouton (logiquement)

worn sequoia
#

Bonsoir, j'ai un soucis de script dans mon fichier HTML. Je souhaite envoyer une réponse de formulaire HTML sur discord via un webhook sous la forme d'un embed.

#

Voici le code, jusqu'ici tout fonctionne... Sauf que je souhaite également lui mettre un bouton en dessous et en ajoutant la partie de code permettant de le faire, plus rien ne fonctionne et mes réponses ne sont plus envoyés sur discord.

copper pagoda
#

Bonjour, j'utilise du mysql que j'ai mis sur mon vps. J'ai mis un charset en utf8mb4 avec un collate de utf8mb4_unicode_ci

et quand je mets des émojis dans la case avis ça passe pas du coup j'ai testé avec plein de truc même utf32, ce qui est bizarre c'est que pour ma note j'ai mis des émojis étoiles et ça marche. Mais rien ne marche je sais pas si vous pouvez m'aider.

https://cdn.discordapp.com/attachments/445278244539990026/998283322880966656/unknown.png
https://cdn.discordapp.com/attachments/445278244539990026/998283323300384818/unknown.png
https://cdn.discordapp.com/attachments/445278244539990026/998283323728216134/unknown.png

crystal steppe
#

Qui utilise electron.js

fierce plank
#
import { Message } from 'discord.js';
import BaseCommand from '../../utils/structures/BaseCommand';
import DiscordClient from '../../client/client';
import { getRepository, Repository } from 'typeorm';
import { GuildBanLog } from '../../typeorm/entities/GuildBanLog';
import { ModerationLog } from '../../typeorm/entities/ModerationLog';

export default class KickCommand extends BaseCommand {
  constructor(
    private readonly modLogRepository: Repository<ModerationLog> = getRepository(
      ModerationLog
    )
  ) {
    super('kick', 'mod', []);
  }

  async run(client: DiscordClient, message: Message, args: Array<string>) {
    console.log(args);
    const [memberId, ...rest] = args;
    const reason = rest.join(' ');
    try {
      const member = await message.guild?.members.fetch(memberId)!;
      await member.kick(reason);
      const guildKick = this.modLogRepository.create({
        guildId: message.guildId!,
        issuedBy: message.author.id,
        issuedOn: new Date(),
        type: 'kick',
        reason,
        memberId,
      });
      await this.modLogRepository.save(guildKick);
    } catch (err) {
      console.log(err);
    }
  }
}
#
[ '@daring night', 'test' ]
DiscordAPIError: Invalid Form Body
user_id: Value "@daring night" is not snowflake.
    at RequestHandler.execute (E:\Developpement\Client\Tess\TessBotMain\node_modules\discord.js\src\rest\RequestHandler.js:350:13)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async RequestHandler.push (E:\Developpement\Client\Tess\TessBotMain\node_modules\discord.js\src\rest\RequestHandler.js:51:14)
    at async GuildMemberManager._fetchSingle (E:\Developpement\Client\Tess\TessBotMain\node_modules\discord.js\src\managers\GuildMemberManager.js:407:18) {
  method: 'get',
  path: '/guilds/745692823034265721/members/@daring night',
  code: 50035,
  httpStatus: 400,
  requestData: { json: undefined, files: [] }
}
#

Bonsoir, j ai cette erreur lors du kick d'une personne sur mon bot si vous savez d'ou vient le probleme je prend car ca fait 20 minutes que je chercher et je ne trouve absoluement rien

copper pagoda
fierce plank
copper pagoda
#

Tu as récup ça @daring night et faut que tu récupères ça 365931197525655563.

fierce plank
#

mais apres je ne peut pas le kick

#

okay c est bon probleme regle merci

cosmic plaza
#

Aidez moi svp

broken walrus
cosmic plaza
#

J'ai besoin d'une explication

#

de comment faire

#

Pour ouvrir mes MODALS

#

Avec un sélecteur et j'y arrive pas

#

Tu pourrais m'aider ?

broken walrus
#

Qu'est-ce que t'appelles un sélecteur ?

#

Un bouton ?

cosmic plaza
#

Sa

broken walrus
#

?

cosmic plaza
broken walrus
#

Ah ok

cosmic plaza
#

En gros c'est sa

#

Et je veut ouvrir chaque option

#

Avec un autre MODALS

#

Et j'arrive pas

#

Et le code du sélecteur c'est comme sa

#

Tu peut passer vocale pour que sa soit plus simple ?

broken walrus
#

T'as un événement interactionCreate ?

blissful hemlock
#

comment on peux retarder une action ?
genre, dans le client.on 'ready', j'aimerais que ça enlève toutes les commandes puis que 2 secondes après, ça les remette

#

pour éviter les commandes en double et tout le tralala

oak turret
#

tu mets ton code, puis le reste (2 secondes après) tu le mets dans un setTimeout()

#
client.on("ready", function() {
  // ton code
  setTimeout(() => {
    // ton code 2 secondes après 
  }, 2000)
})
blissful hemlock
#

😮 d'acc

#

merci beaucoup

cosmic plaza
broken walrus
#

Pour intercepter l’événement quand tu cliques

cosmic plaza
#

Ah et genre je crée 2 fois

#

Un pour chaque option ?

broken walrus
#

Bah non, tu fais un évènement client.on("interactionCreate"… et tu vérifies si le customId de l’interaction correspond à celui du bouton

copper pagoda
#

Bonjour, j'utilise du mysql que j'ai mis sur mon vps. J'ai mis un charset en utf8mb4 avec un collate de utf8mb4_unicode_ci

et quand je mets des émojis dans la case avis ça passe pas du coup j'ai testé avec plein de truc même utf32, ce qui est bizarre c'est que pour ma note j'ai mis des émojis étoiles et ça marche. Mais rien ne marche je sais pas si vous pouvez m'aider.

https://cdn.discordapp.com/attachments/445278244539990026/998283322880966656/unknown.png
https://cdn.discordapp.com/attachments/445278244539990026/998283323300384818/unknown.png
https://cdn.discordapp.com/attachments/445278244539990026/998283323728216134/unknown.png

broken walrus
cosmic plaza
#

Je comprend rien

#

Regarde comme sa ?

broken walrus
#

T'es au courant que ton select menu tu l'as appelé "forms" et non pas "formsCreate" ou "formsBroken" ?

gentle zinc
#
npm WARN deprecated @discordjs/collection@0.4.0: no longer supported
npm WARN deprecated @discordjs/builders@0.11.0: no longer supported
npm WARN deprecated discord.js@13.6.0: no longer supported
#

C'est depuis la v14 ?

civic fractal
gentle zinc
civic fractal
#

npm i @discordjs/collection
npm i @discordjs/builders

#

& npm i discord.js@13.8.0

gentle zinc
#

Oui dsl ^^

#

Tu conseil la version 13.8.0 et non la 14 ?

civic fractal
#

Pas de soucis !

#

*13.8.0
Si tu télécharge la v14 il faut que t'update ton bot

gentle zinc
civic fractal
#

Nop

#

Il faut que t'update ton bot

gentle zinc
#

Tu fais ça comment stp ?

civic fractal
#

Après, si tu viens de commencer, ne le fait pas de suite

#

Tu as le temps avant que la v13 soit useless

gentle zinc
broken walrus
civic fractal
broken walrus
#

et fait gaffe à la typo, c'est @discordjs/builders, pas @discord/builders

civic fractal
#

Autant pour moi, j'avais complétement oublié

broken walrus
#

:p

glass cargo
#

Sinon, y’a le bon vieux npm update @civic fractal

civic fractal
#

npm i ça revient à la même chose que npm update

torn fog
#

Vive yarrrn

glass cargo
#

npm i prends la version qui est dans le package.json

torn fog
#

Et ui

#

Ça c'est pas faux

glass cargo
#

npm update = npm i MODULE@latest mais pour tous les modules

civic fractal
#

Oui, mais t'update quand même

glass cargo
#

Oui mais avec npm update, ça fait tout d’un coup

civic fractal
#

Ouaip

bitter belfry
#

bonjour y'a t'il quelqu'un qui me donner un coup de main sur mon projet en voc

#

je galere sur un truc

torn fog
bitter belfry
#

c'est un truc tout con

#

du coup

#

je peu like et dislike en meme temps

#

j'ai penser a un truc du genre

#

je sais pas quelle genre de condition je dois faire

torn fog
#

Bah tu met un boolean en like et en dislike

#

Tu met true sur le like si t'a like et donc tu vérifie que le boolean like est true or false quand tu clique sur le unlike

bitter belfry
#

j'ai 2 function 1 pour les like et 1 pour le dislike

#

mais je dois faire une verification dans la base de données

torn fog
#

Euh pas besoin

bitter belfry
#

pour le boolean je dois faire un new boolean

#

je sais pas si ca colle avec vuejs

torn fog
bitter belfry
#

je pense que j'ai pas reussi a comprendre

quaint summit
#

Hello quand j'execute une commande il me renvoie ça

#

mais je n'ai aucune erreur dans ma console

torn fog
#

Elle ne veut juste pas jouer au ping pong

quaint summit
#

je t'envoie mon code

#

Ping.js

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

module.exports = {
    name: "ping",
    description: "Donne le temps de réaction du bot",
    Permission: "ADMINISTRATOR",
    /**
     * 
     * @param {CommandInteraction} interaction 
     * @param {Client} client 
     */

    execute(interaction, client) {
        console.log("PING UTILISE")
        //interaction.reply({content: `Pong ! J'ai \`${client.ws.ping} de ping \``})
    }
}
civic fractal
#

Tu as mis des / donc forcément il n'y a pas de réponse

quaint summit
#

Commands.js :

const { Perms } = require("../Validation/permissions");
const { Client } = require("discord.js");
const { promisify } = require("util");
const { glob } = require("glob");
const Ascii = require("ascii-table");
const PG = promisify(glob);

/**
*

  • @param {Client} client
    */

module.exports = async (client) => {

// Permet de vérifié que toute les commandes sont bien valide //

const Table = new Ascii("Commandes chargées");

CommandsArray = [];

(await PG(`${process.cwd()}/Commands/*/*.js`)).map(async (file) => {
    const command = require(file);

    if(!command.name)
    return Table.addRow(file.split("/")[7], "⛔ - ERREUR", "Nom manquant.")

    if(!command.contect && !command.description)
    return Table.addRow(command.name, "⛔ - ERREUR", "Descripition manquante.")

    if(command.permission) {
        if(Perms.includes(command.permission))
        command.defaultPermission = false;
        else
        return Table.addRow(command.name, "⛔ - ERREUR", "Permission invalide.")
    }

    client.commands.set(command.name, command);
    CommandsArray.push(command);

    await Table.addRow(command.name, "✅ - SUCCES")
});

console.log(Table.toString());

// Permet de vérifier les permision //

client.on("ready", async() => {
    const MainGuild = await client.guilds.cache.get("985219375487385661"); // Id du serveur Glua Banque
    
    MainGuild.commands.set(CommandsArray).then(async (command) => {
        const Roles = (commandName) => {
            const cmdPerms = CommandsArray.find((c) => c.name === commandName).permission;
            if(!cmdPerms) return null;

            return MainGuild.roles.cache.filter((r) => r.permissions.has(cmdPerms));
        }
#

const fullPermissions = command.reduce((accumulator, r) => {
const roles = Roles(r.name);
if(!roles) return accumulator;

            const permissions = roles.reduce((a, r) => {
                return [...a, {id: r.id, type: "ROLE", permissions: true}]
            }, []);
            return [...accumulator, {id: r.id, permissions}];
        }, []);
    //    await MainGuild.commands.permissions.set({ fullPermissions }); // Erreur ici
    })
})

}

quaint summit
civic fractal
#

Non, tu dois retiré les slashs

#

ça permet de mettre en commentaire des choses

quaint summit
#

mais ducoup non

civic fractal
#

C'est bon ?

quaint summit
civic fractal
#

Tu as une erreur ?

quaint summit
#

non

civic fractal
#

ça ne répond toujours pas ?

quaint summit
civic fractal
#

Tu as redémarrer le bot?

quaint summit
civic fractal
#

Le fichier est sauvegardé ?

quaint summit
#

tjr

civic fractal
#

Tu utilises Visual Studio Code ?

quaint summit
#

yep

civic fractal
#

Relance le

quaint summit
civic fractal
#

Tu peux me faire un screen ?

quaint summit
#

de ?

civic fractal
#

VSC

quaint summit
civic fractal
#

Va dans ton fichier index.js puis tu fais F5

quaint summit
civic fractal
#

Maintenant essaye ta commande

quaint summit
#

j'ai même plus d'erreur discord

civic fractal
#

Tu n'a pas bien fais la slash commands

quaint summit
civic fractal
#

Je n'ai pas compris

quaint summit
#

c'est a dIRE ,

civic fractal
#

Tu n'a pas utilisé l'intégration

quaint summit
#

l'intégration ?

civic fractal
#

Oui entre guillemet

#

C'est ça l'intégration

quaint summit
civic fractal
#

Oui !

quaint summit
#

bas donc oui ducoup

civic fractal
#

ça marche ?

quaint summit
#

j'ai rien changé pour le moment

peak cedar
#

Salut help plz

#

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

#

une idée ?

gentle zinc
#
const { SlashCommandBuilder } = require('@discordjs/builders');
const { CommandInteraction } = require('discord.js');

module.exports = {
    data: new SlashCommandBuilder()
        .setName('ping')
        .setDescription('Envoi le nombre de ping du Bot'),
    /**
     * 
     * @param {CommandInteraction} interaction 
     */
    async execute(interaction) {
        await interaction.reply('Pong');

        const message = await interaction.fetchReply();

        return interaction.editReply(`Le message à mis ${message.createdTimestamp - interaction.createdTimestamp} ms.\nTon ping est de : ${interaction.client.ws.ping} ms.`)
    }

}

Vous avez une meilleur méthode plus simple pour écrire ce code ? Pour les module.exports ou celle-ci est bonne ?

civic ruin
#

Bonjour à tous et à toutes, je suis actuellement en train de suivre le cours de javascript sur openclassroom et je bloque sur un cours 'Définissez des méthodes d'instance et des propriétés' j'essai de faire l'exercice mais je bloque et même en regardant la solution je ne comprends pas tout

bitter belfry
#

j'approche a la fin de cette formation OC et je galere toujours avec le js

civic ruin
#

galère sans nom

gentle zinc
#

@civic ruin @bitter belfry On devrais faire un Discord ensemble car je suis dans le même cas,
J’apprends le JS pour pouvoir faire mes propres BOT pour mes serveurs 🙂

bitter belfry
#

je suis sur mon dernier projet bah je suis toujours autant a chier sur js

gentle zinc
bitter belfry
#

faire des fonction moi meme je galere

civic ruin
#

pareil je galère surtout sur la dernière parti écrivez du code propre et facile a maintenir

#

j'ai un ami qui m'aide mais il est brésilien donc il comprend pas trop le cours en français ^^ mais ok pour faire un discord mais je suis au brésil juqu'au 15 aout donc j'ai 5h de décallage

gentle zinc
civic ruin
#

lol

gentle zinc
# civic ruin lol

Si tu le veux je te laisse créer un Discord 🤷🏻‍♂️ ou on pourra s’entraider puis s’entraîner

bitter belfry
#

Bah apres moi perso je sais pas si jvais continuer a codet

#

Donc bon

peak cedar
peak cedar
civic fractal
#

wtf

#

Ah oui mais c'est normal

#

Réfléchie bien

peak cedar
#

j'ai réfléchi une heure dcp jsuis venu

#

mais y'a quoi ?

#

avec la maj ça nan ?

civic fractal
#

Nop

#

Il faut un event

peak cedar
#

oe bah en dessous j'ai du code

civic fractal
#

Il faut un event interactionCreate

peak cedar
civic fractal
#

Tu ne peux pas mettre ça dans le même fichier

peak cedar
#

mais avant je le faisais 🥲

civic fractal
#

Je ne crois pas que ça puisse marcher

glass cargo
# peak cedar

Si tu fais console.log(client), je suppose que t’as undefined nan ?

cosmic plaza
#

esque tu peut m'aider ?

peak cedar
#

tqt la meme

#

si tu trouve dit le moi

cosmic plaza
#

mais j'arrive juste pas à crée*

peak cedar
#

🥲

cosmic plaza
#

l'interraction

#

Toi ta arriver ?

peak cedar
#

bah tous marche si je met pas le code qui fait chier

#

le select menu est ok mais il fait rien dcp

cosmic plaza
peak cedar
#

yep

cosmic plaza
#

Montre ton code

civic fractal
peak cedar
peak cedar
#

y'a juste la je comprend pas pq ça marche pas

civic fractal
#

Autant pour moi alors, je pensais que non

peak cedar
#

mais dcp ta pas une idée pour moi ? 🥲

civic fractal
#

Aucun désolé

gentle zinc
#
const { MessageEmbed } = require('discord.js');

module.exports = {
    name: 'guildMemberAdd',
    once: false,
    execute(client, member) {
        const embedWelcome = new MessageEmbed()
                    .setColor('#1E90FF')
                    .setDescription("Une description ... ")
        
        
        member.guild.channels.get('998527290482896936').send(embedWelcome);
    },
};

Petite erreur mais je ne vois pas (c'est pour envoyer un embed lorsque qu'un membre arrive)

#
                              ^

TypeError: member.guild.channels.get is not a function```
civic fractal
#

Il manque .cache

gentle zinc
civic fractal
#

C'est normal !

#

En v13, on ne send plus les embeds comme tu l'a fais

#

Il faut faire ({ embeds: [EMBED_NAME] })

gentle zinc
civic fractal
#

Pas de soucis ! 😉

#

Si tu as encore des soucis, n'hésite pas !

barren fractal
#

Bonsoir tout le monde ! Je suis face à un problème, en gros je suis en pleine création d'un système d'exploitation pour m'entrainer au BackEnd mais là je suis bloqué, en gros pour les fenêtres, en gros je voudrais que seulement le banner de la page qui s'ouvre puissent être drag&drop et que la page entière suive la banner, une idée de comment je pourrais faire ? C'est du JQuery

#

Quand j'indique Brave banner il n'y a qu'elle qui bouge

#

Et quand j'indique .brave en entier, je peux drag&drop toute la page :/

gentle zinc
#

discordjs Seriez vous pourquoi sur mon embed pour mettre la date de join de la personne j'ai :
<t:165854244125..:d> au lieu de la date en format DD/MM/YY

#
context.fillText(member.displayName, canvas.width / 2.5, canvas.height / 1.8);
context.fillText(`<t:${parseInt(member.joinedTimestamp / 1000)}:d> `, canvas.width / 2.1, canvas.height / 1.5);
oak turret
#

car je crois que la fonction fillText supporte pas la conversion

#

essaie avec momentjs pour voir mais pas sûr

gentle zinc
oak turret
#

oui

gentle zinc
#
const date_arrivee = new Date(timestamp).toLocaleDateString('fr-FR', options)

Je ne peux pas encore essayer je ne suis pas sur le PC mais logiquement ça aussi ça devrais fonctionner 🤷🏻‍♂️ qu’en penses tu ?

#

Puis ${date_arrivee}

#

Dans le canvas

#

(fillText)

glass cargo
glass cargo
peak cedar
#

😭

gentle zinc
#

A votre connaissance, impossible de mettre une image animé dans un canvas? En format .apng

graceful spruce
#

Pourquoi ce message s'affiche alors que avant non

gentle zinc
#
        context.font = '60px sans-serif'

        context.fillStyle = '#000000';

        let timestamp = new Date().getTime();
        const dateArrivee = new Date(timestamp).toLocaleDateString('fr-FR', options)

        context.fillText(member.displayName, canvas.width / 2.5, canvas.height / 1.8);
        context.fillText(`${dateArrivee}`, canvas.width / 2.1, canvas.height / 1.5);

Hello j'aimerai mettre sur mon canvas, la date d'arrivé d'un member en fillText
Mais je ne sais pas si comme ça, ça pourrais fonctionner ...
Ils me disent que "timestamp" n'est pas défini correctement

#

ERROR :

                                     ^

ReferenceError: timestamp is not defined
#

( c'est pour un bot Discord )

past nimbus
#

Est-ce que tu l'as définis...?

idle ice
gentle zinc
past nimbus
idle ice
past nimbus
#

Il faut lire l'erreur bonhomme :c

gentle zinc
#
const dateHours = new Date(member.joinedTimestamp).toLocaleString('fr-FR', { timeZone: 'UTC' });```

Une idée pour mettre notre heure à nous ? ( UTC + 2 )
civic fractal
glass cargo
#

Dans ta commande

#

Tant que client est pas undefined, c’est pas grave

civic fractal
#

Ok ! Merci de l'info

glass cargo
red torrent
stiff bloom
#

Bonjour, je souhaiterais savoir si quelqu'un à déjà utiliser le paquet spotify-api.js , je travaille dessus mais je n'arrive pas à récuperer une donnée précise et je ne trouve rien sur Internet, donc je me retourne vers vous

#

J'essaye d'obtenir des infos grace a la fonction getTopTracks(), voici code : ```js
const getTopMusics = async () => {

// console.log(await spotify.client.user);
const res = await spotify.client.user.getTopTracks({
timeRange: "Medium",
limit: 5,
offset: 5,
});
console.log("top tracks", res);
return res;

};

// router getTopMusics
app.get("/top", async (req, res) =>
res.json({
data: await getTopMusics(),
})
);

#

et voici mon msg d'erreur

copper pagoda
# stiff bloom

Ton erreur dit que user est undefined donc tu as du faire une erreur dans l'utilisation du module.

stiff bloom
#

j'ai regarde dans les modules et on me propose ca

const user = new UserClient(client);
#

est ce que le pb vient de la

#

c'est plutot a moi de l'ajouter dans mon code ?

copper pagoda
#

Si tu fais comme ça ça changera rien car il récupèrera toujours user dans client.

#

Mais par contre j'ai pas trouvé la fonction getTopTracks dans la doc du package.

#

Dans client tu as users essaye de rajouter le s.

#

Mais je vois pas la fonction c'est bizarre.

stiff bloom
#
<ref *1> Client {
  version: 'v1',
  onRefresh: [Function: NOOP],
  retryOnRateLimit: true,
  cacheSettings: {},
  auth: AuthManager {
    token: 'xxxxxxxxxxxxxxxxxxxxxxxxx'
  },
  users: UserManager { client: [Circular *1] },
  artists: ArtistManager { client: [Circular *1] },
  browse: BrowseManager { client: [Circular *1] },
  albums: AlbumManager { client: [Circular *1] },
  episodes: EpisodeManager { client: [Circular *1] },
  playlists: PlaylistManager { client: [Circular *1] },
  shows: ShowManager { client: [Circular *1] },
  tracks: TrackManager { client: [Circular *1] },
  refreshMeta: {
    clientID: '65c4d44d8069ccccccccccccccccccc8caed35f08',
    clientSecret: 'b291dc5fb4xxxxxxxxxxxxxxxxxfa0827cb',
    scope: 'ReadTopArtistsAndUsers'
  },
  token: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
}
#

alors j'ai fait un console.log de spotify.client et j'obtiens ceci

copper pagoda
#

tu as users du coup comme je t'ai dit

#

mais après tu n'as pas le chemin de ta fonction donc ça te mettra que ce n'est pas une fonction.

stiff bloom
#

et lorsque je fais un log de spotify.client.users j'ai ceci :

<ref *1> UserManager {
  client: <ref *2> Client {
    version: 'v1',
    onRefresh: [Function: NOOP],
    retryOnRateLimit: true,
    cacheSettings: {},
    auth: AuthManager {
      token: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    },
    users: [Circular *1],
    artists: ArtistManager { client: [Circular *2] },
    browse: BrowseManager { client: [Circular *2] },
    albums: AlbumManager { client: [Circular *2] },
    episodes: EpisodeManager { client: [Circular *2] },
    playlists: PlaylistManager { client: [Circular *2] },
    shows: ShowManager { client: [Circular *2] },
    tracks: TrackManager { client: [Circular *2] },
    refreshMeta: {
      clientID: '65c4d44d8xxxxxxxxxxxxxxxxxxxx3a8caed35f08',
      clientSecret: 'b291dxxxxxxxxxxxxxxxxxx24f0fa0827cb',
      scope: 'ReadTopArtistsAndUsers'
    },
    token: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
  }
}
copper pagoda
#

oki.

#

Tu as console.log avec le await devant client.users ?

stiff bloom
#

yes

copper pagoda
#

oki.

stiff bloom
#

mais c bizarre car dans la doc du package il ya rien mais dans les modules on voit la fonction getTopTracks

copper pagoda
#

Elle sert peut être pour une autre fonction.

#

Mais tu veux faire quoi exactement ?

stiff bloom
#

je suis en train de faire un projet avec ce package qui fait appel a l'api de Spotify

#

et je souhaite reproduire un site de stats Spotify, donc je veux récuperer les datas pour afficher les artistes et les musiques que l'on ecoute le plus

copper pagoda
#

Oki.

#

A mon avis il faudra pas passer par users.

stiff bloom
#

concernant les autocompletion lorsque je tape spotify.client.user. on me propose getTopTracks mais pas lorsque je tape users

copper pagoda
#

Je crois que je suis passé à côté du user.

#

Mais juste avec le user tu récupères les sons les mieux pour l'utilisateur.

stiff bloom
#

c'est pas les sons les mieux pour le user, mais plus les sons que l'user a le plus ecouter

copper pagoda
#

Oui enfin c'est les meilleurs pour lui quoi.

stiff bloom
#

yes

copper pagoda
#

Du coup c'est bizarre que user soit undefined il faut surement le définir dans client.

pulsar kite
#

Salut, j'essaie de compter les voyelles avec includes mais doit y avoir un truc que je fais mal...

#
function compterVoyelle()
{
  //init
  let nbVoyelles=0;
  // les voyelles sont :
  const voyelles=["a", "e", "i", "o", "u", "y"];
  // Entrée des données
  const phrase = "ceci est ma phrase";
  // On sépare les caratères dans un tableau
  let lettres = phrase.split('');
  console.log(lettres)
  console.log("Nb de caracteres :"+phrase.length)
  // Boucle Pour pour v
  for (lettres=0; lettres<phrase.length; lettres++) {
    if (voyelles.includes(lettres))
      {
      nbVoyelles++
      console.log(nbVoyelles)
      }  
  }
}```
copper pagoda
# pulsar kite ```js function compterVoyelle() { //init let nbVoyelles=0; // les voyelles...

Essaye de faire comme ça :

function compterVoyelle()
{
  //init
  let nbVoyelles=0;
  // les voyelles sont :
  const voyelles=["a", "e", "i", "o", "u", "y"];
  // Entrée des données
  const phrase = "ceci est ma phrase";
  // On sépare les caratères dans un tableau
  let lettres = phrase.split('');
  console.log(lettres)
  console.log("Nb de caracteres :"+phrase.length)
  // Boucle Pour pour v
  for (var i = 0; lettres<phrase.length; i++) {
    if (voyelles.includes(lettres))
      {
      nbVoyelles++
      console.log(nbVoyelles)
      }  
  }
}
stiff bloom
pulsar kite
lone flax
#

Hello, je cherche à savoir à quoi sert object!.key et quelle est la différence avec object.key, mais impossible de trouver un sujet à propos de ça sur Google de mon côté. Quelqu'un saurait m'aider ?

Edit: J'ai trouvé (https://stackoverflow.com/questions/38874928/operator-in-typescript-after-object-method)

pulsar kite
#

super merci bcp

lone flax
#

Bon comme ceci en gros

#

Et tu mets le code au milieu

pulsar kite
#

tu gères

lone flax
#

Pas de souci

glass cargo
stiff bloom
#

@copper pagoda Excuse moi de te déranger encore une fois mais vu que user est undefined, tu mettrais quoi dans cette var pour que ca fonctionne ?

copper pagoda
stiff bloom
#

je suis en train de regarder avec mon formateur, mais il galere pas mal aussi

barren fractal
#

Bonjour à tous ! J'aimerais que le contenu de mon input aille dans de 'data' de mon object, une idée ? ^^

stiff bloom
#

@torn fogJte jure ca fait 6 jours que je suis dessus, j'ai jamais autant galerer, et lui qui possede bcp plus de connaissances que moi en à marre au bout d'une heure

torn fog
copper pagoda
#

Salut, j'aurai besoin d'aide vite fait en discord.js v14 je fais un discord-html-transcript pour les tickets et j'ai un problème j'ai utilisé AttachmentBuilder mais le problème c'est qu'il me sort un image au lieu d'un fichier html, j'ai du louper quelques choses dans le paramètres de l'Attachment.

#

Réglé j'avais juste à mettre

return new userDiscord.AttachmentBuilder(Buffer.from(serialized), {name: opts.fileName ?? 'transcript.html'});
gentle zinc
#

Bonjour,
Vous savez comment ajouter une font personnalisé sur un canvas ?

red torrent
lone flax
#

Ouais mais flemme plus facile de screen lul

copper pagoda
gentle zinc
gentle zinc
#

Si quelqu'un a déjà utiliser timeZone
Pouvez vous me dire comment mettre à l'heure de chez nous ?
UTC + 2 ou UTC+2 ne sont pas valide :/

const dateHours = new Date(member.joinedTimestamp).toLocaleString('fr-FR', { timeZone: 'UTC' });
gentle zinc
copper pagoda
#

Perso moi ça m'a retourné ça : "20/07/2022, 21:18:21"

gentle zinc
#

Merci beaucoup !

snow apex
#

yo !!

#

j'ai une grosse chaine de caractère avec des "{color : #FFFF00}" dedans. comment j'peux les enlever ?

#

y'as aussi des "{date:1658102400,D,L}" mais dans ce cas là j'veux pas le supprimer mais le remplacer, possible aussi?

copper pagoda
gentle zinc
#

Invite Trackers [Message de Bienvenue]

timid loom
# stiff bloom J'essaye d'obtenir des infos grace a la fonction getTopTracks(), voici code : ``...

à priori en suivant strictement la doc ça doit ressembler à ça :

const Spotify = require('spotify-api.js')
const client = new Spotify.Client({ token: 'token' })

const fetchTopTracks = async () => {
  const tracks = client.user.getTopTracks({
    limit: 5,
    offset: 5,
    timeRange: 'medium_term',
  })

  console.log('top tracks: ', tracks)
  return tracks
}

après tu utilise fetchTopTracks() avec await... ce que tu sembles avoir fait.
Essaie de repartir de ce que j'ai écrit au-dessus, ptet que tu as mal écrit un truc (pour ma part j'ai copié collé les propriétés et les fonctions pour être sûr)

grand latch
#

Planning automatisé

lone flax
#

Yop, je me suis mis au Typescript aujourd'hui (grand adepte du Javascript mais j'essaye de changer pour la bonne cause), j'ai pas spécialement de mal avec le principe des types mais j'ai une question.

Avant, pour du discord.js, je pouvais par exemple assigner mon objet configuration à mon client pour pouvoir l'utiliser plus tard sans pour autant devoir le require à chaque fois.

Donc, je faisais simplement dans mon fichier index : client.config = require("./config.json"), pas de souci.

Maintenant en Typescript, je ne peux pas le faire car le champ "config" n'existe pas sur la classe client. Je me rend compte que c'est mon premier obstacle en TS et je ne sais pas comment le résoudre.

Suis-je obligé de créer une nouvelle classe qui Extend celle du client pour juste rajouter un champ, où il y a un autre moyen ? Merci.

gentle zinc
#

Bonjour, j'ai un petit soucis assez dérangeant,
J'ai fais en sorte de séparer la date d'arrivé du membre sur un serveur en Jour, Mois, Année en format DD/MM/YYYY (pour un projet)
Seul soucis c'est qu'au lieu de 07 pour le mois de Juillet (logique) j'ai juste 7 ce qui donne 21/7/2022
Comment faire en sorte d'avoir obligatoirement les deux chiffres dans le mois pour bien avoir 07.
Merci à vous 🙂

        let options = { day: 'numeric' };
        const dateArriveeDay = new Date(member.joinedTimestamp).toLocaleDateString('fr-FR', options)

        // Remplit réellement le texte avec la couleur choisi sur le nom du membre (member.displayName)
        context.fillText(dateArriveeDay, 1304.6453, 434.6543);

        options = { month: 'numeric' };
        const dateArriveeMonth = new Date(member.joinedTimestamp).toLocaleDateString('fr-FR', options)
        context.fillText(dateArriveeMonth, 1460.0453, 434.6543);

        options = { year: 'numeric' };
        const dateArriveeYear = new Date(member.joinedTimestamp).toLocaleDateString('fr-FR', options)
        context.fillText(dateArriveeYear, 1609.0706, 434.6543);
copper pagoda
gentle zinc
copper pagoda
#

ça sera juste plus un int mais un string après tu peux le convertir.

gentle zinc
#

7 au lieu de 07

copper pagoda
#

Par contre il me semble que ça fait pareil pour les jours.

gentle zinc
#

Quoi que le jour si on est le 01

#

oui voila ^^

copper pagoda
#

Ouais.

gentle zinc
copper pagoda
gentle zinc
#

Merci beaucoup

copper pagoda
#

De rien.

#

Et si tu veux pas de sinon tu peux mettre de ??, si ça respecte pas la condition ça retournera false automatiquement.

gentle zinc
copper pagoda
#

Je pense que si tu en mets un pour le nombre et un autre pour le membre ça devrait être bon.

gentle zinc
#

Sans le :

copper pagoda
#

Si c'est supérieur ou égal à 10 ça retournera false.

gentle zinc
copper pagoda
#

Je pense pas que ça marche.

gentle zinc
#

Je cherche comment je pourrais les séparer en couleur

#

je voulais les separer en 2 variable puis faire :

context.fillText(`${member.guild.memberCount} + ${TextMembres}`, 1326.7573, 931.0225);```
copper pagoda
#

Enfin moi je pense que c'est suffisant juste de mettre la couleur juste avant que tu définisses la date et tu refais pareil mais avec l'autre couleur pour le membre.

gentle zinc
copper pagoda
#

Oki j'essaye de regarder voir.

gentle zinc
copper pagoda
#

J'ai trouvé un truc du coup un gars fait un for i et ce sert d'un array avec la couleur et l'autre avec le texte et si i == 0 alors il prend la première couleur pour le premier texte et enfin si i == 1 alors il prend la deuxième.

gentle zinc
#

WOW ! j'ai jamais fais encore les array et les for i
Je débute juste ^^ pour ça que je m'exerce a faire des messages de bienvenue etc.. pour que ça m'apprenne petit à petit tu sais

#

Mais si jamais tu peux montrer l'exemple pour voir comment ça marche je ne dis pas non

copper pagoda
gentle zinc
#

Oui voila mais par exemple la ça serais de changer par exemple Pepito en noir et le chien ... en blanc par exemple sur une même ligne

gentle zinc
#

Oui voila ^^

copper pagoda
#

Faudrait que tu fasses 2 fillText différent.

gentle zinc
# copper pagoda Faudrait que tu fasses 2 fillText différent.

Car je t'explique quand tu regardes cette ligne :

context.fillText(`${member.guild.memberCount} membres`, 1326.7573, 931.0225);```
Je veux mettre le nombre de membre sur mon discord et à côté du mot **membres** car si je fais 2 fillText différents alors si jamais le serveur Discord à 400 membres ça pourrais faire ça :
copper pagoda
#

Ouais je vois.

gentle zinc
#

Tu sais c'était pour éviter d'avoir ce probleme, faire en sortes qu'il y ai toujours un espace entre les 2 oui

copper pagoda
#

Faudrait soit faire en sorte que ça ne se touche jamais ou sinon tu fais en fonction si c'est supérieur à 100 et inférieur à 1000 que le nombre se recule de X pixel.

gentle zinc
#

Ah le fait que ça recule en pixel serais pas mal oui !

#

genre que ça bouge en X quoi mais pas en Y

copper pagoda
gentle zinc
#

avec le fameux if du coup ?

copper pagoda
#

Oui.

stable lark
#

vous avez des conseils ou des liens/astuces pour apprendre le javascript ?

red torrent
stiff bloom
#

@timid loom Je vais essayer ca, merci d'avoir check et d'avoir pris le temps, je reviens vous voir si j'ai besoin d'aide, je vais reessayer de refaire mon architecture et je vais reprendre ton code

timid loom
stiff bloom
#

bah le probleme provient du manque de user dans client, donc je pense que je dois avoir aussi la gestion du oauth

timid loom
#

Ah mais si tu l'as pas fait c'est 100% ça hein

#

Il faut que tu mette les bons scopes et que tu suive les exemples de la doc de l'api Spotify (je crois pas que la lib explique comme avoir un user)

stiff bloom
#

mais j'utilise pas l'api Spotify, c'est le package qui le fait

timid loom
#

Oui mais même

#

Je crois qu'il faut un token ou un code je sais plus et c'est un truc que t'obtiens seulement en ayant un user qui s'est connecté et a autorisé l'appli

#

Sinon t'as pas toutes les autorisations

stiff bloom
#

ouais tu obtiens le token grace a un id et un id_secret, mais je pense qu'il me manque l'autorisation generale

timid loom
stiff bloom
#

pourtant j'ai reussi a obtenir des infos sur moi(grace a mon id spotify)

smoky cape
timid loom
#

Ouais mais t'as pas fait de connexion oauth d'après ce que tu me dis

smoky cape
stiff bloom
#

bah c'est que je me suis que je n'en avait pas forcement besoin des mtn

#

mais au final je pense reprendre de zero (presque) au bout d'une semaine de taff et de galere, pour bien gerer la gestion du oauth et puis je verrais bien ce que ca donne

timid loom
#

Sisi pour obtenir des infos comme ça t'es obligé
C'est pareil pour obtenir plein d'autres infos

stiff bloom
#

bah j'avais essaye aussi d'obtenir la musique que j'ecoute en ce moment et ca ne marchait pas et je pense que c du au scope et a l'oauth

timid loom
#

Yep totalement

stiff bloom
#

bah j'avais fait ca au debut et ct pas ouf donc j'ai repris ma base et au final je pense que ct pas si mal que ca 😢

timid loom
stiff bloom
#

Ouais je sais et j'avais pris l'Authorization Code Flow

timid loom
#

OK bah écoute le te laisse continuer de chercher alors, bonne chance

stiff bloom
#

Et bah merci bien

#

Je vais tenter de reussir cette fois ci et je partagerai les problemes et les solutions

gentle zinc
red torrent
#

ou sinon tu peux faire member.guild.memberCount.toString()

#

et pour obtenir le nombre de caractère tu fais soit `${member.guild.memberCount}`.length ou member.guild.memberCount.toString().length

gentle zinc
red torrent
gentle zinc
red torrent
#

donc tu as juste à utiliser le nombre de caractère pour multiplier par l'espace d'un caractère dans ton canvas

gentle zinc
# copper pagoda Oui.

Alors je ne sais pas si j'ai le droit d'écrire ceci comme ça :

        options = { month: 'numeric' };
        const month = new Date(member.joinedTimestamp).toLocaleDateString('fr-FR', options);
        const dateArriveeMonth = month < 10 ? `0${month}` : month;
        context.fillText(dateArriveeMonth, 1460.0453, 434.6543);

        options = { year: 'numeric' };
        const dateArriveeYear = new Date(member.joinedTimestamp).toLocaleDateString('fr-FR', options)
        context.fillText(dateArriveeYear, 1609.0706, 434.6543);

        if (member.guild.memberCount > 10) {
            context.fillText(`${member.guild.memberCount}`, 1326.7573, 931.0225);
        } else if (member.guild.memberCount > 100 ) {
            context.fillText(`${member.guild.memberCount}`, 1323.6525, 931.0225);
        }
copper pagoda
#

Ah j'aurai pas fait comme ça perso.

red torrent
gentle zinc
red torrent
#

le nombre de caractère tu dois l'utiliser pour positionner ton texte

#

tu dois utiliser ce nombre 1326.7573

copper pagoda
#

Ce que j'aurai fait c'est comme ça :

const count = member.guild.memberCount
let x = count < 10 ? 1326.7573 : count < 100 ? 1326.7573 : count < 1000 ? 1323.6525 : 1323.5525;
// En gros ici si count est inférieur à 10 alors x = 1326.7573 sinon si count < 100 alors x = 1326.7573 sinon si count est inférieur à 1000 alors x = 1323.6525 sinon 1323.5525
red torrent
#

en gros d'après la soustraction de tes deux conditions un caractère correspond à 3.1048

red torrent
copper pagoda
#

C'est juste rajouter count < 1000.

red torrent
#
context.fillText(`${member.guild.memberCount}`, 1326.7573 - (`${member.guild.memberCount}`.length * 3.1048), 931.0225);
copper pagoda
red torrent
gentle zinc
red torrent
copper pagoda
#

Ouais c'est vrai la méthode de Eno et plus efficace en soit.

red torrent
#

c'est justement pour ça qu'il fallait récupérer le nombre de caractère

#

au moins peu importe le nombre de membres ça fonctionnera

gentle zinc
#

En fait l'espace c'est entre le texte et la limite droit du canvas ?

red torrent
#

vu qu'en fonction du nombre de membre c'est cette valeur que tu changes

gentle zinc
#

comment tu as eu 3.1048 justement ?

red torrent
#

1326.7573 - 1323.6525

copper pagoda
#

Ouais c'est par rapport au valeur que tu avais donné avant.

red torrent
#

oui voilà

gentle zinc
#

ah oui puisque l'espace entre les chiffres resteront les mêmes

copper pagoda
#

Après le truc qui se pose c'est que si c'est le nombre de membre est inférieur à 10 ça va reculer de 3.1048.

gentle zinc
#

ok je vois c'est bon d'accord 🙂

gentle zinc
#

Vous savez ce qui peut bloquer ?

        const newInvites = await member.guild.fetchInvites()
        const oldInvites = invites.get(member.guild.id) ;
        const invite = newInvites.find(i => i.uses > oldInvites.get(i.code)) ;
        const inviter = await client.users.fetch(invite.inviter.id) ;

        context.fillText(`${invite.inviter}`, canvas.width / 3.8, canvas.height / 1.3);
const newInvites = await member.guild.fetchInvites()
                                              ^

TypeError: member.guild.fetchInvites is not a function
red torrent
#

ça dépend peut-être de quelle version de discord.js tu utilises

gentle zinc
#

j'ai mis invites.fetch() qui elle est en v13

gentle zinc
#

car je sépare mes events dans les dossiers
./events/guild_invites/inviteCreate.js
./events/guild_invites/inviteDelete.js
./events/guild_members/guildMemberAdd.js

red torrent
#

Discord avait parlé d'un moyen de récupérer l'inviteur d'un membre quand quelqu'un rejoint mais je sais pas si ça a été mit en place

gentle zinc
#
                                   ^
TypeError: Cannot read properties of undefined (reading 'get')```
vestal copper
#

jais un petit probleme qui peux maidee svp merci

copper pagoda
vestal copper
#

v13

copper pagoda
#

Fait voir ton code.

vestal copper
#

const { Client, Intents } = require('discord.js');
client = new Client({ intents: [Intents.FLAGS.GUILDS] });

client.on('ready', () => {
console.log(Logged in as ${client.user.tag}!);
});

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

if (interaction.commandName === 'ping') {
await interaction.reply('Pong!');
}
});

client.login('il a mon token');

copper pagoda
#

t'es vraiment sur que c'est la V13 là ? car c'est sensé marcher.

vestal copper
#

oui

copper pagoda
#

Nan mais ça c'est sur la doc.

#

Regarde dans ton package.json.

vestal copper
#

a non

copper pagoda
#

Tu es en quelle version du coup ?

vestal copper
copper pagoda
#

En V14 oki.

#

Tu dois mettre GatewayIntentBits à la place de Intents et ensuite pour remplacer GUILDS tu mets Guilds

vestal copper
copper pagoda
#

Du coup il est préférable que sur la doc de discord.js tu regardes pour la V14 après si tu veux repasser en V13. tu peux remplacer dans package.json ^14.0.3 par ^13.9.0 et ensuite tu fais npm i.

#

Ah non pas celui -ci l'autre devant FLAGS

#

Comme ça :

intents: [
    GatewayIntentBits.Guilds
]
vestal copper
copper pagoda
#

Tu as fait npm i ?

vestal copper
copper pagoda
#

Dans ta console.

#

J'veux pas être méchant ou quoi mais tu c'est gérer la console.

vestal copper
#

oui

copper pagoda
#

Oki du coup faut faire npm i dans ta console.

vestal copper
copper pagoda
#

Et puis après tu seras en V13 normalement.

#

Nickel alors.

vestal copper
#

merci

copper pagoda
#

De rien 😉

#

Bonne continuation

vestal copper
#

merci a toi aussi

gentle zinc
gentle zinc
# copper pagoda ça à l'air ouais.

Bah mince car j'ai tout bien suivi mais j'ai ce message quand un joueur joint :

                                   ^
TypeError: Cannot read properties of undefined (reading 'get')```
copper pagoda
#

Ah ouais mais lui doit avoir tous mis dans index.js

#

Tu as créé la collection dans ton index.js ?

#

Car invites représente la collection donc le mieux et c'est ce que je fais perso c'est quand je crée une collection je fais

bot.invites = new Collection();
#

Et comme j'exporte la valeur bot j'ai juste à récup dans mon fichier en mettant bot.invites.

gentle zinc
#

Ceci je l'ai mis dans index.js :

const invites = new Collection();
client.guilds.cache.forEach(async (guild) => {
    const firstInvites = await guild.invites.fetch();
    invites.set(guild.id, new Collection(firstInvites.map((invite) => [invite.code, invite.uses])));
  });
});
#

Le reste j'ai mis dans mes dossiers d'events avec module.exports

#

exemple ça dans events/inviteCreate.js :

module.exports = {
  name: 'inviteCreate',
  once: false,
  exute(client, invite) => {
  invites.get(invite.guild.id).set(invite.code, invite.uses);
};
copper pagoda
#

J'sais pas si tu comprends en gros dans tes fichiers events tu fais const invites = require("chemin de ton index.js');

naive ivy
#

bonjour ! je débute en javascript

#

visual studio code ne reconnaît pas le constructeur MessageActionRow()

#

savez-vous ce que je dois faire please ?

copper pagoda
#

Tu as définis Discord ?

#

Et tu es surement en V14 essaye ActionRowBuidlder

naive ivy
naive ivy
keen narwhal
#

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

#

et remplace Discord.Client par Client

naive ivy
#

mais merci

keen narwhal
copper pagoda
keen narwhal
#

ah il est en v14

#

x)

naive ivy
#

c chiant tous les tutos sont en v13 mdr

keen narwhal
#

y'a très peu de modifs

copper pagoda
keen narwhal
keen narwhal
naive ivy
#

merce

#

c'est bon ça marche mais par contre j'ai pas le .setCustomId()

gentle zinc
copper pagoda
keen narwhal
#

non @naive ivy

#

c'est ButtonBuilder

#

et ActionRowBuilder

#

pense à vérifier sur la doc

#

elle sert à ça

naive ivy
gentle zinc
copper pagoda
#

Ouais et du coup ?

#

Tu as une erreur ?

naive ivy
gentle zinc
#

Je fais les autres 🙂

naive ivy
#

je pige pas

copper pagoda
naive ivy
copper pagoda
#

npm i node:events

naive ivy
copper pagoda
#

Tu as quelle version de node.js ?

keen narwhal
#

fais node -v dans le terminal

naive ivy
naive ivy
keen narwhal
#

ah chaud

#

faut la version 16.9 mini

#

donc réinstalle

copper pagoda
naive ivy
#

ptdr je vais pas aller loin avec ça

keen narwhal
#

version lts

#

ça suffiras

copper pagoda
#

C'était bien avec la V12 mais avec la V14 c'est plus trop utile.

keen narwhal
naive ivy
#

j'installe la dernière V là

keen narwhal
#

tu utilises canvas ?

#

pcque jcrois avoir vu ton code avec canvas

#

sauf que canvas marche pas avec la dernière

naive ivy
#

oui avant

keen narwhal
naive ivy
#

mdr c bon à savoir ça

keen narwhal
#

la lts suffit