#javascript-typescript
1 messages · Page 16 of 1
Ah tu le conseil qui pour faire des commandes slash
avez vous une résolution au problème ?
Le guide officiel de discordjs
Ah ok
Apprendre nodejs
C’est pas très compliqué tu ouvre ton navigateur tu marque open classroom puis tu vas dans JavaScript !
c'est bon j'ai trouvé merci !
Je te laisse la solution entre les deux https://stackoverflow.com/questions/68103612/how-to-drop-the-query-parameters-after-a-redirect-with-nextjs
In NextJS,
how can I use redirect to turn URL like /page?foo=bar into /page/bar ?
I read https://nextjs.org/docs/api-reference/next.config.js/redirects but couldn't find a solution.
What I have tod...
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
Je peux te l'host
Franchement ovh 3€ le vps c’est donné et tu peux même mettre plusieurs petit bot dessus
Là tu n'utilise pas les slash commands ?
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.
Je te conseillerai dans un premier temps de familiariser avec les slash commands, le guide officiel de discordjs est très bien pour ça
Utilise un embedbuilder
comme ceci
@glados
je teste ça mrc
Yop 👀
Je suis en train d'essayer d'implémenter ma base de données MongoDB à mon site web, quelle galère 
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
Tu connectes ta db depuis ton interface client..?
J'ai trouvé, bon c'est en Angleterre mais ça passe, je préfère mettre les 3€ dans mon serveur de jeu plutôt que pour un bot Discord ^^
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
Je comprend mais quand tu auras un petit vps perso tu comprendra la liberté et le plaisir qu’est de gérer sa machine
Je connais déjà, mais malheureusement, la vie n'est pas si simple 😐
Normalement d'ici 3 mois je pourrais ^^
Pour 3€/mois tu peux pas dire ça roh j’avais 10 ans je payais mon hébergeur à 3€ avec des petits sondages rémunérer j’en avais pour une heure par mois
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
🤷♀️
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
Pas avec VueJS malheureux !
Ah ? Comment ça ? 🤔
console.log(process.env)
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 ^^
Ah merde, mais du coup faut faire comment alors ?
Tu es certains de ne pas avoir rajouté d'espaces ou de caractères ? Que le token est valide ?
Il te faut faire avec une API :)
Token valide oui
Bah regarde je peu te montrer j'en regenererais un
Sauf si je suis teubé tout me semble correct
Euh c'est à dire ? l'API de mongo ?
Roh putain si je suis débilé
Enlève tes guillemets ^^
oui aussi
quelle con
Non les " sont juste
Il faut que tu crée une API à ton site qui leur permettrait d'interagir et que les utilisateurs ne voient pas ce qui se passe côté serveur :)
Oui
Ah okok du coup nouveau challenge pour moi lol, tu aurais des ressources ou des conseils pour que je puisses faire ça ?
ici, tu as un exemple avec VueJS et ExpressJS en Server Side : https://github.com/bbachi/vuejs-nodejs-example
Ow, mercii
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)
@lone flax t’avais pas eu le même problème ?
Si, voir plus haut mon message
@hazy mirage ou @queen ocean vous voulez pas Ping le message de de wasied ?
Alors je me permet d'intervenir mais on dit épingler

desoler j'avais pas vue, je l'ai fait par intuition sa a resolu mon problème , merci ^^
Ou pin en anglais, pas ping
Yes sir
Bloquer le message sinon ?
Oui dis le à mon correcteur
Hein ?
Laisse tomber c’est pas explicite
Les gens lisent pas les msg épinglés, go juste leur dire d'update discord.js 👌
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
}
})```
faire une commande pour crée des commandes qui renvois des lien ? 😄
allow="autoplay" sur ton iframe
rien a voir pardon
On reste sur un Discord d’entraide, pas besoin de tout automatiser 😦
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)
Sans ton code ca va être compliqué de t'aider :/
pourquoi tu fais Emission_message pui Reception message ?
Si tu fais direct add puis reception ca marche
pour le ping
Tu parles de add-message ?
Oui
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});"
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é
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')
dans un event nomé messageUpdate
oui, mais y'a bien un endroit où tu fais <Client>.on(...)
dans mon index, qui charge les évent
Je peux voir ça ?
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);```
La fonction loadEvents() ?
tkt
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("--------------------------------");
});
};```
Tes autres évènements fonctionnent ? Tes autres variables aussi ?
de mon msg del ?
yep
module.exports = async (bot, message) => {```
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 ?
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
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 ?
Tu peux mettre tout ton évènement en commentaire et simplement envoyer bot, newMessage et oldMessage dans la console ?
pas la peine pour le moment ^^
Salut
👍
La console ma envoyé une tone de chose
imposible que j'envoi tout sur discord même avec le nitro x)
N'envoie rien ici 👀
Normalement, tu as reçu trois message dans la console. Ils devraient tous commencer par un nom de classe. Pourrais-tu me les donner ?
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 🥲
Ton code est censé faire quoi ? Qu'est que tu attends de ton code et qui ne marche pas ?
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
je suppose que dcp, tu essaie de faire un handler pour lancer tous les events qui se trouvent dans le dossier events ?
Yes
En haut de l'event tu veux dire en haut du handler ?
nan
en haut du fichier de ton event
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é
Eumh en faite c'est plus compliqué x) C'est le package npm https://clashofclans.js.org/ qui va aller fetch
JavaScript library for interacting with the Clash of Clans API
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
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);
};
Ouais je vois, mais le bot va savoir quel fichier faudra aller chercher ?
Là, il va récupérer tous les fichiers qui se trouvent dans le dossier events
aaa
ah
Regarde useContext
quand tu ne connais pas c'est compliquer a mettre en place mais apres c'est assez simple
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
Mec, j'ai oublier de mettre les events de clash of clans dans le dossier clashEvents 🤡 
Je fais des tests depuis un peu moins de 2h la

Comment perdre bêtement son temps....
le pire c'est qu'il m'arrive très souvent ce genre de pb 😂
Bon du coup par contre ça marche pas quoi UwU
Je n'ai vraiment aucune idée de quoi faire
Non justement
🤔
Tu peux me faire un resumé de ton soucis ?
Le nom des events est bien envoyé comme étant "chargé"
oui
Il veut faire un "event handler" pour un framework permettant d'interagir avec l'api de clash of clans
playerCapitalContribute ? Parce que justement, c'est ça qui ne se déclenche pas 
➜ [Voir le message original](#javascript-typescript message)
d'accord et bien bon courage 😉
je regarderais si j'ai 10 minutes
Bon voila mais du coup j'ai vraiment 0 erreur, y'a juste absolument rien qui se passe
Du coup jsp quoi montrer
quand tu mets des log de tous partout ca te renvois quoi ?
Comment ça ? Tu veux que j'en mette ou ? Si tu parles du fichier playerCapitalContribue, y'a rien qui se fait
yes
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 👇
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 
J'ai mis ça
module.exports = (oldPlayer, newPlayer) => {
console.log(oldPlayer, newPlayer)
};
Donc le fichier est bien appelé yipi
Plus qu’à enlever le console.log() et à remplacer par ton code 
Non mais c'est littéralement impossible que ça m'envoie tout ça, genre ça voudrait dire que tout le monde à fait cette action précise
enfaite tu veux quoi exactement ?
enfin tu veux savoir quoi sur le joueur ?
@misty parcel
Je veux savoir si ces dernières 30 secondes, il à fait l'action (Mettre des ressources dans la base)
envois moi un user complet
Via l'API ?
via t'es logs
Ah euh j'ai fais d'autres test en attendant et euh
En faite, les achievements de oldPlayer sont undefined 😦
fait juste un console.log(newPlayer)
ok
ça m'a log ce qu'il y a sur l'API, le même chose
C'est tellement grand 
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
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```
Il nous faudra un peu plus que ça 😅
Yep je vois
Mais hésite pas à donner du contexte la prochaine fois, ça sera plus simple pour t'aider !
ok
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.....
//Déclaration
const { EmbedBuilder } = require("discord.js)
//Construction de ton embed
const embed = new EmbedBuilder()
.setColor
.setTitle
.setThumbnail... Ect```
Personnellement, je construis mes embed comme ça
A voir si ça fonctionne.
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
okay
Alors j'ai eu un json mais il est tellement pas indenté que j'en ai mal aux yeux
JSON.stringify(oldPlayer, null, 4)
Oui je suis sur tel
Merde …
?
J’espere que tu as vus car j’ai modifier le message au lieu d’en renvoyer un
Oui mais bon j'ai pas retenu quoi :(
Regarde array.map sur l’internet
ça m'a log des trucs mais pas les infos du joueur, gerne ça m'a log ma clé pour l'API, le nom de ma clé etc
ok
🤔
mhh
Ou alors player[0].achievements
Ah mais oui mais map c'est pour les array
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
Oui mais map player achiebelent
okok
Ouais mais dans le map je mets rien en paramètres du coup ?
Bah oldPlayer.map((player) => {})
Si ça marche pas essaye de jeter ton ordi par la fenêtre
Mais ça va pas marcher
Vu que oldPlayer c'est pas un Array
oldPlayer.achievements.map(() => {})
Ok chef
TypeError: Cannot read properties of undefined (reading 'map')
trop bizarre mdr

Log oldPlayer.Player
Tu l'es déjà
Tout simplement :
.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})
Pas l'impression qu'il manque un petit quelque chose ?
Indice: c’est sensé être un string
Oui les guillemets mais elles se sont retirées avec les ´´ pour mettre du code sur Discord….
Ou peut être que tu parles du <#${………} sans le « > » ? C’est parce que je suis sur un serveur de test et les salons Ping j’ai mis ceux de mon serveur officiel
Il parle de la parenthèse que tu as oublié
Voilà tout
oui, elles se sont retirées avec les `` pour inscrire du code sur discord...
après je doute fortement qu'oublier des guillemets ammènerait à cette erreur....
.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
peux tu m'expliquer pourquoi l'erreur vient de là ?
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 
J'ai cherché l'erreur sur google, et ils disent que c'est ça
j'ai confiance en google

Apprend à faire tes recherches
je les ai fait, et j'ai fais ce que tu m'as dit, rien a changé
components attend un tableau d'action row
pas un tableau de component
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
C’est fou ce genre d’erreur serais pas là en Typescript
Donc les autres builders ont le même fonctionnement donc ça peut être aussi le cas pour ton actionbuilder etc..
Adopter TS les gens
Si ils ne maîtrise pas le js je pense que ts n'est pas la solution
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é
mais, que faire pour arranger l'erreur de ce paramètre en question ?
Désolé j'ai pas vraiment le temps pour corriger ton code, il faut que tu commence a prendre ton envole et a lire la doc tout seul
Envole toi petit piou piou !
Le problème viens surement de ton setEmoji, il doit recevoir un GuildEmoji hors la tu lui fournis un string
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()
oui je sais, mais sois clair, tu me dis que une mauvaise config de embedbuilder, mais comment corriger ?
J'ai été clair, a toi de faire les recherches nécessaires, discordjs est l'un des package les mieux documenté alors je pense qu'il faut juste que tu "essaye" de chercher
Son problème a déjà été indiqué 👀
Quelqu'un de dispo pour faire un petit test de mon bot github ?
ça devrai pas prendre plus de 5 min
J’ai mis du temps à comprendre mais c’est bon j’ai compris merci je vais essayer
Envoie
C'est pas si compliqué à comprendre je te recommande vivement d'apprendre le JS avec de vouloir faire un bot
Je trouve pas le lien permettant d'ajouter le bot sur un repo
Je te recommande également d'utiliser la documentation et / ou le guide de d.JS
Bonjour j'ai un problème dans mon bot quand je active une commande il crash
Jsp pourquoi il crash
Si je traduit ton erreur :
La variable nommée "e" n'est pas définie (est égale à undefined en gros)
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
Qui m’a Ping là 
je sais pas
npm i @types/node
sa ne marche toujours pas..
de lancer mon bot
tu as pas import le module event de node
renvoie la commande mais normalement oui
C’est surtout qu’il n’a pas à l’importer 🤔
On peut avoir le code please ?
c'pas le même truc que node:fs ?
Non
ah autant pour moi j'ai jamais fais de djs
j'ai installer pas mal de modules de docs
Surement ta version de node qui est trop vielle
je suis en v12 mais sa la mis tout seul
comment on la up ?
Faut que tu passe à node 16 minimum
Pour utiliser discord.js v14 il te faut node 16.9.0 minimum
(Pareil pour v13 👀)
oe je suis en v13
16.6.0 minimum pour la v13
Ah ok
je trouve pas comment on fait pour le vps
AH
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
sa reste toujours en v12 normal ?
Si tu essaie un apt purge nodejs ?
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
ben dcp c ce que je viens de lui proposer de faire x)
Go utiliser nvm 👀
Quand tu taff sur plusieurs projets, qui ont besoin de version de node différents, c'est pas viable ton truc
j'ai plus node la il veux même plus s'installer
pas faux
-bash: /usr/bin/node: No such file or directory
ah oui logique
faut que tu refasse ça
^^
j'ai sa @glass cargo
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
Désolé, je ne peux pas vous aider avec ça
La variable bot n'est pas définie
Et bien il faut du code pour voir l'erreur 😅
Ligne 9 de loadCommands !
Question vous avez pas un tuto pour faire du dicord.js
Mrc mes comment en fait pour changer l'activiter du bot ?
Discord.js is a powerful node.js module that allows you to interact with the Discord API very easily. It takes a much more object-oriented approach than most other JS Discord libraries, making your bot's code significantly tidier and easier to comprehend.
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
tu as un champ de recherche en haut a droite
Tu devrais commencer avec le guide https://discordjs.guide/#before-you-begin puis tu pourras faire ce que tu veux (et apprendre les bases du JS aussi
)
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 !
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.
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
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
Autant suivre cette série mais en adaptant pour djs v14
https://youtube.com/playlist?list=PLuWyq_EO5_AJ4pXBLXi3KgAb4_uYVkmr3
Le meilleur que je puisse conseiller est le guide officiel de discordjs, certe il faut lire mais c'est un mal nécessaire
Oh que oui
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
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 ?
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
déjà fait
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
Parce qu'il ne correspond pas au format imposé
ah bon comment puije le faire alors?
Tu peux nous faire un screen du resultat sur discord ?
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
Tu utilise des package déprécié
Clic sur le bot pour le profil
?
Ok tu es sur que tu a bien refresh ton bot ?
Sinon go: https://old.discordjs.dev/#/docs/discord.js/14.9.0/class/ClientUser?scrollTo=setPresence
Discord.js is a powerful node.js module that allows you to interact with the Discord API very easily. It takes a much more object-oriented approach than most other JS Discord libraries, making your bot's code significantly tidier and easier to comprehend.
oui je suis sur et j'ai deja check la doc sa marche pas
code oui bien appelé et pb d'intent non car il les as tous
tu peut voc ? jte montre tous
jreviens
Non je peux pas voc
c'est à dire ?
Tu utilise discordjs v11 faut se mettre a jour
je suis en v13 mais il me dit discord.js.oldv11
Si il te parle de la v11 c'est pas pour rien
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 ?
Il y a une doc pour Sheweny JS
Yep ! https://sheweny.js.org
Powerful framework for Discord.js
Salut, je comprends pas pourquoi tu n'utilise pas les handlers que tu as fait.
Tu fais addrole.execute sauf que execute n'existe pas et en plus tu lui transmet "member" qui n'est déclaré nul part.
Et addrole demande un client pas un membre en plus de ça il fait un deuxième event wtf.
Il faut vraiiiment revoir tes bases en javascript
Bah enfaîte le soucis c'est que j'ai tout essayé.... et je pense qu'avec de tels bases je n'aurais pas réussi à faire tout ce code non ?
Le pb c'est que là je vois des structures similaires aux handlers donné par le guide mais ton fichier addrole ne respecte pas les standards imposé par ton handler
Ce handler ne vient pas de toi il y a encore quelques jours tu faisais des erreurs digne de personne qui a jamais toucher à JS
Faire une erreur que personne n'a résolu ? J'ai reçu plus de 5 propositions différentes ? dont deux de ta part qui n'ont pas fonctionnées.....
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
Il faut comprendre que 95% des problèmes qu'on nous demande est corrigeable juste en lisant les documentations fournis. Donc je t'expose les problèmes qui te mettent dans la sauce qu'ils te plaisent ou non. Faire une cascade d'event et appeler des fonctions inexistante avec pas les bon paramètres oui pour moi c'est digne de quelqu'un qui n'as pas de base solide en javascript.
J’ai pas vraiment regarder ton problème je t’avouerais
Peut être mais on est pas là pour faire ton code
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
Ah bah si le problème je l’ai trouver mdr
.
J'en suis conscient, mais quand tu reçois plus de critiques que de l'aide, c'est à en se poser des questions...
Le problème c’est que ici on est pas là pour faire le code à la place des gens. On en a marre de voir des erreurs qui viennent d’un non apprentissage du langage
On a l’impression que les gens pensent que discordJS est un langage
à quel moment ai je dis que vous deviez faire mon code ??
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
Le conseil que je te donne si tu débute c’est d’utiliser sheweny js
Revois tout simplement ton event handler et ça devrais aller
au aucun moment j'ai dis que la réponse @drowsy ocean n'allait pas, mais 2 lignes sur 4 sont là pour dénigrer.....
@keen narwhal T'es sponso ? 😆
Merci !
Non j’admire son travail et c’est vraiment bien pour les débutants , quitte à ne pas avoir de connaissance en JavaScript autant éviter l’étape de la structure du bot
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
Il n'y a aucun dénigrement dans l'analyse que je t'ai donné, je n'ai fait qu'évoqué les pb de ton code
Alors je pense que tu n’as pas compris … il dénigre pas ton travaille c’est juste que 1 message sur 4 qui arrive pour une demande d’aide ici c’est des qui peuvent être corriger juste en lisant un peu
Ou au pire petit copier coller à chatGPT je suis sur il trouve la solution x)
Je t’assure que si x)
Je suis pour l'utilisation de chatGPT mais pas pour les débutants
Oui mais pour les erreurs de syntaxes etc ça évite de déranger des gens x)
C’est clair 😄 pour revenir dans 10 minutes pour dire que le code ne marche pas
Je comprends mais c'est au moment où tu es débutants que tu es censé trouver une organisation et une rigueur d'esprit et si tu les dirige sur chatGPT bah il seront full dépendant car ils ne feront jamais cette gymnastique
Oui c’est sur
Après je comprend pas le nombre d’erreur de syntaxe que on a ici
Ils ont pas d’ide ou quoi
La diff entre js et ts
Mais même en JS l’idée est d’enfer voir certaines erreurs de syntaxe non ?
Non js c'est full aveugle
Tu peux appeler ce que tu veux meme si ça existe pas
Roh le zoo
TS + webstorm = 
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
Je voulais le faire aussi mais si je le fais c’est en ts
Je pense le faire en js et en ts
si tu fais ça, précise au début de la vidéo LA VERSION de discord.js que tu utilise
Biensur
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 💀
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
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
Ta version de nodejs n'est pas la même
c'est la même
je le delete et je le réinstalle ?
Les deux
de quoi les deux ?
ahh x)
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
Fait voir le package.json
{
"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": ""
}```
Lui?
Oui alors tu utilise discordjs v12 et v11 il est complètement broken ton projet
Discordjs opus est déprécié je crois
Y’a pas dutout un autre moyen mais genre de le laisser ne v12 ?
Bah le pb de travailler avec des package anciens c'est qu'il risque de ne plus fonctionner un jour au l'autre
Normalement faut toujours travailler avec des versions récentes
Bah enfaite se que j’arrive pas à comprendre c’est que sa marche Nikel sur mon pc mais sur vps nada
comment je peux faire pour que mon bot il y es une commande ou il y a que 1 role qui a accès a cette commande?
Tu peux trouver la réponse sur internet
bah justement je cherche mais je trouve pas
juste pour savoir ? tu sais quel est l'erreur la ?
enfin quel est le plus important dans l'erreur que tu a recus ?
oe je pense pk
c'est quel partie ?
Uncaught TypeError TypeError: message.member.roles.hasPermission is not a function
Voila alors tu as ton probleme et ta solution au même endroit
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
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 ?
de ?
ya r
sa ne marche pas
c'est quoi ta version de djs ?
v12
La v12 est obsolète depuis un moment 👀
Ori te l'as dit plus haut
Quelqu'un sait pk sa fait ça ?
essaye de faire npm update
Le frerot veut pas comprendre
Pleiiin de package que tu utilise sont déprécié
tu l'as pris sur github ton bot non ?
Nop pk
c'est pas beau de mentir ?
Mouais, le bénéfice du doute ne passe pas là … 😄
Du coup tu dois prendre v14 pour le prochain 😉
Nn je veut apprendre le ts ou le js jsp le quel le plus facile
Le ts c'est un langage dérivié du javascript
c'est du javascript en plus complexe
Cela dépend de ta facon de coder
y'en a qui dev des bots discord sans apprendre le js, tout est possible mdrr !!
Du moin tu auras aucun tuto qui t'apprend le TS ou alors ils t'apprendront a passer du JS au TS
Oui beaucoup trop ici ca m'éxaspère
Genre toi bg non ?
quand je vois ca j'ai envie de me pendre par exemple
Xdd pourquoi
C'est pas moi qui demande de l'aide, évite d'être désagréable je te visais pas
Car utiliser plein de lib pour faire au final ce que fais la V14 de D.JS il y a plus mal opti
des modules qui mettent discord pour ce faire DL 💀
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 
Nn je l'ai pas compris comme vous le croyez votre message je disais genre toi tu a pas appris le js pour connaître le ts
T'es obliger de connaitre JS pour aller sur TS
Ah ok, yes en effet j'ai commencé par connaitre à 100% js. avant de passer au TS
c'est impossible sans
Ct ça que je voulais dire xd
Je sais que moi je suis une chèvre en js
Mais j'en est besoin
ça dépend, mongo pour le remote, et Quick db pour du stockage rapide 🤔 ?
Autant faire que du SQL dans ce cas
Avec un petit https://www.prisma.io/ qui vas bien
aucun rapport fin, le combo logique c'est redis/mongo ou redis/SQL
redis c'est absolument pas une norme
du stockage in memory
Et du stockage persistant
je dit redis car c'est la seule qui me vient en tête là
Pour du web why not , pour un bot discord non.
ç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"
Du coup pour finir @keen narwhal cherche un autre bot pour ton projet
oui non pour lui, c'est une autre histoire 💀
Context: bot debutant
Solution: Utilise ce que tu connais le mieux.
Je parle souvent en contexte moi , après chacun utilise les technos qu'il veut pour ses projets
de mon côté c'est Mysql avec Prisma.io comme ORM pour tout mes projets
Pour un petit bot toute les bdd sont prenable
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
C'est hybride tqt 😆
Un transformers le bail
pour un petit bot autant utiliser firebase 
@keen narwhal Tu peux m'envoyer le bot github plus haut là je suis curieux de voir l'utilité des deux db
Totalement scalable sur le temps et tout
Pour un petit bot autant sauvegarder en Json
( non vrm pas oublier cette phrase )
Tout stocker dans des .txt 🔥
non
j'ai vus un projet sympa passé
stocker vos mot de passe dans des .data
un mec a crée un systeme de db avec un serveur discord
en gros il save tous dans discord

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/
quelle enfer
Discord est down plus de bot
mdr
ya aussi typeorm
j'en est tester plein des orm et prisma vraiment je lui fais des bébés
ouais ca a l'air pas mal mais j'ai pas eu l'occasion de le test
genre téma comment c'est bien
et tout est typée
tout
il te génère 15K lignes de typage
c'est dans le meme style que graph ?
Comment ca ? Je connais pas je crois
tu peux lui demander que certaine partie de table
avec le meme code que prisma j'ai l'impression
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)
}
pas en SQL
t'es sûr ?
Je l'utilise tous les jours x) oui
Prisma est clairement une plus value
ça le faisait pas quand je l'utilisais
faut juste pas oublier de faire cette ligne dès que tu touche au schema
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,
}
ah, ouais okay
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

je mes un peu de voir dans l'eau quand j'ai assez d'argent
pour rajouter du gout
Mais avec l'inflation je vais de voir me contenter d'eau de pluie
ca va je mange des miettes de pain qui sont devant la boulangerie en ce moment 😄
La chance
Le meilleur que j'ai trouver c'est le vomie d'un clodo
qui avait manger du vomie
ah yes au moin tu as pris des vitamines !
😄
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 !

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
Je te remercie, je test ça demain !
Je verrais si tu es le champion héhé !
Merci beaucoup en tout cas !
Aucune raison que ca ne marche pas si tu sais l'adapter a ton code
Oui ne t'inquiètes pas pour moi ^^ !
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
Tu fais ta requête vers la bonne URL ? Elle a changé plusieurs fois
Je check ça ce soir merci
Alors ? ca fonctionne ?
J'ai pas eu le temps de me connecter au pc
qui a deja testé l'api timezonedb
Hey quelqu'un sait quel est le problème ?
bah le loader ce fait pas depuis le bon dossier
tu devrais mettre .. au lieu de simplement .
../commands
au lieu de ./commands
en gros
j'ai r compris
Bah réfléchis
sttpp re explique je suis venue ici pour qu'on m'explique car j'ai réfléchie
bah t'es pas capable de comprendre mes explications, ça sert à rien
déjà de quel fichier parle tu ?
du index ?
du loader ?
t'as lu mes messages ?
loader
okk
y a quoi dans loader
donc au lieu de ./ je met ../
comme ceci ?
comme ça ?
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 ...
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'
}
en plus sa existe pas
car le dossier commande est a la racine donc pas logic
comment je fais ça
__DIR__/commands
fonctionne pas
tu fais comment toi
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
non j'ai réglé et c'est propre au moins
pas sûr
/ = Root directory
. = This location
.. = Up a directory
./ = Current directory
../ = Parent of current directory
../../ = Two directories backwards
Sinon
@keen narwhal @fleet scaffold avec fs, il faut toujours partir de la racine du projet

./commands par exemple
Oui je sais c’est ultra mega chiant et je me demande toujours pk ils font pas comme tout le monde mdr
c'est le truc qu'il faisait
et ça marchait pas
Il faisait ../commands
non non
Ah
ça c'est moi qui ai tenté de lui faire tester
Son arborescence qui est peut-être différente 👀
loader et commands sont au même niveau
c'est pour ça que ça donne un bordel monstre
Trop bizarre 🤣
et honnêtement ça m'as fait chier après
ba c sa ma question
On a passer une journée sans question discord.JS 0_0
oh c'est vrai ! 😮
c'est une bonne journée XD
Mais je pense c'est car ils voit plus le channel
je pense aussi

🤔
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
bonjour j ai besoin d aide pour un bote je n arrive pas a le programmer si vous poviez m aider
Voilà tu as parler trop vite ! Bravo 😄
ya moyen tu m aide stp
Je sais pas faire désolé
On a quand même battu un record
Essaie de retirer le / de la description de ta commande
option.setName("Type")
Ça viens de la non ?
Je crois que on peut pas mettre de maj
J’suis pas certain
j'ais enlever le "/" et les MAJ qui falais pas maintenant j'ais sa
@keen narwhal
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
Et le code ?
const { Client, GatewayIntentBits } = require (discord.js);
const client = new Client ({
intents: [
GatewayIntentBits.Guilds
]
});
Client.on("ready", () => {
console.log("Bot en ligne");
});
client.login("XXXXXXXX")
require('discord.js');
Car sans mettre les ', tu essaie de faire référence à une variable ... qui n'existe pas
Ah oui en effet
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');
J’avais pas vu ça
Le mettre entre ' indique que tu vas chercher le module
const Discord = require('discord.js'); est la manière correcte de le faire
Non en sois importée gateway etc c’est tout aussi bien
Juste faut bien l’importer quoi
Je veux dire au niveau du require*
Après là ton code, c'est une ancienne version de DiscordJS je crois
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 ...
version 14.9
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
spoil pour toi merlin : je pense qu'il n'a pas lu ton message 😄
C'est bête pourtant c'est la même solution 🤣
il l'as enchanté ?
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 :/
Je sais pas c'est peut être le verbe "lire" ou le mot "doc" qui doit effrayer
si le concerné avait lu ca aurait pu être le cas
doc en général
lire
c'est le ressenti que j'ai en école d'info
ont leur dit "doc"
ils sont en mode "une quoi ???"
femme prof elle exprime bien le fait que les eleves "Adore" lire
C'est le machin avec les tout petits dessins côtes à côtes qui veulent dire des choses ?
@pastel dust vas y je vais t'aider un peu
Tu peux quand
Mdrr
Je t'es mp pour quand tu pourra
Ouais mais nan fait un fil ici mes mp c'est pour mes potes et mes relations pro
@pure tiger okk
Jsp
J’ai trouvé l’erreur, les redirection sont plus les mêmes
Toujours dans l'attente 👍
Sûrement que personne ne l’a utilisé
Ah
pour les tuto je te consseille https://www.youtube.com/@kajdev
Hey there, my name is Kaj and I'm from the Netherlands. I started discord bot development 4 years ago and since then I have expanded my skillset full stack web development. This channel aims to motivate and teach people programming and other things about tech.
Expand your skillset, learn new things or just watch for fun - you can do it all! On ...
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 });
}
});```
Ton client.commands mets le en collection
client.commands = new Collection();
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] });
},
};```
Du coup sais quoi la solutions ?
J'aurais mieux fait d'utiliser des if et else normal ? ;-;
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
Ouai mais ça me rendais triste de pas pouvoir utiliser le $: de svelte :(
Et puis j'ai pas trouvé compliqué a écrire au final
si y a des cors ça veut dire que tu peux pas faire de requête à travers le navigateur 
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 😮
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 😄
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
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
};
Comme tu peux me voir dans ton erreur Games.sync() n’est pas une fonction, donc ça n’existe pas
DONC je supp la ligne ?
Je ne sais pas, c’est pas mon bot hein
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 ?
Enfaite c’est écris … tu essayes de mettre du typescript dans un fichier JavaScript
Ah d'accord, je comprend mieux, merci
Ton problème est résolu ?
Tu n’a pas besoin de SlashCommand c’est directement intégré dans la bibliothèque de discord js maintenant
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>
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 !
Cadeau
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'}`
}
);
}
Merci beaucoup !
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*
Tu n'envoie pas l'embed
C'est pour des logs sa ?
Si l'embed est envoyé en dessous dans le code
Oui
Non, je trouve pas, je voudrais uniquement le faire fonctionner x)
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
Il prend les embed aussi ?
Un embed peut être modifié
Je te modifie mon code bouge pas
C'est inutile
Seul les bots peuvent envoyés des embed ^^
Tu pense ?
Nan, y'a les Self bot
C'est pour ça que je veux que les embed soient en logs comme sa
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
D'accord, merci beaucoup !
Je vais regarder ça demain
Perso pour les self bot j’utilise une autre méthode tu détecte si le message est un embed et si il est envoyer pas par un bot instant ban perm
les users peuvent plus send d'embed normalement
J'avais déjà cette idée dans ma tête
Dans le module anti raid de mon bot
Mais d'après toi, la modification d'un embed c'est utile ?
De log ?
Non aucun embed sera modifié hormis par un bot
Ah ouais ? Cool
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 ?
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!
v14 requires Node 16.9 or higher
Att je te dis ma version
Mon node est en v18.16.0
Hum
Alors peut être que ton eggs est casser
J’en avais un qui fonctionnais sur ptero pour node js
Peut-être j’ai pris le Discord generic
Tu serais me le passer ?

