#javascript-typescript
1 messages · Page 60 of 1
Et le tour est jouer
ça aussi wtf
vip_channel.send(
vip_embed = new Discord.MessageEmbed()
.setColor("#B28700")
.setDescription('Merci de donner l\'id de votre achat paypal, + screen de l\'achat (photo)')
.addFields(
{ name: "Sujet : ", value: "Demande d'achat d'un VIP", inline: true },
{ name: "Nom du joueur : ", value: `${message.author}`, inline: true }
)
.setTimestamp()
)
bah
et ensuite
vip_channel.send(vip_embed)
Aie
bah alors Enzo, avec la syntaxe normale il veut pas xD
Ta dût foirer un truc @oak turret mdr
oui je pense
ça veut pas dire que c'est bien
c'est sur, j'avoue en relisant pas ouf ouf
C'est de l'opti quoi
non mais j'ai compris un truc de plus avec ça, merci ^^
ça me l'envoyait deux fois, forcément
bien comme ça pour le rendre async mon .then() ?
.then(async vip_channel => {
Yes
je restart mon vps
Ton vps carrément
je l'ai hébergé, j'ai du changer deux fois à cause de conneries, j'ai que des galères avec ce bot :x
Ta pas pm2 ?
no
normal c'est dev avec les pieds 

c'est le truc pour le garder allumé ?
je vois pas le rapport entre la base de donnée et pm2 du coup 
ça me dit la même chose du coup xD
j'ai pas fait le tableau pour les update après, je vois pas comment faire
Aucun @slim anvil je dis juste ce qu'il faut sur un vps pour un bot
La base de donnée est optionnel
Mieux pour gérer tes versions de node et npm
Ok
tiens Lartaxx
bon du coup vu que ça marche po, j'ai fais ma commande appart, et j'ai foutu un .startsWith('7') à la place de l'id du channel
t'auras la réponse ici je pense
le 2eme message explique pourquoi
ah yes je vais look
ty
plus d'erreur niveau des perms, mais l'autre commande s'exécute pas
Bah oui c’est logique
je vais le faire à part
de ?
si command = 1 et que ça rentre dedans, sauf si tu lui modifie sa valeur, il peut pas à la suite du code valoir 2
et si il faut 2 de base il passera pas le 1
Bonjour, j'ai un system de ticket a l'aide de reaction et j'aimerais savoir comment faire pour check que la personne qui click sur la reaction et un certain role
Tu as cherché un peu ?
Oui
T’as trouvé quoi ?
Rien d’util
T’as cherché quoi ?
check if somone has role with reaction discord.js
T’as pas besoin de regarder si le mec réagis
Tu fais seulement un if(à le rôle mcmfm ) {
créer ton channel } else { tu supprimes la réaction et rien se produit}
ok mais comment je ceck qu'il as le role
ok bha super merci de ton aide la prochaine fois je demanderais rien
C’est pas en te disant comment faire que tu vas apprendre, j’en ai déjà fait l’expérience
Salut, quelqu'un serait comment faire en sorte que si un joueur envoie un lien que ça supprime automatiquement son message svp ?
hm includes
if ( message.content.includes('https://') { return message.delete(); }
Un truc dans le genre
laquelle
Le bot ne démarre pas ( Je suis sur un panel ) +
if ( message.content.includes('https://') { return message.delete(); }
SyntaxError: Unexpected token '{'
fait
?
if ( message.content.includes('https://') { message.delete(); }
c'est censé marcher
t'as du te tromper ^^
y a rien qui est mauvais je vois pas où est le pb
ça doit venir de ton code actuel, ou tu l'as mal mit
c'est quoi ton autre code
ah ui my bad
manque une )
?
if ( message.content.includes('https://') ) { return message.delete(); }
test ça attend
const words = ["https://", "discord.gg/"];
if ( words.includes(message.content) ) { message.delete(); }
att je l'avais fais j'te donne ça
const phrases = ["ok", "test"];
if ( phrases.includes( message.content ) ) {
console.log("fonctionne");
}
moi ça fonctionne ça
Il a rien quand je mets un des mots
c'est chiant car j'ai pas le gout de ramener mee6 juste pour ça
ça se peut que ça marche pas à cause que j'ai la perm admin ?
Mais dans ça il a pas le message.delete() https://discordapp.com/channels/223070469148901376/617677968474636298/749736598656253973
car c'est pas fait dans le bon sens
car tu regardes si dans "https://", "discord.gg" y a le msg.content
mais si le message.content = Salut rejoins ce serveur https://enzo.fr
bah ca includes pas logique
pourtant mon array fonctionnait enzo lol
bah là preuve que non que ca fonctionne pas là
bah maintenant ouais
mais pourtant ça fonctionnait, comprends pas bref je l'utilise plus mais bon
ce qu'il faut faire @uncut eagle c'est ça
const words = ['https://', 'discord.gg']
const forbiddenWords = words.filter(word => message.content.includes(word))
if (forbiddenWords && forbiddenWords.length) { message.delete() }
du coup dans words tu rajoutes tout ce que tu veux et voila
Edit pas directement via ton gestionnaire de fichier OuiPanel la plus part du temps c’est full bug
@uncut eagle
Bah j'ai toujours fait ça et j'ai jamais eu de soucis
Moi avant je faisait via leur editeur de text et j’avais full problème, mot qui se supprimer, code en moins, je te conseille de le faire directement sur ton bureau ou via leur sftp avec vscode
Regarde si tout ton code fonctionne mais le code fonctionne je l’ai testé
T’as peut être des balises manquantes ou autre ça je peux pas le savoir
bah pourtant quand je démarre tout marche tout le reste du code marche
non aucun message d'erreur
Completed in 1m Le bot a démarré, avec undefined utilisateurs dans undefined serveurs.
Salut !
(Demande de support pour bot développés avec Discordia)
Voilà pour mon serveur Discord j'ai un Bot qui gére les annonces de ventes créés par les membres.
Je souhaite stockés les annonces en DB (ça c'est ok) mais seulement voilà.
Quand le membre fait une commande je vais SELECT toutes ses annonces dans la DB et les ajouter dans un tableau, sauf que pour que cela me print ce que contiens le tableau je suis obligés de faire 2 fois ma commande.
J'ai l'impression que la première fois, rien ne se passe et pourtant si, tout est enregistrés mais rien ne se print.
Voilà mon code :
local function createAdsIndex(authorTag, id, title, desc, price, img)
if (not(member.ads[''..authorTag..'']))then
member.ads[''..authorTag..''] = {};
end
if (id ~= nil) then
member.ads[''..authorTag..''][id] = {title, desc, price, img};
end
return member.ads[''..authorTag..''];
end
--[[ Début event envoie de message ]]--
local author = message.author
mySqlClient:query( "SELECT * FROM `WARSHOP_Discord`.`sellers_ads` WHERE author = '"..author.tag.."';", function(err,res,fields)
for i, v in ipairs(res) do
createAdsIndex(v.author, v.id, v.title, v.description, v.price, v.img);
end
end)
for k, v in pairs(createAdsIndex(author.tag, nil))do
print(k, v[1])
end
--[[ Fin event envoie de message ]]--
Voilà une vidéo du problème si jamais ^^
tu peux vérifier que c'est là si tu as une certaine commande
cela dit je crois pas qu'ils aient fait une fonction optionnel/obligatoire en fonction d'un autre argument
Hey j'ai un problème
await ticket_user.dmChannel.startTyping()
await ticket_user.dmChannel.stopTyping(true)
J'essaye de faire écrire le bot quand quelqu'un écrit, ça fonctionne mais le bot n'arrête pas d'écrire :/
Ok je tente
@dire latch Alors ça fonctionne quand le message est envoyé, mais quand on commence à entrer un message, et qu'on le delete, ça met en train d'écrire à l'infini :/
Tu veux faire quoi exactement ?
En gros, je fais un bot ticket
Quand le staff écris dans le channel
Je veux que le bot soit en train d'écrire dans les MP
J'ai rien dit ça marche
Merci 😉
Non en fait
Ca met trop de temps c'est pas normal
Enlève les await
Dr 😉
@runic bane print author.tag normalement sur la première requête cette variable renverra nil
C'est sûrement pour ça que la première fois ça ne marche pas
Hey 🙂
J'ai une commande !warn pour warn une personne qui sauvegarde dans une base de donnée, mais comment récupéré tout ces warns pour les renvoyés dans un embed ?
Trop rapide mdr
Je sauvegarde ceci:
Donc, pseudo, pseudo_id, reason, staff, staff_id
Tu peux sélect by le discord_id du coup
Et ça te return rien ?
En gros, j'ai fais la même technique que le leaderboard si tu t'en rappelles
Mais j'obtiens les mêmes warns 3X
montre ta requête et tes résultats en screen pls je suis sur tel
let user = message.mentions.users.first();
if(!user) return message.channel.send("Vous devez mentionner quelqu'un.");
bdd.query(`SELECT * FROM warns WHERE pseudo_id = '${user.id}'`, (err, warn) => {
if (!warn[0]) return message.reply("cet personne n'as pas de warn.")
const classment = warn.sort((a) => { return a.pseudo_id});
const top = classment.slice(0, 10);
let liste = '';
const promise = top.map(async user => {
let users = await bot.users.cache.get(user.pseudo_id);
let username;
if (users) {
username = users.username;
} else {
username = `NOPE \`ERROR\``;
}
liste += `**[WARN #${classment.findIndex(i => i.pseudo_id == users.id) +1}**]\n\n**Pseudo**: ${username} (${warn[0].pseudo_id})\n**Staff**: ${message.author.username} (${warn[0].staff_id})\n**Raison**: ${warn[0].reason}\n\n`});
Promise.all(promise).then(() => {
const embed = new MessageEmbed()
.setAuthor(`WARN - ${user.tag} (${user.id})`)
.setColor("#8ebd9b")
.setDescription(`${liste}`)
.setTimestamp()
.setFooter(message.author.tag, message.author.avatarURL());
message.channel.send(embed);
// message.channel.send(`${liste}`);
});
});
};```
Voici 🙂
en screen pls 
Log warn (ce que tu reçois de ta requête) et screen
Mais du coup t’as pas besoin de classement etc
On faisait ça pour ton leaderboard
Là tu peux boucler directement sur warn
Ah
Ok
Mais si je fais juste ${warn} ou ${warn[0].reason}
Sa m'affiche que 1 warn @slim anvil 🤔
Ba je l'ai pas modif encore mdrr
Modifie le tu peux delete top classement etc
J'ai juste rajouté le ${warn}
Et tu boucles sur ton tableau de warn pour les ajouter 1 pr 1
wut ?
ton .map tu le fais sur ton warn pas top
Mais.... mec
Tu as copies bêtement ton truc de leaderboard je viens de te dire que tu en as pas besoin tu as juste à boucler sur warn
Tu me sors warn.top...
tu fais juste ton .map sur warn et pas sur top
Je me suis tromper mdr
quand tu log warn il y a un .top dedans ? Alors d’où le sors tu
J'ai mis warn.map
Screen ce que tu as actuellement stp
Supprime tout ce qui sert a rien indente tout bien et renvoie moi le truc plz
Avec toutes les fermetures de } etc car elles y sont pas toutes
A la fin, ya juste:
});
});
};
Renvoie avzc tout alors pls plus simple à la lecture
const promise = warn.map(async warn => {
// ici ton code
})
Promise.all(promise).then(() => {
// ici tu envoies l'embed
})
la tu mélanges ta promise et ton resolve
donc dans le premier bout de code tu fais ton get user avec l'ajout a la liste etc
et dans le deuxieme tu envoies
Ok merci 🙂
Mais comment je fais pour mettre [WARN #1], [WARN #2] ect ect
Car j'ai que des [WARN #1]
Salut !
J'ai un problème, j'essaye de mettre en place un timer avec mon bot Discord (Discordia) sauf que ma technique ça bloque l'exécution des events.
En gros, lorsque que quelqu'un fait la commande !timer, ça lance un décompte de 30scd et je suis censé captés ce que les gens disent pendant ces 30 secondes, sauf que du coup l'event se lance seulement à la fin du timer, hors j'aimerais que ça se lance en même temps.
voici ma technique pour créer mon super timer
repeat
time.actualTime = os.time();
if (time.limitTime - time.limitTime == 20)then
client:getUser(v):send('Il vous reste encore 20 secondes');
elseif (time.limitTime - time.limitTime == 10) then
client:getUser(v):send('Il vous reste encore 10 secondes');
elseif (time.limitTime - time.limitTime == 5) then
client:getUser(v):send('Il vous reste encore 5 secondes');
end
until time.actualTime == time.limitTime
Voici l'event qui ne peu plus être lancés en même temps :
client:on('messageCreate', function(message)
if(message.channel.type == 1) then
if (not(member[message.author.id])) then
member[message.author.id] = {
active = 0
};
end
print(message.content)
end
end)
Les gars, j'aimerais faires un syst`me de logs, mais je sais pas comment m'y prendre, quelqu'un pourrais me ping afin de m'orienter ? Merci d'avance
quelqu'un sait utiliser readline ici ?
c’est un prompter?
logs de quoi?
@oak turret Logs par exemple, ¨À Rejoins le salon, À Ban . . ..¨ Etc
guildmemberadd et guildmemberremove le deuxième pas sur, c’est les events permettant de voir qui arrive et qui part de ton serveur
et pour les trucs de ban
bah si t’as une commande de ban au moment d’un ban t’envoies un message là où tu veux qui servira de log
guildBanAdd -> fetchLog -> if target = member -> executor à ban target
Salut !
J'ai un problème, j'essaye de mettre en place un timer avec mon bot Discord (Discordia) sauf que ma technique ça bloque l'exécution des events.En gros, lorsque que quelqu'un fait la commande !timer, ça lance un décompte de 30scd et je suis censé captés ce que les gens disent pendant ces 30 secondes, sauf que du coup l'event se lance seulement à la fin du timer, hors j'aimerais que ça se lance en même temps.
voici ma technique pour créer mon super timer
repeat time.actualTime = os.time(); if (time.limitTime - time.limitTime == 20)then client:getUser(v):send('Il vous reste encore 20 secondes'); elseif (time.limitTime - time.limitTime == 10) then client:getUser(v):send('Il vous reste encore 10 secondes'); elseif (time.limitTime - time.limitTime == 5) then client:getUser(v):send('Il vous reste encore 5 secondes'); end until time.actualTime == time.limitTimeVoici l'event qui ne peu plus être lancés en même temps :
client:on('messageCreate', function(message) if(message.channel.type == 1) then if (not(member[message.author.id])) then member[message.author.id] = { active = 0 }; end print(message.content) end end)
Je me permet de remettre mon problème, parce que j'ai toujours pas trouvé de solution actuellement ^^
Bonjour qui aurai un code pour que mon bot soit liée a une base de donée.
mysql
et si tu veux je suis dispo vocal pour plus d'indication
bah faut use un module
je sais
faut chercher
je sais sa ok mais genre j'aimerais le liée a mon systeme de warn
bah la dans un json donc c pour sa que je voulais faire avec une bd
rip
bah faut que tu refasses ton code
ouai sa je sais mdr
Bonsoir
J'aimerais faires un embed à cette endroit précis
À La place d'un message normal, mais je veux aussi que l'image de l'author ( Celui qui c fait supprimer son message) Apparaisse dans l'embed, je ne sais pas comment m'y prendre
Ca serait aimable qu'une personne m'oriente svp
avec la méthode send tu peux envoyer un MessageEmbed
je te laisse vérifier tout ça sur le wiki, il y a des exemples normalement
console.log ton member tu verras bien ce qu’il te renvoie, à ton avis par simple déduction, le mot tag te semble il faire référence à la photo ?
merde, je me suis fail, j'ai envoyé le mauvais
je croyais l'avoirs copié
message.author.displayAvatar
voila
@keen narwhal As-tu toujours besoin d'aide ?
@keen narwhal As-tu toujours besoin d'aide ?
@dire latch oui
laisses-moi 2 secondes
Ok
Erreur ?
Ah oui
Si tu console.log ton kickLog
Ça te donne quoi ?
Et pk tu vérifie si la personne kick est lui même ? @keen narwhal
Remet ton code d'avant
Tu enlèves
Donc le else a la fin aussi
Ah ba ya pas de else donc tu supprimes juste la ligne
Enlève la virgule après executor
Et enlève le { qui est solo
Et } tout en bas qui est solo
Et remplace message.author par executor
Code?
client
OK
A la place de **message.channel.send(embed) ** tu met client.channels.cache.get("IDDETINSALON"). send(embed)
Tu sais récupérer L'ID d'un salon ?
👍
@dire latch Merci ^^
Ça fonctionne bien si le mec n'est pas kick ?
tu gères
Mais qu'il leave?
Je vais voirs ca tout de suite
Au pir invite moi stuveux 😁
Ok \👌
tu pourrais faire un .addFields({name: "Nom", value: value, inline: bool}) 🙂
un , après le } et tu refais la même chose, ça évite d’avoir 30 .addField
il y a une erreur au message.content.slice
ce n'est pas PREFIX.lenght mais PREFIX.length
merci bg
ça fonctionne maintenant?
bien sûr 

Je voudrai savoir si quelqu'un pourrai m'aider je voudrai savoir comme mettre une image Canva dans un message de bienvenue et d'au revoir ?
Tu veux faire un Embed ?
C'est ça un embed au cas ou https://discordjs.guide/popular-topics/embeds.html#embed-preview
non il veux faire une image avec du texte custom dessus
Comme Koya en gros ?
jsp peut etre
@full scaffold Faut apprendre à lire 🙄 puis je l'ai déjà aidé en mp 👍
ça va mal finir j'vous l'dis

hey
Comment je peux faire pour exécuter cette partie de mon code avec une commande ?
module.exports.help = {
name: 'nom de ta commande'
};```
Après, tout dépends ce que tu as déclarés 🙂
@old thistle
je n'ai rien déclaré lol
bah justement, j'ai suivis des tutos
j'ai pas compris
le code là c'est le code d'un tuto
sauf que je comprends pas comment le mec fait pour exécuter le code
Je ne sais pas comme j'ai pas le tuto 🙂
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...
Ah oui, ok
Il a déjà un bot tout fais enfête 🙂
Ton bot a déjà des commandes ou pas ?
oui
sauf que c'est un peu "mal foutu"
j'ai fais avec un évènement : quand un joueur mets un message, je check si le message c'est : ";help" (par exemple)
j'ai pas fais de système de préfix
car je sais pas comment faire
Yo, je cherche un moyen de récupérer des données affichées sur une page web sur mon bot
Fonction de base du js ou une fonction de discord.js ?
ok je venais de voir ça 👌
Et avec tu fais ce que tu veux
yes
Il faut importer une libraire ?
J'ai droit à ça
Y'en a pas un qui se place au dessus ?
ok
Tu veux récupérer un élément de la page ou tu reçois des datas ?
J'veux la page html
J'ai trouvé
fetch("https://firyo.mtxserv.com/firyo/")
.then(res => res.text())
.then(body => console.log(body));
J'ai pris une page trop lourde pour voir un peu
Yes et ensuite bah tu récupères l’élément que tu veux
ui ui
si t'as besoin hésite po

Genre là je fetch cette page https://statsroyale.com/clan/YQL9UQQ2
et le début du console.log c'est ça
Last Seen
</div>
</div>
</div>
<div class="clan__rowContainer" data-trophies="5450" data-donations="60">
<div class="clan__row">
#16
</div>
<div class="clan__row">
<a class="ui__blueLink" href="https://statsroyale.com/profile/LCRCRU8">Treven</a>```
Il me donne le treisième mec en premier
Genre la page est cut
tu cherches a récupéré quoi exactement
là j'veux les stats générales du clan (les trophés par exemple) et les membres du clan
mais c'est renseigné sur la page ?
Oki attend
J'attend
pourquoi res.text() et pas .json() ?
après tu récup l’index des noms
tu le fous dans une let ou quoi
ah
en gros tu veux récupérer ça @full scaffold ?
oui
Ok bah vasy 
Je l'ai en format web par contre
adapte le en format nodejs je pense que c'est différent a little bit
synchro () {
let frag = document.createRange().createContextualFragment(this.html)
frag.querySelectorAll('.clan__metric').forEach((block) => {
const element = {}
if (block.querySelector('.ui__headerMedium').innerHTML) {
element.value = block.querySelector('.ui__headerMedium').innerHTML
}
if (block.querySelector('.ui__mediumText').innerHTML) {
element.text = block.querySelector('.ui__mediumText').innerHTML
}
this.items.push(element)
})
}
dsl indentation c'est discord
fetch("https://statsroyale.com/clan/YQL9UQQ2")
.then(res => res.text())
.then(body =>
console.log(body)
);```
ça
Sur mon code la seule chose qu’il faut que tu changes c’est la conversion de ton texte en html node élément
Je sais pas si c’est possible je pense que oui et ensuite voilà
tu pourras faire autrement sinon mais bon c’est plus simple comme ça tu peux cibler facilement les éléments
J'ai le param body https://www.npmjs.com/package/node-fetch#plain-text-or-html
body: null, // request body. can be null, a string, a Buffer, a Blob, or a Node.js Readable stream
Alors récupère le en html et ce sera good déjà fais ça en oremier@temps
Si tu veux t’as cheerio ou jsdom qui peut te le convertir facilement en node élément
J'vais laisser tomber pour l'instant hein
Paris va perdre en plus
Mais il me file pas le body en entier enfait
C'est ça qui me donne envie d'me défenester avec les volets fermés
Comment ça ? Screen ton console log de body
Fais gaffe c’est possible qu’il ne t’affiche pas tout car juste c’est trop long mais que tu ai tout quand même
J'men suis douté de ça
pourquoi tu veux l’html?
Pour prendre les données de la page
T’as vérifié avant qu’ils ont pas une api pour get certaines infos ? 
Mais sinon pour t’aider au lieu de juste te balancer un code, regarde comment scraper un site via nodejs
Si jamais ils ont pas d’api
vasy
Bonsoir, j'aimerais que, dans le embed, on puissent voir quel est le message qui à été supprimé, Voila le screen
Et voila mon code
tu mets message
au lieu de * Le Message supp*
?
ok
J'crois pas avoirs compris
en retirant les ``
Ah merci beaucoup @keen narwhal ^^, et juste
j'aimerais faires en sorte qu'avec une commande, le bot puisse ajouter le rôle demandé, j'ai fais ce qu'on ma proposé :
Mais nada
T'add pas de rôle là mdr
Tu dels seulement des messages
Fail, pas la bonne image
x)
Ah ok mdr
Bah send là bonne image du coup
Je suis entrains de la faire 😅
J'dois la recommencer
dans même pas 1min je suis la
Voila
@keen narwhal
Ah ok
Cherche le role par l'id
bcp plus simple
const role = guild.roles.cache.get('IDDetonRôle')
message.member.roles.add(role).catch((error) => { if (error) return; });
const role = guild.roles.cache.get('IDDetonRôle') je le mets oû exactement ?
Ton let role
Ok
C'est bon
Faut mettre l'id de ton rôle
Formate ton document stp
Tkt c'est fait
pour l'id
Ton then je le comprend pas
Au pire
??
Mais t'as essayé après avoir appliqué ce que je t'ai dit ?
Si oui, t'as une erreur ?
Si oui, montre l'erreur
2Spi, j'essaye autre chose
k.
ton .has fonctionnera pas, « KICK_MEMBERss » c’est “KICK_MEMBERS”, mais j’vois pas à quoi sert ta ligne là,
puis faut mentionner le rôle
j’ai pas le truc en tête là, look sur mon github j’ai du le faire
regarde dans les liens de son compte
Ok thx
Commence étape par étape, ta commande clear te fait des erreurs quand tu l’utilises ?
je vais pas trop pouvoir t’aider car je suis dans l’avion par contre
Screen rapidement ton code de la commande clear quelqu’un va pouvoir t’aider quand ils seront dispo, comme pour l’envoie du message poll dans un channel spécifique ça va aller vite
Alors envoie là aussi et montre quand même ton code
Step by Step 😜
Alors pas d'erreur, j'envoi mon code
Pour les autre c'est que certain message ne sont pas supprimer
Et j'ai l'impression qu'il ne supprime pas les ancien message
tu veux faire une commande clear?
si oui, look mon github l’admin bot je crois, prend le code et adapte le au tien 🙂
Il est ou ton github ? @oak turret
(node:24) UnhandledPromiseRejectionWarning: DiscordAPIError: You can only bulk delete messages that are under 14 days old.
J'ai cette arreur
En gros je peut pas supprimer des message de 14 jours ?
Yep
ça marche merci ^^
Bonsoir j'ai ce code dans le index de mon bot et j'ai une erreur dans la console
ReferenceError: message is not defined
at Object.<anonymous> (C:\Users\PC\Desktop\tiranabot\index.js:128:31)
at Module._compile (internal/modules/cjs/loader.js:1156:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
at Module.load (internal/modules/cjs/loader.js:1000:32)
at Function.Module._load (internal/modules/cjs/loader.js:899:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
at internal/main/run_main_module.js:18:47
C'est à dire ?
Oe
Enfaite j'ai seulement mis le fr de ceci : https://discord-giveaways.js.org/
pk tu le met ici ton code de giveaway aussi
genre la tu le met dans un endroit mais d ucoup message = nil + args aussi d'ailleurs
Transforme
js client.on('message', message => {
enclient.on('message', (message) => {```
@pure raven
C’est quoi la diff ?
A part les parenthèses ? Parce que si c’est juste les () ça change strictement rien, les parenthèses se mettent lorsque tu as plusieurs params ou si tu veux déstructurer
hey vous seriez m'aider
j'ai sa
je test discordia
mon token est correct je précise
@runic bane utilise discordia il pourra t’aider je pense
T’es sûr que le token est good ?
yep
Car bon 401 + le message d’erreur 🤨
Genre t’es sur sur sur car y a le client token le client token et l’autre
Go te hack
stv

enfin tu vois bien que c'est le meme
oui yes juste parfois certains inverse mais trop bizarre 🤨 je savais pas qu’il appelait la route /@me pour login un bot non plus
Tu fais une requête spécial ou autre lors du run du bot ?
nada
en fait mon code marchait pas donc pour tester j'ai recopié l'exemple de discodia
et j'ai la meme erreur
Essaye de réinstaller discordia
Sur les issues existante il y avait un soucis la dessus
Et tu me dis
Et dans ton Run rajoute Bot en prefix du token
Bot ton_token
Certains font comme ça, à voir 🤨
Et vous savez comment react au message du bot pls
et pas a mon message
un peut comme un .then en js
oui aussi
et comment je peux load mon token depuis une conf json ?
Ah
mais comment t'as trouvé ?
j'ai lu la documentation
envoie
ok merci
par contre j'ai jamais fait de json sa va être la galère loul
@spring dock j'ai sa mais je me doute que sa ne fonctionne pas
comment je suis censé récup juste le txt
Au pire tu peux faire une fonction
oué car la c'est la galère
local config = json.parse( fs.readFileSync( "./config.json" ) )
printtable c'est gmod bg
Ah merde
essaye de juste print le fs.readfilesync pour voir
C'est normal que ca lui retourne une table parce que les arguments sont entretenues dans une table, non ?
idk
C'est normal que ca lui retourne une table parce que les arguments sont entretenues dans une table, non ?
euh bah oui
print config.token
comment ça?
ah nan j'ai trouvé
bah ta variable config = une table lua la
le json.parse() transforme ton json en table lua
bah print(config) te print ta table
non

et comment je suis censé lire sa mdr
Avec tes yeux le plus souvent
tu peux boucler sur ta table et print( k .."=" ..v .."\n" ) par exemple
donc du ocup
for k, v in pairs( config ) do
print( k .."=" ..v .."\n" )
end
oui mais je peux quamd même la manier en utilisant matable.token par ex ?
Oui
ah ok mais c'est pas très pratique pour débug
oui mais bon au pire tu te fait une fonction a laquelle tu met un paramètre tbl et tu execute ce code, comme ça quand tu fait du debug tu call juste ta fonction avec ta table en param
oui mais je peux quamd même la manier en utilisant matable.token par ex ?
oui oui comme je t'ai montré plus haut
Mais si tu veux débug tu peux/dois faire une boucle
Céri1céJS
prettyPrint.dump(value, recurse, nocolor)
ta l'air d'avoir cette fonction avec luvit sinon
pour print une table
Whut il a une sous table qui a le même prénom que la table main
ah bah ok x)
Je dois l'avoir sous la mains
Escape Sequence Character Represented by Sequence
\0 An ASCII NUL (X'00') character
\' A single quote (') character
\" A double quote (") character
\b A backspace character
\n A newline (linefeed) character
\r A carriage return character
\t A tab character
\Z ASCII 26 (Control+Z); see note following the table
\\ A backslash (\) character
\% A % character; see note following the table
\_ A _ character; see note following the table
@hybrid berry
ah thx
et comlment je peux recup mon id de cette faco ?
ah c bon mon array était mauvaise
Faire un giveaways en js c'est trop compliquer avec le npm. ça dit qui n'y à pas de participant xD
Bonsoir,
Quelqu'un peut me dire comment je peux faire pour afficher l'utilisateur qui a invité l'utilisateur qui a rejoins dans le setFooter ?
Merci 🙂
bot.on("guildMemberAdd", member => {
console.log("Bienvenue Chargé ✅")
bot.channels.cache.get('751760060086091816').send(welcomembed);
const welcomembed = new Discord.MessageEmbed()
.setColor('#0099cc')
.addField('Bienvenue ${member}', ' sur **OneLife RôlePlay**', true)
.setTimestamp()
.setFooter('OneLife ©', 'https://imgur.com/bopaS8g.png');
message.channel.send(welcomembed);
member.roles.add('751760059805204528');
});
Au passage, le code que j'ai mis ne fonctionne pas :/
Ah oui
pas des '
Si je demande ici c'est que je ne trouve pas^^
@frosty idol Je t'avais déjà fais le code 🤦♀️
yo, comment je peux faire pour avoir m'id d'unr personne qui reagit a une reaction
Salut !
J'ai un problème, j'essaye de mettre en place un timer avec mon bot Discord (Discordia) sauf que ma technique ça bloque l'exécution des events.
En gros, lorsque que quelqu'un fait la commande !timer, ça lance un décompte de 30scd et je suis censé captés ce que les gens disent pendant ces 30 secondes, sauf que du coup l'event se lance seulement à la fin du timer, hors j'aimerais que ça se lance en même temps.
voici ma technique pour créer mon super timer
repeat
time.actualTime = os.time();
if (time.limitTime - time.limitTime == 20)then
client:getUser(v):send('Il vous reste encore 20 secondes');
elseif (time.limitTime - time.limitTime == 10) then
client:getUser(v):send('Il vous reste encore 10 secondes');
elseif (time.limitTime - time.limitTime == 5) then
client:getUser(v):send('Il vous reste encore 5 secondes');
end
until time.actualTime == time.limitTime
Voici l'event qui ne peu plus être lancés en même temps :
client:on('messageCreate', function(message)
if(message.channel.type == 1) then
if (not(member[message.author.id])) then
member[message.author.id] = {
active = 0
};
end
print(message.content)
end
end)
@runic bane
J'ai pas d'idée mais tu peux demander sur le discord de Discord API
Ils sont assez réactifs
Beh non mais c'du LUA
Hey 👋
Je pense que c'est le repeat until qui correspond a un while true do end durant ton timer, ce qui peut-etre bloque tout ton bot et ta boucle prend toutes les ressources, je ne sais pas, mais essaye peut etre avec ça avec ça: https://github.com/EntranceJew/timer
yo, comment je peux faire pour avoir m'id d'unr personne qui reagit a une reaction
Bonjour,
J'ai un bot qui est sur un hébergeur nodejs, il faut que j'installe le module 'moment' mais premièrement l'hébergeur fait en sorte qu'on ne peut pas écrire de commande dans la console et deuxièmement quand je glisse mon module (dossier) moment dans le node_modules et que je modif le package-lock et que je redémarre ça supprime direct ce que j'ai ajouté
Donc je n'arrive pas à installer les modules
Comment je peux faire ?
et en modifiant juste le package.json?
J'ai ajouté dans le package-lock mais tout ce que j'ajoute (mon dossier moment dans node modules et le package lock) se delete tout seul quand je reboot
Tu as quoi dans les paramètres avancés ?
justement, mets le dans le package.json pas package-lock.json
Problème réglé
Cependant, je n'arrive pas à changer la font de mon canvas
ctx.font = '60px Impact';
ça ne veut pas changer même si je change la font et je n'ai aucune erreur
Bonjours j'ai un petit problème au niveau de mon bot discord il n'arrive plus a se mettre en ligne
Erreur ?
je vois pas d'erreur mais j'ai que sa comme dossier
a j'ai aussi sa
index.js : Le terme «index.js» n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou programme
exécutable. Vérifiez l'orthographe du nom, ou si un chemin d'accès existe, vérifiez que le chemin d'accès est correct et
réessayez.
Au caractère Ligne:1 : 1
- index.js
-
+ CategoryInfo : ObjectNotFound: (index.js:String) [], CommandNotFoundException
fait npm init et rempli tout, ta pas le packaje.json
ok ok
merci
@odd ether j'ai recommencer un bot de a a z et quand je veux mettre npm init sa me mets sa
PS C:\Users\Corentin\Desktop\discord bot> npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See npm help init for definitive documentation on these fields
and exactly what they do.
Use npm install <pkg> afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
package name: (discord- bot)
tu mets le nom de ton bot regarde 'package name: (discord- bot)'
ok merci
Bonjour j'ai tjr le problème avec mon bot qui n'arrive pas a se mettre en ligne es que on pourrais m'aider je suis voc https://discord.gg/vdABQb
coco
essaye de npm init
et ensuite npm i
enfin tu npmi ce dont tu as besoin ensuite
puis tu run
j'ai fais tous se que on m'a dis mais il ne se mets tjr pas en ligne
@keen narwhal Tu as réussis depuis ?
Ok 🙂
Hello ! J'ai un petit soucis au niveau de la création d'un système de suggestions, voici le code pour le moment:
if (message.channel.id == "755445445450399885") {
var ideasUniserv = new Discord.RichEmbed()
.setAuthor("📧 ● Nouvelle suggestion !")
.setColor("#7657CD")
.setDescription("test")
.setTimestamp()
.setFooter(`🤖 ● private`)
message.channel.send(ideasUniserv)
}
``` En gros, à chaque message dans le `channel`, l'embed est spam 😒 Une idée ?
Problème réglé j'ai rajouté un simple if (!message.content) return
Et tu vérifies si t'y es
Salut à tous, j'aurais une question même si je pense déjà avoir la réponse.
Je tente quand même, est-il possible de vérifier si un lien d'invitation discord est invalide oui ou non via un bot ?
Si oui, comment faire ?
Merci par avance
Merci de me mentionner
@cyan iron avec le bot je sais pas, mais sinon tu peux juste fetch la lien d'invitation et voir si il te renvoie une erreur ou non je suppose
Oui Merci j'ai eu une reponse et effectivement il suffit de faire un client.fetchinvites tout en try catch
Bonjour,
J'aimerais savoif si c'est possible de créer facilement un bot Discord pour nous même par exemple si j'ai un serveur gmod ou fivem que je fasse une commande et hop on peux redémarrer le serveur.
Tout sa avec une clé api qu'on pew généré par exempld sur le panel pterodactyl.
Ben tu cherches sur l'api, et tu l'integres au bot 
Et ben tu sais faire un bot discord déjà ?
@keen narwhal si tu sais exploiter une api tu sais faire un bot
je sais pas exploite en api
j'ai juste dit que sur le panel que j ai on peuw créer une api
y a des bibliothèques dans différents langages pour faciliter tout ça autrement
donc la liée avec un bot
et moi j'm y connais pour créer le bot en lui mm donc l allumé mais sinon je sais pas codd
Tu t'es totalement foiré là essaye => #general
mdr k
nan tkt j’avais mis un msg
La longueur tu peux mettre dans le footer je pense, c’est pas une info hyper utile donc comme ça tu l’as met mais pas trop visible
ok
Et on sais qu’il s’agit d’une vidéo donc tu peux juste dire « Titre: » et « Lien: » pas besoin de préciser « de la vidéo » 👀
Moi je trouve sa bien pour moi faut pas rajouter trop d'informations
Tu dois imaginer ça avec le titre et le lien
Perso j'aurais utilisé les champs des embeds pour faire ça, c'est une question de choix de mise en forme après
Qui fait ici du discord.py ?
Je préfère comme ça @timid loom perso
Et mes collègues ont aimés quand ils ont vus l'embed donc bon
Sinon, je cherche un moyen de séparer mon bot discord en plusieurs fichiers js, comment faut faire ?
Bah genre un fichier pour logs les messages, un fichier pour les commandes
Du coup tu dois faire un command handler
de là je pense que tu comprendra comment faire un "event handler" si on veut
ie mettre tes events dans un dossier events
@full scaffold Tu précise deja tout dans ton Title
donc met Juste en gras ton titre
et le lien en normal
Salut,
Je viens vers vous car je n'arrive pas à résolver cette erreur :
RangeError [BITFIELD_INVALID]: Invalid bitfield flag or number.
at Function.resolve (c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\node_modules\discord.js\src\util\BitField.js:150:11)
at c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\node_modules\discord.js\src\util\BitField.js:148:54
at Array.map (<anonymous>)
at Function.resolve (c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\node_modules\discord.js\src\util\BitField.js:148:40)
at Function.resolve (c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\node_modules\discord.js\src\structures\PermissionOverwrites.js:184:25)
at c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\node_modules\discord.js\src\managers\GuildChannelManager.js:109:81
at Array.map (<anonymous>)
at GuildChannelManager.create (c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\node_modules\discord.js\src\managers\GuildChannelManager.js:109:51)
at Object.execute (c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\event\create_ticket.js:5:32)
at Client.<anonymous> (c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\index.js:51:46) {stack: 'RangeError [BITFIELD_INVALID]: Invalid bitfie…ents\Discord_Bot\vullrell_bot\index.js:51:46)', message: 'Invalid bitfield flag or number.', Symbol(code): 'BITFIELD_INVALID'}
Code :
oulllaaaa opti moi ça la
fait un tableau avec tout ton bordel dedans et parcour le
car la ça fait beacoup normalement tu peux
Bitfield ...
c'est qu'il y a une permission qui n'existe pas
et du coup discord aime pas
Hello,
Est ce que vous savez comment je peux faire pour supprimer une réaction sur un message svp ? (et ne pas directement supprimé toute les personnes qui ont réagis pour pouvoir la laisser)
Exemple :
X réagit avec 🍉 , Y avec 🍉 aussi, mais ensuite, le bot décide de supprimer la réaction de Y, mais il faut que X réagisse toujours avec
Merci 😉
message.reactions.resolve("emoji").users.remove("userid")
discord.js documentation
message.reactions
ensuite method resolve qui te renvoie un MessageReactionsManager il me semble
Et ensuite tu as le users et remove
👌
Yo, c'est possible de faire en sorte qu'un bot créer une invitation et l'envoie?
@plain crystal Il peut la créer, après pour l'envoyer en message privé à un user il faut que l'user soit dans un discord en commun avec le bot (https://discord.js.org/#/docs/main/stable/class/TextChannel?scrollTo=createInvite)
@plain crystal Il peut la créer, après pour l'envoyer en message privé à un user il faut que l'user soit dans un discord en commun avec le bot (https://discord.js.org/#/docs/main/stable/class/TextChannel?scrollTo=createInvite)
ah merde
car c'était pour réinviter la personne une fois son bannissement terminé :c
Bonjour savez vous comment récuperer dernier message contenant un argument svp ?
message.content.startsWith("sm!manga").first();
pour vous faire une idée je veut faire sa, sauf que bien évidement c'est n'importe quoi x)
(n'hesitez pas à me ping)
Tu cherches à faire quoi exactement je comprend pas trop, montre un exemple de phrase et ce que tu veux récupérer dedans
@dapper coral
tu peux faire comme ça :
let args = message.content.split(' ');
// args[0] = sm!manga
// args[1] = argument 1
Mais ça c'est si ton argument a pas d'espaces
@slim anvil si j'ai bien compris, tu fais
sm!manga machin
et il veut récup machin
Ah oki, déjà le startsWith n'est pas du tout bon car ça te renvoie true ou false, donc tu en auras pas l'utilité ici, ou alors il doit etre placé avant ce bout de code si tu veux vérifier la commande
Sinon ensuite ouais ce que dis max est juste, mais si tu veux tjrs le dernier élément tu rajoutes juste un .pop() après le .split(' ')
Bah enfaite c'est compliquer à expliquer mais j'ai déja fait sa est cela me convient sauf que je veut recuperer uniquement le dernier message "args"
par exemple:
User 1: dit sm!manga
User 2: dit sm!manga
le args doit etre le dernier, donc le message de user 2
j'explique certainement très mal mais en gros c'est sa 🤔
Je comprend pas trop je t'avoue tu me parles de 2 users différent
donc de 2 messages différent
car la actuellement mon soucis c'est que tout les message contenant "sm!manga" sont compter "en meme temps" est je veut que uniquement le dernier soit "compter"
genre si 3 personnes envoie la commande a 2s d'interval
de ne prendre que le dernier ?
pour éviter de spam ?
non juste prendre le dernier tout cours, car sa crée un "conflit", enfaite j'ai fait un système de lecture de manga depuis discord est quand tu écrit la commande deux fois pour deux manga différent sa t'envoie les image des deux manga en meme temps car args prend les deux en compte, je veut juste prendre le dernier pour éviter sa
tu peux faire un exemple concret que tu screen car honnêtement j'ai du mal a comprendre ou tu veux en venir
ouai je suis désoler 😅
je vais essayer de faire sa
comme il y'a deux fois la commande, lors de la deuxième utilisation de la commande pour un autres manga la première commande est toujours reconnue
est mon but est de prendre en compte que la dernière commande pour éviter ce conflit d'image (car sa mélange des manga qui n'ont rien à voir ducoup)
oki, si tu fais un log de args tu peux me montrer ce que tu reçois please
je te fait sa
thanks
Je suis là dans 5 min et on reprend
sa marche merci 👌
re, tu peux faire un screen global du truc et pas morceau par morceau du coup pls que je vois le truc dans sa globalité
en mp si tu veux éviter de montrer le code pas de soucis
je t'envoie sa en mp 😉
bon meme si t'as déjà montré le plus important qui est la creation de l'image 
c'est vrai 
S'il vous plait pourquoi mes commandes ne sont pas run ?
import discord
from discord.ext import commands
import random
bot = commands.Bot(command_prefix = "n!",description = "Un bot test")
#Events
@bot.event
async def on_ready():
print("Le bot est pret !")
print(f"Je m'appelle {bot.user.name}")
@bot.event
async def on_message(message):
detecter = ["salut","salut!","bonjour","bonjour!","hey","hello"]
msg = message.content.lower()
emoji = [":wave:",":handshake:",":raised_back_of_hand:"]
for mot in detecter:
if mot in msg:
await message.add_reaction(random.choice(emoji))
break
@bot.command()
async def print_hey(ctx):
print("hey")
Salut, je voudrais savoir comment accéder à la variable title comme dans le screen, mais quel chemin prendre ?
montruc.MessageEmbed.title ne fonctionnant pas
undefined
t’as un embed définit?
oui ça log bien js console.log(msg.message.embeds); avant
ton log est entre []?
ok ok merci les mecs

est ce que quelqu'un peut m'aider dans la console de visual studio code ça me met ce chemin mais comment je le change
t’as fais quoi?
je m'étais trompé c bon merci
np
pourquoi mon node index fonctionne pas ?
y'a pas d'erreur ça fait juste r
c bon j'ai trouver j'ai juste relancer ma console je sais pas trop c'était quoi le problème
Ok ok
j'ai un problème, je n'ai mis que un titre à mon embed mais il me met un tas de truc (les trucs que j'ai normalement supprimé)
?
Envoie le code ou un screen



