#javascript-typescript
1 messages · Page 12 of 1
nan enft j'ai réussi c'étais les intents sur l'app
💪
j'ai un autre bot avec cette erreur c quoi?
Quelle version de node utilise tu ?
Ton pb est avec better sqlite3
?
plus précisément c quoi
jsp fait voir ton code
y a bcp de truc
T'es au début du projet non ?
nan il les fini il date depuis 1 ans
et puis la je suis revenue
avant il marcher très bien puis la
y a des erreurs
Ok faut que tu met a jour tes dépendances
tes libs quoi ^^
dans le dossier la ?
non dans le package.json
la commande ping
je ne veut pas en slash, basic
Tu n'as pas l'event pour déclencher
👉 Yo les potes, je vous fais un petit tuto de comment coder un bot Discord avec discord.js v14 ! Dans cette vidéo, on va créer l'handler des commandes et faire notre première commande, la commande ping ! N'hésite pas à t'abonner, activer la cloche, liker et rejoindre mes réseaux (merci) !
👉 #DISCORDJSV14 #BOTDISCORD #DISCORD
❤️ S'abonner : htt...
thanks
Dite question, car je trouve l'info nul part c'est possible d'installer une extension avec un service worker ?
Comment ça une extension ?
Littéralement une extension google
Généralement on emmène l'utilisateur sur le chrome web store
Okay je viens de me créer un compte du coup
A mon avis ce n'est pas possible. L'ajout doit être manuel (depuis le store ou les outils de dev - chrome://extensions), et quand bien même tu donnes les droits d'écriture d'un fichier, pas sûr que Chrome t'autorise à aller trifouiller ses répertoires
je vois
Après je sais pas si j'ai bien compris ta question ahah, tu veux installer une extension avec dedans un service worker ? Ou un service worker qui installe une extension ?
Car ta question est mind fuck 
deuxième option
ok 🙂
donc t'avais bien compris xd
(si jamais, première option, toutes les extensions ont un service worker en interne, persistant ou non, à toi de décider)
C'est super simple en vrai
ce que je prévois de faire l'ai encore plus xd
Bonsoir, je suis sur une commande timeout en djs V13 qui ne timeout pas le membre mais qui me renvoie bien un msg :

elle ne fonctionne plus depuis que j'ai changé quelques trucs pour faire en sorte que l'usage soit tempmute <user> 4m [raison] au lieu de tempmute <user> 4 minutes [raison]
const ms = require('ms');
module.exports = {
name: 'tempmute',
category: 'moderation',
permissions: ['MODERATE_MEMBERS'],
ownerOnly: false,
usage: 'tempmute [@member] [duration] [reason]',
examples: ['tempmute @yeux jaunes 4m raison'],
description: "Timeout un utilisateur avec une raison",
async run(client, message, args) {
if (!args[0]) return message.reply('Spécifier un membre à timeout!');
if (!args[1]) return message.reply('Spécifier une durée pour votre timeout');
if (!args[2]) return message.reply('Spécifier une raison à votre timeout');
const target = message.mentions.members.find(m => m.id);
const duration = args.slice(2).join(' ');
const convertedTime = ms(duration);
const reason = args.slice(2).join(' ');
const role = message.guild.roles.cache.find(role => role.name === 'Muted')
if (!target.moderatable) return message.reply('Ce membre ne peut pas être timeout par le bot!');
await target.roles.add(role)
target.timeout(convertedTime, reason);
message.channel.send(`Le membre ${target} a été timeout ${duration} pour \`${reason}\``);
setTimeout(() => {
target.roles.remove(role)
}, ms(duration))
},
options: [
{
name: "target",
description: "L'utilisateur a timeout",
type: "USER",
required: true
},
{
name: "duration",
description: "La durée du timeout",
type: "STRING",
required: true
},
{
name: "reason",
description: "La raison du timeout",
type: "STRING",
required: true
}
],
};
Bonsoir à tous, je suis en train de faire un event pour un message de bienvenue et je reçois ça comme erreur
Error: Expected the value to be an object, but received string instead
Voici mon code :
const { EmbedBuilder } = require('@discordjs/builders');
module.exports = {
name: "guildMemberAdd",
async execute(member, client) {
var addembed = new EmbedBuilder()
.setDescription(`<@${member.id}> Bienvenue a toi !`)
.setFooter(`Nous somme maintenant ${member.guild.memberCount}`)
.setColor('blue')
client.channels.cache.get("1069020279772295178").send({ embeds: [addembed] });
}
}
je pense que tu dois build ton addembed
c'est a dire ?
avec addembed.build()
Non
je connais pas ça
donc :
client.channels.cache.get("1069020279772295178").send({ embeds: [addembed.build()] });
Regarde le stackoverflow
mais ça je l'ai vu j'ai pas compris enft
c pour ça je viens ici
.setFooter({text: "Mon text"})
@keen narwhal tu as quelle erreur avec ce code ?
c'est pas une méthode de EmbedBuilder ?
Non
j'ai ça ```js
Error: Received one or more errors
Envoi le code
c ça
il a pas bougé
go voc ?
ouais vasy
dommage encore une défaite pour chat gpt
Yes finalement on a trouver c'est le setColor qui ne doit pas avoir un string en argument
il doit avoir quoi du coup ?
Un array RGB
Bonne soirée
bon finalement tu m'as prank
c'est pas facile 😭
ça marche pas
je suis bloqué carrément
Mon extension work pas du tout
Non il prank pas
ah je me sens pranker là 😭
remplacé un header
c'est pas sencer être si dure
ahah, non c'est plutôt simple en vrai, tu utilises quel manifest, 2 ou 3 ?
le 3, le 2 est déprécié depuis ce mois-ci
Ah
ça à été décallé my bad
Bah j'utilise le v3 malgré tout
Et c'est archi bloquant bizarrement 😭
Tu veux modifier le contenu d'un site c'est ça ?
Juste un yep
Ok, du coup déjà tu dois déclarer le site que tu souhaites modifier dans tes content_scripts.matches
dans le manifest
ensuite tu créer un script que tu déclares dans content_scripts.js
et dans ce script, tu pourras jouer avec le site
Alors
j'ai fait ça depuis tout à l'heure
et c'est bloquant de fou
Je veux juste que l'extension ne puisse acceder qu'à 1 seul site
tu peux me montrer ton manifest ?
Je viens de le passer en v2 t'étonne pas du coup
{
"manifest_version": 2,
"name": "JapanWatch",
"version": "1.0.0",
"default_locale": "fr",
"description": "JapanWatch une application qui vous permet d'utilisez des foncionnalité de recherche avancé par apport aux animés et mangas",
"icons": {
"16": "icons/favicon-16x16.png",
"32": "icons/favicon-32x32.png"
},
"permissions": [
"webRequest",
"webRequestBlocking",
"<all_urls>"
],
"background": {
"scripts": [
"background.js"
]
}
}
(si je change all_urls bah l'extension ne fait pas ce que je souhaite)
background.js c'est ton service worker, il n'a pas accès au DOM
Je cherche à ajouté l'entête access_allow_origin SEULEMENT quand je suis sur le site xxx.com
tu dois créer un content_script
Justement 🙂
j'ai pas besoin du DOM
// allow cors everywhere
chrome.webRequest.onHeadersReceived.addListener(
function(details) {
let found = false;
for (var i = 0; i < details.responseHeaders.length; ++i) {
if (details.responseHeaders[i].name.toLowerCase() === 'access-control-allow-origin') {
details.responseHeaders[i].value = '*';
found = true;
break;
}
}
if (!found) {
details.responseHeaders.push({name: 'Access-Control-Allow-Origin', value: '*'});
}
return {responseHeaders: details.responseHeaders};
},
{urls: ['<all_urls>']},
['blocking', 'responseHeaders']
);
et blocking marche pas en V3
Bref que des trucs bloquant en + 😦
y'a plein d'extension qui font ce que tu veux déjà
et tu peux pas partager les extensions qui existent déjà ?
C'est ce que je fais
Mais leur expliqué qu'il faut modifié les paramètre de l'extension ect..
C'est un peu dur pour eux à comprendre
ok ok
alors le plus simple, si ça existe déjà
c'est de pomper leur code et de faire à ta sauce
c'est de leur expliqué XD
l'extension est dispo dans le dossier de ton chrome
Bahhhh, le problème est toujours le même en fait
non, car tu pourras le faire à ta sauce, et donc bypasser la config pour forcer le truc
La restriction à 1 seul site ne marche pas comme je veux
pour ça tu dois rajouter les permissions à ton site sur ton manifest
"permissions": ["https://..."]
All Urls
en mettant https://xxxx.com
En bref cette condition broke totalement l'extension
AH
Trouvé
"webRequest",
"webRequestBlocking",
"<all_urls>",
"https://deril-fr.github.io/*"
il fallait laissé all_urls
Mais le problème est toujours là en soit
L'extension ne work pas en v3 😭
J'utilise pas cette config, je pourrais pas trop t'aider du coup. Mais regarde la docs de migration, elle est assez bien détaillée. Je sais que y'a un truc à propos des <all_urls>
ça existe plus XD
sérieux ? lol c'est bizarre
ça existe dans lui, mais ça existe plus sur l'autre XD
Permission 'https://deril-fr.github.io/*' is unknown or URL pattern is malformed.
Par exemple
T'as bien mis sous forme de tableau tes permissions ?
Yep
Mais ça à changé
{
"manifest_version": 3,
"name": "JapanWatch",
"version": "1.0.0",
"default_locale": "fr",
"description": "JapanWatch une application qui vous permet d'utilisez des foncionnalité de recherche avancé par apport aux animés et mangas",
"icons": {
"16": "icons/favicon-16x16.png",
"32": "icons/favicon-32x32.png"
},
"permissions": [
"webRequest"
],
"host_permissions": [
"https://deril-fr.github.io/*"
],
"optional_host_permissions": [
"*://*/*"
],
"background": {
"service_worker": "background.js"
}
}
ça c'est la v3
Déja il me manque webRequestBlocking
donc ça nique tout ce que j'ai besoin XD
ça complexifie direct tout xd
ahah, ouais, ils sont un peu relou
Par contre, fait attention, la manifest V3 n'est pas prise en charge sur firefox je crois, du moins pas encore (en octobre dernier en tout cas, c'était pas le cas)
Nan mais, au pire, c'est cool les extensions déja existante inh 😭
Je vais créer une extension qui fait juste une modif réseau ça fera le café
j'utilise ms
Là n'est pas la question
Tu appel une fonction asynchrone sans l'await ce qui l'interrompt dès la fin de ta fonction
qu'est-ce qu'une fonction asynchrone ?
J'ai réussi en définissant la durée par le 2ème argument ici
mais ducoup quand j'écris mal la commande par exemple comme ça :
j'aimerais que ça renvoie un message qui dise que c'est pas le bon format pr exemple
C'est la base de javascript, fait des recherches sur googles
Utilise un regex
ah ça consiste a mettre des await
c'est quoi ? 
C'est un peu comme dire que le foot c'est juste taper dans un ballon 
go google
j'ai fais quelques recherche mais je ne vois pas comment l'utiliser 🤷
C'est quoi pour toi un regex ?
c'est un paramètre qu'on va définir pour que la commande soit tapée correctement
Oui plus ou moins, enfaite tu va pouvoir vérifier grace au regex si ton argument est de forme valide ou non
Having the ability to search through text, validate text, and replace text using an advanced set of rules is exactly what Regex is for. Unfortunately, people fail to ever truly learn Regex. In this video I will be teaching you everything you need to know about Regex. We will talk about what Regex is, what Regex flags are, how to do simple and co...
je vais voir
moi ce que je veux c'est qu'il y ai qu'un seul caractère qui soit pris en compte quand on déterminera la durée, par exemple s si c'est en seconde ou m si c'est en minutes etc...
Oui grace au regex
pour l'instant j'ai fais ça, pour moi ça signifie que l'argument qui est après la mention est la durée, ensuite j'ai défini les args
Ton while est terrible
c'est mieux ?
la j'ai ajouté que si la durée n'est pas défini après la mention ça va return
Ton premier if est pas bon
pourquoi ?
match est une méthode qui prend en argument le regex a comparaitre
ducoup ton deuxieme if est pas bon aussi
Regarde plus attentivement le site que je t'ai envoyé
sur le site ils mettent des if avec un match juste après :
dispo call ?
Vasy
const regex = /(?<=[tT]he)/;
if (regex.match){
args[1, 2].match;
}
if(!regex.match(/(?<=[tT]he)/))
return message.reply('Pas le bon format!')
/[0-9]+[a-z]/
/(?<=[tT]he)/
UNHANDLED_REJECTION: TypeError: Cannot read properties of undefined (reading 'regex')
Promise {
<rejected> TypeError: Cannot read properties of undefined (reading 'regex')
at Object.run (C:\Users\leura\OneDrive\Bureau\Bot V13\commands\moderation\tempmute.js:23:26)
at Object.execute (C:\Users\leura\OneDrive\Bureau\Bot V13\events\guild_messages\messageCreate.js:24:22)
at Client.<anonymous> (C:\Users\leura\OneDrive\Bureau\Bot V13\utils\handlers\EventUtil.js:19:54)
at Client.emit (node:events:513:28)
at MessageCreateAction.handle (C:\Users\leura\OneDrive\Bureau\Bot V13\node_modules\discord.js\src\client\actions\MessageCreate.js:26:
14)
at Object.module.exports [as MESSAGE_CREATE] (C:\Users\leura\OneDrive\Bureau\Bot V13\node_modules\discord.js\src\client\websocket\han
dlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\leura\OneDrive\Bureau\Bot V13\node_modules\discord.js\src\client\websocket\WebSocketManage
r.js:351:31)
at WebSocketShard.onPacket (C:\Users\leura\OneDrive\Bureau\Bot V13\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444
:22)
at WebSocketShard.onMessage (C:\Users\leura\OneDrive\Bureau\Bot V13\node_modules\discord.js\src\client\websocket\WebSocketShard.js:30
1:10)
at callListener (C:\Users\leura\OneDrive\Bureau\Bot V13\node_modules\ws\lib\event-target.js:290:14)
}
('/dqdd/')
Bonsoir
alors j'ai une erreur commune.. mais pas du tout LOGIQUE
je vous montre
la vous allez me dire, il est con ou quoi ?
mon package.json...
mon main.js
JE NE COMPREND PAS
help me please
merci d'avance x)
Tu as fais npm i ?
je vais essayer de le faire
Quelqu’un a déjà utilisé stripe avec nextJS ici ?
Oui
T’aurais moyen de m’expliquer comment marche le système après avoir payer ?
(J’ai pas encore commencé) mais en gros je dois faire un module de paiement pour un site et dès que quelqu’un paye ça doit lui renvoyer un mail, l’envoi de mail ça c’est bon mais je comprend rien à la docs de stripe
Tu écoute le webhook, quand tu le reçois, tu déclenche ton flux
De cette manière tu pourras traiter également les litiges etc...
Bonjour ! J'ai un soucis, je n'arrive pas à set un nickname sur discord.js v14. Voici mon code de test:
module.exports = {
data: new SlashCommandBuilder()
.setName('test')
.setDescription('Replies with Pong!')
.addUserOption(option =>
option.setName('input')
.setDescription('The input to echo back')),
async execute(interaction) {
const user = interaction.options.getUser('input')
await user.setNickname('Test')
await interaction.reply('Test réussi !');
},
};```
J'obtiens dans la console `TypeError: user.setNickname is not a function` donc je pense qu'il me manque un truc, mais quoi ? 😶 Je n'ai pas réussi à trouver dans la documentation (je suis pas très bon aussi...) et je pense que c'est une erreur classique. Est ce que quelqu’un aurait une idée ? Et merci par avance ^^
comme le dit @past nimbus, sur tous les moyens de paiement du marché tu as ce qu'on appelle des IPN (Instant Payment Notification), qui correspondent en gros à de simple webhook que la plateforme appelle sur ton serveur. Elle envoi des données en POST (dans la majorité des cas) avec les infos de la commande. A noter que ces IPN doivent être sécurisés. La plateforme de paiement peut te le faire (en cryptant le message), autrement c'est à toi de le faire.
Généralement l'ordre de statuts d'une commande c'est :
- Authorized - le client a payé, à toi de capturer le paiement (en gros c'est dire : "OK j'ai eu l'info que le paiement est passé, j'accepte de recevoir l'argent"), à noter qu'à ce moment l'argent N'est PAS sur ton compte
- Captured - l'argent est récupéré sur la plateforme de paiement (donc sur ton compte)
Top ! Merci pour les infos
Bonjours, j'ai créer un modal pour un système de suggestion. Il s'affiche mais lorseque j'appuie sur "envoyer" il ne se ferme pas mais le reste de la commande s'exécute bien
pouvez vous m'aider svp
salut si y a des devs djs vous avez des astuces pour dev sans les perms admins (car mon pc est kc dcp c po le mien) je parle pour dl node car vsc ça passe sans perms
bonjour excusez moi je n'arrive pas a comprend la cocumentation de discord js v14 car j'ai des problémes de compréhension c'est compliqué pour moi j'en ai un peut honte j'aimerait un peut d'aide ....
Bonjour, je peux peut-être t’aider même si je commence aussi ^^
je veut bien merci ...
fait ton bote sur replit et ping le tt les 15min pour l'heberger
sinon tu ne peux pas le bypass
au pire tu peux tester deno, mais dans mes souvenir il te demande d'etre admin
ping le mentionner ?
sans ton code sa risque d'etre difficile hahaha
rien compris mais c'etait un peux de troll (meme si sa marche)
Salut Hyverno, est ce que tu penses que tu pourrais me filer un coup de pouce s’il te plaît vu que tu as l’air à l’aise avec djs ^^
j'ai fait vite fait du djs, donc je pourrais pas t'aide sur des sujets complexe
C’est un problème basique je pense
tu as une erreur ?
Oui je l’ai notée en dessous
ha oui mmy bad mdr
askip c'est user.member.setNickname et pas user.setNickname
J’ai essayé et je crois qu’il m’a dit je ne connais pas la fonction member x)
Mais je vais réessayer
(Pas tout de suite)
Log user pour voir
TypeError: Cannot read properties of undefined (reading 'setNickname')
C'est à moins que tu poses la question ?
(oui)
Ah j'avais pas compris ce qu'il voulait dire et je connais à peu près
Il l'as un peu mal expliqué
globalement depuis l'interaction
interaction.guild.members.get(user.id).setNicknamr
un truc du genre
(ne fait pas de copier coller)
J'obtiens "l'objet" du compte
c'est brut l'info que je te donne
Je test ça
Non je parlais juste de console.log(user)
Dac et bien ça donne l'objet user en autre
Avec toutes ses infos
Du coup ça revient bien à ce qu’à dit garder
ya pas forcément besoin du code c juste savoir fermer un modal
Ça dépend de quoi il ce sert
de quoi?
module.exports = {
data: new SlashCommandBuilder()
.setName('test')
.setDescription('Replies with Pong!')
.addUserOption(option =>
option.setName('input')
.setDescription('The input to echo back')),
async execute(interaction) {
const user = interaction.options.getUser('input')
console.log(user)
interaction.guild.members.get(user.id).setNickname('Test')
await interaction.reply('Test réussi !');
},
};```
Comme ça ? Si oui, ça donne ça dans la console `TypeError: interaction.guild.members.get is not a function`
genre la dans ma commande quand on l'execute ya un modal qui souvre
et j'imerai que quand on l'envoie il se ferme
Pardon si on ne sait pas comment tu l’ouvres on ne peut pas t’aider pour le fermer
essaye .cache.members a la place de juste .members
J'obtiens TypeError: Cannot read properties of undefined (reading 'members')en remplaçant par interaction.guild.cache.members.get(user.id).setNickname('Test')

inverse members et cache
Et va lire la doc
la fatigue
besoin de quelqu'un qui maitrise la libraire discord de python, important, me mp
du coup dans #python ??
hey
j'aimerai rajouter des genre de question réponse sur ca , mais je sais pas comment m'y prendre peut etre commencer par rajouter une commende /bonsoir et le bot me répond "bonjour"
const { Client } = require("discord.js");
const bot = new Client({ intents: ["Guilds"] });
console.log("Connexion au bot...");
bot.login("NzkwNjk1ODUxMjE4OTYwMzk0.Gw_CLj.dy82tm6yIwBosBqdbo")
.then(() => console.log("Connecté au bot !"))
.catch((error) => console.log("Impossible de se connecter au bot - " + error));
bot.on("ready", async () => {
await bot.application.commands.set([
{
name: "ping",
description: "Pong!"
}
]);
console.log("Le bot est prêt !");
});
bot.on("interactionCreate", (interaction) => {
if (!interaction.isCommand()) return;
if (interaction.commandName === "ping")
interaction.reply("Pong!");
});
dans le texte de base c'est pour faire une commande /ping et il te répond pong et je veux justement rajouter une commande comme ca pour apprendre et comprendre les base ^^
rajouter une commande /touché et il répond "coulé"
Tu fais la même chose sauf que tu modifies le texte.
je sais mais jaimerai "rajouté" pas modifier ^^
rajouter une commande
pour en avoir 2
sur le meme bot
Oui tu rajoutes la partie du code de
if (interaction.commandName === "ping")
interaction.reply("Pong!");
Tu la remets une deuxième fois et tu modifies.
javais deja essayer , mais je vais le refaire
Faut que tu rajoutes des {}
Genre
if (interaction.commandName === "ping") return interaction.reply("Pong!");
if (interaction.commandName === "command") return interaction.reply("Ceci est la réponse !"); //Ou comme ça avec un return ça ira plus vite.
Ah et puis j'oublie aussi faut que tu rajoutes ça
await bot.application.commands.set([
{
name: "ping",
description: "Pong!"
},
{
name: "command",
description: "Ceci est une commande"
}
]);
Et aussi enlève ton token discord
je lavais fais mais sans la virgule ducoup ca me faisais une erreur jetait si proche :))
c pas un vrai jai suppr la motié
le bot se lance mais la commande ne fonctionne pas
comment je fais pour tenvoyer le code en couleur ?
Ah oki.
C'est ça l'ID de ton bot ? 790695851218960394
Quelle version de discordjs tu utilise ?
Tu fais comme ça
Bonsoir, c'est encore moi ^^
J'ai un nouveau soucis avec l'objet Date en javascript, je voudrais utiliser le système de timestamp de discord pour indiquer le temps à attendre avant un prochain vote. J'ai créé une commande de test qui donne un temps indicatif de quatre minutes à attendre. Le soucis c'est que le message me dis d'attendre 50 000 ans donc je pense qu'il y a un soucis dans l'écriture de javascript. Voici le code: (C'est une commande à test du coup il y a plein de trucs pas logiques ou inutiles.) ```js
const { SlashCommandBuilder, GuildMemberManager, CachedManager, GuildMember } = require('discord.js');
module.exports = {
data: new SlashCommandBuilder()
.setName('test')
.setDescription('Replies with Pong!')
.addUserOption(option =>
option.setName('input')
.setDescription('The input to echo back')),
async execute(interaction) {
const user = interaction.options.getUser('input')
console.log(user)
const current = new Date()
console.log(current)
const minutes = current.getMinutes()
console.log(minutes)
const timeTo = minutes + 4
console.log(timeTo)
current.setMinutes(timeTo)
const nextVote = Date.parse(current)
console.log(nextVote)
await interaction.reply(`Test réussi ! <t:${nextVote}:R>` );
},
};```
Merci beaucoup par avance et au fait si vous savez comment colorer le code sur discord je suis intéressé ^^
comment puis-je voir ca?
Dans ton package.json
oui pk
Utilise plutot un timeout
Pour le temps tu as juste à faire ça
Math.floor(Date.now() * 1e-3 + 6e4*4);
Et ça devrait être bon si je me suis pas trompé.
const { Client } = require("discord.js");
const bot = new Client({ intents: ["Guilds"] });
console.log("Connexion au bot...");
bot.login("NzkwNjk1ODUxMj3cwm6yIwBodINOQsBqdbo")
.then(() => console.log("Connecté au bot !"))
.catch((error) => console.log("Impossible de se connecter au bot - " + error));
bot.on("ready", async () => {
await bot.application.commands.set([
{
name: "ping",
description: "Pong!"
},
{
name: "touché",
description: "couléé"
}
]);
console.log("Le bot est prêt !");
});
bot.on("interactionCreate", (interaction) => {
if (!interaction.isCommand()) return;
if (interaction.commandName === "ping")
interaction.reply("Pong!");
if (interaction.commandName === "touché")
interaction.reply("Coulé");
});
Ce n’est pas possible car j’utilise l’api top serveurs
Je te conseille de suivre ce guide: https://discordjs.guide/#before-you-begin
Donc d’abord le code vérifie si le vote est possible et si non il donne le temps
Merci je regarderais 😉
Je ne vois pas en quoi ça t'empeche de l'utilisé
discord.js": "^14.7.1
est ce bien ca?
Si jamais tu veux que j'explique les fonctions je peux.
yes regarde le guide que je t'ai envoyé
Celle que tu m’as envoyé ?
Le "timeout" est géré par top serveur moi je n’affiche seulement le temps à attendre
Ouais.
Avec plaisir ^^
Ah d'accord
@copper pagoda tu as une idée , de pourquoi la commande touché ne marche pas? aucune erreur quand je le lance
Fait comme ici @ionic rose
Je t'ai envoyer un guide qui te permettra de bien comprendre discordjs 14
en anglais
Son erreur c'est un problème de javascript pas de discordjs.
je connaissais le site merci
Oui mon amis en programmation va falloir lire de l'anglais 
donc voila pourquoi je viens demander des conseil ^^
Yes mais peut être que ça l'aidera a mieux structurer son projet
Après clic droit traduire c'est facile..
J'suis d'accord mais dans ces cas là autant envoyé la doc de js.
Aussi
ca marche , @copper pagoda mais sur le panneau de controle il me sort pleins de truc

c normal?
Non
Renvoie ton code stp
const { Client } = require("discord.js");
const bot = new Client({ intents: ["Guilds"] });
console.log("Connexion au bot...");
bot.login("NzkwNOQsBqdbo")
.then(() => console.log("Connecté au bot !"))
.catch((error) => console.log("Impossible de se connecter au bot - " + error));
bot.on("ready", async () => {
await bot.application.commands.set([
{
name: "ping",
description: "Pong!"
},
{
name: "touché",
description: "couléé"
}
]);
console.log("Le bot est prêt !");
});
bot.on("interactionCreate", (interaction) => {
if (!interaction.isCommand()) return;
if (interaction.commandName === "ping") return interaction.reply("Pong!");
if (interaction.commandName === "touché") return interaction.reply("Coulé !");
});
Ici tu melange les slash commandes et les commandes normal
jvoulais faire des slash commande
Vraiment meilleur conseille que je peux te donner, prend le temps de lire le guide, il est super complet et te donne les bonnes pratiques pour tout réaliser
Sois patient et lit chaque lignes
Tiens une série de vidéo que je peux te conseiller: https://www.youtube.com/watch?v=COwKz34VMns&list=PLCKgTe6DYNc60EiOlsnSNMhva6-zgr2MN&ab_channel=MadRage
👉 Yo les potes, je vous fais un petit tuto de comment coder un bot Discord avec discord.js v14 ! Dans cette vidéo, on va commencer par les prérequis pour coder le robot et apprendre à le démarrer ! N'hésite pas à t'abonner, activer la cloche, liker et rejoindre mes réseaux (merci) !
👉 Discord développeur : https://discord.com/developers/docs/in...
jaimerai apprendre a faire un truc que je faisais a college avec python , genre je t'explique , le bot me dit "comment t'appelles-tu" puis je répond "moma" et le bot me dit "bonjour moma"
il reprend la meme valeur pour la réecrire
Go dans #python
non mais j’aimerais le faire mais en java 😂 si c’est possible de le faire
Rien n'est impossible en java 😎
tu peux m"expliquer comment le faire?
Un bot en java ?
non comment faire ca
Essaye de trouver un cours sur le java et tu sauras faire ça très vite, c'est assez basique
Bonjour a tous, je voulais savoir, j'ai envie de créer un effet de parallaxe un peu plus lent que le scroll. J'ai trouvé des trucs en JS mais j'arrive pas a faire en sorte que l'effet de parallaxe commence avec l'image centrer, parceque en soit le haut de mon image est pas interessant ce qui m'interesse c'est le centre.
Ou alors au moins un moyen de faire la transition entre les background qui se repetent avec un flou genre.
Tu peux jouer avec le background-position en CSS
Avec plaisir ! ^^ (Je ne sais pas si tu as vu le message que je t'ai envoyé avant)
Ah oui mince j'ai vu mais j'ai pas réagis XD.
Du coup
la fonction floor dans Math pour arrondir le résultat à un nombre entier par exemple tu as 2.5 ça arrondi à 3.
En suite la fonction now dans Date qui sert à récupérer l'heure actuelle en ms.
1e-3 c'est les puissance de 10 en gros 0.001.
Et puis avec 6e4*4 pour 4 minutes.
Je crois qu'il y a eu une erreur de conversion dans ton calcul car j'obtiens 3 jours
Euh je regarde voir j'ai vu faire une erreur.
Merci beaucoup ^^
C'est moi j'ai mis 6e4 au lieu de 60. C'est 60s et pas 60 000ms.
C'est quand même étrange cette histoire de timestamp x)
Le temps est en s.
Mais ouais c'est vrai que ça peut faire bizarre après c'est comme ça.
Merci beaucoup en tout cas
De rien.
salut, est ce que y'a qlq qui peut m'aider avec ce pb ??
Je fais pas comme ça du tout moi, dsl je saurais pas t'aider
et juste tu saurais prk le ${client.user.tag} et le (${client.user.id} on dirait qu'ils sont pas pris en compte ou pas (ligne 19)
?
Le token dans le main 
Met des backteack pas des apostrophe
Ça fais leur
Peur
Bonjour, bonjour ! J'ai encore un soucis ^^" J'essaie désespérément de contacter une api et elle me réponds undefined. (J'ai censuré le token du serveur c'est normal sinon je me ferais taper sur les doigts.) Auriez vous une petite idée ?
const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');
const superagent = require('superagent')
module.exports = {
data: new SlashCommandBuilder()
.setName('vote')
.setDescription('Pour voter pour le serveur !'),
async execute(interaction) {
let { check } = superagent.get('https://api.top-serveurs.net/v1/votes/claim-username?server_token=XXXXXXXX&playername=Alnon77')
console.log(check)
if (check.code === 200) {
const nextVote = Math.floor(Date.now() * 1e-3 + 60* check.duration);
const embed200 = new EmbedBuilder()
.setColor(0x0099FF)
.setTitle(`Doucement l'ami !`)
.setDescription(`Je peux comprendre que tu es impatient(e) mais ton prochain est disponible dans <t:${nextVote}> !`)
.setFooter({ text: 'Tu devras refaire la commande pour que je puisse vérifier ton vote !' });
interaction.reply({embeds: [embed200], ephemeral: true});
}
},
};```
En code block please
c'est quoi le pb ?
merci gros
Fais un config.js
Il faut jamais faire ça. Mais j'imagine que tu as regarder un tutoriel sur YouTube 👀
effectivement
Zarow, ambassadeur de la cybersécurité sur discord
Met le dans un droit "sécurisé". Qui n'est pas dans le fichier principal du bot
MDRRRR
Moi ?
Oui
Il va falloir que tu m'en dise un peu plus @spiral veldt
je suis sensé le mettre où ,?
Un moyen simple, tu fais ça :
Dans ton fichier main.js ou index.js :
const config = require('config.js')
client.login(config.Client_Token)
Dans ton fichier config.js :
Client_Token: LeToketDuRobot
vzy bv
C'est déjà un Code Block ??? Ou bien, tu parle d'un pastebin ?
Pas de soucis
Il n'y a pas de Code Block sur téléphone enfin du moins, pas comme sur PC
j'aurais pas fais comme ça
envoie l'erreur
si y'en à une
C'est juste un exemple rapide, mais tu peux le faire d'une autre manière oui
Y'en a pas, la seule qui apparait après c'est: TypeError: Cannot read properties of undefined (reading 'code')
le console log renvoie quoi ?
Mais ça ne nous intéresse pas car le console.log le dit déjà
main.js -->
const Discord = require("discord.js")
const intents = new Discord.IntentsBitField(3276799)
const bot = new Discord.Client({intents})
const config = require("./config")
config.js
module.exports = {
token: "token"
}
J'aurais fais comme ça
c'est plus simple
Si puisque, tu as besoin des informations du console log 😉
Cela revient à la même chose mais, il manque quelque chose je crois bien
undefined mais normalement il devrait renvoyer un truc du style: { "code": 200, "success": true, "duration": 43, "message": "Le joueur a voté. Il pourra voter de nouveau dans 43 minutes." }
Cela veut dire que ce n'est pas défini
bv 😉
ajouter
bot.commands = new Discord.Collection()
dans le main mb
Mais quand je test le lien dans le navigateur je tombe sur ce que je suis censé avoir
Et le .login du coup. Mais bon, ça revient à la même chose haha
comme ça ou j'ai encore fait de la merde?
Hum, bizarre. Après, je ne suis pas calé du tout pour les requêtes donc je ne peux pas plus t'aider désolé
bv j'ai essayé d'enlever les trucs inutile pour lui j'ai voulu allez trop vite
oui
Pas de soucis merci quand même ^^
Salut dites moi ce qu'il y a je peux vous aider
mais le pb c'est que ya tjrs une erreur
att
Oui mais, c'est pas la solution ce que je t'ai donné mdr
Inutile de faire un robot sans savoir comment dev. Autant utiliser des robots comme Mee6
(C'est une blague jamais utilisé Merde6)
Un problème de requêtes api de mon coté
Ok dis moi je m'occupe des autres après
.
Voici ⬆️
ok je me renseigne, tu a eu des progrès depuis le post du message ou tjr au meme point ?
Aucun progrets @drowsy ocean mais voici ce que c'est censé afficher normalement si ça peut t'aider. De plus j'ai essayé sur deux ordinateurs pour voir si c'était une histoire de par feu
lorsque tu fais le superagent.get ajoute await devant et essaye
car c'est une fonction asynchrone
ça n'a pas marché
ok dispo call ?
Mais l'idée était très bonne
ouais mais le but ce serais quand meme de commencer qlq part
Lire la documentation
@mellow mauve Je peux t'aider ?
bas en mode je vois pas trop le pb mais ça veut pas s'éxecuter
mais vzy au pire a l'aise tkt
C'est commandoclient qui pose pb
je sais pas ou exactement mais c'est lui qui t'enpeche d'executé
ah ouais ?
stv on peux voc pour reglé ça
je vais pas pouvoir la mais juste c'est quoi concrétement commandoclient
?
C'est une fonctionnalité assez ancienne de discordjs, aujourd'hui on ne l'utilise plus
c'est possible qu'elle date d'environ 1 an?
Oui largement
Ca appartient a discordjs v12 et là on est a la v14
Et bcp de choses ont changé
ah ouais je vois psk le tuto que je suivais datais d'un an
donc ça doit expliqué prk ça marche pas
Voilà une playlist de tuto qui pourrais t'aider: https://www.youtube.com/watch?v=COwKz34VMns&list=PLCKgTe6DYNc60EiOlsnSNMhva6-zgr2MN&ab_channel=MadRage
👉 Yo les potes, je vous fais un petit tuto de comment coder un bot Discord avec discord.js v14 ! Dans cette vidéo, on va commencer par les prérequis pour coder le robot et apprendre à le démarrer ! N'hésite pas à t'abonner, activer la cloche, liker et rejoindre mes réseaux (merci) !
👉 Discord développeur : https://discord.com/developers/docs/in...
merci gros tu gere
Saluuut ! J'ai une erreur lors de l'utilisation de commandes avec mon bot 😦
Je me suis renseigné sur internet, mais je n'ai pas trouvé de quoi m'aider (je suis bien en "messageCreate")

C’est pas une erreur, simplement un avertissement qui te prévient que l’événement message va bientôt être remplacé par l’événement messageCreate et qu’il va falloir que tu fasse le changement si tu veux éviter de futures erreurs 😉
Oui mais il dit qu'il utilise bien messageCreate alors faut voir le code
Ben je lui dis juste qu’il faut qu’il fasse le changement.
Si il a besoin d’aide pour le faire, à ce moment là on aura besoin du code ^^
Ok merci, juste le souci est que le changement est déjà fait
Mais il ne fonctionne toujours pas 😦
Non mais tu n'as pas compris qu'il utilise déjà messageCreate donc pas de changement ^^
Alors tu peux ignorer :)
Envoi nous le code
C’est pas une erreur qui fait crash ton code normalement
yes je vous fais ça
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
J'ai pu le mettre qu'ici
sinon il est trop long
En faite les commandes marchait y'a quelque semaines, sauf que là plus rien fonctionne :/
Quelle version de discordjs tu utilise ?
Tu peux voc ?
là peut pas trop ya du monde chez moi
ok réexecute ton bot et donne nous le message d'erreur stp
c'est fou y'a aucune erreur mais les commandes ne s'envoient pas
La structure de ton bot est très brouillon, je te conseil de suivre ce tutoriel: https://www.youtube.com/watch?v=COwKz34VMns&list=PLCKgTe6DYNc60EiOlsnSNMhva6-zgr2MN&ab_channel=MadRage
👉 Yo les potes, je vous fais un petit tuto de comment coder un bot Discord avec discord.js v14 ! Dans cette vidéo, on va commencer par les prérequis pour coder le robot et apprendre à le démarrer ! N'hésite pas à t'abonner, activer la cloche, liker et rejoindre mes réseaux (merci) !
👉 Discord développeur : https://discord.com/developers/docs/in...
Cela te permettra de réduire tes erreurs
super merci à toi
pourquoi ca me met ce message d'erreur?
j'ai pas l'impression d'avoir fait derreur
il me dit que flags est pas défini mais il est pas a définir
Pour ma part, je les écris comme ça si ça peut t'aider js const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers] });
ca veut dire quoi gateintentsbits guilds et guildsmember
C'est à peu près la même chose que chez toi. Tu es bien en v14 ?
C'est les intents
Tu les trouves dans le portail developpeur et il te permette d'avoir des fonctionnalités en plus
comment voir si je suis en v14?
Va dans ton package.json
j'en ai pas pour linstant je crois
Fais npm init -y
discord.js@14.7.1
Parfait
Si je peux te conseiller, tu peux suivre le guide d’installation officiel. Il est vachement complet @ionic rose https://discordjs.guide/#before-you-begin
Je pense qu'il faut que tu repartes à zéro avec le guide @ionic rose
ok fallait juste sauvegardé
@ionic rose je te conseille de ne jamais partager ton token
tu devrais supprimer ton screen
Ou regen le token :)
Oui
T'a oublié une parenthèse
Salutation,
Je suis actuellement embeter par messageDelete qui me return pas de message:
https://prnt.sc/p8APC4_B_inZ
const messageContent = messageDelete.content
log.createLog("Un message a été supprimé!", `**Utilisateur:** <@${messageDelete.author.id}> \n **Channel:** <#${messageDelete.channel.id}> \n **Message:** ${messageContent}`, 4)
Thanks in advance!
Fait voir ton code en entier stp.
Hello, je voulais savoir si quelqu'un avait déjà utilisé Firebase sur un site Html/CSS pour avoir un site fullstack sans aucun back-end
J’ai déjà
Tu veut voir quoi car y’a que sa dans mon event messageDelete
Tout le code sujet a etre en interaction avec
Vazi bouge pas
const client = require('../client.js');
const log = require('../Functions/Logs');
const utils = require('../Functions/Utils');
module.exports = {
name: 'messageDelete',
once: false,
execute: async (messageDelete) => {
if (messageDelete.author.bot) return;
console.log(messageDelete)
const messageContent = messageDelete.content
log.createLog("Un message a été supprimé!", `**Utilisateur:** <@${messageDelete.author.id}> \n **Channel:** <#${messageDelete.channel.id}> \n **Message:** ${messageContent}`, 4)
},
};
@drowsy ocean
et le console log n'affiche rien ?
Oui le problème ses que dans le log du console.log, messageDelete.content = ‘’
Dispo voc ?
Non désolé je dois allez à l’école dans 20 minutes et je me suis pas encore préparé
Tu as bien mis tout ce qui est intents ?
Yep
D'accord mais le console.log de messageDelete te retourne bien l'objet ?
Oki
Oui
D'acc tu peux nous montrer ce qu'il te retourne ?
Toute les infos du message ect info sur le user ect
Sauf que je peut pas de dire exactement je suis plus devant mon pic
Pc
Ah mince
Ok on verra ça quand tu aura le temps
Tu es redispo ce soir sinon ?
Yep
Vas-y mentionne nous quand tu es de retour.
Pas de problème
@visual sequoia C'est bon tu a réglé ton pb ?
bonjour, ce code est sencer vérifier toutes les 10 secondes si il y a plus d'une personne dans un vocal et si oui éxécuter la suite du code
setInterval(() => {
this.client.guilds.cache.forEach((guild) => {
guild.members.cache.forEach((member) => {
if (member.voice.channel) {
if (member.voice.channel.members.size !== 1) {
async () => {
// give xp to this user
Logger.info(`Giving xp to ${member.user.tag}`);
const guildExists =
await prisma_instance.guild.findFirstOrThrow({
where: { guildId: guild.id },
});
if (!guildExists) return;
const userExists = await prisma_instance.user.findFirstOrThrow({
where: { userId: member.id, memberOfId: guildExists.id },
});
if (!userExists) return;
let xptoadd = Math.floor(Math.random() * 1000) + 1;
let level = userExists.level;
let xp = userExists.xp;
if ((level + 1) * 1254 <= xp + xptoadd) {
level++;
await prisma_instance.user.update({
where: { id: userExists.id },
data: {
level: level,
xp: xp - level * 1000,
},
});
} else {
await prisma_instance.user.update({
where: { id: userExists.id },
data: {
xp: xp + xptoadd,
},
});
}
};
}
}
});
});
}, 10000);
Le problème étant que on est 2 dans le vocal mais rien ne s'éxécute même pas le Logger.info(Giving xp to ${member.user.tag});
Faire un scan toute les 10 secondes peut s'avérer gourmand en ressources, je te conseil dans un premier temps de te servir de l'event voiceStateUpdate: https://discord.js.org/#/docs/discord.js/main/class/Client?scrollTo=e-voiceStateUpdate
Stv on peux voc pour régler ton pb
Yes j'arrive dans 3 minutes
@drowsy ocean @copper pagoda Juste pour vous dire que ses good merci quand même!
Oki ça marche de rien.
Bonjour, est-ce que quelqu'un saurais pourquoi est-ce que la variable configs est réduite alors que c'est configsRestant qui devrait l'être ?
const configs = githubData.configs;
let configsRestants = configs;
let allAnswers = [];
askConfig();
function askConfig() {
console.log(configs)
const questions = configsRestants[0].values.map(config => {
if (checkValue(config) !== "") {
console.log(red(checkValue(config)))
return process.exit()
}
return {
type: config.type === "boolean" ? "confirm" : config.type === "number" ? "number" : config.type === "password" ? "password" : "input",
name: config.name,
message: `${config.name} : ${config.description && !config.help ? config.description : config.description && config.help ? `${config.description}\n${config.help}` : config.help ? config.help : ""} > `,
default: config.default || null,
validate: (input) => {
if (config.type !== "number" && config.required && input === "") {
return "Ce champ est requis !";
}
if (config.type === "number" && config.required && !input || input === "") {
return "Ce champ requiert un nombre !";
}
return true;
},
filter: input => {
if (config.type === "number" && isNaN(input)) return Number.isNaN(input) || Number(input) <= 0 ? '' : Number(input)
return input
},
}
})
console.log(yellow(`\n\n\nÉtape ${allAnswers.length + 1}/${configs.length}${configsRestants[0].name ? ` - ${configsRestants[0].name }` : ""}`))
inquirer.prompt(questions).then(async (answers) => {
allAnswers.push({
filePath: configsRestants[0].path,
answers: answers
})
configsRestants.shift();
if (configsRestants.length !== 0) askConfig();
if (configsRestants.length === 0) {
// ...
console.log("Questionnaire terminé !")
}
})
}
Parce-que configsRestants fait référence à configs
Comment je peux faire dcp ?
Si tu veux copier un tableau et pas y faire référence il faut le dupliquer ```js
let configsRestants = [...configs];
Bonjour, j'aimerai savoir quel est la ligne de code pour mettre un bot discord dans un salon vocal?
merci
Bonjour, savez vous comment je peut faire pour mp un membre depuis son id ou son uername sur discord s'il vous plait ?
Le stackoverflow ?
la fonction
Salut désoler de te déranger mais j'arrive pas a create un thread private tu serais comment faire?
je souhaite que un membre publie ce message via un modal, ensuite je stock en base de donnée l'id de ce message et l'id du membre
et je veut que lorsque je clique dans le select menu sa mp ce membre ^^
Un worker tu veut faire ?
Heum pas compris désoler
Via l'interaction tu récupere l'id
Explique toi parce qu'un thread private n'existe pas
yep l'id de l'interaction est la meme jusque la sa fonction je recupere bien les donnée du membre
Si normalement tu peut en create pour staff only
Sauf que sa marche pas...
Ok att je m'occupe d'iradium en premier
Good pas de prob
j'ai reussi je pense x)
db.query(
"SELECT user_id FROM attentewl WHERE message_id = ?",
[interaction.message.id],
async (err, req) => {
const userId = req[0].user_id;
bot.users.fetch(userId, false).then((user) => {
switch (interaction.values[0]) {
case "visayes":
user.send("tu a été validé");
break;
case "visano":
user.send("tu a été refusé");
break;
case "visavoc":
// await theUser.send("tu es convoquer en vocal");
user.send("tu a été validé");
break;
default:
break;
}
});
}
);
sa me donne sa et sa mp bien le membre, je suis juste repasser par un then car si je stocker en variable sa fonctionner pas
Ok un peu sale mais niquel 
Envoi ton code
comment sa mdrr qu'est ce qui est sale ? 😂
const thread = await message.startThread({
name: 'Discussion Privée',
autoArchiveDuration: 60,
type: ChannelType.PrivateThread,
reason: 'Discussion entre chef.',
});
double asynchronisation et pas de catch en cas d'erreur mais trql c'est bien pour la v1
Et ton message ici représente quoi ?
await channel.send({
// content: `|| @everyone ||`,
embeds: [formEmbed],
components: [buttons, selectmenu]
}).then(async message => {
const thread = await message.startThread({
name: 'Discussion Privée',
autoArchiveDuration: 60,
type: ChannelType.PrivateThread,
reason: 'Discussion entre chef.',
});
Plus exactement
ça devrait t'aider
Reproduit la meme
ça devrait le faire
Oui sauf que sinon je peut pas mettre le thread comme sa: https://prnt.sc/kll4I1x90vi7
pq ?
Bah comme tu veut que je fasse?
"Private threads behave similar to Group DMs, but in a Guild. Private threads can only be created on text channels."
Tu peux uniquement les créer comme ça
En tout cas pour les threads privé
Ah mais comment je peut le mentionnez?
Comment ça ?
Je sais pas trop comment t'expliquer tu peut voc?
Nan déso essaye avec tes mots
Du coup comment puis-je faire pour que mon thread sois identifier dans le channel pour faciliter son accès
Si tu utilise la méthode que je t'ai donné, ça se présente comment sur discord ?
Pour y accéder tu dois cliquer sur le btn fil en haut du channel
Ok je vois que la méthode retourne un ThreadChannel
Si tu donne l'url ou l'id je pense que c'est bon
le mec aura juste a clické dessu
Yep au pire
Je vois pas d'autres moyens 
Perso je trouve sa debile de pas l'avoir implenter avec les message mais why not ahah peut-etre en v15
Je pense plus que c'est la structure de discord qui pose pb
Les private sont différement présenté que les public
Ouais idk a voir
si le serveur n'as pas assez de boost pour proposer les private thread, ton script marchera pas non plus
Nan la dessus ses good et sa fonctionne
Tu gère le fait de créer des private Thread ou non ?
Si ton salon est réservé aux admins, ils seront les seuls à pouvoir accéder aux threads publics qui s’y trouvent @visual sequoia
Donc pas besoin de galérer avec des threads privés ^^
nan justement ses pour pouvoir discuter de la candidature du mec
Avec les membres ?
juste les boss
Donc tu crée un salon privé pour "les boss" et si ton bot crée des threads public, ils seront les seuls à pouvoir y accéder ^^
yep mais tkt j'ai réussi a gère un truc donc ses good merci quand même
^^
👋 Hey,
Quelqu'un sait d'où vient l'error là avec le module
mysql2
Ton serveur mysql refuse la connexion, vérifie bien tes identifiants de connexion
Quand je me connecte à ma base de donnée PhpMyAdmin OVH, on me demande un serveur, mais est ce qu'il faut que je le renseigne dans la requête de connexion ?
Fait voir ton code pour te connecter
Ton serveur mysql est local ou sur un serveur distant ?
Sur un autre serveur
D'accord tu as autorisé les connexions distant sur ton serveur mysql ?
Est ce que je peux le faire depuis mon interface PHPMyAdmin ?
Non je pense pas
C'est une base de donnée qui est hébergé par OVH mais pas par moi, je n'ai pas accès au root
Alors sur le panel ovh tu dois pouvoir modifier ça
cOUCOU
Je suis entrain de coder mon bot discord
C difficile, si quelqu'un peut m'aider c avec plaisir
Tu reste jusqu'a quel heure ?
Vers 23h minuit c'est bon ?
Ok
Tu vien voc ?
Yes je serais en voc
Salut les ptits gars
j'ai un gros probleme, je bloque dessus depuis presque 1h
en gros je dev un systeme de ticket sur mon bot discord
et je bloque sur ça dans mon code :
let EmbedPermissionLock = new EmbedBuilder()
.setColor("#2F3136")
.setDescription(`❌ Vous n'avez pas la permission requise !`)
if(!interaction.member.permissions.has(Discord.PermissionFlagsBits.ManageChannels)) return interaction.reply({embeds: [EmbedPermissionLock], ephemeral: true})
let EmbedLock = new EmbedBuilder()
.setColor("#2F3136")
.setDescription(`🔒 Ce ticket a été verrouillé par <@${interaction.member.id}>`)
interaction.channel.send({embeds: [EmbedLock]});
interaction.channel.permissionOverwrites.edit({SEND_MESSAGES: false})
}
else if(interaction.customId === "unlock") {
let EmbedPermissionUnlock = new EmbedBuilder()
.setColor("#2F3136")
.setDescription(`❌ Vous n'avez pas la permission requise !`)
if(!interaction.member.permissions.has(Discord.PermissionFlagsBits.ManageChannels)) return interaction.reply({embeds: [EmbedPermissionUnlock], ephemeral: true})
let EmbedUnlock = new EmbedBuilder()
.setColor("#2F3136")
.setDescription(`🔓 Ce ticket a été déverrouillé par <@${interaction.member.id}>`)
interaction.channel.send({embeds: [EmbedUnlock]});
interaction.channel.permissions.reset();
}```
en gros quand mon compte admin clique sur le bouton "lock", l'embed pour dire que le salon à été lock s'envoie
mais mon double compte avec lequel j'ai ouvert le ticket peut tjrs écrire
Ici client devrais etre importer depuis discordjs et non undici
ici tu ne définis pas quelles roles seront affecter par ton permissionOverwrite
tu peux voc ?
c quoi undici ?
C'est un client http rien a voir avec discord je crois qu'il c'est emmêler les pinceaux 
ah x)
Demande d'aide avec le module Gamedig (pour mon serveur Gmod)
Heyy je viens pour vous exposer un de mes problème... J'ai fini de migrer mon bot vers les commandes / il y a peut et il y a encore pas mal de bugs mais là j'ai un bug et je ne vois pas du tout d'où il sort. Pour résumer : dès que j'allume mon bot, il quitte un serveur "inconnu"... J'ai uniquement l'identifiant du serveur. Quand je suis allé chercher dans ma database un ID correspondant à celui fourni je ne trouve aucun serveur alors que le bot ne supprime pas les serveurs de sa database lorsqu'il est retiré d'un serveur pour garder la configuration que les créateurs ont faite. Je ne comprends pas pourquoi le bot quitte ce serveur spécifiquement à chaques démarrages... Quelqu'un pourrait m'aider svp ? Je tiens à préciser que l'event ready.js ne contient pas de client.guild.leave("l'id du serveur"); et que l'index ne contient pas de code du genre js client.on('ready', () => { client.guild.leave("l'id"); })
La recherche de l'ID en question :
Ma db:
Salut dispo voc ?
finalement j'ai pu résoudre le problème c'est un bug assez connu visiblement : https://github.com/discordjs/discord.js/issues/5350
Tu travail sur la V12 ?
hey est ce que qlqn sait comment je peut modfier le contenu d'une balise html en js svp
document.getElementById("ID").innerHTML = "lul"
C'est que l'élément n'est pas trouvé 👀
bizard
var score = document.getElementById("score")```
c comme sa on est d'accord?
OUI
ba bizard
mais est-ce que tu as bien une balise qui a l'id score ?
oui
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Snake</title>
<link rel="stylesheet" href="./style.css">
<script src="./snake.js"></script>
</head>
<body>
<h1>Snake</h1>
<canvas id="board"></canvas>
<div id="score">0</div>
</body>
</html>```
met ta balise script juste avant la fin de body et pas dans Head
Mais c bizard Prcq sa arrive à détecter la balise canvas
Bonjour,
Quelqu'un sait-il pourquoi le compteur ne veut pas respecter le Ease ?
https://onecompiler.com/html/3yxb9pxqn
On ne voit pas le code
salut ya des gens qui touche un peut a nuxt.js 2 sur vuetify.js j'ai une galère sur un affichage
montre ?
J'ai résolue le problème mais si tu t'y connais on peut parler en mp stv
yes
Bonjour voici mon problème, dans l'embed le code me sort comme résultat "object object" alors que je souhaite les coins donc ici "107", pour info le nom de la table est "argent"
console.log(coins) pls
voilà ce que m'a donné le console.log
comment je peux modif le code là du coup ?
@rancid willow t'ulise qu'elle module pour le db.query stp ?
Normalement dans let coins tu ne devrai pas avoir une autre requete vu que tu l'as déjà fait au dessus, essaye de console.log(req)
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.5.1/gsap.min.js"></script>
<style>
#counter {
font-size: 72px;
text-align: center;
font-family: 'Roboto', sans-serif;
}
</style>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
</head>
<body>
<div id="counter">1</div>
<script>
gsap.to("#counter", {
duration: 2,
repeat: 0,
yoyo: false,
ease: "Power2.easeInOut",
onUpdate: function() {
document.querySelector("#counter").innerHTML = Math.floor(this.progress() * 100);
}
});
</script>
</body>
</html>```
Bonjour, je fais actuellement ma commande lb. Mais j'ai un souçi j'ai un utlistauer qui est niveau 1 quand je crée une variable récupérant le niveau et que je la log bah ça donne 1 et quand je crée une autre variable qui vaut la 1ère variable +1 bah ça donne 11
Code : ```js
let leaderboard = await req.sort((a, b) => calculXp(parseInt(b.xp), parseInt(b.level)) - calculXp(parseInt(a.xp), parseInt(a.level)))
for(let i = 0; i< (req.length > 10 ? 10 : req.length); i++) {
let nextLevel = leaderboard[i].level
let reelLevel = nextLevel + 1
console.log(nextLevel)
console.log(reelLevel)
}
du coup le log de nextLevel donne 1 et reelLevel donne 11
Parce que c’est dès string que tu envois de base
Enfin j’avais eu ce problème et ça venait de ça
ah donc faut parseInt ?
@floral bolt merci c'était bien ça faut parseInt
Quelqu'un sait-t-il pk mon URI n'est pas bien encodée ?
const clientId = config.infos.id;
const redirectUri = window.location.origin + "/#/dash";
const scope = "guilds identify";
const oauthUrl = `https://discord.com/api/oauth2/authorize?client_id=${clientId}&redirect_uri=${encodeURI(redirectUri)}&response_type=code&scope=${encodeURI(scope)}`;
Il n'y a rien à encoder ?
Les /
quand j'utilise l'url générée par l'url generator de discord, ça marche : https://discord.com/api/oauth2/authorize?client_id=807895532495831041&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2F%23%2Fdash&response_type=code&scope=guilds identify
Tu as pas check la doc ?
Tu dois passer l'url complète, sinon il peut pas deviner qu'il s'agit d'un query string params
c'est à dire ?
Non tu utilises le mauvais utils
encodeURIComponent
encodeURI il attend une url complète
ah merci
ça fonctionne :p
Autre question du coup, pk il me renvoie le code comme ceci : http://localhost:8080/?code=CODE#/dash ?
Il y a #/dash à la fin du code ?
oui
il devrait me renvoyer vers ça : http://localhost:8080/#/dash?code=CODE non ?
Oui, tu as config les redirect uri sur l'interface de ton app ?
En lui passant la redirect uri en brut tu as testé ?
sans l'encoder ?
ça marche pas
Seul différence qui change avec mes intégrations c'est le #, donc peut-être qu'il aime pas trop, tu as essayé sans ?
je regarde sur google pour voir comment le retirer
Tu peux utilise le mode history pour l'enlever dans ton router
C'est aussi ce que chatgpt m'a dit, mais mes pages ne s'affichent plus
ah nan c good
ChatGPT : mode: "history"
Autre solution trouvée sur google : history: createWebHistory()
et mtn ça fonctionne :)
merci quand même !
Pas de soucis
Bonjour
J'utilise NextJS. J'ai dans un fichier .json un code couleur. J'aimerais que le fond de tous les boutons de toutes les pages soient de cette couleur. Comment puis-je faire ?
montre ce que tu as déja fait
globals.css :
.primary {
background: #2F3136;
border-radius: 1em;
border: none;
padding: 25px;
transition: all 0.3s ease;
color: white;
font-size: 1.5em;
font-weight: bold;
font-family: 'Nunito', sans-serif;
outline: none;
text-decoration: none;
}
.primary:hover {
background: #36393F;
cursor: pointer;
}
NavBar.tsx (composant)
import config from "@/utils/config.json"
import { useRouter } from "next/router"
import styles from "@/styles/components/NavBar.module.css"
export default function NavBar() {
//const router = useRouter()
const redirect = (url: string) => {
//router.push(url)
return undefined
}
return (
<div className={styles.navbar}>
<div className={styles.left}>
<img src={config.infos.avatar} alt={config.infos.name} className={styles.logo}/>
<button className={`${styles.primary} primary`}>Accueil</button>
{
config.infos.docs ? <button className={`${styles.primary} primary`} onClick={redirect(config.infos.docs)}>Documentation</button> : null
}
{
config.infos.support ? <button className={`${styles.primary} primary`} onClick={redirect(config.infos.support)}>Serveur support</button> : null
}
</div>
<div className={styles.right}>
<button className={`${styles.tertiary} tertiary`}>Se connecter</button>
</div>
</div>
)
}
Sauf que dcp, comment je peux faire en sorte que la couleur dépende de config.infos.mainColor ?
style={[{
color: config.infos.mainColor || "autrecouleur"
Mais là, ça ne s'applique qu'à un seul bouton
Je voudrais que ça s'applique à tous ceux qui ont la classe primary
créé un component bouton dans ce cas
Qq s'y connais pour me programmer deux type de bot discord svp
Un ou c est un bot qui genere des codes nitro
un deuxieme ou c'est pour une interface afin de simplifier du gta rp Ps4
merci d'avance
Tu veux pas non plus la trilogie du seigneur des anneaux sur une clés usb en livraison expresse ?
...
Ça m’avais même pas traversé l’esprit 🤣
nn je demande juste
Bah react c'est des composant donc c'est plus simple de faire comme ça xd
Moi aussi tkt 
Je rappelle : nitro gen = illégal
Et pour le gta rp, https://g-ca.fr/offres
Tu recherches ou tu es un développeur, graphiste, modélisateur, ou tout autre créateur de contenu ?
Tu es au bon endroit ! Tu peux désormais poster une annonce ou même proposer tes services très facilement !
Qu'attends-tu ? Rejoins-nous dès maintenant !
interaction.guild.roles.cache.get()
x)
Nolhan j'ai encore un pb ptdrr
dis-moi
j'ai pas d'erreurs
par contre
mon role "support" ne peut pas claim le ticket en question
alors que je leur ai donner la permission
let EmbedPermissionClaim = new EmbedBuilder().setColor('#2F3136').setDescription(`❌ Vous n'avez pas la permission requise !`);
if (!interaction.guild.roles.cache.get("1067389692472999966").permissions.has(Discord.PermissionFlagsBits.ManageChannels))
return interaction.reply({ embeds: [EmbedPermissionClaim], ephemeral: true });
let EmbedClaim = new EmbedBuilder().setColor('#2F3136').setDescription(`🔨 Ce ticket a été pris par <@${interaction.member.id}>`);```
ca
ils ont la permission "gerer le salon" dans la catégorie pourtant
ca consiste en ça mdr
Que quand ils appuies sur le bouton "claim" ca renomme le salon
Moi ça marche evidemment j'suis admin
mais eux, meme avec la perm ça veut pas
oui mais avec ton if
Tu veux vérifier quoi ?
Que la personne qui clique sur le bouton a tel role ?
ok
if (!interaction.member.roles.cache.has("roleId")) return interaction.reply(...)
Ici, le bot vérifie si la personne a un role. Si elle ne l'a pas, il lui sort l'erreur
nan que je le mets ou non il me la cache quand meme
tu as un return sous ton if
^^
merci bg
Tu utilise ta variable et tu la déclare après ^^
non
tu utilise ta variable avant de la déclarer.
C'est comme un panneau attention école, qui se situe après l'école
👍
Bah mtn ca me mets une autre erreur qui est completement illogique
genre mon embed fonctionne plus 
que l'erreur vient de la ligne "const embed"
y avait rien avant mdr
j'ai rie ndis
j'avais juste mis addfields en trop
Ah bah non enfaite ça veut pas
Comme si l'erreur se produit parce que la variable values n'a pas de valeur définie au moment où elle est passée à la méthode addFields, car elle n'est définie qu'après le code où elle est utilisée alors que non enfaite
Hé j'ai l'impression que je ne sais plus dev sérieux
quelqu'un peut me dire pourquoi il ne détecte pas le chiffre 2000 quand on l'écrit et du coups n'applique pas le changement de description
(j'ai 0 erreurs)
C’événement messageCreate et non message
:event: (event) Client#messageCreate
Emitted whenever a message is created.
bonjour, j'ai buy un code de crow bot mais lorsque je fais node index.js, j'ai cette erreur qui s'affiche :
C:\Users\Admin\Documents\CrowBot Discord\node_modules\bindings\bindings.js:121
throw e;
^
Error: \\?\C:\Users\Admin\Documents\CrowBot Discord\node_modules\better-sqlite3\build\Release\better_sqlite3.node is not a valid Win32 application.
\\?\C:\Users\Admin\Documents\CrowBot Discord\node_modules\better-sqlite3\build\Release\better_sqlite3.node
at Module._extensions..node (node:internal/modules/cjs/loader:1243:18)
at Module.load (node:internal/modules/cjs/loader:1037:32)
at Module._load (node:internal/modules/cjs/loader:878:12)
at Module.require (node:internal/modules/cjs/loader:1061:19)
at require (node:internal/modules/cjs/helpers:103:18)
at bindings (C:\Users\Admin\Documents\CrowBot Discord\node_modules\bindings\bindings.js:112:48)
at new Database (C:\Users\Admin\Documents\CrowBot Discord\node_modules\better-sqlite3\lib\database.js:48:64)
at Object.<anonymous> (C:\Users\Admin\Documents\CrowBot Discord\node_modules\quick.db\src\index.js:7:15)
at Module._compile (node:internal/modules/cjs/loader:1159:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10) {
code: 'ERR_DLOPEN_FAILED'
}
Node.js v18.12.1```
sauriez-vous m'aider s'il vous plaît ?
pingez moi si vous postez une réponse svp ;)
De ce que je vois, better-sqlite3 n'as pas l'air d'avoir réussi à build, et donc est introuvable
installe les build tools sur ta machine de dev, et de prod
je n'ai pas compris désolé je m'y connais pas de ouf
merde le ping
excuse moi
c'est quoi les build tools ?
Pour te la faire courte, better-sqlite3 à besoin d'être build car le code est dans un langage compilé, hors, si ta machine n'as pas les outils pour build le projet, ca ne marchera pas
Pour windows il faut python, et Visual Studio (pas visual studio code)
Sinon tu fais juste un npm i better-sqlite3 et dans l'erreur il t'affichera quoi installer
ah ce n'est pas en js ?
il me dit ça :
npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated diglet@1.0.6: This package is no longer maintained.
changed 22 packages, and audited 368 packages in 32s
54 packages are looking for funding
run `npm fund` for details
17 vulnerabilities (2 moderate, 10 high, 5 critical)
To address issues that do not require attention, run:
npm audit fix
Some issues need review, and may require choosing
a different dependency.
Run `npm audit` for details.```
better-sqlite3 est en c++, et vu que chaque machine est différente, ils ne fournissent pas le fichier binaire directement, il faut qu'il build, et pour build du C++ sur windows il te faudra Visual Studio
il faut que j'installe quoi ?
il ne t'as pas mis d'erreur par rapport à l'installation de better-sqlite3 ?
ah
je vais tenter d'installer visual studio
prsk python je l'ai déjà
Si tu fais juste npm i il te met pas d'erreur ?
community
att je teste
ah si
PS C:\Users\Admin\Documents\CrowBot Discord> npm i
up to date, audited 368 packages in 3s
54 packages are looking for funding
run `npm fund` for details
17 vulnerabilities (2 moderate, 10 high, 5 critical)
To address issues that do not require attention, run:
npm audit fix
Some issues need review, and may require choosing
a different dependency.
Run `npm audit` for details.```
je mets quoi ?
juste node.js ?
bon RIP t'es parti
Yep c'est réglé j'ai trouver mais c'était pas pour ça, par contre mon erreur d'hier je comprend tjrs pas
j'ai console log ma valeurs en mettant console.log('Value of interaction.values: ', interaction.values);
ce qui donne en gros ```const EmbedCategory = new EmbedBuilder().setColor('#2F3136').addFields({
name: 'Catégorie sélectionnée:',
value: (() => {
if (!interaction.values) {
return "Valeur non définie pour interaction.values";
}
switch (interaction.values) {
case 'help':
return "Besoin de discuter / problème IRL";
case 'helpstaff':
return "Signaler un staff";
case 'helpmember':
return "Signaler un membre";
case 'other':
return "Autre demande";
default:
return "Valeur non reconnue";
}
})(),
inline: true
});
Le log me donne bien ma valeur "help" ou "helpstaff" ... mais par contre
Il me dit "valeur non reconnue" dans la catégorie
Alors qu'il reconnait bien ma value
je pige pas
interaction.values[0]
La propriété values renvoi un tableau de toutes les valeurs sélectionnées (tu peux faire en sorte que l'utilisateur puisse en sélectionner plusieurs). Tu dois donc prendre la première valeur de ce tableau : values[0]
if (!interaction.values || !Array.isArray(interaction.values)) {
return "Valeur non définie pour interaction.values ou n'est pas un tableau";
}
switch (interaction.values[0]) {
case 'help':
return "Besoin de discuter / problème IRL";```
comme ça du coups ?
Ouais ça à marcher
merci mon reuf tu m'aides bcp
^^
@lean jacinth bon désolé pour le ping mis j'ai vrmt besoin d'aide stp
Bonsoir,
J'ai ici un système de connexion à Discord. Je souhaite récupérer les serveurs de l'utilisateur qui se connecte et pouvoir les récupérer sur d'autres pages de mon site. Je les sauvegarde avec les données de l'utilisateur et les stocke grâce à un JWT. Je souhaiterais stocker ce JWT dans un cookie. Or, quand je consulte la liste des cookies, il n'y en a pas. J'utilise NextJS 👀
const body = new URLSearchParams({
client_id: config.infos.id,
client_secret: process.env.CLIENT_SECRET!,
grant_type: "authorization_code",
redirect_uri: REDIRECT_URI,
code,
scope,
}).toString();
// @ts-ignore
const { access_token, token_type = "Bearer" } = await axios.post("https://discord.com/api/oauth2/token", body, {
headers: { "Content-Type": "application/x-www-form-urlencoded" },
}).then(res => res.data);
if (!access_token || typeof access_token !== "string") return res.redirect(OAuthURL);
// @ts-ignore
const me: DiscordUser | { unauthorized: true } = await axios.get("https://discord.com/api/users/@me", {
headers: { Authorization: `${token_type} ${access_token}` }
}).then(res => res.data);
const guilds: Guild[] | { unauthorized: true } = await axios.get("https://discord.com/api/users/@me/guilds", {
headers: { Authorization: `${token_type} ${access_token}` }
}).then(res => res.data);
if (!("id" in me)) return res.redirect(OAuthURL);
const token = sign({ user: me, guilds: guilds }, process.env.JWT_SECRET!, { expiresIn: "1w" });
res.setHeader("Set-Cookie", [
serialize("cookie", token, {
httpOnly: true,
secure: process.env.NODE_ENV !== "development",
sameSite: "lax",
path: "/"
})
]);
res.redirect("/dash");
}```
Sachant, que quand j'enregistre juste les données de l'utilisateur, le cookie s'enregistre bien (sans que j'ai rien changé)
Le reste du code est ici : https://github.com/Nonolanlan1007/discord-bot-dashboard
un cookie peut faire maxi 4096 octets , sachant qu'un JWT c'est énorme
ah et le nombre MAXI des donnée de cookie d'un seul site = 16Ko
regarde LocalStorage à mon avis
nan le JWT est bien sauvegardé.
dcp, comment est-ce que je peux faire ?
dans le navigateur t'as le cookie ?
car tu viens de dire totalement l'inverse
comme quoi le cookie n'est pas présent
Après si ton cookie fait de la physique quantique 
Essaye de regarder la taille du cookie
Le JWT fait 37000 caractères XD
Donc logique que ça passe pas dans un cookie x)
Sauf que dcp, jsp comment stocker le jwt
Je look ça 👀
J'ai pas l'impression que ça marche dans le back 🤔
J'ai localStorage is not defined
attend, tu fais tes requêtes côté serveur, pas via une API ?