#javascript-typescript
1 messages · Page 94 of 1
l'interet du local ca va surtout etre les performances
L’avantage du cloud c’est que tu as rien a mettre en place au niveau backup etc mais après si tu t’en fous de tout ça oui autant partir sur du local
tu peux toujours le faire aussi mais c’est plus relou car là c’est juste un bouton
oui c'est sur, ca dépendra vraiment des projets
C:\Users\louis\Desktop\Discord\Développement>node index.js
C:\Users\louis\Desktop\Discord\Développement\index.js:7
const client = new Client({
^
SyntaxError: Identifier 'client' has already been declared
at Object.compileFunction (node:vm:352:18)
at wrapSafe (node:internal/modules/cjs/loader:1031:15)
at Module._compile (node:internal/modules/cjs/loader:1065:27)
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
je comprend pas :/
désormais j'ai cette erreur
tu as déclaré 2 clients
comment je règle ça ?
en en déclarant que un
oui regardes tu as 2 clients
c'est quel ligne que je dois retirer ?
c'est compliqué
moins que tu le pense mais ne te jette pas comme ça dans le truc sans trop comprendre pense à faire un tour par la doc pour comprendre celle de djs et hyper cool je trouver
Bonsoir, j'ai quelque problème avec les slash command, j'ai tout le temps la même erreur Commande d'interaction d'application invalide , je ne comprend pas, voila mon code, merci d'avance pour l'aide ^^
const SlashCommand = require('../Structures/SlashCommand');
const { MessageEmbed } = require('discord.js');
const {SlashCommandBuilder} = require("@discordjs/builders");
module.exports = class extends SlashCommand {
constructor(...args) {
super(...args, {
aliases: [],
description: 'Ping le bot',
category: 'Utilities',
usage: '[command]',
slashcommand_builder: (new SlashCommandBuilder()
.setName(`pinggg`)
.setDescription(`Ping le bot`)
).toJSON()
});
}
async run(interaction) {
const embed = new MessageEmbed()
.setColor('2F3136')
.setDescription(`API: ${Math.round(interaction.client.ws.ping)}ms\nUptime: ${ms(interaction.client.uptime)}`)
return interaction.reply({
embeds: [embed],
ephemeral: true
});
}
};
ta slash-commande existe plus, elle reste juste dans le cache sur le client discord
pour régler ca faut le temps de dev utiliser les commandes sur une seul guild
c'est se que je fais, j'ai mon bot que sur un serveur
non mais avec un paramètre guildId dans le set
comment ca ?
quand tu enregistres tes slash-commands
oui est bah justement, j'ai 0 paramètre GuildID ?
ca dépend de ta facon de les enregistrer. regardes la doc
Hey, je recherche un moyen pour interagir avec les pages d'internet avec un programme, genre le prog clic sur le bouton que je lui dit auparavant.
seriez vous comment faire, avec ou sans dependances
Salut j'ai un problème j'ai encore fais un bot discord mais cette fois çi rien ne se passe quand je fais la commande
const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
require('dotenv').config();
client.on('ready', () =>{
console.log('Le bot est connecté')
})
client.on('message', (message) =>{
if(message.content === '/command1'){
message.channel.send('reponse 1')
}
})
client.login(process.env.token);
Y'as pas de message d'erreur ni rien
Tu as pas mis l'intent GUILD_MESSAGES
donc tu peux pas recevoir de messages
et ensuite faut bien activer l'intent du contenu des messages sur https://discord.dev
Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.
de rien
Re bon j'ai essayé comme j'ai pu de faire une sorte de log assez poussé et donc j'ai fais en sorte qu'a chaque fois que qqn envoie un message, le bot le renvoie dans un salon spécifique, alors ça marche mais à chaque fois que j'envoie un message je reçois ça dans le terminal
remplaces message par messageCreate
Tu dois avoir un autre listener message alors
voila
ah niquel merci
Re j'arrive pas à faire en sorte que si qqn envoie le mot insulte il soit supprimé :/
ah bah non c'est bon je viens de résoudre le pb
avec la documentation sous les yeux en meme temps
tu veux pas faire un message.content.includes() sinon ? 🤔
ah
après le ||
Sans ce qu'il y à apres le || si j'envoyais un message et que ensuite j'envoyais insulte le message ne se supprimais pas
du genre "ceci est une insulte"
ok mais là ta condition c’est :
si mon message est égale à insulte
Ou si
message insulte message
Bah ça ne veut rien dire la deuxième partie
Faut que je mette if(message.content === 'insulte' || message content === message + 'insulte' + message) ?
ah ok
Enfin je comprend quand même pas le message + insulte + message
c'est pour rendre le code plus compréhensible ?
ce sera toujours faux mdr
ah
Imaginons tu reçois « toto »
oui
Tu peux pas venir checker que ton message = toto insulte toto
Car tu reçois que toto
Donc ce sera forcément faux
euh
Bah avant si j'envoyais un message et qu'ensuite j'envois 'insulte'
le message ne se supprimais pas
et avec le ben il se supprime 🤷
je comprends pas ce que tu veux dire
surtout que ta condition fonctionne toujours
car message + 'insulte' + message sera toujours converti en true
enfin associé à
je comprends pas
J'ai essayé j'ai envoyé toto insulte toto et le message à bien été supprimé 🤷
Bah en gros tu veux que si un message contienne insulte ça supprime le message ?
oui
Tout message sera supprimé en fait
tout simplement
merci
de rien
Je me complique la vie
tqt on est là pour donner des tips 👌🏻
et aussi j'avais une autre question
yes
est ce que c'est possible d'envoyer un message quand qqn rejoint un salon vocal ?
oui
pcq je trouve pas comment faire sur la documentation
si qqn a un lien ou une explication
la même manière
de quoi ?
bah tu get un channel avec l’id et tu send
ah non mais avec le if
Grace à l'évènement guildMemberUpdate principalement, tu compares l'ancien membre au nouveau et si il s'est maintenant dans un salon vocal (ou dans un nouveau éventuellement) tu peux send ton msg
if machin rejoint le channel vocal
tu dois get le type de l’ancien channel de l’user et le nouveau
c’est un peu un bordel mais c’est assez simple finalement
pourquoi l'ancien ?
pour get si il vient de rejoindre ou non
mais sa c a mettre apres le if nn ?
non c’est un event à part
client.channels.cache.get('id du channel')
comme ça ?
ah mais non c'est à part
oh misère
c’est un event quoi
l'event c'est ce qu'il y à entre parenthèses en première ligne ?
excusez moi x)
Bon j'ai fais ça
client.on('guildMemberUpdate', (ancien, nouveau)){
if(client)
}
Mais bon apres ben voila quoi hein
C'est moche de mettre tes variables en français 
Je te conseille de garder les notations de base de la lib
Surtout si tu débutes
okok
why if (client) je comprends pas le concept
on s’en contre fou du client sur ça
log old, et new
tu verras, et après tu devras check les types
ok
C'est pas dans un voiceStateUpdate plutôt ? @oak turret @sharp grail 🤔
@keen narwhalchange ton guildMemberUpdate en voiceStateUpdate
oui aussi
ah ok
Bon j'ai fais ce que j'ai pu
ouh
Faut mettre des espaces dans ton code :(
Clic droit => Format Document
nuw, ish
alors ouais non du coup
je pouvais pas mette new @oak turret
pourquoi 
Car c’est un opérateur js donc inutilisable en clé
Comme function et d’autres
delete aussi
après de là à mettre Nuw 
fallait bien mettre qqch hein x)
ça marchera pas super bien ton truc
comparer deux objets c'est pas ouf ouf
ah
ok
const oldChannel =
const NewChannel =
})```
C'est bien comme ça ?
c un bon début plutot
Tu cherches à faire quoi avec const oldChannel = ?
et@pareille pour la ligne du dessous
Grace à l'évènement guildMemberUpdate principalement, tu compares l'ancien membre au nouveau et si il s'est maintenant dans un salon vocal (ou dans un nouveau éventuellement) tu peux send ton msg 
➜ [Voir le message original](#javascript-typescript message)
oui mais faut bien les mettre les const ?
en fait
oui
voicestateupdate a deux paramètres
l'ancien voice state du membre
et la nouvelle
ok
ouais je vais voir
hello ^^ personne aurait un command handler open source ( avec les slash command ^^ ) merci d'avance
bonsoir j'aimerai savoir comment vider le cache des slash command de mon bot car quand je fais / des commands qui n'existe plus s'affiche
Pour les commandes globales faut attendre jusqu'à 1h après leur suppression.
Il y a pas de moyen de les enlever instantanément
pas de ouf non
pour ça que j’en fais pas d’ailleurs plus chiant qu’autre chose ces trucs
Vous avez des nouvelles pour la gestion des events sur DiscordJS ?
On s'y retrouve plus sur leur site
comment ça
Les events Discord (ce que t'as en haut de chaque serveur)
C'est actuellement en PR sur le github. Pour l'instant c'est pas pris en charge
@neat lintel enfin good la maj xddd
Super 👌
Salut salut question bête je pense mais je comprend pas trop pourquoi alors une explication serait la bienvenue. J'utilise VueJS est dans le style du fichier App.vue il ne trouve pas ma div portant l'id container mais j'arrive pas à comprendre pq ? ( si je le passe sur la div ça me tue tout l'affichage du component Card ( j'ai testé pour voir ) )

D'un coup ça marche bcp mieux
D’ailleurs tu pourrais lancer ta requête on beforeMount
ça ferais que la page s'affiche pas tant que le fetch est pas complet ?
non juste ça lancera la requête avant que ton composant soit complètement monté
Donc tu gagnes un peu de temps
Ah ok je vois
En gros pendant la construction de la page la requete se lance en parallèle
Je peux pas même le faire encore avant en vrai
Oui au created aussi par exemple
Ok c'est bien ce que je me disais
Ce sera toujours ça de gagner
salut
j'ai un soucis pour ajouter une image sur un embed
const file = new MessageAttachment(`rewards/${reward.file}`, `${reward.file}`);
log.setImage(file);```
embeds[0].image.url: Could not interpret "{'attachment': 'rewards/image 23.jpg', 'name': 'image 23.jpg'}" as string.
oui je pense que l'espace vient poser probleme dans l'url essaye d'avoir un fichier qui ne contient pas d'espace peut etre
Nan ...
embeds[0].image.url: Could not interpret "{'attachment': 'rewards/image32.jpg', 'name': 'image32.jpg'}" as string.
ah ok
tu as essayer de regarder sur google ?
oui, on m'a dit de faire ça :
if (reward.file) {
attachment = new MessageAttachment(`assets/calendar/rewards/${reward.file}`);
log.setImage(`attachment://${reward.file}`);
}
channel.send({ embeds: [log], files: reward.attachment ? [reward.attachment] : [] });
mais ça envoie l'image en dehors de l'embed
je vais tester un truc
Salut j'arrive pas a faire un menu avec discord js, je vous partage mon code (j'ai suivi un tuto)
c'es t lors de l'execution de la commande que rien ne se passe
⤴️ Du coup, j'ai testé ça en v13 et cela fonctionne:
const attachment = new Discord.MessageAttachment(`${le path de ton image}`, 'image.jpg');
const embed = new Discord.MessageEmbed()
.setTitle('Welcome to the server!')
.setDescription('This is a test server. Please read the rules and have fun!')
.setColor('#0099ff')
.setImage('attachment://image.jpg')
const channel = ...// ton channel
await channel.send({ embeds: [embed], files: [attachment] }).catch(console.log)
Désoler du ping, tu as un site a conseillé pour faire ça rapido? 😩
Je note ça dans un coin de ma tête, merci bg
interaction.isCommand plutot non ? x)
sinon t'as bien ton handler de command et d'events de setup ?
je suis désolé j'étais obligé
ah oui faute de frappe
neanmoins ça marche toujours pas :/
^ ils marchent bien ?
nan en effet ça marche pas
J'ai une question peut etre bete
comment le menu peut se mettre si on a pas mit de client.on ?
Je comprends pas ta question
ben moi j'ai appris à faire client.on pour faire une commande
client.on('messageCreate')
et la j'ai pas mis
Il faut que tu comprennes que client.on c'est pour les events
ah
Je connais pas ce vocabulaire je crois avoir compris ce que tu veux dire mais je suis pas sure en faite
Je te pardonne 
hey hey jai besoin d'un conseil . je cherche a faire un bot qui envoie des embed personalisée avec les / commande
tout marche nickel sauf
la couleur personalisé
le bot me renvoie TypeError [COLOR_CONVERT]: Unable to convert color to a number.
quand je mest par exemple RED
si quelqun a une idée
C'est de l'hexa
qu'il faut mettre
#ff00
essaie ca
c'est du rouge (de tête)
@pulsar fiber
évidemment tu le met sous forme de string
'#ff00'
okay merci et tu sais pas si il ya moyen de rester sur lecriture des commande ?
Comment ca ?
genre de base quand tu fais un embed dans le code tu peut ecrire red
et il est rouge
et jaimerais garder ce systeme car c'est simple et le bot est juste pour un serveur entre pote
Je pense que tu peux faire un dictionnaire avec un nom de couleur associée à une valeur hexa, après tu peux juste convertir avec ce dict.
^
oula alors oui mais comment ?
Tu peux faire un objet tout simplement avec clé et valeur
Donc Colors = { red: "#ffffff" }
et faire un colors[arg]
ah , oui daccord moi je voulais juste utilisez ca mdr
mais votre truc a l'air vachement plus complet
bah tu vas pouvoir agrandir le nombre de couleur à la limite
effectivement merci beaucoup
et derniere petite question pour les commandes /
comment je les restreint mdr
T’as un truc sur les permissions
1 réponse = 1€..
oula bas je vais devenir pauvre mdr jetais deja pas bien riche merci ovh
je l’ai plus en tête mais tu peux limiter au.x permission.s
t'utilises djs ou sheweny ?
Mais pas rôle je crois
djs
jai regarder la doc mais c'est incomprehensible pour moi
après sheweny utilise djs donc bon 
oui mais t'as compris roh
je peut pas cibler tout les utilisateur ?
genre desactiver une commande pour tout le monde sauf pour 2 ou 3 personne?
javais pas vue dacc merci beaucoup
et donc les permision c'est par commande j'imagine
yes
après je sais que tu peux restreindre l'utilisation des slash commands dans les channels et/ou rôles
tu m'en diras tant
je fais pas de / commandes donc là je pourrais pas + te renseigner
Je test et te redis alors merci beaucoup
tqt ^^
@oak turret jaurais besoin d'un eclairaige stp mdr quesque que .fetch()
if (!client.application?.owner) await client.application?.fetch();
const command = await client.guilds.cache.get('123456789012345678')?.commands.fetch('876543210987654321');```
lequel
bas je comprend pas c'est quoi le deuxieme id a la fin
le premier c'est la guild donc ca ok mais le deuxieme ?
je comprend plus rien mdr
alors possible mais je definis pas d'id pour mes commande moi mdr
ah je vais regarder
je vais aller dormir et je ferais ca a tete reposer demain mdr merci du coup de main ^^
🥳 Hyperbar - V0.98
https://i.wisp.run/f/sCmAtH.mp4
https://i.wisp.run/f/uVevoM.mp4
https://github.com/hyperts/hyperbar
ps: Windows 10/11 only
nice job!
Il a fait sa pub tranquille
Give me your vscode theme now or banned 
{
"window.menuBarVisibility": "toggle",
"editor.fontFamily": "Fira Code",
"editor.fontWeight": 600,
"editor.fontLigatures": true,
"terminal.integrated.gpuAcceleration": "on",
"explorer.confirmDelete": false,
"explorer.confirmDragAndDrop": false,
"customizeUI.activityBar": "bottom",
"customizeUI.activityBarHideSettings": true,
"workbench.editorAssociations": {
"*.ipynb": "jupyter-notebook"
},
"notebook.cellToolbarLocation": {
"default": "right",
"jupyter-notebook": "left"
},
"workbench.startupEditor": "none",
"tabnine.experimentalAutoImports": true,
"security.workspace.trust.untrustedFiles": "open",
"terminal.integrated.automationShell.linux": "/usr/bin/zsh",
"terminal.integrated.defaultProfile.linux": "zsh",
// "terminal.integrated.cwd": "~/Development",
"git.autofetch": true,
"explorer.compactFolders": false,
"editor.tabSize": 2,
"workbench.iconTheme": "material-icon-theme",
"remote.SSH.remotePlatform": {
"45.231.133.72": "linux",
"vdev.mjsv.us": "linux"
},
"editor.fontSize": 15,
"typescript.updateImportsOnFileMove.enabled": "always",
"workbench.colorTheme": "Framer Syntax",
"window.zoomLevel": -2,
"vscode_custom_css.imports": [
"file:///C:/Users/nodge/Development/ember/vscode/autohide-tabs.css"
],
"git.allowForcePush": true,
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"gitlens.gitCommands.skipConfirmations": [
"fetch:command",
"stash-push:command",
"switch:command",
"push:command"
]
}
Waw tu as fais ton propre theme?
il est anglais max
"workbench.colorTheme": "Framer Syntax",
Ah merde
"vscode_custom_css.imports": ["file:///C:/Users/nodge/Development/ember/vscode/autohide-tabs.css"],
```
Thx
deepL merci 
auto-hiding: https://i.imgur.com/3G0GDkG.gif
how to install your hypebar ?
i can compiled, but it would look empty since there's no widgets ready to be shipped.
if you can actually code in JS/TS i can give you the base widget and everything you need to make your own widgets
or wait a bit while i make the default ones.
yeah okay, I will wait for your release so
if you want to run it anyway, it's a normal nodejs program https://github.com/hyperts/hyper
yarn # or npm i
yarn start # or npm start
oh okay great, and I imagine that by stopping the process the bar returns to the default one?
it doesn't remove
Slt slt ptit prob j'ai fait mon truc de warn tt marche mais j'ai fait une cmd ?uwarn pour check le nombre de warn du joueur
But si le joueur na pas de warn
donc comment je fait pour check si il a pas de warn pour
lui mettre un msg pas de warn ou quoi
?
Montre ton code
++
t'as ça qui te fera moins chier :
`${my_var} et mon texte`
Exemple :
console.log(`${true == false} ok ?`)
console.log(true == false + " ok ?")
okok et dcp jfait comme pour check ?
et remet le .warns ?
bah c'est pas ce que tu veux ?
oe mais comment je return un msg
genre
if(warns[warnUser.id].warns){
squi ce passe si pas de warn ?
}
bah
if ( warns[warnUser.id]?.warns ) {} // .warns existe
else {} // .warns existe pas
Dans le cas ou le .warns se créé seulement si il en a
Sinon
if ( warns[warnUser.id].warns >= 1 ) {} // il en a au moins un
else {} // il en a pas
pas besoin de mettre de else d'ailleurs tant que tu return quelque chose
tu me dis si tu comprends ou pas
J'ai compris Merci
moi j'avais tenter un truc du genre
if ( warns[warnUser.id].warns = 0 ) {}
non
"=" set la valeur de x à la valeur que tu lui mets
pour check une valeur c'est ===
un type c'est ==
donc toi c'est ===
y'a pas un tableau pour ça ?
un tableau ?
In this tutorial, you will learn about the Comparison operators and Logical operators with the help of examples.
j'avais sans en fond decran avant sur mon ancien ordi
ça s'appelle des opérateurs logiques
bien vue bg
donc reprends mon code, et ça marchera mieux
j'ai fais deux exemples car je sais pas comment fonctionne ton système
Essayes aussi d'apprendre bien le JS avant de t'attaquer à la création de bots
je sais pas si ton user à de base un .warns avec 0 par défaut ou si il en a pas avant d'avoir un warn, voilà le raisonnement de mes exemples
yes, car de ce que je peux entre voir t'as pas acquis les bases @peak cedar
c juste des choses oublier
mm si je devrais pas oublier ça
bref, c'est tout bon maintenant ton système ?
ptdrrrrrr 😭
HAHAHAHAH
const data = new SlashCommandBuilder()
.setName("ban")
.setDescription("ban members")
Client.on("interactionCreate", interaction => {
if(interaction.isCommand()){
if(interaction.commandName === "ban")
{
let member = message.mentions.members.first()
if(!member) return message.channel.send("You must mention a user")
member.ban()
.then(()=> message.channel.send(`${member} has been ban`))
.catch((error)=>{
message.channel.send("There was an error banning the member")
console.log(error)```
@oak turret
@queen ocean
@hazy mirage
stop
excuse
et quand on copie colle, et en ne comprenant pas 10% du code on va pas aller loin
Tu nous le montre pour faire jolie ? 👀
Il y a une erreur ? 👀
Faut donner des détails si tu veux qu'on t'aide xD
ok
apprendre à lire une doc
, t'entends ça Zaros prends en de la graine
SLASH_COMMAND
Bah c'est une slash command avec des options 
ah d'accord j'avais mal compris
ok merci
du coup j'aimerais faire une interaction /command ban afin de bannir un membre
les zamies aidez moi svp
:_: discordjs.guide results:
• Popular Topics: Who banned a user?
• Popular Topics: Administrative - How do I ban a user?
Sinon la doc
merci bb
Avec plaisir
tu veux le lien de la doc sinon ? 

:_: Discord Developer docs results:
• Legal: Discord Developer Terms of Service
• Store Distribution Agreement: Discord Store Distribution Agreement for Developers (Self-Service)

Pourquoi ton client a un C majuscule
Et je ne vois pas le problème dans ton code
parce que le client a fait chauffer la carte
Tu as bien créé la commande ?
Sauf que ça se nomme pas comme ça :)
Premier lettre majuscule c'est pour les classes
bah le problème déjà c'est que ton msg sort de nulle part
les gars handler une commande c'est créer un file pr chaque commande ??
Ptdr j'avais pas vu
Ça se dit pas trop comme ça
Mais un handler c'est ça oui
10 minutes plus tard
"Comment on fait un handler svp ??"

(joke)
@oak turret
Comment fait on pour garder l'icone de l'explorateur tjrs la
des que je vais sur un autre truc sa disparait
y a écrit devin sur ma tête ?
de quoi tu me parles
avant de demander ici demande sur internet par pitié
google est ton ami + que nous
nooooon ne me laisse pas !!!!!
est ce que qqn sait si discord js à changé entre le 1er septembre et aujourd'hui ?
t'as qu'à aller voir les commits
Ya eu une nouvelle version 
ca code la est toujours bon ?
ah non j'avais juste oublie d'ajouter une ligne de code

re cette fois çi j'ai voulu ajouter des options à ma commande slash et j'ai fais ça
et donc je reçois ce message d'erreur
Que je ne comprend pas
ah d'accord
maintenant j'ai ces deux erreures
Ce que je comprend pas c'est que l'erreur me dit que la value doit etre de type array 🤔
ce serait plus pour de la 3d, genre jaimerais creer un jeu de billard, et donc je cherche comment ajouter une physique a une boule avec javascript et typescript
avec three js c'est possible je crois
tu peux charger des models avec three js
Y pas une ) en trop à la fin ?
Ici *
Non c'est pcq j'ai mis un addStringOption
De souvenir c'est un "array d'array"
ça doit rendre comme ci-dessous
.addChoices([
["Choix1", "test"],
["name", "value"]
])
ou alors
.addChoice("Choix1", "test")
.addChoice("Choix2", "test2")
Regarde avec ça et dis nous
Salut ! J'utilise la méthode resolve de path
En fait j'aimerais faire en sorte que ça fasse un délire comme ça :
resolve(__dirname, "..", "routes", "QUELQUECHOSE", folder)
En gros le QUELQUECHOSE, ça voudrait dire que ça peut être n'importe quoi !
Je vous explique : par exemple j'ai ../routes/folder ça marche
j'ai ../routes/docs/autres/aaa/folder ça marche également et ça trouve mon folder
Si ça n'existe pas alors tan pis
j'ai essayé avec ** mais rien
ça marche pas comme ça 
Alors ca peut être fait avec un REGEX ou une alternative JS de la fonction explode en php
explode ?
Ok je vais regarder, mais comment tu comptes faire ça avec une regex ? 
Je t'avoue que je connais pas trop path donc je sais pas si on peut utiliser des regex
Mais en gros tu cherche à isoler le dernier Folder ?
En gros je veux juste faire en sorte d'avoir tous les fichiers .js de mon folder
Mais dans ce folder y'a des folders qui sont dans des folders, tu vois ce que je veux dire ?
Mais j'ai aussi besoin d'avoir le path de ces folders
Je crois avoir trouvé quelque chose
Wow c'est trop bien
Je vais essayer avec ça mais ça m'a l'air d'être good 🙂
C'est bon, merci quand même 
Ouaip
On était 2 sur le coup mais aucun n'a été assez fort pour comprendre ta question mdr
Ah mdr
Et on a commencé par la question dans le salon PHP mdr
#brainfuk
On a même pas répondu car on avais pas du tout compris 😂
Tu fais la doc de 0rion ? 😯
Bonjour,
J'ai une requête assez particulière, j'ai un projet à rendre pour l'école où je dois compléter du code JavaScript fourni par le prof, cependant, j'y comprends rien et j'ai pas le temps d'y passer 1 mois à essayer de comprendre car c'est à rendre pour le 17/12. Y'aurai t-il une personne prête à m'aider contre un petit billet ?
Le projet traite sur la manipulation d'objet...
Montre ce que tu dois faire ça sera plus simple pour t’aider
Avant de payer met deja ton probleme ici, des gens pourront surement t'aider, t'aguiller
Nope c'est pour les cours bg
Pour faire plus simple, voici le lien du sujet carrément, je pourrais pas expliquer mieux...
https://bjobard.perso.univ-pau.fr/Cours/DAI/Projet.html
Disons que moi je m'intéresse plus au C, le Javascript c'est pas trop mon domaine quoi
En gros, dans le code il lache des // TODO en disant, ici y'avait du code à moi, a vous d'essayer de le retrouver ou de trouver comment faire pour arriver à la solution même si c'est d'une autre manière
Oh rip 😦
Je vais pas pouvoir t’aider désolé (pas pratique sur téléphone)
même plus tard ? :(
Les profs à l'université sont tellement intelligent qu'il nous lâche 3 projets à faire en 1 mois dans 3 langages différents ils sont fort :)
J’aurais sûrement pas le temps sorry
okay pg merci quand même, @slim anvil j'ai pu voir t'a description, tu serais pas chaud toi 😋 ?
non sorry je vais pas faire ton devoir, hésite pas à commencer et quand tu bloques on te file un coup de main, mais pas le faire non
Si tu veux vraiment pas du tout y mettre la main à la pâte, oui là à ce moment fais une offre sur le site https://g-ca.fr/offres pour trouver quelqu'un
Ah je connaissais pas ce site merci, et si si, la main à la pâte je l'ai déjà mise, juste que je commence à bloquer assez rapidement
Salut ! J'ai un petit problème. A chaque fois que je npm install discord.js, les nodes_modules etc n'appraissent pas
évite le ghostping @keen narwhal
mais j'ai rien fait😫
tu es sur ?

oui😩
Je fais quoi du coup je te warn pour ghost ping ?
sa fonctionne pas
c'est pas moi, c'est un autre
@keen narwhal @keen narwhal @keen narwhal @keen narwhal @hard pilot
Tiens vu que tu prend les gens pour des cons
nan pk
Ptdr tout les free ping 🤣
Stop maintenant sinon ca part en Hors sujet, et stop le free-ping/ghost ping
merci
c'est Tryste, c'est Trystan
ok
hs ?
Hors sujet
ok
Ah ça marche, merci beaucoup
Je savais pas comment formuler mon code
Alors j'ai en choix Choix1 et name et du coup j'aimerais savoir a quoi servent test et value 🤔
ah bah c'est le value je suis bete
re, comment on fait pour mentionner la personne qui à effectuer un slash command quand on a mit interaction au lieu de message comme paramètre ?
J'ai essayer avec des client.author mais bon
interaction.user
ah merci
Tu sais y a la doc pour ce genre de question 👀
Oui c'est vrai
Cherche pas ce mec il est venu sur mon discord il a spam tout le monde pour qu'on lui fasse un bot discord, il parle super mal, et quand je lui ai dit 30€ pour son bot il a quitté le discord sans rien dire. Il est complétement malade
moi aussi 
Pareil et il sais fait passer pour un anglais 😅
Il est grave genant bordel
Mdr
@slim anvil tu as une idée ?
En gros tu essayes de répondre à une interaction qui visiblement n'existe pas @keen narwhal
ça arrive quand le bot est start en 2 fois
c'est à dire ?
Salut à tous , je me permet de vous contactez au sujet des token je suis entrain de confectioner un réseau social , en suivant un tutoriel mais voila , tout aller bien jusqu'à maintenant mais quand je soumet mon formulaire de connexion . La console m'affiche 'No token' et avec Postman tout marche parfaitement .
Voici le controller de mon formulaire de connexion
et mon 'auth.middleware'
Pour le coter front-end j'ai utiliser react pour le backend Node JS
Hey salut, je voulais savoir, il est possible de faire un roll aléatoire d'embed ? Si oui comment ?, merci^^
exprime toi mieux
possible que tu mettes + de trois secondes à y répondre
c'est réglé
Genre choisir un embed aléatoire ?
oui
const embedOne = ton embed
const embedTwo = ton embed
const embedThree = ton embed
let embeds = [embedOne, embedTwo, embedThree];
const roll = Math.floor(Math.random() * embeds.length);
const embedRoll = embeds[roll];
return <message>.channel.send({embeds: [embedRoll]});
pas plus compliqué que ça
Bonjour j'aimerais ajouté un truc a mon code ( de la réponse automatique ) j'ai ce code pouvais m'aider
const config = require('./config.json')
const client = new Client({
partials: ['GUILD_MEMBER', 'CHANNEL', 'USER', 'REACTION']
})
client.on('ready', () => {
console.log('Le bot est connecté !')
client.user.setActivity('test bot', {
type: 'STREAMING'
})
})
client.login(config.token)```
Tu cherches à faire quoi exactement ?
Qui c’est comment faire pour que les gens ne puissent pas accéder au profil du bot en cliquant sur sa photo de profil ?
Salut , j'aurais besoin d'un reaction roles en discord.js version 12.5.1
svp
j'en trouve aucun qui marche
Tu peux le faire toi meme, il y a rien de bien compliquer. Pour cela tu écoutes l'évent messageReactionAdd
Juste oublis pas de mettre la partial MESSAGE pour les messages déja envoyés
ok donc client.on("messageReactionAdd", ??? => {
})
voila c'est un début
il y a un 2eme paramètre
j'ai jamais compris ce site
Ah bah c'est un problème vu que c'est la doc. Si tu comprends pas le site c'est impossible de faire un bot
je cherche un reaction roles par emojis
oui j'ai compris et c'est avec l'évent messageReactionAdd
tu peux utiliser une base de donnée pour le rendre dynamique si besoins avec des commandes pour le config. Tu dois avoir, l'id du message, l'id du role, l'id du channel et l'emoji
les 5 derniers paramètre ça aucun soucis XD
mais je suis extrèmement exploser en bdd
Tu en a pas forcément besoins. A toi de voir a quoi tu veux que ton système ressemble
un peu comme G.CA #activer-des-notifs
oui et bien ils écoutent l'évent messageReactionAdd et il y a des conditions pour savoir quel role ajouter
tu aurait un code svp ?
C'est pas le but
Par contre si tu fais un code qui marche pas on pourra t'aider a le corriger et l'améliorer
les paramètres
Et aussi il faut que tu enregistre le message si c'est pour un reaction role ou un truc dans le genre pour que la réaction marche après le relancement du bot.
A savoir messageReactionet User
aync (reaction, user) => { ?
voila par exemple
ok merci
en activant les partials ca marchera
Et bah je savais même je viens de voir sur discord.js et je suis passé à côté.
Quand on écris un truc dans un salon le bot répond automatique. par exemple : (moi) Bonjour (bot) Salut tu va bien ?
Ok, donc tu dois écouter l’event messageCreate (ou message si tu es en v12), et après tu vérifies le contenu du message, si il contient le mot « Bonjour » tu réponds « Salut tu vas bien? »
if ( message.content.includes("Bonjour") ) return message.reply({content: "Salut tu vas bien ?"});
@slim anvil tu peux lui mettre un coup de pression pour qu'il arrête de mp les gens ?
@hard pilot on évite de "harceler" les gens en mp ou sur le discord pour avoir un bot discord ou autre, tu peux passer commande sur le site => https://g-ca.fr/offres merci !
C'est pas lui
C'est un autre Seklenland
Qui casse les couilles à tout le monde, j'ai eu pareil sur mon discord
Il est plus sur le didi
Hello, pourriez-vous m'aider à comprendre l'erreur suivante: DiscordAPIError: Max number of daily application command creates has been reached (200). Je travaille en local pour l'instant mais je ne sais pas si c'est du aux nombreux restart / aux nombreuses commandes entrées pour faire des tests, etc..
oui ca doit etre les restarts le problème
Tu peux utiliser un autre bot en attendant que ca ce réinitialise
Yep c'est ce que j'ai pu faire mais bon je vais pas faire ça indéfiniement x) J'ai la sale manie de beaucoup restart pour pas grand choses donc bon :d Merci @neat lintel !
pas de souci, après peut etre que quand les commandes sont enregistrées une fois tu peux ne plus le enregistrées jusqu'au prochain changement
Tu peux commenter le code pour cela ou changer des options si tu utilises un framework
Hello, une idée du pourquoi quand je met des fields dans mon embed (sous Discord JS V13), si je console.log mon embed, ils y sont, mais quand je l'envoie, bah ils y sont pas ?
const embed = new MessageEmbed()
.setTitle(DATA.data.title)
.setURL("https://twitch.tv/")
.setAuthor("---", bot.user.displayAvatarURL())
.setColor("#8A2BE2")
.addField("Jeu", DATA.data.game_name, true)
.addField("Viewers", DATA.data.viewer_count.toString(), true)
.setImage(DATA.data.thumbnail_url.replace("{width}", 1280).replace("{height}", 720))
.setThumbnail(bot.user.displayAvatarURL())
CHANNEL.send({content: `Hey, ...`, embed: [embed]})
Hey, je fais face à un petit problème dans le développement de mon bot. J'ai une fonction pour récupérer les gagnants d'un giveaway, avec comme arguments le giveaway en question et le message du giveaway. Je souhaite récupérer les réactions \🎉 de ce message, ce qui marche parfaitement lorsque j'appel la fonction depuis un fichier (le giveaway se termine bien).
Mon problème c'est quand je veux le reroll (avec un contextMenu que j'ai créé). Quand je passe le message (qui existe j'ai vérifier) dans la fonction pour avoir les gagnants, il me met l'erreur suivante (Screen 1).
L'endroit où il y a l'erreur: screen 2
Est-ce que quelqu'un peut m'aider ?
(me ping)
Bien vuuuuu, merci xD
bonjour, j'ai c'est 2 erreurs comment les résoudre
la première c'est quand un membre fait la commande !say
la deuxième c'est quand un Staff fait !say
merci pour les aides à venir !
La première c'est que soit l'user à bloquer le bot, soit ils ont pas de serveur en commun ou des trucs comme ça
La 2eme c'est que tu as pas définis client.bot_emojis
Hello, pour revenir sur la réponse de Smaug sur la première erreur, il n'y a que 2 possibilités:
• Soit l'utilisateur a bloqué le bot
• Soit l'utilisateur a désactivé les message privé venant de ton serveur discord (dans les paramètres de confidentialités)
Je te conseil de faire un catch sur ton sendMessage afin d'évité toutes erreur de ce type et si besoin loggé ça ^^
Sa marche je vais essayer
Salut salut !
J'essaye de m'initier à l'utilisation des .fetch, j'essaye de fetch tous les messages qui contiennent un mot par exemple (chose que je n'arrive pas par ailleurs mais je ne m'y suis pas trop attardé pour l'instant). Je voudrais savoir si discord impose une certaine récupération de messages maximum ?
Tu peux récupérer 100 messages à la fois
Okey, ça devrait le faire 👍 Toute date confondue ?
D'acc, intéressant !
Merci @neat lintel ! Tu saurais m'aiguiller sur la verification du contenu d'un message ? Je fais actuellement ça:
let channel = bot.channels.cache.get(config.channelID)
if (channel.messages.fetch(m => m.content.includes(config.fetchedMessage) {
}``` (je n'arrive pas à log mes messages trouvés)
Alors fetch fonctionne pas comme ça. Si tu veux fetch les 100 derniers messages alors tu mets rien en paramètre et tu mets un await devant
Exemple
const msgs = await TextChannel.messages.fetch();
const msgsFilter = msgs.filter(etc)
Hmm d'accord, je vais voir ce que je peux faire 👍 Merci !
Hey petite question par rapport aux messages au dessus, pour par exemple fetch tous les messages d'un salon comment peut-on faire ?
Je suppose que par exemple on peut fetch les 99 derniers messages, puis fetch 99 autres messages avant l'id du dernier message du premier fetch et ainsi de suite
mais y a-t-il une autre solution ?
Non il y a pas d'autre solution que de fetch en boucle
C'est d'ailleurs pas recommandé car ça spam l'api mais si c'est pour un usage limité ça devrait aller
Coucou !! On peut m'aider s'il vous plaît ? Je ne trouve pas mes erreurs :c
Quel est ton soucis ?
Je possède 5 erreurs :c
Faudrait nous les donner pour qu'on puisse t'aider 😂
Les erreurs souligné dans le screen
Ton code est très mal indenté, la première chose à faire serait de mettre au propre tout ça
Ça te permettra déjà de mieux tu retrouver et identifier les potentiels problèmes
Je ne voie pas comment faire, je début j'ai fait de mon mieux :/ 😅
Renseigne toi sur YouTube à propos de l'indentation
Surtout apprendre les bases du DJS
Mais sur VSCode tu peux auto indenter ton code normalement
Yes avec Beautify
apprendre le js déjà
je vois « fonction() » etc..
arrêter de sauter les étapes les gars, apprenez petit à petit, c’est vital votre bot ou quoi ? sérieux quoi
du JS déjà avant d'utiliser une api ^^
oui mais connaissant @keen narwhal DJS voulait dire = Du JS
(me dit pas merci naltos tkt)
ui je me doute beacoup de gens commencent direct par la lib de discord tout en apprenant le js (ce qui fait pas bon mélange à mon humble avis)
Oui merci bb
ksos va 

Salut , j'ai trouvé un code pour les message reaction sauf que je sais pas pourquoi elle ne marche pas
client.on('messageReactionAdd', (reaction, user) => {
let message = reaction.message, emoji = reaction.emoji;
if (emoji.name == '✅') {
// We don't have the member, but only the user...
// Thanks to the previous part, we know how to fetch it
message.guild.fetchMember(user.id).then(member => {
member.addRole('916611814802980864');
});
}
else if (emoji.name == '❌') {
message.guild.fetchMember(user.id).then(member => {
member.removeRole('916611814802980864');
});
}
// Remove the user's reaction
reaction.remove(user);
});
fetchMember existe pas dans Guild
Pareil pour removeRole
On dirait un vieux code de V11 ce que tu as
- Code d'internet (évite un max stp la plupart sont pas à jour)
- Code de la version v11 je pense (
addRoleétant une fonction de la v11, qui est passée àroles.addà partir de la v12) - Pour tout les events de réactions, il faut créer l'event
rawqui permet d'obtenir toute les anciennes réactions de messages de tout les messages sur le serveur
@sudden cipher
L'évent raw n'est pas documenté et donc non officiel. Par conséquent il ne faut pas l'utiliser
Les partials sont faites pour résoudre le problème des trucs qui sont pas dans le cache.
Il est possible de les activer dans le code du client en mettant un array de string de PartialType
Hello, toujours des petites questions par-ci par là mais sauriez-vous me dire comment je peux récupérer les dernières données d'un fichier .json ? (pour un système de warns par exemple qui permettrait de savoir les antécédents de la personne: en prenant que 2/3 données du fichier)
J'ai essayé avec .slice : warnlist[tagged.id].slice(0, 3).map(r => r.reason) mais ça m'indique que warnlist[tagged.id].slice n'est pas une fonction
Tu peux console.log warnlist et tagged.id et m'envoyer le resultat ?
J’ai plus mon pc à disposition mais ça ressemble à:
{
"id d’un membre":
raison: [
"exemple de raison de warn"
}```
pour le tagged.id c’est juste l’id discord
Il me faut les vraies valeurs du coup
Parce que le probleme vient de la justement
D'ailleurs ce que tu as envoyé ca n'existe ni en javascript ni en json
tu as oublié les "" et les {}
C’est plus ça pour le coup, j’avais vraiment rien sous les yeux
Je vous envoie ça dans la journée mais ça y ressemble
Bonjour qui pourrais me dire comment faire une boucle infini pour faire ramer mon pc juste pour tester
Alors
while(true) { console.log('spam') }
derien 
Genre .bat?
Hello, petite question concernant les events messageUpdate & messageDelete, si les msg ne sont pas cached il manque des infos ;_; et comme en plus ils ont été déjà été modifiés/supprimés c'est impossible de les récupérer..
Une solution ?
Tu peux les récupérer s'ils ont été modifiés avec l'ID
S'ils ont été delete oue tu peux rien faire
yep mais je veux dire tu n'auras pas l'ancien contenu du message par exemple pour messageUpdate
mais du coup ok, c'est triste x)
Avec messageUpdate si normalement ?
(si le message a pas été delete, juste modifié)
Bah en fait si le message n'était pas l'origine cached avant qu'il soit update tu n'as pas le content par exemple
tu as le nouveau
mais pas l'ancien x)
T'es sûr ?
J'ai toujours eu le contenu de l'ancien message
de mon côté non ça ne fonctionne pas 🤔
:_: (event) Client#messageUpdate
Emitted whenever a message is updated - e.g. embed or content change.
@sharp grail si
T’as oldMessage et newMessage.
Par contre, faut que tu mette que ça
Si tu met client, oldMessage, newMessage, ça marchera pas.
Nop
....
T’utilises oldMessage
Tu sais je suis pas un débutant
hein
je sais
mais il renvoie null car le message est pas cached
tu veux que je t'envoie des screens ? x))
bah du coup si car j'use un handler
Je veux bien
Pour ton client, utilise oldMessage.client ou newMessage.client 😉
Si tu met les 3, client sera égal soit à oldMessage soit à newMessage. Donc le deuxième sera forcément undefined
non ;_;
car j'use un handler
Mais quel est le rapport mdrr
Ça change rien
j'exporte mon client en premier args
si totalement
tu veux je te screen la sorti du client aussi ?
Je fais la même chose et ça marche très bien. Mon handler est fait de la même manière
;_;
@glass cargo bref je comprends ce que tu veux dire mais t'inquiète ça a toujours bien marché pour moi x))
Sinon par rapport au old message c'est bien qu'il n'est pas cached 🤔
mais merci quand même 👀
Ca existe un genre collection.last() (l'inverse de collection.first()) ?
Okey thanks, mon editeur l'affiche pas chelou
Si tu veux toutes les méthodes, elles sont ici : https://discord.js.org/#/docs/collection/stable/class/Collection
merci
Perso, rien ne s’affiche jamais xD
Je déteste le wiki de discord.js.org perso
je prefere faire avec mon editeur only
je le trouve vraiment pas pratique
Pourtant en général la doc de djs a la réputation d'etre très bien faite
Ah mais elle est bien faite c'est pas le souci, c'est juste le site
Je sais pas, sur le GMod wiki par exemple, tu arrives, tu tappes ce que tu veux, et en 2 secondes tu le trouves.
Là, tu dois aller sur le site, puis dans l'onglet documentation, attendre quelques secondes que le site charge, tapper ton truc, voir que tu as 50 trucs differents pour ce que tu recherches mais que ça n'affiche pas celui que tu veux donc tu dois faire une recherche plus précise, ou alors tu trouves rien alors que ça existe.. Fin bref, à force de vouloir faire trop complet ils l'ont rendu trop complexe à utiliser je trouve
Possible oui, le nouveau design est moins pratique a utiliser ca c'est sur
Moi Gmod wiki, je le trouve simple, efficace. C'est une liste, ça filtre en fonction de ce que tu veux. C'est peut-être pas du flat design, mais le but d'un wiki c'est d'être pratique pas d'être beau 
fin bref
merci pour l'aide en tout cas
pas de souci
Tu le laisse ouvert 😉
Perso, quand je commence à dev, j’ouvre vsc, Discord et la doc
Et ça met du temps à charger, car je crois que après, t’as plus besoin de co
Parce que t’as un truc qui se met en bas et qui dit "app ready to work offline"
À quoi ça sert de dev un bot discord en offline 
Je vois pas le rapport là
Tu peux très bien dev un bot discord offline sans que ca change rien
Tu test ton bot comment mdr ?
Genre c'est un peu comme développer un programme en C mais pas avoir de compileur
T’es pas obligé de tester sur le moment mdrr
Ouais je ne fais jamais ça perso mais pourquoi pas
Mais je trouve que ça devrait pas impacter 99.9% des gens qui l'utilisent en online
chez moi ça charge hyper rapidement la doc, navigation privé ou non
Le cache qu'ils utilisent doit surement être celui que tu peux faire avec Vue donc ça impacte très peu l'app
c'est quasi instantanée les recherches et chaque chargement de page 🤔
Bah non
Tu met pas le client dans tous les messages

C'est à dire ?
En gros dans tous tes messages tu stockes ton client en cache ?
Si tu fais message.client
Tu procède comment ?
pour ?
dans mon message non
Dans ce cas comment tu accèdes au client ?
T'es censé l'exporter dans tes fichiers simplement
Ah je savais pas
^^
Chelou
Si c'est disponible c'est que ça doit être fait comme il faut 
x)
Bonchour, Il est possible d’exécuter plusieurs commandes dans un interactive shell grâce à NodeJS ?
Tu ouvres plusieurs shell
salut, j'ai un pb, en gros j'ai un tableau comme cela :
Array(7) [ "légumes", "légumes", "légumes", "fruits", "légumes", "fruits", "fruits" ]
Et mon objectif et de compter le nombre d'occurrence et de réduire le tableau en gros avoir en rendu :
Légumes à 4 occurrences
Fruits à 3 occurrences en gros
Je bug dessus, quelqu'un aurait un truc pour m'aiguiller, j'ai réussi à supprimer les occurrences mais j'arrive pas à faire un compteur
Tu as commencé quelque chose ?
suffit de chercher un peu
hey, je fais une cmd shop
quand je fais .shop avec l'article il y a une confirmation j'ai fait un colecteur et si oui est colecté l'object est acheté
mais le collecteur marche pas y a aucune erreur
voici le code :
const shop = require('../../assets/shop/shop.json')
const q = args.join(" ")
const position = shop.map(e => e.name.toLowerCase()).indexOf(q.toLowerCase());
if (q && position == -1) message.channel.send(`Cet objet n'existe pas. Pour afficher la liste des objets disponibles tapez \`${settings.prefix}shop\``)
if (q && position) {
if (position !== -1) {
try {
const item = shop[position];
message.channel.send(`Voulez vous acheter ${item.name.toLowerCase()} pour ${item.prix}€ ?`)
const filter = m => (message.author.id === m.author.id)
const userEntry = await message.channel.awaitMessages(filter, {
max: 1, time: 10000, errors: ['time']
});
if (userEntry.first().content.toLowerCase() === "oui") {
if (dbUser.balance <= item.prix) return message.channel.send(`Vous n'avez pas assez d'argent pour acheter cet objet.\nPour gagner de l'argent faites \`${settings.prefix}work\` ou \`${settings.prefix}crime\``)
client.removeBalance(client, message.member, item.prix);
message.channel.send(`${message.author} vous venez d'acheter ${item.name} pour ${item.prix}\nIl vous reste désormais ${dbUser.balance - item.prix}€`)
}
} catch (e) {
message.channel.send('Achat annulé. Veuillez confirmer votre achat plus rapidement.')
}
}
} else {
message.channel.send({ embeds: [embed] })
}
}```
Justement, j'y arrive pas en gros j'ai sa :
Array(7) [ {…}, {…}, {…}, {…}, {…}, {…}, {…} ]
0: Object { nom: "légumes", cpt: 0 }
1: Object { nom: "légumes", cpt: 0 }
2: Object { nom: "légumes", cpt: 0 }
3: Object { nom: "fruits", cpt: 0 }
4: Object { nom: "légumes", cpt: 0 }
5: Object { nom: "fruits", cpt: 0 }
6: Object { nom: "fruits", cpt: 0 }
length: 7
<prototype>: Array []
commande.js:337:13
Et maintenant je cherche à crée un tableau contenant le nombre de fruits et de légumes
t'es en v12 ou v13 ?
const userEntry = await message.channel.awaitMessages({
filter, max: 1, time: 10000, errors: ['time']
});```
en v13 le filtre est passé dans les options
ok
par contre @fading glacier j'ai un autre probleme avec mon shop enft quand je veux acheter le role vip je fais .shop role vip et ça me renvoie le shop
j'ai verifie c bien le meme nom dans le json
Fais voir ton fichier json
Salut les gars, je voudrais savoir comment je peux faire un message de bienvenue avec un emoji perso du serveur
Ex du code :
bot.channels.cache.get(bdd["bienvenue"]).send(`:ToDevArriv: ${message.author} !`);
Et le message de réponse est le suivant :
:ToDevArriv: @Thé Pa Bo !
Alors que je voudrais ça :
Merci d'avance
Cordialement
GPOIRE
Si c'est un emoji du serveur tu as besoins de le mettre au format discord.
Pour avoir le format discord tu envois le message avec un \ devant
= !javascript
Et je retire les :
non tu mets le truc entier dans le code
Et 801759685467963432 correspond à quoi ?
Par exemple :
send(' Bienvenue')
l'id de l'emoji
généré par discord sous forme de Twitter Snowflake
Et je le récupère comment ?
En envoyant un l'emoji précédé d'un \ dans discord
\ <ton emoji sans l'espace>
Exemple l'emoji djs (
) Tu mets un \ puis tu le colle et ca donne !discordjs
(c'est pas dans le code que ca ce passe, c'est sur l'app discord)
Merci mec tu gères
Pas de souci. L'emoji fonctionnera sur tous les serveurs tant que le bot est présent sur le serveur qui possède l'émoji
Rebonsoir,
Quel est le bot.on s'exécutant quand un membre leave
Comme par exemple, quand un mec rejoind la guild :
bot.on("guildMemberAdd", member => {
guildMemberRemove
Bonsoir bonsoir, je travaille depuis un petit temps sur l'adaptation en slash command de mon bot, cependant je relève un problème, lors de certains restarts, certaines commandes ne se chargent pas au lancement du bot, le code de la commande est fonctionnel pour autant lorsque celle-ci apparaît dans la liste des commandes utilisables. Auriez-vous une idée de la source de ce problème ?
Yep c’est ça
Fais voir ton code ?
Je te montre ça dans 2 minutes, je finis un petit truc
Si tu enregistres tes commandes et que tu touches plus après, c'est censé s'afficher tout le temps
Peut-être vérifier que tu enregistres pas " rien " parfois
commands?.create({
name: 'effectif',
description: '» Liste de tout l\'effectif de la faction.'
})
(dans le ready)
if (message.commandName == "effectif") {
function effectif(gerantID,roleID) {
if (message.member.roles.cache.has(gerantID)) {
let memberRole = message.guild.roles.cache.get(roleID).members.map(m => m.user)
let geranceRole = message.guild.roles.cache.get(gerantID).members.map(m => m.user)
const embedEffectif = new MessageEmbed()
.setDescription(`• **Gérance:**
${geranceRole.join('\n')}
• **Effectif:**
${memberRole.join('\n')}`)
.setColor("#34495e")
message.reply({embeds: [embedEffectif]})
}
}
(dans l'interactionCreate)
Il faudrait en voir + pour ce que tu as dans ton ready
J’ai pas grand chose de plus, j’ai mon slashcommandbuilder et sinon pas grand chose en lien avec tout ça. Je me demande si je devrais pas ajouter toutes les commandes via le slashcommandbuilder et pas un mix du commande.create et slashcommandbuilder
Perso j'utilise directement l'API pour enregistrer toutes mes commandes crées avec le builder
Hmm
Il y a un exemple sur le guide je crois
Je vais regarder ça merci
[
{
"name": "role vip",
"description": "Permet d'acheter le role Vip qui vous donne des avantages sur le serveur, comme la permission de changer de pseudo",
"prix": 2000
},
{
"name": "role personnalisé 1 mois",
"description": "Permet d'acheter un role personnalisé dont vous choisissez le nom, la couleur et qui vous place au dessus des membres et qui vous donne les avantages du role Vip ",
"prix": 5000
},
{
"name": "salon personnalisé 1 mois",
"description": "Permet d'acheter un salon privatisé dont vous choisissez le nom et les personnes ayant accès (Maximum 10 personnes) vous pourrez y poster tout ce que vous voulez dans la limite du règlement. ",
"prix": 5000
},
{
"name": "role personnalisé à vie",
"description": "Permet d'acheter un role personnalisé dont vous choisissez le nom, la couleur et qui vous place au dessus des membres et qui vous donne les avantages du role Vip ",
"prix": 10000
}
]
@keen narwhal C'est simplement que tu ne set pas tes commandes je pense
je suppose que ton .shop te renvoie tout ce tableau ?
si tu veux récupérer uniquement l'objet pour le VIP par exemple, tu peux chercher dans ton tableau via la method find
à ta place j'aurai un autre champ dans chaque objet, en guise de clé, qui ne changerait pas
car tu peux faire
const item = shop.find(e => e.name === 'role vip')
sauf que si tu changes un jour le nom, ce code ne sera plus bon, donc peut etre rajouté une key
slug: "vip"
et tu find sur le slug car lui ne changera pas normalement
quel est ton problème
en gros
quand je fais .shop role vip
au lieu de me proposer d'acheter le vip il m'envoie le shop
et ça fait ça que sur le vip pas sur les autres.
normalement quand l'item est pas bon genre .shop dfheid il envoie un message "cet item n'existe pas"
@slim anvil
pas besoin de le mentionner
oké deso
il te renvoie le shop cad le json entier?
oui
montre cette partie de code stp
const q = args.join(" ")
const position = shop.map(e => e.name === q)
if (q && position == -1) message.channel.send(`Cet objet n'existe pas. Pour afficher la liste des objets disponibles tapez \`${settings.prefix}shop\``)
if (q && position) {
if (position !== -1) {
try {
const item = shop[position];
message.channel.send(`Voulez vous acheter ${item.name.toLowerCase()} pour ${item.prix}€ ?`)
const filter = m => (message.author.id === m.author.id)
const userEntry = await message.channel.awaitMessages({
filter, max: 1, time: 10000, errors: ['time']
});
if (userEntry.first().content.toLowerCase() === "oui") {
if (dbUser.balance <= item.prix) return message.channel.send(`Vous n'avez pas assez d'argent pour acheter cet objet.\nPour gagner de l'argent faites \`${settings.prefix}work\` ou \`${settings.prefix}crime\``)
client.removeBalance(client, message.member, item.prix);
message.channel.send(`${message.author} vous venez d'acheter ${item.name} pour ${item.prix}\nIl vous reste désormais ${dbUser.balance - item.prix}€`)
}
} catch (e) {
message.channel.send('Achat annulé. Veuillez confirmer votre achat plus rapidement.')
}
}
} else {
message.channel.send({ embeds: [embed] })
}
}```
et donc toi tu veux faire quoi?
que quand je fais .shop vip il me propose d'acheter le role vip
au lieu d'envoyer le shop
a quoi sert ton .map
att quel ligne
autant faire une recherche, si il trouve ok tu fais ce que tu veux, à l’inverse il trouve rien et hop erreur et basta
mais stop ton .map()
.find()
ok
@oak turret c bon ça envoie plus le shop mais à la place ça envoie le message d'erreur
du catch
Bah ton .catch() c’est si il répond pas
TypeError: Cannot read properties of undefined (reading 'name')
at Object.module.exports.run (E:\Dafaba\CODAGE\hpbot\commands\💵・Economie\shop.js:24:66)
at module.exports (E:\Dafaba\CODAGE\hpbot\events\message\messageCreate.js:130:17)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
c le name
et ça fait ça sur tous les objets pas que le role vip
@oak turret
log ton position
{
name: 'role vip',
description: "Permet d'acheter le role Vip qui vous donne des avantages sur le serveur, comme la permission de changer de pseudo",
prix: 2000
}
log position?.name
bah voilà
quoi ?
ok
@oak turret ça ? if (q && position == -1) message.channel.send(Cet objet n'existe pas. Pour afficher la liste des objets disponibles tapez \${settings.prefix}shop``)
ok
@oak turret tout marche sauf un truc : le systeme de si l'objet est pas dans le json au lieu de mettre le petit message d'erreur il renvoie direct le shop
juste le else du if ( q && position )
oui
ah ouais j'ai vu
bah non tjrs pas
dans le if (q && position == -1) return message.channel.send(`Cet objet n'existe pas. Pour afficher la liste des objets disponibles tapez \`${settings.prefix}shop\``) j'avais pas mis de return je l'ai mis mais ça change pas
le -1 je t’ai dis de l’enlever
j’suis sur téléphone
ah rip
renvoie ton code actuel
Salut, est-ce que des personnes s'y connaissant sur l'architecture SAM ici ?
Explique toujours
En gros le prof à donner une portion de code pour faire un filtre et le but est de le compléter, mais bon galère galère car je comprends pas tout de cette architecture quoi
