#javascript-typescript

1 messages · Page 60 of 1

oak turret
#

je le rends async comment mon .then ?

dire latch
#

Et le tour est jouer

slim anvil
#

ça aussi wtf

#
vip_channel.send(
      vip_embed = new Discord.MessageEmbed()
        .setColor("#B28700")
        .setDescription('Merci de donner l\'id de votre achat paypal, + screen de l\'achat (photo)')
        .addFields(
          { name: "Sujet : ", value: "Demande d'achat d'un VIP", inline: true },
          { name: "Nom du joueur : ", value: `${message.author}`, inline: true }
        )
        .setTimestamp()
    )
oak turret
#

bah

slim anvil
#

et ensuite

vip_channel.send(vip_embed)
dire latch
#

Aie

oak turret
#

bah alors Enzo, avec la syntaxe normale il veut pas xD

dire latch
#

Ta dût foirer un truc @oak turret mdr

slim anvil
#

oui je pense

oak turret
#

pourtant ça fonctionne mdr

#

xD

slim anvil
#

ça veut pas dire que c'est bien

oak turret
#

c'est sur, j'avoue en relisant pas ouf ouf

dire latch
#

C'est de l'opti quoi

oak turret
#

non mais j'ai compris un truc de plus avec ça, merci ^^

#

ça me l'envoyait deux fois, forcément

#

bien comme ça pour le rendre async mon .then() ?
.then(async vip_channel => {

dire latch
#

Yes

oak turret
#

je restart mon vps

dire latch
#

Ton vps carrément

oak turret
#

je l'ai hébergé, j'ai du changer deux fois à cause de conneries, j'ai que des galères avec ce bot :x

dire latch
#

Ta pas pm2 ?

oak turret
#

no

slim anvil
#

normal c'est dev avec les pieds kapp

oak turret
dire latch
#

Omg

#

🤦‍♀️

oak turret
#

c'est le truc pour le garder allumé ?

dire latch
#

Ta juste à installé node/npm/une base de donnée/pm2

#

Et good

#

Yes

slim anvil
#

je vois pas le rapport entre la base de donnée et pm2 du coup harold

oak turret
#

ça me dit la même chose du coup xD

#

j'ai pas fait le tableau pour les update après, je vois pas comment faire

dire latch
#

Aucun @slim anvil je dis juste ce qu'il faut sur un vps pour un bot

#

La base de donnée est optionnel

slim anvil
#

ah oui voila

#

sinon au lieu d'install node et npm

#

install nvm myman

dire latch
#

🤔

#

Connais pas

slim anvil
#

Mieux pour gérer tes versions de node et npm

dire latch
#

Ok

slim anvil
#

tiens Lartaxx

oak turret
#

bon du coup vu que ça marche po, j'ai fais ma commande appart, et j'ai foutu un .startsWith('7') à la place de l'id du channel

slim anvil
#

t'auras la réponse ici je pense

#

le 2eme message explique pourquoi

oak turret
#

ah yes je vais look

#

ty

#

plus d'erreur niveau des perms, mais l'autre commande s'exécute pas

slim anvil
#

Bah oui c’est logique

oak turret
#

je vais le faire à part

slim anvil
#

c’est ce que je te disais KappaRetard

#

C’est impossible en soit soif

oak turret
#

de ?

slim anvil
#

si command = 1 et que ça rentre dedans, sauf si tu lui modifie sa valeur, il peut pas à la suite du code valoir 2

#

et si il faut 2 de base il passera pas le 1

slate flame
#

Bonjour, j'ai un system de ticket a l'aide de reaction et j'aimerais savoir comment faire pour check que la personne qui click sur la reaction et un certain role

keen narwhal
#

Tu as cherché un peu ?

slate flame
#

Oui

keen narwhal
#

T’as trouvé quoi ?

slate flame
#

Rien d’util

keen narwhal
#

T’as cherché quoi ?

slate flame
#

check if somone has role with reaction discord.js

keen narwhal
#

T’as pas besoin de regarder si le mec réagis

#

Tu fais seulement un if(à le rôle mcmfm ) {
créer ton channel } else { tu supprimes la réaction et rien se produit}

slate flame
#

ok mais comment je ceck qu'il as le role

keen narwhal
#

Regarde sur la doc

#

Je vais pas tout te dire

#

Faut chercher par soi même

slate flame
#

ok bha super merci de ton aide la prochaine fois je demanderais rien

keen narwhal
#

C’est pas en te disant comment faire que tu vas apprendre, j’en ai déjà fait l’expérience

uncut eagle
#

Salut, quelqu'un serait comment faire en sorte que si un joueur envoie un lien que ça supprime automatiquement son message svp ?

oak turret
#

hm includes

#
if ( message.content.includes('https://') { return message.delete(); }

Un truc dans le genre

uncut eagle
#

ça marche pas

#

il a une erreur quand je démarre le bot

oak turret
#

laquelle

uncut eagle
#

Le bot ne démarre pas ( Je suis sur un panel ) +

if ( message.content.includes('https://') { return message.delete(); }
SyntaxError: Unexpected token '{'
oak turret
#

fait

uncut eagle
#

?

oak turret
#
if ( message.content.includes('https://') { message.delete(); } 
#

c'est censé marcher

#

t'as du te tromper ^^

#

y a rien qui est mauvais je vois pas où est le pb

uncut eagle
oak turret
#

ça doit venir de ton code actuel, ou tu l'as mal mit

#

c'est quoi ton autre code

#

ah ui my bad

#

manque une )

uncut eagle
#

?

oak turret
#

if ( message.content.includes('https://') ) { return message.delete(); }

uncut eagle
#

ah yes

#

je test

#

Le message se supprime pas pourtant je l'ai dans les logs

oak turret
#

test ça attend

#
const words = ["https://", "discord.gg/"];
if ( words.includes(message.content) ) { message.delete(); } 
uncut eagle
#

nop

#

marche pas

oak turret
#

att je l'avais fais j'te donne ça

#
const phrases = ["ok", "test"];
    if ( phrases.includes( message.content ) ) {
      console.log("fonctionne");
    } 

moi ça fonctionne ça

uncut eagle
#

Il a rien quand je mets un des mots

oak turret
#

ah oauip ça fonctionne plus bah ça fonctionnait

#

strange

uncut eagle
#

c'est chiant car j'ai pas le gout de ramener mee6 juste pour ça

#

ça se peut que ça marche pas à cause que j'ai la perm admin ?

oak turret
#

non ça prends pas en compte les perms là

#

ça marchait y a un mois je capte pas

uncut eagle
slim anvil
#

car c'est pas fait dans le bon sens

#

car tu regardes si dans "https://", "discord.gg" y a le msg.content

#

bah ca includes pas logique

oak turret
#

pourtant mon array fonctionnait enzo lol

slim anvil
#

bah là preuve que non que ca fonctionne pas là

oak turret
#

bah maintenant ouais

#

mais pourtant ça fonctionnait, comprends pas bref je l'utilise plus mais bon

slim anvil
#

ce qu'il faut faire @uncut eagle c'est ça

#
const words = ['https://', 'discord.gg']
const forbiddenWords = words.filter(word => message.content.includes(word))
if (forbiddenWords && forbiddenWords.length) { message.delete() }
#

du coup dans words tu rajoutes tout ce que tu veux et voila

uncut eagle
#

ok je regarde

#

marche toujours pas

keen narwhal
#

Edit pas directement via ton gestionnaire de fichier OuiPanel la plus part du temps c’est full bug

#

@uncut eagle

uncut eagle
#

Bah j'ai toujours fait ça et j'ai jamais eu de soucis

keen narwhal
#

Moi avant je faisait via leur editeur de text et j’avais full problème, mot qui se supprimer, code en moins, je te conseille de le faire directement sur ton bureau ou via leur sftp avec vscode

slim anvil
#

Regarde si tout ton code fonctionne mais le code fonctionne je l’ai testé

#

T’as peut être des balises manquantes ou autre ça je peux pas le savoir

uncut eagle
#

bah pourtant quand je démarre tout marche tout le reste du code marche

slim anvil
#

Mais ligne 196

#

Elles viennent d’où ces brackets

#

tu as pas un message d’erreur ?

uncut eagle
#

non aucun message d'erreur

#

Completed in 1m Le bot a démarré, avec undefined utilisateurs dans undefined serveurs.

runic bane
#

Salut !

(Demande de support pour bot développés avec Discordia)

Voilà pour mon serveur Discord j'ai un Bot qui gére les annonces de ventes créés par les membres.
Je souhaite stockés les annonces en DB (ça c'est ok) mais seulement voilà.

Quand le membre fait une commande je vais SELECT toutes ses annonces dans la DB et les ajouter dans un tableau, sauf que pour que cela me print ce que contiens le tableau je suis obligés de faire 2 fois ma commande.

J'ai l'impression que la première fois, rien ne se passe et pourtant si, tout est enregistrés mais rien ne se print.
Voilà mon code :

#

local function createAdsIndex(authorTag, id, title, desc, price, img)
  if (not(member.ads[''..authorTag..'']))then
    member.ads[''..authorTag..''] = {};
  end

  if (id ~= nil) then
    member.ads[''..authorTag..''][id] = {title, desc, price, img};
  end
  return member.ads[''..authorTag..''];
end

--[[ Début event envoie de message ]]--


local author = message.author
   mySqlClient:query( "SELECT * FROM `WARSHOP_Discord`.`sellers_ads` WHERE author = '"..author.tag.."';", function(err,res,fields)
   for i, v in ipairs(res) do
      createAdsIndex(v.author, v.id, v.title, v.description, v.price, v.img);
      end
   end)

   for k, v in pairs(createAdsIndex(author.tag, nil))do
      print(k, v[1])
   end

--[[ Fin event envoie de message ]]--
timid loom
#

tu peux vérifier que c'est là si tu as une certaine commande
cela dit je crois pas qu'ils aient fait une fonction optionnel/obligatoire en fonction d'un autre argument

cyan iron
#

Hey j'ai un problème

await ticket_user.dmChannel.startTyping()
await ticket_user.dmChannel.stopTyping(true)

J'essaye de faire écrire le bot quand quelqu'un écrit, ça fonctionne mais le bot n'arrête pas d'écrire :/

dire latch
#

Enlève le true @cyan iron

#

🙂

cyan iron
#

Ok je tente

#

@dire latch Alors ça fonctionne quand le message est envoyé, mais quand on commence à entrer un message, et qu'on le delete, ça met en train d'écrire à l'infini :/

dire latch
#

Tu veux faire quoi exactement ?

cyan iron
#

Ah si il s'arrête

#

Mais il met longtemps suefort

dire latch
#

Ba tu veux qu'il démarre quand il fait quoi

#

Et stop quand il fait quoi ?

cyan iron
#

En gros, je fais un bot ticket

#

Quand le staff écris dans le channel

#

Je veux que le bot soit en train d'écrire dans les MP

#

J'ai rien dit ça marche

#

Merci 😉

#

Non en fait

#

Ca met trop de temps c'est pas normal

dire latch
#

Enlève les await

cyan iron
#

ok

#

@dire latch Merci ❤️

#

Ca fonctionne 👍

dire latch
#

Dr 😉

torn fog
#

@runic bane print author.tag normalement sur la première requête cette variable renverra nil

#

C'est sûrement pour ça que la première fois ça ne marche pas

dire latch
#

Hey 🙂

#

J'ai une commande !warn pour warn une personne qui sauvegarde dans une base de donnée, mais comment récupéré tout ces warns pour les renvoyés dans un embed ?

slim anvil
#

quand tu le warns tu enregistres quoi ? son discord_id ?

#
  • la raison etc
dire latch
#

Trop rapide mdr

#

Donc, pseudo, pseudo_id, reason, staff, staff_id

slim anvil
#

Tu peux sélect by le discord_id du coup

dire latch
#

Yes

#

C'est ce que j'ai fais

slim anvil
#

Et ça te return rien ?

dire latch
#

En gros, j'ai fais la même technique que le leaderboard si tu t'en rappelles

#

Mais j'obtiens les mêmes warns 3X

slim anvil
#

montre ta requête et tes résultats en screen pls je suis sur tel

dire latch
#
  let user = message.mentions.users.first();
  if(!user) return message.channel.send("Vous devez mentionner quelqu'un.");

  bdd.query(`SELECT * FROM warns WHERE pseudo_id = '${user.id}'`, (err, warn) => {
    if (!warn[0]) return message.reply("cet personne n'as pas de warn.")

    const classment = warn.sort((a) => { return a.pseudo_id});
    const top = classment.slice(0, 10);
    let liste = '';

    const promise = top.map(async user => {
      let users = await bot.users.cache.get(user.pseudo_id);
      let username;
      if (users) {
        username = users.username;
      } else {
        username = `NOPE \`ERROR\``;
      }
      liste += `**[WARN #${classment.findIndex(i => i.pseudo_id == users.id) +1}**]\n\n**Pseudo**: ${username} (${warn[0].pseudo_id})\n**Staff**: ${message.author.username} (${warn[0].staff_id})\n**Raison**: ${warn[0].reason}\n\n`});
    Promise.all(promise).then(() => {
      const embed = new MessageEmbed()
      .setAuthor(`WARN - ${user.tag} (${user.id})`)
      .setColor("#8ebd9b")
      .setDescription(`${liste}`)
      .setTimestamp()
      .setFooter(message.author.tag, message.author.avatarURL());

      message.channel.send(embed);
      // message.channel.send(`${liste}`);
    });
  });
};```
#

Voici 🙂

slim anvil
#

en screen pls harold

dire latch
#

Cadeau mdr

slim anvil
#

Log warn (ce que tu reçois de ta requête) et screen

dire latch
slim anvil
#

Mais du coup t’as pas besoin de classement etc

#

On faisait ça pour ton leaderboard

#

Là tu peux boucler directement sur warn

dire latch
#

Ah

#

Ok

#

Mais si je fais juste ${warn} ou ${warn[0].reason}

#

Sa m'affiche que 1 warn @slim anvil 🤔

slim anvil
#

Montre ton code now

#

T’as pas du faire le bon truc

dire latch
#

Ba je l'ai pas modif encore mdrr

slim anvil
#

Modifie le tu peux delete top classement etc

dire latch
#

J'ai juste rajouté le ${warn}

slim anvil
#

Et tu boucles sur ton tableau de warn pour les ajouter 1 pr 1

#

wut ?

#

ton .map tu le fais sur ton warn pas top

dire latch
#

Ok

#

Sa ne change rien si je met warn.map 🙂

slim anvil
#

Mais.... mec

#

Tu as copies bêtement ton truc de leaderboard je viens de te dire que tu en as pas besoin tu as juste à boucler sur warn

#

Tu me sors warn.top...

#

tu fais juste ton .map sur warn et pas sur top

dire latch
#

Je me suis tromper mdr

slim anvil
#

quand tu log warn il y a un .top dedans ? Alors d’où le sors tu

dire latch
#

J'ai mis warn.map

slim anvil
#

Screen ce que tu as actuellement stp

dire latch
slim anvil
#

Supprime tout ce qui sert a rien indente tout bien et renvoie moi le truc plz

dire latch
#

Ba c'est comme ça 🤔

#

Tout le screen sert

slim anvil
#

Avec toutes les fermetures de } etc car elles y sont pas toutes

dire latch
#

A la fin, ya juste:

    });
  });
};
slim anvil
#

Renvoie avzc tout alors pls plus simple à la lecture

dire latch
slim anvil
#
const promise = warn.map(async warn => {
  // ici ton code
})
Promise.all(promise).then(() => {
  // ici tu envoies l'embed
})
#

la tu mélanges ta promise et ton resolve

#

donc dans le premier bout de code tu fais ton get user avec l'ajout a la liste etc

#

et dans le deuxieme tu envoies

dire latch
#

Ok merci 🙂

#

Mais comment je fais pour mettre [WARN #1], [WARN #2] ect ect

#

Car j'ai que des [WARN #1]

slim anvil
#
warn.map(async (warn, key) => {
#

et tu te sers de key pour faire le 1, 2, 3 etc

dire latch
#

Dac merci 🙂

#

Tout fonctionne

runic bane
#

Salut !
J'ai un problème, j'essaye de mettre en place un timer avec mon bot Discord (Discordia) sauf que ma technique ça bloque l'exécution des events.

En gros, lorsque que quelqu'un fait la commande !timer, ça lance un décompte de 30scd et je suis censé captés ce que les gens disent pendant ces 30 secondes, sauf que du coup l'event se lance seulement à la fin du timer, hors j'aimerais que ça se lance en même temps.

voici ma technique pour créer mon super timer

repeat
     time.actualTime = os.time();
     if (time.limitTime - time.limitTime == 20)then
          client:getUser(v):send('Il vous reste encore 20 secondes');
     elseif (time.limitTime - time.limitTime == 10) then
          client:getUser(v):send('Il vous reste encore 10 secondes');
     elseif (time.limitTime - time.limitTime == 5) then
          client:getUser(v):send('Il vous reste encore 5 secondes');
     end
until time.actualTime == time.limitTime

Voici l'event qui ne peu plus être lancés en même temps :

client:on('messageCreate', function(message)
  if(message.channel.type == 1) then
    if (not(member[message.author.id])) then
      member[message.author.id] = {
        active = 0
      };
    end
    print(message.content)
  end
end)
keen narwhal
#

Les gars, j'aimerais faires un syst`me de logs, mais je sais pas comment m'y prendre, quelqu'un pourrais me ping afin de m'orienter ? Merci d'avance

oak turret
#

c’est vaste

#

logs de quoi?

keen narwhal
#

quelqu'un sait utiliser readline ici ?

oak turret
#

c’est un prompter?

keen narwhal
#

logs de quoi?
@oak turret Logs par exemple, ¨À Rejoins le salon, À Ban . . ..¨ Etc

oak turret
#

guildmemberadd et guildmemberremove le deuxième pas sur, c’est les events permettant de voir qui arrive et qui part de ton serveur

#

et pour les trucs de ban

#

bah si t’as une commande de ban au moment d’un ban t’envoies un message là où tu veux qui servira de log

keen narwhal
#

guildBanAdd -> fetchLog -> if target = member -> executor à ban target

runic bane
#

Salut !
J'ai un problème, j'essaye de mettre en place un timer avec mon bot Discord (Discordia) sauf que ma technique ça bloque l'exécution des events.

En gros, lorsque que quelqu'un fait la commande !timer, ça lance un décompte de 30scd et je suis censé captés ce que les gens disent pendant ces 30 secondes, sauf que du coup l'event se lance seulement à la fin du timer, hors j'aimerais que ça se lance en même temps.

voici ma technique pour créer mon super timer

repeat
     time.actualTime = os.time();
     if (time.limitTime - time.limitTime == 20)then
          client:getUser(v):send('Il vous reste encore 20 secondes');
     elseif (time.limitTime - time.limitTime == 10) then
          client:getUser(v):send('Il vous reste encore 10 secondes');
     elseif (time.limitTime - time.limitTime == 5) then
          client:getUser(v):send('Il vous reste encore 5 secondes');
     end
until time.actualTime == time.limitTime

Voici l'event qui ne peu plus être lancés en même temps :

client:on('messageCreate', function(message)
  if(message.channel.type == 1) then
    if (not(member[message.author.id])) then
      member[message.author.id] = {
        active = 0
      };
    end
    print(message.content)
  end
end)

Je me permet de remettre mon problème, parce que j'ai toujours pas trouvé de solution actuellement ^^

keen narwhal
#

Bonjour qui aurai un code pour que mon bot soit liée a une base de donée.

#

mysql

#

et si tu veux je suis dispo vocal pour plus d'indication

oak turret
#

bah faut use un module

keen narwhal
#

je sais

oak turret
#

et donc ?

#

la doc t'aidera

keen narwhal
#

mais je sais plus c le quel

#

a voila

oak turret
#

faut chercher

keen narwhal
#

je sais sa ok mais genre j'aimerais le liée a mon systeme de warn

oak turret
#

ton système de warn ?

#

tu stockes tes warns où ?

keen narwhal
#

bah la dans un json donc c pour sa que je voulais faire avec une bd

oak turret
#

rip

keen narwhal
#

car en json bon voila quoi

#

mdr

oak turret
#

bah faut que tu refasses ton code

keen narwhal
#

ouai sa je sais mdr

oak turret
#

et donc

#

où est le problème

keen narwhal
#

mais je sais pas quoi mettre

#

XD

oak turret
#

bah tu lis la doc

#

et tu testes

#

tout est écrit

keen narwhal
#

Bonsoir

#

J'aimerais faires un embed à cette endroit précis

#

À La place d'un message normal, mais je veux aussi que l'image de l'author ( Celui qui c fait supprimer son message) Apparaisse dans l'embed, je ne sais pas comment m'y prendre

#

Ca serait aimable qu'une personne m'oriente svp

timid loom
#

avec la méthode send tu peux envoyer un MessageEmbed

#

je te laisse vérifier tout ça sur le wiki, il y a des exemples normalement

keen narwhal
#

Ah d'accord, et pour l'image de la personne ?

#

${member.user.tag} ?

slim anvil
#

console.log ton member tu verras bien ce qu’il te renvoie, à ton avis par simple déduction, le mot tag te semble il faire référence à la photo ?

keen narwhal
#

merde, je me suis fail, j'ai envoyé le mauvais

#

je croyais l'avoirs copié

#

message.author.displayAvatar

#

voila

dire latch
#

@keen narwhal As-tu toujours besoin d'aide ?

keen narwhal
#

@keen narwhal As-tu toujours besoin d'aide ?
@dire latch oui sue

dire latch
#

Sur?

#

@keen narwhal

keen narwhal
#

laisses-moi 2 secondes

dire latch
#

Ok

dire latch
#

Ducoups? 🤔

#

@keen narwhal

keen narwhal
#

J'ai essayé ca

#

Mais ca ma rien donnés

#

@dire latch

dire latch
#

Erreur ?

keen narwhal
#

Tien

dire latch
#

Oui normal

#

Tu peux pas mettre de message.author

#

Car il est déclaré nul part

keen narwhal
#

Ah oui

dire latch
#

Et si tu met executor a la place de message.author ?

#

@keen narwhal

keen narwhal
#

@dire latch

#

Non plus

dire latch
#

Si tu console.log ton kickLog

#

Ça te donne quoi ?

#

Et pk tu vérifie si la personne kick est lui même ? @keen narwhal

keen narwhal
#

Ca peut être good ?

#

@dire latch

dire latch
#

Remet ton code d'avant

keen narwhal
dire latch
keen narwhal
#

Il est o/ le IF(TARGET . . .

#

?

#

exactement

dire latch
#

Il est plus sur ton nouveau screen 🤷‍♀️

#

Mais sur l'ancien oui

keen narwhal
#

Ah d'accord

#

\🤷‍♂️

dire latch
#

OK screen ton code stp

#

Que tu as actuellement

keen narwhal
#

Tiens

dire latch
#

Ok donc, const { executor }

#

Tu enlèves le target

keen narwhal
#

Ok

#

c'est fait

dire latch
#

Tu enlèves

#

Donc le else a la fin aussi

#

Ah ba ya pas de else donc tu supprimes juste la ligne

keen narwhal
dire latch
#

Enlève la virgule après executor

#

Et enlève le { qui est solo

#

Et } tout en bas qui est solo

keen narwhal
dire latch
#

Et remplace message.author par executor

keen narwhal
#

like this ?

dire latch
#

Yes comme ça

#

Essaye comme ça ducoups

#

Et tu me dis

keen narwhal
dire latch
#

Supprime le message.channel.send au dessus de l'embed

#

Et retest

keen narwhal
#

Toujours la même

dire latch
#

Met // devant le dernier .addField

#

Et ça devrait fonctionner

keen narwhal
dire latch
#

Code?

keen narwhal
#

je devais le mettre à la fin du addField le // ?

dire latch
#

Nan OK

#

Donc maintenant

#

Tu utilises bot ou client ?

keen narwhal
#

client

dire latch
#

OK

#

A la place de **message.channel.send(embed) ** tu met client.channels.cache.get("IDDETINSALON"). send(embed)

#

Tu sais récupérer L'ID d'un salon ?

keen narwhal
#

T'Es un génies

dire latch
#

👍

keen narwhal
#

@dire latch Merci ^^

dire latch
#

Ça fonctionne bien si le mec n'est pas kick ?

keen narwhal
#

tu gères

dire latch
#

Mais qu'il leave?

keen narwhal
#

Je vais voirs ca tout de suite

dire latch
#

Au pir invite moi stuveux 😁

keen narwhal
#

Ok \👌

oak turret
#

tu pourrais faire un .addFields({name: "Nom", value: value, inline: bool}) 🙂

#

un , après le } et tu refais la même chose, ça évite d’avoir 30 .addField

frozen mist
#

mes command ne fonctionne pas svp je debute

hazy mirage
#

il y a une erreur au message.content.slice

#

ce n'est pas PREFIX.lenght mais PREFIX.length

frozen mist
#

merci bg

oak turret
#

ça fonctionne maintenant?

hazy mirage
#

bien sûr kapp

oak turret
keen narwhal
#

Je voudrai savoir si quelqu'un pourrai m'aider je voudrai savoir comme mettre une image Canva dans un message de bienvenue et d'au revoir ?

full scaffold
#

Tu veux faire un Embed ?

full scaffold
spring dock
#

non il veux faire une image avec du texte custom dessus

full scaffold
#

Comme Koya en gros ?

spring dock
#

jsp peut etre

dire latch
#

@full scaffold Faut apprendre à lire 🙄 puis je l'ai déjà aidé en mp 👍

oak turret
#

bah canvas discordjs sur google

#

t’as des tutos

#

suffit de lire comme dit mrDuck lol

full scaffold
#

ça va mal finir j'vous l'dis

oak turret
old thistle
#

hey

#

Comment je peux faire pour exécuter cette partie de mon code avec une commande ?

dire latch
#
module.exports.help = {
    name: 'nom de ta commande'
};```
#

Après, tout dépends ce que tu as déclarés 🙂

#

@old thistle

old thistle
#

je n'ai rien déclaré lol

dire latch
#

Go faire les tutos de base 🙂

#

Et tu sauras le faire easy

old thistle
#

bah justement, j'ai suivis des tutos

#

j'ai pas compris

#

le code là c'est le code d'un tuto

#

sauf que je comprends pas comment le mec fait pour exécuter le code

dire latch
#

Je ne sais pas comme j'ai pas le tuto 🙂

old thistle
dire latch
#

Ah oui, ok

#

Il a déjà un bot tout fais enfête 🙂

#

Ton bot a déjà des commandes ou pas ?

old thistle
#

oui

#

sauf que c'est un peu "mal foutu"

#

j'ai fais avec un évènement : quand un joueur mets un message, je check si le message c'est : ";help" (par exemple)

#

j'ai pas fais de système de préfix

#

car je sais pas comment faire

dire latch
#

Regarde un tuto pour faire les bases d'un bot 🙂

#

Sa t'aideras grandement

full scaffold
#

Yo, je cherche un moyen de récupérer des données affichées sur une page web sur mon bot

slim anvil
#

Tu fetch

#

Et pi voila

full scaffold
#

Fonction de base du js ou une fonction de discord.js ?

slim anvil
#

JS

#

Tu vas get ton URL

full scaffold
#

ok je venais de voir ça 👌

slim anvil
#

Et avec tu fais ce que tu veux

full scaffold
#

yes

full scaffold
slim anvil
#

T’en as plusieurs des modules pour faire des requêtes

#

Choisis celui qui te plait

full scaffold
#

Y'en a pas un qui se place au dessus ?

slim anvil
#

Sinon oui t’as node-fetch

#

T’en as des plus complet oui

full scaffold
#

ok

slim anvil
#

Mais si c’est pour une requête pas besoin

#

ça va être + lourd

full scaffold
#

J'vais mettre celui là ducoup

#

Je sais pas quoi en faire du résultat sue

slim anvil
#

Tu veux récupérer un élément de la page ou tu reçois des datas ?

full scaffold
#

J'veux la page html

#

J'ai trouvé

#
fetch("https://firyo.mtxserv.com/firyo/")
    .then(res => res.text())
    .then(body => console.log(body));

J'ai pris une page trop lourde pour voir un peu

slim anvil
#

Yes et ensuite bah tu récupères l’élément que tu veux

full scaffold
#

ui ui

slim anvil
#

si t'as besoin hésite po

full scaffold
#

Genre là je fetch cette page https://statsroyale.com/clan/YQL9UQQ2

et le début du console.log c'est ça

Last Seen
</div>
</div>
</div>
<div class="clan__rowContainer" data-trophies="5450" data-donations="60">
<div class="clan__row">
#16
 </div>
<div class="clan__row">
<a class="ui__blueLink" href="https://statsroyale.com/profile/LCRCRU8">Treven</a>```
#

Il me donne le treisième mec en premier

#

Genre la page est cut

slim anvil
#

tu cherches a récupéré quoi exactement

full scaffold
#

là j'veux les stats générales du clan (les trophés par exemple) et les membres du clan

slim anvil
#

mais c'est renseigné sur la page ?

full scaffold
#

oui

slim anvil
#

tu veux récupérer les infos de la page ?

#

euh

#

ou y a les coupes ?

full scaffold
#

oui

#

et les membres du clan (la liste en dessous)

slim anvil
#

Oki attend

full scaffold
#

J'attend

oak turret
#

pourquoi res.text() et pas .json() ?

#

après tu récup l’index des noms

#

tu le fous dans une let ou quoi

slim anvil
#

parce que c'est de l'html

#

qu'il récupère

#

pas du json

oak turret
#

ah

slim anvil
full scaffold
#

oui

slim anvil
#

Ok bah vasy kappa

full scaffold
#

J'y vais

#

🚶

slim anvil
#

Je l'ai en format web par contre

#

adapte le en format nodejs je pense que c'est différent a little bit

#
synchro () {
      let frag = document.createRange().createContextualFragment(this.html)
      frag.querySelectorAll('.clan__metric').forEach((block) => {
        const element = {}
        if (block.querySelector('.ui__headerMedium').innerHTML) {
          element.value = block.querySelector('.ui__headerMedium').innerHTML
        }
        if (block.querySelector('.ui__mediumText').innerHTML) {
          element.text = block.querySelector('.ui__mediumText').innerHTML
        }
        this.items.push(element)
      })
    }

dsl indentation c'est discord

full scaffold
#

Je... sais pas quoi en faire de ton bout de code

slim anvil
#

😂

#

tu as quoi la toi actuellement

full scaffold
#
fetch("https://statsroyale.com/clan/YQL9UQQ2")
    .then(res => res.text())
    .then(body => 
        console.log(body)
     );```
#

ça

slim anvil
#

Sur mon code la seule chose qu’il faut que tu changes c’est la conversion de ton texte en html node élément

#

Je sais pas si c’est possible je pense que oui et ensuite voilà

#

tu pourras faire autrement sinon mais bon c’est plus simple comme ça tu peux cibler facilement les éléments

full scaffold
#

body: null, // request body. can be null, a string, a Buffer, a Blob, or a Node.js Readable stream

slim anvil
#

Alors récupère le en html et ce sera good déjà fais ça en oremier@temps

#

Si tu veux t’as cheerio ou jsdom qui peut te le convertir facilement en node élément

full scaffold
#

J'vais laisser tomber pour l'instant hein

slim anvil
#

Mais noo

#

Look cheerio ou jsdom tu vas voir

full scaffold
#

Paris va perdre en plus

#

Mais il me file pas le body en entier enfait

#

C'est ça qui me donne envie d'me défenester avec les volets fermés

slim anvil
#

Comment ça ? Screen ton console log de body

full scaffold
#

équivalent à ça sur la page

slim anvil
#

Fais gaffe c’est possible qu’il ne t’affiche pas tout car juste c’est trop long mais que tu ai tout quand même

full scaffold
#

J'men suis douté de ça

oak turret
#

pourquoi tu veux l’html?

full scaffold
#

Pour prendre les données de la page

slim anvil
#

T’as vérifié avant qu’ils ont pas une api pour get certaines infos ? KappaRetard

oak turret
#

ah ui c’mieux ça

#
  • rapide
slim anvil
#

Mais sinon pour t’aider au lieu de juste te balancer un code, regarde comment scraper un site via nodejs

#

Si jamais ils ont pas d’api

full scaffold
#

vasy

keen narwhal
#

Bonsoir, j'aimerais que, dans le embed, on puissent voir quel est le message qui à été supprimé, Voila le screen

#

Et voila mon code

#

tu mets message

#

au lieu de * Le Message supp*

#

?

#

ok

#

J'crois pas avoirs compris

#

en retirant les ``

#

Ah merci beaucoup @keen narwhal ^^, et juste

#

j'aimerais faires en sorte qu'avec une commande, le bot puisse ajouter le rôle demandé, j'ai fais ce qu'on ma proposé :

#

Mais nada

#

T'add pas de rôle là mdr

#

Tu dels seulement des messages

#

Fail, pas la bonne image

#

x)

#

Ah ok mdr

#

Bah send là bonne image du coup

#

Je suis entrains de la faire 😅

#

J'dois la recommencer

#

dans même pas 1min je suis la

#

Voila

#

@keen narwhal

#

Ah ok

#

Cherche le role par l'id

#

bcp plus simple

#

const role = guild.roles.cache.get('IDDetonRôle')

#

message.member.roles.add(role).catch((error) => { if (error) return; });

#

const role = guild.roles.cache.get('IDDetonRôle') je le mets oû exactement ?

#

Ton let role

#

Ok

#

C'est bon

#

Faut mettre l'id de ton rôle

#

Formate ton document stp

#

Tkt c'est fait

#

pour l'id

#

Ton then je le comprend pas

#

Au pire

#

??

#

Mais t'as essayé après avoir appliqué ce que je t'ai dit ?

#

Si oui, t'as une erreur ?

#

Si oui, montre l'erreur

#

2Spi, j'essaye autre chose

#

k.

oak turret
#

ton .has fonctionnera pas, « KICK_MEMBERss » c’est “KICK_MEMBERS”, mais j’vois pas à quoi sert ta ligne là,

#

puis faut mentionner le rôle

#

j’ai pas le truc en tête là, look sur mon github j’ai du le faire

keen narwhal
#

Ton girhub le même que ton. Nom discord ?

#

@oak turret

unborn igloo
#

regarde dans les liens de son compte

keen narwhal
#

Ok thx

slim anvil
#

Commence étape par étape, ta commande clear te fait des erreurs quand tu l’utilises ?

#

je vais pas trop pouvoir t’aider car je suis dans l’avion par contre

keen narwhal
#

Nan aucune erreur dans la console

#

tkt

#

Ah si j'ai peut être une erreur

slim anvil
#

Screen rapidement ton code de la commande clear quelqu’un va pouvoir t’aider quand ils seront dispo, comme pour l’envoie du message poll dans un channel spécifique ça va aller vite

#

Alors envoie là aussi et montre quand même ton code

#

Step by Step 😜

keen narwhal
#

Alors pas d'erreur, j'envoi mon code

#

Pour les autre c'est que certain message ne sont pas supprimer

#

Et j'ai l'impression qu'il ne supprime pas les ancien message

oak turret
#

tu veux faire une commande clear?

#

si oui, look mon github l’admin bot je crois, prend le code et adapte le au tien 🙂

keen narwhal
#

Il est ou ton github ? @oak turret

oak turret
keen narwhal
#

(node:24) UnhandledPromiseRejectionWarning: DiscordAPIError: You can only bulk delete messages that are under 14 days old.

#

J'ai cette arreur

#

En gros je peut pas supprimer des message de 14 jours ?

#

Yep

keen narwhal
#

ça marche merci ^^

keen narwhal
#

Bonsoir j'ai ce code dans le index de mon bot et j'ai une erreur dans la console

#

ReferenceError: message is not defined
at Object.<anonymous> (C:\Users\PC\Desktop\tiranabot\index.js:128:31)
at Module._compile (internal/modules/cjs/loader.js:1156:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
at Module.load (internal/modules/cjs/loader.js:1000:32)
at Function.Module._load (internal/modules/cjs/loader.js:899:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
at internal/main/run_main_module.js:18:47

#

C'est à dire ?

#

Oe

spring dock
#

pk tu le met ici ton code de giveaway aussi

#

genre la tu le met dans un endroit mais d ucoup message = nil + args aussi d'ailleurs

keen narwhal
#

J'ai r compris

#

Nop cela ne fonctionne pas

#

Oe

slim anvil
#

Transformejs client.on('message', message => {
en

client.on('message', (message) => {```

@pure raven
C’est quoi la diff ?

#

A part les parenthèses ? Parce que si c’est juste les () ça change strictement rien, les parenthèses se mettent lorsque tu as plusieurs params ou si tu veux déstructurer

hybrid berry
#

hey vous seriez m'aider

#

j'ai sa

#

je test discordia

#

mon token est correct je précise

slim anvil
#

@runic bane utilise discordia il pourra t’aider je pense

#

T’es sûr que le token est good ?

hybrid berry
#

yep

slim anvil
#

Car bon 401 + le message d’erreur 🤨

#

Genre t’es sur sur sur car y a le client token le client token et l’autre

hybrid berry
#

sa te va loul ?

slim anvil
#

Go te hack

hybrid berry
#

stv

slim anvil
hybrid berry
#

enfin tu vois bien que c'est le meme

slim anvil
#

oui yes juste parfois certains inverse mais trop bizarre 🤨 je savais pas qu’il appelait la route /@me pour login un bot non plus

#

Tu fais une requête spécial ou autre lors du run du bot ?

hybrid berry
#

nada

#

en fait mon code marchait pas donc pour tester j'ai recopié l'exemple de discodia

#

et j'ai la meme erreur

slim anvil
#

Essaye de réinstaller discordia

#

Sur les issues existante il y avait un soucis la dessus

#

Et tu me dis

#

Et dans ton Run rajoute Bot en prefix du token

#

Bot ton_token

#

Certains font comme ça, à voir 🤨

hybrid berry
#

de cette manière ?

#

Sa fonctionne merci Enzo

slim anvil
#

Parfait alors

#

Du coup regen ton token KappaRetard

#

on sait jamais

hybrid berry
#

Et vous savez comment react au message du bot pls

#

et pas a mon message

#

un peut comme un .then en js

spring dock
#
local botmsg = message.channel:send("pong!")
botmsg:addReaction...
#

j'imagine

hybrid berry
#

ah oui effectivement bot

#

ou comme sa 🤦‍♂️

#

Je suis con

spring dock
#

oui aussi

hybrid berry
#

et comment je peux load mon token depuis une conf json ?

hybrid berry
#

euh wut

#

il me print nil

#

comprend pas

spring dock
#

uh

#

chemin du fichier good?

hybrid berry
#

oui

#

car si je met autre chose il me print qu'il ne le trouve pas

spring dock
#

bizarre :/

#

function(_, txt)
print(txt)
end
pour voir

hybrid berry
#

bob

#

je

#

t'aime

junior echo
#

Ah

hybrid berry
#

mais comment t'as trouvé ?

spring dock
#

j'ai lu la documentation

hybrid berry
#

envoie

spring dock
#

et ils disent que c'est renvoyé en 2eme argument

#

pas premier

hybrid berry
#

ok merci

#

par contre j'ai jamais fait de json sa va être la galère loul

#

@spring dock j'ai sa mais je me doute que sa ne fonctionne pas

#

comment je suis censé récup juste le txt

spring dock
#

alors

#

a ta place je ferais ça je pense

junior echo
#

Au pire tu peux faire une fonction

hybrid berry
#

oué car la c'est la galère

spring dock
#
local config = json.parse( fs.readFileSync( "./config.json" ) )
hybrid berry
#

sauf qu'il me retourne sa

junior echo
#

PrintTable

#

Si ca existe sue

hybrid berry
#

non

#

sa existe pas

spring dock
#

printtable c'est gmod bg

junior echo
#

Ah merde

spring dock
#

essaye de juste print le fs.readfilesync pour voir

junior echo
#

C'est normal que ca lui retourne une table parce que les arguments sont entretenues dans une table, non ?

hybrid berry
#

sa

spring dock
#

il sort d'où ton 101

hybrid berry
#

idk

spring dock
#

C'est normal que ca lui retourne une table parce que les arguments sont entretenues dans une table, non ?
euh bah oui

#

print config.token

hybrid berry
#

❤️

#

mais t'es trop fort woula

#

mais j'aimerais print table c'est possible ?

spring dock
#

comment ça?

hybrid berry
#

ah nan j'ai trouvé

spring dock
#

genre comme le printtable de gmod?

#

ah ok

hybrid berry
#

nan

#

en gros de transformer le json en table lua

spring dock
#

bah ta variable config = une table lua la

#

le json.parse() transforme ton json en table lua

hybrid berry
#

ah okkkkk

#

mais pouquoi je peux pas faire print(config) alors ?

spring dock
#

bah print(config) te print ta table

hybrid berry
#

non

spring dock
#

bah si

#

c'est ta table ça

hybrid berry
#

ah oui

spring dock
hybrid berry
#

et comment je suis censé lire sa mdr

junior echo
#

Avec tes yeux le plus souvent

spring dock
#

tu peux boucler sur ta table et print( k .."=" ..v .."\n" ) par exemple

#

donc du ocup

hybrid berry
#

ah ok mais c'est pas très pratique pour débug

#

😦

spring dock
#
for k, v in pairs( config ) do
  print( k .."=" ..v .."\n" )
end
hybrid berry
#

oui mais je peux quamd même la manier en utilisant matable.token par ex ?

junior echo
#

Oui

spring dock
#

ah ok mais c'est pas très pratique pour débug
oui mais bon au pire tu te fait une fonction a laquelle tu met un paramètre tbl et tu execute ce code, comme ça quand tu fait du debug tu call juste ta fonction avec ta table en param

oui mais je peux quamd même la manier en utilisant matable.token par ex ?
oui oui comme je t'ai montré plus haut

junior echo
#

Mais si tu veux débug tu peux/dois faire une boucle

hybrid berry
#

ouais pas très pratique

#

menfin bon

#

on va faire avec

junior echo
#

Céri1céJS

hybrid berry
#

et alors la je sens que je vais suer

#

faire un handler mdr

spring dock
#

prettyPrint.dump(value, recurse, nocolor)
ta l'air d'avoir cette fonction avec luvit sinon

#

pour print une table

hybrid berry
#

non

#

sa fonctionne avec prettyPrint.prettyPrint(Config)

#

par contre

junior echo
#

Whut il a une sous table qui a le même prénom que la table main

spring dock
#

ah bah ok x)

hybrid berry
#

quelqun a la liste de tout les \ dispo

#

comme \n par ex

junior echo
#

Je dois l'avoir sous la mains

#
Escape Sequence     Character Represented by Sequence
\0     An ASCII NUL (X'00') character
\'     A single quote (') character
\"     A double quote (") character
\b     A backspace character
\n     A newline (linefeed) character
\r     A carriage return character
\t     A tab character
\Z     ASCII 26 (Control+Z); see note following the table
\\     A backslash (\) character
\%     A % character; see note following the table
\_     A _ character; see note following the table
#

@hybrid berry

hybrid berry
#

ah thx

#

et comlment je peux recup mon id de cette faco ?

#

ah c bon mon array était mauvaise

keen narwhal
#

Faire un giveaways en js c'est trop compliquer avec le npm. ça dit qui n'y à pas de participant xD

frosty idol
#

Bonsoir,

Quelqu'un peut me dire comment je peux faire pour afficher l'utilisateur qui a invité l'utilisateur qui a rejoins dans le setFooter ?

Merci 🙂

#
bot.on("guildMemberAdd", member => {
    console.log("Bienvenue Chargé ✅")
    bot.channels.cache.get('751760060086091816').send(welcomembed);
    const welcomembed = new Discord.MessageEmbed()
        .setColor('#0099cc')
        .addField('Bienvenue ${member}', ' sur **OneLife RôlePlay**', true)
        .setTimestamp()
        .setFooter('OneLife ©', 'https://imgur.com/bopaS8g.png');
    message.channel.send(welcomembed);
    member.roles.add('751760059805204528');
});
#

Au passage, le code que j'ai mis ne fonctionne pas :/

oak turret
#

${member}

#

faut des `

frosty idol
#

Ah oui

oak turret
#

pas des '

frosty idol
#

Effectivement

#

Et pour l'utilisateur qui a invité je fais comment ? 🙂

oak turret
#

c'est pas dans cet event là il me semble

#

je sais plus lequel c'est, cherche un peu

frosty idol
#

Si je demande ici c'est que je ne trouve pas^^

dire latch
#

@frosty idol Je t'avais déjà fais le code 🤦‍♀️

runic bane
#

Salut

#

Ouais si tu veux de l'aide @hybrid berry

#

Hésite pas

slate flame
#

yo, comment je peux faire pour avoir m'id d'unr personne qui reagit a une reaction

runic bane
#

Salut !
J'ai un problème, j'essaye de mettre en place un timer avec mon bot Discord (Discordia) sauf que ma technique ça bloque l'exécution des events.

En gros, lorsque que quelqu'un fait la commande !timer, ça lance un décompte de 30scd et je suis censé captés ce que les gens disent pendant ces 30 secondes, sauf que du coup l'event se lance seulement à la fin du timer, hors j'aimerais que ça se lance en même temps.

voici ma technique pour créer mon super timer

repeat
     time.actualTime = os.time();
     if (time.limitTime - time.limitTime == 20)then
          client:getUser(v):send('Il vous reste encore 20 secondes');
     elseif (time.limitTime - time.limitTime == 10) then
          client:getUser(v):send('Il vous reste encore 10 secondes');
     elseif (time.limitTime - time.limitTime == 5) then
          client:getUser(v):send('Il vous reste encore 5 secondes');
     end
until time.actualTime == time.limitTime

Voici l'event qui ne peu plus être lancés en même temps :

client:on('messageCreate', function(message)
  if(message.channel.type == 1) then
    if (not(member[message.author.id])) then
      member[message.author.id] = {
        active = 0
      };
    end
    print(message.content)
  end
end)
sand shore
#

@runic bane

#

J'ai pas d'idée mais tu peux demander sur le discord de Discord API

#

Ils sont assez réactifs

runic bane
#

Beh non mais c'du LUA

sand shore
#

Oui

#

Join le discord

runic bane
#

ah ouais

#

un peu flemme d'ajouter un discord

hazy mirage
#

Hey 👋
Je pense que c'est le repeat until qui correspond a un while true do end durant ton timer, ce qui peut-etre bloque tout ton bot et ta boucle prend toutes les ressources, je ne sais pas, mais essaye peut etre avec ça avec ça: https://github.com/EntranceJew/timer

spring dock
runic bane
#

Ouais on m'as dit qu'il y avais des lib directement ^^

#

bah vouala

hazy mirage
#

c'est quoi luvit

#

discordia est basé là dessus ?

#

je savais pas

slate flame
#

yo, comment je peux faire pour avoir m'id d'unr personne qui reagit a une reaction

frosty idol
#

Bonjour,
J'ai un bot qui est sur un hébergeur nodejs, il faut que j'installe le module 'moment' mais premièrement l'hébergeur fait en sorte qu'on ne peut pas écrire de commande dans la console et deuxièmement quand je glisse mon module (dossier) moment dans le node_modules et que je modif le package-lock et que je redémarre ça supprime direct ce que j'ai ajouté
Donc je n'arrive pas à installer les modules
Comment je peux faire ?

west plover
#

et en modifiant juste le package.json?

frosty idol
#

J'ai ajouté dans le package-lock mais tout ce que j'ajoute (mon dossier moment dans node modules et le package lock) se delete tout seul quand je reboot

dire latch
#

Tu as quoi dans les paramètres avancés ?

west plover
#

justement, mets le dans le package.json pas package-lock.json

frosty idol
#

Problème réglé

#

Cependant, je n'arrive pas à changer la font de mon canvas

#

ctx.font = '60px Impact';

#

ça ne veut pas changer même si je change la font et je n'ai aucune erreur

keen narwhal
#

Bonjours j'ai un petit problème au niveau de mon bot discord il n'arrive plus a se mettre en ligne

odd ether
#

Erreur ?

keen narwhal
#

a j'ai aussi sa

index.js : Le terme «index.js» n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou programme
exécutable. Vérifiez l'orthographe du nom, ou si un chemin d'accès existe, vérifiez que le chemin d'accès est correct et
réessayez.
Au caractère Ligne:1 : 1

  • index.js
  •   + CategoryInfo          : ObjectNotFound: (index.js:String) [], CommandNotFoundException
odd ether
#

fait npm init et rempli tout, ta pas le packaje.json

keen narwhal
#

ok ok

#

merci

#

@odd ether j'ai recommencer un bot de a a z et quand je veux mettre npm init sa me mets sa
PS C:\Users\Corentin\Desktop\discord bot> npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See npm help init for definitive documentation on these fields
and exactly what they do.

Use npm install <pkg> afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (discord- bot)

odd ether
#

tu mets le nom de ton bot regarde 'package name: (discord- bot)'

keen narwhal
#

ok merci

keen narwhal
#

Bonjour j'ai tjr le problème avec mon bot qui n'arrive pas a se mettre en ligne es que on pourrais m'aider je suis voc https://discord.gg/vdABQb

slim anvil
#

coco

#

essaye de npm init

#

et ensuite npm i

#

enfin tu npmi ce dont tu as besoin ensuite

#

puis tu run

keen narwhal
#

j'ai fais tous se que on m'a dis mais il ne se mets tjr pas en ligne

dire latch
#

@keen narwhal Tu as réussis depuis ?

keen narwhal
#

oui c'est mon code qui fessais beuger mon bot

#

j'ai du tout remettre a 0

dire latch
#

Ok 🙂

keen narwhal
#

Hello ! J'ai un petit soucis au niveau de la création d'un système de suggestions, voici le code pour le moment:

    if (message.channel.id == "755445445450399885") {

        var ideasUniserv = new Discord.RichEmbed()
    
        .setAuthor("📧 ● Nouvelle suggestion !")
        .setColor("#7657CD")
        .setDescription("test")
        .setTimestamp()
        .setFooter(`🤖 ● private`)

        message.channel.send(ideasUniserv)

    }
``` En gros, à chaque message dans le `channel`, l'embed est spam 😒 Une idée ?
#

Problème réglé j'ai rajouté un simple if (!message.content) return

slate flame
#

Discord.js

#

Question comment je peux faire pour get si une personne me tag ?

humble storm
#

Et tu vérifies si t'y es

cyan iron
#

Salut à tous, j'aurais une question même si je pense déjà avoir la réponse.

Je tente quand même, est-il possible de vérifier si un lien d'invitation discord est invalide oui ou non via un bot ?

Si oui, comment faire ?

Merci par avance
Merci de me mentionner

slim anvil
#

@cyan iron avec le bot je sais pas, mais sinon tu peux juste fetch la lien d'invitation et voir si il te renvoie une erreur ou non je suppose

cyan iron
#

Oui Merci j'ai eu une reponse et effectivement il suffit de faire un client.fetchinvites tout en try catch

keen narwhal
#

Bonjour,

J'aimerais savoif si c'est possible de créer facilement un bot Discord pour nous même par exemple si j'ai un serveur gmod ou fivem que je fasse une commande et hop on peux redémarrer le serveur.

Tout sa avec une clé api qu'on pew généré par exempld sur le panel pterodactyl.

hard iris
#

Oui

#

Avec l'api si il te laisse l'option de redémarrer tu peux

keen narwhal
#

maiq juqtement je cherche a savoir comment code ce bot 😀

#

@hard iris

hard iris
#

Ben tu cherches sur l'api, et tu l'integres au bot goodenough

keen narwhal
#

nanmaiq oui sa je sais

#

mais pour codé le bot

#

en lui même

hard iris
#

Et ben tu sais faire un bot discord déjà ?

keen narwhal
#

je sais pas codé en js

#

c'est pour sa que je demande

hard iris
timid loom
#

@keen narwhal si tu sais exploiter une api tu sais faire un bot

keen narwhal
#

je sais pas exploite en api

#

j'ai juste dit que sur le panel que j ai on peuw créer une api

timid loom
#

y a des bibliothèques dans différents langages pour faciliter tout ça autrement

keen narwhal
#

donc la liée avec un bot

#

et moi j'm y connais pour créer le bot en lui mm donc l allumé mais sinon je sais pas codd

hard iris
#

Tu t'es totalement foiré là essaye => #general

keen narwhal
#

mdr k

keen narwhal
#

nan tkt j’avais mis un msg

full scaffold
#

En bas ça représente la miniature de la vidéo

queen ocean
#

La longueur tu peux mettre dans le footer je pense, c’est pas une info hyper utile donc comme ça tu l’as met mais pas trop visible

full scaffold
#

ok

queen ocean
#

Et on sais qu’il s’agit d’une vidéo donc tu peux juste dire « Titre: » et « Lien: » pas besoin de préciser « de la vidéo » 👀

full scaffold
#

dacc'

keen narwhal
#

Moi je trouve sa bien pour moi faut pas rajouter trop d'informations

queen ocean
#

Tu dois imaginer ça avec le titre et le lien

full scaffold
#

Possible

#

Peut-être mettre en gras le Titre et le Lien ? genre Titre : {title}

timid loom
#

Perso j'aurais utilisé les champs des embeds pour faire ça, c'est une question de choix de mise en forme après

rare gulch
full scaffold
#

Je préfère comme ça @timid loom perso

#

Et mes collègues ont aimés quand ils ont vus l'embed donc bon

#

Sinon, je cherche un moyen de séparer mon bot discord en plusieurs fichiers js, comment faut faire ?

timid loom
#

Tu veux séparer quoi? Les commandes, les events?

#

Globalement c'est pareil hein

full scaffold
#

Bah genre un fichier pour logs les messages, un fichier pour les commandes

timid loom
#

Du coup tu dois faire un command handler

#

de là je pense que tu comprendra comment faire un "event handler" si on veut

#

ie mettre tes events dans un dossier events

hybrid berry
#

@full scaffold Tu précise deja tout dans ton Title

#

donc met Juste en gras ton titre

#

et le lien en normal

junior echo
#

Salut,
Je viens vers vous car je n'arrive pas à résolver cette erreur :

RangeError [BITFIELD_INVALID]: Invalid bitfield flag or number.
    at Function.resolve (c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\node_modules\discord.js\src\util\BitField.js:150:11)
    at c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\node_modules\discord.js\src\util\BitField.js:148:54
    at Array.map (<anonymous>)
    at Function.resolve (c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\node_modules\discord.js\src\util\BitField.js:148:40)
    at Function.resolve (c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\node_modules\discord.js\src\structures\PermissionOverwrites.js:184:25)
    at c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\node_modules\discord.js\src\managers\GuildChannelManager.js:109:81
    at Array.map (<anonymous>)
    at GuildChannelManager.create (c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\node_modules\discord.js\src\managers\GuildChannelManager.js:109:51)
    at Object.execute (c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\event\create_ticket.js:5:32)
    at Client.<anonymous> (c:\Users\lucgt\Documents\Discord_Bot\vullrell_bot\index.js:51:46) {stack: 'RangeError [BITFIELD_INVALID]: Invalid bitfie…ents\Discord_Bot\vullrell_bot\index.js:51:46)', message: 'Invalid bitfield flag or number.', Symbol(code): 'BITFIELD_INVALID'}

Code :

burnt perch
#

oulllaaaa opti moi ça la

#

fait un tableau avec tout ton bordel dedans et parcour le

#

car la ça fait beacoup normalement tu peux

slim anvil
#

tu peux juste faire un allow: ['perm 1', 'perm2'] etc

#

pour le moment

hazy mirage
#

Bitfield ...
c'est qu'il y a une permission qui n'existe pas

#

et du coup discord aime pas

boreal edge
#

Hello,
Est ce que vous savez comment je peux faire pour supprimer une réaction sur un message svp ? (et ne pas directement supprimé toute les personnes qui ont réagis pour pouvoir la laisser)

Exemple :
X réagit avec 🍉 , Y avec 🍉 aussi, mais ensuite, le bot décide de supprimer la réaction de Y, mais il faut que X réagisse toujours avec

Merci 😉

hazy mirage
#

message.reactions.resolve("emoji").users.remove("userid")

boreal edge
#

Mercii !

#

Petite question, t'avais trouver comment ? @hazy mirage

hazy mirage
#

discord.js documentation

#

message.reactions

#

ensuite method resolve qui te renvoie un MessageReactionsManager il me semble

#

Et ensuite tu as le users et remove

boreal edge
#

Ok ça marche 😉

#

Merci 😉

hazy mirage
#

👌

plain crystal
#

Yo, c'est possible de faire en sorte qu'un bot créer une invitation et l'envoie?

junior echo
#

@hazy mirage @burnt perch @slim anvil C'est réglé et plus opti

hazy mirage
#

le triple ping

junior echo
#

chut

hazy mirage
plain crystal
#

car c'était pour réinviter la personne une fois son bannissement terminé :c

dapper coral
#

Bonjour savez vous comment récuperer dernier message contenant un argument svp ?

#

message.content.startsWith("sm!manga").first();

#

pour vous faire une idée je veut faire sa, sauf que bien évidement c'est n'importe quoi x)

#

(n'hesitez pas à me ping)

slim anvil
#

Tu cherches à faire quoi exactement je comprend pas trop, montre un exemple de phrase et ce que tu veux récupérer dedans

glass gate
#

@dapper coral
tu peux faire comme ça :

let args = message.content.split(' ');
// args[0] = sm!manga
// args[1] = argument 1

Mais ça c'est si ton argument a pas d'espaces

#

@slim anvil si j'ai bien compris, tu fais
sm!manga machin
et il veut récup machin

slim anvil
#

Ah oki, déjà le startsWith n'est pas du tout bon car ça te renvoie true ou false, donc tu en auras pas l'utilité ici, ou alors il doit etre placé avant ce bout de code si tu veux vérifier la commande
Sinon ensuite ouais ce que dis max est juste, mais si tu veux tjrs le dernier élément tu rajoutes juste un .pop() après le .split(' ')

dapper coral
#

Bah enfaite c'est compliquer à expliquer mais j'ai déja fait sa est cela me convient sauf que je veut recuperer uniquement le dernier message "args"

#

par exemple:

#

User 1: dit sm!manga

#

User 2: dit sm!manga

#

le args doit etre le dernier, donc le message de user 2

#

j'explique certainement très mal mais en gros c'est sa 🤔

slim anvil
#

Je comprend pas trop je t'avoue tu me parles de 2 users différent

#

donc de 2 messages différent

dapper coral
#

car la actuellement mon soucis c'est que tout les message contenant "sm!manga" sont compter "en meme temps" est je veut que uniquement le dernier soit "compter"

slim anvil
#

genre si 3 personnes envoie la commande a 2s d'interval

#

de ne prendre que le dernier ?

#

pour éviter de spam ?

dapper coral
#

non juste prendre le dernier tout cours, car sa crée un "conflit", enfaite j'ai fait un système de lecture de manga depuis discord est quand tu écrit la commande deux fois pour deux manga différent sa t'envoie les image des deux manga en meme temps car args prend les deux en compte, je veut juste prendre le dernier pour éviter sa

slim anvil
#

tu peux faire un exemple concret que tu screen car honnêtement j'ai du mal a comprendre ou tu veux en venir

dapper coral
#

ouai je suis désoler 😅

#

je vais essayer de faire sa

#

comme il y'a deux fois la commande, lors de la deuxième utilisation de la commande pour un autres manga la première commande est toujours reconnue

#

est mon but est de prendre en compte que la dernière commande pour éviter ce conflit d'image (car sa mélange des manga qui n'ont rien à voir ducoup)

slim anvil
#

Oui ok la j'ai compris 😛

#

montre comment tu fais meme pour récupérer ta commande

dapper coral
#

Tout ce passe ici ducoup pour récuperer la commande

slim anvil
#

oki, si tu fais un log de args tu peux me montrer ce que tu reçois please

dapper coral
#

je te fait sa

slim anvil
#

thanks

dapper coral
slim anvil
#

Ok ensuite avec ça tu fais quoi exactement

#

tu fais une requete, je peux voir pls ?

dapper coral
#

Je fait sa

slim anvil
#

Je suis là dans 5 min et on reprend

dapper coral
#

sa marche merci 👌

slim anvil
#

re, tu peux faire un screen global du truc et pas morceau par morceau du coup pls que je vois le truc dans sa globalité

#

en mp si tu veux éviter de montrer le code pas de soucis

dapper coral
#

je t'envoie sa en mp 😉

slim anvil
#

bon meme si t'as déjà montré le plus important qui est la creation de l'image kappa

dapper coral
#

c'est vrai kappo

cinder tartan
#

S'il vous plait pourquoi mes commandes ne sont pas run ?

#
import discord
from discord.ext import commands
import random


bot = commands.Bot(command_prefix = "n!",description = "Un bot test")

#Events
@bot.event
async def on_ready():
    print("Le bot est pret !")
    print(f"Je m'appelle {bot.user.name}")


@bot.event
async def on_message(message):
    detecter = ["salut","salut!","bonjour","bonjour!","hey","hello"]
    msg = message.content.lower()
    emoji = [":wave:",":handshake:",":raised_back_of_hand:"]
    for mot in detecter:
        if mot in msg:
            await message.add_reaction(random.choice(emoji))
            break

@bot.command()
async def print_hey(ctx):
    print("hey")
full scaffold
#

Salut, je voudrais savoir comment accéder à la variable title comme dans le screen, mais quel chemin prendre ?

#

montruc.MessageEmbed.title ne fonctionnant pas

plain crystal
#

TON_EMBED.title

#

(essaye ça)

full scaffold
#

undefined

slim anvil
#

c’est ton montruc.title

#

Montre ce que tu log exactement

full scaffold
#
console.log(msg.message.embeds.title);```
#

C'est dans un messageReactionAdd aufait

oak turret
#

t’as un embed définit?

full scaffold
#

oui ça log bien js console.log(msg.message.embeds); avant

oak turret
#

ton log est entre []?

full scaffold
slim anvil
#

msg.message.embeds[0].title

#

embeds est un tableau

full scaffold
#

ok ok merci les mecs

oak turret
nova crater
#

est ce que quelqu'un peut m'aider dans la console de visual studio code ça me met ce chemin mais comment je le change

oak turret
#

cd tondossier

#

je crois

#

tu prends ton chemin

#

cd tonchemin

nova crater
oak turret
#

t’as fais quoi?

nova crater
#

je m'étais trompé c bon merci

oak turret
#

np

nova crater
#

pourquoi mon node index fonctionne pas ?

burnt perch
#

Bah envoie l’erreur

#

@nova crater

nova crater
#

y'a pas d'erreur ça fait juste r

#

c bon j'ai trouver j'ai juste relancer ma console je sais pas trop c'était quoi le problème

burnt perch
#

Ok ok

nova crater
#

j'ai un problème, je n'ai mis que un titre à mon embed mais il me met un tas de truc (les trucs que j'ai normalement supprimé)

oak turret
#

code ?

#

screeb

nova crater
#

?

boreal edge
#

Envoie le code ou un screen