#javascript-typescript
1 messages · Page 41 of 1

@humble storm les limites sont sur plusieurs plans ... messageid, channelid, guildid, token du bot, token de celui qui a crée l’app
Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.
yo , désolé de déranger a une heure si tardive mais comment on peut faire pour avoir une presence avec notre bot qui change ?
genre c'est le nombre de personne dans le serveur , puis 5secondes plutard c'est le prefix , puis le nombre de personnes etc...
c'est possible ?
Yep avec un "timer"
Parcontre vu que ça fait quand même assez longtemps que j'ai pas dev de bot, je t'avoue que je ne sait plus trop comment faire 👀
j'ai retrouvé, c'est avec un setInterval
setInterval(() => {
// Code à executer
}, 10000); // Timer en millisecondes, ici c'est toutes les 10 secondes
});```
ouep j'ai vu le setInterval mais j'ai pas compris comment l'utilisais dans mon cas
oue , ca execute le code toutes les 10secondes
mais moi je veux alterner entre deux codes
c'est a dire entre setactivityA et setactivityB
j'ai penser a timeout
nope, déjà le setinterval met le dans ton event 'ready'
non , parceque j'veux qu'ca soit une commande
genre !presence
et ca m'fait mon truc
bah c'est la même chose sans le event 'ready' alors 👀
mais j'vois toujours pas en quoi ca va m'aider le setinterval xd
parceque du coup , j'veux alterner entre deux activité
pas faire un activité toutes les 10secondes
oh , ca marche merci !
👀
Bonjour j'ai suivis le tuto pour le dev de bot en lua mais j'ai une erreur là voici : TLS not supported Maybe [SSLv3] SSLv23 TLSv1 TLSv1_1 TLSv1_2 DTLSv1 [SSLv2], option followed by _client or _server default is TLSv1 voici mon code : ``` local discordia = require("discordia")
local client = discordia.Client()
client:on("messageCreate", function(message)
local content = message.content
local member = message.member
local memberid = message.member.id
if content:lower() == "!ping" then
message:reply("Pong!")
end
end)
client:run("Bot") ``` J'ai essayé de refaire le code de regénérer un token mais sans succès
Merci de votre aide
(on voit ton token, enlève le du code)

Merde.. pas fait gaffe merci @west plover
sinon, t'es sûr que c'est une erreur ? 
essaye de delete deps/secure-socket
et de le réinstaller avec lit install luvit/secure-socket
Essaye de réinstaller luvit 
Tu es un génie merci 🙂
abasuper
Il me manquais juste un fichier ^^
no problem 👌
🙂
@keen narwhal change ton token aussi on sait jamais
c'est réglé ^^ merci quand même
Car un filou aurait pu le prendre en scred et plus tard pourrait te niquer
👀👀👀
Oui nan mais ton token
c'est fait aussi ^^
Ah d'accord
Bonjour/bonsoir,
quelqu'un saurait faire un bot music discord sur un vps ? J'y arrive pas.
Merci d'avance.
tu n'arrives pas à ?
Que le bot joue la music
Aucune erreur
Et le bot ne joue pas la music
Le code:
const ytdl = require("ytdl-core");
module.exports.run = async (bot, message, args) => {
if (!message.member.voiceChannel) return message.channel.send("Connectez-vous à un salon vocal.");
if (message.guild.me.voiceChannel) return message.channel.send("Le bot est déjà connecté dans un salon vocal.");
if (!args[0]) return message.channel.send("Merci de mettre un lien Youtube.");
const validate = await ytdl.validateURL(args[0]);
if (!validate) return message.channel.send("Le lien n'est pas un lien Youtube.");
const info = await ytdl.getInfo(args[0]);
const connection = await message.member.voiceChannel.join();
const dispatcher = await connection.playStream(
ytdl(args[0], { filter : 'audioonly' })
);
message.channel.send(`Musique ajoutée: ${info.title}`);
dispatcher.on('error', e => {
});
};
module.exports.help = {
name: "play"
};```
@keen narwhal c'est possible de dev un bot en lua ???
Oui @rough tide
Je crois que je vais me reconvertir en JS je comprends rien au dev bot mdr , le fonctionnement n'est pas comme je fais d habitude xD
Bonsoir , j'ai une commande qui me permet de traduire le texte en une autre police. Voici le code
async function police1 (text, message) {
var texte = text.replace(/a+/g, "𝙖")
texte = texte.replace(/b+/g, "𝙗")
texte = texte.replace(/c+/g, "𝙘")
texte = texte.replace(/d+/g, "𝙙")
texte = texte.replace(/e+/g, "𝙚")
texte = texte.replace(/f+/g, "𝙛")
texte = texte.replace(/g+/g, "𝙜")
texte = texte.replace(/h+/g, "𝙝")
texte = texte.replace(/i+/g, "𝙞")
texte = texte.replace(/j+/g, "𝙟")
texte = texte.replace(/k+/g, "𝙠")
texte = texte.replace(/l+/g, "𝙡")
texte = texte.replace(/m+/g, "𝙢")
texte = texte.replace(/n+/g, "𝙣")
texte = texte.replace(/o+/g, "𝙤")
texte = texte.replace(/p+/g, "𝙥")
texte = texte.replace(/q+/g, "𝙦")
texte = texte.replace(/r+/g, "𝙧")
texte = texte.replace(/s+/g, "𝙨")
texte = texte.replace(/t+/g, "𝙩")
texte = texte.replace(/u+/g, "𝙪")
message.channel.send(texte)
(j'ai pas mis toutes les lettres parcequ'il y'as aussi les majuscules xd)
sauf que quand je met deux lettres cotes a cotes , ca me traduit qu'une seule lettre
c'est a dire si je traduit dd , j'obtiens que 𝙙
une solution ?
hello @rough tide essaye avec ça:
texte = texte.replace(new RegExp('a', 'g'), '𝙖')
pour ton truc de majuscule, sauf si ton character est différent tu peux juste lowercase() ta string avant comme ça tu gères maj et minuscule
Maintenant je te conseille de faire une fonction pour ça, que ce ne soit pas redondant, genre:
replaceCharacter = (value, regex, type, newValue) => {
let string = value.replace(new RegExp(regex, type), newValue)
return string
}
et du coup
replaceCharacter(texte, 'a', 'g', '𝙖')
comme ça à blanc ça devrait etre bon, si ça marche pas essaye de check peut etre oublié un truc
@slim anvil ouep different
Sinon @rough tide plus clean enfaite en relisant ton code, tu devrais juste faire une boucle sur les différents characters a remplacer et voir a chaque tour de boucle si dans ta string il y a le character et hop, ce sera mieux que d'appeler 10 fois la meme fonction
comment ca ?
Tu déclares avant un tableau associatif (clé/valeur), et tu boucles dessus
avec [ 'a': '𝙖', ....]
@keen narwhal Discordia fonctionne très bien 
Oui je ne dis pas le contraire @humble storm c'est le fonctionnement que je ne saisis pas trop pour l'instant ^^
C'est-à-dire ?
C'est à dire par exemple si je veux envoyer un message dans un autre Channel en faisant une commande pour prévenir un admin par exemple c'est impossible de trouver comment faire ^^
Bah si ^^
de toute façon c'est mieux en JS, point 
Et de là tu send ton message
Guild = serveur discord
bah là tu passes l'id de ton salon je suppose
Oui je suppose aussi mais comment faire pour reply le msg dans le bon salon
message.guild:getChannel( id ):send( "Ton message" )
Exactement, faut lire, et là tu verras que c'est simple
Oui le msg c'est bon c'était pour comment lier les 2 pour l instant je ne trouve pas de logique mais sa commence petit à petit a être logique car je l'ai travaillé le reply ^^ pour être sur de le comprendre
Pour envoyer ton message dans un autre channel ?
Oui
message.guild:getChannel( id ):send( "Ton message" )
Je l'ai vu tqt merci
Par exemple pour #giveaway ça serait
message.guild:getChannel( "653405704723496990" ):send( "Ton message" )
En gros message.guild est une fonction ?
Non
Ah
C'est une variable incluse dans le message
Ah d'accord
Comme si tu faisais SWEP.PrintName
Ah ouiiii ^^
c'est le getChannel ta fonction
je sais pas si en lua c'est comme JS mais les fonctions ont des ()
Oui aussi
message c'est un objet avec la clé .guild
D'accord sa fait partie d'un tableau ou pas du tout et je m'égare ?
message c'est un object {} mais dedans tu peux avoir des pleins de type, des arrays, strings, object, int
encore une fois je te parle en JS, mais je pense que pour mieux comprendre log ton object message et tu verras comment il est composé
Oui c'est un genre de tableau Nox
D'accord merci
Je reviens vers vous pour savoir comment est il possible de garder mon bot toujours en ligne , il faut mettre sur un site web directement ?Merci de votre réponse
Sur un petit serveur, lua je pense pareille
D'accord donc je peux le mettre sur mon VPS ou sur mon site web ?
Sur ton VPS yep
ok merci
On peut retirer une partie d'un message un genre de string.Replace ?
check les fonctions lua du coup
d'accord merci
:gsub("%^a", "") j'ai trouvé ça
je suis habitué au fonctions internes de GMOD j'ai pas encore pris le réflexe ^^
mais j'y connais rien a lua donc bon, mais la syntaxe à l'air bone
l'exemple complet sera plus parlant:
name = "^aH^ai"
name = name:gsub("%^a", "")
sa doit donner sa du coup ? ``` message.guild:getChannel( "661135450525925378" ):gsub("!staff", ""):send( message.content )
No tu dois :gsub ton message.content
bah tu peux le faire avant dans une variable je pense, ou direct dans ton :send(message.content:gsub(.....))
d'accord je pense faire en premier la 2ieme option le temps de bien la connaitre merci une nouvelle fois 🙂
tu sais pourquoi le content n'apparaît pas ? : if content:lower() == "!staff "..content then message.guild:getChannel( "661135450525925378" ):send( message.content:gsub("!staff", "") ) end
Le JS c'est définitivement mieux que le lua niveau création de bot oof
xD
bah je connais pas du tout le lua donc le ..content then je vais pas savoir son but
mais par contre tu fais une condition sur content:lower()
le content c'est ma variable
mais ce n'est pas message.content: ?
si mais j'ai fais une variable ^^ du coup et je l'ai juste tester comme sa car dans les 2 cas il ne me redonne pas le content
pour retourner tout le message car si je fais sans le ..content bah il ne va pas exécuter la condition
mais tu peux juste faire un `if content:lower() == "!staff" then``
ah ok mais concatener quoi
)
Oui mais du coup sa ne retourne pas tout le message
j’sais pas j’avoue j’comprends pas son truc
concatener sa : local content = message.content
wtf
Fais le avant
mais du coup comment je valide bien qu'il fasse la commande ?
En lua je serais pas te dire vraiment, mais en JS tu en gros transformer ta string en tableau, prendre le premier élement du tableau qui va donc etre la commande
je sais pas si c'est clair, sinon fais du JS je t'aiderai plus facilement 
d'accord je teste de le faire
je veux récupérer ce qu'il y a après !staff quand l'user le fait
Tu peux faire un content = string.gsub( content, "!staff", "" ) pour enlever la commande du content
Sinon tu fais une fonction qui split pour récupérer chaque arguments 
Oui sa c'est bon mais c'est ma condition qui n'arrive pas a être validé
ma condition actuel : ``` if content:lower() == "!staff" then
message.guild:getChannel( "661135450525925378" ):send( message.content:gsub("!staff", "") )
end
et je voudrais récupérer ce qu'il y a écrit après !staff
Mais ton content n'est pas === a !staff
^^
Il faut dans ce cas que tu regardes si il startsWith() cherche l'équivalent en lua
oui je sais j'ai enlevé les modifs qui n'allait pas de ce matin
Une fonction que je viens de faire pour récupérer les arguments d’un texte (séparation des espaces) :
local function get_args( txt )
local args = {}
for w in txt:gmatch( "[^ ]+" ) do
args[#args + 1] = w
end
return args
end
-- > Utilisation
for i, v in ipairs( get_args( "!hi fuckers @floral burrow" ) ) do
print( i, v )
end
Output:
1 !hi
2 fuckers
3 @floral burrow
Donc avant la condition, tu transforme ton texte en arguments (avec cette fonction par exemple ^) et tu vérifies si le premier argument est la commande souhaitée
\S+ ? en plus simple ?
Pour un startsWith faudra le faire soit-même aussi, mais avec les patterns ça ira tout seul
trofor guthen
Je n’ai pas de résultat avec \\S+
use a regular expression library like lrexlib or Lua PCRE, or use LPeg arf pas en PCRE en lib standard tant pis
!glua Patterns
Que ces types de patterns sont autorisés ^ 🤷
effectivement pas fou 🙂 sinon 👍
pourquoi y'a pas %g dans sa doc ?
lien depuis ton lien
Bien vu, il fonctionne, je ne le connaissais pas celui là
I don’t know 
C’est fait par la communauté il me semble
Y a du avoir quelques oublis
Par contre je vois pas trop comment faire la condition là ^^
ok ok, j'avoue ça doit être long a faire déjà
Comme sa ? ``` if content:lower() == get_args(args[1]) then
fais une variable dans laquelle tu stockes get_args( content )
par exemple dans args
et tu check de cette façon if "!staff" == args[1] then
Yes merci sa fonctionne 🙂
C'est normal que je n'arrive pas a get l'auteur du message en faisant : message.guild.members:get(message.author)
Merci de m'éclairer sur ce point ^^
message.author pour l'user et message.member pour le membre
(si c'est comme en JS, c'est ça, normalement y a pas de raison)
Enfaîte c'est bizarre sa me mets sa comme erreur : attempt to concatenate field 'member' (a table value) alors que quand je vais check dans le wiki et je regarde le tuto c'est la même chose que ce tu me proposes
tu veux concatener un string avec une table
logic que ça fonctionne pas
message.member.toString() peut-être ?
je vais check
fonctionne pas : attempt to call field 'toString' (a nil value) j'ai essayé de le mettre en minuscule aussi
vraiment nul Discordia 
grave go discord js :@@@
sinon message.member.user.username
ou message.author.username
pour juste afficher le nom
si tu veux connaitre les autres formats pour les tags : https://discordapp.com/developers/docs/reference#message-formatting
Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.
je sais pas s'il y en a un 
si du coup
D'accord ^^
pour connaitre les variables (properties) et les fonctions (methods) de chaque classe
c'est un peu le discord.js.org du bled 
d'accord ^^
et en lua
j'ai fais ``` if message.channel.id("661135450525925378") then return "" end
id n'est pas une fonction
Oui je l'ai changé en : if message.channel.id == "661135450525925378" then return "" end
mais il me mets toujours le content
regarde si ton code s'exécute
code ?
if message.channel.id == "661135450525925378" then print("coucou") return "" end
je viens aussi d'essayer message.content = ""
all of your code
local client = discordia.Client()
local function get_args( txt )
local args = {}
for w in txt:gmatch( "[^ ]+" ) do
args[#args + 1] = w
end
return args
end
client:on("messageCreate", function(message)
local content = message.content
local memberid = message.member.id
local mentionned = message.mentionedUsers
args = get_args( message.content )
local salonid = message.channel.id
if message.channel.id == "661135450525925378" then print("coucou") return "" end
if "!staff" == args[1] then
message.guild:getChannel( "661135450525925378" ):send( message.content:gsub("!staff", "").." -"..message.author.username )
end
end) ```
c'est quoi le but ?
Recevoir les messages des joueurs dans un autre channels pour pouvoir avoir une traçabilité de toutes les demandes et sans encombrer un channel et surtout garder privé les informations
et ta condition ? 
la 1ere ?
yé
je souhaitais faire en sorte que quand il envois le message dans le channel avec cette id et bah le msg soit directement retiré
donc message.delete()
Va falloir regarder la doc à un moment aussi et pas demandé dès que tu ne sais pas
c'est quoi la doc ? 
wut
c'est pas plus compliqué que JS 🤔
aucun n'est facile et en même temps aucun n'est compliqué
Surtout que ça reste des trucs assez lambda finalement, c'est juste lire de la doc pour choisir quelle fonction utilisé
et par moment quelques fonctions JS à faire
manque beaucoup de fonctions sur les strings en Lua, mais au moins, ça nous permet de réfléchir pour résoudre le problème
lua c plus facil que js
après bon, le JS c'est pas fait pour cut les strings hein 
oof
the Lua is the easiest language that I never met
le plus simple c'est le brainfuck, t fou toi
ecrit bonjour en BF stp ?
j'arrive pas c tro dur
++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>----.>+++++++++++.-.----.+++++.++++++.---.
tiens j'ai réussi
:200iq:
Hey comment on un cree une commande qui met un role a tout les joueur quand il s’arrivr sur le serv exemple « Membre »
Parce que manuellement c’est chiant..
Bonjour,
j'ai réussi à régler le soucis de la music. Mais maintenant, le bot ne joue pas les playlists.
Pouvez-vous m'aider s'il vous plaît :)
Code:
const ytdl = require("ytdl-core");
module.exports.run = async (bot, message, args) => {
if (!message.member.voiceChannel) return message.channel.send("Connectez-vous à un salon vocal.");
if (message.guild.me.voiceChannel) return message.channel.send("Le bot est déjà connecté dans un salon vocal.");
if (!args[0]) return message.channel.send("Merci de mettre un lien Youtube.");
const validate = await ytdl.validateURL(args[0]);
if (!validate) return message.channel.send("Le lien n'est pas un lien Youtube.");
const info = await ytdl.getInfo(args[0]);
const connection = await message.member.voiceChannel.join();
const dispatcher = await connection.playStream(
ytdl(args[0], { filter : 'audioonly' })
);
message.channel.send(`Musique ajoutée: ${info.title}`);
dispatcher.on('error', e => {
});
};
module.exports.help = {
name: "play"
};
@keen narwhal tu as déjà un bot ?
Tu peux faire ça rapidement
client.on("guildMemberAdd", user => {
user.addRole('ID DU ROLE')
})
peut-être des trucs a checker avant, qu'il ne soit pas bot par ex ou autre, je te laisse faire ^^
@dire latch tu dois faire une partie pour lire les playlist, sinon le bot ne comprendra pas ce que c'est
Ah bah ça 🤷♂️
déjà faudrait faire en sorte de vérifier si c'est une playlist
Tu as la doc de ytdl-core normalement
🤔
poste ta question
Dis nous @rough tide
dormir c pour les fébles
okep
@slim anvil merci
pas de soucis
Et si par exemple je veut faire en sorte que quand une personne ecrit dans un salons un message sa lui surpime c’est rolle et lui mettent un autre rolle ?
regarde dans #621746570119086109
Ce sera plus simple si tu veux comprendre les bots 🙂
Merci 🙂
Je trouve pas comment régler cette erreur de l'aide svp 
Tu veux filter sur un élément qui n’existe pas
L’erreur est plutôt clair, console.log l’élément sur lequel tu .filter tu verras qu’il n’existe pas
D'accord merci 👌
l'erreur ne vient pas de ce fichier
regarde tout a droite de la ligne d'erreur tu as le fichier concerné
c'est plus dans ton index.js
je pense
Ok après dans l'index.js j'ai juste a crée une commande ?
C'est un command handler qui est disponible en open source
Il a pas du bien le prendre alors
Nope
Je le connais je l'ai déjà utilisé dans un de mes anciens bots
Et effectivement ça vient bien du index.js
@proud marlin normalement tu as du mettre un évent message dans lequel tu définie args et définir aussi la commande. Je pense que l'erreur vient de là

Il a modifier un truc qui était genre commands mais pas l'autre morceau
Du coup vu que le code a besoin de commands et pas de commandes bah il comprends pas lul
Le mauvais c/c 
Esce que vous auriez un bon pote a proposer svp

Bonjour j'ai une erreur, merci d'avance (je débute)
case 'poll':
console.log(pollchannel)
let msgArgs = args.slice(1).join(" ");
console.log(msgArgs);
pollchannel.send(":mailbox: **" +msgArgs + "**").then(messageReaction => {
messageReaction.react("👍");
messageReaction.react("👎");
message.delete(1000);
});
c'est quoi le message d'erreur
erreur :
'''js
pollchannel.send("📫 " +msgArgs + "").then(messageReaction => {
^
TypeError: Cannot read property 'send' of null
'''
et met tout ton switch ce sera plus simple
ok
le pollchannel vient d'où ?
il doit pas exister, ton console.log() doit renvoyer undefined
??
tu peux faire un channels.find('name', 'nom_du_channel') ou même avec un id directement pour find ton channel et ensuite y envoyer un message
par exemple:
const channel = client.channels.find('name', 'nom_du_channel')
// code ici
channel.send(variable_embed)
le nom ou l'id, toi qui vois
dans mon cas c'est client.channels, mais en fonction de comment tu déclares ton paramètre ça peut être autre chose (je vois souvent bot aussi)
oui
const pollchannel = client.channel.find('?? JSP CE QUI FAUT METTRE ICI','id ??')
pollchanel.send("mon message ")
C'est ça ??
@slim anvil
@boreal edge
regarde sur la doc de discordjs pour comprendre
je t'ai donné le chemin à suivre, essaye de continuer
Bonjour,
Je ne comprend pas l'origine de cette erreur, quelqu'un serait m'éclaircir sur le sujet svp ?
local discordia = require('discordia')
local client = discordia.Client()
client:on('ready', function()
print('Logged in as '.. client.user.username)
end)
client:on('messageCreate', function(message)
if message.content == '!ping' then
message.channel:send('Pong!')
end
end)
client:run('Bot BOT_TOKEN')
2020-01-07 18:31:56 | [ERROR] | Could not authenticate, check token: ...s/gogo17/Desktop/G_Bot_V2/deps/secure-socket/context.lua:67: #1:TLS not supported
Maybe [SSLv3] SSLv23 TLSv1 TLSv1_1 TLSv1_2 DTLSv1 [SSLv2], option followed by _client or _server
default is TLSv1
Regarde si ton token est le bon
Tu as pas laissé « Bot BOT_TOKEN » ?
Car si oui, le problème vient de là il faut que tu récupères le token sur discord developers
J'ai pas laisser BOT_TOKEN
Et en faites, je viens de voir mais il faut que j'installe Luvit sur windows
Vérifie que ton token soit le bon en tout cas l’erreur ça a l’air d’être ça
If you’re on windows, run the sister command in your cmd.exe command prompt (requires Powershell >= 3.0).
PowerShell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = 'Tls12'; iex ((new-object net.webclient).DownloadString('https://github.com/luvit/lit/raw/master/get-lit.ps1'))"
Put both lit and luvit in your path somewhere. We recommend /usr/local/bin or $HOME/bin if that’s in your path.
To test your install run luvit to enter the repl. This has readline-like capabilities implemented in lua and has tab completion of expressions for interactive exploring the runtime.
Sauf que sa fonctionne pas
A je comprend page not found sur github... 😦
le lien est pas bon a la fin, voici le bon https://github.com/luvit/lit/raw/master/get-lit.ps1
g edit*
Ok merci, je vias essayer via powershell ou cmd du coup 🙂
PowerShell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = 'Tls12'; iex ((new-object net.webclient).DownloadString('https://github.com/luvit/lit/raw/master/get-lit.ps1))"
Put both lit and luvit in your path somewhere. We recommend /usr/local/bin or $HOME/bin if that’s in your path.
Donc je mets sa ?
ouep normalement
euh ta fin est pas bonne (jsp si tu as vu) mais c'est comme ça: .DownloadString('https://github.com/luvit/lit/raw/master/get-lit.ps1'))
Or directly in powershell, run:
[Net.ServicePointManager]::SecurityProtocol = 'Tls12' iex ((new-object net.webclient).DownloadString('https://github.com/luvit/lit/raw/master/get-lit.ps1'))
(lance le en admin)
YES POWERSHELL VEUT PLUS S OUVRIR !

Cmd est bon
Powershell ISE c'est bon ou pas ,
?
Car ise fonctionne lui
Yes sa fonctionne !
Par donc dés que c'est DL, je le retrouve ou ?
Ok merci
J'avais eu ce problème j'avais simplement tout désinstaller et retelecharger un setup pour le réinstaller et sa fonctionnait @boreal edge
Moi sa ne fonctionne pas 😢
Ah
Comprends pas ton problème 
Problème au niveau du token avec luvit
Bonjour ! J'essaye d'installer FFMPEG-BINARIES afin de pouvoir utiliser mon système de musique, mais je n'y arrives pas, j'ai cette erreur ...
https://pastebin.com/GKvBw0hy
Quelqu'un aurait la solution ? Merci d'avance.
J'ai trouvé un warn, essaye de suivre ce qu'il dit
npm WARN deprecated ffmpeg-binaries@4.0.0: ffmpeg-binaries is no longer being maintained. use ffmpeg-static, or just install ffmpeg
npm WARN npm You should probably upgrade to a newer version of node as we
Mets à jour npm et Node
La version npm n'influe pas sur le package moi aussi je l'ai et il marche
Installe aussi les win tools
Windows build tools
Failed to execute 'C:\Program Files\nodejs\node.exe C:\Users\USER\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --module=D:\Dev Bots\TyshyBot\node_modules\lzma-native\binding-v3.0.8-node-v79-win32-x64\lzma_native.node --module_name=lzma_native --module_path=D:\Dev Bots\TyshyBot\node_modules\lzma-native\binding-v3.0.8-node-v79-win32-x64 --python=C:\Users\USER.windows-build-tools\python27\python.exe --msvs_version=2015' (1)
npm i windows-build-tools
Tu as installé avec une cmd en mode admin ?
dans le terminale de VSC
Je sais pas si il démarre en mode administrateur
peu importe c'est censé marcher
Dans le doute ouvre une cmd et réinstalle tes package en mode admin
Nan pas sans le mode admin
Malheureusement
J'ai toujours installé comme ça, ça a toujours marché
Bah justement pour certains package ça ne peut pas marcher
Juste ça ne veut pas fonctionner avec ffmpeg-binaries et ffmpeg-static
mon pb c'est que je peux pas
mes dossiers sont dans le D:
et mes dossiers Windows Admin dans le C:
ça me met automatiquement sur le C:

j'vais basculer sur le C:
Bonjour,
Est ce qu'il existe une extention sur Visual Studio code permettant d'avoir toutes les fonctions de discord.js déjà enregistrés ?
Merci d'avance,
Hugo
Il a l'air de prendre en compte tout les event
et te permet de créer une base de bot rapidement
trop propre
Je l'es essayer justemment
Mais je n'arrive pas a le faire fonctionner mdr 😄
Je sais pas si quelqu'un s'en ai déjà servit
Mais merci Zaros 🙂
att je test
Tu ouvres un fichier
(js ou py)
et quand tu tape 'discord' il te propose 'discord.client'
et te met direct la base d'un bot
Et il te propose les évent aussi
Tro bi1
Bonsoir j'ai une question , peut on se self bot ?
Je crois que c’est interdit, @queen ocean pourra t’en dire plus ou @timid loom
yep c'est interdit par Discord
J'ai un soucis
Dans ma commande j'ai encore la réponse qui était présente avant :/
https://gyazo.com/3d3ac305af46783d91b71add52e6ee15
if (msg.content === '!infos') {
msg.channel.send(InfosEmbed);
}```
Pourquoi interdire le self bot
Comprend pas fyrio ?
@keen narwhal Car le nombre d'app Discord est limité par compte alors qu'un self bot (un compte) n'a pas de limite (tu peux en créer autant que tu veux) donc c'est une manière pour Discord de limité le nombre d'app qui font des appel sur l'api
Ah
Bah le bot fait un truc qui n'est plus dans le code
Je refais un node . ?
tu le stop et yes
Yep
Oui faut relancer le bot après chaque modif
Hey
J'ai trouvé une fonction pour toi
function reverseString(str) {
// Step 1. Use the split() method to return a new array
var splitString = str.split(""); // var splitString = "hello".split("");
// ["h", "e", "l", "l", "o"]
// Step 2. Use the reverse() method to reverse the new created array
var reverseArray = splitString.reverse(); // var reverseArray = ["h", "e", "l", "l", "o"].reverse();
// ["o", "l", "l", "e", "h"]
// Step 3. Use the join() method to join all elements of the array into a string
var joinArray = reverseArray.join(""); // var joinArray = ["o", "l", "l", "e", "h"].join("");
// "olleh"
//Step 4. Return the reversed string
return joinArray; // "olleh"
}
reverseString("hello");```
Bonsoir ,
Je voudrait crée une commande de Blague mais je ne sais pas pas ou commencé ... une idée ?
commence déjà par rire 
...
Bah par la création de l'event
ou quand on envoit !blague hop tu reply
et ensuite tu uses une api
pour avoir des blagues aléatoires
Ok , je vais essayer
bijour j'ai besoin de vous
/home/bot/index.js:25
.setDescription('Bienvenue a ' + member.user.username + ' qui nous a rejoint !\n Merci de lire les règles dans ' +message.guild.channels.get('533614917798985748').toString() )
^
ReferenceError: message is not defined
at Client.client.on.member (/home/bot/index.js:25:123)
at Client.emit (events.js:198:13)
at Guild._addMember (/home/bot/node_modules/discord.js/src/structures/Guild.js:1298:19)
at GuildMemberAddHandler.handle (/home/bot/node_modules/discord.js/src/client/websocket/packets/handlers/GuildMemberAdd.js:12:13)
at WebSocketPacketManager.handle (/home/bot/node_modules/discord.js/src/client/websocket/packets/WebSocketPacketManager.js:105:65)
at WebSocketConnection.onPacket (/home/bot/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:333:35)
at WebSocketConnection.onMessage (/home/bot/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:296:17)
at WebSocket.onMessage (/home/bot/node_modules/ws/lib/event-target.js:120:16)
at WebSocket.emit (events.js:198:13)
at Receiver.receiverOnMessage (/home/bot/node_modules/ws/lib/websocket.js:789:20)
tu ne récupères à aucun moment le paramètre message
Tu peux passer par le client pour get un channel je crois
de la même manière mais remplacer le message par client
Mais pas sûr, mais sur la doc de discord tu dois avoir les infos pour ça
tout simplement parce que message n’existe pas
...
oui je viens de te dire pourquoi
message is undefined
Donc quand tu fais un message.guild message n’existe nul part
Remplace message par member
Tu peux get un channel par le member aussi ? Cool ça
Oé parce que member.guild renvoie un objet Guild
Ah okep
yep ok
donc je met member
yep
Et tu peux aussi passer par <#id_du_channel> au lieu de get le channel puis de le to string
Et concat en ES6
tant qu’à faire
Tu uses des let et des fonctions flèches alors utilises aussi la concaténation qui va avec ce sera plus propre
(https://discordapp.com/developers/docs/reference : section Message Formatting)
Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.
Oé, je confirme 

Encore une fois, member n’existe pas dans ta fonction
mais c nul
Non, c juste que t’es nul 
sa change tout le temps xD
Bah oui
pourquoi pas faire guild.membercount
Faut savoir programmer aussi 
jammais fait de js
Tu peux faire client.guilds.get( "id_de_guild" ).memberCount
C’est pas une histoire de JS, mais plus de logique
Ça reste une histoire de JS aussi
La notion de scope, de paramètres, faut arrêter d’aller plus vite que la musique vous vous aidez pas


Mais c’est plus un problème de logique, member n’existe pas dans le bloc de fonction, donc logic que ça fonctionne pas
c'est normale que sa ne fonctionne pas ?
si y a des erreurs, oé
t'as des erreurs ?
salut
Hello
comment supprimer le message original
message.channel.send( embed ).then(message => {message.delete(10*1000)})
j'arrive a supprimer l'embed envoyé par le bot après 10 secondes mais je voudrais supprimer aussi le message de requête
avant ton cette ligne tu fais un message.delete(100)
et sa fera quoi ?
Ça supprimera le message de concerné
ui je crois de tete
tu peux aussi checker si message.deletable aussi pour être sûr
Et pour éviter de te perdre évite d’avoir les mêmes noms de variable partout
Dans ta fonction principale tu reçois message déjà, dans ton .then appelle le msg éviter de t’y perdre quand tu retourneras sur ton code plus tard
et même pour éviter des soucis de code ce sera better
@hybrid berry
message.delete(10000)
ça supprimera le message 10sec après
Hey !
J'ai un serveur garrys mod chez Mtx serv. On nous a offert avec un bot discord , mais j'aimerais implementer ses fonctions , c'est a dire état du cpu , de la ram , etc... dans mon propre bot.
Je n'ai pas trouver de module pour ça , quelqu'un saurais comment faire ?
J'ai commencé un bot qui permet de faire des jeux mais j'ai un problème , sa me dit Cannot find module ../config.json
j'ai essayer de crée le fichier config.json mais sa me mais ça maintenant
config.json: Unexpected end of JSON input
J'aurai besoin de votre aide svp 🙂
const config = require('../config.json'); Je ne trouve pas le npm
Montre ton Json
et ton code aussi pour avoir le truc global pas te dire de bêtise
(Enlève ton token)
Ok att
@slim anvil (dsl de la mention) on ma donner une commande pour kill une personnes mais le problème c'est que sa me demande le ('../config.json') sauf que j'ai pas le config.json
yep bah faut sûrement le crée regarde ce que le config demande
Tu dois avoir des datas de base à renseigner dedans
tuer une personne ? c’est pas légal (hors joke ça veux dire quoi?)
C'est un genre de mute
Après tu peux très bien le renseigner en variable dans ton JS directement si il y a pas d’édition de JSON
Mais version tueur a gage
ah ok
Pour ça qu’il me faut ton code comprendre le but
Merci a Enzo de m'avoir aider en mp !
J'ai besoin d'aide x)
Quand je fait fait mes commande comme !8ball ou autre , il ne fait rien , le prefix marche bien mais sa fait rien
Me mp pour plus de renseignement
Faudrait faire ses propres commandes d’abord 
J'ai fait des commande !8ball ext dans un fichier Commandes puis relier avec un fs.read mais il y a aucune erreur est sa marche pas 😦
fs.readdir('./Commandes/', (error, f) => {
if (error) { return console.error(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 = require(`./Commandes/${f}`);
console.log(`${f} commande chargée !`);
client.commands.set(commande.help.name, commande);
});
});
J'ai fait ça pour le load
De ton serveur mtx ?
@slim anvil oep
Tu as une api à dispo sur MTX pour get des informations
steam-server-status
c’est le module node qui te permet de get les infos d’un serveur steam
Hey ,
J'ai trouvé du coup mais enfait quand j'vais sur ce lien
https://mtxserv.com/api/v1/game/Iddemonserveur/resources
j'ai un message de ce style
{"cpu_used":1,"ram_used":380}
comment je peut récuperer seulement 1 et 380 ?
bah si tu log data, ce sera data[‘cpu_used’] par ex
ou en déstructurant l’objet directement quand tu le récupères à toi de voir
mais le pb
c'est que vois pas comment faire pr récuperer les infos de cette page https://mtxserv.com/api/v1/game/Iddemonserveur/resources
Tu passes par l’api MTX du coup ? Tu as générer le token pour pouvoir use l’api?
Bah c’est juste que tu dois fetch sur la route donne
en passant le token génère dans les headers et l’id de ton serveur
hein ?
tu fais un fetch(‘/api/v1/notifications/´, {}).then()....
Dans le second paramètre tu vas set tes headers et donc le token qu’il te demande de générer
sauf que ```js
{ error: { code: 405, message: 'Method Not Allowed' } }
je sais pas ou mettre le token
Dans les headers
request.post({
url: 'https://mtxserv.com/api/v1/game/xxxxxx/resources',
headers: {
'access_token': "mon token"
},
time: true
‘Authorization’ : token
C’est pas access token mais authorization
tjrs pas
tu as quoi comme erreur
post c’est pour créer, put éditer, get lister
Non mais sur la doc de MTX eux ils mettent quoi ? En get ou en post ?
Non essaye pas dans le vide regarde juste la doc c’est écrit dessus
Bleu get, vert post, rouge delete
c en get
sauf que qd jfais en get
SyntaxError: Unexpected token < in JSON at position 0
at JSON.parse (<anonymous>)
at Request._callback (C:\Users\user\Desktop\Développement\Bots discord\MatixRP\commands\cpu.js:19:27)
at Request.self.callback (C:\Users\user\Desktop\Développement\Bots discord\MatixRP\node_modules\request\request.js:185:22)
at Request.emit (events.js:223:5)
at Request.<anonymous> (C:\Users\user\Desktop\Développement\Bots discord\MatixRP\node_modules\request\request.js:1161:10)
at Request.emit (events.js:223:5)
at IncomingMessage.<anonymous> (C:\Users\user\Desktop\Développement\Bots discord\MatixRP\node_modules\request\request.js:1083:12)
at Object.onceWrapper (events.js:312:28)
at IncomingMessage.emit (events.js:228:7)
at endReadableNT (_stream_readable.js:1185:12)
Appuyez sur une touche pour continuer...
request.get({
url: 'https://mtxserv.com/api/v1/game/xxxx%20/resources',
headers: {
'Authorization': "xxxxx"
},
time: true
}, function (error, response, body) {
var result = JSON.parse(body);
console.log(result)
})```
oula
euh ton body pardon
ah bah oui xd
car si il est à null ou undefined il va pas pouvoir le parse
c'est le html de la pager
*page
<!DOCTYPE html>
<!--[if IE 8]><html lang="fr" class="ie8 no-js"><![endif]-->
<!--[if IE 9]><html lang="fr" class="ie9 no-js"><![endif]-->
<!--[if !IE]><!-->
<html lang="fr">
<!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="google-site-verification" content="_ZipWNs2hskM5WfeSoeoWnGId5tU-Av9_osWiKsLWJ8" />
<title>Identification - mTxServ</title>
<meta name="og:title" content="Identification - mTxServ" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="Identification - mTxServ" />
<meta name="description" content="Créez votre propre serveur de jeu avec mTxServ, votre hébergeur Minecraft, GMod, ARK. Testez Gratuitement. Location serveur Bungeecord, Hytale, Teamspeak, Onset et plein d'autres !" />
<meta name="og:description" content="Créez votre propre serveur de jeu avec mTxServ, votre hébergeur Minecraft, GMod, ARK. Testez Gratuitement. Location serveur Bungeecord, Hytale, Teamspeak, Onset et plein d'autres !" />
<meta name="twitter:description" content="Créez votre propre serveur de jeu avec mTxServ, votre hébergeur Minecraft, GMod, ARK. Testez Gratuitement. Location serveur Bungeecord, Hytale, Teamspeak, Onset et plein d'autres !">
<meta name="robots" content="noindex, nofollow" />
j'ai pas tt mis biensur
mais en gros c le code source de la page
et ca me mene vers l'identification de mTxServ
:/
dc jpense l'autorisation est pas bonne
Non sinon tu aurais une erreur 401 ou 403
Log response plutôt ?
ça me parait plus logique
Show me en capture d’écran ce sera plus explicite je suis sur tel
D’ailleurs y a un module node mTxServ
il a pas l’ait ultra complet si on regarde la todolist, mais je crois qu’il y a l’essentiel 
let random = Math.random() * 100;
if (random < 100 / 6) {
Cette commande me serre a une roulette russe mais elle est trop cheat , on tombe tout le temp sur Vous n'étes pas mort que sur BOOM tes mort
Il y a moyen de m'aider a changer le random pour que se soit 50/50 ?
Tu peux remplacer le 6 par un 2
Enfin l'intérêt de la roulette russe c'est que tu aies de plus en plus de chances de mourir
let shoot = 0
for (let i = 0; i < 100; i++) {
const random = Math.floor(Math.random() * (6 - shoot)) + 1;
const isDead = random === 1;
if ( isDead ) {
console.log(`You die at the ${shoot + 1} shoot`);
}
shoot += isDead ? -shoot : 1;
}
A toi de l'adapter à ton code, mais là tu as le comportment normal d'une roulette russe
il a pas l’ait ultra complet si on regarde la todolist, mais je crois qu’il y a l’essentiel
@west plover pas ce que je cherche à faire xd
qui veut le code d'un bot musique ?
On sait aller sur youtube tkt
J'ai crée un system de report de bug mais quand la personnes fait juste /bug mon bot crash mais quand il fait /bug problème channel 02 sa bug pas , qui peux m'aider en mp svp
Regarde tes erreurs dans la console, c’est sûrement du genre « reason is undefined » ou un truc du genre
**node_modules/discord.js/src/structures/RichEmbed.js:166
if (!/\S/.test(value)) throw new RangeError('RichEmbed field values may not be empty.');
^
RangeError: RichEmbed field values may not be empty.**
Yes du coup rajoute juste une condition genre
if (!reason) return message.reply(‘Merci de renseigner une raison’)
En adaptant avec tes variables etc...
J’appelle ça reason mais tu l’appelles comme tu veux
@slim anvil Je vais aller essayer , je suis rentrer des cours x) (dsl de la mention)
Okey!
** if (!reason) return message.reply('Merci de renseigner une raison.')
ReferenceError: reason is not defined
**
@slim anvil (dsl de te rementioner) Sa me mais cette erreur quand je fait /bug et quand je fait /bug test
Tu définis reason nul part
dans ce cas fais juste un if (!args.length) return ....
A la place de !reason....
ok
C’est chiant sur mobile je vois trop mal le code
Ok donc des screen c'est mieux
Oui à la limite plus simple je peux zoomer
@slim anvil Même problème hier
Si tu veux on va en mp pour éviter de flood ici
Ok va s'y
Salut je fais un bot en js et j'aimerais bien savoir comment récupérer le nombre de réactions sur un message
message.reactions.size
@fringe wyvern
message étant un objet Message https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=reactions
ok et du coup c'est possible de faire un timer en js ?
Yes, t’auras plusieurs manière de le faire, explique ton besoin
en gros je veux mettre un timer suite à une commande commande tapée, la commande contient le temps du timer (ca je sais comment récup) et du coup je veux qu'un timer se lance et qu'a la fin de ce timer, un message se modifie en fonction du nombre de réactions
le timer se lance quand le message en question est envoyé
setTimeout 🤔
Yes setTimeout
Ok et du coup maintenant j'ai besoin du nombre de joueurs ayant réagis a un message mais je galère, apparement il y a AwaitReaction mais il marche pas de mon côté

Tu ecris un message
Tu fais une commande !command MESSAGEID TIME
Tu fais un timeout avec les arguments de la commande et tu edit ton message via l'id
Tu fetch ton message par l’id et dedans tu dois avoir une clé reactions avec un count ou alors tu fais juste un .length
@slim anvil mon message j'ai pas eu besoin de le récup par l'idée,j,ai juste mis un setTimeout dans le client.on('message') je dois quand même fetch par l id ?
En gros je fais un système de sondage
Et je propose au joueur de mettre un certain temps dans ma commande
Voila
Par contre j ai aussi testé le .count et hier il me disait que ça existait pas
tu as un .reactions no dans message ? Tu fais un .length dessus
bah fais un log de message pour voir l’objet
De toutes les réactions ?
et comment on filter du coup mdr
.filter(emoji => emoji.name === ‘toto’).length
Ok
sur ton .reactions, mais log l’objet pour être sûr que ce soit bien reactions
C est la même pour les emoji custom ?
vérifie avant que le tableau ne soit pas vide aussi
Oui je pense ils ont quand même un name finalement
tu peux le faire par l’ID si tu veux
Ok bah je verrais pour faire ça après merci
no prob
Cliquez sur 📄 pour accéder au message.
message.reactions.size
J'ai dit ce qu'il fallait faire
Omg
Wait
Tu veux compter le nombre d'une certaine réaction ?
Mais ça reste size ouais
le console.log c’est pas pour les chiens 
C’est pour les Hommes je crois
y a un truc déjà sur discord pour count que un type de réaction ?
Bah suffit de faire un .filter
Ui
Connépa
Tu crois qu’ils font comment discord JS 333 3 7
quand t’appelles des fonctions déjà faites derrière y a du vrai code idiot
"idiot"
Pour bob le blaireauleur
"gros beta"
!rule 2 sinon on va se faire engueuler dans 10 secondes je le sens 
👍
bonsoirr !
petite question, y'aurait-il ici quelqu'un qui pourrait m'expliquer comment créer un reactionroles, parce qu'après des mois et des mois de tentative, je n'y arrive toujours pas 😒
pour faire un auto rôle genre ?
en gros, tu react, tu reçois un role
Ah yes
à mes yeux, c'est une légende vivante
client.on('messageReactionAdd', (reaction, user) => {
Code ici
})
parce que j'arrive à faire que le mec qui envoie le message pour le mettre en place (l'embed par ex) que ça lui donne le role mais qu'à la personne qui a envoyé le message, les autres ça ne fonctionne pas
Dans reaction tu as message et _emoji
Du coup ensuite tu regardes si l’emoji patati patata et si oui tu add le rôle au user
Je sais pas si c’est clair
assez clair, je vais voir
sorry sur tel c’est galère de mettre en forme les lignes
Mais si tu as besoin hésites pas
@keen narwhal fais gaffe parce que par défaut ça fonctionne pas sur les messages envoyés avant le lancement du bot si tu es sur discord.js
faut rajouter un code qui gère le raw il me semble pour contourner ça
yep
il y est sur le github de discordjs
normalement cette fonctionnalité arrive dans version 12 de discord.js mais comme elle est pas encore finie...
c’est ce guide ^
ah yes gg
Bonsoir , je voudrait relier une cette API =>https://api.mcsrvstat.us/ pour les serveurs Minecraft , mais j'ai jamais fait ça , qu'elle qu'un peut m'aider ?
🙂
Ok merci Fireless
Rectification
ok
Je peut te le faire en privée stv
Gratos
Je t'envoie le code
Si sa te dérange pas , comme ça je pourrais voir pour la prochaine fois
Tu peux vocal ?
Oui
Viens dans blabla
Bonsoir, j'ai un problème car j'aimerais qu'on puisse faire une commande exclusivement dans un channel et ces ligne de code ne fonctionne pas est-ce que quelqu'un peux m'aider ?
client.on('message', message => {
if (message.channel.id === '668908477430759460') {
if (message.content.channel === 'test')
message.reply('ceci est un test')
}
});
if(!message.channel.id === '668908477430759460') return;
j'ai lu qu'on pouvais mettre deux conditions je sais pas si c'est juste
Essaie de le voir d'une autre manière
Le ! avant message.channel.id signifie l'inverse
Qu'elle erreur il te met ?
Alors l'id du channel n'est pas le bon
je vais voir ça
Euh
Wait
client.on('message', message => {
if (!message.channel.id === '668908477430759460') return;
if (message.content === 'test') {
message.reply('ceci est un test')
}
});
Voilà
Elle veut rien dire ta condition firelesss
ok merci je vais test
Y a pas besoin de le mettre là
client.on('message', message => {
if (message.channel.id !== '668908477430759460') return;
if (message.content === 'test') {
message.reply('ceci est un test')
}
});
tu peux la faire en une fois aussi
Ok nice merci les gars ça fonctionne 😁
client.on('message', message => {
if (message.channel.id === '668908477430759460' && message.content === 'test') {
message.reply('ceci est un test')
}
});
Voilà
C'est plus "opti"
ok je vois
non le plus opti ce serait de le faire en 2 fois
Visuellement c'est plus propre mdr
car il peut être dans le bon channel mais ne pas être === a test
Je m'exprime mal
Déso les gars j'ai encore un autre problème lorsque je fait ce code le message se spam a l'infini (je veux juste que quand ce message est pas dans ce channel ça envoie un message comme quoi il faut envoyer dans le bon channel
client.on('message', message => {
if (message.channel.id === '668908477430759460' && message.content === 'test') {
message.reply('ceci est un test')
}
else (!message.channel.id != '668908477430759460' && message.content === 'test');
message.reply("tu n'es pas dans le bon channel")
}
);
Condition que si c'est le bot
client.on('message', message => {
if(message.author.bot) return;
if(message.channel.id === '668908477430759460' && message.content === 'test') {
message.reply('ceci est un test')
}
else{
(!message.channel.id != '668908477430759460' && message.content === 'test');
}
message.reply("tu n'es pas dans le bon channel")
}
);```
Reprend celui que j'ai edit
Wait
Logique
Mais wait 2s
client.on('message', message => {
if(message.author.bot) return;
if(message.content !== 'test') return;
if(message.channel.id === "668908477430759460"){
message.reply('ceci est un test');
}else{
message.reply("tu n'es pas dans le bon channel");
}
);```
Kado
Eua
Non
Voilà
j'ai une erreur
La qu'elle ?
SyntaxError: Unexpected token ')'
Oupsi
client.on('message', message => {
if(message.author.bot) return;
if(message.content !== 'test') return;
if(message.channel.id === "668908477430759460"){
message.reply('ceci est un test');
}else{
message.reply("tu n'es pas dans le bon channel");
}
});```
Voilà xD
J'AI OUBLIE UN }
Oof
Tkt
Bonjour , je voudrais mettre une image pour mon bot discord et faire en sorte que a chaque commande il y a sont image + le text
Genre
Bot test à 12h30
"logo du bot" "Vous avez fait la commande test, voici les disponibilité."
Tu peux pas
Triste
Ou alors sa rendra pas le rendu que tu veux toi
Pourtant regarde
Il on réusi a mettre l'image
Il fait préciser dans la vie
Pour un embed*
C'est un setURL
.setURL('https://Image-trop-cool.commm')
Un true du style
Soit tu crée une const avec ton embed alors la syntaxe est :
author: {
name: 'Some name',
icon_url: 'https://i.imgur.com/wSTFkRM.png',
url: 'https://discord.js.org',
},```
Comment je le rajoute sur ma commande help , c'est comme celle de serveurmc mais pour le help
Sinon c'est :
.setAuthor('Some name', 'https://i.imgur.com/wSTFkRM.png', 'https://discord.js.org')```
Et si tu ne veux pas mettre de lien cliquable,
.setAuthor('Some name', 'https://i.imgur.com/wSTFkRM.png', null)```
Il faut se documenter dans la vie
Je comprend pas leurre system
Pourtant il est très clair
Je recherche mesage.author sa me mais des truc bizarre
Tu te fou de moi
Je te l'ai envoyé hier !
Non
Sa marcher pas , sa me mais undifine donc j'ai chercher d'autre truc
message.member.avatarURL
Sa me mais undefine
var test = bot.users.get("198773727025037313")
Du coup la c'est, test.avatarURL
Et si tu me dis que ça marche pas c'est soit tu te fail dans ton code ou soit t'es modules/packages ne sont pas a jour
Ok merci Enzo x)
Je vais me retenir
Oui c'est si le mec n'as pas d'avatar il me semble
Voilà
c'est sa photo
Mais c'est pas se qu'il veut
si il en a une
Non
Ça prend les avatar par défaut sinon ça return null
Moi j'avais compris chef
J'ai refait avec message.member.avatarURL
mais sa me remais unedefined
fais un console.log de ton mesasage.member
et tu verras bien ce que tu as dedans
comme ça tu verras les autres propriétés de l'objet aussi pour la suite
message.member.avatarURL
cmessage.author.avatarURL
Ok Guthen je vais essayer , si sa ne marche pas je mais le console.log que Enzo ma dit de faire
Sa me donne des liens , sauf que je voudrais l'image de profil de la personnes en rond
Oui tu mets le lien dans le parametre
discord te le met en image de lui même
dans ton setAuthor(name, avatarUrl)
j'ai pas de .setAuthor , j'ai pas fait comme ça
donc setAuthor(message.author.name, message.author.avatarURL)
et bah regarde en markdown comment mettre une image dans du texte
c'est unt ruc comme ça [img](lien de l'image)
if (command === 'help') {
let color = Math.floor(Math.random() * 16777214) + 1;
message.channel.send({embed: {
color: color,
fields: [
{
name: `${message.author.avatarURL}Voici la liste des commandes disponible:`,
value: "**BOT | Developer Creator Area**",
},
{
name: `8ball`,
value: "Vous pouvez faire la commande !8ball <votre question> et le bot y répondra.",
},
{
name: `stats`,
value: "Vous pouvez faire la commande !stats <@membre#0001> pour avoir des informations sur la personnes.",
},
{
name: `love`,
value: "Vous pouvez faire la commande !love <@membre#0001> pour s'avoir a combien de pourcent il vous aime , et vous pouver aussi faire !love pour une personnes aléatoire.",
},
{
name: `Roulette Russe`,
value: "Vous pouvez faire la commande !RouletteRusse , je vous shouaite bonne chance camarade !",
},
{
name: `gif`,
value: "Vous pouvez faire la commande !gif pour avoir un gif aléatoire.",
},
{
name: `bug`,
value: "Vous pouvez faire la commande !bug <description du bug> et le bug nous sera envoyer.",
},
{
name: `serveurmc`,
value: "Vous pouvez faire la commande !serveurmc <ip du serveur> et le bot vous donneras des informations a propos du serveur en question.",
},
],
}
});
}
});
ou l'inverses mais on est pas loin je le connais pas par coeur
J'ai fait comme ça
bah tu fais juste un
author : {
name: message.author.name,
avatarURL: message.author.avatarURL
}
i think
Ok , je vais réssayer car j'avais essayer celle de _Fireless mais sa me ma mis une erreur
author : le : et Unexpected
faut rajouter une virgule à l’argument d’avant
author,
no
Je suis perdu
Go apprendre les objects en js
Mais wesh
Déjà
Lire c'est utile dans la vie
Car je n'est pas mis AvartarURL
Mais icon_Url:
@slim anvil
Toi aussi
Apprend à lire 😭
author: {
name: 'Some name',
icon_url: 'https://i.imgur.com/wSTFkRM.png',
url: 'https://discord.js.org',
},```
C'EST SIMPLE WESH
@keen narwhal
C'est chaud là les gars
Il apprend
Et toi ?
De
je passe pas ma vie sur la doc de discord
j'ai confondus avatarURL et icon_url youhou
Mais une recherche sur Google suffit
Il ne cherche pas avant de demander
Et sa c'est ouufff
Sa rend dingue les gens comme ça
ceux qui s'excitent aussi
Je m'excite a cause des gens qui ne cherche pas un minimum 🙂
Oui je dis pas le contraire, mais pas besoin d'en faire autant
c'était clair et concis
Bah sa deviens soulant
Surtout qu'hier je lui est dis comment faire
Et là il reviens ce matin ici pour redemandé
Genre....
!rule 2 
Et ? Tu as jamais appris toi ? Tu comprenais tout du premier coup ? Chacun à sa vitesse t'apprentissage et sa vitesse d'adaptation. Désolé, on est pas tous parfait
Mais je lui est fais un tuto entierrr
Et sa sert strictement à rien de s'énerver contre une personne qui souhaite apprendre, on à pas dit qu'apprendre aux autres c'était simple. Il suffit de s'armer de patience
c'est un métier la formation
Certaines personne vont très vite percuter, d'autres non c'est comme ça

Je suis désoler d'être aussi nul que ça 😢
je pense que tu devrais apprendre le js aussi 🤔
t’aurais plus de facilité à comprendre je pense
Je connais des choses , mais se que je fais et tout nouveau pour moi
Faut pas t'excuser, et encore moins d'être nul, tu n'es pas nul, tu es juste au tout début d'un long chemin, après faut que tu apprennes a chercher, c'est important, c'est ce qui te fera progresser, mais gut a raison apprendre les bases du js ce serait mieux avant de se lancer a discord, utiliser des libs sans comprendre ce qu'il y a derrière, c'est pas une bonne chose
on apprend a marcher avant de courir
Ouais
vzy le js, c'est wtf aussi, fait un bot en java c'est mieux 
Un bot en java aussi et wtf
Java wrapper for the popular chat & VOIP service: Discord https://discordapp.com - DV8FromTheWorld/JDA
