#javascript-typescript

1 messages · Page 16 of 1

keen narwhal
#

oui je vois...

frosty sand
#

Ah tu le conseil qui pour faire des commandes slash

keen narwhal
#

avez vous une résolution au problème ?

drowsy ocean
frosty sand
#

Ah ok

drowsy ocean
keen narwhal
flint shell
hoary umbra
#

Bonjour, je voulais héberger gratuitement mon bot sur Heroku mais j'ai vu qu'ils avaient arrêté de faire ça gratuitement, est-ce que vous connaissez une alternative ? Car j'ai trouvé un site nommé Glitter je crois mais le bot s'arrête après 5min d'inactivité de ce que j'ai compris.

C'est pas pour faire un gros bot, juste pour apprendre en même temps que je l'utilise pour mon serveur.
Car ça me permet d'avoir les retour des membre du serv discord. :S

#

Donc si vous connaissez un petit hébergeur gratuit j'ai pas besoin de 512mo de ram ou plus, je pense que 128mo devrait être large dans un premier temps c'est surtout pour ajouter un role aux arrivants et le remplacer par un autre quand ils cliquent sur un bouton, peut être que je mettrais deux ou trois autres trucs après

past nimbus
#

Je peux te l'host

keen narwhal
drowsy ocean
#

Là tu n'utilise pas les slash commands ?

tropic kraken
#

En effet, je n'avais pas fait attention. Mais, quand j'essaye de faire un avec une commande slash, le bot n'envoie même plus l'embed.

drowsy ocean
#

Utilise un embedbuilder

#

comme ceci

keen narwhal
#

@glados

misty parcel
#

Yop 👀

#

Je suis en train d'essayer d'implémenter ma base de données MongoDB à mon site web, quelle galère sue

#

Voici mon code

<script setup>

import { MongoClient } from 'mongodb';

async function mainDB() {
    const uri = "Mon uri"

    const client = new MongoClient(uri);

    try {
        // Connect to the MongoDB cluster
        await client.connect();
 
        // Make the appropriate DB calls
        await  listDatabases(client);
 
    } catch (e) {
        console.error(e);
    } finally {
        await client.close();
    }
}

async function listDatabases(client){
    databasesList = await client.db().admin().listDatabases();
 
    console.log("Databases:");
    databasesList.databases.forEach(db => console.log(` - ${db.name}`));
};

mainDB();
</script>
#

Et voici l'erreur :

Uncaught TypeError: (0 , util_1.promisify) is not a function
#

Et après ça me pointe vers des fichiers dans le node modules

#

Je ne sais pu quoi faire rip aidez moi svp

past nimbus
#

Tu connectes ta db depuis ton interface client..?

hoary umbra
#

Sinon j'ai fait ça en prenant la tête :

const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent,
    GatewayIntentBits.GuildMembers,
  ],
});
const embedData = require('./embed.json');
const config = require('./config.js');
const fs = require('fs');

client.login(config.token);

function loadDB() {
  try {
    return require('./db.json');
  } catch (err) {
    return { embedID: null };
  }
}

function saveDB(db) {
  fs.writeFileSync('./db.json', JSON.stringify(db));
}

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

client.on('ready', async () => {
  const channel = await client.channels.fetch(config.channelID);
  const db = loadDB();

  let message;
  if (db.embedID) {
    message = await channel.messages.fetch(db.embedID);
  } else {
    message = await channel.send({
      content: embedData.content,
      embeds: [embedData.embeds[0]],
      components: [
        new MessageActionRow().addComponents(
          new MessageButton()
            .setCustomId('verification_btn')
            .setLabel('Me vérifier')
            .setStyle('SUCCESS')
        )
      ]
    });

    db.embedID = message.id;
    saveDB(db);
  }
});```
#

suite :

  const role = await member.guild.roles.fetch(config.unverifiedRoleID);
  member.roles.add(role);
});

client.on('interactionCreate', async interaction => {
  if (!interaction.isButton()) return;
  if (interaction.customId === 'verification_btn') {
    const member = interaction.member;
    const unverifiedRole = member.guild.roles.cache.get(config.unverifiedRoleID);
    const verifiedRole = member.guild.roles.cache.get(config.verifiedRoleID);
    await member.roles.remove(unverifiedRole);
    await member.roles.add(verifiedRole);
    await interaction.reply({ content: 'Vérification passée avec succès !', ephemeral: true });
  }
});```
#

L'erreur :

      throw er; // Unhandled 'error' event
      ^
TypeError: MessageActionRow is not a constructor
    at Client.<anonymous> (/home/container/index.js:44:9)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Emitted 'error' event on Client instance at:
    at emitUnhandledRejectionOrErr (node:events:394:10)
    at process.processTicksAndRejections (node:internal/process/task_queues:84:21)
Node.js v18.12.0```

Ma version DiscordJS : 14.9.0
Ma version de NodeJS : 18.12.0
keen narwhal
hoary umbra
#

Normalement d'ici 3 mois je pourrais ^^

keen narwhal
hoary umbra
#

J'ai un serveur de jeu à payer déjà

#

j'ai mes factures à payer, je doit m'acheter à manger le tout avec un petit contrat, mon serveur est mon seul plaisir mensuel

#

🤷‍♀️

misty parcel
#

Alors la

keen narwhal
#

Salut, je suis dans l'incompréhension j'essaie de login avec ma variable d'environnement
client.login(process.env.BOT_TOKEN!);

#

mais ca me dis token invalide

#

alors que si je log ma variable le token est bien la

#

j'ai toujours fais ca depuis des années je comprend pas

misty parcel
keen narwhal
#

J'ai log déja

#

elle est bien la

glass cargo
# misty parcel Ah ? Comment ça ? 🤔

Vue est un framework en CSR (Client Side Rendering), c'est à dire que tout se passe sur la machine de l'utilisateur, donc n'importe qui pourrait facilement récupérer tes identifiants d'accès à la base de données ^^

misty parcel
glass cargo
glass cargo
keen narwhal
#

Bah regarde je peu te montrer j'en regenererais un

#

Sauf si je suis teubé tout me semble correct

misty parcel
keen narwhal
#

Roh putain si je suis débilé

glass cargo
keen narwhal
#

y'a pas de virgule dans les .env

#

c'est bon c'est régler

glass cargo
#

oui aussi

keen narwhal
#

quelle con

past nimbus
glass cargo
glass cargo
#

J'en ai jamais mis 😂

keen narwhal
misty parcel
glass cargo
normal lichen
#

Bonjour, j'ai un socuis mon bot discord fonctionner très bien et depuis 2 jours il me met cela lorsqu'un membre souhaite ouvrir un ticket via liste déroulante (le bot est heberger est en ligne depuis plusieurs mois, je n'ais pas toucher au code)

left forum
#

@lone flax t’avais pas eu le même problème ?

lone flax
#

Si, voir plus haut mon message

floral bolt
#

@hazy mirage ou @queen ocean vous voulez pas Ping le message de de wasied ?

misty parcel
normal lichen
#

desoler j'avais pas vue, je l'ai fait par intuition sa a resolu mon problème , merci ^^

cyan iron
misty parcel
floral bolt
floral bolt
misty parcel
floral bolt
#

Laisse tomber c’est pas explicite

queen ocean
normal girder
#

Bonsoir tout le monde j'aimerai savoir pourquoi le code suivant ne veut pas activer le son d'une vidéo arrière plan vu que mnt avec google on ne peut pas mettre le son d'une vidéo autoplay

const sound_button = document.querySelector('.sound-btn')
const sound_off_btn = document.querySelector('.sound-off')
const sound_on_btn = document.querySelector('.sound-on')
videoframe = document.querySelector('video')
videoframe.muted = true
videoframe.play()

sound_button.addEventListener('click', () => {
    if (!videoframe.muted) {
      sound_on_btn.style.opacity = 0;
      sound_off_btn.style.opacity = 1
      videoframe.muted = true
    } else {
      sound_on_btn.style.opacity = 1
      sound_off_btn.style.opacity = 0
      videoframe.muted = false
    }
  })```
floral bolt
floral bolt
#

rien a voir pardon

queen ocean
lilac garnet
#

Salut !
Pour un projet d'études, je suis entrain de faire une application web de chat instantané, et lors de l'emission des messages j'ai "undefined" au lieu du contenu du message.
Au vu du message de la console cela doit-être parce que j'envoie un objet mais je sais pas trop comment m'y prendre, vous auriez une idée ?
Message de la console »
'[object Object]' le Thu Apr 06 2023 22:23:47 GMT+0200 (heure d’été d’Europe centrale)

queen ocean
lilac garnet
#

Côté serveur »

#

Côté client »

floral bolt
#

pourquoi tu fais Emission_message pui Reception message ?

#

Si tu fais direct add puis reception ca marche

floral bolt
lilac garnet
floral bolt
#

Oui

lilac garnet
#

Alors le problème est résolu il suffisait de retirer le socket.nickname et message du côté, serveur et relier le pseudo et msg

#

"io.emit('reception_message', {pseudo : message.nick, message : message.msg});"

limpid sleet
#

Salut, j'ai une problématique avec react.
Sur mon app j'effectue un fetch sur plusieurs composants (menu, contenu de page etc)
Actuellement quand j'arrive sur la page je voudrais ne pas voir "loading" dans chaque composant.
J'essaie donc d'utiliser le useLoaderData de react router.

Mais comment faire pour que mon composant loader reste afficher tant que tous mes composant de ma page affiche ne sont pas finis d'etre récupéré

floral bolt
#

Tu peux utiliser les context

#

Fetch toutes t’es datas 1 fois

mellow parrot
#

Salut, newmessage et oldmessage ne fonctionne plus ?

module.exports = async (bot, message, oldMessage, newMessage) => {
    const embed = new EmbedBuilder()
    .setColor("#FFA500")
    .setTitle("Message édité")
    .addFields(
        { name: "Auteur", value: oldMessage.author.tag },
        { name: "Salon", value: oldMessage.channel.toString() },
        { name: "Ancien contenu", value: oldMessage.content || '\u200B' },
        { name: "Nouveau contenu", value: newMessage.content || '\u200B' },
    )
    .setTimestamp();
}```
les erreurs que j'ai pu avoir 
ReferenceError: oldMessage is not defined
ou bien TypeError: Cannot read properties of undefined (reading 'content')
glass cargo
#

Comment exécute-tu ton évènement ?

#

Du moins si c'en est un

mellow parrot
#

dans un event nomé messageUpdate

glass cargo
#

oui, mais y'a bien un endroit où tu fais <Client>.on(...)

mellow parrot
#

dans mon index, qui charge les évent

glass cargo
#

Je peux voir ça ?

mellow parrot
#
const Discord = require("discord.js");
const intents = new Discord.IntentsBitField(3276799);
const bot = new Discord.Client({ intents });
const loadCommands = require("./loaders/loadCommands");
const loadEvents = require("./loaders/loadEvents");

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

process.on("unhandledRejection", (reason, p) => {
  console.error(" [AntiCrash] :: Unhandled Rejection/Catch");
  console.error(reason, p);
});

process.on("uncaughtException", (err, origin) => {
  console.error(" [AntiCrash] :: Uncaught Exception/Catch");
  console.error(err, origin);
});

process.on("uncaughtExceptionMonitor", (err, origin) => {
  console.error(" [AntiCrash] :: Uncaught Exception/Catch (MONITOR)");
  console.error(err, origin);
});

process.on("multipleResolves", (type, promise, reason) => {
  console.error(" [AntiCrash] :: Multiple Resolves");
  console.error(type, promise, reason);
});


bot.commands = new Discord.Collection();
bot.color = "#4C4C4C";

bot.function = {
  createId: require("./functions/createId")
};

bot.snipe = new Discord.Collection();

bot.login(config.token);

loadCommands(bot);

loadEvents(bot);```
glass cargo
#

La fonction loadEvents() ?

mellow parrot
#

ouep

#

attend x)

glass cargo
#

tkt

mellow parrot
#

mon pc fait des sienne

#

et voila pour toi

const fs = require('fs');

module.exports = async bot => {
  fs.readdirSync("./events").filter(f => f.endsWith(".js")).forEach(async file => {
    let event = require(`../events/${file}`);
    if (typeof event === 'function') {
      bot.on(file.split(".js").join(""), event.bind(null, bot));
      console.log(`Evènement ${file} chargé avec succès !`);
    } else {
      console.error(`Erreur : ${file} n'est pas un événement valide`);
    }
    console.log("Aucune erreurs.");
    console.log("--------------------------------");
  });
};```
glass cargo
#

Tes autres évènements fonctionnent ? Tes autres variables aussi ?

mellow parrot
#

Mon msg del fonctionne

#

c'est le seul que j'utilise en évent

glass cargo
#

ok

#

je peux voir la ligne du module.exports... ?

mellow parrot
#

de mon msg del ?

glass cargo
#

yep

mellow parrot
#
module.exports = async (bot, message) => {```
glass cargo
#

ok

#

je pense avoir trouvé le pb

#

Si dans messageUpdate.js tu mets ça :

module.exports = async (bot, newMessage, oldMessage) => {
    const embed = new EmbedBuilder()
    .setColor("#FFA500")
    .setTitle("Message édité")
    .addFields(
        { name: "Auteur", value: oldMessage.author.tag },
        { name: "Salon", value: oldMessage.channel.toString() },
        { name: "Ancien contenu", value: oldMessage.content || '\u200B' },
        { name: "Nouveau contenu", value: newMessage.content || '\u200B' },
    )
    .setTimestamp();
}
#

Est-ce que ça fonctionne ?

mellow parrot
#

je te dit ça :)

#

message n'est pas défini : js ReferenceError: message is not defined

#

Ligne 18

#

c'est une ligne que j'utilise, pour la bdd et les salon de logs

#

si tu le souhaite, je t'envoi tout le code mp uniquement

limpid sleet
# floral bolt Fetch toutes t’es datas 1 fois

C'est a dire ? Actuellement j'ai mon layout qui lui va appeler mon header et dans mon header je fetch mon menu.
Puis dans mon layout j'ai ma page et en fonction de ma page, dedans cette dernière je fetch son contenu.
J'aimerais donc avoir mon loader et il doit rester afficher tant que mon header et ma page ne sont pas pleinement affichées.

Tu me suggère de fetch mes datas ailleurs que dans mes composants ?

glass cargo
glass cargo
mellow parrot
#

je fait des console.log de ce que tu ma dit

#

et je met tout en commentaire

misty parcel
#

Salut

glass cargo
#

👍

glass cargo
#

👀

mellow parrot
#

imposible que j'envoi tout sur discord même avec le nitro x)

glass cargo
#

Normalement, tu as reçu trois message dans la console. Ils devraient tous commencer par un nom de classe. Pourrais-tu me les donner ?

misty parcel
#

J'ai un petit soucis, j'essayes d'adapter mon handler avec une autre librairie que discord.js mais je n'y arrive as 🥲 Voici mon code :

Mon handler :

const fs = require("fs");
require('colors');
const { clientClash } = require("../../cocjs");

module.exports = async bot => {
    const eventsDir = "./src/events";
    fs.readdirSync(eventsDir).filter(f => f.endsWith(".js")).forEach(file => {
        const eventName = file.split(".")[0];
        const eventModule = require(`../events/${file}`);
        bot.on(eventName, eventModule.bind(null, bot));
        clientClash.on(eventName, eventModule.bind(null, clientClash));
    });
    console.log(`Events : OK`.green);
};

Mon fichier cocjs :

const { BatchThrottler, PollingClient } = require('clashofclans.js');

const clientClash = new PollingClient({
    cache: true,
    retryLimit: 1,
    restRequestTimeout: 5000,
    throttler: new BatchThrottler(20),
    keys: [`${process.env.COC_API_KEY}`]
});

clientClash.setPlayerEvent({
    name: "playerCapitalContribute",
    filter: (oldPlayer, newPlayer) => {
        return oldPlayer.achievements[41].value !== newPlayer.achievements[42].value
    }
});

module.exports = {
    clientClash
}

Mon fichier playerCapitalContribute

module.exports = (oldPlayer, newPlayer) => {
    console.log(`${newPlayer.name} : ${newPlayer.achievements[42].value - oldPlayer.achievements[42].value}`);
};
#

Bon voila du coup rien ne se passe, pas d'erreur dans la console 🥲

glass cargo
#

Ton code est censé faire quoi ? Qu'est que tu attends de ton code et qui ne marche pas ?

misty parcel
#

Alors, c'est par rapport à un jeu, dans ce jeu il y à une sorte de base commune pour chaque équipe. Chaque joueurs dans cette équipe peut "contribuer", cet à dire améliorer la base, sauf que quand quelqu'un "contribue" et bien rien ne se passe

glass cargo
glass cargo
#

ok

#

Un bon vieux console.log en haut de l'event ?

misty parcel
#

En haut de l'event tu veux dire en haut du handler ?

glass cargo
#

en haut du fichier de ton event

misty parcel
#

playerCapitalContribute ? Parce que justement, c'est ça qui ne se déclenche pas

#

Pour être plus précis, mon programme consulte l'API du jeu toutes les 30 secondes (A peu près) et donc pour chaques joueurs ça renvoie ça :

#

Et donc si entre temps la value à augmenté ça veut dire que le joueur à contribué

glass cargo
#

🤔

#

Ben dcp c pas des events si c'est ton programme qui fetch l'api

misty parcel
#

olala je m'embrouille moi même

#

le package va aller fetch l'API du jeu UNIQUEMENT pour vérifier si la personne à "contribué" à la base, et si c'est le cas, l'event se déclenche

#

L'event c'est ça :

clientClash.setPlayerEvent({
    name: "playerCapitalContribute",
    filter: (oldPlayer, newPlayer) => {
        return oldPlayer.achievements[41].value !== newPlayer.achievements[42].value
    }
});
#

Et donc return oldPlayer.achievements[41].value !== newPlayer.achievements[42].value ça renvoie true ou false, si c'est true alors l'event se fait, sinon ça fait rien

glass cargo
#

ok

#

Dans ton handler, si tu essaies ça :

const fs = require("fs");
require('colors');
const { clientClash } = require("../../cocjs");

module.exports = async bot => {
    const eventsDir = "./src/events";
    fs.readdirSync(eventsDir).filter(f => f.endsWith(".js")).forEach(file => {
        const eventName = file.split(".")[0];
        const eventModule = require(`../events/${file}`);
        bot.on(eventName, eventModule.bind(null, bot));
    });
    console.log(`Events : OK`.green);
    const clashEventsDir = "./src/clashEvents";
    fs.readdirSync(eventsDir).filter(f => f.endsWith(".js")).forEach(file => {
        const eventName = file.split(".")[0];
        const eventModule = require(`../clashEvents/${file}`);
        clientClash.setPlayerEvent({ name: eventName, filter: eventModule.bind(null, clientClash) });
    });
    console.log(`Events : OK`.green);
};
misty parcel
glass cargo
misty parcel
#

aaa

glass cargo
#

euh att mdr

#

ça va pas ce que je t'ai donné là 😂

misty parcel
#

ah

glass cargo
#

voilà

#

là ça m'a l'air mieux

misty parcel
#

okay

#

Ah oui du coup faut un dossier clashEvents

glass cargo
#

yep

#

pour bien différencier les events de djs et ceux de clash of clans

floral bolt
#

quand tu ne connais pas c'est compliquer a mettre en place mais apres c'est assez simple

steep lagoon
#

Yo toutle monde

#

On est d'accord ?

#

Avec charAt je peux changer la couleur de la lettre que j'ai choisi

#

enfin du caractère

misty parcel
#

Je fais des tests depuis un peu moins de 2h la

glass cargo
#

Comment perdre bêtement son temps....

#

le pire c'est qu'il m'arrive très souvent ce genre de pb 😂

misty parcel
glass cargo
#

ah

#

une erreur ?

misty parcel
#

Je n'ai vraiment aucune idée de quoi faire

misty parcel
glass cargo
#

🤔

floral bolt
#

Tu peux me faire un resumé de ton soucis ?

glass cargo
#

Le nom des events est bien envoyé comme étant "chargé"

glass cargo
ancient sonnetBOT
#
Citation du message de Aldebaran#9090 posté dans #javascript-typescript

quoteStart playerCapitalContribute ? Parce que justement, c'est ça qui ne se déclenche pas quoteEnd

➜ [Voir le message original](#javascript-typescript message)

floral bolt
#

d'accord et bien bon courage 😉

misty parcel
#

😭

#

Merci

floral bolt
#

je regarderais si j'ai 10 minutes

misty parcel
#

Bon voila mais du coup j'ai vraiment 0 erreur, y'a juste absolument rien qui se passe

#

Du coup jsp quoi montrer

floral bolt
misty parcel
floral bolt
#

attend

#

tu es dispo en coval dans 3 minutes ?

misty parcel
#

yes

wintry garden
#

Bonjour, j’ai un bot ticket qui fonctionnait parfaitement sauve que il a pris la décision de ne plus fonctionner sans m’en parler. Je me suis dit que je vais aller voir le problème sauf que je me suis rappelé que je ne connais rien en lua, ce que je ne comprends pas c’est qu’il a arrêté de fonctionner sans aucune raison alors que je n’ai rien touché. Pourriez-vous essayer de trouver mon problème ?

Voici une image des logs de mon Bot Discord 👇

misty parcel
#

Alerte rouge @glass cargo

#

J'ai plus ou moins réglé le soucis grace notamment à @floral bolt lol, mais j'ai eu une tonne de joueurs dans le terminal suefort

#

J'ai mis ça

module.exports = (oldPlayer, newPlayer) => {
    console.log(oldPlayer, newPlayer)
};
#

Donc le fichier est bien appelé yipi

glass cargo
#

Plus qu’à enlever le console.log() et à remplacer par ton code kapp

misty parcel
floral bolt
#

enfaite tu veux quoi exactement ?

#

enfin tu veux savoir quoi sur le joueur ?

#

@misty parcel

misty parcel
floral bolt
#

envois moi un user complet

misty parcel
floral bolt
#

via t'es logs

misty parcel
#

En faite, les achievements de oldPlayer sont undefined 😦

floral bolt
#

fait juste un console.log(newPlayer)

misty parcel
#

ok

misty parcel
#

C'est tellement grand sue

floral bolt
#

ah

#

je vais manger

#

je regarde apres avoir toi stv

misty parcel
#

okay

#

Bon alors quand je fais un log de oldPlayer j'ai plein d'infos sur chaque joueurs dont ça : achievements: [Array]

#

Et quand je log oldPlayer.achievements ça me renvoie undefined

#

J'comprends pu rien

frosty sand
#

bjr c'est quoi le probleme svp ```const EmbedBuiler = require('discord.js')

class command {
constructor() {
this.name = "pourcentage",
this.description = "Permet de générer un pourcentage aléatoire !"
}

async execute(interaction) {
    const Embed = new EmbedBuiler()
    .setColor('Random')
    .setDescription('Ton pourcentage est de : ' + entierAleatoire(0, 100) + '%')

    interaction.reply({ embeds: [Embed]})
}

}

function entierAleatoire(min , max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}

module.exports = command```

ashen rapids
frosty sand
#

non c'est bon j'avais juste oublier un d

#

si tu regarde embedbuiler ya ecris

ashen rapids
#

Yep je vois

#

Mais hésite pas à donner du contexte la prochaine fois, ça sera plus simple pour t'aider !

frosty sand
#

ok

keen narwhal
#

Salut, je suis actuellement entrain de créer mon bot discord. Voulant créer un système de ticket qui correspond à ce code :

`const Discord = require("discord.js")
const staffemoji = '1093306826537312417'

module.exports = {

name: "ticket",
description: "envoie embed ticket",
permission: Discord.PermissionFlagsBits.ManageGuild,
dm: false,
category: "Administration",
options: [],

async run(bot, message, args, db) {
    try {
        let Embed = new Discord.EmbedBuilder()
        .setColor("#ff00c8")
        .setTitle("Ticket Staff")
        .setThumbnail("https://cdn.discordapp.com/attachments/832029499482439682/1088578035558666240/preview_3_2.gif")
        .setDescription(Vous avez l'envie d'^tre membre du staff ? \n Cliquez sur le bouton juste en dessous et faîtes nous part de votre candidature \n \n (le formulaire est disponible dans : <#${1093303572411727924})
        .setTimestamp()
        .setFooter({text: bot.user.username, iconURL: bot.user.displayAvatarURL({dynamic: true})})

        const btn = new Discord.ActionRowBuilder().addComponents(new Discord.ButtonBuilder()
        .setCustomId("ticket")
        .setLabel("Postuler")
        .setStyle(Discord.ButtonStyle.Primary)
        .setEmoji(staffemoji))

        await message.reply({embeds: [Embed], components: [btn]})
    } catch (error) {
        console.error(error);
    }
}

}`

Cependant, quand j'essaye d'executer la commande "/ticket" une erreur apparait que je trouve inexplicable.....

mellow parrot
#

Personnellement, je construis mes embed comme ça

#

A voir si ça fonctionne.

misty parcel
#

Yop, par rapport à mon problème d'hier, j'ai fais un log de oldPlayer et ça m'a donné ceci :

#

(Pour un joueur)

#

Et donc quand je log oldPlayer.achievements ça me renvoie undefined

#

Alors la

glass cargo
#

bizarre 🤔

#

console.log(JSON.stringify(oldPlayer)) ?

misty parcel
#

okay

misty parcel
glass cargo
#

JSON.stringify(oldPlayer, null, 4)

floral bolt
#

Oui je suis sur tel

misty parcel
#

Ok bon j'test Nolhan avant

floral bolt
#

Merde …

misty parcel
floral bolt
#

J’espere que tu as vus car j’ai modifier le message au lieu d’en renvoyer un

misty parcel
#

Oui mais bon j'ai pas retenu quoi :(

floral bolt
#

Regarde array.map sur l’internet

misty parcel
misty parcel
floral bolt
#

Ou alors player[0].achievements

misty parcel
#

Moi ça log pas un array, ça log tous les joueurs un par un

#

Ce qui n'est pas normal d'ailleurs 🥲

#

En gros oldPlayer ça correspond à un seul joueur, si y'a deux joueurs qui ont fait l'action, alors ça va log est deux joueurs séparément sous forme d'objet

floral bolt
#

Oui mais map player achiebelent

misty parcel
#

okok

misty parcel
floral bolt
#

Bah oldPlayer.map((player) => {})

#

Si ça marche pas essaye de jeter ton ordi par la fenêtre

misty parcel
#

Vu que oldPlayer c'est pas un Array

glass cargo
misty parcel
misty parcel
glass cargo
#

trop bizarre mdr

misty parcel
#

Je vais devenir fou

glass cargo
floral bolt
#

Log oldPlayer.Player

glass ore
keen narwhal
floral bolt
#

Indice: c’est sensé être un string

keen narwhal
keen narwhal
fleet scaffold
#

Voilà tout

keen narwhal
fleet scaffold
#

C'est pas logique, qu'elle ce retire si elle y est sur d'autres 🙂

#

Mais d'accord

keen narwhal
#

après je doute fortement qu'oublier des guillemets ammènerait à cette erreur....

fleet scaffold
#

.setCustomId("ticket")
Le vrai problème vient de là

#

Si tu veux tout savoir

#

change juste ticket par autre chose

#

Tu verra c'est magique

keen narwhal
#

peux tu m'expliquer pourquoi l'erreur vient de là ?

misty parcel
#

Pour mon erreur, j'ai demandé sur le serveur des développeurs de packages NPM pour le jeu et même eux ne savent pas joygun

fleet scaffold
#

j'ai confiance en google

keen narwhal
fleet scaffold
#

Apprend à faire tes recherches

keen narwhal
fleet scaffold
#

Alors

#

je suis une merde

red torrent
#

pas un tableau de component

drowsy ocean
# keen narwhal

Cette erreur est dû a une mauvaise configuration de ton Embedbuilder, en pratique l'embedbuilder transforme les paramètres que tu lui dit en json et l'envoi sous ce format quand tu le 'send' d'où l'erreur au body.
Il doit y avoir un paramètres dans ton embedbuilder qui est sois mal configurer sois qui n'est pas présent en temps normal dans les embedbuilder

keen narwhal
#

C’est fou ce genre d’erreur serais pas là en Typescript

drowsy ocean
#

Donc les autres builders ont le même fonctionnement donc ça peut être aussi le cas pour ton actionbuilder etc..

keen narwhal
#

Adopter TS les gens

drowsy ocean
#

Je suis d'accord avec pour dire que ts evite ce genre de chose

#

Mais pour les débutants c'est leurs rajouter de la difficulté

keen narwhal
drowsy ocean
floral bolt
#

Envole toi petit piou piou !

keen narwhal
#

Mais je ne suis pas sure que cela vienne de là du moins c'est le seul soucis que je vois.

#

Je t'invite également d'importer directement ce que tu utilise plutot qu'importer Discord par exemple au lieu de faire
Discord.EmbedBuilder()

Tu fais

const { EmbedBuilder, ActionRowBuilder, ButtonBuilder ) require("discord.js")

Ce qui te simplifiera par exemple :
const btn = new Discord.ActionRowBuilder().addComponents(new Discord.ButtonBuilder()
en
const btn = new ActionRowBuilder().addComponents(new ButtonBuilder()

keen narwhal
drowsy ocean
limber sparrow
#

Son problème a déjà été indiqué 👀

keen narwhal
#

Si il fait l'aveugle tempis x)

#

J'ai pris mon temps pour répondre

#

après tempis

silent aurora
#

Quelqu'un de dispo pour faire un petit test de mon bot github ?

#

ça devrai pas prendre plus de 5 min

keen narwhal
keen narwhal
silent aurora
keen narwhal
#

Je te recommande également d'utiliser la documentation et / ou le guide de d.JS

rustic sundial
#

Bonjour j'ai un problème dans mon bot quand je active une commande il crash

#

Jsp pourquoi il crash

glass cargo
# rustic sundial

Si je traduit ton erreur :
La variable nommée "e" n'est pas définie (est égale à undefined en gros)

stark onyx
#
internal/modules/cjs/loader.js:818
  throw err;
  ^

Error: Cannot find module 'node:events'
Require stack:
- /root/ticket/node_modules/discord.js/src/client/BaseClient.js
- /root/ticket/node_modules/discord.js/src/index.js
- /root/ticket/main.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15)
    at Function.Module._load (internal/modules/cjs/loader.js:667:27)
    at Module.require (internal/modules/cjs/loader.js:887:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (/root/ticket/node_modules/discord.js/src/client/BaseClient.js:3:22)
    at Module._compile (internal/modules/cjs/loader.js:999:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
    at Module.load (internal/modules/cjs/loader.js:863:32)
    at Function.Module._load (internal/modules/cjs/loader.js:708:14)
    at Module.require (internal/modules/cjs/loader.js:887:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/root/ticket/node_modules/discord.js/src/client/BaseClient.js',
    '/root/ticket/node_modules/discord.js/src/index.js',
    '/root/ticket/main.js'
  ]
}
``` sur mon pc j'ai aucune erreure mais sur vps j'en sa
glass cargo
#

Qui m’a Ping là Smiley_fight_2

stark onyx
#

je sais pas

stark onyx
glass cargo
#

Bizarre

#

Tu essaie de faire quoi ?

stark onyx
#

de lancer mon bot

left forum
#

tu as pas import le module event de node

stark onyx
#

renvoie la commande mais normalement oui

glass cargo
#

On peut avoir le code please ?

left forum
glass cargo
left forum
#

ah autant pour moi j'ai jamais fais de djs

stark onyx
#

j'ai installer pas mal de modules de docs

glass cargo
#

Si tu veux use un event de node, tu fais process.on()

#

Pas besoin d’import 🤷‍♂️

queen ocean
glass cargo
#

Possible effectivement

#

node -v

stark onyx
#

je suis en v12 mais sa la mis tout seul

glass cargo
#

Si c’est en dessous de v16

#

Ah ben voilà

stark onyx
#

comment on la up ?

glass cargo
#

Faut que tu passe à node 16 minimum

glass cargo
queen ocean
#

Pour utiliser discord.js v14 il te faut node 16.9.0 minimum

glass cargo
stark onyx
#

oe je suis en v13

queen ocean
glass cargo
#

Ah ok

stark onyx
glass cargo
#

att

#

apt-get update && apt-get upgrade -y
apt-get install curl -y && curl -sL https://deb.nodesource.com/setup_18.x | bash - && apt-get install build-essential nodejs -y

#

Et après, npm install npm@latest -g parce que c'est rarement à jour

stark onyx
glass cargo
#

Si tu essaie un apt purge nodejs ?

keen narwhal
#

Node js j’ai toujours galérer à le mettre à jour

#

Meilleur technique tu le supprime totalement

#

Et tu télécharge la dernière version via curl sur leur github

glass cargo
#

ben dcp c ce que je viens de lui proposer de faire x)

keen narwhal
#

Ah x)

#

Vraiment node c’est le seul truc où je galère autant

#

Je comprend pas

glass cargo
#

Après, sinon, tu fais comme moi : tu installe et tu fais jamais de màj 😂

queen ocean
#

Go utiliser nvm 👀

glass cargo
#

flm mdr

#

tant que la v18 dure, je ferais pas de màj mdr

queen ocean
#

Quand tu taff sur plusieurs projets, qui ont besoin de version de node différents, c'est pas viable ton truc

keen narwhal
#

Quelqu’un s’est pour quand c’est prévu la V15 de D.JS ?

#

On est en v14.9 yeah

stark onyx
#

j'ai plus node la il veux même plus s'installer

glass cargo
#

une erreur ?

stark onyx
#
-bash: /usr/bin/node: No such file or directory
glass cargo
#

ah oui logique

stark onyx
stark onyx
#

j'ai sa @glass cargo

drowsy ocean
#

Pour les versions de node, je vous conseille d'utiliser nvm, cela permet d'installer facilement et d'utiliser la version que vous voulez en une ligne de commande

ashen rapids
#

Il va nous falloir le code

#

Mais l'erreur dit déjà tout

keen narwhal
#

Désolé, je ne peux pas vous aider avec ça

ashen rapids
#

La variable bot n'est pas définie

ashen rapids
#

Ligne 9 de loadCommands !

rustic sundial
#

Question vous avez pas un tuto pour faire du dicord.js

floral bolt
rustic sundial
#

Mrc mes comment en fait pour changer l'activiter du bot ?

void spear
rustic sundial
#

Uncaught TypeError TypeError: Cannot read properties of null (reading 'setActivity')
at <anonymous> (c:\Users\boulm\Desktop\Bot Discord\index.js:10:13)
at Module._compile (internal/modules/cjs/loader:1226:14)
at Module._extensions..js (internal/modules/cjs/loader:1280:10)
at Module.load (internal/modules/cjs/loader:1089:32)
at Module._load (internal/modules/cjs/loader:930:12)
at executeUserEntryPoint (internal/modules/run_main:81:12)
at <anonymous> (internal/main/run_main_module:23:47)
index.js:10
Process exited with code 1

#

ça marche pas

floral bolt
#

tu as un champ de recherche en haut a droite

void spear
drowsy ocean
#

Dans un premier temps on conseil à tout les débutants javascript de consolider leurs bases avant de commencer un bot discord, nombreux sont les débutants qui commencent par un bot discord et qui abandonnent au bout de 3 jours parce qu'ils n'ont pas les connaissances nécessaire ou les automatismes pour ce débrouiller tout seul. Savoir marcher avant de courir !

keen narwhal
#

C’est pas pour vous faire chier que on vous demande d’apprendre le JS c’est juste que nous en aidant on se rend compte que 3/4 des erreurs proviennent d’erreurs très très très très très bête.

woven cosmos
#

je cherche une idée de petit jeu a faire en js svp qqn aurait une idée

#

je trouve que des truc pas originaux

keen narwhal
#

salut j'aimerais savoir comment on fais pour qu'un message contient un lien

#

Très mauvaise source tu veux dire

#

Que des mauvaises pratiques

#

Je t’assure que si !

#

En tant que développeur expérimenté en NodeJS sans me jeter des fleurs pour avoir regarder ça série c’est une catastrophe

drowsy ocean
#

Le meilleur que je puisse conseiller est le guide officiel de discordjs, certe il faut lire mais c'est un mal nécessaire

keen narwhal
#

C’est génial le guide

#

Et en vrai pour les débutants je peu recommander Sheweny JS qui vous retirera une charge de travail

#

Puis après dans le futur quand vous aurez maîtrisez DJs grâce à sheweny vous pourrez faire un bot 100% vous même

stark onyx
#
        throw e;
        ^

Error: The module '/root/bot/node_modules/better-sqlite3/build/Release/better_sqlite3.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 72. This version of Node.js requires
NODE_MODULE_VERSION 108. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
    at Module._extensions..node (node:internal/modules/cjs/loader:1338:18)
    at Module.load (node:internal/modules/cjs/loader:1117:32)
    at Module._load (node:internal/modules/cjs/loader:958:12)
    at Module.require (node:internal/modules/cjs/loader:1141:19)
    at require (node:internal/modules/cjs/helpers:110:18)
    at bindings (/root/bot/node_modules/bindings/bindings.js:112:48)
    at Object.<anonymous> (/root/bot/node_modules/better-sqlite3/lib/database.js:9:24)
    at Module._compile (node:internal/modules/cjs/loader:1254:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
    at Module.load (node:internal/modules/cjs/loader:1117:32) {
  code: 'ERR_DLOPEN_FAILED'
}

Node.js v18.15.0
#

vous savez c'est quoi ?

ashen rapids
#

Ils te disent l'erreur

#

Fais un npm rebuild

stark onyx
#
npm ERR! code 126
npm ERR! path /root/bot/node_modules/canvas
npm ERR! command failed
npm ERR! command sh -c node-pre-gyp install --fallback-to-build
npm ERR! sh: 1: node-pre-gyp: Permission denied

npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2023-04-09T18_17_12_672Z-debug-0.log
``` quand je le fait sa me mais sa
ashen rapids
#

Ou supprime ton dossier node_modules

#

Et fais un npm install

stark onyx
#

déjà fait

grave vale
#

Hey pourquoi avec ce code

  status: "online",
    activities: [{
      name: `${message}`,
      type: ActivityType.Custom
    }]
  })``` cela n'affiche pas la valeur message. PS: elle est pas nul
drowsy ocean
grave vale
#

ah bon comment puije le faire alors?

drowsy ocean
stark onyx
#
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!
npm ERR! For a full report see:
npm ERR! /root/.npm/_logs/2023-04-09T18_39_11_383Z-eresolve-report.txt

npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2023-04-09T18_39_11_383Z-debug-0.log
drowsy ocean
drowsy ocean
grave vale
drowsy ocean
grave vale
#

oui je suis sur et j'ai deja check la doc sa marche pas

drowsy ocean
#

Ton code est bien appelé ?

#

Peut etre un pb d'intent

grave vale
#

code oui bien appelé et pb d'intent non car il les as tous

#

tu peut voc ? jte montre tous

#

jreviens

drowsy ocean
#

Non je peux pas voc

grave vale
#

okay

#

pg

stark onyx
drowsy ocean
keen narwhal
#

Ah oui la V11 n’est plus disponible ahah

#

Même la v12

#

L’api est désactiver

stark onyx
#

je suis en v13 mais il me dit discord.js.oldv11

drowsy ocean
keen narwhal
#

Salut, j'arrive à lier mon ticket.js avec mon index.js, cependant, quand j'essaye de lier mon autre code donc mon addrole.js qui a pour script :

const Discord = require("discord.js")
const client = new Discord.Client({ intents: 3276799 })
  
module.exports = client => {
client.on('presenceUpdate', (oldPresence, newPresence) => {
    const statut = '.gg/qswKEqR3Tq';
    const roleName = 'test'

    const member = newPresence.member;
    const role = member.guild.roles.cache.find(r => r.name === roleName);

    if (newPresence.activities[0]?.state === statut) {
        
        member.roles.add(role);
    } else {
        if (member.roles.cache.find(r => r.name === roleName)) {
            member.roles.remove(role)
        }
    }
    })
}

dans mon index.js ce dernier ne marche pas, mon bot s'allume sans problème mais le rôle ne s'add pas, ce n'est pas un problème dû au code car j'ai essayé d'allumer le code directement en index et il marche, il ne marche plus que quand j'essaye de le lier....

Voici mon code index.js :

const { Client, GatewayIntentBits, Collection } = require('discord.js');
const { DeployCommands } = require('./deploy-commands');
const client = new Client({ intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent
] });
const fs = require('fs');
require('colors');

const addrole = require('./addrole/addrole.js');
client.on('presenceUpdate', (oldPresence, newPresence) => {
  addrole.execute(member);
});


client.config = require('./config');

(async () => {
    await DeployCommands();
    
    const eventFiles = fs.readdirSync('./events').filter(file => file.endsWith('.js'));
    for (const file of eventFiles) {
        const event = require(`./events/${file}`);
        if (event.once) {
            client.once(event.name, (...args) => event.execute(...args, client));
        } else {
            client.on(event.name, (...args) => event.execute(...args, client));
        }
    }
    
    client.commands = new Collection();
    const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
    for (const file of commandFiles) {
        const command = require(`./commands/${file}`);
        client.commands.set(command.data.name, command);
    }
        
    client.login(client.config.token);
})();

Avez vous la solution svpp ?

keen narwhal
keen narwhal
drowsy ocean
keen narwhal
drowsy ocean
keen narwhal
keen narwhal
#

après ce que je reproche et reprochera toujours à la commu dev, c'est de juger avant d'aider, même parfois juger sans aider mdrrr

drowsy ocean
keen narwhal
floral bolt
#

Si c’est ce que tu attends tu peux faire une demande de dev directement sur le site. Je suis sur et certain que quelqu’un t’enverra un message pour te le faire

keen narwhal
#

Ah bah si le problème je l’ai trouver mdr

keen narwhal
keen narwhal
#

On a l’impression que les gens pensent que discordJS est un langage

#

à quel moment ai je dis que vous deviez faire mon code ??

floral bolt
#

Bah on te donne des conseils pour réparer ton code et ça ne te va pas

#

Sous entendu votre solution ça marche pas donner moi du code pour que ça marche

keen narwhal
#

Le conseil que je te donne si tu débute c’est d’utiliser sheweny js

drowsy ocean
#

Revois tout simplement ton event handler et ça devrais aller

keen narwhal
drowsy ocean
#

@keen narwhal T'es sponso ? 😆

keen narwhal
#

Si le but est juste de faire un bot

#

Au moin la il utilise le cli et il a une structure complète de bot plus qu’à faire les commandes qu’il voulait

drowsy ocean
floral bolt
keen narwhal
#

Ou au pire petit copier coller à chatGPT je suis sur il trouve la solution x)

keen narwhal
drowsy ocean
#

Je suis pour l'utilisation de chatGPT mais pas pour les débutants

keen narwhal
#

Oui mais pour les erreurs de syntaxes etc ça évite de déranger des gens x)

floral bolt
drowsy ocean
keen narwhal
#

Après je comprend pas le nombre d’erreur de syntaxe que on a ici

#

Ils ont pas d’ide ou quoi

fleet scaffold
#

utilisez CHATGPT c'est pour les faibles.

#

💀

drowsy ocean
keen narwhal
drowsy ocean
#

Tu peux appeler ce que tu veux meme si ça existe pas

keen narwhal
#

TS + webstorm = yeah

drowsy ocean
#

Je ferais peut être une série de vidéos sur discordjs en suivant les pratiques du guide et en allant peut être un peu plus loin

keen narwhal
#

Je voulais le faire aussi mais si je le fais c’est en ts

drowsy ocean
#

Je pense le faire en js et en ts

fleet scaffold
fleet scaffold
#

car, tout les tuto que j'ai vu ils disent "v13, v14"

#

Mais entre la v13.8 et la v13.9 y a peut être des changement important 💀

drowsy ocean
#

Jsp si je vais pas attendre la v15 avant de faire un tuto parce qu'on est deja a la v14.9

#

Si mon tuto est valable que pour 2 mois rip

stark onyx
#
root@localhost:~/mantik# node index.js
/root/mantik/node_modules/bindings/bindings.js:121
        throw e;
        ^

Error: The module '/root/mantik/node_modules/better-sqlite3/build/Release/better_sqlite3.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 72. This version of Node.js requires
NODE_MODULE_VERSION 108. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
    at Module._extensions..node (node:internal/modules/cjs/loader:1338:18)
    at Module.load (node:internal/modules/cjs/loader:1117:32)
    at Module._load (node:internal/modules/cjs/loader:958:12)
    at Module.require (node:internal/modules/cjs/loader:1141:19)
    at require (node:internal/modules/cjs/helpers:110:18)
    at bindings (/root/mantik/node_modules/bindings/bindings.js:112:48)
    at Object.<anonymous> (/root/mantik/node_modules/better-sqlite3/lib/database.js:9:24)
    at Module._compile (node:internal/modules/cjs/loader:1254:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
    at Module.load (node:internal/modules/cjs/loader:1117:32) {
  code: 'ERR_DLOPEN_FAILED'
}

Node.js v18.15.0

j'ai cette erreur mais quand je fait npm rebuild

#

mais quand je fait npm install sa me fait sa ```root@localhost:~/mantik# npm audit fix
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!
npm ERR! For a full report see:
npm ERR! /root/.npm/_logs/2023-04-10T15_07_46_008Z-eresolve-report.txt

npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2023-04-10T15_07_46_008Z-debug-0.log

drowsy ocean
#

Ta version de nodejs n'est pas la même

stark onyx
drowsy ocean
#

Alors la version de better squlite

#

Qui est pas bonne

stark onyx
#

je le delete et je le réinstalle ?

drowsy ocean
#

Les deux

stark onyx
drowsy ocean
#

Tu delete et réinstalle 😆

#

Oui deso

stark onyx
#

ahh x)

drowsy ocean
#

J'avais mal lu

stark onyx
# drowsy ocean J'avais mal lu
root@localhost:~/mantik# npm i better-sqlite3
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!
npm ERR! For a full report see:
npm ERR! /root/.npm/_logs/2023-04-10T15_52_07_430Z-eresolve-report.txt

npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2023-04-10T15_52_07_430Z-debug-0.log
``` il me mais sa comme error tout le temp je sais pas a quoi c'est du
drowsy ocean
#

Fait voir le package.json

stark onyx
#
{
  "name": "gestion",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "dams",
  "license": "ISC",
  "dependencies": {
    "@discordjs/opus": "^0.7.0",
    "axios": "^0.24.0",
    "bindings": "^1.5.0",
    "canvacord": "^5.2.3",
    "commands": "0.0.7",
    "cross-fetch": "^3.1.5",
    "discord-backup": "^2.5.0",
    "discord-buttons": "^4.0.0",
    "discord-logs": "^2.0.1",
    "discord.js": "^12.5.3",
    "discord.js.old": "^11.6.5",
    "ffmpeg": "0.0.4",
    "ffmpeg-static": "^4.4.0",
    "fs": "0.0.1-security",
    "images-scraper": "^6.4.0",
    "mathjs": "^10.0.1",
    "moment": "^2.29.3",
    "ms": "^2.1.3",
    "node-opus": "^0.3.3",
    "opusscript": "0.0.8",
    "path": "^0.12.7",
    "quick.db": "^7.1.3",
    "randomstring": "^1.2.1",
    "request": "^2.88.2",
    "superagent": "^6.1.0"
  },
  "repository": {
    "type": "git",
    "url": "   "
  },
  "description": ""
}```
stark onyx
drowsy ocean
# stark onyx Lui?

Oui alors tu utilise discordjs v12 et v11 il est complètement broken ton projet

#

Discordjs opus est déprécié je crois

stark onyx
#

Y’a pas dutout un autre moyen mais genre de le laisser ne v12 ?

drowsy ocean
#

Normalement faut toujours travailler avec des versions récentes

stark onyx
#

Bah enfaite se que j’arrive pas à comprendre c’est que sa marche Nikel sur mon pc mais sur vps nada

drowsy ocean
#

Il serais peut etre temps d'utiliser docker

stark onyx
drowsy ocean
stark onyx
drowsy ocean
stark onyx
floral bolt
# stark onyx

juste pour savoir ? tu sais quel est l'erreur la ?

#

enfin quel est le plus important dans l'erreur que tu a recus ?

floral bolt
#

c'est quel partie ?

stark onyx
floral bolt
#

Voila alors tu as ton probleme et ta solution au même endroit

stark onyx
#

ok je veux bien que sa sois pas une fonction mais même les trucs google marche pas

#

c'est bien pour sa que je demande de l'aide

floral bolt
#

bah je ne sais pas ou tu cherches

#

comme l'a dis Ori tu utilises la v12 de discord.js

#

tu l'as mis a jour récemment ?

stark onyx
floral bolt
#

discord.js

floral bolt
stark onyx
#

sa ne marche pas

floral bolt
#

c'est quoi ta version de djs ?

stark onyx
#

v12

limber sparrow
#

La v12 est obsolète depuis un moment 👀

floral bolt
#

Ori te l'as dit plus haut

keen narwhal
floral bolt
#

essaye de faire npm update

drowsy ocean
#

Le frerot veut pas comprendre

keen narwhal
floral bolt
#

Ton bot est clairement pas a jour

#

meilleurs conseil refait le de zero

drowsy ocean
floral bolt
#

tu l'as pris sur github ton bot non ?

keen narwhal
fleet scaffold
#

c'est pas beau de mentir ?

floral bolt
#

Mouais, le bénéfice du doute ne passe pas là … 😄

#

Du coup tu dois prendre v14 pour le prochain 😉

keen narwhal
#

Le ts c'est un langage dérivié du javascript

#

c'est du javascript en plus complexe

limber sparrow
#

Cela dépend de ta facon de coder

keen narwhal
#

( mais beaucoup mieux )

#

Tu ne peux pas apprendre TS sans maitriser JS

#

selon moi

limber sparrow
#

y'en a qui dev des bots discord sans apprendre le js, tout est possible mdrr !!

keen narwhal
#

Du moin tu auras aucun tuto qui t'apprend le TS ou alors ils t'apprendront a passer du JS au TS

keen narwhal
keen narwhal
#

quand je vois ca j'ai envie de me pendre par exemple

#

Xdd pourquoi

limber sparrow
keen narwhal
fleet scaffold
#

des modules qui mettent discord pour ce faire DL 💀

keen narwhal
#

je me demande aussi pourquoi il y a Mongoose et quick-db

#

Sois tu fais du mongo

#

sois du SQL

#

pas les deux mon reuf KappaCringe

keen narwhal
#

T'es obliger de connaitre JS pour aller sur TS

limber sparrow
keen narwhal
#

c'est impossible sans

keen narwhal
#

Je sais que moi je suis une chèvre en js

#

Mais j'en est besoin

fleet scaffold
keen narwhal
fleet scaffold
keen narwhal
#

redis c'est absolument pas une norme

fleet scaffold
#

du stockage in memory

#

Et du stockage persistant

#

je dit redis car c'est la seule qui me vient en tête là

keen narwhal
fleet scaffold
#

ça dépend la taille du bot

#

ça dépend le nombre d'utilisateur du bot

#

Y a trop de facteur pour dire "pour tel ou tel truc y a besoin ou y a pas besoin"

keen narwhal
#

x)

floral bolt
#

Du coup pour finir @keen narwhal cherche un autre bot pour ton projet

keen narwhal
#

Quand je vois ca , compliquer de penser que ce sera un gros bot un jour

#

x)

fleet scaffold
#

oui non pour lui, c'est une autre histoire 💀

drowsy ocean
#

Context: bot debutant
Solution: Utilise ce que tu connais le mieux.

keen narwhal
#

de mon côté c'est Mysql avec Prisma.io comme ORM pour tout mes projets

drowsy ocean
#

Pour un petit bot toute les bdd sont prenable

keen narwhal
#

mais Pour un bot merdique comme ca je comprend pas l'intéret d'avoir du SQL et du Mongo

#

autant tout faire en SQL

#

pourquoi les deux

#

Enfin je sais pas ca n'a pas de sens selon moi

drowsy ocean
#

C'est hybride tqt 😆

keen narwhal
fleet scaffold
#

pour un petit bot autant utiliser firebase harold

keen narwhal
#

@keen narwhal Tu peux m'envoyer le bot github plus haut là je suis curieux de voir l'utilité des deux db

fleet scaffold
#

Totalement scalable sur le temps et tout

keen narwhal
#

Pour un petit bot autant sauvegarder en Json harold ( non vrm pas oublier cette phrase )

drowsy ocean
#

Tout stocker dans des .txt 🔥

fleet scaffold
#

non

floral bolt
#

j'ai vus un projet sympa passé

fleet scaffold
#

stocker vos mot de passe dans des .data

floral bolt
#

un mec a crée un systeme de db avec un serveur discord

fleet scaffold
#

chiffré en md5

floral bolt
#

en gros il save tous dans discord

drowsy ocean
keen narwhal
#

nan mais vrm pour les utilisateur de mongo et de SQL essayer cette techno quelle plaisir elle fait tout le typage de ta BDD et te permet en TS de revivre ( j'ai vraiment envie de lui faire des bébés ) https://www.prisma.io/

Prisma

Prisma is a next-generation Node.js and TypeScript ORM for PostgreSQL, MySQL, SQL Server, SQLite, MongoDB, and CockroachDB. It provides type-safety, automated migrations, and an intuitive data model.

keen narwhal
#

Discord est down plus de bot

#

mdr

floral bolt
#

ya aussi typeorm

keen narwhal
floral bolt
#

ouais ca a l'air pas mal mais j'ai pas eu l'occasion de le test

keen narwhal
#

genre téma comment c'est bien

#

et tout est typée

#

tout

#

il te génère 15K lignes de typage

floral bolt
#

c'est dans le meme style que graph ?

keen narwhal
floral bolt
#

tu peux lui demander que certaine partie de table

#

avec le meme code que prisma j'ai l'impression

keen narwhal
#

l'avantage de prisma c'est que tes schema de bdd tu peux les faires directement via prisma

#

genre téma mon projet actuellemnt

#
model Guild {
  id        Int         @id @default(autoincrement())
  guildId   String      @unique
  guildName String
  users     User[] // Une liste d'utilisateurs appartenant à cette guilde
  sanctions Sanction[] // Une liste de sanctions pour les utilisateurs de cette guilde
  logSystem LogSystem[]
  stats     Stats[]
}

model User {
  id       Int    @id @default(autoincrement())
  userId   String @unique
  username String
  guildId  Int
  guild    Guild  @relation(fields: [guildId], references: [id])
}

model Sanction {
  id         Int       @id @default(autoincrement())
  sanctionId String
  reason     String
  type       String // Le type de la sanction (avertissement, suspension, bannissement, etc.)
  date       DateTime  @default(now()) // La date de la sanction
  duration   Int? // La durée de la sanction en secondes
  userId     String
  guild      Guild     @relation(fields: [guildId], references: [id])
  guildId    Int
  banEnds    DateTime?
}

model LogSystem {
  id        Int     @id @default(autoincrement())
  guildId   Int
  guild     Guild   @relation(fields: [guildId], references: [id])
  channelId String  @unique
  status    Boolean @default(false)
}

model Stats {
  id                 Int    @id @default(autoincrement())
  guildId            Int
  guild              Guild  @relation(fields: [guildId], references: [id])
  channelId          String @unique
  messageSend        Int    @default(0)
  messageReactionAdd Int    @default(0)
  peopleJoin         Int    @default(0)
  peopleLeave        Int    @default(0)
  peopleSanctioned   Int    @default(0)
}
fleet scaffold
#

pas en SQL

keen narwhal
#

il crée les tables tout

fleet scaffold
#

t'es sûr ?

keen narwhal
#

Je l'utilise tous les jours x) oui

drowsy ocean
#

Prisma est clairement une plus value

keen narwhal
fleet scaffold
#

harold ça le faisait pas quand je l'utilisais

keen narwhal
#

faut juste pas oublier de faire cette ligne dès que tu touche au schema

floral bolt
#

alors que typeorm migrate automatiquement

#

c'est un plaisir

keen narwhal
#

Et prisma est compatible avec mongo pour les flemmards qui utilise mongo ( déja que mongo te facilite la vie alors mongo + prisma )

#

et voila un peu a quoi ressemble prisma dans un code

/**
 * Fonction pour créer un nouvel utilisateur dans la base de données
 * @param {GuildMember} user L'identifiant de l'utilisateur à sanctionner
 * @param {Guild} guild L'identifiant de la guilde dans laquelle l'utilisateur doit être sanctionné
 */
async function createUser(user: GuildMember, guild: Guild) {
  if (!user || !guild) return;
  const userDbExist = await prisma_instance.user.findFirst({
    where: {
      userId: user.id,
    },
  });
  if (userDbExist) return;

  await prisma_instance.user
    .create({
      data: {
        userId: user.id,
        username: user.user.username,
        guild: {
          connect: {
            guildId: guild.id,
          },
        },
      },
    })
    .then((user) => {
      Logger.info(`[DATABASE] User ${user.username} created`);
    })
    .catch((err) => {
      Logger.error(`[DATABASE] ${err}`);
    });
}
#

d'ailleur si quelqu'un veut mon logger

import colors from 'colors/safe';

export default class Logger {
  static info(message: string): void {
    Logger.log(message, LogLevels.info, colors.blue);
  }

  static warn(message: string): void {
    Logger.log(message, LogLevels.warn, colors.yellow);
  }

  static error(message: string): void {
    Logger.log(message, LogLevels.error, colors.red);
  }

  static log(message: string, level = LogLevels.debug, colorFn = (s: string) => s): void {
    const levelColors = {
      [LogLevels.debug]: colors.gray,
      [LogLevels.info]: colors.blue,
      [LogLevels.warn]: colors.yellow,
      [LogLevels.error]: colors.red,
    };
    const levelColor = levelColors[level];
    console.log(`${colorFn(levelColor(`[${LogLevels[level].toUpperCase()}]`))} ${colorFn(message)}`);
  }

  static dump(...obj: any[]): void {
    const str = obj.map((o) => JSON.stringify(o, null, 2)).join('\n');
    console.log(colors.gray(`[BOT] - DUMPING OBJECT =>\n${str}`));
  }
}

export enum LogLevels {
  debug,
  info,
  warn,
  error,
}

keen narwhal
#

Pareil je vous recommande de faire un fichier prisma_instance qui ressemblera a ca

import {PrismaClient} from "@prisma/client";
import Logger from "./Logger";

declare global {
  // noinspection ES6ConvertVarToLetConst
  var golbal_prisma_instance: PrismaClient;
}

let prisma_instance: PrismaClient;

if (!global.golbal_prisma_instance) {
  Logger.info("generating new Prisma instance")
  global.golbal_prisma_instance = new PrismaClient();
}

prisma_instance = global.golbal_prisma_instance;

export default prisma_instance;
#

comem ca dans ton code tu utilise directement prisma_instance

#

( j'suis la pour vos bot discord si jamais j'suis pas chère )

#

Je cale ca la c'est la hess en ce moment

#

je mange de l'eau plus assez d'argent pour les pâtes

fleet scaffold
keen narwhal
#

pour rajouter du gout

#

Mais avec l'inflation je vais de voir me contenter d'eau de pluie

floral bolt
#

ca va je mange des miettes de pain qui sont devant la boulangerie en ce moment 😄

keen narwhal
#

Le meilleur que j'ai trouver c'est le vomie d'un clodo

#

qui avait manger du vomie

floral bolt
#

ah yes au moin tu as pris des vitamines !

fleet scaffold
#

vous mangez ?

#

je mange dans mes rêves perso

floral bolt
#

😄

mellow parrot
#

Salut à tous ! Question pour un champion :
Comment mettre un embed dans un embed...
Car.. dans mon Évent messageUpdate.js, il envoie ça quand c'est un embed, une personne peut m'éclaircir ?
Merci d'avance au futur champion qui me répondra !
danse

keen narwhal
#

faut que tu récupère le contenue de l'embed

#

via l'id du message

#

tu check si le message est un embed

#

si oui tu récupère toutes les infos de l'embed

#

et tu les utilises

#
  const message = await channel.messages.fetch(MESSAGE_ID);

  // Vérifier si le message a des embeds
  if (message.embeds.length > 0) {
    // Récupérer le premier embed du message
    const embed = message.embeds[0];

    // Afficher les données de l'embed
    console.log('Titre:', embed.title);
    console.log('Description:', embed.description);
    console.log('URL:', embed.url);
    console.log('Timestamp:', embed.timestamp);
  } else {
    console.log('Ce message ne contient pas d\'embed.');
  }
});
#

@mellow parrot

mellow parrot
#

Je te remercie, je test ça demain !
Je verrais si tu es le champion héhé !

#

Merci beaucoup en tout cas !

keen narwhal
#

Aucune raison que ca ne marche pas si tu sais l'adapter a ton code

mellow parrot
#

Oui ne t'inquiètes pas pour moi ^^ !

onyx wren
#

Salut à tous, j'essaye d'utiliser l'api d'openai pour générer des questions sur un thème et les réponses associées ensuite. j'ai donc suivi la doc, mais ca me renvoie une erreur 400.

Voici mon code associé:

const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const cors = require("cors");

const { Configuration, OpenAIApi } = require("openai");

const configuration = new Configuration({
  organization: "org-ID",
  apiKey: "CléOpenai",
});
const openai = new OpenAIApi(configuration);

const app = express();

app.post("/generate-questions", async (req, res) => {
  const theme = req.body.theme;
  const prompt = `Générer 10 questions sur ${theme}.`;

  console.log(openai);

  const completion = await openai.createCompletion({
    engine: "text-davinci-003",
    prompt: prompt,
    max_tokens: 1000,
    temperature: 0.7,
  });

  const questions = completion.choices[0].text.trim().split("\n");
  console.log(questions);
  res.json({ questions });
});

https://cdn.discordapp.com/attachments/1095266210960130128/1095266466154168390/image.png
je précise que j'ai bien un thème envoyé par mon front comme en témoigne ce point d'arrêt

pure tiger
onyx wren
#

Je check ça ce soir merci

keen narwhal
mellow parrot
#

J'ai pas eu le temps de me connecter au pc

dry hawk
#

qui a deja testé l'api timezonedb

keen narwhal
fleet scaffold
#

tu devrais mettre .. au lieu de simplement .

#

../commands

#

au lieu de ./commands

#

en gros

keen narwhal
fleet scaffold
#

Bah réfléchis

keen narwhal
fleet scaffold
#

bah t'es pas capable de comprendre mes explications, ça sert à rien

keen narwhal
#

du index ?

#

du loader ?

fleet scaffold
#

t'as lu mes messages ?

fleet scaffold
keen narwhal
#

okk

fleet scaffold
#

y a quoi dans loader

keen narwhal
#

donc au lieu de ./ je met ../

fleet scaffold
#

le texte ./commands

#

il faut le remplacé par ../commands

keen narwhal
#

comme ceci ?

keen narwhal
fleet scaffold
#

Niquel

#

là ça devrais work

keen narwhal
#
node:fs:1456
  handleErrorFromBinding(ctx);
  ^

Error: ENOENT: no such file or directory, scandir '../commands'
    at Object.readdirSync (node:fs:1456:3)
    at module.exports (E:\Dossier SSD\Programmation\Lianow\loader\loadcommands.js:5:8)
    at Object.<anonymous> (E:\Dossier SSD\Programmation\Lianow\index.js:18:1)
    at Module._compile (node:internal/modules/cjs/loader:1275:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1329:10)
    at Module.load (node:internal/modules/cjs/loader:1133:32)
    at Module._load (node:internal/modules/cjs/loader:972:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:83:12)
    at node:internal/main/run_main_module:23:47 {
  errno: -4058,
  syscall: 'scandir',
  code: 'ENOENT',
  path: '../commands'
}
#

@fleet scaffold ...

fleet scaffold
#

Ah je sais

#

essaye ça : "./../commands"

#

il faut remonté d'un dossier encore

keen narwhal
# fleet scaffold il faut remonté d'un dossier encore
  handleErrorFromBinding(ctx);
  ^

Error: ENOENT: no such file or directory, scandir './../commands'
    at Object.readdirSync (node:fs:1456:3)
    at module.exports (E:\Dossier SSD\Programmation\Lianow\loader\loadcommands.js:5:8)
    at Object.<anonymous> (E:\Dossier SSD\Programmation\Lianow\index.js:18:1)
    at Module._compile (node:internal/modules/cjs/loader:1275:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1329:10)
    at Module.load (node:internal/modules/cjs/loader:1133:32)
    at Module._load (node:internal/modules/cjs/loader:972:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:83:12)
    at node:internal/main/run_main_module:23:47 {
  errno: -4058,
  syscall: 'scandir',
  code: 'ENOENT',
  path: './../commands'
}
keen narwhal
#

car le dossier commande est a la racine donc pas logic

fleet scaffold
#

mhhh

#

Bah je sais pas

#

tente juste de run depuis DIR

keen narwhal
#

comment je fais ça

fleet scaffold
#

__DIR__/commands

keen narwhal
#

fonctionne pas

fleet scaffold
#

Alors je sais pas :/

#

Je fais pas comme ça

keen narwhal
fleet scaffold
#

Je fais pas de bots discord 🙂

#

mais je mettrais pas le fichier pour load mes commandes dans un dossier

#

ça provoque des merdes du genre, un peu la flemme

keen narwhal
#

non j'ai réglé et c'est propre au moins

fleet scaffold
#

pas sûr

cyan iron
#
/   = Root directory
.   = This location
..  = Up a directory
./  = Current directory
../ = Parent of current directory
../../ = Two directories backwards
#

Sinon

glass cargo
#

@keen narwhal @fleet scaffold avec fs, il faut toujours partir de la racine du projet

fleet scaffold
glass cargo
#

./commands par exemple

glass cargo
fleet scaffold
#

et ça marchait pas

glass cargo
fleet scaffold
#

non non

glass cargo
#

Ah

fleet scaffold
#

ça c'est moi qui ai tenté de lui faire tester

glass cargo
#

Son arborescence qui est peut-être différente 👀

fleet scaffold
#

loader et commands sont au même niveau

#

c'est pour ça que ça donne un bordel monstre

glass cargo
#

Trop bizarre 🤣

fleet scaffold
#

et honnêtement ça m'as fait chier après

dire latch
#

Quelqu'un a déjà utilisé l'API de Kick.com ? A savoir s'il y a un lien ou autres 🤔

dry hawk
keen narwhal
#

On a passer une journée sans question discord.JS 0_0

floral bolt
#

oh c'est vrai ! 😮

fleet scaffold
#

Mais je pense c'est car ils voit plus le channel

floral bolt
glass cargo
empty mauve
#

Hey petite éreur, jvous passe le code après car je trouve pas le problème

C:\Users\Angelo\Desktop\White Rabit\node_modules@sapphire\shapeshift\dist\index.js:1582
return regex.test(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError(type, "Invalid string format", input, expected));
^

ExpectedConstraintError: Invalid string format
at Object.run (C:\Users\Angelo\Desktop\White Rabit\node_modules@sapphire\shapeshift\dist\index.js:1582:64)
at C:\Users\Angelo\Desktop\White Rabit\node_modules@sapphire\shapeshift\dist\index.js:201:66
at Array.reduce (<anonymous>)
at StringValidator.parse (C:\Users\Angelo\Desktop\White Rabit\node_modules@sapphire\shapeshift\dist\index.js:201:29)
at validateName (C:\Users\Angelo\Desktop\White Rabit\node_modules@discordjs\builders\dist\index.js:903:17)
at MixedClass.setName (C:\Users\Angelo\Desktop\White Rabit\node_modules@discordjs\builders\dist\index.js:979:5)
at C:\Users\Angelo\Desktop\White Rabit\Commands\Admin\update.js:12:28
at MixedClass.sharedAddOptionMethod (C:\Users\Angelo\Desktop\White Rabit\node_modules@discordjs\builders\dist\index.js:1346:50)
at MixedClass.addStringOption (C:\Users\Angelo\Desktop\White Rabit\node_modules@discordjs\builders\dist\index.js:1335:17)
at C:\Users\Angelo\Desktop\White Rabit\Commands\Admin\update.js:11:18 {
constraint: 's.string.regex',
given: 'Type',
expected: 'expected /^[\p{Ll}\p{Lm}\p{Lo}\p{N}\p{sc=Devanagari}\p{sc=Thai}
-]+$/u.test(expected) to be true'
}

Node.js v18.14.1
[nodemon] app crashed - waiting for file changes before starting...

#

svp

pastel dust
#

bonjour j ai besoin d aide pour un bote je n arrive pas a le programmer si vous poviez m aider

floral bolt
pastel dust
floral bolt
#

Je sais pas faire désolé

keen narwhal
queen ocean
# empty mauve

Essaie de retirer le / de la description de ta commande

keen narwhal
#

option.setName("Type")

#

Ça viens de la non ?

#

Je crois que on peut pas mettre de maj

#

J’suis pas certain

empty mauve
#

@keen narwhal

coral mountain
#

Bonjour, un dev JS disponible ? je débute et j'ai une erreur (qui je pense est très basique car il parle de permission) mais je n'arrive pas à résoudre ça

keen narwhal
coral mountain
#

j'avais mon code mais il affiche la même erreur que sur le tuto

keen narwhal
#

Et le code ?

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

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

Client.on("ready", () => {
    console.log("Bot en ligne");
});

client.login("XXXXXXXX")
ashen rapids
#

Tu as mal faire le require

#

c'pas comme ça qu'un require se fait

keen narwhal
#

Ah bon ?

#

J’fais que du TS moi j’arrive plus à voir ce genre d’erreur

ashen rapids
#

require('discord.js');

#

Car sans mettre les ', tu essaie de faire référence à une variable ... qui n'existe pas

keen narwhal
#

Ah oui en effet

coral mountain
#

j'ai suivis le tuto ytb car de base j'avais fais ça :

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

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

client.login('xxxxxxx');
keen narwhal
#

J’avais pas vu ça

ashen rapids
#

Le mettre entre ' indique que tu vas chercher le module

#

const Discord = require('discord.js'); est la manière correcte de le faire

keen narwhal
#

Juste faut bien l’importer quoi

ashen rapids
#

Je veux dire au niveau du require*
Après là ton code, c'est une ancienne version de DiscordJS je crois

keen narwhal
#

Envoie le tuto que tu regarde

#

Ou screen package.json

coral mountain
#

Ici, nous allons voir les prérequis afin de commencer à développer votre propre bot discord !
Avec la dernière version de discord.js (v14) sous Node JS

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

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

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

Discord developer ...

▶ Play video
#

version 14.9

pure tiger
# coral mountain https://www.youtube.com/watch?v=IErYPx-meD4

Alors la solution la plus simple serait de lire la doc puis si tu comprends pas la doc ça veut dire que tu maîtrise pas node donc tu apprend node (avec la doc pas youtube ou je ne sais trop quoi) puis si tu comprends pas node tu lis la doc mdn et tu apprend js et la si tu comprends pas tu peux chercher sur des forums de dev ou des vidéos (après avoir relu la doc)
Mais tu dois t'assurer de comprendre ce que tu fais sinon tu n'y arriveras jamais

pastel dust
#

@pure tiger tu peux m aider à coder stp j y arrive pq s

#

Pas*

floral bolt
#

spoil pour toi merlin : je pense qu'il n'a pas lu ton message 😄

pure tiger
fleet scaffold
floral bolt
#

Je suis tellement d'accord avec toi, mais 1 personne sur 15 qui vient ici pour de l'aide n'a pas lu une ligne de doc :/

pure tiger
#

Je sais pas c'est peut être le verbe "lire" ou le mot "doc" qui doit effrayer

floral bolt
fleet scaffold
#

c'est le ressenti que j'ai en école d'info

#

ont leur dit "doc"

#

ils sont en mode "une quoi ???"

floral bolt
#

femme prof elle exprime bien le fait que les eleves "Adore" lire

pure tiger
#

@pastel dust vas y je vais t'aider un peu

pastel dust
pure tiger
#

Bah la

#

Quoique je vais dormir

pastel dust
pastel dust
pure tiger
pastel dust
#

@pure tiger okk

pastel dust
#

Jsp

coral mountain
keen narwhal
dire latch
empty mauve
still raptor
#

Salut, j'ais cette erreur pour discord.js v13 comment faire ?

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

Voici la partis concerner:

    if (!interaction.isCommand()) return;

    const command = client.commands.find(interaction.commandName);

    if (!command) return;

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

client.commands = new Collection();

still raptor
#

Uncaught ReferenceError ReferenceError: Collection is not defined

#

Ok sais bon ca marche

#

Maintenant, j'exécute la commande met il envoie pas et j'ais pas d'erreur

La commande que je veux envoyer:

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

module.exports = {
    data: new SlashCommandBuilder()
        .setName('test')
        .setDescription('Une commande de test'),

    async execute(interaction) {
        // Créer un message de réponse
        const responseEmbed = new MessageEmbed()
            .setColor('#0099ff')
            .setTitle('Commande de test')
            .setDescription('Ceci est un message de réponse pour la commande de test.');

        // Répondre à l'interaction
        await interaction.reply({ embeds: [responseEmbed] });
    },
};```
still raptor
#

Du coup sais quoi la solutions ?

woven cosmos
#

J'aurais mieux fait d'utiliser des if et else normal ? ;-;

modest condor
#

oui c'est vraiment illisible les ternaires comme ça ^^
en général les ternaires dés que ça commence à devenir imbriqué, ou trop complexe, on repasse ça en if-else

woven cosmos
#

Ouai mais ça me rendais triste de pas pouvoir utiliser le $: de svelte :(

#

Et puis j'ai pas trouvé compliqué a écrire au final

floral bolt
#

D'accords et ?

#

pardon ton texte fesais trop chatGéPéTé

fleet scaffold
#

si y a des cors ça veut dire que tu peux pas faire de requête à travers le navigateur harold

floral bolt
#

du coup ton probleme c'est que tu fait un requette coté client et que les serveurs google bloque ces fameuse requettes

#

pardon ya une une coupure de wifi 😮

fleet scaffold
#

Marchera jamais de cette façon oui.

#

ah ont peut retourner des hraders

floral bolt
#

met * le temps de dev

#

et voit si ca marche

#

et si ca marche pas c'est normal, c'est que c'est la réponse 😄

fleet scaffold
#

setHeaders n'existe pas

#

Et ils précisent bien que c'est pas possible d'exister le script depuis un site Web externe

#

When visiting the web app URL you will see "Hello World" in the browser. Due to security considerations, scripts cannot directly return content to a browser. Instead, they must serve the content from a different URL. This is why the URL in the browser for output created via this web app will be different than the original script URL.

#

Celon la docs App script

keen narwhal
#

hey quelqu'un sait pk fa fait ça ?

Index

const Games = require("./Models/Games");
const logger = require("../Libs/logger");

module.exports = () => {
    // sync la table Games
    Games.sync();
    logger.print("La base de donnée est bien connectée !").success();
}

Database

const sequelize = require("sequelize");
require("dotenv");

const sequelizeInstance = new sequelize.Sequelize({
    host: "localhost",
    username: "root",
    password: process.env.DB_PASSWORD,
    database: "nowlid",
    port: 3306,
    dialect: 'mysql',
    define: {
        timestamps: true
    },
    logging: false,
});

module.exports = { sequelizeInstance };

Et games

const sequelize = require("sequelize");
const {sequelizeInstance} = require("../database");

const Games = sequelizeInstance.define('Games', {
    guildId: {
        type: sequelize.STRING,
        unique: true,
    }
});

module.exports = {
  Games
};
floral bolt
#

Comme tu peux me voir dans ton erreur Games.sync() n’est pas une fonction, donc ça n’existe pas

floral bolt
#

Je ne sais pas, c’est pas mon bot hein

cursive hawk
#

Bonjour, je suis tout nouveau et en voulant créé mon BOT discord bah je rencontre des petits soucis. Si jamais vous auriez la solution à mon problème :

#

comment faire pour qu'il accepte les chiffres ?

floral bolt
#

Enfaite c’est écris … tu essayes de mettre du typescript dans un fichier JavaScript

cursive hawk
#

Ah d'accord, je comprend mieux, merci

surreal sparrow
#

Tu n’a pas besoin de SlashCommand c’est directement intégré dans la bibliothèque de discord js maintenant

worthy drift
#

hey j'ait un problème quand je clique sur le teste rouge sa me donne sa

#

le java

#
<script>
      // JavaScript pour la fonctionnalité des petites images
      const grandesImages = document.querySelectorAll('.image img');
const petitesImages = document.querySelectorAll('.petite-image img');

petitesImages.forEach((petiteImage, index) => {
  petiteImage.addEventListener('click', () => {
    grandesImages.forEach(grandeImage => {
      grandeImage.src = petitesImages[index].src;
    });
  });
});

grandesImages[0].src = petitesImages[0].src;

      
      // JavaScript pour le bouton ajouter au panier
      const boutonAjouterPanier = document.getElementById('ajouter-panier');
      boutonAjouterPanier.addEventListener('click', () => {
        const quantite = document.getElementById('quantite').value;
        alert(`Vous avez ajouté ${quantite} article(s) au panier.`);
      });
      
      
    </script>
mellow parrot
#

Bonjour, j'essaye de faire en sorte que quand un embed est modifié dans un message, le bot le détecte et met les information dans un embed.. le truc c'est que sa fonctionne pas..

const embed = new EmbedBuilder()
        .setColor('#FFA500')
        .setTitle('Message édité')
        .setTimestamp();

    if (oldMessage.content !== newMessage.content) {
        embed.addFields(
            { name: 'Auteur', value: oldMessage.author.tag },
            { name: 'Salon', value: oldMessage.channel.toString() },
            { name: 'Ancien contenu - Texte', value: oldMessage.content || '\u200B' },
            { name: 'Nouveau contenu - Texte', value: newMessage.content || '\u200B' },
        );
    } else if (oldMessage.embeds.length || newMessage.embeds.length) {
        const oldEmbed = oldMessage.embeds[0];
        const newEmbed = newMessage.embeds[0];

        embed.addFields(
            { name: 'Auteur', value: oldMessage.author.tag },
            { name: 'Salon', value: oldMessage.channel.toString() },
        );

        if (oldEmbed) {
            embed.addFields('Ancien contenu - Embed', `Titre : ${oldEmbed.title || '\u200B'}\nDescription : ${oldEmbed.description || '\u200B'}\nURL : ${oldEmbed.url || '\u200B'}\nTimestamp : ${oldEmbed.timestamp || '\u200B'}`);
        }

        if (newEmbed) {
            embed.addFields('Nouveau contenu - Embed', `Titre : ${newEmbed.title || '\u200B'}\nDescription : ${newEmbed.description || '\u200B'}\nURL : ${newEmbed.url || '\u200B'}\nTimestamp : ${newEmbed.timestamp || '\u200B'}`);
        }```
#

et voici l'erreur

#

merci de votre aide !

surreal sparrow
#
if (oldEmbed) {
    embed.addFields(
        {
            name: 'Ancien contenu - Embed',
            value: `Titre : ${oldEmbed.title || '\u200B'}\nDescription : ${oldEmbed.description || '\u200B'}\nURL : ${oldEmbed.url || '\u200B'}\nTimestamp : ${oldEmbed.timestamp || '\u200B'}`
        }
    );
}

if (newEmbed) {
    embed.addFields(
        {
            name: 'Nouveau contenu - Embed',
            value: `Titre : ${newEmbed.title || '\u200B'}\nDescription : ${newEmbed.description || '\u200B'}\nURL : ${newEmbed.url || '\u200B'}\nTimestamp : ${newEmbed.timestamp || '\u200B'}`
        }
    );
}

mellow parrot
#

Merci beaucoup !

mellow parrot
# surreal sparrow Cadeau

Le code que tu ma fourni, fonctionne bien, mais sais tu pourquoi quand je modifie un message normal, il n'envoi rien ?
ça concerne cette partit du code, mais je trouve rien d'étrange :

const embed = new EmbedBuilder()
        .setColor('#FFA500')
        .setTitle('Message édité')
        .setTimestamp();

    if (oldMessage.content !== newMessage.content) {
        embed.addFields(
            { name: 'Auteur', value: oldMessage.author.tag },
            { name: 'Salon', value: oldMessage.channel.toString() },
            { name: 'Ancien contenu - Texte', value: oldMessage.content || '\u200B' },
            { name: 'Nouveau contenu - Texte', value: newMessage.content || '\u200B' },
        );
    }```
#

j'ai aucune erreurs*

surreal sparrow
#

C'est pour des logs sa ?

mellow parrot
mellow parrot
surreal sparrow
#

Compliqué ton code

#

Pour mes logs j'ai que sa perso

mellow parrot
#

Non, je trouve pas, je voudrais uniquement le faire fonctionner x)

surreal sparrow
#
client.on("messageUpdate", (oldMessage, newMessage) => {
    if (oldMessage.channelId === channelIdToIgnore) return;

    let attachmentURL = '';
    if (oldMessage.attachments.size > 0) {
        attachmentURL = oldMessage.attachments.first().url;
    }

    const embedLogsMessageEdit = new MessageEmbed()
        .setColor(config.colorbot)
        .setDescription(`<@${oldMessage.author.id}> a modifié son [message](https://discord.com/channels/${oldMessage.guildId}/${oldMessage.channelId}/${oldMessage.id}) dans le salon <#${oldMessage.channel.id}>.`)
        .addField(`Ancien`, `> ${oldMessage.content}`)
        .addField(`Nouveau`, `> ${newMessage.content}`)
        .setAuthor(`Message modifié - ${oldMessage.author.tag}`, oldMessage.author.displayAvatarURL({ dynamic: true }))
        .setTimestamp();

    if (attachmentURL) {
        embedLogsMessageEdit.setImage(attachmentURL);
    }

    client.guilds.cache.get(config.idserver).channels.cache.get(config.channellogs).send({ embeds: [embedLogsMessageEdit] });
});

#

Pour les logs de d'edit de message

#

Il n'y a pas besoin de faire temps de boucle

surreal sparrow
#

Non

#

Mais les embeds pour quoi faire ?

mellow parrot
#

Un embed peut être modifié

surreal sparrow
#

Oui par un bot

#

Seulement

mellow parrot
#

Et je trouve ça intéressant

#

En vrai je sais pas..

surreal sparrow
#

Je te modifie mon code bouge pas

#

C'est inutile

#

Seul les bots peuvent envoyés des embed ^^

mellow parrot
#

Tu pense ?

mellow parrot
#

C'est pour ça que je veux que les embed soient en logs comme sa

surreal sparrow
#
client.on("messageUpdate", (oldMessage, newMessage) => {
    if (oldMessage.channelId === channelIdToIgnore) return;

    const oldEmbed = oldMessage.embeds[0];
    const newEmbed = newMessage.embeds[0];

    if (oldMessage.content === newMessage.content && (!oldEmbed || !newEmbed)) return;

    let attachmentURL = '';
    if (oldMessage.attachments.size > 0) {
        attachmentURL = oldMessage.attachments.first().url;
    }

    const embedLogsMessageEdit = new MessageEmbed()
        .setColor(config.colorbot)
        .setDescription(`<@${oldMessage.author.id}> a modifié son [message](https://discord.com/channels/${oldMessage.guildId}/${oldMessage.channelId}/${oldMessage.id}) dans le salon <#${oldMessage.channel.id}>.`)
        .setAuthor(`Message modifié - ${oldMessage.author.tag}`, oldMessage.author.displayAvatarURL({ dynamic: true }))
        .setTimestamp();

    if (oldMessage.content !== newMessage.content) {
        embedLogsMessageEdit
            .addField(`Ancien`, `> ${oldMessage.content}`)
            .addField(`Nouveau`, `> ${newMessage.content}`);
    } else if (oldEmbed && newEmbed) {
        embedLogsMessageEdit
            .addField(`Ancien embed`, `Titre: ${oldEmbed.title || '\u200B'}\nDescription: ${oldEmbed.description || '\u200B'}\nURL: ${oldEmbed.url || '\u200B'}\nTimestamp: ${oldEmbed.timestamp || '\u200B'}`)
            .addField(`Nouveau embed`, `Titre: ${newEmbed.title || '\u200B'}\nDescription: ${newEmbed.description || '\u200B'}\nURL: ${newEmbed.url || '\u200B'}\nTimestamp: ${newEmbed.timestamp || '\u200B'}`);
    }

    if (attachmentURL) {
        embedLogsMessageEdit.setImage(attachmentURL);
    }

    client.guilds.cache.get(config.idserver).channels.cache.get(config.channellogs).send({ embeds: [embedLogsMessageEdit] });
});

#

Cadeau

#

Il faut que tu modifie le code à ta guise

#

J'ai pas essayé, donc à voir si sa marche

mellow parrot
#

D'accord, merci beaucoup !
Je vais regarder ça demain

keen narwhal
fleet scaffold
mellow parrot
#

Dans le module anti raid de mon bot

#

Mais d'après toi, la modification d'un embed c'est utile ?

#

De log ?

keen narwhal
#

Non aucun embed sera modifié hormis par un bot

keen narwhal
fleet scaffold
subtle zephyr
#

Bonjour, alors j'ai un fait un bot discord sur visual studio code, avec discord.js V13 et node V18

  • Lorsque je lance le bot sur mon pc je n'ai aucun problème les selects menues marche les commandes ect également..

  • Mais dès que j'essaye sur un hébergeur j'ai une erreur du type :

Uncaught Exception :Error: Cannot find module './utils/handlers/CommandUtil'
Require stack:

  • /home/container/index.js Origine :uncaughtException

Alors que tout mes fichiers sont la et du coup lorsque je me rend dans l'index sur l'hébergeur j'ai des panneaux attentions sur quelques lignes, est ce que quelqu'un serait en mesure de m'aider ?

visual sequoia
#

Salut les plus bg de gca !

Petite question pour vous aujourd’hui: cela fait maintenant une semaine que j’essaye d’héberger mon bot sur mon vps avec pterodactyl sauf que j’ai l’erreur (voir image) j’ai essayé de mettre a jour node il était en v14 je l’ai passer en v16 mais cela me fait toujours cette erreur mais cela me le fait seulement sur mon vps si je vais chez un hébergeur spécialisé node js cela fonctionne…

Merci d’avance!

keen narwhal
#

v14 requires Node 16.9 or higher

visual sequoia
visual sequoia
keen narwhal
#

Hum

#

Alors peut être que ton eggs est casser

#

J’en avais un qui fonctionnais sur ptero pour node js

visual sequoia
visual sequoia
keen narwhal
#

Perso j’étais tomber sur un repo git hub avec une tonne d’eggs

#

Attend je vais chercher