#javascript-typescript
1 messages · Page 59 of 1
mais sans rien
tu reprends tout de function write (.... jusque le }
function write() {
fs.writeFile("./clé.json", JSON.stringify(cle), (err) => {
if (err) console.log(err)});
}
cle.push({ id: undefined, timeout: undefined, cle: undefined})
write()```
Toute la fonction
??
comme ça ?
Non du tout
ah
function write() {
fs.writeFile("./clé.json", JSON.stringify(cle), (err) => {
if (err) console.log(err)});
}```
je reprends que ça ?
Att prend un screen de toute ton code stp
car si tu as ceee ta fonction au même endroit t’as pas besoin de la dupliquer
C’est un petit bordel quand même
On va faire simple car sur tel compliqué la, copie colle ta fonction write
voilà et là tu appelles write() après ta fonction
C’est pas hyper quali mais bon là je pense que tu débutes on va mettre de côté l’opti
Oui
Oui dis moi si c’est rapide lets go
j'aimerais que si la clé est déjà dans la bdd on peut pas la ré use
sa devrais être rapide
genre la ma const de clé c'est cls
Ah générer une clé random ?
je comprend pas
sa je le fais manuellement j'évite les bug comme ça
si par example
la clé gfbgf est déjà dans la base de donnée le bot dis qu'elle est déjà utilisé
Je vais te laisser chercher, mais en gros tu peux faire un .find(c => c.cle === ta_cle_genere)
Là tu as le code pour vérifier si elle existe déjà
A toi aussi !
merci
comment ont peux mètre une valeur sur un embed.setDescription
Salut, est-ce possible de rendre clicable mes émojis pour par exemple éditer cette embed (ou juste executer du code) ?
C'est possible effectivement
Mais pas pour éditer l'embed il me semble pas
Mais on peut faire en sorte de cliquer sur l'émoji
Donc je peut juste mettre un lien ? (merci quand même)
La strat consisterait à utiliser des liens et réaliser des actions sur l'embed
Mais c'est galère et en général discord te prévient avant de faire une redirection donc le principe du truc est un peu difficilement réalisable
Ton bot.channels.get en client.channels.get
client.channels.cache.get
Ah merci bcp ^^
Dr 🙂
Oui j'vais aller voir
Tu créer un embed @keen narwhal
look comme ça
const etat = new Discord.MessageEmbed()
.setColor("tacouleur")
.setDescription("Le bot est en ligne !");
client.channels.cache.get("id").send(etat).catch(err => console.error(err));
Dans le ('état du bot . . .) ?
ui c'est un rouge
Dites moi quelqu'un sait si on peut changer la valeur d'un booléen de gamedig ? Genre :
if (state.password === true ) { state.password === ":white_check_mark:"; } else { state.password === ":x:"; }
me return true et pas mon émoji xD
ah ui j'suis con
== ou === c’est pour comparer, 2 c’est valeur et type et === juste valeur
Bonjour, je recherche quelqu'un qui pourrai me dire comment clear des variables, je m'explique j'ai un bot discord en JS avec un système d'expèrience, mais j'aimerai le reset, je ne sais pas comment.
Je ne m'y connais pas du tous en JS, et j'ai juste quelque trucs à regler sur le bot, pour sa que je prefère demander de l'aide que d'apprendre pour regler 2 ptit trucs.
Si quelqu'un pourrai m'aider sa serai super cool merci
Pour clear les variables suffit juste de relancer le process node
Si par variable tu entends base de donnée, tu peux juste clear entièrement la table
Mais faudrait qu’on sache si c’est du mysql, nosql ou autre pour te guider
t'aimerais reset quoi ton exp ?
bah si tu le fais avec une bdd, tu drop table dans ton sql
et là y aura plus rien
où est l'aide pour la commande clear dans https://discord.js.org/#/docs/main/stable/general/welcome
Je le trouve pas
Bulkdelete
Bulkdelete ?
Cherche ça sur la doc
Salut, comment je peux faire en sorte que lorsque une personne écrit un message example "!help" ça supprime son message automatiquement mais ça ne supprime pas le message du bot svp ?
message.delete()
ok merci 🙂
quel message du bot?
C’est quoi le rapport avec le filter
Nan mais rien mdr
c’pas un filtreur de mot qu’il veut
t’es bourré roro
le mets en gav
j'ai pas compris
le mets en dégrisement 👀
Ah ok
blc frr ?
oui du coup
Yo, je cherche un moyen de récupérer chaque réaction des utilisateurs et de traiter ça mais je ne sais pas quoi utiliser :/
Hello ! J'aimerais faire un système de navigation par réactions, donc par exemple, lorsque l'on clique sur ▶️, cela modifie l'embed.
Mon système fonctionne, mais il faudrait en faire une boucle
Quelqu'un pourrait m'aider ?
Mon code :
http://pulsar.mystria.fr:3000/5f3a7537a8fd605f2882a652
Join and work on this code !
(J'ai testé de mettre le awaitReactions dans une boucle while, mais ça faisait planter mon bot :/
Yo, je cherche un moyen de récupérer chaque réaction des utilisateurs et de traiter ça mais je ne sais pas quoi utiliser :/
Chaque réaction sur un seul message, ou bien toutes les réactions faites par un utilisateur sur le serveur ?
J'ai réglé mon problème c'est bon
Salut j'ai fais une commande pour mon bot mais je veux qu'il affiche 2 messages un en dessous de l'autre mais cependant il a un seul message qui s'affiche il a pas moyen que les 2 messages s'affiche ?
.setDescription("Chaine Youtube : [clique-ici](https://www.youtube.com)")
.setDescription("Chaine Twitch : [clique-ici](https://www.twitch.tv/)");
.addFields(
{name: "Chaine Youtube :", value: "[Clique ici](https://www.twitch.tv/tachaine)", inline: false},
{name: "Chaine Twitch:", value: "[Clique ici](https://www.twitch.tv/tachaine)", inline: false}
)
@oak turret ça fait ça
Les gars j'ai un blème
J'ai conseillé à quelqu'un ce code pour faire un cooldown mais ça ne fonctionne pas :/
https://img.wailronefirelion.fr/KVVhjKn.png
https://img.wailronefirelion.fr/btXSk7f.png
En gros il n'ajoute pas l'utilisateur au SET
Précision : c'est le add qui ne fonctionne pas :/
Problème réglé je suis juste atteint
ah
Une erreur de débutant que j'aurais pu éviter x)
En gros j'ai défini le set au mauvais endroit
ok ok
var basUserAcc
let sql = `SELECT * FROM accounts WHERE id='${profile.id}'`;
con.query(sql, function (err, result) {
if (err) throw err;
basUserAcc = result[0]
})
const embedAlreadyExist = new Discord.MessageEmbed()
.setTitle(":x: You already have an account ! To modify it, please use `r!modify`")
.setAuthor(message.author.tag, message.author.displayAvatarURL())
.setColor(0xee6c4d)
if (!basUserAcc) return message.channel.send(embedAlreadyExist)
C'est normal que ma variable basUserAcc soit undefined ?
(Sachant qu'elle est sensé être result[0]
Tu peux screen plz sur tel c’est illisible
Parce que tu utilises basUserAcc alors qu’elle est pas encore défini, tu l’as définis lors du retour de ta requête SQL
mais le reste du code est aussi exécuté en même temps, donc comme ta requête est pas fini ta variable est pas défini
Tu peux dans ce cas là, mettre tout ton embed et l’envoie au même endroit que la création de ta variable
Ou jouer avec du async ? @slim anvil
Oui mais vu qu’il est dans un callback de réponse autant le faire dedans
Not false aha
@keen narwhal t'as réussis ?
non mdr j'ai trouvé une autre solution mais y'a a nouveau un bug enft
le : est expected
arg = ta const ?
test ça
const embed = {
`${tonembeddeluser}`
}
message.channel.send({embed: embed});
mais je suis pas sur que tu puisses envoyé ton code de l'embed direct dedans donc faut voir
il faut enlever les { nan ?
je test en mettant le code avant l'argument avant et si j'enleve les { ca marche
ducoup ca fait ca : ```js
const embed =
argEmbeddd
message.channel.send({embed: embed});```

mets juste ça dans ton embed quand tu envoies le code en tant qu'user
color: 0x0099ff,
toujours pareil :/
j'suis pas sur qu'on puisse le faire alors
Je réagis juste à ça @keen narwhal et @oak turret, vous pouvez du coup faire un message.channel.send({ embed })
Si votre variable s’appelle comme la clé souhaite pas besoin de la mettre 2 fois
vasy je vais test apres cimer
Bonjour je sais pas si ke dois demande la car je suis pas dev mais quelqu'un c'est pour quoii mon invit manager sur mon serveur discord est offline et sur les autres il est on
Je cherche un moyen de rajouter le lien d'un message dans un embed, genre ce truc là
https://discordapp.com/channels/223070469148901376/617677968474636298/745309152817053737
Il suffit de faire ceci :
hein
Ok ça j'ai compris, mais enfait je voulais savoir comment récupérer ça https://discordapp.com/channels/223070469148901376/617677968474636298/745309152817053737
Avec juste le lien je pense que tu peux récupérer l’ID du message, et fetch le message
je crois qu’il veut récupérer les infos du lien (donc du message) et les affiches lorsque tu met un lien de message
C’est ça @full scaffold ?
Beh plus tes logs sont grandes plus ça va prendre du temps de calcul non ?
Y'a une limite de 1
Il me fallait message.url merci
Hello, j'ai un petit soucis, je sais sûrement que j'utilise pas les bon trucs dans ma conditions, mais pour les réactions je galère un peu, je voudrais du coup vérif ce que réact l'user, et en fonction de ça réenchainer sur autre chose, en l'occurence qu'il réact avec le premier émoji ( ✅ ) mais ça me fait rien 😮
prompter.vote(message.channel, {
question: `Souhaitez-vous les statistiques d'un serveur de jeu sur votre serveur ${message.guild.name} ?`,
choices: ['✅', '❌'],
timeout: 5000,
}).then(rep => {
const yes = rep.emojis[0];
console.log(yes);
if ( rep.emoji === yes.emoji ) {
prompter
j'utilise discordjs-prompter
alors j'ai changé par
console.log(rep.emojis[0].emoji);
if ( rep.emojis[0].emoji === "✅" ) { }
ça me donne bien mon premier émoji ✅, seulement je sais pas pourquoi des fois il me log l'index 1 donc l'autre émoji, donc je suis un peu perdu :x
sinon je peux vérif que le count de l'émoji voulu soit à 1 ?
c'est réglé, par le count c'est better !
console.log(rep.emojis[0].count);
if ( rep.emojis[0].count === 1 ) { }
yop les gars ! j'ai un soucis avec gamedig aujourd'hui..., alors que je n'ai rien touché depuis, voici mon code : ( il me trouve une erreur je sais pas où, alors qu'il me log bien mon state avec mes data's du serveur dedans )
if (command === "status") {
if (message.channel.id !== "744154069463203940") { message.author.send("Vous devez mettre votre suggestion dans [#744154069463203940](/guild/223070469148901376/channel/744154069463203940/)"); return message.delete()}
Gamedig.query({
type: 'garrysmod',
host: '51.255.141.54',
port: 27130,
}).then((state) => {
if (state.password = true ) { state.password = ":white_check_mark:"; } else { state.password = ":x:"; }
console.log(state);
let players = new Discord.MessageEmbed()
.setColor("#0091F5")
.addFields(
{name: "Nom du serveur :", value: `${state.name}`, inline: true},
{name: "Map :", value: `${state.map}`, inline: true},
{name: "Mot de passe : ",value: `${state.password}`, inline: true }
);
let player = state.players;
let plys = "";
player.forEach(player => {
if(!player.name) { plys = "Pas de joueur en ligne";}
let time = moment().startOf("day").seconds(player.time).format("HH:mm:ss");
plys = plys + `\n- ${player.name} (${time})`;
});
players.addField("Joueurs en lignes", plys);
message.channel.send(players);
message.edit(players);
}).catch((error) => {
let offline = new Discord.MessageEmbed()
.setColor("#F52100")
.setDescription("Le serveur est fermé, ou il reeboot !");
message.channel.send(offline);
});
}
C'est moi ou gamedig qui bug ?
@oak turret yo, tu peux donner l'erreur qu'il te log ?
aucune
a
à part l'embed qui est vide askip mais sinon non
rien dans la console ?
mhh
Normalement mon catch sert lorsque que le serveur est arrêté ou en reeboot
sauf que là, il me log mon state, mais me met mon embed du catch
alors que y a deux jours ça fonctionnait nickel
:x
yes il me log bien mon state donc les infos du serveur, mais après ouais ça merde
Rajoute des logs avant chaque action (boucle etc)
Pour voir à quelle ligne ça père
Pete*
petite question rapide
vaut-il mieux faire :
1️⃣ "zebi's ID : " + message.author.id
ou
2️⃣ `zebi's ID : ${message.author.id}`
Ok merci :)
Je go tout refaire demain
okay je fais ça zozo, je te dis ça
Ok alors Enzo, je comprends pas pourquoi mais maintenant ça fonctionne, fin w t f, gamedig à du avoir un petit problème je crois, bon bah merci à toi 🙂
Top
1
??
Top 1

yakoi
Baston

Yop! Dites moi, quelqu'un a déjà eu un pb avec son bot qui ne veut plus se start ( node . ) c'est le premier démarrage mais il veut pas .. ( ça charge dans le vent ... )
if ( command === "meteo" ) {
var country = message.content.split(" ").slice(1).join(" ");
fetch(`https://api.openweathermap.org/data/2.5/weather?q=${country}&appid=8e3f1afe8d4cac650a93c917d2be5b35`)
.then(rep => rep.json() )
.then(json => {
let random = new Discord.MessageEmbed()
.setColor('#F5C100')
.setDescription(`Pays choisi : ${country}(${json.weather["id"]})`)
.addFields(
{name: "Longitude : ", value: `${json.coord["lon"]}`, inline: true},
{name: "Latitude : ", value: `${json.coord["lat"]}`, inline: true},
);
message.channel.send(random);
})
}
Je pense pas que ça soit ça..
mes autres bots fonctionnent
go mettre un console.log au début de ton fichier pour voir
met un console.log au début de ton index
voila donc en réalité c'est bien executé c'est juste ton bot qui est pas lancé
T’as 0 erreur ?
ta fais le .login ? 
HAHAHAHA
tu le crois que je l'ai foutu en commentaire non mais :xxxx
xDDD
je me retire discrètement 
bonjour, j'ai un probleme avec mon bot en gros j'ai un system de ticket quand la personne click sur une reaction sa crée un channel et dedans sa envoie (voulez vous close le ticket) avec une reaction mais pour pouvoir valider cette reaction il faut check que la personne et le bon id
Mais le probleme quand je crée un ticket tout ce passe bien
Mais quand une autre personne crée un ticket et clicke sur la reaction il recoit un message comme quoi il ne peut pas le close (normale) mais quand moi je clicke sur la reaction de son ticket il ne se passe rien et j'ai aucune erreur
Voici le code si vous avez besoin https://pastebin.com/PCK5YbTY
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
salut, vous savez pourquoi je vois pas les noms des personnes qui rejoigne ?
Oui
Il ne faut pas les mentionner
Si vous n'avez jamais rencontré ces personnes ou si vous n'avez aucun serveurs en commun avec lui ça bug
moi ça marche bien
Oui ?
par exemple, à la place d'emoji principal de discord, j'aimerais mettre un emoji PERSO d'un serv discord
je m'explique
Oui je sais
Nan, dans un simple embed
Ok bg
Et tu récupères ça "!heyya"
Ca te mettras l'émoji
Même fonctionnement pour les émojis non-animés 😉
Oui
Ok je vais tester je te dis
Ca va fonctionner :)
Ah ouais, Merci beaucoup ^^ @cyan iron
De rien ^^
normalement il prend les emojis animés
je crois que si le propriétaire du bot est nitro ça le donne au bot mais je suis pas sûr
ptet que c'est possible de base
faut tester
je crois que si le propriétaire du bot est nitro ça le donne au bot mais je suis pas sûr
Les bots ont certaines fonctionnalités nitro (émojis animés par exemple), meme sans que le propriétaire est nitro
@floral bolt Tu as toujours ton soucis ?
montre ton code
C'est dans un .addField ? @floral bolt
.setDescription() à mon avis
@floral bolt Tu es là ? 🤔
Les bots ont certaines fonctionnalités nitro (émojis animés par exemple), meme sans que le propriétaire est nitro
ah super cool, j'ai jamais eu l'occasion de tester
Les gars, vous connaissez un moyen de partager un fichier sur vcs avec autrui ?
Bonjour j'ai actuellement cette erreur sur mon bot : prefix is not defined
Nan c'est bon j'ai réussi merci de ton aide ^^

Les gars, vous connaissez un moyen de partager un fichier sur vcs avec autrui ?
@keen narwhal vsc? tu veux dire visual studio code? pour partager un fichier il suffit de le mettre sur pastebin ou sur un gist 🤔
si tu veux parler de la feature où tu écris du code un peu comme sur google docs (live share) y a une extension et plein de tutos sur internet
Hello ! Alors sur mon bot de météo, j'ai essayé de faire un peu d'opti, pour les températures, j'ai voulu faire un tableau avec les données en kelvin dedans, et j'ai bouclé dessus en redéfinissant mes valeurs du tableaux à la conversion des kelvins en °C, et ensuite l'affiché avec montableau[indexvoulu] pour avoir la valeur, sauf que ! Bah il ne me fait pas mon calcul, je comprends pas trop pourquoi :x
let temp = [`${json.main["temp"]}`, `${json.main["feels_like"]}`, `${json.main["temp_min"]}`, `${ json.main["temp_max"]}`];
for (let i = 1; i <= temp.length; i++) { temp = Math.floor(temp[i] - 273,15); }
let random = new Discord.MessageEmbed()
.setColor('#F5C100')
.setDescription(`Zone choisi : ${country}(${json["id"]})`)
.addFields(
{name: "Longitude : ", value: `${json.coord["lon"]}`, inline: true},
{name: "Latitude : ", value: `${json.coord["lat"]}`, inline: true},
{name: "Etat :", value: `${temp[0]}`, inline: false},
{name: "Température", value: `${json.main["temp"]}°C`, inline: false}
);
oh je suis con je crois
ah non petite update il me met undefined :x ( et je vois pas pourquoi )
my bad
tu définis un tableau temp
j'ai trouvé enzo xD
sur lequel tut e bases pr boucler
et tu la redéfinis pendant ta boucle cette variable c pas ouf
bah faut que je me base sur le .length de mon tableau sur la boucle, je fais comment sinon ?
oui ça ok
mais après tu fais temp =
donc tu redéfinis ton tableau
donc au prochain tour de boucle ce sera plus bon 🤔
la il va boucler 4 fois
et 4 fois tu redefine temp 🤔
bah là je suis aller un peu vite, mais le truc, c'est que je veux juste update les données de mon tableau et après les réutilisées avec l'index voulu
ahh
je pourrais faire comment du coup ?
en gros
dans mon tableau j'ai toutes les températures d'une zone voulu genre Paris, sauf qu'elles sont en Kelvin, et dans la boucle je les convertis en celsius, et donc de là je me suis dis logiquement que je pourrais afficher temp[index] genre [0] pour la température dans mon embed, j'ai pensé que ça serait plus opti que de faire tata = Math.flor(tatata) 4 fois
et de là je vois que il me prends juste la température, fin les autres valeurs dedans sont undefined
Oui je comprend pas ton truc, car après tu te sers de temp nul part 🤔
les autres ouais pour l'instant je les utilises pas car j'ai pas fini mon bot
dans ton tableau temp
bah je vois pas comment faire autrement avec une boucle ?
Ok donc dans ton tableau tu stock
[298.11, 294....] etc
yep
et toi tu veux convertir chaque valeur en celsius quoi ?
yep et d'où la boucle pour tout convertir d'un coup depuis mon tableau
non que les °c
Bah pk tu boucles, pourquoi tu fais pas le calcul direct ?
bah je l'avais fait de base, mais je me suis dis que si je faisais un tableau et tout convertir d'un coup, je pourrais faire montableau[index] pour utiliser les datas, pas besoin de faire 4 let tu vois ?
function getCelcius (kelvin) {
return kelvin - xxxx
}
let random = new Discord.MessageEmbed()
.setColor('#F5C100')
.setDescription(`Zone choisi : ${country}(${json["id"]})`)
.addFields(
{name: "Longitude : ", value: getCelcius(json.coord["lon"]), inline: true}
....
);
Bah fais comme ça direct
aucun intéret de créer un tableau, de boucler dessus, d'en recrée un ou de remplacer chaque index
ah bah ouais pas con
alors que tu peux faire directement ça et t'en servir partout ou tu en auras besoin 🤔
xD, merci pour ta réponse Enzo !
d'ailleurs, tu peux faire ça:
const temp = [json.main["temp"], ...];
pas besoin de mettre les ``
yes
mais dans ma requête y a des queries que j'ai zappé
&lang=fr&units=metric
..
xD
Yo, comment je peux faire pour avoir le nombre de personne qui ont clicker sur une reaction en discord.js ?
.count
c’est un truc comme : reaction.emojis[index].count
ça te return le nombre de réaction sur l’index de la réaction voulue
je l’ai fait y a pas longtemps j’vais essayer de te retrouver le code
alors là je l’avais fait pour une lib avec un tableau contenant des emojis, ça doit être similaire selon ton code
ok cimer je vais bidouiller
@oak turret Cannot read property 'count' of undefined
client.on("messageReactionAdd", async (reaction, user, message) =>{
if (reaction.message.partial) await reaction.message.fetch();
if (reaction.partial) await reaction.fetch();
if (user.bot) return;
if (!reaction.message.guild) return;
if (reaction.emoji.name === '✅'){
await reaction.message.guild.members.cache.get(user.id).roles.add(Role);
console.log(reaction.emoji[0].count)
return user.send("Vous avez mtn le grade ${Role}, vous avez donc acces à tout le serveur !");
}
})
log reaction
de quoi ?
console.log(reaction)
@oak turret if(giveawayWinners <= [reaction.count]){} sa fonctionne mais est ce que ce code est bon et si oui comment je peux faire pour supprimer le message ?
Est-ce que vous pouvez me dire si le code est bon ? ```js
client.channels.cache.get(channelIDForGames).send({
embed: GameEmbed }).then(embedMessage => {
setTimeout(() => {
embedMessage.delete()
}, 5);
});
message.delete() @slate flame
@full scaffold je suis pas sur mais dans le .delete() tu peux mettre {timeout: 5000}
faut que je look
oauip c’est ça
c’est en ms donc 1000ms = 1s
donc tu peux enlever ton setTimeout
Je met 5 pour tester hein
k
@oak turret parfait tout fonctionne merci
np
Question je me sert de plusieur args pour crée un embed sauf que quand je veux faire une phrase avec mon Args1 mon args2 en prend la moitié est ce que y'a un moyen de diff les deux ?
Comment je peux avoir le nombre d’utilisateur en vocal dans un serveur svp
Bonjour, j'aimerais qu'il y ait un cooldown de 24h pour une commande et que l'user puisse voir le temps qu'il reste avant de pouvoir la retaper, comment faire ?
un settimeout je pense
Oui mais afficher le temps restant..
euh là sur le coup j'ai pas l'idée
arf
j’ai peut être une idée mais pas sur
dans ton settimeout tu def une valeur dans la fonction, tu get sa value et tu soustrait les 24heures à ça, et tu mets ça dans une let et tu le fous en forme avec moment ou quoi et tu affiches ta let
pas sur du tout
mh
ducoup quelqu’un aurait la solution ??
t’as cherché sur internet ?
oe mais pas trouvé de chose qui marchait
bah essaye de log ce que t’as fais
Tu veux genre l'afficher en statut de bot ou de channel ? avec le voiceStateUpdate tu peux savoir quand quelqu'un leave/join un vocal channel par exemple et du coup mettre a jour l'activité du bot
le setTimeOut est une mauvaise idée car si le bot restart le timeOut est remis a 0 donc 24h de +
Tu devrais juste stocker en base de donnée la date de sa dernière action et quand il fait la commande tu regardes si <24h en diff tu lui envoie le temps avant de pouvoir refaire la commande
le meme principe que le bump dans #bots-commands
Question je me sert de plusieur args pour crée un embed sauf que quand je veux faire une phrase avec mon Args1 mon args2 en prend la moitié est ce que y'a un moyen de diff les deux ?
en gros j’aimerais récupérer le nombre de personnes qui sont en vocal dans les serveurs comme un bot de Stats Count comme Makaveli
Jackyy si tu veux passer des phrases longues, sois ton dernier argument est le plus long, sois tu les séparent par un caractère pour les différencier
pour l’évent voiceStateUptade j’ai déjà réussis
en gros avoir un
!embed color mon texte bla bla bla
color peut etre autre chose mais je trouve pas ça dingue après la commande va etre huge a faire si tu dois avoir des caractères ou autre
Oui mais @keen narwhal c'est pour afficher sur un channel en name // activité bot c'est ça ?
Du coup fais le avec le voiceSTateUpdate
dès que quelqu'un join tu ajoutes / enlève
Sinon j'ai ça for u https://stackoverflow.com/questions/56641273/discord-bot-get-number-of-users-in-all-channels
si tu as plusiuers salon vocal tu peux faire ça je pense
@slim anvil comment je peux faire pour les diff grace a un caracter
ce message la il était pour Lartaxx et Najhael ^^
Sinon pour les différencier ça depend de ton handle etc, mais crée un embed vraiment complet via une commande ca va etre un bordel
ca va etre une commande horrible
?
Args 1 (titre) args2(1 er phrase) le pb c'est que l'args 2 prend l'arg 1
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
oais
mais pas pratique pour tes autres commandes
y'as pas moyen de limiter a cette cmd
Ça dépend de comment tu l'as fait de base, une solution ça peut être de chercher des guillemets pour séparer les arguments genre !commande arg1 "argument deux" arg3
L'autre solution c'est de faire des commandes plus élaborées
Ok comment je peux faire pour détecter les guillement ?
oula tu peux m'envoyer de la doc ou m'explique ou je dois mettre sa
bah si c'est entre " " c'est un string on est d'accord ?
ui
donc si je fais :
const msg = "salut";
console.log(typeof(msg)) // output : string
mais je suis pas sur que c'est ça que Taink parlait
let titre = args.slice(3).join(" ");
ducoup dans un trucs comme sa je fais comment (ps je débute avec les args)
let channel = message.mentions.channels.first();
if (!channel) return message.channel.send('tu dois préciser un channel');
let maxuser = args[1];
if (isNaN(maxuser) || (parseInt(maxuser) <= 0)) return message.channel.send('Combiens de personne peuvent réagir');
let Role = message.mentions.roles.first();
if (!Role) return message.channel.send('tu dois préciser le role !');
let titre = args.slice(3).join(" ");
if (!titre) return message.channel.send('Il me faut un titre');
let l1 = args.slice(4).join(" ");
if (!l1) return message.channel.send(`Il me faut la premiere ligne de l'embed`);
en gros je fais sa pour un mec tiens le code en entier si tu veux comprendre
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
cette commande fait quoi en fait ?
en gros
/role #🆘-support 1 @👨🏻⚖️・Co-Fondateur・✅ titre description
quand je fais cette commande sa crée un embed dans le channel (let = channel) Puis sa add une reaction qui give un role (Role) puis sa supprime l'embed lorsque le nombre de personne mentionner dans la commande ont reagis (maxuser)
/role #🆘-support 1 @👨🏻⚖️・Co-Fondateur・✅ titre description
apres titre (let = titre) et description (let l1 = description)
oui l'arg 2 ne sert a rien en faitr
Slt je cherche de laide pour mettre des bots je suis nouveau sur discord et je suis sur téléphone alors contactez moi.
Oof
Ça existe des tutos pour mettre des bots discord ?
Je vous conseil les video de Skyners il explique tres bien sa chaine :
https://youtu.be/7AHaSxcnt30
hello voici la description de ma chaîne 😁
Des vidéo quand j'en est l'idée🎬
Une communauté du tonnerre👥
Des modérateur cool🔨
De...
Ah oui
@keen narwhal
😂
Est ce que qqun sais comment je peux faire pour que m'on bot envoie un msg et que je dois répondre un channel et le bot le conserve dans une variable
c quoi un mongo url
@slate flame dès que ton bot envoie le message, tu fais un .then(exemple => { if(exemple) { let ex = exemple.first() } else { const ex = "Pas de réponse"; }); un truc comme ça
j’suis sur tel donc j’ai peut-être oublié des trucs
Ok
pas trop compris deso
Comment faire ce style de commande svp :
+up @keen narwhal brgpolice
et
+new James Caporaci
^^^^^^^^^^^^^^^
nom rp
ca doit donner le grade "Police" et le grade "Brigadier"
oui mais je susi un débutant , je sais pas utiliser les arguments ni faire une commande pour mettre un rôle etc
Handler ?
Tout est expliqué ici
Même si ce n'est pas le meilleur handler
ca veut dire quoi handler :c
Ca consiste en fait à avoir un fichier par commande
ah si
Ah bah parfait alors
j'ai crée un fichier commands qui dedans a un fichier js
Parfait
qui est vide
x)
:c
Je dois aller manger désolé ^^
ok :c
Qui vous as passé ce handler ?
je l'ai fais grace à McHub sur youtube
Yo, comment on peut faire pour ajouter une reaction a un messagae predefinis grace a son id
pour le coup tout est dispo sur la documentation discord.js
engros la façon la plus simple c'est avec la methode suivante :
msg.channel.messages.fetch("unId")
ça donne à la fin :
msg.channel.messages.fetch("743772810157097010")
.then(message => message.react('😋'))
.catch(console.error);
Voila 🙂
@slate flame
Ok merci
hey, j'ai un problème avec un await, l'async est défini au tout début mais comme la partie de ce code :
imgur.uploadUrl(args[1]).then(function(json) {
await Guild_Data.set(`${serv}.fd`,{
status: "u",
wel: json.data.link
});
})```
est pris dans une autre boucle, il ne capte pas l'async et, je n'arrive pas à le placer, j'ai essayé :
```js
imgur.uploadUrl(args[1]).then(async(function(json) {
await Guild_Data.set(`${serv}.fd`,{
status: "u",
wel: json.data.link
});
}))```
ou encore :
```js
imgur.uploadUrl(args[1]).then(function(json) async {
await Guild_Data.set(`${serv}.fd`,{
status: "u",
wel: json.data.link
});
})```
si vous pouviez m'aider s'il vous plaît
imgur.uploadUrl(args[1]).then(async function(json) {
ah
merci
😅
bah, maintenant j'ai un autre problème
if(args[0] === "enable") {
let serv = message.author.id
if(Guild_Data.get(`${serv}.fd.status`) === "u") return message.channel.send(":no: | Le système est déjà activé.");
if(!args[1]){
return message.channel.send("Veuillez mettre un lien")
}
partie non pris en compte :
imgur.uploadUrl(args[1]).then(async function(json) {
await Guild_Data.set(`${serv}.fd`,{
status: "u",
wel: json.data.link
});
console.log(json.data.link)
})```
cette partie n'est pas pris en compte
@burnt perch Sa me dit msg not defined
@keen narwhal t'es sûr que les deux conditions sont pas remplies ? il y a des returns donc assure toi d'abord de ça
non c'est bon sa marche, mais si l'image n'est pas supporté sa fais rien :/
envoie un screen du code @slate flame
même si je pense déja savoir quel est le problème
C’est bon j’ai trouver un autre code
channel.messages.fetch(msgr).then(function (message) { message.react("✅") })
il fallait juste mettre message à la place je pense
oui voila
aussi mais bon essaye de comprendre ce que tu fais quand même
c'est pour ça regarde la documentation
j'ai compris il fallait dabors definir le channel et après j'ai bidouiller a l'aveugle
oui voila mdrr
merci en tout cas
pas de soucis ^^
re bonjour, j'ai un problème :/, j'aimerais redémarrer le fichier shard.js avec fs mais, j'ai une erreur :/
code :
fs.readdirSync("./shard.js"));
erreur :
857222435db99f8109feaf
(node:14) UnhandledPromiseRejectionWarning: Error: ENOTDIR: not a directory, scandir './shard.js'
at Object.readdirSync (fs.js:955:3)
at Object.module.exports.run (/home/container/commands/clé.js:66:15)
at module.exports (/home/container/events/message.js:34:33)
at Client.emit (events.js:327:22)
at MessageCreateAction.handle (/home/container/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (/home/container/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (/home/container/node_modules/discord.js/src/client/websocket/WebSocketManager.js:384:31)
at WebSocketShard.onPacket (/home/container/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
at WebSocketShard.onMessage (/home/container/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
at WebSocket.onMessage (/home/container/node_modules/ws/lib/event-target.js:125:16)
(node:14) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:14) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.```
Savez vous récupérer un message privé pour le transmettre dans un salon spécifié 🙂
@mystic sequoia Tu peux le stocker puis tu le ré-utilises à ta envie
Hey, j'ai besoin d'aide j'ai sa :
fs.readdir("./commands/", (err, files) => {
if(err) console.log(err);
console.log(files)
let jsfile = files.filter(f => f.split(".").pop() === "js")
if(jsfile.length <= 0){
console.log("Commande introuvable.");
return;
}
jsfile.forEach((f, i) => {
let props = require(`./commands/${f}`)
console.log(`${f} est OK!`);
client.commands.set(props.help.name, props);
});
});```
mais il croit que les fichiers sont des modules :/
Error: Cannot find module './commands/Setuserlang.js'```
fs.readdir('./commands/', (error, f) => {
if (error) console.log(error);
let commands = f.filter(f => f.split(".").pop() === "js");
if (commands.length <= 0) return console.log("Any commands founds !");
commands.forEach((f) => {
let command = require(`./commands/${f}`);
console.error(`「✔️ 」${f} has been charged`);
client.commands.set(command.help.name, command)
});
});
@keen narwhal
je vais tester merci
toujours pareil ^^'
Montre tout ton ficher main.js ou jsp.js
T'as testé de rename le file en setuserlang.js
ah nan xd
mais c'est une fonction depuis le fichier commands ^^'
@keen narwhal bah je viens de modif
const Discord = require("discord.js")
module.exports.run = async (bot, message, args) => {
message.delete()
if(message.author.id != bot.user.id) return;
if(!args[0]) return message.channel.send("Merci de précisez le nom de la commande à reload.")
let commandName = args[0].toLowerCase();
try {
delete require.cache[require.resolve(`./${commandName}.js`)]
bot.commands.delete(commandName)
const pull = require(`./${commandName}.js`)
bot.commands.set(commandName, pull)
message.channel.send(`**La commande \`${args[0]}\` à bien été reload.**`)
}catch(e) {
return message.channel.send(`Je ne peux pas reload : \`${args[0].toUpperCase()}\``)
}
}
module.exports.help = {
name: "auto-reboot-manage"
}```
maintenant c'est sa
mais sa ne vide pas le cache pour le reprendre
Je pourrais pas t'aider
^^'
Je pense pas que c'est possible de faire un auto-refresh
si xd
Si tu le dis
je l'avais fais sur un autre bot
Pour l'instant ça n'a pas l'air de marché
mais je n'ai plus mes codes
@oak turret Tu saurais certainement plus l'aidé que moi
le problème ?
Aucune idée
Il a juste posté son code
Son auto-refresh ne marche pas
et vue que j'en ai jamais fait
Je pourrais pas aidé
bah moi non plus, what is this "auto-refresh"
bah, le fichier ne prends pas le nouveau cache
sinon dans une commande que j'ai je suis obligé de redémarrer le bot pour qu'il lise un autre fichier
tu devrais pas faire plutôt bots.cache.delete(commandName) ?
mais garde juste ton delete, j'capte pas l'utilité du reste
je vais essayé merci
np
pourquoi tu parles de .json ?
car dans le fichier qu'il reboot sa va lire dans un fichier .json
quoi ?
mais celui-ci ne lis pas les données donc sa reste vide..
dans ton code il n'écrit rien et ne lis rien
let cle = JSON.parse(fs.readFileSync("./clé.json", "utf8"));
const clef = require("../clé.json");
let e = clef.find(c => message.author.id === c.id)
console.log(clef)```
nan dans un autre code
tout ce qu'il devrait faire c'est de retiré le cache d'une commande
oui
mais la commande qui ce le fais retirer dois prendre des données
et la clef est vide alors que dans le fichier non...
ton log de clef = ?
[]
Ok, donc
bot.commands.delete(commandName)
bot.commands.set(commandName, pull)
ceci sert à quoi ?
le delete suffit pourtant
t'utilises un handler, moi non donc je connais pas du tout ces trucs là
mais j'capte pas comment tu peux savoir que ton fichier est reeboot
en effectuant un changement
bah, ce fichier qui ce fait reboot, éffectue un changement sur le message de la commande
^^'
mais celui-ci ne marche pas
:/
euh ouais bah faudrait que je test car je capte pas trop l'utilité de ce truc, mais log tes trucs un peu partout
d'ailleurs
je vais essayer avec nodeactyl au pire
essaye de choper le cache actuel de la commande tapée avant le delete
et log le après le delete
pour voir
et là tu verras si ton delete fonctionne ou pas
faut situer où ça casse
c'est à dire ?
le cache contient quoi ?
ouais alors déjà j'comprend pas trop l'utilité d'reload une commande
c'+ se faire chier pour rien
autant node lefichier.js et ça te restart ( donc reload )
@oak turret merci de ton aide, j'ai fais un système plus complexe mais qui marche
Salut, j’ai entendu des rumeurs comme quoi on en pouvait plus avoir le badge Développer
quelqu’un pourrait me confirmer si on peut encore l’avoir ?
Pour le moment, oui, mais dans peu non
et tu le crée comment ton field aussi?
je le crée pas, ça c'est dans ma boucle en fait
ah ui mais j'suis con
xD, c'est bon ⭕o
yeye
merci^^
bah de rien, littéralement 

Hey, quelqu'un sais comment créer une table via une commande ? J'utilise MYSQL 🙂
Tiens un exemple qui est censé fonctionner 
CREATE TABLE IF NOT EXISTS `tatable` (
`name` VARCHAR(16) NOT NULL
)```
Et il faut que je déclare quelqu'un chose ?
Car si je met que ça
Sa m'indique des erreurs
Please 🙂
J'ai ceci:
const Discord = require("discord.js");
const moment = require('moment');
module.exports.run = async (bot, message, args, bdd) => {
let nameclub = args.join(' ');
if (!nameclub) return message.reply("Vous devez indiquer le nom de votre **Club** !")
if (nameclub.length > 35) return message.reply("Le nom de votre **Club** ne doit pas faire plus de **35** caractères !")
bdd.query("CREATE TABLE IF NOT EXISTS `${nameclub}` ( `id` int(11) NOT NULL, `nomduclan` varchar(50) NOT NULL, `chefduclan` varchar(50) NOT NULL, `idduchefduclan` varchar(100) NOT NULL, `description` text, `createdAt` varchar(50) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;")
};
module.exports.help = {
name: "createclubtest",
category: "YouTube",
info: {
description: "Permet de créer son propre club !",
usage: "<Nom du Club>"
}
};
Comment on fait pour moov un channel dans une category ?
Que tu créer ? @slate flame
nn qui éxiste dèja je veux qu'il soit moov quand je click sur une reaction
channel.setParent(categoryId)
Quelqu'un a une solution pour moi 🙂
Je voudrai faire en sorte que si je fais: /createclubtest nomdemonclub, sa créer automatiquement ma table avec le nom de mon club 🙂
Ici module.exports.run = async (bot, message, args, bdd) => {
De l'autre côté
Avec var bdd = mysql.createConnection({
fait un bdd.connect() avant et un bdd.end() après
attend je te modifie ton code
const Discord = require("discord.js");
const moment = require('moment');
module.exports.run = async (bot, message, args, bdd) => {
let nameclub = args.join(' ');
if (!nameclub) return message.reply("Vous devez indiquer le nom de votre **Club** !")
if (nameclub.length > 35) return message.reply("Le nom de votre **Club** ne doit pas faire plus de **35** caractères !")
bdd.connect()
bdd.query("CREATE TABLE IF NOT EXISTS `${nameclub}` ( `id` int(11) NOT NULL, `nomduclan` varchar(50) NOT NULL, `chefduclan` varchar(50) NOT NULL, `idduchefduclan` varchar(100) NOT NULL, `description` text, `createdAt` varchar(50) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;", function (error, results, fields) {
if (error) throw error;
console.log(results[0]);
});
bdd.end()
};
module.exports.help = {
name: "createclubtest",
category: "YouTube",
info: {
description: "Permet de créer son propre club !",
usage: "<Nom du Club>"
}
};```
@hazy mirage
enleve le .connect
Ok
enfin toute la ligne ta capté
¯_(ツ)_/¯
ok mais c'est passé" du coup nan?
oui
normal
`CREATE TABLE IF NOT EXISTS \`${nameclub}\` ( \`id\` int(11) NOT NULL, \`nomduclan\` varchar(50) NOT NULL, \`chefduclan\` varchar(50) NOT NULL, \`idduchefduclan\` varchar(100) NOT NULL, \`description\` text, \`createdAt\` varchar(50) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;`
met ça plutot
Dac, et fais attention, tu me met 2X ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; 🙂
🙂
Sinon, sa fonctionne
Mais ducoups, comment je fais pour dire qu'il existe déjà ?
Et merci
alors avec les parametre du callback, il te renvoie peut etre que ça existe déjà
si ce n'est pas le cas
enleve le if not exists ça te renverra une erreur je pense et tu pourrais peut etre t'en servir
Ok je vais voir ça
Bonjour, hier j’avais déjà poser ma question mais même avec l’aide je n’ai pas trouver, je souhaiterai faire dans les logs à chaque ajout du bot un message, et dans le status du bot, le nombre d’user et de serveur ayant le bot
alors faut voir si y a un event sur ça
Un pote l’avais fait sa disait " pseudo à ajouter nomdubot sur nomduserveur "
Mais j’ai jamais trouver l’event pour le faire
j’vais look
ouais ok
j’pense
alors dans l’event guildmemberadd
tu check l’id de l’user
si il est = à l’id du bot
alors t’envoies un message dans tes logs
tu get la guild, le channel et tu send
Merci de ton aide, mais je serrait pas faire sa, je suis encore un débutant 😆
Hey @keen narwhal
C'est l'event guildCreate qu'il faut utiliser (https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-guildCreate)
Voici un exemple: ```JS
client.on( guildCreate, (guild) => {
guild.channels.first().createInvite().then(inv => console.log(${guild.name}, ${inv.url}));
})```
Merci beaucoup, et quand il est retirer du serveur c'est guildDelete ?
Effectivement
Nickel, merci pour ton aide
Et tu sait comment faire pour que a chaque fois que le bot est ajouter, il crée une invitation du serveur ou il a été ajouter et l'envoie via une log ?
Voici un exemple: JS client.on( `guildCreate`, (guild) => { guild.channels.first().createInvite().then(inv => { console.log(`${guild.name}, ${inv.url}`) }); })
at Client.<anonymous> (c:\Users\desktop\Desktop\[LOGS]\index.js:18:20)
at Client.emit (events.js:327:22)
at Object.module.exports [as GUILD_CREATE] (c:\Users\desktop\Desktop\[LOGS]\node_modules\discord.js\src\client\websocket\handlers\GUILD_CREATE.js:33:14)
at WebSocketManager.handlePacket (c:\Users\desktop\Desktop\[LOGS]\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (c:\Users\desktop\Desktop\[LOGS]\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (c:\Users\desktop\Desktop\[LOGS]\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (c:\Users\desktop\Desktop\[LOGS]\node_modules\ws\lib\event-target.js:125:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (c:\Users\desktop\Desktop\[LOGS]\node_modules\ws\lib\websocket.js:797:20)
at Receiver.emit (events.js:315:20)
<node_internals>/internal/process/warning.js:32
(node:11208) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
<node_internals>/internal/process/warning.js:32
(node:11208) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.```
@keen narwhal met random à la place de first
Même erreur que toute a l'heure sauf que : (node:6936) UnhandledPromiseRejectionWarning: TypeError: guild.channels.random is not a function
Vous êtes en v12 de discord.js ?
Oui
utilise guild.channels.cache.first() alors
Ouais sa sera mieux xD
et maintenant : (node:8908) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Channel :/
met random
Justement, deja essayer c'est pareil
First c'est pour les mentions xD
Bizarre
la c'est comme sa : client.on( `guildCreate`, (guild) => { guild.channels.cache.random().createInvite().then(inv => { console.log(`${guild.name}, ${inv.url}`) }); })
et j'ai sa : (node:7004) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Channel
C'est bizarre
🤔
Essaye ça: JS client.on(`guildCreate`, (guild) => { setTimeout(function() { guild.channels.cache.first().createInvite().then(inv => { console.log(`${guild.name}, ${inv.url}`) }) }, 1000) })
c:\Users\desktop\Desktop\[LOGS]\index.js:19
guild.channels.first().createInvite().then(inv => {
^
TypeError: guild.channels.first is not a function
at Timeout._onTimeout (c:\Users\desktop\Desktop\[LOGS]\index.js:19:24)
at listOnTimeout (internal/timers.js:549:17)
at processTimers (internal/timers.js:492:7)```
le retour du (node:10840) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Channel
Pour random aussi ?
Ouep
Woaw c'est chiant sa
console.log( guild.channels.cache ) pour voir
Je le met ou ?
client.on(guildCreate, (guild) => {
ici
...
}
Je le remplace ?
J'ai pas compris, je viens de me reveiller sorry
Dans ton code
Tu rajoutes juste ce qu'il t'a donné
Tu n'enlève rien
client.on(guildCreate, (guild) => {
console.log(guild.channels.cache)
}
log juste guild
client.on(guildCreate, (guild) => {
setTimeout(function() {
guild.channels.cache.random().createInvite().then(inv => {
console.log(`${guild.name}, ${inv.url}`)
})
}, 1000)
})```
je viens de tester et sa marche ça ^^'
nickel
Je vais tester et je te dit sa
ok
Sa marche, sauf que j'ai ce truc vraiment pas ouf :/ :
je vous l'ai retiré
prenez le nouveau code
^^'
Nickel, merci beaucoup l'ami tu me sauve
celui qui à le plus aidé c'est pilot2 ^^'
Ah bah ducoup : (node:4500) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Channel
attends
Je croit qu'il faut obligatoirement le fameux truc umpeu relou
bah non
sa marche très bien chez moi
pourtant le code c'est bien sa : ``` client.on(guildCreate, (guild) => {
setTimeout(function() {
guild.channels.cache.random().createInvite().then(inv => {
console.log(`✨ Le Bot ${client.user.username} a été ajouter sur le serveur " ${guild.name} " | ID : (${guild.id}) Invite : ${inv.url}`)
})
}, 1000)
})```
je vais essayer ton code attends
euh là........
Ok non c'est bon j'ai réussi je suis stupide..
J'avais oublier d'enlever l'ancien
ah...
merci beaucoup
de rien
@keen narwhal Maintenant tu peux log dans un channel sur ton discord si tu veux 🙂
@hazy mirage merci d'avoir aidé même beaucoup xD
@hazy mirage C'est ce que je vais faire
client.on(`guildCreate`, (guild) => {
setTimeout(function() {
guild.channels.cache.random().createInvite().then(inv => {
console.log(
`✨ Le Bot ${client.user.username} a été ajouter sur le serveur " ${guild.name} " | ID : (${guild.id}) Invite : ${inv.url}`
)
client.channels.cache.get("id du channel que tu veux").then(channel => {
channel.send(
`✨ Le Bot ${client.user.username} a été ajouter sur le serveur " ${guild.name} " | ID : (${guild.id}) Invite : ${inv.url}`
)
})
})
}, 1000)
})```
De rien @keen narwhal
🙂
J'avais fait via un webhook, mais je vais faire avec ton code c'est beaucoup mieux
Encore moi, petit problème : console.log(`${client.guilds.size}`);
et dans mes logs :
Merci de ta réponse rapide 🙂
np
if (message.content.startsWith(";rank")) {
var user = message.mentions.users.first() || message.author
var output = await leveling.Fetch(user.id)
const canvas = Canvas.createCanvas(700, 250);
const ctx = canvas.getContext('2d');
const background = await Canvas.loadImage('./umg.jpg');
ctx.drawImage(background, 0, 0, canvas.width, canvas.height);
ctx.strokeStyle = '#74037b';
ctx.strokeRect(0, 0, canvas.width, canvas.height);
ctx.font = '28px sans-serif';
ctx.fillStyle = '#74037b';
ctx.fillText(`Levels : ${output.level}`, canvas.width / 2.0, canvas.height / 3.5);
ctx.fillStyle = '#74037b';
ctx.fillText(`XP : ${output.xp}/100`, canvas.width / 2.0, canvas.height / 1.8);
ctx.beginPath();
ctx.arc(125, 125, 100, 0, Math.PI * 2, true);
ctx.closePath();
ctx.clip();
const avatar = await Canvas.loadImage(user.displayAvatarURL);
ctx.drawImage(avatar, 25, 25, 200, 200);
const attachment = new Discord.Attachment(canvas.toBuffer(), './umg.jpg');
message.channel.send(attachment)
}
})```
hey, j'ai un problème avec ça
le message ne s'envoie pas
:/
une erreur?
non
ton event est async?
ok, j’connais pas canvas donc idk
essaye de console.log
log quoi ?
ui
Salut,
j'aimerais faire un systeme en sorte que le bot détecte si un utilisateur a un certain mot dans son status pour ensuite lui ajouter un role !
j'aimerais savoir si c'est possible
oui c'est possible je l'avais fais mais g pu le code
tu fetch tous les users
et de là
tu check leurs status
si il inclut genre 'a' tu fais ton code
cimer je vais test
Yo, je cherche une liste de tout les client.on('letruc')
Normal que l'event "message" soit pas dedans ?
ah oopsi c'est les web sockets events peut etre pas ceux de la lib
ah
Trop bien
Sinon t as la doc officiel
Nice
tiens y a ça https://gist.github.com/koad/316b265a91d933fd1b62dddfcc3ff584
@slim anvil Tu gère, y'a plein de fonctionalité que je ne connaisait pas 😮
Coucou, petit problème, voici mon code, et voici le problème :
console.log(`L'Utilisateur ${user.tag} a modifier le message " ${oldMessage} " par " ${newMessage} "`);
});```
Sa marche nickel, mais dans les logs : L'Utilisateur undefined a modifier le message " undefined " par " undefined "
siouplai
Tu me dis "Tu gères" concernant le lien que j'ai envoyé, alors regarde-le tu verras ton erreur 
dans l'event messageUpdate tu ne recois que 2 paramètre qui sont oldMessage, newMessage
channel et user ne sont pas envoyer en tant que params
tu peux les retrouver dans les autres params directement
comme pour l'event message
Bien vu, je vais voir sa ^^
Hello, j'ai un petit problème, je vous explique, je créer une commande pour créer un channel, puis ensuite je fais une autre commande dans celle-ci, pour delete le channel, je fais quelques vérifs, et je fais ensuite message.channel.delete, seulement cela me dit ça, mais je ne sais pas d'où vient le pb ^^
code :
if ( command === "buyvip" ) {
if ( !message.channel.id === "748182556918284390" ) { return; }
const chan = message.guild.channels.create(`achat-vip-de-${message.author.username}`, {
type: 'text',
parent: '748974599898660956',
}).then(chan => {
chan.send(`Bonjour / Bonsoir ${message.author}, voici les informations sur votre demande d'achat du VIP ↓ : (|| <@&748276151180591145> <@&747785453708771328>||)`);
chan.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()
)
chan.send(vip_embed);
chan.overwritePermissions(message.guild.roles.everyone, {
VIEW_CHANNEL: false,
SEND_MESSAGES: false
})
chan.updateOverwrite(message.author.id, {
VIEW_CHANNEL: true,
SEND_MESSAGES: true,
READ_MESSAGE_HISTORY: true
})
chan.updateOverwrite(message.guild.roles.cache.get('748276151180591145'), {
VIEW_CHANNEL: true,
SEND_MESSAGES: true
})
}).then((chan) => {
if ( command === "deletechannel" ) {
if ( !message.channel.id === chan.id && !message.member.roles.has("748276151180591145") || !message.member.roles.has("747785453708771328")) { return message.author("Je ne peux pas faire ça") }
else { message.channel.delete(); }
}
})
}
erreur :
[INVALID_TYPE]: Supplied overwrites is not an Array or Collection of Permission Overwrites.
C'est pas channel.delete ?
j'ai essayé chan.delete() aussi, je vais essayer channel.delete()
oauip
chan.delete() devrait fonctionner pourtant
peut-être mon .then() après les overwrite qui veut pas
je déteste le promise chaining on s'y retrouve clairement pas je trouve dans le code la
j'aurais pu le faire en ligne pour + de visibilité en effet
Non ça changerait rien
ça va aps résoudre le problème, mais déjà le naming de tes variables est hyper important
tu const chan = ....
et dans ton .then tu chan aussi
du coup je sais pas comment tu t'y retrouves mais c'est bagdad
ui ça c'est sur, juste pour la visibilité, bah chan pour channel quoi
oui mais tu te retrouves avec 3* chan mais qui contient pas la meme chose
j'viens de changer, en effet c'mieux xD
oauip
if ( command === "buyvip" ) {
if ( !message.channel.id === "748182556918284390" ) { return; }
const chan = message.guild.channels.create(`achat-vip-de-${message.author.username}`, {
type: 'text',
parent: '748974599898660956',
}).then(vip_channel => {
vip_channel.send(`Bonjour / Bonsoir ${message.author}, voici les informations sur votre demande d'achat du VIP ↓ : (|| <@&748276151180591145> <@&747785453708771328>||)`);
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()
)
vip_channel.send(vip_embed).then((channel) => {
if ( command === "deletechannel" ) {
if ( !message.channel.id === channel.id && !message.member.roles.has("748276151180591145") || !message.member.roles.has("747785453708771328")) { return message.author.send("Je ne peux pas faire ça") }
else { message.channel.delete(); }
}
})
vip_channel.overwritePermissions(message.guild.roles.everyone, { VIEW_CHANNEL: false, SEND_MESSAGES: false })
vip_channel.updateOverwrite(message.author.id, { VIEW_CHANNEL: true, SEND_MESSAGES: true, READ_MESSAGE_HISTORY: true })
vip_channel.updateOverwrite(message.guild.roles.cache.get('748276151180591145'), { VIEW_CHANNEL: true, SEND_MESSAGES: true })
})
}
mieux ? xD
ce système la fonctionne, les permissions sont bien appliqués
ah peut etre, juste déjà régler le naming et tout histoire que ce soit lisible
le naming te convient mieux Enzo ?
Jlaisse les autres mdr, sur tél, c'est le bordel
haha mcduck a fond j'imagine meme pas là
dans un tableau, euh comment du coup car j'ai l'overwrite et le updateoverwrite
grave merci duck :p
faut les faire en asynchrone tes updates
car tu coup tu overwrites permissions il a peut etre pas le temps de le faire qu'il passe direct à l'update etc
Mdrr
je suis po sur mais essaye
genre await devant tu veux diree
oui
Merci discord sur tél 👍
oublie pas le async
C'est très lisible 👍😅
l'event est déjà async, c'bon non ?
donc ton
.then(vip_channel => {
par contre curieux d'un truc
ta premiere condition
if (command === 'buyvip') {}
et dedans on retrouve ensuite
if (command === 'deletechannel') {}
le deletechannel ne sera jamais true vu que la premiere condition est rempli....
ou alors je saisis pas un truc
bah ouais du coup alors en fait
dans cette commande j'créer une nouvelle commande, qui s'exécute après les update, et se lance seulement si c'est les admins qui la font et si la commande est dans le bon channel
Pourquoi tu fais pas en deux parties ?
car j'vois pas comment la relier autre part
Ba tu fais si la commande delete est effectué dans un channel commancant par X




