#javascript-typescript
1 messages · Page 47 of 1
Vous sauriez pas comment récup le message précédent le message envoyer par le membre ou le dernier message envoyé par le bot ?
me mentionner dans la réponse svp
Regarde sur la doc le lastMessageSend un truc comme ça
Je me corrige, GuildMember#lastMessage
ça me renvoi ça : Uncaught Promise Rejection TypeError: Cannot read property 'lastMessage' of undefined
Tu as mis quoi avant ?
bot.users.get(bot.id).lastMessage()
bot étant mon client
pcq ça marche pas sans : Uncaught Promise Rejection TypeError: bot.users.lastMessageID is not a function
A mais je sais
ah ?
c'est ça que j'avais fait x)
Comment est définit bot ?
A mais, c'est pas ce que tu avais fais
Le s a user il faut l'enlever
Users edt une collection de tous les utilisateurs
User est le bot
Ses informations
toujours la même erreur
Envoi le code
et le bot est défini comme ça : const bot = new Discord.Client();
Envoi le code
@red snow jpp je taff là :/
oui, je me dis pareil
Mais qu'est ce que je suis con 🤦♂️ je te fais faire de la merde...
C'est lastMessageID()
Et puis grâce à cette id
Tu trouve le channel avec lastMessageChannelID()
Puis tu get le message avec lastMessageID()
T'as essayé bot.member ?
Je sais plus si c'est ça je suis sur tel donc difficile de te dire
même erreur :/
Oof
Attend mais c'est pas possible je dois faire un truc de merde la
Bon, je te dis ça ce soir ou demain, en attendant, peut être que quelqu'un trouvera, mais là je suis sur tel, je peux rien tester donc je peux pas te dire si c'est un bug ou si c'est moi qui fait n'importe quoi
ok, merci x)
Bonjour, j'ai une petite question vis que je suis curieux, je voulais savoir comment je pouvais faire en sorte que lorsque que je mette une image ou une gif attaché à mon embed ça l'envoit ? J'ai donc essayé
Mais, j'ai obtenue une error
@red snow :3
:3
:3
Attend je lis tout :p
Oki
T'as quelle version discordjs ?
12.2
Okay, t'as essayé le .setThumbnails ?
Euh att je vais voir la doc
Il faut mettre quelque chose entre les parenthèses
J'avais pas fais gaffe
Genre un lien, ou un path.
A non, seulement URL
Du coup je fais
.setImage(' ') ?
Après a toi de voir si tu veux en Thumbnail ou en Image
Et oe cedt ça
Et dans le string tu mets l'url
Je peux pas mettre de lien ?
Si un lien
Ui
Je sais pas si ça crée une erreur si l'argument nest pas un lien par contre
x')
Mdrr
,-,
Pas de soucis Alex :)
👀
Ui
Bah ça terminais par .gif
,-,
Genre imgur.jspquoi/truc.jpg
Bah moi ça fonctionne ,-,
L'image est hébergée sur internet ?
Il faut qu'elle soit herbergee quelque part
Dans ce cas là, elle est hébergée sur discord en gros ,-,
(ça marche aussi sur machine, mais ça sert pas à grand chose ^^)
Oui
Alors Alex, avec un attachment discord ça marche ?
Oui ! GG alex
Merci
J'ai même rajouté qu'on puisse choisir la couleure
Pas qu'elle soit prédéfinis :3
Merci beaucoup Burger
Pas de soucis :)
Oui
;-;
Car le titre a un nombre de caractère maximal
Mais il est de genre 5 caractère
Il fait 24 caractère ;-;
xD
Att
Enfaite le texte qu'on voulait mettre il fait 500 caract;re
Mais
Moyen de faire plus de caractère ?
Non
Ça c'est l'api discord qui bloque, impossiblz de faire autrement :/
Du moins pas a ma connaissance
Bah, je crois c'est la descriptions que ça bloque
Oh il la trouve sur Google
Haha :p
:3 Merci beaucoup vous deux
Pas de soucis ;) N'hésite pas si tu as d'autres problèmes
Oki :3
const Discord = require('discord.js');
const client = new Discord.Client();
const fs = requiere('fs');
client.login("secretToken");
client.commands = new Discord.Collection();
fs.readdir("/Commande/", (error, f) => {
if(error) console.log(error);
let commandes = f.filter(f => f.split(".").pop() === "js");
if(commandes.length <= 0) return console.log("Aucune commande trouvée!");
commandes.forEach((f) => {
let commande = requiere(`./Commande/${f}`);
console.log(`${f} commande chargée !`);
client.commands.set(commande.help.name, commande);
});
});
fs.readdir("./Events/", (error, f) => {
if(error) console.log(error);
console.log(`${f.length} vents en chargement`);
f.forEach((f) => {
const events = requiere(`./Events/${f}`);
const event = f.split(".")[0];
client.on(event, events.bind(null, client));
});
}); ```
` C:\Program Files\nodejs\node.exe --inspect-brk=21568 index.js
Debugger listening on ws://127.0.0.1:21568/2287a8a0-2c25-454f-b945-2439730dd9cb
For help, see: https://nodejs.org/en/docs/inspector
Debugger attached.
null: Error: ENOENT: no such file or directory, scandir 'c:\Commandes'
TypeError: Cannot read property 'filter' of undefined
at c:\Users\hnaut\OneDrive\Bureau\BOT\index.js:13:23
at FSReqCallback.oncomplete (fs.js:155:23)
quelle qu un peux m aider svp
Mec
@keen narwhal Tu as 2-3 erreur de syntaxe dans ton require
Tu as mis requiere
J'ai un probleme, j'ai fais une commande clear pour mon bot. Dans mon programme j'ai bien le message.delete(); pour que le message "x messages ont été supprimés!" soit lui aussi supprimé au bout d'un certain temps . sauf qu'il ne se delete pas
envoie le code au lieu du screen pls
const Discord = require(discord.js);
module.exports.run = async(client, message, args) => {
if(!message.guild.member(message.author).hasPermission("MANAGE_MESSAGES")) return message.channel.send(`Vous n'avez pas les permissions !`).catch(console.error);
if(!message.guild.member(client.user).hasPermission("MANAGE_MESSAGES")) return message.channel.send(`Je n'est pas la permission !`).catch(console.error);
if(!args[0]) return message.channel.send(`Vous devez spécifier un nombre de messages à supprimer !`);
if(isNaN(args[0])) return message.channel.send(`Veillez spécifier un nombre !`);
message.channel.bulkDelete(args[0]);
message.channel.send(`${args[0]} message ont été supprimés !`);
message.delete();
};
module.exports.help = {
name: "clear"
}
ouf pas comme ça
tu fais
texte
Tu n'as pas d'erreurs ?
A aucun moment tu supprimes des messages
Met le js après les ```
Comme ça c'est en couleur
Pls
const Discord = require(`discord.js`);
module.exports.run = async(client, message, args) => {
if(!message.guild.member(message.author).hasPermission("MANAGE_MESSAGES")) return message.channel.send(`Vous n'avez pas les permissions !`).catch(console.error);
if(!message.guild.member(client.user).hasPermission("MANAGE_MESSAGES")) return message.channel.send(`Je n'est pas la permission !`).catch(console.error);
if(!args[0]) return message.channel.send(`Vous devez spécifier un nombre de messages à supprimer !`);
if(isNaN(args[0])) return message.channel.send(`Veillez spécifier un nombre !`);
message.channel.bulkDelete(args[0]);
message.channel.send(`${args[0]} message ont été supprimés !`);
message.delete();
};
module.exports.help = {
name: "clear"
}
```js
ca marche pas
j'ai fais ton truc
jsconst Discord = require(`discord.js`);
module.exports.run = async(client, message, args) => {
if(!message.guild.member(message.author).hasPermission("MANAGE_MESSAGES")) return message.channel.send(`Vous n'avez pas les permissions !`).catch(console.error);
if(!message.guild.member(client.user).hasPermission("MANAGE_MESSAGES")) return message.channel.send(`Je n'est pas la permission !`).catch(console.error);
if(!args[0]) return message.channel.send(`Vous devez spécifier un nombre de messages à supprimer !`);
if(isNaN(args[0])) return message.channel.send(`Veillez spécifier un nombre !`);
message.channel.bulkDelete(args[0]);
message.channel.send(`${args[0]} message ont été supprimés !`);
message.delete();
};
module.exports.help = {
name: "clear"
}
Nan
Juste en fait tu cherche a clear quoi exactement ?
un clear pour clear des messages
Là tu ne supprime que la commande et c'est tout
bulkDelete(args[0]);
supprime le nv de message dans le chanel
ah bah je veux supprimer le message "x messages ont été supprimés !"
Encore une nouveautée de la V12 j'imagine
non
bah je connaissais pas alors
Normal Kocia
le bulkDelete(args[0]); je le mets a la place de mon message.delete();
le message.delete()
c'est ton message de /clear xxx
fais juste ça
message.channel.send(`${args[0]} message ont été supprimés !`).then( newMsg => newMsg.delete(1000))
et j'enleve mon message.delete ?
ok je vais test
mais du coup quand tu feras /clear 10 il supprimera que les 9
car le 10eme sera ta commande
hm ok
bah nan si je laisse le message.delete , ca delete les 2 message par exemple plus mon message a moi
mais bon merci quand meme
Une personne a le code pour que notre serveur gmod soit connecté au bot avec l'api de notre hébergeur
Me mentioner ou me mp svp.
merci
C'est à dire connecté ? Tu veux qu'il fasse quoi exactement ?
qui disent combien de joueur, la ram, la mémoire ect
ça dépend des hébergeurs 🤷
Effectivement
Pour les joueurs, tu peux juste faire avec Gmod-servers le site
Pour le reste, voit l'API de ton hébergeur
ça dépend des hébergeurs 🤷
Effectivement
Bonjour, aujourd'hui je me suis attaqué à l'attaque de la commande principal de mon bot, en gros, je voudrais faire en sorte que chaque minute un message indiquant l'heure soit envoyé, je me suis donc penché sur setInterval pour faire en sorte que chaque minute un message envoyé, mais je reste bloqué sur la façon de l'utilisé. Si quelqu'un pourrait me l'expliqué ce serait gentil :3. Ou si quelqu'un a une piste sur ce que je dois faire, si vous pouvez me la dire merci :3
oui
Tu es sur Visual Studio ?
oui
Met setInt et fais CTRL + espace
Puis tu prends le setInterval avec le carré blanc a gauche
Et ça te met la fonction
Le chiffre est en MS, donc 1000 = 1s
60000 = 1 min
Puis tu mets le code (Pas après le timer, mais bien avant)
Mais justement, c'est ce que je ne sais pas quoi faire
La fonction qui te permet d'envoyer le message ?
Att j'essaie un truc
Justement j'allais essayer de faire une fonction de cooldown sur les commandes de mon bot
@red snow À partir de se moment je sais plus quoi faire :/
Tu mets le code dans les accolades
Parce que je voudrais la mettre sur genre un fuseau horaire ( Lui de la france )
Et comment je peux le faire ça ?
Essaye de le faire tout seul
Oki
let Date = new Date()
En dehors de mon setInterval
Oui
?
Même si j'habite pas en france ?
Parce que je voudrais que ce soit l'heure de france justement
Oki
Donc l'heure de France
Regarde la doc, car la Date c'est un chiffre qui n'a pas beaucoup de sens pour nous, mais que pour le bot
Regarde la doc
SyntaxError: await is only valid in async function
ça c'est ta déclaration de channel
Yep
Donc ça je sais pas 🤷♂️
;-;
Après le await ne sert a rien dans ce cas là
ReferenceError: Cannot access 'Date' before initialization
Mais si je veux l'envoyé dans un channel précis
Fait
Et Il faut initialiser Date avant
Le await s'utilise dans une fonction async
dans ta fonction
tu dois avoir un
client.on('message', async message => {})
dans le cas de discord
il faut que tu écrive un message
genre
Pourquoi un if et un then ?
ça existe then
Ah ben je sais plus avec quel langage je confond 
Bah genre if un message est envoyé return le client.on...
Ah non oké c'est les Object.then()
genre channel.message.send("Blabla").then(mgs => { })
Ouais un truc du genre sauf au lieu de blabla bah c’est bonjour xD
Mais il sert a quoi le then ?
Bonne question, mais c’est pas plus logique ?
Tu penses que je devrais juste mettre un .return ?
A quoi il te sert ?
De ?
le return et le then
go revoir les bases du langage
.then c’est pour les Promises
donc rien à voir avec les conditions
de plus tu crée un récepteur d’event dans ce même event? 
Je sais vraiment pas et j'ai commencé genre vraiment il y a une semaine, je connais pas encore tout et je pense pas un jour tout connaitre
Donc c'est normal que je demande de l'aide pour des choses que je sais pas faire
Fais du JS avant de faire du DiscordJS/NodeJS
Juste les bases
Puis après, commence le discordjs
Et avec la doc
Est-ce que je peux au moins finir ça ? Après j'irais faire du JS de base
vous voulez utiliser des librairies et des framework js
avant de savoir ce qu'est une promise ou même comment écrire votre code....
dans ce cas-là tu vas dans #618846980298375168
pas gênant d'aider, mais si c'est pour tout faire c'est trop facile..... dans aide bots on est pas censé expliquer ce qu'est une condition
Bah, je vais aller regarder les bases et je vais revenir plus tard merci quand même :3
j'ai fais un programme pour faire un message de bienvenue pour mon serveur discord. Sauf que quand une personne rejoins mon serveur, ca n'affiche rien dans le salon et dans mon debug ca me mets un message d'erreur.
programme
debug erreur
c'est pas plutot guildMemberAdd quand quelqu'un rejoint le discord ?
c'est normal
dis moi
tu utilises l'argument guild
alors que c'est member pour guildMemberAdd
je te montre vite fait ce que j'avais fait
client.on( 'guildMemberAdd', member => {
//member.addRole( '688838052100964460' )
const embed = new RichEmbed()
.setTitle( `Bienvenue à ${ member.user.username }` )
.setThumbnail( member.user.avatarURL )
.setColor( '#1194EF' )
member.guild.channels.get( '688859986390024262' ).send( embed );
} )
donc a la place de tous les guild je mets member ?
non justement
tu dois mettre un truc avant guild
tu dois utiliser member en fait
je peux t'envoyer mon code en mp et tu le modif ?
devant TOUS les guild ?
oui
Enfaite arkov t'embête pas plus
tu prends son event avec le member
tu fais un console.log(member) Kocia
et tu regardes ce que tu reçois dedans....
je le mets ou
dequoi ?
console.log
apres le .setcolor ?
essayes
client.on( 'guildMemberAdd', member => {
t'as bien mis ca
client.on( 'guildMemberAdd', guild => {
et pas ca ?
j'aavais mis client.on( 'guildMemberAdd', guild => {
et ca me mettait memebr is not defined
donc jai mis
client.on( 'guildMemberAdd', member => {
et mtn ca me dit
guild is not defined
j'enleve tous les guil et je mets member a la place
Regarde ce que tu reçois dedans
j'enleve tous les guild et je mets member a la place
@umbral marsh
je t’ai répondus
@umbral marsh ce que j’ai mis tout à l’heure ça te concerne aussi
tu essayes rien, tu attends juste la bonne réponse je vois pas l’utilité
ça te fera pas progresser
j'ai reglé plein de bug tout seul depuis le debut je demande que ce que j'arrive vrmt pas
Je te donne des pistes mais tu ne les exploites pas je t’ai dis de mettre un log de ton member tu l’as mis en double et puis c’est tout a aucun moment tu as regardé ce que ça log.....
alors que si tu regardes, tu comprendras ce que tu dois faire
si j'ai regardé et ca mets No debug adapter, can not send 'variables'
Et le dernier console.log jai juste oublier de l'enlever
Les gars lisez la doc aussi ^^
Il faut que je mette message devant guild ?
bon j'ai essayé plein de truc mais je vois vrmt pas où est le probleme
@umbral marsh qu'est-ce que tu veux faire ?
un message de bvn mais avec mon programme, ca l'envoie pas @timid loom
Encore, une fois tu as la documentation pour le guildMemberAdd
@umbral marsh dans ce cas déjà c'est bizarre que ton message s'adresse à une guild, non ? C'est un membre auquel tu souhaite la bienvenue
Et qu'est ce que ton erreur ?
Oula mais attend
Tu es sur d'avoir les bases en Javascript ?
pk
Parce que l'erreur est quand même relativement visible
Regarde les noms des variables ^^
je viens de commencer je m'exerce
@umbral marsh la question de taink, c'est que quand le membre rejoins tu n'affiches que des informations relatives au serveur et non au user, donc dès que quelqu'un va rejoindre tu vas afficher a chaque fois quasi les memes infos
Je comprends que c'est pour un bot, mais apprend d'abord le JS
ui je sais mais la faut que je regle se probleme et mon bot sera fini
Bah lis les variables et tu verras
bah c guild
Oui mais tu le sors d'où guild
...
de nul part mdr
Et donc rien ne te choque ?
Pourquoi tu le mets alors ?
¯_(ツ)_/¯
Tu ne pense pas qu'il faut initialiser une variable avant de l'utiliser ?
en francais plz
c'est très français
Tout est français justement
bah en plus facile alorts
Tu essayes d'utiliser une variable qui n'existe pas
comment je fais pour la faire exister ?
On en revient à ce que je t'ai dis hier, tu as mis un console.log(member) le paramètre que tu reçois de ton event guildMemberAdd
regarde ce qu'il te retourne
Tu l'initialise, tout comme une autre variable, par exemple, tu peux faire
let maVariable = "Bonjour"
Mais a la place de ça, tu mets guild, et tu lui attribue la bonne chose
du coup
ca reste assez compréhensible
a la place de guild.name
tu mets juste member.guild.name
c ce que j'avais dis hier ...
Je t'ai dis que c'était faux ?
mais je le mets que sur celui la $
je t'ai dis de tester
nan ta rien dit
Non tu le mets sur chaque
là le screen que tu m'as envoyé c'est un objet, qui est dans ta variable member
si tu veux afficher le guild tu as qu'à faire member.guild.name par ex
c bon je lance
Mais je ne comprend rien à ton message, c'est un message de bienvenue pour les nouveaux utilisateurs, ou un message quand le bot est ajouté sur un serveur ?
à aucun moment tu affiches le nom de l'utilisateur qui a rejoint
en gros c une sorte de message pour que l'utilisateur ai des renseignement sur le serveur
Mais tu vas spam le channel des memes infos, peut etre mieux de lui envoyer en mp
bonne idée
enfin après ça c'est ton choix, mais du coup ton setDescription n'est pas bon, tu dis en gros
Merci à Game Creators Area d'avoir ajouté NOM_DU_BOT
si je dis pas de connerie
Tu dis juste
oui c ca
Bon bah si ça te convient tant mieux
Mais tu remercie le serveur de faire rejoindre un membre ?
nan att je regle un truc
eh oh c bon hein 😂
🤔
Il se l'envoie dans un channel à lui je crois
Ui logiquement vu qu'il y a l'id
Bon après c'est du détail ça Kocia, tu auras juste a changer dans le setDescription le client.user.username
bn allez bn app
Mdrr a toi aussi
ya pas sqlite dans la derniere version de vs ?
let ♥️
A ui, c'est un exemple de merde 😂 J'ai jamais utilisé let var = .... 🤷♂️
bah change, car si un gars a la bonne idée de prendre ton exemple
Ah
change par n'imp
de toute façon l'exemple est pas bon car il voulait stocker une variable qui ne change pas de valeur
donc ça aurait du être const 
gneugneuh, c'était un exemple d'initialisation d'une variable :smart:
Bonjour, auriez vous un moyen de vérifier si la personne ayant envoyé un message est un bot ?
y a une var bot sur les User il me semble
Donc je fais un instanceof message.author.bot ?
yes
👌 merci !
euh pourquoi instanceof?
Pour voir si c'est un bot ?
bot est un bool
no problem
Bonjours je vouderai faire un bot qui avec une commande puis un message non deffini pour du rp genre pour un darknet en ano mais je sais pas trop comment m y prendre des idee ?
Tu peux éclaircir ta demande stp?
tu veux que si un user fait /ano sonmessage ça écrive (Anonyme) son message ?
je pense que c ca
Salut
quelqu'un connait la lib discord js ?
Si oui vous savez pourquoi on ne peut plus self bot avec ?
peut-être parce que c’est pas légal 
Mais on peut tjrs faire des actions sans discord js
enfin conforme au règlement de discord
Pourquoi seulement discord js serait broke
Dommage car discord js était plutôt sympa
Mais c'est stupide cette règle
Bah désolé mais de spam pub c'est aussi stupide
La plus part du temps, les gens utilisait les self bot pour spam pub
Après jsp si c'est toujours utilisable
Mais je veux pas pub mp mdr je veux le vocal
Oe je comprends bien que toi tu veux pas pub, mais ya plein de gens ils vont le faire, et malheureusement, c'est à cause de ces gens que discord bloquera sûrement un jour les trucs comme ça
Discord peut pas les bloquer vu que c'est comme ça que leur client fonctionne
Ou alors ils faudrait tout refaire et je doute qu'ils veuillent faire ça
Cela dit c'est toujours possible de self bot avec discord js, c'est juste que tu dois créer certaines routes toi-même en te basant sur la doc de Discord @leaden hollow
Ils ont fait ça pour trier une bonne partie des gens
À mon avis Discord leur sont tombé dessus et ils ont dû progressivement retirer les routes
Ça doit être possible de voir comment c'était fait avant via le git history mais bon
Ça sera pas prémâché quoi
Les raisons derrière ça sont diverses mais ça me semble logique que ça soit pas autorisé
@timid loom Merci 😁 je vais check le git
garde à l'esprit aussi que de leur côté discord ont ptêt changé le comportement de certaines routes
👌 C'est pour le vocal et je pense que c'est du web socket etc
bonjour/bonsoir , j'aurais besoin d'aide par rapport a un bot en Python , enfaite voila je sais pas comment pouvoir me refere a tout les member du server pour pouvoir dm tout les members du server .
t’as commencé ton bot ?
nop je vois pas comment coder se genre de systeme
ouai mais comme c est puni et dans tout les cas sa sera marquer dans les logs je pourai le controler
suffit de créer une commande /ano gérer le message puis le send en récupérant le message et en mettant le send en « Anonyme » + message, c’est tout con à faire
ahhhh javais pas vue sa comme sa effectivement merci
et juste avant le send tu supprimes le message du joueur
ouai sa logique
je le ferais demain, si tu galères je te donnerais le code
ahh ouai pas con merci tu gere mec je vois sa plus tard la je mange mdrr
np ^^
yep 😉
@left snow Voici le code :
if(command === "ano") {
const messageano = message.content.split(" ").slice(1).join(" ");
message.delete();
message.channel.send(`[Anonyme] : ${messageano}`);
}
ça marche chez moi 😉
OHH merci tu gere javais pas encore regarder
np ^^ je te donne le code du bot si tu veux ^^
si tu veux
const Discord = require('discord.js');
const client = new Discord.Client();
const config = require('./config.json');
client.on("ready", () => {
console.log(`Le bot a démarré, avec ${client.users.size} utilisateurs dans ${client.guilds.size} serveurs.`);
client.user.setActivity("&help pour en savoir plus.");
});
client.on("message", async message => {
if(message.author.bot) return;
if(message.content.indexOf(config.prefix) !== 0) return;
const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
const command = args.shift();
if(command === "ano") {
const messageano = message.content.split(" ").slice(1).join(" ");
message.delete();
message.channel.send(`[Anonyme] : ${messageano}`);
}
});
client.login(config.token);
j ai une question tu pence que sa ferai mieux en umbed
non fin je pense pas
c'est mieux de le faire comme ça c'est plus simple et ça prends moins de place ^^
après libre à toi de faire un embed
avec plaisir ^^
Bonjour, j'avais déjà posté ma demande, mais j'ai pas eu de reponse. Est ce que vous sauriez comment faire un invit manager ? Juste un compteur, après, je sais faire
Ouais je vois
Tu peux récupérer toutes les invitations je crois
Du coup tu regardes les invitations crée par un utilisateur, et tu regardes combien de fois elle a été utilisé
ça doit etre stocké dans l'invitation
Oe, mais je préfère faire ça sur les join, parce que je veux que quand la personne quitte, ça enlevé 1 une invitation dans le compteur
https://www.youtube.com/watch?v=aKV881SpWac si ça peut aider
Interested in free source code, bot ideas, or want to share your projects/commands? Check out https://sourcecode.glitch.me/
==== [ Source Code ] ====
https://discord.io/plexidev-sourcecode
➤ Patrons:
Mio
Duy
Respire
Matthias
LUAN
Conrad
Zhin
dndrhead
Far
Zoro
Julien-Alexandr...
Dans le guildMemberAdd peut-être que tu peux trouver quelle invitation il a use
A tu pense?
No sé, faut check l'objet que tu reçois
Et du coup, fetch toutes les invitations, et faire une boucle ?
look la vidéo il le fait le gars
Mmh la j'ai pas mon pc sous la main, je le ferai demain ou ce soir
yes c'est ça superburger
Il send en array tous les users ayant invités des personnes et le nombres d'utilisations
Je préfère le faire sans tuto, sauf j'y arrive vraiment pas
Puis j'avais déjà regardé et c'était que sur des anciennes versions
yes
Mais merci quand même :)
np ^^
yop, je voudrais find un channel depuis son id en utilisant ça :
const admin_send = client.channels.find('id', 'iddusalon');
mais ça me dis que client.channels.find n'est pas une fonction :x
wtf je l'avais fais une fois mais ça avait marcher sans
ah oui ololo :x
(si ça marche pas, faut bien mettre guild)
const admin_send = client.channels.cache.find('id', '708729093834670161');
marche pas mais ça me met fn.find is not a function xD
comment je get la guild ça fais longtemps que j'ai pas fais ça
Ça s'utilise comme ça le find?
normalement oui
C'est pas (channel-> channel.id.....)
ouais non ça fais pareil
Get 'a guild alors
je prend l'id de quoi du coup pour la guild
Du serveur
ah oui j'suis con, merci je test
comme ça on est d'accord :
const get_guild = client.guilds.find('id', 'id');
.cache
ah oui :x
ça me met le fn.bind is not a function
if(command === "ticket") {
const reason = message.content.split(" ").slice(1).join(" ");
const mp = message.author.send(`Bonjour/Bonsoir ${message.author}, un membre de notre équipe va prendre en charge votre ticket.`);
const get_guild = client.guilds.cache.find('id', 'idserv');
const admin_send = client.channels.find('name', 'admin');
const admin_embed = new Discord.MessageEmbed()
.setColor("#0099ff")
.setTitle(`Ticket de ${message.author}`)
.setAuthor("aLife | Bot", "https://i.imgur.com/T7beXKg.png", "https://alife.mtxserv.com/")
.addFields(
{ name: 'Utilisateur', value: `${message.author}`, inline: true },
{ name: 'Raison', value: `${reason}`, inline: true },
{ name: 'Channel', value: `${message.channel}`, inline: true },
)
.setTimestamp()
.setFooter("aLife | Bot", "https://i.imgur.com/T7beXKg.png");
message.channel.send(admin_send);
}
mon code est bon non ? je suis pas fou
L'erreur renvoie quelle ligne
alors j'ai réussi MAIS ça me le mets pas dans le bon channel xD
non j'ai compris pourquoi j'avais message.channel.send
mais quand je mets channel.send ça me dis qu'il est pas define
Tu l'as pas définis
je la définis en quoi ? :x
Tu veux que le message s'envoie ou ?
dans un salon 'admin'
A, du coup tu fais admin_send.send(admin_embed)
if(command === "ticket") {
const reason = message.content.split(" ").slice(1).join(" ");
const mp = message.author.send(`Bonjour/Bonsoir ${message.author}, un membre de notre équipe va prendre en charge votre ticket.`);
const get_guild = client.guilds.cache.get('id', '708665648494149693');
const admin_send = client.channels.cache.get('name', 'admin');
const admin_embed = new Discord.MessageEmbed()
.setColor("#0099ff")
.setTitle(`Ticket de ${message.author}`)
.setAuthor("aLife | Bot", "https://i.imgur.com/T7beXKg.png", "https://alife.mtxserv.com/")
.addFields(
{ name: 'Utilisateur', value: `${message.author}`, inline: true },
{ name: 'Raison', value: `${reason}`, inline: true },
{ name: 'Channel', value: `${message.channel}`, inline: true },
)
.setTimestamp()
.setFooter("aLife | Bot", "https://i.imgur.com/T7beXKg.png");
admin_send.send(admin_embed);
}
j'ai enlevé le channel du coup
Mais tu es sur quelle version ?
Discord JS
ah
Ou node je sais jamais
je l'ai installé hier du coup fin pour ce bot
et pas le name ?
Parce qu'avec le nom faut mettre les majuscules etc 🤷♂️ on sait jamais
A mais j'avais pas v7
En fait
aucune erreur mais ça mets rien xd
Il faut que tu mette admin_send = client.guilds.cache.get('id', 'id du serv').channels.cache.get(le reste)
Pourquoi .get('id', 'id du serv')
Pour get un channel il faut la guild
il me dit que channels n'est pas lisible ou pas définit
const admin_send = client.guilds.cache.get('id', '708665648494149693').channels.cache.get('id', '708729093834670161');
Get > find pour les id
Fais ce qu'a dit Samuel
Find evite
donc
Je vais sur pc et je regarde ton code vite fait
Du coup j'ai continué mdrr
Histoire de facilité
const admin_send = client.guilds.cache.get('708665648494149693').channels.cache.get('708729093834670161');
on est ok ?
Yep
merci les bg 😉
J'utilise plus que les id moi
maintenant je le saurais, merci les mecs <3<3
Np
Pas de soucis :)
Et oe moi aussi j'utilise que les id
Mais du coup, avec les get, on peut faire .get('welcome') par exemple ?
A oe ok
Je crois que je viens de dire n'imp : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/get
Tu peux get des mots aussi
mais pour les mots, je préfère utiliser find
A ui on peut utiliser les String effectivement
ahh les gars petit soucis techniques, j'ai du me tromper dans la syntaxe mais je vois pas où, je veux tag un rôle dans mon serveur dans un field :
if(command === "ticket") {
const reason = message.content.split(" ").slice(1).join(" ");
const mp = message.author.send(`Bonjour/Bonsoir ${message.author}, un membre de notre équipe va prendre en charge votre ticket.`);
const admin_send = client.guilds.cache.get('708665648494149693').channels.cache.get('708729093834670161');
const guilds = client.guilds.cache.get('708665648494149693');
const grade = guilds.roles.cache.get('709126548657274952');
const admin_embed = new Discord.MessageEmbed()
.setColor("#0099ff")
.setTitle(`Ticket de ${message.author.tag}`)
.setAuthor("aLife | Bot", "https://i.imgur.com/T7beXKg.png", "https://alife.mtxserv.com/")
.addField(`${grade.mention}`)
.addFields(
{ name: 'Utilisateur', value: `${message.author}`, inline: true },
{ name: 'Raison', value: `${reason}`, inline: true },
{ name: 'Channel', value: `${message.channel}`, inline: true },
)
.setTimestamp()
.setFooter("aLife | Bot", "https://i.imgur.com/T7beXKg.png");
admin_send.send(admin_embed);
}
J'ai était obligé de define ma guild sinon ça me le trouvait pas, et ça marche mais ça me met "undefined", j'ai zappé un truc ?
fais le avec la syntaxe de tag direct
yep
Par contre, je comprend pas pourquoi faire :
.addField(`${grade.mention}`)
.addFields(
{ name: 'Utilisateur', value: `${message.author}`, inline: true },
{ name: 'Raison', value: `${reason}`, inline: true },
{ name: 'Channel', value: `${message.channel}`, inline: true },
)```
lequel ?
Yes du coup fais juste <@ &622054964717682724>
Bah, enfaite, tu fais addField et addFields
surtout que ton:
.addField(`${grade.mention}`)
ne va pas marcher
c'est 2 params required yup
ouais pas con xD je vais test
donc pour tag le grade je fais "@legrade" on est d'accord ?
avec un &
le \
entre @ et l'id
ahhh ouiii
<@ &622054964717682724> sans l'espace
.setDescription("@&<@&709126548657274952>") marche po xD
d'ailleurs, je te conseille d'éviter le .setAuthor et .setTitle, ca rend pas souvent joli
@oak turret tu as mis quoi donc ton code ?
ça rends comme ça (la qualité du logo est deg mais c'pas la priorité)
ça :
.setDescription("@&<@&709126548657274952>")
enlève le
ouaip mais ça me tag pas :x
tu as laissé quoi
ça met bien le @admin mais
.setDescription("<@&709126548657274952>")
avec ça ça me met le tag du rôle mais le mentionne pas
t'as pas désactivé le mention sur ce rôle ?
je viens de l'activé mais ça me met ça
ah attend
mon bot bug là je crois :x;
wololo il me spam mp en plus il mets plus le tag wtf
C'est bon ^^
dites moi tout ça c'est opti ?
if(command === "ticket") {
const reason = message.content.split(" ").slice(1).join(" ");
if(reason.length == 0) {
message.channel.send("Vous devez mettre une raison !");
return false;
}
const mp = message.author.send(`Bonjour/Bonsoir ${message.author}, un membre de notre équipe va prendre en charge votre ticket.`);
const admin_send = client.guilds.cache.get('708665648494149693').channels.cache.get('708729093834670161');
const admin_embed = new Discord.MessageEmbed()
.setColor("#0099ff")
.setTitle(`Ticket de ${message.author.tag}`)
.setAuthor("aLife | Bot", "https://i.imgur.com/T7beXKg.png", "https://alife.mtxserv.com/")
.setDescription("<@&709126548657274952>")
.addFields(
{ name: 'Utilisateur', value: `${message.author}`, inline: true },
{ name: 'Raison', value: `${reason}`, inline: true },
{ name: 'Channel', value: `${message.channel}`, inline: true },
)
.setTimestamp()
.setFooter("aLife | Bot", "https://i.imgur.com/T7beXKg.png");
admin_send.send(admin_embed);
}
le fait de faire chaque commande dans ton index c'est pas très opti de base
if(reason.length == 0) {
message.channel.send("Vous devez mettre une raison !");
return false;
}
->
if(!reason) return message.channel.send("Vous devez mettre une raison !");
dans ce cas là
et avec mon else return true pareil ?
if (!raison.length)
J'ai pas fait attention à la condition
Mais pas fan de pas mettre de {}
else return true ?
on se retrouve vite avec des trucs imbitables
autant faire un else return;
const mp = message.author.send(`Bonjour/Bonsoir ${message.author}, un membre de notre équipe va prendre en charge votre ticket.`);
ça sert à rien de faire un else return
Voit pas l'utilité de le mettre en const
met juste un return direct dans ce cas là
⬆️
je l'avais même pas mit le const y a 10 minutes xD
ah x)
le return c'est good
A part c'est 2 trucs, je vois pas de truc non opti
Tu utilises les const donc ca c'est nickel
ok super ! merci à vous les gars !
Mais pour des bots essentiellement en commande
utilisez commando
super ta connexion Enzo 10s pour envoyer un message
connais pas, suis-je inculte ? xD
Non non enzo c'est discord qui bug
c'est quoi commando ?
ah moi aussi
sinon, vous me conseillez quoi héberger le bot ?
okay !
Discord ont encore rien dit sur les problèmes de co
Ah mais c'est que sur ce discord 🤔
on peut récupérer le nombre de ticket qu'un joueur a crée puis les afficher ? (de ma commande)
ça mets toujours 10sec moi 😮
oyoy
c gca qui casse tout tkt 
on est d'acord que const user = client.guilds.memberCount; ça me retourne normalement le nombre de membres sur un discord ?
(même les bots)
client.guilds.get('id').memberCount
nickel merci ^^
Bon c'est encore moi xD, alors j'ai une idée dans la tête mais je sais pas comment la faire, je pense que c'est une boucle mais je sais pas comment la faire, j'ai envie d'initialisé une var nommé "nbr_ticket" égale à 0 et à chaque fois que l'user fais un ticket ça fais nbr_ticket = nbr_ticket + 1 mais j'ai essayé mais marche po
Alors, je te conseil d'utiliser enmap
et non du json
car il faut que tu stock la valeur
if(command === "ticket") {
let nbr_ticket = 0;
const reason = message.content.split(" ").slice(1).join(" ");
if(reason.length == 0) {
message.channel.send("Cette commande nécessite une raison `&ticket raison`");
return false;
}
else {
nbr_ticket = nbr_ticket + 1;
return;
}
Sûrement pas comme ça, mais vu que c'est là qu'il créer ou pas le ticket je me suis dis, qui ne tente rien n'a rien, mais j'ai perdu :x
comment ça ?
if(reason.length == 0) {
message.channel.send("Cette commande nécessite une raison `&ticket raison`");
return false;
}
oublie pas de modif ca
ensuite, ton let ne sera pas sauvegardé indéfiniment
oui xD j'ai oublié mais je le ferais quand j'aurais finis ce que j'ai dans la tête
une const ne marche pas
Toujours pas
je fais comment du coup ?
if(reason.length == 0) {
message.channel.send("Cette commande nécessite une raison `&ticket raison`");
return false;
}
Alors, je te conseil d'utiliser enmap
@crimson fern
if(!reason) {
message.channel.send("Cette commande nécessite une raison `&ticket raison`");
return false;
}
Cliquez sur 📄 pour accéder au message.
if(reason.length == 0) {
message.channel.send("Vous devez mettre une raison !");
return false;
}
->
if(!reason) return message.channel.send("Vous devez mettre une raison !");
Yep
Je vois pas comment faire autrement
Mais faut éviter le json
yep
Le JSON peux se corrompre
de base à 0 et puis +1 à chaque ticket crée
meme si y'as que quelques valeurs
sinon tu fais plus simple Lartaxx
et json n'est pas fait pour stocker de base
Chaque ticket tu le republies dans un channel caché
Et pour avoir le nombre de ticket tu regardes le nombre de message dans ton channel
Ça te fait un historique de ticket en même temps
donc je l'envoie deux fois
et je compte le nombre de message dans ce channel
pas con
Bah tu l’envoies une fois dans le channel log-tickets par exemple
mais je veux savoir le nombre de ticket crée par l'utilisateur en question
pas en général
après si tu veux un vrai système de ticket utilise une base de donnée sqlite ou quoi
enmap 🤷
non pas un vrai juste qu'il stocke le nombre de tickets juste ça
Oui n’importe celui qu’il veut
je connais pas enmap on peut m'expliquer ?
Enmap est super simple a use
regarde la doc npm
Parles-tu anglais ?
oui xDDD
si oui, tient 🙂
donc j'ai installé puis foutu les require et après je fais quoi ?
faut provider aussi ?
look un peu la doc Lartaxx
pas sûr que t’es essayé de comprendre et d’essayer en 3 minutes 
non xD je lis actuellement, juste pour avoir une idée
Je lis, mais j'avoue que j'ai plus de mal qu'avec les autres lib
Alors j'ai à peu près capté le truc, sauf que je comprends pas comment lié mon nbr_ticket à mon EnmapL (c'est là que je déclare mon new Enmap({name: "tickets"})
j'ai set EnmapL à un entier avec la valeur à 0
après je sais pas comment le relié à mon nbr_ticket
en gros, t'as défini ton :
const db = new Enmap({name: "tickets"})```
désormais, tu vas check si y'as un nombre de tickets ouverts défini pour cet utilisateur, si il en a pas, tu le met a 0 :
```js
if(!db.get(`user.${msg.author.id}.ticket`) return db.ensure(`user.${msg.author.id}.ticket`, 0)```
maintenant que tu as ca, tu vas add 1 au nombre
donc :
db.math(`user.${msg.author.id}.ticket`, "add", 1)```
je t'ai offert le code car au début, ca peux être dur avec enmap 🤷
donc j'ai fais :
const EnmapL = new Enmap();
EnmapL.set('integrer', 0);
const nbr_ticket = EnmapL.get('integrer');
const reason = message.content.split(" ").slice(1).join(" ");
if(!reason) return message.channel.send("Vous devez mettre une raison ! `&ticket raison`");
else {
EnmapL.set('integrer', nbr_ticket+1);
return;
}
Puis pour l'afficher j'ai juste fais ${nbr_ticket}, aucune erreur mais ça ne m'envoie pas mon embed
super merci, donc la troisième partie je la mets dans mon else ?
et pour l'afficher je fais quoi ?
tu fais un db.get
y a un problème avec ça :
if(!db.get(`user.${msg.author.id}.ticket`) return db.ensure(`user.${msg.author.id}.ticket`, 0);
')' attendu mais je vois pas où
ah si c'est bon manquait une ) là if(!db.get(user.${msg.author.id}.ticket))
J'installe npm i -g --add-python-to-path --vs2015 --production windows-build-tools depuis powershell dans mon folder
puis bettersqllite3
et après je le start
long à installer le premier xD
ça fais rien :x
if(command === "ticket") {
const db = new Enmap({name: "tickets"});
if(!db.get(`user.${message.author.id}.ticket`)) return db.ensure(`user.${message.author.id}.ticket`, 0);
const reason = message.content.split(" ").slice(1).join(" ");
if(!reason) return message.channel.send("Vous devez mettre une raison ! `&ticket raison`");
else {
db.math(`user.${message.author.id}.ticket`, "add", 1)
return;
}
message.author.send(`Bonjour/Bonsoir ${message.author}, un membre de notre équipe va prendre en charge votre ticket.`);
const admin_send = client.guilds.cache.get('708665648494149693').channels.cache.get('708729093834670161');
const admin_embed = new Discord.MessageEmbed()
.setColor("#0099ff")
.setTitle(`Ticket n°${db.get} de ${message.author.tag}`)
.setAuthor("aLife | Bot", "https://i.imgur.com/T7beXKg.png", "https://alife.mtxserv.com/")
.setDescription("<@&709126548657274952>")
.addFields(
{ name: 'Utilisateur', value: `${message.author}`, inline: true },
{ name: 'Raison', value: `${reason}`, inline: true },
{ name: 'Channel', value: `${message.channel}`, inline: true },
)
.setTimestamp()
.setFooter("aLife | Bot", "https://i.imgur.com/T7beXKg.png");
admin_send.send(admin_embed);
}
aucune erreur
ça m'a crée un dossier data => enmap.sqlite
mais
tu fais db.get
je t'ai dit d'utiliser db.get
et pas seulement d'écrire db.get
je l’use comment dans mon title ?
je mets ça ? user.${message.author.id}.ticket (dans mon get)?
j'ai essayé de faire une const avec le db.get mais ça ne me mets rien non plus
const db = new Enmap({name: "tickets"});
const nbr_ticket = db.get(`user.{message.author.id}.ticket`);
if(!db.get(`user.${message.author.id}.ticket`)) return db.ensure(`user.${message.author.id}.ticket`, 0);
const reason = message.content.split(" ").slice(1).join(" ");
if(!reason) return message.channel.send("Vous devez mettre une raison ! `&ticket raison`");
else {
db.math(`user.${message.author.id}.ticket`, "+", 1)
return;
}
message.author.send(`Bonjour/Bonsoir ${message.author}, un membre de notre équipe va prendre en charge votre ticket.`);
const admin_send = client.guilds.cache.get('708665648494149693').channels.cache.get('708729093834670161');
const admin_embed = new Discord.MessageEmbed()
.setColor("#0099ff")
.setTitle(`Ticket n°${nbr_ticket} de ${message.author.tag}`)
.setAuthor("aLife | Bot", "https://i.imgur.com/T7beXKg.png", "https://alife.mtxserv.com/")
.setDescription("<@&709126548657274952>")
.addFields(
{ name: 'Utilisateur', value: `${message.author}`, inline: true },
{ name: 'Raison', value: `${reason}`, inline: true },
{ name: 'Channel', value: `${message.channel}`, inline: true },
)
.setTimestamp()
.setFooter("aLife | Bot", "https://i.imgur.com/T7beXKg.png");
admin_send.send(admin_embed);
}
Bonjour, auriez vous une idée de pourquoi cette ligne ne marche pas ?
(C'est peut être totalement con mais je trouve pas🤷♂️)
A ui 🤦♂️
tu dis "si il y a pas de parentId égale à id"
C'est pas un booléen
pas forcément sur les booleens
Ah ?
c'est juste que là ça n'a pas de sens du coup
soit tu fais parentID !== id
sois tu fais !parentId
ce qui veut dire "si il y a pas de parentId"
si en gros elle est undefined ou null
👌 merci :)
mais ça marche aussi sur le true ou false
Hello, comment je peux mettre l'icone de l'image de l'utilisateur dans un .setAuthor dans un embed ${message.author.avatarURL} ne fonctionne pas
j'ai une erreur
(node:12752) UnhandledPromiseRejectionWarning: DiscordAPIError: Invalid Form Body
embed.author.icon_url: Not a well formed URL.
mon code :
.setAuthor(`${message.author.tag}`, `${message.author.avatarURL}`, "")
.setAuthor(message.author.tag, message.author.displayAvatarURL)
c'est à cause de mes ${} ?
remet avatarURL ? 🤔
j'use displayAvatarURL d'hab
toujours pas :x
.setAuthor(message.author.tag, message.author.avatarURL)
Comme ça on est d'accord?
log ton message.author normalement tu as une clé avatarURL et displayAvatarURL no ?

