#javascript-typescript
1 messages · Page 91 of 1
ou le guide il est bien https://discordjs.guide/interactions/buttons.html#building-and-sending-buttons
okok super ! vous êtes super fort merci !
Bonjour, je n' arrive pas mettre des bouton même avec le guide. Merci au personnes qui m ' aiderons
Tu peux envoyer le code que tu as essayé de faire ?
OK le voici:
const Discord = require("discord.js")
const Command = require("../Structure/Command")
const { Module } = require('module');
module.exports = new Command({
name: "giveway",
description: "Permet de faire gagner quelque chose",
utilisation: "utilisation",
alias: ["giveway"],
permission: Discord.Permissions.FLAGS.MANAGE_MESSAGES,
category: "Fun",
cooldown: 0,
async run(bot, message, args, db) {
message.delete()
const patreonEmbed = new Discord.MessageEmbed()
.setTitle('🎁・Pour lancer un giveaway :')
.setColor(bot.color)
.setURL()
.setDescription('')
.addFields(
{ name: '€start #chanel 250s 1 Cadeaux', value: 'Bon giveaway !' },
)
.setTimestamp()
message.channel.send({ embeds: [patreonEmbed] })
}
})
D'ac alors essaye de construite ton bouton avec MessageButton. Ca marche comme un message embed
Tu peux regarde le guide https://discordjs.guide/interactions/buttons.html#building-and-sending-buttons
Puis tu mets ca dans la fonction addComponents de MessageActionRow
Et cette variable tu vas la mettre juste après ton embed dans le send
pareille moi sa marche pas je comprend pas
J ai deja regarder avec le guide mais sa marche pas
Dans ton cas a la fin ca te donnera message.channel.send({ embeds: [patreonEmbed], components:[buttonComponent] })
Tu peux faire ton bouton avec le guide il y a vraiment tous regarde ce code d'exemple
const { MessageActionRow, MessageButton } = require('discord.js');
client.on('interactionCreate', async interaction => {
if (!interaction.isCommand()) return;
if (interaction.commandName === 'ping') {
const row = new MessageActionRow()
.addComponents(
new MessageButton()
.setCustomId('primary')
.setLabel('Primary')
.setStyle('PRIMARY'),
);
await interaction.reply({ content: 'Pong!', components: [row] });
}
});
Il est asser simple a comprendre et tu devrais pouvoir faire un premier bouton avec ca et ensuite on pourra le personaliser comme tu en a envis dans un second temps
donc sa je le copie et je le colle après message.channel.send({ embeds: [patreonEmbed], components:[buttonComponent] })
?
oui
Ok j'essaye tout de suite
Mais meintenant il va faloir déclarer buttonComponent il ne tombe pas du ciel
Ici buttonComponent va etre pareil que la variable row dans le code que je t'ai envoyé
donc essayes de construire un petit code avec ca et envois le si tu as un problème
comme sa
const Discord = require("discord.js")
const Command = require("../Structure/Command")
const { MessageActionRow, MessageButton } = require('discord.js');
const { Module } = require('module');
module.exports = new Command({
name: "giveway",
description: "Permet de faire gagner quelque chose",
utilisation: "utilisation",
alias: ["giveway"],
permission: Discord.Permissions.FLAGS.MANAGE_MESSAGES,
category: "Fun",
cooldown: 0,
async run(bot, message, args, db) {
message.delete()
const patreonEmbed = new Discord.MessageEmbed()
.setTitle('🎁・Pour lancer un giveaway :')
.setColor(bot.color)
.setURL()
.setDescription('')
.addFields(
{ name: '€start #chanel 250s 1 Cadeaux', value: 'Bon giveaway !' },
)
.setTimestamp()
message.channel.send({ embeds: [patreonEmbed], components:[buttonComponent] })
client.on('interactionCreate', async interaction => {
if (!interaction.isCommand()) return;
if (interaction.commandName === 'giveway') {
const row = new MessageActionRow()
.addComponents(
new MessageButton()
.setCustomId('je-participe')
.setLabel('Je-participe')
.setStyle('JE-PARTICIPE'),
);
await interaction.reply({ content: 'Pong!', components: [row] });
}
});
}
})
?
Alors toi tu as pas besoins des trucs en rapport avec l'intéraction
const Discord = require("discord.js");
const Command = require("../Structure/Command");
const { MessageActionRow, MessageButton } = require("discord.js");
const { Module } = require("module");
module.exports = new Command({
name: "giveway",
description: "Permet de faire gagner quelque chose",
utilisation: "utilisation",
alias: ["giveway"],
permission: Discord.Permissions.FLAGS.MANAGE_MESSAGES,
category: "Fun",
cooldown: 0,
async run(bot, message, args, db) {
message.delete();
const buttonComponent = new MessageActionRow().addComponents(
new MessageButton()
.setCustomId("je-participe")
.setLabel("Je-participe")
.setStyle("PRIMARY")
);
const patreonEmbed = new Discord.MessageEmbed()
.setTitle("🎁・Pour lancer un giveaway :")
.setColor(bot.color)
.setURL()
.setDescription("")
.addFields({
name: "€start #chanel 250s 1 Cadeaux",
value: "Bon giveaway !",
})
.setTimestamp();
message.channel.send({
embeds: [patreonEmbed],
components: [buttonComponent],
});
},
});
Donc quand on enlève tous les trucs en rapport avec l'intéraction il reste ca
et la c'est bon
par contre le style il est pas correct
ca doit rester PRIMARY
ou une autre valeur pour avoir une autre coloration
tu as la liste des styles ici : https://discordjs.guide/interactions/buttons.html#button-styles
d'accord juste une question pour PRIMARY donc le .setstyle je peut faire sa .setStyle("SUCCESS")
oui exactement
trop bien
Ah et dernier truc, si tu importes Discord de discord.js ca sert a rien d'importer avec la destructuration derrière vu que tu importes déja toutes la lib. Si tu veux optimiser ton code le mieux est de tous importer avec la destructuration ca évite de charger toute la lib
hmm ok bon conseil
merci
par contre il y'a une erreur
C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\rest\RequestHandler.js:349
throw new DiscordAPIError(data, res.status, request);
^
DiscordAPIError: Invalid Form Body
components[0].components[0].style: This field is required
at RequestHandler.execute (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\rest\RequestHandler.js:349:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\rest\RequestHandler.js:50:14)
at async TextChannel.send (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\structures\interfaces\TextBasedChannel.js:172:15) {
method: 'post',
path: '/channels/906215577331326986/messages',
code: 50035,
httpStatus: 400,
requestData: {
json: {
content: undefined,
tts: false,
nonce: undefined,
embeds: [
{
title: '🎁・Pour lancer un giveaway :',
type: 'rich',
description: '',
url: null,
timestamp: 2021-11-05T17:03:14.128Z,
color: 15335679,
fields: [ [Object] ],
thumbnail: null,
image: null,
author: null,
footer: null
}
],
components: [ { components: [ [Object] ], type: 1 } ],
username: undefined,
avatar_url: undefined,
allowed_mentions: undefined,
flags: undefined,
message_reference: undefined,
attachments: undefined,
sticker_ids: undefined
},
files: []
}
}
tu as bien changer le style du bouton ?
oui
renvois le code que tu as pour voir stp
const Discord = require("discord.js");
const Command = require("../Structure/Command");
const { MessageActionRow, MessageButton } = require("discord.js");
const { Module } = require("module");
module.exports = new Command({
name: "giveway",
description: "Permet de faire gagner quelque chose",
utilisation: "utilisation",
alias: ["giveway"],
permission: Discord.Permissions.FLAGS.MANAGE_MESSAGES,
category: "Fun",
cooldown: 0,
async run(bot, message, args, db) {
message.delete();
const buttonComponent = new MessageActionRow().addComponents(
new MessageButton()
.setCustomId("je-participe")
.setLabel("Je-participe")
.setStyle("SUCCES")
);
const patreonEmbed = new Discord.MessageEmbed()
.setTitle("🎁・Pour lancer un giveaway :")
.setColor(bot.color)
.setURL()
.setDescription("")
.addFields({
name: "€start #chanel 250s 1 Cadeaux",
value: "Bon giveaway !",
})
.setTimestamp();
message.channel.send({
embeds: [patreonEmbed],
components: [buttonComponent],
});
},
});
le label faut le changer aussi
?
Parfait 👌
Super merci !
de rien
trop sympa
par contre aussi désoler du dérangement^^ quand je fait ma commande il m'affiche a chaque fois sa
!giveway (#lechannel) 1m Nitro classique
et c'est quoi le problème ?
il m'affiche toujours sa au lieux de suivre la commande que je lui dit
envoie ton code
utilises args
ouais
Ou meme mieux vu que tu as accès a message tu peux faire message.mentions.channels.first()
pour récupérer le channel avec ca tu auras pas de problème vu que avec djs tous les channels sont dans le cache
const Discord = require("discord.js");
const Command = require("../Structure/Command");
const { MessageActionRow, MessageButton } = require("discord.js");
const { Module } = require("module");
module.exports = new Command({
name: "giveway",
description: "Permet de faire gagner quelque chose",
utilisation: "utilisation",
alias: ["giveway"],
permission: Discord.Permissions.FLAGS.MANAGE_MESSAGES,
category: "Fun",
cooldown: 0,
async run(bot, message, args, db) {
message.delete();
const buttonComponent = new MessageActionRow().addComponents(
new MessageButton()
.setCustomId("je-participe")
.setLabel("Je-participe")
.setStyle("SUCCESS")
);
const patreonEmbed = new Discord.MessageEmbed()
.setTitle("🎁・Pour lancer un giveaway :")
.setColor(bot.color)
.setURL()
.setDescription("")
.addFields({
name: "€start #chanel 250s 1 Cadeaux",
value: "Bon giveaway !",
})
.setTimestamp();
message.channel.send({
embeds: [patreonEmbed],
components: [buttonComponent],
});
},
});
et pour le temps utilises tes args
tu mets gift = args[1].slice('')
il me semble
un truc dans le genre
att j'vais te retrouver
je met sa message.mentions.channels.first() après components: [buttonComponent], ?
ducoup
args.slice(1).join(" ");
si args est un array alors c'est .splice(p1,p2).join(' ') pour le cadeau
ou slice oui
mais si il y a le channel et la duré ce serait plutot .slice(2)
non tu te fais une variable channel
const channel = message.mentions.channels?.first()
et ensuite tu mets dans ton field
name: `€start ${channel} 250s 1 Cadeaux`,
et tu fais la meme chose avec les args cette fois ci pour 250s
et pareil pour le cadeau mais cette fois ci avec .splice(2).join(' ')
@neat lintel en gros il récupère que l'id de son channel
Et tu veux la mention ?
voilà
ou avec message.guild.channels.cache.get('channelID').toString();
mais oe
plus facile avec la méthode de Smaug
${channel} il a un truc comme ça là
dans son embed
${channel} === message.guild.channels.cache.get('channelID').toString();
si channel est un GuildChannel
si tu as accès a channel alors ${message.channel} suffit
en gros son channel il y accède en faisant en sorte que le bot récupère l'id du premier channel mentionner
mais dans le .first() tu peux pas mettre 'channelID'
non mais si il vaut un channel spécifique il y a .get('id') ou .find()
Salut je voudrais apprendre le js mais pas pour le web
est ce que vous aurez des tutos ou des videos youtube hors web
Les tutos Web et back ça va être les mêmes vu que du js front ou du js backend ça reste du javascript
Sur nodejs il y a juste des libs intégrées pour interagir avec la machine comme les fichiers par exemple
Du coup le js et fait que pour le web ?
Web et serveur avec nodejs ou deno
Donc pas que pour du web 👀
aussi des bot 
le js fait tout
oui voilà il a des domaines où c'est pas le meilleur
ça sert juste à des choses précises c'est tout
Bonjour, j'ai mis une commande meteo mais j'ai une erreur que je ne comprend pas comment faire ?
C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\rest\RequestHandler.js:349
throw new DiscordAPIError(data, res.status, request);
^
DiscordAPIError: Cannot send an empty message
at RequestHandler.execute (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\rest\RequestHandler.js:349:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\rest\RequestHandler.js:50:14)
at async TextChannel.send (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\structures\interfaces\TextBasedChannel.js:172:15) {
method: 'post',
path: '/channels/906215577331326986/messages',
code: 50006,
httpStatus: 400,
requestData: {
json: {
content: undefined,
tts: false,
nonce: undefined,
embeds: undefined,
components: undefined,
username: undefined,
avatar_url: undefined,
allowed_mentions: undefined,
flags: undefined,
message_reference: undefined,
attachments: undefined,
sticker_ids: undefined
},
files: []
}
}
envoie ton code stp
yes je te fait sa tout de suite
message.channel.send({ embeds: [météoEmbed] });
tout simplement
c'est la V13
ha oui
je le met vers ou sa
même endroit où tu envoies ton embed sauf que tu remplaces ta ligne
en V13 maintenant tu dois renvoyer un tableau d'élément
good pour toi ? @keen narwhal
Super ! merci beaucoup
pas de quoi
trop fort
et si j'ai sa message.channel.send(pdpEmbed); je doit faire comme sa message.channel.send({ embeds: [pdpEmbed] }); ?
tout à fait
okok super ! merci
de rien
bonjour j'ai un petit problème avec mon bot discord est-ce que quelqu'un serais m'aider svp ?
C'est quoi le problème ?
je ne trouve pas mon fichier token et quand j'essaye de faire un config.json sa marche pas
Bonjour, j'ai un soucis le soucis c'est que quand j'ai commencer mon bot j'ai mis un premier token et la je souhaite de le changer donc j'ai été dans config.js j'ai supp mon token et j'en n'ai mis un autre sauf que je tombe sur cette erreur quelqu'un pourrait m'aidais s'il vous plaît ?
C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\@discordjs\rest\dist\lib\handlers\SequentialHandler.js:198
throw new DiscordAPIError_1.DiscordAPIError(data, data.code, res.status, method, url);
^
DiscordAPIError[50001]: Missing Access
at SequentialHandler.runRequest (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\@discordjs\rest\dist\lib\handlers\SequentialHandler.js:198:23)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async SequentialHandler.queueRequest (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\@discordjs\rest\dist\lib\handlers\SequentialHandler.js:99:20)
at async C:\Users\Administrateur\Desktop\BOT SLMD COMMU\Structure\SlashCommand.js:83:9 {
rawError: { message: 'Missing Access', code: 50001 },
code: 50001,
status: 403,
method: 'put',
url: 'https://discord.com/api/v9/applications/807940300936708147/guilds/905075494964318229/commands'
}
envoie ton code
de sa ? SequentialHandler.js
t'as mis un token que t'as re gen ?
depuis le discord developer portal
un token d'un autre bot
oui sur ce site
ça doit être pour ça
reprends ton bot de base
donc je peut pas changer de token ?
Si mais tu dois le re gen sur ta même application bot pas prendre sur un autre bot
tu régénère un token sur le même bot et tu le modifies dans ton config
yep j'suis en train de l'aider
cette erreur n'est pas lié au token mais aux scope Oauth2. Il manque application.commands
Faut inviter le bot avec ce scope
oui
bonjour je ne trouve pas mon fichier token et quand j'essaye de faire un config.json sa marche pas
Code ?
PS E:\bot 3> node index.js
E:\bot 3\node_modules\discord.js\src\client\Client.js:206
if (!token || typeof token !== 'string') throw new Error('TOKEN_INVALID');
^
Error [TOKEN_INVALID]: An invalid token was provided.
at Client.login (E:\bot 3\node_modules\discord.js\src\client\Client.js:206:52)
at E:\bot 3\index.js:24:10
at Object.<anonymous> (E:\bot 3\index.js:28:3)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)
at node:internal/main/run_main_module:17:47 {
[Symbol(code)]: 'TOKEN_INVALID'
Oui mais non, il faut le code de ton fichier index.js
@neat lintel ça a pas l'air de venir de là sa marche toujours pas
Tu as kick et réinviter ton bot ?
ouais
ton token n'est pas une chaine de caractère manifestement
et mis le bon guildId ?
Pas forcément, il a peu juste rien rentrer
parce que de toute facon cette erreur peut venir que de ca. Après il y aussi une mise en cache des perms sur discord
bah regarde où est l'erreur 👀 (fin je crois bien)
tu peux venir en voc au pire qu'ils t'expliquent ?
j'arrives
ahh yess pas faux sorry j'étais dans la logique de toutes la conditions
process.setMaxListeners(40)
require('dotenv').config();
const { Client } = require('discord.js');
const client = new Client({disableMentions: 'everyone'});
const StateManager = require('./utils/StateManager');
const { GiveawaysManager } = require("discord-giveaways");
const { registerCommands, registerEvents } = require('./utils/register');
const default_prefix = "!"
const manager = new GiveawaysManager(client, {
storage: "./assets/giveaways.json",
updateCountdownEvery: 10000,
default: {
botsCanWin: false,
exemptPermissions: [],
embedColor: "#FF0000",
reaction: "🎉"
}
});
client.giveawaysManager = manager;
(async () => {
client.login(process.env.TOKEN);
client.commands = new Map();
await registerCommands(client, '../commands');
await registerEvents(client, '../events');
})();
c'est quel vocal ?
conférence michel
dans ton fichier json, ton token il est représenté sous quel forme ?
justement j'ai pas de fichier config.json
tu dois avoir un fichier .env
Ok il te faut un fichier .env
Tu crée un fichier .env et dans ce fichier tu met cela ```
TOKEN=...
sa marche pas
Non mais tu as pas laisser les ... ??
Oui?
Error: Cannot find module '../../function/embedsColor'
Require stack:
- E:\bot 3\commands\botOwner\eval.js
- E:\bot 3\utils\register.js
- E:\bot 3\index.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:94:18)
at Object.<anonymous> (E:\bot 3\commands\botOwner\eval.js:5:19)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'E:\bot 3\commands\botOwner\eval.js',
'E:\bot 3\utils\register.js',
'E:\bot 3\index.js'
]
}
sa me met sa mtn
mdr
C'est pas le même fichier en plus
oue c'est qui est bizarre
Bizarre en sois non
oue sa me soul
Mais donc qu'elle est le code du fichier eval.js
il ne trouve pas le fichier '../../function/embedsColor'
const BaseCommand = require('../../utils/structures/BaseCommand');
const discord = require('discord.js')
const guildEmbedColor = new Map();
const StateManager = require('../../utils/StateManager');
var embedsColor = require('../../function/embedsColor')
var checkOwner = require('../../function/check/botOwner')
module.exports = class evalCommand extends BaseCommand {
constructor(){
super('eval', 'botOwner', [])
}
async run(client, message, args) {
const sender = message.author.id;
var isOwner = checkOwner(sender);
if(isOwner == false) return message.channel.send(":720681441670725645: `ERREUR` Vous n'êtes pas le créateur du bot.")
const content = message.content.split(" ").slice(1).join(" ");
const result = new Promise((resolve) => resolve(eval(content)));
return result.then((output) => {
if (typeof output !== "string") {
output = require("util").inspect(output, {
depth: 0
});
}
if (output.includes(client.token)) {
output = output.replace(client.token, "T0K3N");
}
message.channel.send(output, {
code: "js"
});
}).catch((err) => {
err = err.toString();
if (err.includes(client.token)) {
err = err.replace(client.token, "T0K3N");
}
message.channel.send(err, {
code: "js"
});
});
}
}
embedsColor(guildEmbedColor);
bon bah voilà, il ne trouve pas le fichier '../../function/embedsColor'
le dossier function est dans quel racine ?
il existe pas le fichier embedsColor dans function ?
dans generate function ?
un fichier
non
je te l'ai dit j'ai pas de dossier function
déjà fait
C'est quoi l'erreur ?
je sais
Mais le code est à toi ? 🤔
comme j'ai retirer
la racine embeds color faut que je retire le reste qui était relier
oui
Bonjour, j'ai déjà eu ce problème mais je sais plus comment le résoudre si quelqu'un peut m'expliquer
: Alors j'ai rajouter une commande tempmute quand je start le bot sa me met cette erreur
C:\Users\Administrateur\Desktop\BOT SLMD COMMU\Structure\Client.js:39
if(props.alias.length !== 0) {
^
TypeError: Cannot read properties of undefined (reading 'length')
at C:\Users\Administrateur\Desktop\BOT SLMD COMMU\Structure\Client.js:39:28
at Array.forEach (<anonymous>)
at Client.start (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\Structure\Client.js:30:76)
at Object.<anonymous> (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\main.js:5:5)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47
il dit que length n'est pas défini si j'ai bien compris mais comment le définir voici mon code pour ceux qui on besoin pour résoudre mon problème :
const Discord = require("discord.js")
const Command = require("../Structure/Command")
const ms = require("ms");
module.exports = new Command({
name: "tempmute",
description: "Permet de rendre muet un utilisateur pendant un certain temps",
utilisation: "[membre] (raison) (temps)",
alias: ["tempmute"],
permission: Discord.Permissions.FLAGS.MANAGE_MESSAGES,
category: "Modération",
async run(bot, message, args, db) {
let tomute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
if(!tomute) return message.reply("Impossible de trouver l\'utilisateur.");
if(tomute.hasPermission("MANAGE_MESSAGES")) return message.reply("Impossible de les désactiver !");
let muterole = message.guild.roles.find(`name`, "muted");
if(!muterole){
try{
muterole = await message.guild.createRole({
name: "muted",
color: "#000000",
permissions:[]
})
message.guild.channels.forEach(async (channel, id) => {
await channel.overwritePermissions(muterole, {
SEND_MESSAGES: false,
ADD_REACTIONS: false
});
});
}catch(e){
console.log(e.stack);
}
}
//end of create role
let mutetime = args[1];
if(!mutetime) return message.reply("Vous n\'avez pas précisé le temps \n:av_slmd_Slow_Mode:");
await(tomute.addRole(muterole.id));
message.reply(`<@${tomute.id}> a été mis en sourdine :gh_slmd_Mic_Mute: pour ${ms(ms(mutetime))}`);
setTimeout(function(){
tomute.removeRole(muterole.id);
message.channel.send(`<@${tomute.id}> as été demute avec :fe_slmd_oui: succes`);
}, ms(mutetime));
}
})
const Discord = require("discord.js");
const fs = require("fs")
const intents = new Discord.Intents(32767);
const Command = require("./Command");
const Database = require("./Database");
const Event = require("./Event");
class Client extends Discord.Client {
constructor(options) {
super({ intents });
/**
* @type {Discord.Collection<string, Command>}
*/
this.commands = new Discord.Collection()
this.cooldown = new Discord.Collection()
this.alias = new Discord.Collection()
this.db = Database;
this.color = "#ea00ff";
this.function = {
createID: require("../Fonctions/createID")
}
}
async start(token) {
fs.readdirSync("./Commandes").filter(file => file.endsWith(".js")).forEach(async f => {
/**
* @type {Command}
*/
let props = require(`../Commandes/${f}`);
console.log(`${f} commande chargée avec succès !`);
this.commands.set(props.name, props)
if(props.alias.length !== 0) {
props.alias.forEach(async a => {
this.alias.set(a, props)
})
}
})
fs.readdirSync("./Events/").forEach(dirs => {
fs.readdirSync(`./Events/${dirs}/`).filter(files => files.endsWith(".js")).forEach(async evt => {
/**
* @type {Event}
*/
const event = require(`../Events/${dirs}/${evt}`);
console.log(`${event.event}.js événement chargé avec succès !`)
this.on(event.event, event.run.bind(null, this));
})
});
this.login(token)
}
}
module.exports = Client;
C’est pas length() normalement ?
Non length est bien une propriété pas une fonction
Ah oui ok je confonds avec autre chose
Oui peut être python par exemple
Ah peut être ouais
j'ai sa comme erreur maintenant
C:\Users\Administrateur\Desktop\BOT SLMD COMMU\Structure\Client.js:40
props.alias.forEach(async a => {
^
TypeError: Cannot read properties of undefined (reading 'forEach')
at C:\Users\Administrateur\Desktop\BOT SLMD COMMU\Structure\Client.js:40:29
at Array.forEach (<anonymous>)
at Client.start (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\Structure\Client.js:30:76)
at Object.<anonymous> (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\main.js:5:5)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47
voici mon code
const Discord = require("discord.js");
const fs = require("fs")
const intents = new Discord.Intents(32767);
const Command = require("./Command");
const Database = require("./Database");
const Event = require("./Event");
class Client extends Discord.Client {
constructor(options) {
super({ intents });
/**
* @type {Discord.Collection<string, Command>}
*/
this.commands = new Discord.Collection()
this.cooldown = new Discord.Collection()
this.alias = new Discord.Collection()
this.db = Database;
this.color = "#ea00ff";
this.function = {
createID: require("../Fonctions/createID")
}
}
async start(token) {
fs.readdirSync("./Commandes").filter(file => file.endsWith(".js")).forEach(async f => {
/**
* @type {Command}
*/
let props = require(`../Commandes/${f}`);
console.log(`${f} commande chargée avec succès !`);
this.commands.set(props.name, props)
if(props.alias?.length !== 0) {
props.alias.forEach(async a => {
this.alias.set(a, props)
})
}
})
fs.readdirSync("./Events/").forEach(dirs => {
fs.readdirSync(`./Events/${dirs}/`).filter(files => files.endsWith(".js")).forEach(async evt => {
/**
* @type {Event}
*/
const event = require(`../Events/${dirs}/${evt}`);
console.log(`${event.event}.js événement chargé avec succès !`)
this.on(event.event, event.run.bind(null, this));
})
});
this.login(token)
}
}
module.exports = Client;
sa à mercher super ! merci beaucoup !!!!
par contre sa à marcher mais maintenant quand je fait !help ou autre j'ai sa mdrrr
C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\util\Util.js:413
if (typeof data !== 'string') throw new error(errorMessage);
^
RangeError [EMBED_FIELD_NAME]: MessageEmbed field names must be non-empty strings.
at Function.verifyString (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\util\Util.js:413:41)
at Function.normalizeField (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\structures\MessageEmbed.js:479:18)
at C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\structures\MessageEmbed.js:501:14
at Array.map (<anonymous>)
at Function.normalizeFields (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\structures\MessageEmbed.js:500:8)
at MessageEmbed.addFields (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\structures\MessageEmbed.js:322:42)
at MessageEmbed.addField (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\structures\MessageEmbed.js:313:17)
at C:\Users\Administrateur\Desktop\BOT SLMD COMMU\Commandes\help.js:41:27
at Array.forEach (<anonymous>)
at Query.<anonymous> (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\Commandes\help.js:39:35) {
[Symbol(code)]: 'EMBED_FIELD_NAME'
}
Bah tout est dans lerreur il te dit que dans ton embed tu une string vide
Dans un name: apparament
mais c'est ou genre dans une commande ?
Bah tu as un embed dans ton code ?
Eh ben ta commande help a un embed avec un name vide, vérif ce que tu lui file comme name dcp
const Discord = require("discord.js")
const Command = require("../Structure/Command")
module.exports = new Command({
name: "help",
description: "Permet de connaître toutes les commandes du bot",
utilisation: "",
alias: ["help", "h", "aide"],
permission: "Aucune",
category: "Information",
cooldown: 2,
async run(bot, message, args, db) {
const command = message.user ? bot.alias.get(args._hoistedOptions.length !== 0 ? args._hoistedOptions[0].value : "") : bot.alias.get(args[0])
db.query(`SELECT * FROM serveur WHERE guildID = ${message.guildId}`, async (err, req) => {
if(!command) {
const categories = [];
const commands = bot.commands;
commands.forEach((command) => {
if(!categories.includes(command.category)) {
categories.push(command.category);
}
});
let Embed = new Discord.MessageEmbed()
.setColor(bot.color)
.setTitle(`Toutes les commandes du bot`)
.setThumbnail(bot.user.displayAvatarURL({dynamic: true}))
.setDescription("Voici toutes les commandes du bot")
.setTimestamp()
.setFooter(`${message.user ? message.user.username : message.author.username}`, message.user ? message.user.displayAvatarURL({dynamic: true}) : message.author.displayAvatarURL({dynamic: true}))
categories.sort().forEach((cat, i) => {
const tCommands = commands.filter((cmd) => cmd.category === cat);
Embed.addField(cat, tCommands.map((cmd) => "> `" + req[0].prefix + cmd.name + "` ➔ " + cmd.description).join("\n"));
});
message.reply({embeds: [Embed]})
}
if(command) {
let Embed = new Discord.MessageEmbed()
.setColor(bot.color)
.setTitle(`Toutes les commandes du bot`)
.setThumbnail(bot.user.displayAvatarURL({dynamic: true}))
.setDescription(`Nom de la commande : \`${message.user ? args._hoistedOptions[0].value : args[0]}\`\nDescription de la commande : \`${command.description}\`\nUtilisation de la commande : \`${message.user ? args._hoistedOptions[0].value : args[0]} ${command.utilisation}\`\nAlias de la commande : ${command.alias.filter(a => a !== (message.user ? args._hoistedOptions[0].value : args[0])).map(a => `\`${a}\``).join(" ")}\nCatégorie de la commande : \`${command.category}\`\nPermission de la commande : \`${new Discord.Permissions(command.permission).toArray(false)}\``)
.setTimestamp()
.setFooter(`${message.user ? message.user.username : message.author.username}`, message.user ? message.user.displayAvatarURL({dynamic: true}) : message.author.displayAvatarURL({dynamic: true}))
message.reply({embeds: [Embed]})
}
})
}
})
Ou quelque chose qui n'est pas une string
sont name c'est help
Nn mais pas le nom de la commande ou le titre dans lembed de la commande plus presicement dans un field
pourtant j'ai rien toucher a sa
essaye de .addField :
.addField("test", "test")
rajoute ça à ton embed
après le setTitle
let Embed = new Discord.MessageEmbed()
.setColor(bot.color)
.setTitle(`Toutes les commandes du bot`)
.addField("test", "test")
.setThumbnail(bot.user.displayAvatarURL({dynamic: true}))
.setDescription("Voici toutes les commandes du bot")
.setTimestamp()
.setFooter(`${message.user ? message.user.username : message.author.username}`, message.user ? message.user.displayAvatarURL({dynamic: true}) : message.author.displayAvatarURL({dynamic: true}))
comme sa
ui
C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\util\Util.js:413
if (typeof data !== 'string') throw new error(errorMessage);
^
RangeError [EMBED_FIELD_NAME]: MessageEmbed field names must be non-empty strings.
at Function.verifyString (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\util\Util.js:413:41)
at Function.normalizeField (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\structures\MessageEmbed.js:479:18)
at C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\structures\MessageEmbed.js:501:14
at Array.map (<anonymous>)
at Function.normalizeFields (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\structures\MessageEmbed.js:500:8)
at MessageEmbed.addFields (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\structures\MessageEmbed.js:322:42)
at MessageEmbed.addField (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\structures\MessageEmbed.js:313:17)
at C:\Users\Administrateur\Desktop\BOT SLMD COMMU\Commandes\help.js:42:27
at Array.forEach (<anonymous>)
at Query.<anonymous> (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\Commandes\help.js:40:35) {
[Symbol(code)]: 'EMBED_FIEL
Tu essayes de mettre un field vide c'est ça ?
non justement il en avait pas dcp je lui ai dit d'en rajouter un
Et l'erreur c'est quoi alors ?
c'est une erreur qui apparaît de nul part
Je connais pas js mais je crois connaitre le prob
car j'ai rien toucher au help
le problème est que tu as une catégorie sans commande
genre y'a une commande ou y'a un problème dedans
possible mais vu que tu push ce serait bizzare. Le mieux serait de log dans la boucle
j'ai trouver
ca devait plutot etre une commande sans catégorie non ?
je vous explique au cas ou y'a des personne qui rencontre ce problème en gros j'ai crée une commande par exemple jesuisbo.js et dedans j'ai mis une structure et genre j'ai mis des // comme sa devant chaque ligne se qui faisait crash le bot regarder je vous expliquer en screen
oulah bah j'était loin du compte 
comme sa
Il a du push un undefined dans tes catégories et du coup après quand tu as boucler ton array catégories il y avait un undefined dedans
// const Discord = require("discord.js")
// const ms = require("ms")
// const Command = require("../Structure/Command")
// module.exports = new Command({
// name: "unban",
// description: "Permet de débannir un utilisateur",
// utilisation: "[id du membre] (raison)",
// alias: ["unban"],
// permission: Discord.Permissions.FLAGS.BAN_MEMBERS,
// category: "Modération",
// cooldown: 10,
// async run(bot, message, args, db) {
// }
// })
voila
merci quand même d'avoir essayer de m'aider
merci de vôtre aide à tous
pas de soucis mec 🙂
Re bonjour , j'ai 2 erreurs qui apparaisse les voici
C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\@discordjs\rest\dist\lib\handlers\SequentialHandler.js:198
throw new DiscordAPIError_1.DiscordAPIError(data, data.code, res.status, method, url);
^
DiscordAPIError[50001]: Missing Access
at SequentialHandler.runRequest (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\@discordjs\rest\dist\lib\handlers\SequentialHandler.js:198:23)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async SequentialHandler.queueRequest (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\@discordjs\rest\dist\lib\handlers\SequentialHandler.js:99:20)
at async C:\Users\Administrateur\Desktop\BOT SLMD COMMU\Events\Logs\guildCreate.js:96:5 {
rawError: { message: 'Missing Access', code: 50001 },
code: 50001,
status: 403,
method: 'put',
url: 'https://discord.com/api/v9/applications/885275695104806952/guilds/849796874588127305/commands'
}
Invites le bot avec le scope application.commands
Smaug le sauveur 😂
Ou définis des commandes globales ca évites les erreurs (mais du coup elles vont pas apparaitres sur la guild)
smaug il va passer
bientôt 👀
Ah peut etre on verra bien 👀
j'èspere il est trop fort
et y'a celle ci
C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\util\BitField.js:152
throw new RangeError('BITFIELD_INVALID', bit);
^
RangeError [BITFIELD_INVALID]: Invalid bitfield flag or number: MANAGE_EMOJIS.
at Function.resolve (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\util\BitField.js:152:11)
at Permissions.has (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\util\BitField.js:44:28)
at Permissions.has (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\discord.js\src\util\Permissions.js:54:85)
at Command.run (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\Commandes\addemojis.js:18:41)
at Query.<anonymous> (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\Events\Bot\messageCreate.js:82:21)
at Query.<anonymous> (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\mysql\lib\Connection.js:526:10)
at Query._callback (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\mysql\lib\Connection.js:488:16)
at Query.Sequence.end (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24)
at Query._handleFinalResultPacket (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\mysql\lib\protocol\sequences\Query.js:149:8)
at Query.EofPacket (C:\Users\Administrateur\Desktop\BOT SLMD COMMU\node_modules\mysql\lib\protocol\sequences\Query.js:133:8) {
[Symbol(code)]: 'BITFIELD_INVALID'
}
const Discord = require("discord.js")
const Command = require("../Structure/Command")
const { parse } = require("twemoji-parser");
const { MessageEmbed } = require("discord.js");
module.exports = new Command({
name: "addemojis",
description: "Permet d\'ajouter des emojis.",
utilisation: "",
alias: ["addemojis"],
permission: "Aucune",
category: "Modérations",
cooldown: 0,
async run(bot, message, args, db) {
if (!message.member.permissions.has("MANAGE_EMOJIS")) {
const perm = new Discord.MessageEmbed()
.setColor(bot.color)
.setTitle(':fe_slmd_non: ERREUR')
.setDescription('Vous n\'avez pas les permissions requises pour effectuer cette commande.')
return message.channel.send(perm)
}
const emoji = args[0];
Embed1 = new Discord.MessageEmbed()
.setColor(bot.color)
.setDescription(`:fe_slmd_non: Veuillez me donner un emoji à ajouter !`);
if (!emoji) return message.channel.send({embeds: [Embed1]})
let customemoji = Discord.Util.parseEmoji(emoji);
if (customemoji.id) {
const Link = `https://cdn.discordapp.com/emojis/${customemoji.id}.${
customemoji.animated ? "gif" : "png"
}`;
const name = args.slice(1).join(" ");
message.guild.emojis
.create(`${Link}`, `${name || `${customemoji.name}`}`)
.catch((error) => {
console.log(error);
});
const Added = new MessageEmbed()
.setTitle(`:fe_slmd_oui: SUCCES`)
.setColor(bot.color)
.setImage(`${Link}`)
.setDescription(
`**L'emoji a été ajouté!** | **Nom :** \`${
name || `${customemoji.name}`
}\``
);
return message.channel.send({embeds: [Added]}).catch((e) => {
console.log(e);
});
} else {
let CheckEmoji = parse(emoji, {
assetType: "png",
});
Embed2 = new Discord.MessageEmbed()
.setColor(bot.color)
.setDescription(`Merci de me donner un émoji valide !`);
if (!CheckEmoji[0])
return message.channel.send({embeds: [Embed2]})
};
}
})
voila
avant les stickers existaient pas
et juste tu peut m'expliquer pourquoi faut changer le lien avec applications.commands en résumer si possible s'il te plaît^^
alors ca c'est discord qui a décider que pour utilise les slash-commands il fallait inviter le bot avec ce scope. Jusqu'a une certaine date si le bot était déja sur le serveur c'était bon mais maintenant il faut le kick et le réinviter avec les permissions
merci bonne soirée a toi
ha bah enfaite me revoila 😂 comme je te disais le bot est sur 26 serveurs les gens vont pas s'amuser a kick et faire revenir le bot
ducoup à chaque fois qu'ils vont utiliser une slash commande sa feras crash le bot ?
non
En prod avec des commandes globales ca fera pas crach le bot
mais tous ceux qui ont pas inviter le bot avec le bon scope devront le kick et le réinviter sinon ils verront pas les commandes
mais personne pourra faire crash le bot
les commande genre les commandes en /
bonjour
j'ai un problème sur mon bot
Error: ENOENT: no such file or directory, scandir './Commandes'
at Object.readdirSync (node:fs:1390:3)
at Client.start (E:\bot 5\Structure\Client.js:30:12)
at Object.<anonymous> (E:\bot 5\main.js:5:5)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)
at node:internal/main/run_main_module:17:47 {
errno: -4058,
syscall: 'scandir',
code: 'ENOENT',
path: './Commandes'
}
PS E:\bot 5>
alors que j'ai bien mon fichier commandes
Le dossier "./Commandes" n’existe pas :)
Dans ce cas, ton chemin d’accès est erroné
Si on avait l’arborescence de tes fichiers, ce serait encore mieux pour t’aider 🙂
Bah… pourquoi avoir mis "./Commandes" ? C’est juste "/Commandes"
je sais sa sauf que même en retirant le point et tout sa marche pas
En même temps, si tu nous montrais le code, ce serait plus simple de t’aider.
D’ailleurs, dis-moi, le code, c’est toi qui l’a écrit tout seul ?
non
Je me disais bien…
Permets-moi un simple conseil : ça ne sert à rien de recopier du code bêtement, sans comprendre ce qu’il fait.
yep
Les gars ça me dit fn.bind is not a function jcrois c avec la maj
exports.run = (client, message, args) => {
var Discord = require("discord.js");
message.channel.bulkDelete(1)
var server = message.guild
const reason = message.content.split(" ").slice(1).join(" ");
if (!message.guild.roles.cache.find(r => r.name === "Staff")) return message.channel.send(`Ce Serveur n'a pas de Role \`Staff\`, il faut le créer sinon le ticket ne peut etre ouvert.`);
if (message.guild.channels.cache.find("name", "ticket-" + message.author.username.toLowerCase())) return message.channel.send(`Tu as déjà un ticket ouvert`);
if (!args[0]) return message.channel.send(`Vous devez spécifier un Problème, *ticket problème`);
message.guild.createChannel(`ticket-${message.author.username.toLowerCase()}`, "text").then(c => {
let category = server.channels.find(c => c.name == "Help" && c.type == "category")
c.setParent(category.id)
let role = message.guild.roles.cache.find(r => r.name === "Staff");
let role2 = message.guild.roles.cache.find(r => r.name === "@everyone");
c.overwritePermissions(role, {
SEND_MESSAGES: true,
READ_MESSAGES: true
});
c.overwritePermissions(role2, {
SEND_MESSAGES: false,
READ_MESSAGES: false
});
c.overwritePermissions(message.author, {
SEND_MESSAGES: true,
READ_MESSAGES: true
});
message.member.sendMessage(`${message.author.username}, ton ticket vient d'être crée, <#${c.id}>.`);
const embed = new Discord.RichEmbed()
.setColor('#DC143C')
.addField(`Raison du ticket : `, `${reason}`)
.addField(`Zekalia| Support `, ` Bonjour ${message.author} – ceci est une réponse automatique :
S'il vous plaît, veuillez nous communiquer de la manière la plus précise et complète possible votre plainte, problème ou question.
**COMMENT FORMULER UN TICKET PRÉCIS ?**
**•** indiquer le serveur concerné.
**•** expliquer la nature du problème.
**•** attacher un screen et/ou record si nécessaire.
Merci de patienter le temps qu'un membre de l'équipe soit en mesure de vous aider.
Si vous n'avez pas d'autres questions et/ou demandes, nous vous invitons à clôturer votre ticket en cours en cliquant sur la réaction ✅.`)
.setTimestamp();
c.send({
embed: embed
}).then(function(message) {
message.react('✅')
bot.on('messageReactionAdd', (reaction, user) => {
console.log("dans bot.on")
if (reaction.emoji.name === "✅" && user.id !== bot.user.id) {
c.delete()
console.log("Delete salon")
};
});
});
}).catch(console.error);
};
@peak cedar, hey,
Ligne 11, il faut que tu remplaces le contenu actuel de ton if par :
message.guild.channels.cache.find(channel => channel.name === "ticket-" + message.author.username.toLowerCase())
And, by the way, une simple recherche dans la doc aurait pu résoudre le problème.
Merci Bg
Jregarde stackoverflow pour regarder un peux et j'ai jms vue Mb Je regarderais la doc Merci bg
Pas de soucis.
Bonjour, j'ai rajouter une commande qui s'appelle userinfo et j'ai cette erreur la qui apparaît
possible de m'aider s'il vous plaît
C:\Users\arthu\Desktop\BOT SLMD\Commandes\userinfo.js:20
const Response = new MessageEmbed()
^
ReferenceError: MessageEmbed is not defined
at Command.run (C:\Users\arthu\Desktop\BOT SLMD\Commandes\userinfo.js:20:26)
at Query.<anonymous> (C:\Users\arthu\Desktop\BOT SLMD\Events\Bot\messageCreate.js:80:21)
at Query.<anonymous> (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\Connection.js:526:10)
at Query._callback (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\Connection.js:488:16)
at Query.Sequence.end (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24)
at Query._handleFinalResultPacket (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\sequences\Query.js:149:8)
at Query.EofPacket (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\sequences\Query.js:133:8)
at Protocol._parsePacket (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\Parser.js:433:10)
at Parser.write (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\Parser.js:43:10)
donc je rajoute sa a la commande ?
en haut tu ajoutes le require de djs oui
et mets MessageEmbed dans des {} sinon tu vas importer toute la lib
aaa
et tu entoures MessageEmbed avec des {} pour utiliser la destructuration
const Discord = require("discord.js")
const Command = require("../Structure/Command")
const moment = require('moment');
module.exports = new Command({
name: "userinfo",
description: "Permet de savoir les informations d'un utilisateur **(Mention obligatoire)**",
utilisation: "",
alias: ["userinfo"],
permission: "Aucune",
category: "Divers",
cooldown: 0,
async run(bot, message, args, db) {
const Target = message.mentions.users.first() || message.author;
const Member = message.guild.members.cache.get(Target.id);
const Response = new MessageEmbed()
.setAuthor(`${Target.username}`, Target.displayAvatarURL({dynamic: true}))
.setThumbnail(Target.displayAvatarURL({dynamic: true}))
.setcolor(bot.color)
.addField('NOT_QUITE_BLACK')
.addField("UserID", `${Target.id}`, false)
.addField("Roles", `${Member.roles.cache.map(r => r).join('').replace("@everyone", " ")}`)
.addField("Server Member Since", `${moment(Member.joinedAt).format('MMMM Do YYYY, h:mm:ss a')}\n**-** ${moment(Member.joinedAt).startOf('day').formNow()}`)
.addField("Discord User Since", `${moment(Member.joinedAt).format('MMMM Do YYYY, h:mm:ss a')}\n**-** ${moment(Member.joinedAt).startOf('day').formNow()}`)
message.reply({embeds: [Response]});
}
})
regarde tout en haut c'est deja fait nan ?
const Discord = require("discord.js")
ah oui mais dans ce cas si tu importes toute la lib faut utiliser Discord.MessageEmbed
et pas juste MessageEmbed
donc sa je doit le changer
const Response = new MessageEmbed()
en sa const Response = new Discord.MessageEmbed()
yep
c'est mieux de juste importer ce dont tu as besoin que toute la lib 👀
alors qu'il est bien écrit
C:\Users\arthu\Desktop\BOT SLMD\Commandes\userinfo.js:23
.setcolor(bot.color)
^
TypeError: (intermediate value).setAuthor(...).setThumbnail(...).setcolor is not a function
at Command.run (C:\Users\arthu\Desktop\BOT SLMD\Commandes\userinfo.js:23:10)
at Query.<anonymous> (C:\Users\arthu\Desktop\BOT SLMD\Events\Bot\messageCreate.js:80:21)
at Query.<anonymous> (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\Connection.js:526:10)
at Query._callback (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\Connection.js:488:16)
at Query.Sequence.end (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24)
at Query._handleFinalResultPacket (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\sequences\Query.js:149:8)
at Query.EofPacket (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\sequences\Query.js:133:8)
at Protocol._parsePacket (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\Parser.js:433:10)
at Parser.write (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\Parser.js:43:10)
pour t'en rappeler facilement toute la doc de djs est écrite en camelCase pour les propriétés et les fonctions. Donc a chaque nouveau mot dans une propriété ou une fonction tu te poses pas de question tu mets une majuscule
ok merci du conseille
Mais désoler de encore vous embeter mais sa enchaîne les erreurs
C:\Users\arthu\Desktop\BOT SLMD\node_modules\discord.js\src\util\Util.js:413
if (typeof data !== 'string') throw new error(errorMessage);
^
RangeError [EMBED_FIELD_VALUE]: MessageEmbed field values must be non-empty strings.
at Function.verifyString (C:\Users\arthu\Desktop\BOT SLMD\node_modules\discord.js\src\util\Util.js:413:41)
at Function.normalizeField (C:\Users\arthu\Desktop\BOT SLMD\node_modules\discord.js\src\structures\MessageEmbed.js:480:19)
at C:\Users\arthu\Desktop\BOT SLMD\node_modules\discord.js\src\structures\MessageEmbed.js:501:14
at Array.map (<anonymous>)
at Function.normalizeFields (C:\Users\arthu\Desktop\BOT SLMD\node_modules\discord.js\src\structures\MessageEmbed.js:500:8)
at MessageEmbed.addFields (C:\Users\arthu\Desktop\BOT SLMD\node_modules\discord.js\src\structures\MessageEmbed.js:322:42)
at MessageEmbed.addField (C:\Users\arthu\Desktop\BOT SLMD\node_modules\discord.js\src\structures\MessageEmbed.js:313:17)
at Command.run (C:\Users\arthu\Desktop\BOT SLMD\Commandes\userinfo.js:24:10)
at Query.<anonymous> (C:\Users\arthu\Desktop\BOT SLMD\Events\Bot\messageCreate.js:80:21)
at Query.<anonymous> (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\Connection.js:526:10) {
[Symbol(code)]: 'EMBED_FIELD_VALUE'
}
tu as un field sans valeur
ce que tu veux faire c'est sans doute sur la couleur
Et si vraiment tu veux pas en mettre un 2eme a la place tu mets dans une chaine de caractères \u200b
et genre setColor('NOT_QUITE_BLACK')
il y a déja un setColor au dessus
donc vous me conseiller de changer quoi à la ligne ?
mais ouais fait gaffe aux trucs que tu utilise si tu leurs donne pas les infos qu'ils veulent ils vont beaucoup moins bien marcher
tu veux quoi ?
bah tu veux faire quoi avec cette ligne?
Que ce soit la couleur ou que le mot apparaisse ?
la couleur
setColor alors
donc je la supp
et enleves le setColor du dessus
Bah ca dépend le quel tu veux
Un embed peut avoir que une couleur
Donc soit bot.color soit NOT_QUITE_BLACK
(mais tu peux le set plusieurs fois)
oui mais ca sert a rien ca execute juste du code en plus
oui
j'ai fait comme sa
const Response = new Discord.MessageEmbed()
.setAuthor(`${Target.username}`, Target.displayAvatarURL({dynamic: true}))
.setThumbnail(Target.displayAvatarURL({dynamic: true}))
.setColor(bot.color)
.addField("UserID", `${Target.id}`, false)
.addField("Roles", `${Member.roles.cache.map(r => r).join('').replace("@everyone", " ")}`)
.addField("Server Member Since", `${moment(Member.joinedAt).format('MMMM Do YYYY, h:mm:ss a')}\n**-** ${moment(Member.joinedAt).startOf('day').formNow()}`)
.addField("Discord User Since", `${moment(Member.joinedAt).format('MMMM Do YYYY, h:mm:ss a')}\n**-** ${moment(Member.joinedAt).startOf('day').formNow()}`)
message.reply({embeds: [Response]});
la tout est bon ?
ha bah non
😂
.addField("Server Member Since", `${moment(Member.joinedAt).format('MMMM Do YYYY, h:mm:ss a')}\n**-** ${moment(Member.joinedAt).startOf('day').formNow()}`)
^
TypeError: moment(...).startOf(...).formNow is not a function
at Command.run (C:\Users\arthu\Desktop\BOT SLMD\Commandes\userinfo.js:26:152)
at Query.<anonymous> (C:\Users\arthu\Desktop\BOT SLMD\Events\Bot\messageCreate.js:80:21)
at Query.<anonymous> (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\Connection.js:526:10)
at Query._callback (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\Connection.js:488:16)
at Query.Sequence.end (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24)
at Query._handleFinalResultPacket (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\sequences\Query.js:149:8)
at Query.EofPacket (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\sequences\Query.js:133:8)
at Protocol._parsePacket (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\Parser.js:433:10)
at Parser.write (C:\Users\arthu\Desktop\BOT SLMD\node_modules\mysql\lib\protocol\Parser.js:43:10)
yep désoler de vous déranger pour des erreurs débile
tkt
maitenant tout marche mais j'ai une toute derniere question comment on fait pour mettre les date en français ?
j'ai jamais su
tu utilises la lib moment, cherche de ce côté
jvais voir dans les modules ducoup ?
tu as le lien de la doc ?
#internet momentjs.com
et en vrai
c'est pas nécessaire d'utiliser une lib pour le temp
d'ailleurs ça pas de sens ce que tu écris
pour discord user since
c'est Member.user.joinedAt
Ah ouais ? Mince !
Bonjour , j'ai un problème lors de l'installation de react j'ai cette erreur . Vous avez une idée de comment la résoudre ?
@neat lintel pour le coup, ce sont des failles de sécurité à haut risque, donc si, c’est un peu grave s’il veut distribuer son app…
c'est au propriétaire du package de mettre a jour
c'est dans les dépendances
Si tu te mets a y toucher tu vas avoir des incompatibilités
@molten fog hey,
Tu peux régler ça à coup de "npm audit fix", par contre, sache que ça va certainement rétrograder certains packages. Donc si tu as besoin des dernières features, attend les mises à jour de tes modules avant de publier ton app
d'accord mais pourquoi cette erreur est arriver ?
Parce que certains packages présentent des failles de sécurité connues
D'accord ok ok , merci bien
Pas de soucis !
npm run start ?
il y en a probablement pas
regarde ton package.json
Sa me fait la meme chose
faudrait l'ajouter dans scripts
Il devrait déjà y etre si tu es passé par le CLI
okay bah rajoute le dans scripts
Mais tu as fais npx create-react-app my-app
?
Car bizarre que tu n'ai rien d'autre
J'ai delete le 2 eme
tu es censé avoir un dossier src, public
Oue mais j'ai pas justement
j'ai rajouter une commande et sa m'a fait cette erreur comment faire ?
node:internal/modules/cjs/loader:936
throw err;
^
Error: Cannot find module './db/config.json'
Require stack:
- C:\Users\Administrateur\Desktop\BOT SLMD DEV\commands\ticket.js
- C:\Users\Administrateur\Desktop\BOT SLMD DEV\index.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (C:\Users\Administrateur\Desktop\BOT SLMD DEV\commands\ticket.js:3:16)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'C:\\Users\\Administrateur\\Desktop\\BOT SLMD DEV\\commands\\ticket.js',
'C:\\Users\\Administrateur\\Desktop\\BOT SLMD DEV\\index.js'
]
}
il dit qui trouve pas mon module ./db/config.json
comment faire pour qui le trouve
?
Il doit pas etre dans le dossier commands
quand tu mets ./ ca veut dire que tu restes dans le dossier actuel
Si tu veux remonter d'un niveau c'est ../
ducoup je met comme
sa
const Discord = require("discord.js");
const bot = new Discord.Client()
const config = require("../db/config.json")
const emoji = require("../db/emoji.json")
const image = require("../db/image.json")
const role = require("../db/role.json")
const { readdirSync } = require('fs');
const fs = require('fs');
const dbs = require("discord-buttons");
dbs(bot);
const loadEvents = (dir = "./events") => {
fs.readdirSync(dir).forEach(dirs => {
const eventFiles = fs.readdirSync(`${dir}/${dirs}/`).filter(files => files.endsWith(".js"));
for (const event of eventFiles) {
const evt = require(`${dir}/${dirs}/${event}`);
const evtName = event.split(".")[0];
bot.on(evtName, evt.bind(null, bot));
console.log("| 〽️ | L'évenement " + evtName + " est prêt.");
};
});
};
loadEvents();
bot.on('messageReactionAdd', async(reaction, user) => {
const message = reaction.message;
const member = message.guild.members.cache.get(user.id);
if(user.bot) return;
if(
[emoji.ticketopen, emoji.ticketclose].includes(reaction.emoji.name)
) {
switch(reaction.emoji.name) {
case emoji.ticketopen:
if(reaction.message.channel.id !== config.ticket) return console.log('L\'emoji à été utiliser dans un autre salon')
reaction.users.remove(user);
let username = user.username;
let categoryID = config.ticketcategory;
let channel = await message.guild.channels.create(`ticket-${username}`, {type: 'text', parent: message.guild.channels.cache.get(categoryID)})
.catch(err => {
message.channel.send('Il a eu une erreur dans le [MessageReacctionAdd]')
});
channel.updateOverwrite(message.guild.roles.everyone, {'VIEW_CHANNEL': false});
channel.updateOverwrite(member, {
'VIEW_CHANNEL': true,
'SEND_MESSAGES': true,
'ADD_REACTIONS': true
});
channel.updateOverwrite(message.guild.roles.cache.find(role => role.id == "869657088366903377"), {'VIEW_CHANNEL': true});
var embed1 = new Discord.MessageEmbed()
//.setTitle('Hello,')
.setColor('WHITE')
.setDescription('**Bonjour/Bonsoir,** \n\nSi vous avez un problème merci de nous l\'expliquez avec le plus de détail possible. \n\nNous fournissons pas d\'aide en ticket au non V.I.P')
//.addField('Un staff arrive', `__**Sa ne sert a rien de ping le staff!**__`)
.setThumbnail(image.logorw)
channel.send(`${member}`)
channel.send(embed1).then(async msg => msg.react(emoji.ticketclose))
let logchannel = message.guild.channels.cache.find(c => c.id == config.logs)
if(!logchannel) return;
//logchannel.send(`Un membre à créer un ticket. \n Voici le salon ${channel}`)
logchannel.send({embed : {color : "WHITE", title: "Logs Ticket", description : `Un membre vient de créer un ticket: ${channel}`}})
break;
case emoji.ticketclose:
if(!message.channel.name.startsWith('ticket')) return;
if(!member.hasPermission('ADMINISTRATOR')) return;
message.channel.delete()
break;
}
}
})
j'ai mis ../ a chaque const tout en haut@neat lintel
Et ça marche ?
non regarde
non sa met sa comme erreur
node:internal/fs/utils:344
throw err;
^
Error: ENOTDIR: not a directory, scandir './events/guildMemberAdd.js/'
at Object.readdirSync (node:fs:1390:3)
at C:\Users\Administrateur\Desktop\BOT SLMD DEV\commands\ticket.js:15:31
at Array.forEach (<anonymous>)
at loadEvents (C:\Users\Administrateur\Desktop\BOT SLMD DEV\commands\ticket.js:14:25)
at Object.<anonymous> (C:\Users\Administrateur\Desktop\BOT SLMD DEV\commands\ticket.js:25:1)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19) {
errno: -4052,
syscall: 'scandir',
code: 'ENOTDIR',
path: './events/guildMemberAdd.js/'
}
car tu ne peux avoir que des dossiers dans ton dossier event
Non
Mais dans le dossier events il doit y avoir que des dossiers
Donc mets le guildMemberAdd et tous les autres fichiers dans un sous dossiers
Donc se que je fais je vais dans le dossier events ensuite je crée un dossier et je met tout ce qui a dans events dans ce dossier c'est sa ?
oui
comme tu veux
tu peux mettre les évents guildMemberAdd et guildMemberRemove dans un dossier members par exempe
Ok et je dois modifier les const ducoup
tu peux regrouper messageReactionAdd messageReactionRemove dans un autre dossier reactions par exemple etc etc
Ha ok sa marche et les const je dois changer nan ?
Genre ducoup y'aura plus sa ../dB/rôle.jsin
ca dépend. Si tu importes des trucs du projet dans ce cas oui tu ajoutes un ../
Si il y a besoins tu en mets 2 a la suite ../../
Sa fait 2h je suis dessu la et sa ne marche toujours pas j'ai carrément réinstaller nodejs mais rien n'y fait j'ai toujours sa a la fin
Mets des sous-dossiers pour ready, message, et VoiceStateUpdate
Oui
Parfait
c'est marqué, désinstalle create-react-app et reinstalle le pour avoir la dernière mise à jour déjà
Pas besoin de ping Smaug à chaque message, il te répondra dès qu'il verra tes messages
oui désoler c'est vrais
J'ai déjà fait sa 10 fois xD
Normalement rien c'est bon
Non
C'est quoi le nom du truc pour envoyer un message privé dans un salon en DiscordJS
Je connais pas le terme x)
Un message ephemeral ?
Un ephemeral il y a que 1 personne qui peut le voir
Oui c'est ca
Et il y a un petit bouton pour le supprimer en dessous
Faut bien l'envoyer en reply() à une interaction par contre
Pas pour un ephemeral
Uniquement en réponse à une interaction
Il faut que ce soit absolument une interaction
Du coup soit bouton, liste ou slash cmd
Pour un ephemeral oui
https://github.com/warix8/discord.js-bot-structure
D'ailleurs si vous voulez un bon handler

ah ok x)
Bonsoir , quelqu'un peut me donner un projet react car moi je n'arrive pas a en créer
npx create-react-app mon-app
😆 je sais mais ceci ne fonctionne pas pour moi
Bonjour j'ai une erreur sur mon bot Discord voici l'erreur de la console
root@vps83418:/home/oktol# node index.js
internal/modules/cjs/loader.js:638
throw err;
^
Error: Cannot find module 'node:events'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.<anonymous> (/home/oktol/node_modules/discord.js/src/client/BaseClient.js:3:22)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
root@vps83418:/home/oktol#
Et voici mon code :
const Discord = require("discord.js");
const Client = new Discord.Client({intents: []});
Client.on("ready", () => {
console.log("bot opérationelle");
});
> Client.login(" ici Mon Token Biensur je le mets pas en public");```
Mais je ne comprends pas l'erreur merci
node:internal/modules/cjs/loader:936
throw err;
^
Error: Cannot find module 'config.json'
Require stack:
- /home/bot/reacteur/index.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/home/bot/reacteur/index.js:2:16)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/home/bot/reacteur/index.js' ]
}
Erreur quand je passe le bot sur vps alors qu'en local ca passe
Je pense que ca doit être un prob avec le filepath
Mais je sais pas comment faire
Ok fallait juste mettre un ./
Tu dois avoir une vieille version de node. Mets la à jour vers 16.6 minimum pour djs 13.
Tu as bien fait npm i sur ton vps dans le dossier ou est ton bot ?
Les modules avec node:etc sont interne à node donc ils ne se téléchargent pas avec npm
Même il faut le faire dans tous les cas donc je demande
On voit dans l'erreur que le require vient d'un fichier dans le dossier node_modules/discord.js donc normalement il a bien installé les dépendances
Hey, j'ai un petit problème. En gros j'ai un array :
let array = ["STR1", "STR2", "STR3"]
En fait j'aimerais le transformer en object :
{
"STR1" : null,
"STR2" : null,
"STR3" : null
}
J'ai essayé avec Object assign mais ça inverse key et value c'est pas ce que je veux
Si quelqu'un pourrait m'aider, je continuerais à chercher dans mon coin mais ça fait pas mal de temps que je galère
Object.assign({}, array)
➜ Object.assign()
La méthode Object.assign() est utilisée afin de copier les valeurs de toutes les propriétés directes (non héritées) d'un objet qui sont énumérables sur un autre objet cible. Cette méthode renvoie l'objet cible.
Example:
Object.assign(cible, ...sources)
j'aurai du faire ca snif 
Oui mais avec ça c'est inversé
Genre moi ce que je veux c'est transformer en key pas en values
Non justement
{
"STR1" : null,
"STR2" : null,
"STR3" : null
}
C'est ça que je veux
Fin null ou n'importe quoi mais moi ça doit être null
Ah ok tu veux que STR1 soit la key
Oui
tu peux faire un .reduce dans ce cas
➜ Array.prototype.reduce()
La méthode reduce() applique une fonction qui est un « accumulateur » et qui traite chaque valeur d'une liste (de la gauche vers la droite) afin de la réduire à une seule valeur.
Example:
arr.reduce(callback)
arr.reduce(callback, valeurInitiale)
➜ TypeError: Reduce of empty array with no initial value
Consulte la page pour voir + de détails :ok_hand:
➜ prefers-reduced-motion
La requêtes média CSS prefers-reduced-motion détecte si l'utilisateur a demandé au système de minimiser la quantité d'animation ou de mouvement.
Si tu trouves pas je te file le code, mais cherche un peu avant :p
Ok merci, je rentre chez moi et je teste
Bon j'ai tenté un truc sur mon tel mais ça m'a pas l'air de trop fonctionner, donc je vois pas du tout comment faire
let array = ["STR1","STR2","STR3","STR4"]
console.log(array.reduce(function(a,b){
return {
a:null,
b:null
}
}))
Je comprends ma connerie mais je sais pas comment y remédier
array.reduce((a ,b) => (a[b] = '', a), {});
What alors là je connaissais pas du tout
J'ai pas tout à fait compris comment ça fonctionnait
le a et b c'est ta valeur précédente et l'actuelle
y a peut-être mieux à faire
mais la j'aurai pas l'idée
D'accord, bon je vais regarder de plus près chez moi, merci en tout cas
Tu peux m'éclairer sur comment fonctionne la partie (a[b] = '', a), {} ? J'ai pas compris
Fin si t'as une doc ou un tuto je veux bien aussi, j'ai pas trouvé
C'est quoi ce que tu veux faire ?
T'inquiètes ça fonctionne
Ah okay bah c'est bon
Mais je veux juste qu'Enzo m'explique comment ça marche exactement ce qu'il a fait
Tu voulais mettre une valeur à un String ?
Que ça fonctionne c'est une chose, mais savoir comment ça fonctionne c'est mieux
un Array*
Hey, j'ai un petit problème. En gros j'ai un array :
let array = ["STR1", "STR2", "STR3"]
En fait j'aimerais le transformer en object :
{
"STR1" : null,
"STR2" : null,
"STR3" : null
}
J'ai essayé avec Object assign mais ça inverse key et value c'est pas ce que je veux 
➜ [Voir le message original](#javascript-typescript message)
Voilà
Dacc
En fait j'ai juste pas su faire fonctionner le reduce
Okay
Tu comprends ce qu'il fait toi là ? 😂
Parce que moi j'ai pas tout capté
Je vais bientôt apprendre le rust donc là je vais essayer de me concentrer dessus
okay, mais go #general plutôt ou #discussion-dev
Oui
oui bien sur
En gros:
le {}
à la fin, sert à donner une valeur de initial, sinon le a[b] ne fonctionnerait pas
Donc ce que tu vas dire c'est que au premier tour, c'est que a (mais comme a = previous value, elle est à vide, donc la initial {} se met par défaut), donc a (object) tu lui ajoutes en clé le current value, donc la première value de ton tableau
puis la boucle continue
donc a({})[b(STR1)] = ''
si ca peut t'aider a comprendre
Ok j'ai compris ! Merci
Yo,
Comment je peux faire pour guild.membercount dans un bot.on("ready", async () => {
Cordialement
GPOIRE
Tu veux compter les membres d'un serveur précis ou de tous les serveurs ?
D'un seul serveur
Dans le ready les serveurs sont déja dans le cache donc tu peux y accéder avec client.guilds.cache
const guild = client.guilds.cache
console.log(guild)
const count = guild.memberCount
console.log(count)
Et ça me return
Map(0) {_array: null, _keyArray: null}
undefined
Alors il faut mettre un truc après cache
Par contre toi elle est vide la collection. Tu as mis quoi comme intents ?
intents ?
Tu es en V13 de djs ou en V12 ?
V12 😉
Ah alors tu connais peut etre pas
Vu que tu as une collection vide essayes de fetch la guild avec const guild = await client.guilds.fetch('id de ta guild')
Et bien sur oublis pas de mettre un async dans la fonction du coup
Bonjour ayant un exo a faire en js , je débute je suis perdu j'ai essayé un systéme mais ça n'a pas l'air concluant si quelqu'un peut m'expliquer je suis preneur (a l'aide)
Ca ne fonctionne pas
Envois le code que tu as fais
bot.on("ready", async () => {
console.log("------------------------------------------------------------------- Le Bot est ON ------------------------------------------------------------");
bot.user.setStatus("online");
bot.channels.cache.get(bdd["ticket"]["channelpanelopenticket"]).messages.fetch(bdd["ticket"]["messagepanelopenticket"]).then(message => {
message.react('🔨')
})
let statuts = bdd.stats
setInterval(function(){
let stats = statuts[Math.floor(Math.random()*statuts.length)];
if(stats == 1){
const guild = await client.guilds.fetch('874747368954798151')
console.log(guild)
const count = guild.memberCount
console.log(count)
bot.user.setActivity(`${count-1} clients`, {type: 'WATCHING'});
}else if(stats == 2){
bot.user.setActivity(`ToDev`, {type: 'WATCHING'});
}else if(stats == 3){
bot.user.setActivity(`Commander`);
}
}, 5000)
ta fonction est pas async
J'imagine que tu as une erreur du style await is only valid in async functions ?
Je met quoi dans mon async ?
Mets juste un async avant le mot function dans le set interval
Comme ça ?
setInterval(function(async){
let stats = statuts[Math.floor(Math.random()*statuts.length)];
if(stats == 1){
const guild = await client.guilds.fetch('874747368954798151')
console.log(guild)
const count = guild.memberCount
console.log(count)
setInterval(async function(async){
let stats = statuts[Math.floor(Math.random()*statuts.length)];
if(stats == 1){
const guild = await client.guilds.fetch('874747368954798151')
console.log(guild)
const count = guild.memberCount
console.log(count)
Comme ça ?
yes
Yo! J'ai un petit soucis j'ai essayer de réfléchir mais j'ai pas trouver :/
Savez vous comment récupérer n'importe quoi tant que qu'il y'a /read
j'explique mal mais voici un exemple
Tu veux récupérer le nombre ?
ajoutes dans le '/read/:id' par exemple
et t’auras un paramètre id dans req il me semble
et pour récupérer le nombre tu passeras par req.params.id
voilà
Parfait ça marche, merci 😁
^^
Après si le nombre est optionel il faut psser par les queries plutot et taper dans l'url /read?p1=v1
parce que la du coup si tu mets pas de nombre ca va plus marcher
Je vais rediriger vers la page d'accueil si il n'y a pas d'id justement
Je doit juste faire:
router.get('/read',ensureAuthenticated, async (req,res)=>{
res.render('read');
})
non? ou c'est pas propre?
si tu mets pas d'id tu risque d'avoir ce problème il me semble
Oui ca marche aussi comme ca
Effectivement merci beaucoup 😊
tu peux vérifier si y a un id avec req.params?.id
si tu veux pas le mettre dans ta route
mais bon il le verra jamais, faut mettre dans ta route
Après avec les params si il n'y est pas la route ne sera jamais lue donc il est impossible que req.params ne contienne rien si il y a un /:quelqueChose dans la route
oui c’est bien pour ça
Comment je fais pour avoir une condition qui sélectionne que les membres du role "876447360073474058"
non autant passer par le has
enfin même pas il veut récupérer tous les gens qui ont un certains roles
Non justement je te disais je crois qu'il veut récupérer tous les membres avec le role @xxx par exemple
bah c'est comme ça non ?
non là tu regardes que un member a le role
Il faudrait que tu fetch le role via ton guild.roles
ah oui ok
dommage
bah oui c'est wiki JS pas discord.js
(node:10424) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'cache' of undefined
at Object.module.exports.run (f:\Bot Atlantica\AtlanticaBotDiscord\commandes\warn.js:11:29)
at Client.<anonymous> (f:\Bot Atlantica\AtlanticaBotDiscord\index.js:262:35)
at Client.emit (events.js:388:22)
at MessageCreateAction.handle (f:\Bot Atlantica\AtlanticaBotDiscord\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (f:\Bot Atlantica\AtlanticaBotDiscord\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (f:\Bot Atlantica\AtlanticaBotDiscord\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (f:\Bot Atlantica\AtlanticaBotDiscord\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (f:\Bot Atlantica\AtlanticaBotDiscord\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (f:\Bot Atlantica\AtlanticaBotDiscord\node_modules\ws\lib\event-target.js:132:16)
at WebSocket.emit (events.js:376:20)
(Use node --trace-warnings ... to show where the warning was created)
<node_internals>/internal/process/warning.js:43
(node:10424) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
<node_internals>/internal/process/warning.js:43
(node:10424) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
:_: Guild#roles
A manager of the roles belonging to this guild
montre ton code GPOIRE
const Discord = require('discord.js');
const config = require("../config.json");
const fs = require("fs");
const bot = new Discord.Client({ partials: ['MESSAGE', 'CHANNEL', 'REACTION']});
const bdd = require('../bdd.json');
module.exports.run = async (bot, message, args) => {
if(!message.channel.type === "dm") return;
message.delete();
if(message.author.bot) return;
if(message.author.roles.cache.has("876447360073474058")){
console.log("Yes")
}else{
console.log("No")
}
}
function Savebdd() {
fs.writeFile("./bdd.json", JSON.stringify(bdd, null, 4), (err) => {
if (err) message.channel.send("Une erreur est survenie !");
});
}
module.exports.help = {
name: "warn"
}
message.member
Et si tu as le client en paramètre ca sert a rien d'en déclarer un autre au dessus
juste pour l'explication
message.author c'est l'utilisateur discord global
message.member c'est au niveae d'une guild 👀
Ok
Bonjour, j'ai cette erreur possible de m'aidais ?
node:internal/modules/cjs/loader:936
throw err;
^
Error: Cannot find module './events/member'
Require stack:
- C:\Users\Administrateur\Desktop\BOT SLMD DEV\index.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at C:\Users\Administrateur\Desktop\BOT SLMD DEV\index.js:12:19
at Array.forEach (<anonymous>)
at C:\Users\Administrateur\Desktop\BOT SLMD DEV\index.js:11:9
at FSReqCallback.oncomplete (node:fs:188:23) {
code: 'MODULE_NOT_FOUND',
requireStack: [ 'C:\\Users\\Administrateur\\Desktop\\BOT SLMD DEV\\index.js' ]
}
Hareng a raison il faut que tu différencies un Member d'un User, si tu veux plus de détails n'hésites-pas à nous demander
Hey, ça signifie simplement que ton fichier member n'existe pas
Alors je ne sais pas ce que tu fais exactement dans ton code, mais ce fichier n'existe pas ou n'est pas atteignable
donc je suis censé faire comment
Il faut que tu envoie ton code
const Discord = require("discord.js");
const bot = new Discord.Client()
const config = require("./db/config.json")
const emoji = require("./db/emoji.json")
const image = require("./db/image.json")
const role = require("./db/role.json")
const { readdirSync } = require('fs');
const fs = require('fs');
const dbs = require("discord-buttons");
dbs(bot);
const loadEvents = (dir = "./events") => {
fs.readdirSync(dir).forEach(dirs => {
const eventFiles = fs.readdirSync(`${dir}/${dirs}/`).filter(files => files.endsWith(".js"));
for (const event of eventFiles) {
const evt = require(`${dir}/${dirs}/${event}`);
const evtName = event.split(".")[0];
bot.on(evtName, evt.bind(null, bot));
console.log("| 〽️ | L'évenement " + evtName + " est prêt.");
};
});
};
loadEvents();
bot.on('messageReactionAdd', async(reaction, user) => {
const message = reaction.message;
const member = message.guild.members.cache.get(user.id);
if(user.bot) return;
if(
[emoji.ticketopen, emoji.ticketclose].includes(reaction.emoji.name)
) {
switch(reaction.emoji.name) {
case emoji.ticketopen:
if(reaction.message.channel.id !== config.ticket) return console.log('L\'emoji à été utiliser dans un autre salon')
reaction.users.remove(user);
let username = user.username;
let categoryID = config.ticketcategory;
let channel = await message.guild.channels.create(`ticket-${username}`, {type: 'text', parent: message.guild.channels.cache.get(categoryID)})
.catch(err => {
message.channel.send('Il a eu une erreur dans le [MessageReacctionAdd]')
});
channel.updateOverwrite(message.guild.roles.everyone, {'VIEW_CHANNEL': false});
channel.updateOverwrite(member, {
'VIEW_CHANNEL': true,
'SEND_MESSAGES': true,
'ADD_REACTIONS': true
});
channel.updateOverwrite(message.guild.roles.cache.find(role => role.id == "869657088366903377"), {'VIEW_CHANNEL': true});
var embed1 = new Discord.MessageEmbed()
//.setTitle('Hello,')
.setColor('WHITE')
.setDescription('**Bonjour/Bonsoir,** \n\nSi vous avez un problème merci de nous l\'expliquez avec le plus de détail possible. \n\nNous fournissons pas d\'aide en ticket au non V.I.P')
//.addField('Un staff arrive', `__**Sa ne sert a rien de ping le staff!**__`)
.setThumbnail(image.logorw)
channel.send(`${member}`)
channel.send(embed1).then(async msg => msg.react(emoji.ticketclose))
let logchannel = message.guild.channels.cache.find(c => c.id == config.logs)
if(!logchannel) return;
//logchannel.send(`Un membre à créer un ticket. \n Voici le salon ${channel}`)
logchannel.send({embed : {color : "WHITE", title: "Logs Ticket", description : `Un membre vient de créer un ticket: ${channel}`}})
break;
case emoji.ticketclose:
if(!message.channel.name.startsWith('ticket')) return;
if(!member.hasPermission('ADMINISTRATOR')) return;
message.channel.delete()
break;
}
}
})
le voici

Pour tes import au lieu de faire 15 fois les mêmes import pour le même dossier faire const {tes imports} = « ./ton dossier »
Ah nan en fait j’ai rien dis ça marchera pas
Laisse tomber
😂
mais ducoup mon code marchera jamais
C'est marrant, tu nous a tout donné sauf le bout de code qui nous intéresse 
Je t’avoue le code est trop long et j’ai les yeux éclatés ce soir 
Ah toi aussi ?
Ouais x)
Bon @keen narwhal où est ton require('./events/member')
au pire pas grave je vais me débrouiller merci encore de vôtre aide
je t'avouerais je sais pas 😅
Faudrait peut être stopper le CTRL C CTRL V x)
🙂
en vrais de vrais y'a des truc fait maison mdrr
Pas si sûr
comment on fait pour les erreurs Missing permission ?
genre sa
C:\Users\Administrateur\Desktop\rwenvoie\node_modules\discord.js\src\rest\RequestHandler.js:154
throw new DiscordAPIError(request.path, data, request.method, res.status);
^
DiscordAPIError: Missing Permissions
at RequestHandler.execute (C:\Users\Administrateur\Desktop\rwenvoie\node_modules\discord.js\src\rest\RequestHandler.js:154:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (C:\Users\Administrateur\Desktop\rwenvoie\node_modules\discord.js\src\rest\RequestHandler.js:39:14) {
method: 'get',
path: '/guilds/806220327793328219/invites',
code: 50013,
httpStatus: 403
}
||la flemme d'expliquer
||
Quelqu'un d'autre expliquera certainement plus en détail mais en gros
try {
// code à tester
} catch (error) {
// en cas d'erreur dans le code
// si une erreur arrive, le code restant dans le try{} ne sera pas executé, pas d'arrêt du programe en globalité
}
...function.init().catch(error => error)
// some code
// catch va en cas d'erreur renvoyée par une promise l'"attraper" pour éviter l'arrêt complet du programme mais ne concerne que des promesses!
globalement c'est ça car tu peux l'utiliser de manière plus complexe
sinon
➜ try...catch
L'instruction try...catch regroupe des instructions à exécuter et définit une réponse si l'une de ces instructions provoque une exception.
Example:
try {
instructions_try
}
[catch (exception_var_1 if condition_1) { // non-standard
instructions_catch_1
}]
...
[catch (exception_var_2) {
instructions_catch_2
}]
[finally {
instructions_finally
}]
➜ IDBIndex.multiEntry
La propriété multiEntry, rattachée à l'interface IDBIndex, est un booléen qui indique le comportement de l'index lorsque le résultat de l'évaluation d'un chemin de clé renvoie un tableau.
Example:
var monIndex = objectStore.index('index');
console.log(monIndex.multiEntry);
➜ runtime.getPackageDirectoryEntry()
Renvoie un objet DirectoryEntry représentant le répertoire du package.
Example:
var gettingEntry = browser.runtime.getPackageDirectoryEntry()
merci Enzo au passage mdr
Yo,
Pourquoi j'ai une error ?
message.mentions.users.first().kick()
bah envoie l'erreur
Hey, parce que tu vas dans les mentions des users
et non un member
ah bah je laisse expert gerer mdr
il y a une grosse différence entre users et members comme dit plus haut
x))
si tu veux récupérer un member si c'est dans une guild, rediriges toi plutot vers message.mentions.members 👀
:_: Message#mentions
All valid mentions that the message contains
(node:14968) UnhandledPromiseRejectionWarning: TypeError: message.mentions.members.kick is not a function
at Object.module.exports.run (e:\Bot Atlantica\AtlanticaBotDiscord\commandes\warn.js:59:58)
at Client.<anonymous> (e:\Bot Atlantica\AtlanticaBotDiscord\index.js:262:35)
at Client.emit (events.js:412:35)
at MessageCreateAction.handle (e:\Bot Atlantica\AtlanticaBotDiscord\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (e:\Bot Atlantica\AtlanticaBotDiscord\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (e:\Bot Atlantica\AtlanticaBotDiscord\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (e:\Bot Atlantica\AtlanticaBotDiscord\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (e:\Bot Atlantica\AtlanticaBotDiscord\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (e:\Bot Atlantica\AtlanticaBotDiscord\node_modules\ws\lib\event-target.js:132:16)
at WebSocket.emit (events.js:400:28)
(Use `node --trace-warnings ...` to show where the warning was created)
message.mentions.members.kick()
essaye de réfléchir un peu aussi
il t'a dit de te diriger, pas de juste copier le truc
regarde sur la doc ce que tu peux faire avec le .members
@opal harness tu étais sur la bonne voie il te manque juste le .first() logiquement
faut le laisser chercher un peu plz
Il cherche jamais à trouver, il veut juste la réponse sans trop s'embêter, c'est pas le but
.cache.first() 
mé non
members renvoie déjà une collec
pas besoin de cache
ha je pensais c'étais un Manager
donc se que tu me dit c'est de changer la ligne ?
du moins la remplacer
?
tkt, si tu veux te renseigner plus tu peux aller voir sur la doc : https://developer.mozilla.org//fr/docs/Web/JavaScript/Reference/Statements/try...catch
sinon si tu n'as pas compris je suis certain que quelqu'un d'autre te l'expliquera mieux 👀
oui oui pas de problème merci

Salut! Je sais pas du tout si y'a un rapport mais est ce que la version 12 de node.js fonctionne avec les commande / ?
alors je crois pas, en tout cas tu peux use les / commandes avec discord v13 et il faut au minimum la version 16 de node
sinon tu peux use un package, mais pas sur que ça fonctionne
d'accord, merci
Euh j'ai plusieurs version de node js command je fais pour savoir laquelle a été installé quand j'ai fais npm i discord.js ?
euh non
qu'est ce que je raconte
J'ai plusieurs versions de node js comment je fais pour savoir laquelle utilise mon bot, c'est plutot ça ma question
node —version
ok merci
Hello,
Si quelqu'un a déjà utiliser SCSS avec VueJS, serait-il possible de m'éclairer car j'ai une erreur (voir pj) même en suivant la doc de vuejs aucun import se fait..
Le fichier main.js possède juste l'import du fichier main.scss
Le fichier main.scss possède juste un body {color:red;}
J'ai importé sass-loader, sass en devDependencies.
Notifier moi
@slim anvil tu peux peut être l'aider toi
hello surement à cause des versions de postCss ou autre
regarde ton package json
euh sass-loader par contre
et tu as quoi comme version de vue aussi
tu devrais downgrade sass-loader pas compatible il me semble
(sass-loader à partir de 11 c'est webpack 5, et là c'est webpack 4, donc utilise la 10.11 sur sass-loader)
Je check et je te redis
Merci
Pour l'instant c'est bon, je reviens vers toi si j'ai un souci et si tu as 5minutes 😉
Des développeurs discord js disponible pour participer à un gros projet ? Si vous voulez plus d’informations venez priver
Tu peux poster ta demande sur le site
.fr c’est mieux branlos 
J’vois pas de quoi tu parles 

Tu as pas importé Collection de discord.js
ah
de rien
envois le code qui correspond a l'erreur stp
hum, j'en ai plusieurs
après je penses que ca vient des readdir
J'ai plusieurs fichiers
Tes readdir il faut un callback en 2eme argument
si tu veux utilises des promises tu peux aussi importer readdir de fs/promises
Mais ici vu que c'est au démarrage l'utilisation de readdirSync peut etre une bonne solution a la place de readdir
et tu as encore l'erreur maintenant ?
oui
les 3 fonctions readdir tu as aussi mis readdirSync ici ?
Ah mais ç a doit etre ça
bon cette fois çi le message d'erreur est différent
super
ah mais j'ai mis rest au lieu de test 😭
misère de misère
Ah non je viens de voir et c'est pas ça la pb
envois l'erreur alors
du coup fais un npm i @discordjs/rest
non la il faut importer fs avec require
dans le bon fichier et le bon scope ?
et bien le scope d'une variable c'est sa portée dans le code. Exemple je définis une variable dans une fonction A je n'y ais pas accès dans une fonction B si elle est au meme niveau
Sinon envois le code qui correspond a l'erreur et on regardera ca
je penses pas que l'erreur vienne de ce fichier
C'est quoi le message d'erreur ?
A vérifier mais il me semble que il y a un S majuscule au debut
oui c'est SlashCommandBuilder
Ton command.data est undefined
Essaye de console.log(command.data) @keen narwhal tu verras bien qu'il est undefined
Donc ça vient de ton fichier
Ah
Comment je regle ca ?
J'ai retiré
client.commandArray.push(command.data.toJSON());```
Et ça fonctionne mais du coup comment jefais pour que ça fonctionne alors qu'il y a ces lignes de code ?
regardes la structure de tes commandes
vérifie que elles exportent toutes un objet data avec dedans une key name
regardes la structure de tes commandes et vérifie que ca ressemble a ca :
module.exports = {
data : {
name: "le nom"
}
}
envois une commande stp
logique tu as mis le code qui les charges en commentaire
Maintenant vérifie que chaque commande a cette structure
que il y a pas de fichiers vides etc
voila le problème du coup
ah
J'en apprend des choses
Merci encore une fois
hmm
La commande ne marche toujours pas
tu as enlevé le commentaire ?
Oui
Une erreur ?
J'ai fais un copier coller du code de la commande ping
Mais le bot est online quand meme
Donc comme c'est marqué tu as 2 commandes avec le meme nom
what ? mon message c'est instant supr ??
bizzare...
bref
j'ai un problème avec un command handler que j'ai trouver sur le git, mon bot se lance mais me fait un erreur, la voici ! merci a la personne qui pourra m'aider !
DiscordAPIError[50001]: Missing Access
at SequentialHandler.runRequest (C:\Users\capleagency\Desktop\DiscordBot-Template-master\node_modules\@discordjs\rest\dist\lib\handlers\SequentialHandler.js:198:23)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async SequentialHandler.queueRequest (C:\Users\capleagency\Desktop\DiscordBot-Template-master\node_modules\@discordjs\rest\dist\lib\handlers\SequentialHandler.js:99:20)
at async C:\Users\capleagency\Desktop\DiscordBot-Template-master\bot.js:187:3 {
rawError: { message: 'Missing Access', code: 50001 },
code: 50001,
status: 403,
method: 'put',
url: 'Lien discord que je ne peut pas afficher sinon le bot de gca me supprimera mon message...'
}
ton bot n'a pas la perm de créer des slash cmds dans le(s) serveur(s) où il est
pourtan*t il a tout les perms
faut que tu l'ajoutes avec le scope application.commands
logique c'est un scope à cocher
kick et le réinvites en cochant ces cases (et ajoute lui éventuellement des perms)
enfin attends
je dis ptet des bêtises
c'est ptet pas des slash cmds
tu peux send l'url en enveant le discord.com
et le http
si c'est bon j'ai tester ca marche ^^ merci beaucoup ! tu me sauve la vie !!
ah nice, pas de soucis ! 👀
t’avais raison c’est bien ça 

Bonjour, j'aurais besoin d'aide svp
Je m'explique, j'ai fait un mod mail, je l'ai rajouter à mon bot, mtn le mod mail ne fonctione pas.
j'ai mis le mod mail dans message.js
Tu as une erreur ?
nan
y'a sa dans le message js
je pense que sa rentre en conflit
mais je sais pas comment et pourquoi
Le modmail fonctionne comment ? On envoi un message privé au bot ?
le mod mail est juste en dessous de ce code
effectivement
Bah là tu as mis de return si on envoie un dm
Du coup des que le bot reçoit un dm tu lui dis de rien faire
Mets ton code de modmail avant
Ha, effectivement, d'accord, je revien vers toi si cela ne fonctionne pas, merci 😉
J'ai fait se que tu ma dit, j'ai eu une erreur que j'ai jamais eu avant, disant le client était non définis
Bonjour ^^
Je viens vers vous car je souhaite faire un bouton qui ajout un input, mais le problème c'est que je connait pas l'id , ou le name de chaque champs et je voudrai qu'ils soit différant, comment faire ? merci
<script type="text/javaScript">
function creer()
{
var input = document.createElement("input");
input.type="text";
document.body.appendChild(input);
}
</script>
<input type="button" onclick="creer();" value="Ajouter" />
@neat lintel c'est good merci
sinon, mon hébergeur fait cette erreurn vous s'avez pk
tu peux juste générer un id random ?
essayes de rebuild le module
Alors essayes de supprimer les node_modules et le package-lock.json puis refais la commande
Ca semble plutot venir du module. Ca arrive de temps en temps avec tous les modules compilés comme ca
le dossier node_modules
et refais npm install (ne transfères pas les node_modules de ton PC vers l'hébergeur. Le module a besoin d'etre compilé sur la machine qui exécute le code)
j'ai fait sa, je suis bloqué ici
Tu peux voc vite fait ?
pour plus de simplicité
en général la commande peut prendre du temps car il faut compiler le module. Si ca dure vraiment trop longtemps refais la commande
Npm install ?
non pas maintenant dsl
oui
okay pas de pro
oki
@slim anvilComment on fait ?
sa fonctionne pas, il crash toujours
tu as une erreur ?
:/home/container$ if [[ -d .git ]] && [[ ${AUTO_UPDATE} == "1" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then /usr/local/bin/npm install ${NODE_PACKAGES}; fi; if [ -f /home/container/package.json ]; then /usr/local/bin/npm install --production; fi; /usr/local/bin/node /home/container/${BOT_JS_FILE}
up to date, audited 413 packages in 9s
60 packages are looking for funding
run npm fund for details
7 vulnerabilities (4 moderate, 3 high)
To address all issues (including breaking changes), run:
npm audit fix --force
Run npm audit for details.
internal/modules/cjs/loader.js:1131
throw err;
^
SyntaxError: /home/container/node_modules/tr46/lib/mappingTable.json: Unexpected end of JSON input
at parse (<anonymous>)
at Object.Module._extensions..json (internal/modules/cjs/loader.js:1128:22)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:93:18)
at Object.<anonymous> (/home/container/node_modules/tr46/index.js:4:20)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
@neat lintelj'ai uniquement ca, et rien d'autre
en local il fonctionne..
Un json dans un des node_modules a un problème
Soit c'est un bug, soit tu as touché aux node_modules soit c'est un module qui sauvegarde des données dans un json
Tu peux juste faire un math random et venir set l’attribute id a l’élément que tu crées
et si je veut que l'élément s'appelle "ID1" puis t'ajoute 1 à chaque élément ?
tu incrémentes de 1 une variable que tu init dans ta fonction de création
qui est assez bon en js pour automatiser le html / css ?
j'ai besoin d'aide si possible mp ou voc
effectivement j'ai un json qui sauvegarde des donné
mais en local sa fonctionne
j'arrive a le lancé
https://paste.mozilla.org/v3SpaXgR
bonjour je n'arrive pas a recuperer les donnée correctement car elle me renvoie
{"message":"dfgdfg"}: ''"
je recupere une valeure null
tout d'abord le JSON n'est pas bon :
{"message":"dfgdfg"}: '' "
et à partir de quel ligne tu obtiens un null ?
c'est la réponse qui est null ? @civic dragon
Je sais qu'il est pas bon je sais pas d'où ça vient dans mon code
Oui c'est la réponse de mon request->request->get