#javascript-typescript

1 messages · Page 72 of 1

keen narwhal
#

aprés le then je fait un message.channel.send

#

Je pense que je comprend pas du tout

timid loom
#

nan sur ton msg.delete()

#

en gros msg.delete() ça renvoie une promise

#

donc tu peux .then() dessus pour exécuter un code une fois qu'il a fini

lone flax
#

L'embed envoyé après les 5 minutes c'est le même ou totalement rien à voir ?

timid loom
lone flax
#

Il y a quoi qui change ?

plain crystal
#

on est d'accord qu'on peut que sur les promises en js on peut pas chain les .catch() mais que les .then() non?

keen narwhal
timid loom
plain crystal
#

ça peut servir dans certains cas tu penses?

keen narwhal
#

@timid loom donc ici le .then ( jsuis désoler )

#

Pourtant ici y a une parti code 👀

plain crystal
#

oui tu peux je pense

timid loom
lone flax
plain crystal
keen narwhal
#

=/

timid loom
keen narwhal
timid loom
keen narwhal
#

Mais comment je mis prend ?

keen narwhal
timid loom
plain crystal
timid loom
lone flax
#

Pour insérer une ligne de code sur discord tu peux faire comme le bot a montré

keen narwhal
#

Pour envoyer un message avec un code il vous suffit d'entourer votre message de ceci : ```. Ainsi, pour poster votre code dans un message, vous devez faire comme ceci :

```langage
Votre code
```
Et par exemple pour un code en lua :
```lua
print("hello")
```

Le résultat sera le suivant :
Votre code
Et par exemple pour un code en lua :

print("hello")```
timid loom
#

tu devrais sauter des lignes par contre ton code va vite devenir illisible sinon

keen narwhal
#

lang (php par exemple)
Ton code 

je fais sa ?

timid loom
#

donc comme dans le message que le bot a envoyé

keen narwhal
#

ok , je m'en doutait mais j'étais pas sur

Merci ^^

#

@timid loom jsuis pas si sur que sa fonctionne comme sa XD

#

les truc rouge c'est se que j'ai rajouté

timid loom
#

t'as pas compris comment ça fonctionne les .then j'ai l'impression

keen narwhal
#

X)

timid loom
lone flax
#

Je suis sur tel mais en gros

message.channel.send(embed)
.then(() => {
  // code a exec une fois que ton message a été envoyé
})
#

Donc tu mets juste ton autre embed dans le then

timid loom
#

là c'est sur un message.delete() mais effectivement ça aura la même forme

lone flax
#

Yep

keen narwhal
#

okay donc je revien

#

merci

plain crystal
#

et Taink si une promesse est fulfilled elle ne peut être rejeté c'est bien ça?

timid loom
#

normalement oui

plain crystal
#

k

timid loom
#

si il a réussi (et que t'atteris dans le .then) c'est que c'est bon

keen narwhal
#
message.channel.send()
.then(() => {
  message.channel.send('<@&812797512406007828>', {
      embed: {
        color: '#FE8800',
        title: 'Statut serveur !',
        description: 'Bonjour à tous, Vous avez reçu une mention car le serveur gmod AnonymasRP et ***en cours de redémarrage***.\n\n Merci de votre compréhension',
        author: { name: 'Anonymas\'s Bot Annonces Gmod' },
        timestamp: new Date(),
        footer: { text: 'Système de mention By LulThy#0038' }
      }
    })
})```
#

c'est moche

timid loom
keen narwhal
#

x)

timid loom
#

c'est ok en vrai

keen narwhal
#

hun ?

#

jure ?

#

x)

timid loom
#

tu peux faire via un async

#

si t'aime pas

#

et tu mets await devant ton message.delete

#

genre attends

plain crystal
#

pourquoi t'as pas mis d'args? (message.channel.send())

keen narwhal
plain crystal
#

car dans ce cas autant ne pas faire de .then vu qu'aucun message n'est envoyé à la fin ça devrait même retourner une erreur je pense

keen narwhal
plain crystal
lone flax
#

@plain crystal il est fini l'ui du système ? kapp

plain crystal
#

non je fais les promesses en lua & j'arrive

lone flax
#

Ok mdr

plain crystal
#

ça fonctionne du futur en +

lone flax
#

Oula tu fais ça avec des timer

plain crystal
#

c'pour test ça

lone flax
#

Viens dans lua mdr

slim anvil
#

bizarre lui, c'est normal de timer pour tester sa promise 🤔

#

voir si ca attend bien le x avant de resolve

lone flax
#

C'est pas ça le problème

keen narwhal
#

taink, tu me fait peur x)

slim anvil
#

taink il est mort sur son clavier

keen narwhal
#

déso de couper la conversation comme sa mais sa marche tjr pas :/

#

XD

keen narwhal
timid loom
#

En vrai vu que execute est une fonction async tu peux faire un truc de cette forme aussi.
Alors copie colle pas bêtement je vais expliquer le contenu.

// ...
async execute(client, message, args) {
  const msgInitial = await message.channel.send('Statut du serveur');
  // tu peux juste mettre un timeout dans les paramètres de ta fonction ici plutôt que passer via un setTimeout
  // https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=delete
  await msgInitial.delete({ timeout: 5000 }) // delete après 5s
  message.channel.send('Deuxième message un peu différent');
}
// ...

Dans une fonction async tu peux mettre le mot-clé await devant les fonctions qui retournent une Promise pour ne pas avoir besoin de faire un .then()
Ici du coup par exemple msgInitial contient le message du statut, parce que tu await le résultat du send pour le mettre dedans après.
Ensuite on await sur msgInitial.delete() pour être sûr que le message a été delete avant de continuer
Enfin on vient envoyer le deuxième message, pas besoin d'await dessus puisque c'est le dernier truc qu'on fait

slim anvil
#

cs c'est le jeu auquel tu joues

keen narwhal
#

non , le langage c#

#

sur discord en fais cs

slim anvil
#

ah c'est cs en markdown?

keen narwhal
timid loom
#

essaie csharp
et rajoute des sauts de ligne

slim anvil
#

ah oui ca passe

plain crystal
plain crystal
#

oui voilà

#

merci

#

après tes backticks

keen narwhal
#

@timid loom,merci taink, je vais aussi lire l'article que tu ma donée

timid loom
#

yep

#

en gros l'article que je t'ai passé passe par les .then

keen narwhal
#

yes je vais lire

timid loom
keen narwhal
#

mrc

lone flax
#

@plain crystal ça s'appelle comment ça selon toi : & ? kappa

slim anvil
#

é kappa

timid loom
#

esperluette

slim anvil
#

nnnn

timid loom
#

alé a+

slim anvil
#

fallait po dire

lone flax
#

Esperluette

#

Mdrrr

plain crystal
#

bah je sais ça

slim anvil
#

je voulais voir si il trouvait

#

merde il savait

lone flax
#

Quel nom horrible

plain crystal
#

j'écrivais un rapport à zaros

#

je peut pas être partout non plus

timid loom
#

ampersand en anglais d'ailleurs

slim anvil
#

~ tild c'est pas mieux je trouve

timid loom
#

toujours aussi horrible

slim anvil
#

on dirait qu'il manque la fin du mot

timid loom
#

y a un e à la fin de tilde

keen narwhal
#

sa me fais sa :/

slim anvil
plain crystal
#

mais ça marche t'as vu

slim anvil
#

bah après Iteane je connais pas le c# mais faut juste écrire du code c# quoi

#
toto£
#

la j'écris en js mais bon voilà quoi

timid loom
slim anvil
#

il est pas magicien kappa

keen narwhal
#

non mais le cs s'affiche pas normalement

slim anvil
#

merde j'ai oublié le lien @timid loom kappa

timid loom
slim anvil
#

dans le breadcrumb

keen narwhal
lone flax
timid loom
#

\n ou en passant par des backticks (`)

timid loom
keen narwhal
#

Mais dans un embed

#

😅

timid loom
#

ouais bah tu mets ça dans ta description

plain crystal
#
.setDescription(`
Ceci
Est
Un code :

\`\`\`cs
Mon
code
\`\`\`
`)
#

la même chose

timid loom
#

voilà

keen narwhal
#

ok

timid loom
#

ça fonctionne pareil

#

réfléchis à ce que tu c/c

keen narwhal
#

sa marche

lone flax
#

Niquel

keen narwhal
#

a

robust stirrup
#

Bonsoir Je voulais savoir qu’est ce qu’il fallais mettre pour que quand le bot crée un channel, grâce à une fonction, je veux qu’il y aient que ceux qui ont la perm admin qui peuvent voir le salon

oak turret
#

bah

#
message.guild.channels.create("nom", {
  type: "text",
  parent: "id_categorie", 
  permissionsOverwrites: [
      {
        id: "id",
        allow: [],
        deny: []
      }
  ]
});
dim stirrup
#

Bonjour desoler de vous deranger qui si cnnait en discord.js

keen narwhal
#

cc , j'ai une question , je veux faire en sorte que si la commande

Exemple :

cm

n'a pas été faite et bien l'on peut pas faire une autre commande du type :

cm2

#

(pour un bot)

half osprey
keen narwhal
#

en gros

#

si je fais pascm la commande cm2 marche pas

timid loom
#

tu peux juste stocker un booléen pour vérifier ça

#

dans ta commande ou sur ton client

half osprey
#

Personnellement, je ferais comme ça :

Quand on fait cm, on stock l'information qu'elle a été faite par telle personne. Et quand on fait cm2 on check si la personne la déjà faite (là où on a stocké l'information).

Je ne sais pas si c'est la meilleure solution et si c'est la plus optimisée, mais j'aurais fait comme ça.

lone flax
#
// commande 1
bot.action().then((member) => {
   member.canUseCmd = true
})

// commande 2
bot.action2().then((member) => {
   if (!member.canUseCmd) return;
   
   // ta deuxieme commande
})
#

Le souci c'est que c'est save en cache donc si tu restart ton bot je crains que le système ne marche plus

#

Il faut voir si tu veux intégrer une permanence ou pas

#

Si oui tu fais ça via des fichiers data json

#

Ou via database

dim stirrup
#

@half osprey Bonjour, j'aimerais cree des sous dossier pour mes commande car je me perd fortement. Mais je ne sais pas comment proceder. Voici le code si une personne peux maider ces supper cool

#
fs.readdir('./commands/', (err, files) => {
    if (err) return console.error(err)
    files.forEach(file => {
        if (!file.endsWith('.js')) return
        var props = require(`./commands/${file}`)
        var commandName = file.split('.')[0]
        console.log(`${file} Ok !`);
        bot.commands.set(commandName, props)
    })
})

lone flax
#

Bah le code ne marche pas @dim stirrup ?

dim stirrup
#

@lone flax si le code marche mais pas si je cree d'autre dossier. ce code marche seulement si je mes mes commande dans le dossir commands

#

mais dans le dossir commande je voudrais ajouuter des sous dossier (exemble generale, administration, musique...)

lone flax
#

Ahhh

#

T'es chiant un peu kappa

#

Il faudrait faire un loader recursive mais malheureusement je suis sur téléphone je peux pas t'aider là

#

En gros l'idée c'est de lister tous les fichiers, les load, puis lister tous les dossiers, et refaire ce même processus mais en partant cette fois-ci de ce dossier. Ça va faire une boucle jusqu'à quand il n'y ai plus de dossiers à load.

dim stirrup
#

ah

lone flax
#
func(rootFolder) {
   Boucle sur tous les fichiers
      load(rootFolder + "/" + loopFile)
   Fin de boucle

   Boucle sur tous les dossiers
      func(rootFolder + loopFolder);
   Fin de boucle
}
#

Voici un schéma un peu nul de comment ça marcherait

robust stirrup
#

bjr qqn est dispo apl

mystic bison
#

Bonjour est ce que quelqu’un a un code en js pour ban quelqu’un en discord.js avec raison du ban svp ?

mystic bison
boreal edge
mystic bison
#

je sais mais je comprends pas

keen narwhal
#

salut !

Comment je fais pour faire en sorte que lorsque une personne join et bien le bot lui give un role ? 👀

timid loom
lone flax
#

sur la dernière version de discordjs

keen narwhal
#

ok , mais c'est quoi la candition pour quand le membre join un vocal au pif ?

lone flax
#

quand le joueur rejoint, tu as un event qui est genre guildMemberAdd je pense

#

Ah un vocal

#

Attends

timid loom
#

tu vérifie que le channel du nouveau voicestate ne soit pas null et que l'ancien le soit

lone flax
#

@dim stirrup tu as réussi ?

keen narwhal
#

et comment je cette une image en plein description ?

keen narwhal
#

sa me fait rien *

timid loom
#

il faut mettre l'id entre guillemets
et il faut définir member au cas où (donc message.member)

keen narwhal
#

merci , sa marche ^^

keen narwhal
#

comment je fais pour modifier ma variable dans une candition 😅

Genre j'ai fait une variable , mais j'a oublié comment je dois faire pour la modifier au fur et à mesure du code

oak turret
#
let verif = false;

if ( ta condition ) {
  verif = true;
}

si c'est ce que tu demandes

mystic bison
#

quelqu'un pourrai me transphormé ça en unban svp ?

#
    if(message.content.startsWith("!ban")) {
        let args = message.content.trim().split(/ +/g);

        message.delete()
        if (!message.member.hasPermission('BAN_MEMBERS')) return;
        let utilisateur = message.mentions.members.first()
        raison = args.slice(2).join(" ");
        if (!utilisateur) return message.channel.send('**Vous devez mentionner un utilisateur.**').then(m => m.delete({timeout: 5000}));
        if (!raison) return message.channel.send('**Vous devez indiquer une raison du ban.**').then(m => m.delete({timeout: 5000}));
        if (utilisateur) {
        const member = message.guild.member(utilisateur);
        if (member) {
        const banSucces = new Discord.MessageEmbed()
        member.ban({
        reason: raison,})
        }}}```
oak turret
#

t’aider oui

#

te le faire non

mystic bison
#

ok

#

je suppose que le .set description je l'enlève

mystic bison
mystic bison
oak turret
#

tu connais pas le js j’imagine ?

mystic bison
oak turret
#

donc chaque chose en son temps

#

t’attaques pas à des choses que tu comprends pas

#

surtout que la commande ban j’imagine qu’elle vient pas de toi

mystic bison
#

si

#

je l'ai fais avec un mec en vocal qui ma tout expliquer

mystic bison
oak turret
mystic bison
#
if(message.content.startsWith("!unban")) {
            let args = message.content.trim().split(/ +/g);
            if (!message.member.hasPermission('BAN_MEMBERS'))
            let utilisateur = message.mentions.members.first()
            if (utilisateur) {
            const member = message.guild.member(utilisateur);
            if (member) {
            message.guild.members.unban(utilisateur.id);
        }}} 

mystic bison
slim anvil
#

et pourtant c'est quasi ça

#

ils viennent juste calculer le + haut taux de couleurs

#

t'as des libs si tu veux pour ça pour éviter de t'emmerder

dim stirrup
#

bonjour vous ssavez pk je ne peux pas rtelecherger enmap

timid loom
#

pas sûr que ce soit bcp + opti

#

à comparer

keen narwhal
#

cc , j'ai une question

si une personne à un grade en particulier , le bot renvoie un méssage pour dire que l'user en question à eu ce role , comment je mis prend ?

boreal edge
dim stirrup
#

bonjour desoler de vous deranger j'ai fais une commande de ping et en gros j'ai 2 embed le premier qui me met un chargelent et jaimerais que le deuxieme ce lance 5 seconde apres comment je peux faire

boreal edge
#
channel.send(embed).then( () => {

    setTimeout(function() {

        channel.send(second_embed)
    }, 5000)
})
oak turret
#

autant modifier le premier embed 🤔

#

donc c’est mieux puis t’as juste à mettre une fonction dans le .then et à faire tafonction.edit(second_embed) en reprenant l’exemple de Hugo

boreal edge
oak turret
#

oui oui je sais

#

je lui dis juste que modifier le premier est mieux mais comme il veut

queen nebula
#

Yop, quelqu'un sais comment récupérer l'ID du Server Discord depuis l’événement ready ?

boreal edge
#

Dans client.guilds tu devrais trouver ce que tu veux

queen nebula
#

@boreal edge J'ai test pas mal de chose avec client.guilds mais nada je vais recheck

boreal edge
#

Essayes ça peut être

#
client.on('ready', () => {
    
    console.log(client.guilds.cache);
})
#

Tu devrais déjà tomber sur un résultat

queen nebula
#

Ouais c'est good

queen nebula
#

@boreal edge Désolé de te ping mais tu sais comment faire pour prendre juste 1 des 2 ?

lone flax
#

[0]

queen nebula
#

Ouais mais je veux que sa créer un truc spécifique pour l'un et l'autre

lone flax
#
var test = client.guilds.cache.map(guild => guild.id);

var first = test[0];
var second = test[1];
#

Tu veux en prendre un au hasard?

queen nebula
#

On ne peux pas automatisé sa en fonction du nombre de serveur que je mettrais le bot ?

lone flax
#

Bah tu boucles dessus

queen nebula
#

En gros si un bot rejoins un serv faut que sa le fasse auto

oak turret
#

tu veux faire quoi concrètement ?

queen nebula
#

Des fichiers de config personnel pour chaque serveur car comme les ID's des channels et des rôles sont pas les mêmes j'ai pas envie de créer 20 bot

oak turret
#

au pire tu utilises l'event guildCreate

#

et tu update un fichier config par ex

queen nebula
#

Tient je connaissais pas cette event x)

#

Sa m'aurais évité de galéré pour rien xD

oak turret
#

ah bah oui c'est sûr

queen nebula
#

@oak turret Thx xD

oak turret
#

à chaque fois que ton bot arrive sur un serveur tu pourras chopper toutes ses infos dont son id

#

avec plaisir ahah

queen nebula
#

Après je viens de commencé et je connais pas tous les events donc bon

oak turret
#

tqt on est là pour ça ^^

queen nebula
#

Mais je m'en sors pas mal pour un début xD

timid loom
queen nebula
#

Thx @timid loom

twin bane
#

Hey ! j'ai un probleme sur mon bot en section privée ! quand il faut interagir a un react en DM ! voici l'erreur
UnhandledPromiseRejectionWarning: DiscordAPIError: Cannot execute action on a DM channel

half osprey
#

Hey ! C'est quoi ton code ?

lone flax
twin bane
#

c'est bon j'ai trouvé ^^ enfait je voulais faire en sort de suprimer la reaction une fois cliqué mais en privé c'est impossible, sa viens de la ^^

urban stream
#

Hello, p'tit soucis avec mon code... j'ai implémenté GSAP dans mon projet afin d'y expérimenter un smooth scroll, sauf que désormais, lorsque que je "resize" ma fenêtre, ou que je change d'écran (et donc que je resize étant donné que mes 2 écrans ne sont pas tous deux de la même taille), ça me fait des gros espacements comme montré sur l'image ci-dessous...

#

Alors que c'est supposé ressembler à ça

#

et ça me le fait entre chaque section

#
import { gsap, TweenLite, TweenMax } from "gsap/all";

var html = document.documentElement;
var body = document.body;

var scroller = {
    target: document.querySelector("#body_app"),
    ease: 0.05,
    endY: 0,
    y: 0,
    resizeRequest: 0,
    scrollRequest: 0,
};

var requestId = null;

TweenLite.set(scroller.target, {
    rotation: 0.01,
    force3D: true
});

window.addEventListener("load", onLoad);

function onLoad() {
    updateScroller();
    window.focus();
    window.addEventListener("resize", onResize);
    document.addEventListener("scroll", onScroll);
}

function updateScroller() {

    var resized = scroller.resizeRequest > 0;

    if (resized) {
        var height = scroller.target.clientHeight;
        body.style.height = height + "px";
        scroller.resizeRequest = 0;
    }

    var scrollY = window.pageYOffset || html.scrollTop || body.scrollTop || 0;

    scroller.endY = scrollY;
    scroller.y += (scrollY - scroller.y) * scroller.ease;

    if (Math.abs(scrollY - scroller.y) < 0.05 || resized) {
        scroller.y = scrollY;
        scroller.scrollRequest = 0;
    }

    TweenLite.set(scroller.target, {
        y: -scroller.y
    });

    requestId = scroller.scrollRequest > 0 ? requestAnimationFrame(updateScroller) : null;
}

function onScroll() {
    scroller.scrollRequest++;
    if (!requestId) {
        requestId = requestAnimationFrame(updateScroller);
    }
}

function onResize() {
    scroller.resizeRequest++;
    if (!requestId) {
        requestId = requestAnimationFrame(updateScroller);
    }
}```
full scaffold
urban stream
full scaffold
#

ok

urban stream
#

Merci quand même pour ton aide

wild bramble
#

Bonjour je peux demander de l’aide Discord js ici ?

slim anvil
#

oui

wild bramble
#

Ok merci

wild bramble
#

Vous savez comment je peux récupérer le nombre de joueur sur mon serveur gmod et le mettre sur un embed ?

fierce vault
#

bonjour/bonsoir j'ai un problème avec mon program et que j'ai des erreurs d'on je n'arrive pas à resoudre si possible de me répondre le plus vite possible (Photo des problèmes si possible

fierce vault
#

pour les paranthèses ?

wild bramble
#
--ton code
} ```
fierce vault
#

ok merci

pseudo bolt
#

je regarde en même temp je suis en voc avec lui tk @wild bramble

wild bramble
#

Ok

#

et si je peux dire un dernier truc je ne crois pas que ton {user} va marcher car il faut que tu fasse avec ça `

fierce vault
#

ok je vais essayer merci pour ton aide

wild bramble
wild bramble
half osprey
wild bramble
#

@half osprey

half osprey
#

Tu as tout bien rempli ?

wild bramble
#

je peux t'envoyer mon code en mp ?

#

@half osprey

half osprey
#

Ou ici

wild bramble
#

Ok je l'envoie ici

#

Donc index.js : client.config = ```config;

var nb = 1000

const updateChannel = async () => {

const channel = client.channels.cache.get(config.playerCountChannelID);
if (!channel) throw new Error("La salon spécifié dans la configuration n'existe pas !");

const stats = await Gamedig.query({
    type: "garrysmod",
    host: config.playerCountServerIP,
    port: config.playerCountServerPort
});

if (stats.raw.numplayers != nb) {
    channel.setName(`Joueurs : ${stats.raw.numplayers}`);
}

}

const config = require("./config.json");
const Gamedig = require("gamedig"); ```

config.json: "playerCountChannelID": "829728369188798535", "playerCountServerIP": "54.36.127.158", "playerCountServerPort": "27041", @half osprey

#

J’avoue que je ne comprend pas

half osprey
#

Pourquoi tu const ta fonction ?

half osprey
#

Et pourquoi tu const config et Gamedig après ?

#

Tu as des erreurs nan ?

wild bramble
#

nn aucune erreur

half osprey
#

Et le reste ?

half osprey
wild bramble
#

c'est tous

wild bramble
half osprey
#

Et tu le mets dans une fonction que tu mets dans un Timeout (si tu veux que ça s'actualise)

wild bramble
#

On l'utilise comment ?

#

Et pourquoi il me mette que offline

half osprey
#

    setTimeout(() => {
                query({
      type: 'garrysmod',
      host: '',
      port: ''
    }).then((state) => {
                // ON

        }).catch((error) => {
//OFF
})

        statut();
    }, 10000);
}
statut();```
fierce vault
#

bonjour j'ai un nouveau problème avec mon program je n'es aucune erreur mais pourtant sa me met Process exited with code 1 sans aucun message fin mon bot ne peut pas se mettre en ligne suite à ce problem qui persiste

#

si possible de m'aider

#

pourtant tout es opérationnel au niveau de mon program je ne comprend pas si possible de me dire

slim anvil
#

L’erreur est indiqué dans le terminal juste au dessus

wild bramble
fierce vault
#

Non rien ne s'affiche

#

Maintenant dans la debug console sa me met Ne Rebugger available, can not send `variables'

#

Sans rien

slim anvil
fierce vault
#

Ces marquer C:\Program Files\nodejs\node.exe .\index.js
Uncaught ReferenceError: Client is not defined
No debugger available, can not send 'variables'
Process exited with code 1

#

mais avant cettais marquer Uncaught ReferenceError: Client is not defined
No debugger available, can not send 'variables'

#

tout cours

#

enfaite je veut activer mob bot mais sa veut pas

slim anvil
#

Donc c’est bien ce que je dis l’erreur est indiqué

#

Client is not defined

fierce vault
#

Oui mais je sais pas trop ces quoi...

slim anvil
#

Regarde tes events

#

Tu fais bot.on et parfois Client.on

#

remplace Client par bot

fierce vault
#

pour le bot.on('ready', function () {
console.log("im ready") je remplace bot.on par Client.on ?

fierce vault
#

Ces bon

#

J'ai compris merci

#

Merci sa marche

wild bramble
#

quelq'un peut m'aider ?

keen narwhal
#

quand on refuse de donner les informations nécessaire, c'est compliqué. kappo

wild bramble
keen narwhal
#

Vous avez vus que mon embed fonctionne ?

#

Je connait mon code ou vous le connaissez mieux que moi ?

#

ligne 13.

#

il me faut votre api.

#

pour que l'embed puise se modifier

wild bramble
keen narwhal
#

Ben oublier mon service alors 😉

wild bramble
wild bramble
keen narwhal
#

Tout à fait.

wild bramble
#

Donc si on me dit qu'il n'y a aucun risque vous pourrez le faire 🙂

keen narwhal
#

Oui.

keen narwhal
#

J'arrive pas à installer quick.db

burnt perch
#

c'est quoi ton erreur ?

#

@keen narwhal

#

et si tu es sur mac c'est pas le même processus d'installation

full scaffold
#

C'est un peu trop vague ta requête Weizer

fierce vault
#

Bonjour j'aurais besoin d'aide suite à une erreur qui c'est produite sur mon program et je souhaiterais la résoudre mais je ne sais pas comment si possible de m'aide sa met met : '}' expected.ts(1005) [55, 73] The parser expected to find a '}' to match the '{' token here. et sa un rapport avec mon token au parenthèse à parraement si possible de m'aider à fin de continuer mon program

slim anvil
#

il te manque un }

#

ca reste assez clair quand meme

fierce vault
#

Nan ces bon je les fais

#

Merci quand même

#

Et ok

white sedge
#

tout marche sauf la commande de kick pouvez vous m'aider ?
const { Client } = require('discord.js')
const config = require('./config.json')

const client = new Client({
partials: ['GUILD_MEMBER', 'CHANNEL', 'USER', 'REACTION']
})

client.on('ready', () => {
console.log('Le bot est connecté !')
client.user.setActivity('se faire coder', {
type: 'STREAMING'
})
})
const kick = require("../commands/kick")
module.exports = (client, message) => {
if (message.content.startsWith("!kick")) {
return kick(message)
}
}
client.on('message', (message) => {
if (message.content === 'ping') {
message.reply('pong !')
.catch(console.error)
}
})

client.login(config.token)

et le script pour kick
module.exports = message => {
const member = message.mentions.members.first()
if (!member) {
return message.reply(Utilisateur pas trouvé ou pas spécifié)
}
if (!member.kickable) {
return message.reply(L'utilisateur n'est pas kickable)
}
return member
.kick()
.then(() => message.reply(L'utilisateur ${member.user.tag} a été kicked))
.catch(error => message.reply(Une erreur s'est produite))
}

white sedge
#

Hum

keen narwhal
#

J'pense que la commande n'est pas débuggé

#

@white sedge

white sedge
#

Ah

robust stirrup
#

bonjour comment faire pour que le bot detecte que si le message commence par une des lettres de l'alphabet alors il renvoi le contenu du message ? j'ai fais if(message.content.startsWith( ?? )) { var str = message.content.substring(prefix.length) await message.channel.send(str)

timid loom
#

ma regex c'est /^[a-z].*/i mais c'est possible de faire plus élaboré j'imagine

white sedge
#

je viens de commencer la creation de mon bot discord et je voudrai faire un systme de kick/ban pourrait on m'aider

#

je ne trouve rien d'interessant sur internet

oak turret
#

tu veux savoir quoi ?

white sedge
#

comment on fais un systeme de commande kick/ban

oak turret
#

ça y est sur la doc de discord.js

white sedge
#

ok merci

keen narwhal
#

Salut, je suis débutant dans le milieux du dev, et c'est mon premier bot...mais la je rencontre quelque petit soucis et j'aimerais comprendre qu'elle erreur j'ai fais, merci pour les renseignement

white sedge
#

ahh un autre sur ubuntu

#

je suis pas le seul*

#

salut je reviens demander de l'aide car toutes les commandes de mon bot marche sauf celle pour kick un membre
Voici le code kick et le code index

keen narwhal
#

Tu n'as pas d'erreurs dans ton cmd ?

white sedge
#

nan

#

aucune erreur

#

la commande ne se lance pas

white sedge
#

meme en trouvant des script sur le web ça ne marche pas. je rappel que je suis un debutant dans le dev de bot

white sedge
#

c bon g trouvé mais il est lent a kick

white sedge
#

bonjour c'est encore moi
j'ai crée ce bout de script pour dire a la personne de ne pas mentionner pour rien et le bot le fait en boucle
CODE:
if (!message.content.roles) {
message.channel.send (${message.author.username} Il ne faut mentionner tout le monde ici!)
};

#

pouvez vous m'aider

keen narwhal
#

Hello, je suis en train de faire un système complètement nouveau pour moi ( vous allez sûrement me prendre pour un con 😆 ) Savez vous comment je peux faire en sorte qu'en faisant une commande avec un id genre !verify ID ça me dit si l'id est dans la bdd json ' User est ici ' ou si il est pas dedans ' User pas là ' en gros. Je peux utiliser quoi ?

oak turret
#

.find() ?

#

après il faut que ton json soit de ce type

#
[
  {
  }
]
#

et tu ferais un tonjson.find(element => element.key === tavaleur);

#

après de mémoire, si il trouve rien il sera undefined, donc tu pourras juste tester si y a quelque chose genre if (!tata) {}

keen narwhal
#

okk thx

slim anvil
#

Tu savais pas faire un .find() @keen narwhal ? ThinKappa

keen narwhal
robust stirrup
burnt perch
#

?

fallen kindle
#

Bonsoir,
J'ai un problème au niveau de ma bdd sql, voilà ma commande pour inserer une ligne :

bot.db.query(`INSERT INTO warns (id, id_w, motif, date_w) VALUES ('${mbr.id}', '${id_warn}', '${raison}', '${moment.utc(message.createdTimestamp).format('YYYY-MM-DD')}')`);

le problème c'est que dès que je met une ' dans ma raison, ça fais bugger la bdd et me renvois une erreur de syntaxe, en soit c'est assez logique vu que j'ai '${raison}', mais dcp je ne sais pas trop comment faire pour régler ce problème.
Je ne peux pas mettre "${raison}", ça ne semble pas marcher et sa repousse le problème autre part. De même pour les ``.
Quelqu'un saurai comment faire svp ?
(me mentionner dans la réponse merci)

boreal edge
fallen kindle
#

un pote m'a conseillé ça et ça marche de ouf :

.replace(/['`"]/g, (a) => `\\${a}`)

t'as pas besoin de supp les \ c'est automatique

boreal edge
#

Niquel ,merci beaucoupp !!

boreal edge
fallen kindle
tacit patio
#

Vous pouvez me donner un site que la plupart des gens trouvent bien sur l'apprentissage du Javascript s'il vous plaît ?

boreal edge
#

Ah mais non mais qu'elle con

#

Je sais

#

Merci beaucoup Pierre !

robust stirrup
#

bonjour

#

J’ai fais une condition : si après avoir exécuté +devinette, si le mot du message commence par une des lettres de l’alphabet, il répond le message que j’ai envoyé. Comment mettre une limit d'envoi du message dedié à cet condition ?

        var unmessage = new Discord.MessageEmbed()
        .setTitle(`Une nouvelle devinette vient d'être crée par ${message.author.username}`)
        .setDescription(`||INDICE >>> ${message.content}||`)
        var channel = client.channels.cache.get("824402577193041981")
        channel.send(unmessage)
        
        var reponse = new Discord.MessageEmbed()
        .setTitle("Quel est la réponse de la devinette ?")
        .setDescription("Merci de donner une réponse à cette devinette !")
        message.channel.send(reponse)
        }
burnt fractal
tacit patio
silk edge
#

Bonjour
Sur un tuto je suis tombé sur ceci afin de get le nombre de personne sur chaque serveur où se trouve mon bot. Mais je ne comprend se qu'est acc. Quelqu'un peut il m'expliquer ?

console.log(client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0))
timid loom
#

acc c'est un accumulateur
elle correspond à la dernière valeur obtenue par le callback (ici acc + guild.memberCount) ou la valeur initiale si c'est la première fois que le callback est exécuté (ici 0)

dim sage
#

Je viens d'avoir eu une erreur quand j'ai voulu redémarrer mon bot mais je ne comprend pas pourquoi

#

Ah c'est pour çaaaa, merci de ton aide, je suis juste aveugle lolll.

#

Quel est la différence entre la constante "client" et la constante "bot" ? @pure raven

spring dock
#

ça change rien c'est juste toi comment tu l'appelle

#

si tu fait const client = ........
bah tu fera client.on ......
et si tu fait const bot = .....
bah tu fera bot.on .......

Si tu veux tu peux aussi l'appeler trottinette ça changera rien

dim sage
#

ah ok mdrrrrrr

#

Là j'ai compris

#

L'exemple de la trottinette est pépite

short wadi
#

Salut les gars j'aimerais faire un bloqueur de pub donc je me suis dit je vais utiliser le msg.content ('') mais le probleme c'est que je ne sais pas quoi mettre entre les parentèse pour que ca soit que les lien est ce que vous savez

oak turret
#

bloqueur de pubs sur ?

short wadi
#

avec un bot discord.js

#

en gros qui des que y'a un lien le supprime

oak turret
#

bah

short wadi
#

mais je sais pas comment faire pour qu'il prenne en compte les liens

oak turret
#
if ( ["https", "http"].includes(message.content) {
  message.delete();
}
short wadi
#

ah merciiii

oak turret
#

np

slim anvil
oak turret
#

il a qu'à remplacé par ce qu'il veut roh kappa

short wadi
#

Tu sais pourquoi ?

keen narwhal
#

Le fetch ne fonctionne pas correctement parce qu'il ne trouve pas l'addresse ENOTFOUND

oak turret
#

tout de façon ton code ne marchera pas

#

c'est "msg" et non messsage premièrement

keen narwhal
#

Ah oui je viens de voir les 2 if

oak turret
#

et ta syntaxe est mauvaise

#

t!search bot

cedar oreBOT
#
Tutoriels trouvés par mots clés

oak turret
#

les deux derniers

#

ça t'aidera pour débuter

#

à mon avis tu ne connais pas le js

#

pas bien du moins

hazy mirage
#

Salut!
Je récupère une HTMLCollection grâce à document.getElementsByClassName(category)
Voici son log:
HTMLCollection [] 0: div.item.processeurs 1: div.item.processeurs
Et quand je fais variable.item(0) ou variable[0] par exemple pour récupèrer le premier élement, cela me retourne null.

Je dois mal m'y prendre quelque part mais j'avoue ne pas comprendre 🤔
Est-ce que quelqu'un aurait la solution à mon problème s'il vous plaît ?

#

🔼 Problème résolu, enfait il fallait décaler l'execution du code facepalm

window.addEventListener("load", function(event) {
   // your code ....
 })
keen narwhal
#

Bonsoir, c'est possible de dire au bot de mettre cette réaction ?

bright pecan
#

Tu recup l'id de l'emoji

keen narwhal
#

Comment ?

bright pecan
#

Et non le nom

#

Étape 1 : Tu met ton discord en developer dans les settings
Étape 2 : Tu envoie l'émoji dans un channel
Étape 3 : Tu clique sur l'émoji et copier l'id
Étape 4 : Tu le met dans ton code, en rajoutant ce qu'il faut pour que sa marche avec l'id

keen narwhal
#

d'accord meci

#

merci

#

les emogie c'est bien <id> ou y'a un truc avant

#

comment pour les mentions

#

ou salons

oak turret
#

sinon

boreal edge
#

ça dépend

oak turret
#

:emoji:

boreal edge
#

Si ils sont publiques :emoji:

oak turret
#

:emoji:

boreal edge
#

Si ils sont privées <:name:id>

oak turret
#

et ça te returnera l'id

#

ou sinon

keen narwhal
#

trop de sinon

#

xd

oak turret
#

message.guild.emojis.cache.get("id");

keen narwhal
#

apres le msg react ?

keen narwhal
oak turret
#

bah non

#

à l'intérieur

#

genre

#
await <message>.react(<message>.guild.emojis.cache.get("id"));
keen narwhal
#

okay merci je test sa

#

j'y arrive pas

oak turret
#

erreur ?

keen narwhal
oak turret
#

ah oui ok alors

#

<message> = ta fonction dans ton client.on("message", tafonction)

keen narwhal
#

j'ai pas de client.on

oak turret
#

si forcément

#

montre ton code

keen narwhal
#
const { MessageEmbed } = require("discord.js");

module.exports = async (client, message) => {
  const user = message.author;
  if (user.bot) return;

  const DevlogsMessage = await new MessageEmbed()

    .setColor("BLACK")
    .setTitle(`**Voici le nouveau devlogs du serveur**`)
    .setDescription('Ce message liste les éléments qui ont été **ajoutés**, **modifiés** ,**reglés** ou **supprimé** du serveur aujourd\'hui.')
    .addField('**Liste de ce qui a été effectuer :**', message.content)
    .setFooter('Si vous avez des questions sur la liste ci-dessus, n\'hésitez pas à nous contacter.', client.user.avatarURL({ format: 'png', dynamic: true, size: 1024 }))
    
    message.delete();
  client.channels.cache.get('830858042806632489').send(DevlogsMessage)
  
  .then(function (message){
    message.react("✅")
}).catch(function(){
});
};```
oak turret
#

oui bah voilà

#

message

keen narwhal
#

je veux cette emogie

#

on peux pas upload

#

des emogie perso

oak turret
#

what

#

pourquoi tu message.delete() avant l'envoie

#

aucun sens

#

delete le après tes vérifs qui sont ok

#

et ton .then

#
.then(async (message) ) {
  await message.react("tonemoji");
}
keen narwhal
#

je test sa et je met apres le dellete

#

ducoup l'id

#

c'est </id>

oak turret
#

bah$

#

tu veux un emoji perso ?

keen narwhal
#

ui sur mon serveur

#

emogie animé

#

831309917440311347
sont id

oak turret
#

voilà

#

alors

#
.then(async (message) ) {
  await message.react(message.guild.emojis.cache.get("831309917440311347"));
}
#

il faut qu'il sois sur ton serveur discord par contre

keen narwhal
#

il y'est

oak turret
#

bah ça devrait work

keen narwhal
oak turret
#

oui j'suis con

keen narwhal
#

meh nan

oak turret
#
.then(async (message) =>  {
  await message.react(message.guild.emojis.cache.get("831309917440311347"));
})
keen narwhal
#

Effectivement j'ai pas cherché a comprendre

oak turret
#

my bad ahah

#

et ton await devant la déclaration de ton embed c'useless

#

fait le quand tu l'envoies à la limite

keen narwhal
oak turret
#

ok

keen narwhal
#

Je comprend rien à leurs erreur

oak turret
#

let emoji = message.guild.emojis.cache.get("id");

#

et dans ton .react(emoji)

#

bah leurs erreurs sont compréhensibles

keen narwhal
#

Ben la ligne est corecte la

#

c'est pour sa que je comprend pas l'erreurs

oak turret
#

pas pcq la ligne est correcte que ça va marcher

#

c'est la syntaxe qui est correcte

#

pas le code

#

nuance

keen narwhal
#

Ducoup la il dit quoi ?

oak turret
#

bahh ?

#

à toi de me dire

keen narwhal
#

il reconnait l'emogie

#

sa c'est sur

#

meh apres

oak turret
#

au pire

keen narwhal
#

chepa thinkgeometric

oak turret
#

comme je t'ai dis tout à l'heure

#

genre

#

\🆗

#

merde

#

fait pareil

keen narwhal
#

Ha

oak turret
#

et ce qu'il te return

#

tu le mets dans ton react

keen narwhal
#

jpense avoir compris

oak turret
#

\ :nom:

#

sans l'espace

keen narwhal
oak turret
#

nan

#

juste ton <:name:id>

#

message.react("<:name:id>");

keen narwhal
#

:ok:

#

meh

#

:ok:

#

WTF

oak turret
#

work ?

keen narwhal
#

je goute a toute les erreur

#

compliqué pour une reaction

oak turret
#

mdrr

#

ton code

keen narwhal
oak turret
#

ptdr wtf

#

atrt

#

att

#

j'test

#

moi ça marche

#

ptetre ton emoji qui bug

#

genre le nom

#

appelle le juste ok1

keen narwhal
#

je vais test

#

sa me péte la tete

#

il me dit que mon emogie et inconu mdr

oak turret
#

ah bah

#

moi ça marche bien jvois pas pourquoi toi non mdr

keen narwhal
#

je comprend r

#

:k_:

#

831323431655702528

oak turret
#

alors là

#

mistake

#

essaye un emoji non animé pour voir

keen narwhal
#

fonctionne pas même avec le nom animé

#

mon bot il vien de chez wish

#

comme son proprio

oak turret
#

pas possible

#

t’as une couille dans le paté

#

envoie juste un message et react après pour voir

#

il l’envoie ton embed?

keen narwhal
#

yep

#

j'ai tout tester

#

x)

#

rien ne fonctionne jsuis rester avec un truc genre ✅

#

c'est bien aussi

#

mdrr

bright pecan
#

Quelqu'un serait comment je pourrait faire pour que l'embed 2 ne se créer pas mais plutôt se rajoute sur l'embed 1 ?

#

Le problème c'est que je boucle pour tous et l'edit ne marche pas x)

oak turret
#

et ouais mais non alors tout simple

#

tu créer l'embed hors de ta boucle

#

et quand tu boucles dessus, tu ajoutes un field par exemple

#

et après tu l'envoies

#

et pour modifier ton embed

#

tu get ton embed via l'id

#

et tu fais juste un coup de <message>.edit(newvalue)

bright pecan
#

Problème régler les bg

#

J'ai exactement fait se que ta dit avant même que tu le disent mdr

bold sparrow
#

Bonjour messieurs dames, j'aimerais un petit coup de pouce !

#

Alors voilà, j'ai créé une fonction pour gagner du temps, là voici

#

Ce que je voudrais : toReplace soit un objet de la forme { "String", ValeurAremplacer }

#

Et que replaced soit égal à la value de mon objet toReplace

#

Vous l'avez compris c'est pour utiliser la méthode replace pour n'importe quel valeur à remplacer.

#

Et je me suis trompé c'est js replaced = Object.values(toReplace[value])

boreal edge
#

J'ai pas trop compris ce que tu veux faire

bold sparrow
#

Merde, attends je rajoute quelque chose

boreal edge
#

Que imaginons un string : "Je suis GCA", si on mets dans l'array ["suis", "GCA"] et que replaced on mets x, ça return Je x x ?

bold sparrow
#

Il n'y a pas d'array

#

C'est un objet

#

En gros "Je suis mauvais", mauvais va être remplacé par la value de l'objet toReplace

boreal edge
#

Okayyy

oak turret
#

bah

#

.replace("mauvais", "new_string"); ?

bold sparrow
#

Oui mais je veux que ça soit une fonction

#

Pour que ça puisse s'appliquer à n'importe quelle valeur

oak turret
#

bah .replace() peut s'appliquer partout ?

bold sparrow
#

Oui mais.

#

Après je n'aurais plus qu'à faire js replace(welcomeMessage.replace(toReplace, replaced)

boreal edge
#
function replace(text, replaceObject) {
    if (!text || !replaceObject) return;

    for (word in replaceObject) {
        text = text.replace(word, replaceObject[word]);
    }

    return text;
}
console.log(replace("Je suis mauvais", {"mauvais" : "gentil"}));
#

Avec ce que j'ai fais, ça return "Je suis gentil"

#

C'est ce que tu veux faire ?

#

@bold sparrow

bold sparrow
#

C'est en gros ce que je veux faire oui, je vais tester dans mon cas, j'te redis

#

Merci déjà pour ça

boreal edge
#

Dac

#

Pas de soucis

bold sparrow
#

Update @boreal edge Et bien écoute ça fonctionne super bien, j'ai du me compliquer la vie pour rien

boreal edge
#

ça marche 😉

bold sparrow
#

J'te remercie !!

boreal edge
#

Pas d'soucis !

boreal edge
#

Yop !
J'ai un p'itt .png que j'aimerai pouvoir send dans un embed sans devoir l'upload quelque part.
Est ce que vous avez une idée de comment je pourrait faire ?
Merci 😉

queen ocean
boreal edge
#

Yep

#

C'est pour ça que je me demandais si il n'y avait pas une autre solution plutot que de devoir l'upload sur un truc avant de la send

oak turret
#

.attatchFiles()

#

ou .attachFile() avec ou sans le s

#

et après

#

.setImage("attachement://nomdelimage.png")

#

tu fais

#

let tata = new Discord.MessageAttachement("tonimage.png","nom-image.png");
et après tu fais ce que je t'ai dis

#

et ça sera ok

keen narwhal
#

Hola

#

on peux m'aider pour cette erreur

#

svp

#
(node:22) UnhandledPromiseRejectionWarning: TypeError: event.bind is not a function
at /home/container/modules/functions.js:39:53
at Array.forEach (<anonymous>)
at Client.client.loadEvents (/home/container/modules/functions.js:35:17)
(node:22) 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:22) [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.
rustic shore
#

Bonsoir @keen narwhal c'est que un de tes events n'a pas de fonctions qui est exporter

#

Bonsoir, cela fait un petit moment que je cherche mais je me souviens plus du nom du module qui permet d'exporter très simplement un fichier par exemple @models/User je crois que je peux le faire avec babel mais je me souviens plus exactement si c'est ça ou si c'est un plugin de babel merci bien bonne soirée à vous

#

mentionner moi pour si vous avez une idée

slim anvil
#

enfin tu peux faire des chemins absolu avec babel aussi

rustic shore
#

oui mais comment c'est ça aussi je sais plus si faut un plugin ou pas j'ai un gros trou là

slim anvil
#

Normalement non c’est juste dans ta config tu fous des alias

#

Euh si pardon c’est resolver

#

plugin resolver ou module resolver de babel et du coup dans la config de ce plugin tu fous tes alias

rustic shore
#

super merci je vais aller chercher ça tu me sauves la mise là

misty pulsar
#

Hello tout le monde ! J'ai un soucis, je fais un bot discord sur avec Discord JS v12, j'ai testé ma commande sauf que rien ne se passe...

#

voilà mon code :

const { MessageEmbed } = require("discord.js");

module.exports.run = (client, message, args) => {
    const roleNotifStream = message.guild.roles.cache.get("804297729761214484");
    const roleNotifInfo = message.guild.roles.cache.get("798935551272288296");
    const emojiNotifStream = message.guild.emojis.cache.get("824614483649101854");
    const emojiNotifInfo = message.guild.emojis.cache.get("824614484055293992");

    const embed = new MessageEmbed()
    .setTitle("Choisi tes notifications")
    .setDescription("Cliquez sur les réactions pour choisir tes notifications!")
    .setColor("#dc143c")
    .addField(
        "Les notifications qui peuvent t'intérrésser:",
        `
        ${emojiNotifStream} - ${roleNotifStream.toString()}
        ${emojiNotifInfo} - ${roleNotifInfo.toString()}
        `
    );

    message.channel.send(embed).then(async msg => {
        await msg.react(emojiNotifStream);
        await msg.react(emojiNotifInfo);
    })
};

module.exports.help = {
    name: "allroles",
    aliases: ['allroles'],
    category: 'reactions',
    description: "Renvoi un message avec des réactions",
    cooldown: 10,
    usage: '',
    persmissions: true,
    isUserAdmin: false,
    args: false

};
#

aucune erreur rien

#

Voilà mon arborescence :

keen narwhal
#

Bonsoir, savez comment faire un systeme genre, on envoi un mp au bot, et le bot envoi le contenue du message en mp dans un salon, ensuite on peux repondre sur le salon et le bot le renvoi dans les mps de l'utilsateur concerné ?

#

appelé aussi modmail

#

Je vous remercie 😉

oak turret
#

du genre

#

je suis trop beau ( en mp ) au bot

#

ça envoie je suis trop beau dans un salon ?

#

@keen narwhal

keen narwhal
#

ui

#

@oak turret

oak turret
#

suffit de faire

#

pour un message

#
if ( message.channel.type === "dm" && message.content ) {
  <client>.guilds.cache.get("id").channels.cache.get("id").send(`${message.author} a envoyé ${message.content} en mp !`);
}
#

si c'juste ça

#

sinon faut que tu awaitMessage

#

genre message.author.dmChannel.awaitMessages() etc

keen narwhal
#

donc je met sa un message.js dans mes events

#

et sa fonctionne

oak turret
#

bah tu fais comme tu veux

#

je sais pas comment tu le fais ton bot moi

keen narwhal
#

je vais esayer de je te remercie

oak turret
#

np

keen narwhal
#

dans le premier id et le 2 eme on met les meme id des channel ?

oak turret
#

nan

#

premier id = guildID

#

deuxième id = channelID

keen narwhal
#

okay merci j'avais pas bien lu effectivement

oak turret
#

pas de soucis

keen narwhal
#

@oak turret

oak turret
#

seriously ?

#

je t’ai dis ce qu’il fallait remplacer

#

juste au-dessus

#

@keen narwhal

keen narwhal
#

ben j'ai fai

#

fait

oak turret
#

le premier c’bien celui de ton serveur ?

keen narwhal
#

ui

oak turret
#

comment tu fais tes commandes ?

keen narwhal
#

dans un dossier appart

oak turret
#

tu utilises commando?

keen narwhal
#

nan

oak turret
#

ah

#

log ton client.guilds.cache.get("id")

keen narwhal
#

oula, eu comment x)

#

genre un return

oak turret
#

juste un console.log quoi

keen narwhal
#

oki

oak turret
#

puis l’erreur vient même pas de là

#

elle est ligne 35 de ce que je bois

#

vois

keen narwhal
oak turret
#

après si faut ton système ne marche pas bien mais je saurais pas te le dire je n’utilise que commando

keen narwhal
#

ligne 35 y'a rien

oak turret
#

tu dois pas le mettre avant ton execute par hasard ?

#

je connais pas ce type de système mais 🤔

keen narwhal
finite verge
#

C'est utilisé à quelle échelle React ?

#

J'veux dire, à quel point c'est utilisé dans le monde du frontend ?

slim anvil
#

L'appli sur la quelle tu écris ce message c'est du React

#

C'est le framework front JS le plus utilisé React

#

Tu peux déjà te dire que une partie de Facebook aujourd'hui est sur React, idem pour Instagram et Whatsapp (React Native inclus)
Des netflix l"utilisent aussi, enfin voilà tu peux y aller les yeux fermés mdr

finite verge
#

Ok

#

Bah c'est incroyablement insane

#

Le mec qui a crée React il faisait du full OCaml avant

#

Et JS ça lui pétait les couilles parce que bon c'est un langage de merdse

#

Et du coup il a utilisé OCaml pour faire Reason

#

SAH

#

insane

#

OCaml >>>>>>>> all

#

faites du ocaml

spring dock
#

non

finite verge
#

Si !

cyan iron
#

Hey, comme je l'ai dit dans #general :

En gros, j'aimerais faire un dashboard pour mon bot, mais j'ai vraiment 0 bases, et je ne sais pas du tout par où commencer. On m'a dit de faire une API, mais je ne sais pas comment faire non plus, est-ce que quelqu'un pourrait m'aider ?

slim anvil
#

Tu peux te faire une petite API en utilisant express

#

c'est assez simple tu verras, et pour stocker tes datas j'utiliserai du noSql pour être en accord niveau data avec discord

cyan iron
#

Okay, et tu as des conseils ou des tutos ?

cyan iron
tulip tusk
#

bonjour, petite demande asses bête mais c'est à propos du bot. Comment fait-on pour lui mettre un statut ?

slim anvil
oak turret
cyan iron
#

Roh

#

Il est plus rapide que moi

slim anvil
#

ce tuto est sympa

#

il est bien conçu pour débuter sur express

cyan iron
#

Ah super merci !

#

Donc là c'est une API ?

slim anvil
#

Yes

#

basique mais oui

#

typiquement quand tu déclares

app.get("/faq", (req, res) => {
     // la réponse
}) 

comme indiqué sur le tuto, lorsque tu vas appelés https://api.orion.fr/faq tu vas arriver dans ce code

cyan iron
#

okay je vois

#

Et donc ça suffirait si je veux faire un dashboard par exemple ?

tulip tusk
#

merci !

slim anvil
#

Bah si tu le fais bien oui pas de raison

cyan iron
#

Ok ok, je vais tenter de comprendre

#

merci !

tulip tusk
#

Bah la tout se passe bien mais y'a marqué :
Uncaught ReferenceError: Bot is not defined | No debugger available, can not send 'variables'

slim anvil
#

Screen ton code

#

mais ca doit venir de la déclaration de ton event harold

cyan iron
#

@slim anvil ça peut paraître con, mais je le fichier c'est un .js ?

slim anvil
#

non .html

#

oui .js

cyan iron
#

ah ok

#

J'ai eu peur 😂

#

Je me suis dit je suis vraiment con j'ai rien compris

tulip tusk
oak turret
#

tout ton code

#

c'est .setActivity

#

je crois de mémoire

tulip tusk
#

j'ai changé mais le problème survient encore

oak turret
#

attend

#

ton truc est pas bon

#

client.user.setActivity("Tatat");

cyan iron
#

J'ai r compris @slim anvil 😂

#

Je sais même pas comment start le truc

#

aled notlikethis

slim anvil
#

bah c'est du nodejs mec

#

node app.js par ex

#

🤔

cyan iron
#

Ouais mais ça a pas work quand je l'ai fait

#

¯_(ツ)_/¯

#

je restart mon intelij grrr

#

ok c'est bon, je sais pas pourquoi ça m'a fait ça mais ça work

#

donc j'ai r dit mdr

#

#java-jvm 😉

#

OH OUI

#

J'ai réussi à co la db

spring dock
#

bravo

slim anvil
#

bravo

cyan iron
#

xd

#

@slim anvil et si par exemple je veux que ça me donne l'id du mec, avec l'0auth2, je peux faire comment ?

slim anvil
#

dans ta requete tu envoies le Authorization

#

Ah tu veux l'id du mec

#

si il est connecté tu peux l'avoir dans le req.body.user

cyan iron
#

ok

#

j'ai compris

#

maintenant il faut que je use l'0auth2

slim anvil
#

Après je vais pas tout t'expliquer essaye de regarder des tutos pour commencer

cyan iron
#

yep

#

J'ai une dernière question

#

à quoi sert le fichier .env ?

#

J'ai pas compris, je le vois partout

slim anvil
#

un .env peut te servir a stocker par exemples des API_KEY, ton NODE_ENV aussi

#

ce genre de chose

cyan iron
#

ok donc en gros c'est du stockage

slim anvil
#

Non

#

c'est ta config plutot

cyan iron
#

🤔

slim anvil
#

la config dont va avoir besoin ton app

cyan iron
#

Ah oui d'accord ! Je viens de comprendre

slim anvil
#

typiquement tu utilises google places, bah tu vas venir mettre la google api key dans ton .env

#

et y accéder par process.env.GOOGLE_API_KEY

cyan iron
#

ok ok j'ai tout compris merci

cyan iron
#

@slim anvil j'ai réussi mdr, merci pour m'avoir mis sur le chemin !

misty pulsar
#

Hello tout le monde ! J'ai un soucis, je fais un bot discord sur avec Discord JS v12, j'ai testé ma commande sauf que rien ne se passe...

voilà mon code :

const { MessageEmbed } = require("discord.js");

module.exports.run = (client, message, args) => {
    const roleNotifStream = message.guild.roles.cache.get("804297729761214484");
    const roleNotifInfo = message.guild.roles.cache.get("798935551272288296");
    const emojiNotifStream = message.guild.emojis.cache.get("824614483649101854");
    const emojiNotifInfo = message.guild.emojis.cache.get("824614484055293992");

    const embed = new MessageEmbed()
    .setTitle("Choisi tes notifications")
    .setDescription("Cliquez sur les réactions pour choisir tes notifications!")
    .setColor("#dc143c")
    .addField(
        "Les notifications qui peuvent t'intérrésser:",
        `
        ${emojiNotifStream} - ${roleNotifStream.toString()}
        ${emojiNotifInfo} - ${roleNotifInfo.toString()}
        `
    );

    message.channel.send(embed).then(async msg => {
        await msg.react(emojiNotifStream);
        await msg.react(emojiNotifInfo);
    })
};

module.exports.help = {
    name: "allroles",
    aliases: ['allroles'],
    category: 'reactions',
    description: "Renvoi un message avec des réactions",
    cooldown: 10,
    usage: '',
    persmissions: true,
    isUserAdmin: false,
    args: false

};

aucune erreur rien

#

Voilà mon arborescence :

cyan iron
#

Tente de mettre un petit console.log('ici') au début de ta commande pour voir si ça work déjà

misty pulsar
#

j'ai fais tester la commande à un ami sur son bot, et lui ca marche

cyan iron
#

Ah ! Dans ce cas la commande n'est pas détectée, il faut trouver pourquoi

misty pulsar
#

Ca pourrait être pour quelle raison ?

#

je débute hein xD

cyan iron
#

Un problème sur le handler sûrement, je peux voir ton message.js pls ?

misty pulsar
#
module.exports = {
    name: 'message',
    execute(message) {
        console.log(`${message.author.tag} dans #${message.channel.name} a envoyé: ${message.content}`);
    },
};
cyan iron
#

Hein ?

#

C'est ton fichier message.js ça ?

misty pulsar
#

yep

cyan iron
#

en entier ?

misty pulsar
cyan iron
#

j'ai jamais vu ça de ma vie ptdr

misty pulsar
#

xD, ca marche pourtant les autres commandes mdr

#

Faudrait que je change quoi selon toi ?

cyan iron
#

J'en sais strictement rien, j'ai jamais vu ça de ma vie

#

Désolé

#

fait voir ton main pls

misty pulsar
#

const Discord = require('discord.js');
const fs = require('fs');

const client = new Discord.Client();
const eventFiles = fs.readdirSync('./events').filter(file => file.endsWith('.js'));
const commandFiles = fs.readdirSync("./commands").filter(file => file.endsWith(".js"));
client.commands = new Discord.Collection();


const {
    prefix,
    token,
} = require('./config.json');

const welcome = require('./events/welcome')
const FirstMessage = require('./commands/first-message')


client.once('ready', () => {
    console.log('Drixibot a démmarré !');

    welcome(client)

});
for (const file of eventFiles) {
    const event = require(`./events/${file}`);
    if (event.once) {
        client.once(event.name, (...args) => event.execute(...args, client));
    } else {
        client.on(event.name, (...args) => event.execute(...args, client));
    }
}

for (const file of commandFiles) {
    const command = require(`./commands/${file}`);
    client.commands.set(command.name, command);
    console.log(client.commands);
}

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

    if (message.author.bot) return;

    const args = message.content.slice(prefix.length).trim().split(/ +/);
    const command = args.shift().toLowerCase();


    if (message.content.toLowerCase() === 'salut') {
        message.reply('Salut 👋')
            .catch(console.error)
    }

    if (message.content.toLowerCase() === 'drixizerp') {
        message.reply('***DrixizeRP*** est le meilleur serveur au monde selon une étude très serieuse 🤓')
            .catch(console.error)
    }

    if (!client.commands.has(command)) return;
    client.commands.get(command).execute(message, args);

    console.log('reception message test')

});
client.login(token);
cyan iron
#

AAAAAAAH

#

Bah voilà

#

Le voilà ton event message

#

Mais alors pourquoi est-ce que tu as un fichier message.js, et un client.on dans ton main ?

misty pulsar
#

.... je ne sais pas xD

#

Je comprend pas encore tout ce que je fais mdr

cyan iron
#

Je vois que tu console log ton client.commands, il y a ta commande qui pose problème dedans ?

#

Ah non mais laisse tomber !

#

J'ai trouvé ton problème

misty pulsar
#

je bidouille des trucs, ça marche, c'est cool, ça marche pas, j'essai de comprendre pourquoi

cyan iron
#

Ton fichier allroles n'est pas dans commands

#

Mais dans un dossier reactions qui est dans commands

#

et ton handler ne permet pas ça

misty pulsar
#

je me doutais que ca venait de là, c'est pour ça que j'ai screen les fichiers xD

#

ah.

#

Donc je le sors du fichier ?

cyan iron
#

Oui sincèrement désolé je n'ai pas regardé les fichiers, pour moi ça venait pas de ça

misty pulsar
#

Tkt 🙂

cyan iron
misty pulsar
#

C'est déjà cool de m'aider mdr

#

okok

cyan iron
#

Et là 100% ça work

misty pulsar
#

@cyan iron nope

#

xD

#

pas d'erreur

cyan iron
#

Pardon ?

misty pulsar
cyan iron
#

t'as restart le bot ? harold

misty pulsar
#

Voui

cyan iron
#

montre tes fichiers encore

misty pulsar
#

att, je test un truc

cyan iron
#

mmh ok

misty pulsar
#

echec xD

cyan iron
#

Mdr

misty pulsar
#

tiens fais toi plaiz xD

cyan iron
#

et ta commande clear fonctionne ?

misty pulsar
#

YEP

cyan iron
#

t'as laissé ton console log ?

misty pulsar
#

Oui

#

Et il apparait

cyan iron
#

ah bah voilà

misty pulsar
#

je l'ai enlevé

cyan iron
#

donc le problème viens de ta commande maintenant

misty pulsar
#

et ca marche....

#

pas

#
const { MessageEmbed } = require("discord.js");

module.exports.run = (client, message, args) => {
    const roleNotifStream = message.guild.roles.cache.get("804297729761214484");
    const roleNotifInfo = message.guild.roles.cache.get("798935551272288296");
    const emojiNotifStream = message.guild.emojis.cache.get("824614483649101854");
    const emojiNotifInfo = message.guild.emojis.cache.get("824614484055293992");

    const embed = new MessageEmbed()
    .setTitle("Choisi tes notifications")
    .setDescription("Cliquez sur les réactions pour choisir tes notifications!")
    .setColor("#dc143c")
    .addField(
        "Les notifications qui peuvent t'intérrésser:",
        `
        ${emojiNotifStream} - ${roleNotifStream.toString()}
        ${emojiNotifInfo} - ${roleNotifInfo.toString()}
        `
    );

    message.channel.send(embed).then(async msg => {
        await msg.react(emojiNotifStream);
        await msg.react(emojiNotifInfo);
    })
};

module.exports.help = {
    name: "allroles",
    aliases: ['allroles'],
    category: 'reactions',
    description: "Renvoi un message avec des réactions",
    cooldown: 10,
    usage: '',
    persmissions: true,
    isUserAdmin: false,
    args: false

};

Pour rappel

oak turret
#

tu devrais faire un truc plus simple

#

réact avec plusieurs émojis

#

et switch les réacts dans l'event messageReactionAdd

misty pulsar
#

C'est pour faire un embed de reaction role

cyan iron
#

mais je comprend pas pourquoi il get les emojis

#

si c'est pour reac

oak turret
#

moi non plus

cyan iron
#

Tu peux direct reac avec l'id

misty pulsar
#

C'est des emoji custom

oak turret
#

fais ce que j'ai marqué beaucoup mieux

cyan iron
#

yep

oak turret
#

oui

#

bah tu peux faire juste \ :name: sans l'espace

#

ça va te return

#

<:name:id>

cyan iron
#

et l'embed object, mais je peux pas t'en vouloir si tu débutes

oak turret
#

mais fais ton embed normal

#

et tu réact dessus

misty pulsar
#

Ouai c'est comme ca que j'ai eu l'ID des emoji

oak turret
#

puis tu get ton message dans l'event mesageReactionAdd, tu switch et en fonction des case, tu ajoutes le grade

#

tout simple

misty pulsar
#

Tu m'as perdu avec ton react xD

oak turret
#

tu mets tes émojis quoi

oak turret
#
ton embed...

message.channel.send(tonembed).then(async message => {
  await message.react("ton emoji");
  ....
})
cyan iron
#

Attends mais @misty pulsar est-ce que l'embed s'envoie déjà ?

oak turret
#

puis

misty pulsar
#

Non xD

#

Rien ne se passe côté client xD

oak turret
#
event : messageReactionAdd

if ( reaction.message.channel.id === "channel_id" && reaction.message.id === "message_id" ) {
  switch ( reaction.emoji.name ) {
      case "emoji": {
        user.roles.add("id_role");
        break;
      }
      ....
  }
}
#

normal

#

ton addField est pas bon

#

mets juste tes `

#

et non " + `

misty pulsar
#

marche pas

oak turret
#

ton code ?

#
  • erreur ?
misty pulsar
#
const { MessageEmbed } = require("discord.js");

module.exports.run = (client, message, args) => {
    const roleNotifStream = message.guild.roles.cache.get("804297729761214484");
    const roleNotifInfo = message.guild.roles.cache.get("798935551272288296");
    const emojiNotifStream = message.guild.emojis.cache.get("824614483649101854");
    const emojiNotifInfo = message.guild.emojis.cache.get("824614484055293992");

    const embed = new MessageEmbed()
    .setTitle("Choisi tes notifications")
    .setDescription("Cliquez sur les réactions pour choisir tes notifications!")
    .setColor("#dc143c")
    .addField(
        `Les notifications qui peuvent t'intérrésser:`,
        `
        ${emojiNotifStream} - ${roleNotifStream.toString()}
        ${emojiNotifInfo} - ${roleNotifInfo.toString()}
        `
    );

    message.channel.send(embed).then(async msg => {
        await message.react(emojiNotifStream);
        await message.react(emojiNotifInfo);
    })
};

module.exports.help = {
    name: "allroles",
    aliases: ['allroles'],
    category: 'reactions',
    description: "Renvoi un message avec des réactions",
    cooldown: 10,
    usage: '',
    persmissions: true,
    isUserAdmin: false,
    args: false

};
#

Aucune erreur

oak turret
#

je t'ai dis

#

mets juste une fois `

misty pulsar
#

ok

oak turret
#

ah mais

#

ok j'avais pas vu

#

tu veux faire qu'un seul field ?

misty pulsar
#

Ouai

cyan iron
#

Mais attends

oak turret
#

ok je vois

cyan iron
#

Y'a un problème avec ton field

oak turret
#

ah mais oui

#

ça marchera pas