#javascript-typescript

1 messages · Page 47 of 1

keen narwhal
#

Oki :3

fallen kindle
#

Vous sauriez pas comment récup le message précédent le message envoyer par le membre ou le dernier message envoyé par le bot ?
me mentionner dans la réponse svp

red snow
#

Regarde sur la doc le lastMessageSend un truc comme ça

#

Je me corrige, GuildMember#lastMessage

fallen kindle
#

ça me renvoi ça : Uncaught Promise Rejection TypeError: Cannot read property 'lastMessage' of undefined

red snow
#

Tu as mis quoi avant ?

fallen kindle
#

bot.users.get(bot.id).lastMessage()
bot étant mon client

red snow
fallen kindle
#

pcq ça marche pas sans : Uncaught Promise Rejection TypeError: bot.users.lastMessageID is not a function

red snow
#

A mais je sais

fallen kindle
#

ah ?

red snow
#

Fais bot.user.lastMessage()

#

Sauf si c'est ce que t'avais fais

fallen kindle
#

c'est ça que j'avais fait x)

red snow
#

Comment est définit bot ?

#

A mais, c'est pas ce que tu avais fais

#

Le s a user il faut l'enlever

#

Users edt une collection de tous les utilisateurs

#

User est le bot

#

Ses informations

fallen kindle
#

toujours la même erreur

red snow
#

Envoi le code

fallen kindle
#

et le bot est défini comme ça : const bot = new Discord.Client();

#

Envoi le code
@red snow jpp je taff là :/

red snow
#

Ah

#

Mais c'est bizarre que bot.user.lastMessage() ne marche pas

fallen kindle
#

oui, je me dis pareil

red snow
#

Mais qu'est ce que je suis con 🤦‍♂️ je te fais faire de la merde...

#

C'est lastMessageID()

#

Et puis grâce à cette id

#

Tu trouve le channel avec lastMessageChannelID()

#

Puis tu get le message avec lastMessageID()

fallen kindle
#

nan mais j'ai test ça aussi :/

#

ça marche pas, même erreur

red snow
#

T'as essayé bot.member ?

#

Je sais plus si c'est ça je suis sur tel donc difficile de te dire

fallen kindle
#

même erreur :/

red snow
#

Oof

#

Attend mais c'est pas possible je dois faire un truc de merde la

#

Bon, je te dis ça ce soir ou demain, en attendant, peut être que quelqu'un trouvera, mais là je suis sur tel, je peux rien tester donc je peux pas te dire si c'est un bug ou si c'est moi qui fait n'importe quoi

fallen kindle
#

ok, merci x)

keen narwhal
#

Bonjour, j'ai une petite question vis que je suis curieux, je voulais savoir comment je pouvais faire en sorte que lorsque que je mette une image ou une gif attaché à mon embed ça l'envoit ? J'ai donc essayé

#

@red snow :3

red snow
#

:3

keen narwhal
#

:3

red snow
#

Attend je lis tout :p

keen narwhal
#

Oki

red snow
#

T'as quelle version discordjs ?

keen narwhal
#

12.2

red snow
#

Okay, t'as essayé le .setThumbnails ?

keen narwhal
#

Non

#

Parce que c'est une image que je veux mette mais att

#

J'essaie

#

Error

red snow
#

Euh att je vais voir la doc

keen narwhal
#

Oki :3

#

Je crois que mon pote

#

À trouvé la solution x')

red snow
#

Il faut mettre quelque chose entre les parenthèses

#

J'avais pas fais gaffe

#

Genre un lien, ou un path.

#

A non, seulement URL

keen narwhal
#

Du coup je fais

red snow
#

Et c'est .setImage

#

Set attach file cetait une ancienne version

keen narwhal
#

.setImage(' ') ?

red snow
#

Après a toi de voir si tu veux en Thumbnail ou en Image

#

Et oe cedt ça

#

Et dans le string tu mets l'url

keen narwhal
#

Je peux pas mettre de lien ?

red snow
#

Si un lien

keen narwhal
#

Je voulais dire image xD

red snow
#

A non

#

Il faut mettre obligatoirement un lien

keen narwhal
#

Oki

#

Mais c'est bon ce que j'ai mis ?

red snow
#

Ui

keen narwhal
#

Oki

#

Bah merci

#

:3

red snow
#

Je sais pas si ça crée une erreur si l'argument nest pas un lien par contre

woeful grove
#

J'ai trouvé moi

#

Stv

#

De l'aide

keen narwhal
#

x')

red snow
#

Mdrr

woeful grove
#

,-,

red snow
#

Pas de soucis Alex :)

woeful grove
#

J'offre mon aide

#

Et il m'appelle de k'sos ce k'sos

queen ocean
#

👀

keen narwhal
#

Enfaite

#

Genre

#

Y'a pas d'error mais ça met pas l'image ;-;

woeful grove
#

Faut que ton lien se termine par

#

.png

red snow
#

Ui

woeful grove
#

.jpg

#

.jpeg

#

.gif

#

Sinon ça ne fonctionnera pas

red snow
#

Non

#

Si

woeful grove
#

Pas avec ce code, j'ai pu tester

#

,-,

keen narwhal
#

Bah ça terminais par .gif

woeful grove
#

,-,

red snow
#

Genre imgur.jspquoi/truc.jpg

woeful grove
#

Bah moi ça fonctionne ,-,

red snow
#

L'image est hébergée sur internet ?

keen narwhal
#

Moi ça marche pas

#

;-;

woeful grove
#

J'ai mis sur Discord

#

Et j'ai prit le lien de Discord

red snow
#

Il faut qu'elle soit herbergee quelque part

woeful grove
#

Dans ce cas là, elle est hébergée sur discord en gros ,-,

red snow
#

(ça marche aussi sur machine, mais ça sert pas à grand chose ^^)

woeful grove
#

Oui

red snow
#

Alors Alex, avec un attachment discord ça marche ?

woeful grove
#

Il a réussi

#

:hihi:

red snow
#

A

#

GG Alex

woeful grove
#

Oui ! GG alex

keen narwhal
#

Merci

#

J'ai même rajouté qu'on puisse choisir la couleure

#

Pas qu'elle soit prédéfinis :3

#

Merci beaucoup Burger

red snow
#

Pas de soucis :)

keen narwhal
#

Bruh

#

On vient d'avoir une error ;-;

red snow
#

Oui

keen narwhal
#

;-;

red snow
#

Car le titre a un nombre de caractère maximal

keen narwhal
#

Mais il est de genre 5 caractère

red snow
#

(de même pour le description, et le add field)

#

Pourtant il dit pas ça le bot

keen narwhal
#

Il fait 24 caractère ;-;

red snow
#

Aaaaaaaaaaaaaaaaaaaaaaaa

#

Oe cest petit pourtant

#

Att

keen narwhal
#

xD

#

Att

#

Enfaite le texte qu'on voulait mettre il fait 500 caract;re

#

Mais

#

Moyen de faire plus de caractère ?

red snow
#

Non

#

Ça c'est l'api discord qui bloque, impossiblz de faire autrement :/

#

Du moins pas a ma connaissance

keen narwhal
#

Bruh

#

Mon pote a fait un embed qui fait 1500 caractère et bah ça a marcher

#

;-;

red snow
#

Eh

#

Impossible

#

Att

#

Le description peut être enft

keen narwhal
#

Bah, je crois c'est la descriptions que ça bloque

red snow
#

Je sais plus où est ce que c'est limite

#

Je vais voir

keen narwhal
slim anvil
#

2048

#

La description

slim anvil
#

256 le titre

red snow
#

Oh il la trouve sur Google

keen narwhal
#

Mais

#

Le titre fait 25 caractère et la description

slim anvil
#

console log ta variable title

#

Et montre

keen narwhal
#

Oki

#

L'emote peut faire tout chier ?

slim anvil
#

Pas bon

#

Non

#

Tu lui envoies un tableau là

#

Pas une string

#

Ça c’est tout ton args

keen narwhal
#

Je l'ai eux

#

Enfaite il avait un | en trop

#

Merci :3

keen narwhal
#

Trop content

#

Que ça marche 😁

red snow
#

Haha :p

keen narwhal
#

:3 Merci beaucoup vous deux

red snow
#

Pas de soucis ;) N'hésite pas si tu as d'autres problèmes

keen narwhal
#

Oki :3

keen narwhal
#
const Discord = require('discord.js');
const client = new Discord.Client();

const fs = requiere('fs');

client.login("secretToken");

client.commands = new Discord.Collection();

fs.readdir("/Commande/", (error, f) => {
    if(error) console.log(error);

    let commandes = f.filter(f => f.split(".").pop() === "js");
    if(commandes.length <= 0) return console.log("Aucune commande trouvée!");

    commandes.forEach((f) => {

        let commande = requiere(`./Commande/${f}`);
        console.log(`${f} commande chargée !`);

    client.commands.set(commande.help.name, commande); 
    });
        
});

fs.readdir("./Events/", (error, f) => {
    if(error) console.log(error);
    console.log(`${f.length} vents en chargement`);

    f.forEach((f) => {
        const events = requiere(`./Events/${f}`);
        const event = f.split(".")[0];

    client.on(event, events.bind(null, client));
    });
});  ```
` C:\Program Files\nodejs\node.exe --inspect-brk=21568 index.js
Debugger listening on ws://127.0.0.1:21568/2287a8a0-2c25-454f-b945-2439730dd9cb
For help, see: https://nodejs.org/en/docs/inspector
Debugger attached.
null: Error: ENOENT: no such file or directory, scandir 'c:\Commandes'
TypeError: Cannot read property 'filter' of undefined
    at c:\Users\hnaut\OneDrive\Bureau\BOT\index.js:13:23
    at FSReqCallback.oncomplete (fs.js:155:23)
#

quelle qu un peux m aider svp

keen narwhal
#

Mec

#

@keen narwhal Tu as 2-3 erreur de syntaxe dans ton require

#

Tu as mis requiere

umbral marsh
#

J'ai un probleme, j'ai fais une commande clear pour mon bot. Dans mon programme j'ai bien le message.delete(); pour que le message "x messages ont été supprimés!" soit lui aussi supprimé au bout d'un certain temps . sauf qu'il ne se delete pas

cyan iron
#

envoie le code au lieu du screen pls

umbral marsh
#

const Discord = require(discord.js);

module.exports.run = async(client, message, args) => {

if(!message.guild.member(message.author).hasPermission("MANAGE_MESSAGES")) return message.channel.send(`Vous n'avez pas les permissions !`).catch(console.error);

if(!message.guild.member(client.user).hasPermission("MANAGE_MESSAGES")) return message.channel.send(`Je n'est pas la permission !`).catch(console.error);

if(!args[0]) return message.channel.send(`Vous devez spécifier un nombre de messages à supprimer !`);

if(isNaN(args[0])) return message.channel.send(`Veillez spécifier un nombre !`);

message.channel.bulkDelete(args[0]);

message.channel.send(`${args[0]} message ont été supprimés !`);

message.delete();

};

module.exports.help = {
name: "clear"
}

cyan iron
#

ouf pas comme ça

#

tu fais

texte
#

Tu n'as pas d'erreurs ?

#

A aucun moment tu supprimes des messages

#

Met le js après les ```

#

Comme ça c'est en couleur

#

Pls

umbral marsh
#
const Discord = require(`discord.js`);

module.exports.run = async(client, message, args) => {

    if(!message.guild.member(message.author).hasPermission("MANAGE_MESSAGES")) return message.channel.send(`Vous n'avez pas les permissions !`).catch(console.error);

    if(!message.guild.member(client.user).hasPermission("MANAGE_MESSAGES")) return message.channel.send(`Je n'est pas la permission !`).catch(console.error);

    if(!args[0]) return message.channel.send(`Vous devez spécifier un nombre de messages à supprimer !`);

    if(isNaN(args[0])) return message.channel.send(`Veillez spécifier un nombre !`);

    message.channel.bulkDelete(args[0]);

    message.channel.send(`${args[0]} message ont été supprimés !`);
    
    message.delete();
};

module.exports.help = {
    name: "clear"
}
```js
#

ca marche pas

ancient sonnetBOT
#
Citation de WailroneFirelion#0666 posté dans #aide-bots

Cliquez sur 📄 pour accéder au message.

tu fais

texte
cyan iron
#

Ah bah nickel

#

bon bref

umbral marsh
#

j'ai fais ton truc

cyan iron
#
jsconst Discord = require(`discord.js`);

module.exports.run = async(client, message, args) => {

    if(!message.guild.member(message.author).hasPermission("MANAGE_MESSAGES")) return message.channel.send(`Vous n'avez pas les permissions !`).catch(console.error);

    if(!message.guild.member(client.user).hasPermission("MANAGE_MESSAGES")) return message.channel.send(`Je n'est pas la permission !`).catch(console.error);

    if(!args[0]) return message.channel.send(`Vous devez spécifier un nombre de messages à supprimer !`);

    if(isNaN(args[0])) return message.channel.send(`Veillez spécifier un nombre !`);

    message.channel.bulkDelete(args[0]);

    message.channel.send(`${args[0]} message ont été supprimés !`);
    
    message.delete();
};

module.exports.help = {
    name: "clear"
}
#

Nan

#

Juste en fait tu cherche a clear quoi exactement ?

umbral marsh
#

un clear pour clear des messages

cyan iron
#

Là tu ne supprime que la commande et c'est tout

slim anvil
#

bulkDelete(args[0]);

cyan iron
#

le bulkDelete je ne connais pas

#

¯_(ツ)_/¯

slim anvil
#

supprime le nv de message dans le chanel

umbral marsh
#

ah bah je veux supprimer le message "x messages ont été supprimés !"

cyan iron
#

Encore une nouveautée de la V12 j'imagine

slim anvil
#

non

cyan iron
#

bah je connaissais pas alors

slim anvil
#

Normal Kocia

umbral marsh
#

le bulkDelete(args[0]); je le mets a la place de mon message.delete();

slim anvil
#

le message.delete()

#

c'est ton message de /clear xxx

#

fais juste ça

#
 message.channel.send(`${args[0]} message ont été supprimés !`).then( newMsg => newMsg.delete(1000))
cyan iron
#

AH bah oui

#

Pas bête :)

umbral marsh
#

et j'enleve mon message.delete ?

slim anvil
#

si tu veux

#

il est delete auto par ton bulkDelete

umbral marsh
#

ok je vais test

slim anvil
#

mais du coup quand tu feras /clear 10 il supprimera que les 9

#

car le 10eme sera ta commande

umbral marsh
#

hm ok

#

bah nan si je laisse le message.delete , ca delete les 2 message par exemple plus mon message a moi

#

mais bon merci quand meme

keen narwhal
#

Une personne a le code pour que notre serveur gmod soit connecté au bot avec l'api de notre hébergeur
Me mentioner ou me mp svp.
merci

red snow
#

C'est à dire connecté ? Tu veux qu'il fasse quoi exactement ?

keen narwhal
#

qui disent combien de joueur, la ram, la mémoire ect

humble storm
#

ça dépend des hébergeurs 🤷

red snow
#

Effectivement

#

Pour les joueurs, tu peux juste faire avec Gmod-servers le site

#

Pour le reste, voit l'API de ton hébergeur

keen narwhal
#

comme sa

humble storm
#

ça dépend des hébergeurs 🤷

red snow
#

Effectivement

keen narwhal
#

Bonjour, aujourd'hui je me suis attaqué à l'attaque de la commande principal de mon bot, en gros, je voudrais faire en sorte que chaque minute un message indiquant l'heure soit envoyé, je me suis donc penché sur setInterval pour faire en sorte que chaque minute un message envoyé, mais je reste bloqué sur la façon de l'utilisé. Si quelqu'un pourrait me l'expliqué ce serait gentil :3. Ou si quelqu'un a une piste sur ce que je dois faire, si vous pouvez me la dire merci :3

red snow
#

D'utiliser quoi ?

#

Le setInterval ?

keen narwhal
#

oui

red snow
#

Tu es sur Visual Studio ?

keen narwhal
#

oui

red snow
#

Met setInt et fais CTRL + espace

#

Puis tu prends le setInterval avec le carré blanc a gauche

#

Et ça te met la fonction

#

Le chiffre est en MS, donc 1000 = 1s

#

60000 = 1 min

#

Puis tu mets le code (Pas après le timer, mais bien avant)

keen narwhal
#

Mais justement, c'est ce que je ne sais pas quoi faire

red snow
#

La fonction qui te permet d'envoyer le message ?

keen narwhal
#

Att j'essaie un truc

#

Justement j'allais essayer de faire une fonction de cooldown sur les commandes de mon bot

red snow
#

Tu mets le code dans les accolades

keen narwhal
#

Mais je mets genre channel.send(current.time) ?

#

Mais je connais pas la fonction

red snow
#

Aaa mais tu parle de ça

#

Je pensais que tu savais pas utiliser le setinterval

keen narwhal
#

Parce que je voudrais la mettre sur genre un fuseau horaire ( Lui de la france )

red snow
#

tu initialise une date

#

Et tu regarde la documentation d'une Date

keen narwhal
#

Et comment je peux le faire ça ?

red snow
#

Essaye de le faire tout seul

keen narwhal
#

Oki

red snow
#

let Date = new Date()

keen narwhal
#

En dehors de mon setInterval

red snow
#

Oui

keen narwhal
red snow
#

Alors

#

Dans le new Date()

#

Pas besoin de mettre la date

#

Tu mets juste new Date()

keen narwhal
#

Même si j'habite pas en france ?

#

Parce que je voudrais que ce soit l'heure de france justement

red snow
#

Pour l'heure de France tu fais

#

Date.getHours

#

Un truc comme ça, +1

keen narwhal
#

Oki

red snow
#

Donc l'heure de France

#

Regarde la doc, car la Date c'est un chiffre qui n'a pas beaucoup de sens pour nous, mais que pour le bot

keen narwhal
red snow
#

Regarde la doc

keen narwhal
#

SyntaxError: await is only valid in async function

red snow
#

ça c'est ta déclaration de channel

keen narwhal
#

Yep

red snow
#

Donc ça je sais pas 🤷‍♂️

keen narwhal
#

;-;

red snow
#

Après le await ne sert a rien dans ce cas là

keen narwhal
#

ReferenceError: Cannot access 'Date' before initialization

#

Mais si je veux l'envoyé dans un channel précis

red snow
#

Le await ne sert pas dans tous les cas

#

Faut juste enlever le await

keen narwhal
#

Fait

red snow
#

Et Il faut initialiser Date avant

slim anvil
#

Le await s'utilise dans une fonction async

keen narwhal
#

Ah ok

#

Et comment je fais pour l'initialiser ?

slim anvil
#

dans ta fonction

#

tu dois avoir un

#

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

#

dans le cas de discord

red snow
#

Si tu veux le mettre dans le ready

#

Tu get la guild, puis le channel ensuite

keen narwhal
#

Aucune error

#

Plus qu'à voir si il envoit un emssage

slim anvil
#

met moins

#

met 1000

#

et tu verras

#

et tu coupes pour pas qu'il flood

keen narwhal
#

Ok

#

Aucun message est envoyé ;-;

red snow
#

il faut que tu écrive un message

keen narwhal
#

Genre

red snow
#

Ecris un message pour lancer l'event

#

Après tu le mettras dans le ready

keen narwhal
#

genre

keen narwhal
#

Je trouve pas

#

J'ai essayer de mettre un if au début et un then return

#

Mais rien

red snow
#

Pourquoi un if et un then ?

humble storm
#

Y'a pas de then en js 🤔

#

C'est if ( condition ) { code }

red snow
#

ça existe then

humble storm
#

Ah ben je sais plus avec quel langage je confond oiseau_pas_content

keen narwhal
#

Bah genre if un message est envoyé return le client.on...

humble storm
#

Ah non oké c'est les Object.then()

red snow
#

genre channel.message.send("Blabla").then(mgs => { })

keen narwhal
#

Ouais un truc du genre sauf au lieu de blabla bah c’est bonjour xD

red snow
#

Mais il sert a quoi le then ?

keen narwhal
#

Bonne question, mais c’est pas plus logique ?

red snow
#

Bah ça dépend

#

Je comprends pas a quoi il te sert

keen narwhal
#

Tu penses que je devrais juste mettre un .return ?

red snow
#

A quoi il te sert ?

keen narwhal
#

De ?

red snow
#

le return et le then

keen narwhal
#

Bah à renvoyé le code pour qu'il se lance non ?

#

Le then, je sais pas

west plover
#

go revoir les bases du langage

#

.then c’est pour les Promises

#

donc rien à voir avec les conditions

#

de plus tu crée un récepteur d’event dans ce même event? thinkgeometric

red snow
#

Whut

#

C'est quoi ça

keen narwhal
#

Je sais vraiment pas et j'ai commencé genre vraiment il y a une semaine, je connais pas encore tout et je pense pas un jour tout connaitre

#

Donc c'est normal que je demande de l'aide pour des choses que je sais pas faire

red snow
#

Fais du JS avant de faire du DiscordJS/NodeJS

#

Juste les bases

#

Puis après, commence le discordjs

#

Et avec la doc

keen narwhal
#

Est-ce que je peux au moins finir ça ? Après j'irais faire du JS de base

slim anvil
#

vous voulez utiliser des librairies et des framework js

#

avant de savoir ce qu'est une promise ou même comment écrire votre code....

#

pas gênant d'aider, mais si c'est pour tout faire c'est trop facile..... dans aide bots on est pas censé expliquer ce qu'est une condition

keen narwhal
#

Bah, je vais aller regarder les bases et je vais revenir plus tard merci quand même :3

umbral marsh
#

j'ai fais un programme pour faire un message de bienvenue pour mon serveur discord. Sauf que quand une personne rejoins mon serveur, ca n'affiche rien dans le salon et dans mon debug ca me mets un message d'erreur.

#

programme

#

debug erreur

fringe wyvern
#

c'est pas plutot guildMemberAdd quand quelqu'un rejoint le discord ?

umbral marsh
#

att je test

#

l'erreur a changée

fringe wyvern
#

c'est normal

umbral marsh
#

dis moi

fringe wyvern
#

tu utilises l'argument guild

#

alors que c'est member pour guildMemberAdd

#

je te montre vite fait ce que j'avais fait

#
client.on( 'guildMemberAdd', member => {
    //member.addRole( '688838052100964460' )

    const embed = new RichEmbed()
    .setTitle( `Bienvenue à ${ member.user.username }` )
    .setThumbnail( member.user.avatarURL )
    .setColor( '#1194EF' )
    member.guild.channels.get( '688859986390024262' ).send( embed );
} ) 
umbral marsh
#

donc a la place de tous les guild je mets member ?

fringe wyvern
#

non justement

#

tu dois mettre un truc avant guild

#

tu dois utiliser member en fait

umbral marsh
#

je peux t'envoyer mon code en mp et tu le modif ?

fringe wyvern
#

donc mets member devant chaque guild

#

nan je fais pas le code

#

j'aide

umbral marsh
#

devant TOUS les guild ?

fringe wyvern
#

oui

slim anvil
#

Enfaite arkov t'embête pas plus

#

tu prends son event avec le member

#

tu fais un console.log(member) Kocia

#

et tu regardes ce que tu reçois dedans....

umbral marsh
#

je le mets ou

slim anvil
#

dequoi ?

umbral marsh
#

console.log

slim anvil
#

à ton avis Kocia

#

essayes

#

et tu verras bien

umbral marsh
#

apres le .setcolor ?

slim anvil
#

essayes

umbral marsh
#

donc c pas ca

#

nan ca pas sa

#

ca me mets member is not defined

fringe wyvern
#

client.on( 'guildMemberAdd', member => {

#

t'as bien mis ca

#

client.on( 'guildMemberAdd', guild => {

#

et pas ca ?

umbral marsh
#

j'aavais mis client.on( 'guildMemberAdd', guild => {

#

et ca me mettait memebr is not defined

#

donc jai mis

#

client.on( 'guildMemberAdd', member => {

#

et mtn ca me dit

#

guild is not defined

slim anvil
#

Pfiou...

#

Bon screen ton code actuel

umbral marsh
slim anvil
#

Je te laisse avec ça

#

et le console.log il sert pas à faire jolie

umbral marsh
#

j'enleve tous les guil et je mets member a la place

slim anvil
#

Regarde ce que tu reçois dedans

umbral marsh
#

j'enleve tous les guild et je mets member a la place
@umbral marsh

slim anvil
#

je t’ai répondus

#

@umbral marsh ce que j’ai mis tout à l’heure ça te concerne aussi

#

tu essayes rien, tu attends juste la bonne réponse je vois pas l’utilité

#

ça te fera pas progresser

umbral marsh
#

j'ai reglé plein de bug tout seul depuis le debut je demande que ce que j'arrive vrmt pas

slim anvil
#

Je te donne des pistes mais tu ne les exploites pas je t’ai dis de mettre un log de ton member tu l’as mis en double et puis c’est tout a aucun moment tu as regardé ce que ça log.....

#

alors que si tu regardes, tu comprendras ce que tu dois faire

umbral marsh
#

si j'ai regardé et ca mets No debug adapter, can not send 'variables'

#

Et le dernier console.log jai juste oublier de l'enlever

red snow
#

Les gars lisez la doc aussi ^^

umbral marsh
#

Il faut que je mette message devant guild ?

#

bon j'ai essayé plein de truc mais je vois vrmt pas où est le probleme

crimson fern
#

Message ?

#

Dans un guildMemberAdd

timid loom
#

@umbral marsh qu'est-ce que tu veux faire ?

umbral marsh
#

un message de bvn mais avec mon programme, ca l'envoie pas @timid loom

red snow
#

Encore, une fois tu as la documentation pour le guildMemberAdd

timid loom
#

@umbral marsh dans ce cas déjà c'est bizarre que ton message s'adresse à une guild, non ? C'est un membre auquel tu souhaite la bienvenue

umbral marsh
#

voici mon code

red snow
#

Et qu'est ce que ton erreur ?

#

Oula mais attend

#

Tu es sur d'avoir les bases en Javascript ?

umbral marsh
#

pk

red snow
#

Parce que l'erreur est quand même relativement visible

#

Regarde les noms des variables ^^

umbral marsh
#

je viens de commencer je m'exerce

red snow
#

Oui, mais t'exerce pas sur une lib

#

Exerce toi sur du JS pur et dur

slim anvil
#

@umbral marsh la question de taink, c'est que quand le membre rejoins tu n'affiches que des informations relatives au serveur et non au user, donc dès que quelqu'un va rejoindre tu vas afficher a chaque fois quasi les memes infos

umbral marsh
#

mais c pour un bot

#

je sais

red snow
#

Je comprends que c'est pour un bot, mais apprend d'abord le JS

umbral marsh
#

ui je sais mais la faut que je regle se probleme et mon bot sera fini

red snow
#

Bah lis les variables et tu verras

umbral marsh
#

bah c guild

slim anvil
#

Oui mais tu le sors d'où guild

red snow
#

...

umbral marsh
#

de nul part mdr

slim anvil
#

Et donc rien ne te choque ?

red snow
#

Pourquoi tu le mets alors ?

umbral marsh
#

¯_(ツ)_/¯

red snow
#

Tu ne pense pas qu'il faut initialiser une variable avant de l'utiliser ?

umbral marsh
#

en francais plz

slim anvil
#

c'est très français

red snow
#

Tout est français justement

umbral marsh
#

bah en plus facile alorts

slim anvil
#

Tu essayes d'utiliser une variable qui n'existe pas

umbral marsh
#

comment je fais pour la faire exister ?

slim anvil
#

On en revient à ce que je t'ai dis hier, tu as mis un console.log(member) le paramètre que tu reçois de ton event guildMemberAdd

#

regarde ce qu'il te retourne

red snow
#

Tu l'initialise, tout comme une autre variable, par exemple, tu peux faire
let maVariable = "Bonjour"

#

Mais a la place de ça, tu mets guild, et tu lui attribue la bonne chose

umbral marsh
#

oula

#

@slim anvil

slim anvil
#

du coup

#

ca reste assez compréhensible

umbral marsh
#

c ce que j'avais dis hier ...

slim anvil
#

Je t'ai dis que c'était faux ?

umbral marsh
#

mais je le mets que sur celui la $

slim anvil
#

je t'ai dis de tester

umbral marsh
#

nan ta rien dit

slim anvil
#

Non tu le mets sur chaque

#

là le screen que tu m'as envoyé c'est un objet, qui est dans ta variable member

#

si tu veux afficher le guild tu as qu'à faire member.guild.name par ex

umbral marsh
#

c bon la

slim anvil
#

regarde ton truc

#

tu as un guild tout seul encore

umbral marsh
#

c bon je lance

slim anvil
#

Mais je ne comprend rien à ton message, c'est un message de bienvenue pour les nouveaux utilisateurs, ou un message quand le bot est ajouté sur un serveur ?

#

à aucun moment tu affiches le nom de l'utilisateur qui a rejoint

umbral marsh
#

en gros c une sorte de message pour que l'utilisateur ai des renseignement sur le serveur

slim anvil
#

Mais tu vas spam le channel des memes infos, peut etre mieux de lui envoyer en mp

umbral marsh
#

bonne idée

slim anvil
#

enfin après ça c'est ton choix, mais du coup ton setDescription n'est pas bon, tu dis en gros
Merci à Game Creators Area d'avoir ajouté NOM_DU_BOT

#

si je dis pas de connerie

humble storm
#

Tu dis juste

umbral marsh
#

oui c ca

slim anvil
#

Bon bah si ça te convient tant mieux

red snow
#

Mais tu remercie le serveur de faire rejoindre un membre ?

umbral marsh
#

nan att je regle un truc

slim anvil
#

Il remercie le serveur de faire rejoindre le bot qui envoie le message

umbral marsh
#

eh oh c bon hein 😂

red snow
#

🤔

humble storm
#

Il se l'envoie dans un channel à lui je crois

red snow
#

Ui logiquement vu qu'il y a l'id

slim anvil
#

Bon après c'est du détail ça Kocia, tu auras juste a changer dans le setDescription le client.user.username

#

bn allez bn app

red snow
#

Mdrr a toi aussi

umbral marsh
#

ya pas sqlite dans la derniere version de vs ?

sand shore
#

Les gens faut arrêter d'utiliser var hein

#

il est plus utiliser depuis longtemps

red snow
#

let ♥️

sand shore
#

ça marche pas

red snow
#

A ui, c'est un exemple de merde 😂 J'ai jamais utilisé let var = .... 🤷‍♂️

sand shore
#

bah change, car si un gars a la bonne idée de prendre ton exemple

red snow
#

Ah

sand shore
#

change par n'imp

slim anvil
#

de toute façon l'exemple est pas bon car il voulait stocker une variable qui ne change pas de valeur

#

donc ça aurait du être const kappo

red snow
#

gneugneuh, c'était un exemple d'initialisation d'une variable :smart:

red snow
#

Bonjour, auriez vous un moyen de vérifier si la personne ayant envoyé un message est un bot ?

west plover
#

y a une var bot sur les User il me semble

red snow
#

Donc je fais un instanceof message.author.bot ?

west plover
#

yes

red snow
#

👌 merci !

west plover
#

euh pourquoi instanceof?

red snow
#

Pour voir si c'est un bot ?

west plover
#

bot est un bool

red snow
#

A mais non

#

Ui je viens de le lire, merci :)

west plover
#

no problem

left snow
#

Bonjours je vouderai faire un bot qui avec une commande puis un message non deffini pour du rp genre pour un darknet en ano mais je sais pas trop comment m y prendre des idee ?

oak turret
#

Tu peux éclaircir ta demande stp?

#

tu veux que si un user fait /ano sonmessage ça écrive (Anonyme) son message ?

umbral marsh
#

je pense que c ca

leaden hollow
#

Salut

#

quelqu'un connait la lib discord js ?

#

Si oui vous savez pourquoi on ne peut plus self bot avec ?

west plover
#

peut-être parce que c’est pas légal thinkgeometric

leaden hollow
#

Mais on peut tjrs faire des actions sans discord js

west plover
#

enfin conforme au règlement de discord

leaden hollow
#

Pourquoi seulement discord js serait broke

#

Dommage car discord js était plutôt sympa

west plover
#

j’imagine que c’est pour réduire les self bots

#

ça me paraît logique 🤔

leaden hollow
#

Mais c'est stupide cette règle

red snow
#

Bah désolé mais de spam pub c'est aussi stupide

leaden hollow
#

wtf

#

@red snow De quoi tu parles

red snow
#

La plus part du temps, les gens utilisait les self bot pour spam pub

#

Après jsp si c'est toujours utilisable

leaden hollow
#

Oui

#

c'est juste les libs qui sont casser

red snow
#

Ah

#

Qu'est ce qu'elles ont ? Elles sont plus utilisable ?

leaden hollow
#

Mais je veux pas pub mp mdr je veux le vocal

red snow
#

Oe je comprends bien que toi tu veux pas pub, mais ya plein de gens ils vont le faire, et malheureusement, c'est à cause de ces gens que discord bloquera sûrement un jour les trucs comme ça

timid loom
#

Discord peut pas les bloquer vu que c'est comme ça que leur client fonctionne

#

Ou alors ils faudrait tout refaire et je doute qu'ils veuillent faire ça

#

Cela dit c'est toujours possible de self bot avec discord js, c'est juste que tu dois créer certaines routes toi-même en te basant sur la doc de Discord @leaden hollow

#

Ils ont fait ça pour trier une bonne partie des gens

#

À mon avis Discord leur sont tombé dessus et ils ont dû progressivement retirer les routes

#

Ça doit être possible de voir comment c'était fait avant via le git history mais bon

#

Ça sera pas prémâché quoi

#

Les raisons derrière ça sont diverses mais ça me semble logique que ça soit pas autorisé

leaden hollow
#

@timid loom Merci 😁 je vais check le git

timid loom
#

garde à l'esprit aussi que de leur côté discord ont ptêt changé le comportement de certaines routes

leaden hollow
#

Ils ont une api

#

dispo sur leur site en vrai donc je peux check la

timid loom
#

voui justement

#

c'est ce que je veux dire, il faut le faire en même temps

leaden hollow
#

👌 C'est pour le vocal et je pense que c'est du web socket etc

dark sonnet
#

bonjour/bonsoir , j'aurais besoin d'aide par rapport a un bot en Python , enfaite voila je sais pas comment pouvoir me refere a tout les member du server pour pouvoir dm tout les members du server .

left snow
#

@oak turret C EST SA EFFECTIVEMENT

#

dsl maj

oak turret
#

t’as commencé ton bot ?

left snow
#

nop je vois pas comment coder se genre de systeme

oak turret
#

il peut y avoir du méta a gogo sur ça sur un bot discord

#

en gros

left snow
#

ouai mais comme c est puni et dans tout les cas sa sera marquer dans les logs je pourai le controler

oak turret
#

suffit de créer une commande /ano gérer le message puis le send en récupérant le message et en mettant le send en « Anonyme » + message, c’est tout con à faire

left snow
#

ahhhh javais pas vue sa comme sa effectivement merci

oak turret
#

et juste avant le send tu supprimes le message du joueur

left snow
#

ouai sa logique

oak turret
#

je le ferais demain, si tu galères je te donnerais le code

left snow
#

ahh ouai pas con merci tu gere mec je vois sa plus tard la je mange mdrr

oak turret
#

np ^^

left snow
#

bah si tu le fait tu me pv

#

on verra si j ai compris 😉

oak turret
#

yep 😉

oak turret
#

@left snow Voici le code :

if(command === "ano") {
       const messageano = message.content.split(" ").slice(1).join(" ");
       message.delete();
       message.channel.send(`[Anonyme] : ${messageano}`);
                  
    }

ça marche chez moi 😉

left snow
#

OHH merci tu gere javais pas encore regarder

oak turret
#

np ^^ je te donne le code du bot si tu veux ^^

left snow
#

si tu veux

oak turret
#
const Discord = require('discord.js'); 

const client = new Discord.Client();

const config = require('./config.json');

client.on("ready", () => {

    console.log(`Le bot a démarré, avec ${client.users.size} utilisateurs dans ${client.guilds.size} serveurs.`);
    client.user.setActivity("&help pour en savoir plus.");

});

client.on("message", async message => {

    if(message.author.bot) return;
    if(message.content.indexOf(config.prefix) !== 0) return;

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

    if(command === "ano") {
       const messageano = message.content.split(" ").slice(1).join(" ");
       message.delete();
       message.channel.send(`[Anonyme] : ${messageano}`);
                  
    }



});

client.login(config.token);
left snow
#

j ai une question tu pence que sa ferai mieux en umbed

oak turret
#

non fin je pense pas

#

c'est mieux de le faire comme ça c'est plus simple et ça prends moins de place ^^

#

après libre à toi de faire un embed

left snow
#

effectivement tu a raison

#

merciiiiiiiii

oak turret
#

avec plaisir ^^

red snow
#

Bonjour, j'avais déjà posté ma demande, mais j'ai pas eu de reponse. Est ce que vous sauriez comment faire un invit manager ? Juste un compteur, après, je sais faire

oak turret
#

une boucle ?

#

j'avais une idée mais j'ai oublié sue

red snow
#

Ah

#

Genre recup le joueur qui a créé l'invitation tu vois

oak turret
#

Ouais je vois

slim anvil
#

Tu peux récupérer toutes les invitations je crois

#

Du coup tu regardes les invitations crée par un utilisateur, et tu regardes combien de fois elle a été utilisé

#

ça doit etre stocké dans l'invitation

red snow
#

Oe, mais je préfère faire ça sur les join, parce que je veux que quand la personne quitte, ça enlevé 1 une invitation dans le compteur

oak turret
slim anvil
#

Dans le guildMemberAdd peut-être que tu peux trouver quelle invitation il a use

red snow
#

A tu pense?

slim anvil
#

No sé, faut check l'objet que tu reçois

red snow
#

Et du coup, fetch toutes les invitations, et faire une boucle ?

oak turret
#

look la vidéo il le fait le gars

red snow
#

Mmh la j'ai pas mon pc sous la main, je le ferai demain ou ce soir

slim anvil
#

yes c'est ça superburger

oak turret
#

Il send en array tous les users ayant invités des personnes et le nombres d'utilisations

red snow
#

Je préfère le faire sans tuto, sauf j'y arrive vraiment pas

#

Puis j'avais déjà regardé et c'était que sur des anciennes versions

oak turret
#

yes

red snow
#

Mais merci quand même :)

oak turret
#

np ^^

oak turret
#

yop, je voudrais find un channel depuis son id en utilisant ça :

const admin_send = client.channels.find('id', 'iddusalon');

mais ça me dis que client.channels.find n'est pas une fonction :x

red snow
#

Ui

#

Parce quil faut que tu get la guild

oak turret
#

wtf je l'avais fais une fois mais ça avait marcher sans

red snow
#

A mais non

#

🤦‍♂️

#

Client.channels.cache.find

oak turret
#

ah oui ololo :x

red snow
#

(si ça marche pas, faut bien mettre guild)

oak turret
#
const admin_send = client.channels.cache.find('id', '708729093834670161');

marche pas mais ça me met fn.find is not a function xD

#

comment je get la guild ça fais longtemps que j'ai pas fais ça

red snow
#

Ça s'utilise comme ça le find?

oak turret
#

normalement oui

red snow
oak turret
#

mais sinon j'avais fais :

client.channels.get('id')
#

bah sinon je fais avec le name

red snow
#

Fais avec le. Cache aussi

#

Pour voir

oak turret
#

du style :

const channel = client.channels.find('name', 'n');
#

yep je test

red snow
#

Sinon bah guild

#

Pour get la guild, tu fais un.find mais sur une guild

#

Ou un get

oak turret
#

ouais non ça fais pareil

red snow
#

Get 'a guild alors

oak turret
#

je prend l'id de quoi du coup pour la guild

red snow
#

Du serveur

oak turret
#

ah oui j'suis con, merci je test

#

comme ça on est d'accord :

         const get_guild = client.guilds.find('id', 'id');
red snow
#

.cache

oak turret
#

ah oui :x

red snow
#

Mais sinon ui

#

Après tu peux tout faire sur une ligne

#

Comme tu veux

oak turret
#

ça me met le fn.bind is not a function

#
 if(command === "ticket") {
         const reason = message.content.split(" ").slice(1).join(" ");
         const mp = message.author.send(`Bonjour/Bonsoir ${message.author}, un membre de notre équipe va prendre en charge votre ticket.`);
         const get_guild = client.guilds.cache.find('id', 'idserv');
         const admin_send = client.channels.find('name', 'admin');
         const admin_embed = new Discord.MessageEmbed()
         .setColor("#0099ff")
         .setTitle(`Ticket de ${message.author}`)
         .setAuthor("aLife | Bot", "https://i.imgur.com/T7beXKg.png", "https://alife.mtxserv.com/")
         .addFields(
            { name: 'Utilisateur', value: `${message.author}`, inline: true },
            { name: 'Raison', value: `${reason}`, inline: true },
            { name: 'Channel', value: `${message.channel}`, inline: true },
            
         )
         .setTimestamp()
         .setFooter("aLife | Bot", "https://i.imgur.com/T7beXKg.png");
         message.channel.send(admin_send);
     }
red snow
#

Attend mais c'est quoi cette erreur déjà

#

Essaye avec des get

oak turret
#

mon code est bon non ? je suis pas fou

red snow
#

L'erreur renvoie quelle ligne

oak turret
#

alors j'ai réussi MAIS ça me le mets pas dans le bon channel xD

red snow
#

Ah

#

Tu dois copier la mauvaise id mdrr

oak turret
#

non j'ai compris pourquoi j'avais message.channel.send

#

mais quand je mets channel.send ça me dis qu'il est pas define

red snow
#

Tu l'as pas définis

oak turret
#

je la définis en quoi ? :x

red snow
#

Avec ton get de tout à l'heure

#

Genre truc.truc.get(id,truc).sendtruc

oak turret
#

const channel = admin_send ?

#

c'est la première fois que ça me fais ça da fuck

red snow
#

Tu veux que le message s'envoie ou ?

oak turret
#

dans un salon 'admin'

red snow
#

A, du coup tu fais admin_send.send(admin_embed)

oak turret
#

ça me dis Cannot read property 'send' of undefined

#

sûrement les deux send

red snow
#

Non

#

Faut mettre le cache

#

Renvoie ton code maintenant que t'as tout mis à jour

oak turret
#
if(command === "ticket") {
         const reason = message.content.split(" ").slice(1).join(" ");
         const mp = message.author.send(`Bonjour/Bonsoir ${message.author}, un membre de notre équipe va prendre en charge votre ticket.`);
         const get_guild = client.guilds.cache.get('id', '708665648494149693');
         const admin_send = client.channels.cache.get('name', 'admin');
         const admin_embed = new Discord.MessageEmbed()
         .setColor("#0099ff")
         .setTitle(`Ticket de ${message.author}`)
         .setAuthor("aLife | Bot", "https://i.imgur.com/T7beXKg.png", "https://alife.mtxserv.com/")
         .addFields(
            { name: 'Utilisateur', value: `${message.author}`, inline: true },
            { name: 'Raison', value: `${reason}`, inline: true },
            { name: 'Channel', value: `${message.channel}`, inline: true },
            
         )
         .setTimestamp()
         .setFooter("aLife | Bot", "https://i.imgur.com/T7beXKg.png");
         admin_send.send(admin_embed);
     }
#

j'ai enlevé le channel du coup

red snow
#

Mais tu es sur quelle version ?

oak turret
#

de ?

#

nodejs ?

red snow
#

Discord JS

oak turret
#

ah

red snow
#

Ou node je sais jamais

oak turret
#

je l'ai installé hier du coup fin pour ce bot

red snow
#

Ah

#

Att

#

Fais avec l'id du channel admin

oak turret
#

et pas le name ?

red snow
#

Parce qu'avec le nom faut mettre les majuscules etc 🤷‍♂️ on sait jamais

#

A mais j'avais pas v7

#

En fait

oak turret
#

aucune erreur mais ça mets rien xd

red snow
#

Il faut que tu mette admin_send = client.guilds.cache.get('id', 'id du serv').channels.cache.get(le reste)

crimson fern
#

Pourquoi .get('id', 'id du serv')

red snow
#

Pour get un channel il faut la guild

crimson fern
#

Yep

#

Mais le 'id' est inutile

red snow
#

A ça je sais pas j'utilise pas les get

#

Je fais que des find 🤷‍♂️

oak turret
#

il me dit que channels n'est pas lisible ou pas définit

crimson fern
oak turret
#

const admin_send = client.guilds.cache.get('id', '708665648494149693').channels.cache.get('id', '708729093834670161');

crimson fern
#

Get > find pour les id

red snow
#

Fais ce qu'a dit Samuel

crimson fern
#

Find evite

oak turret
#

donc

red snow
#

Oe je sais, on m'a dit de pas faire ça

#

Mais j'avais pas compris pourquoi

crimson fern
#

Je vais sur pc et je regarde ton code vite fait

red snow
#

Du coup j'ai continué mdrr

crimson fern
#

Histoire de facilité

oak turret
#
         const admin_send = client.guilds.cache.get('708665648494149693').channels.cache.get('708729093834670161');
#

on est ok ?

crimson fern
#

Yep

red snow
#

Oui

#

Après c'est devenu une habitude alors 🤷‍♂️

oak turret
#

merci les bg 😉

crimson fern
#

J'utilise plus que les id moi

oak turret
#

maintenant je le saurais, merci les mecs <3<3

crimson fern
#

Np

red snow
#

Pas de soucis :)

#

Et oe moi aussi j'utilise que les id

#

Mais du coup, avec les get, on peut faire .get('welcome') par exemple ?

crimson fern
#

Nop

#

get permet de trouver direct via l'id

red snow
#

A oe ok

crimson fern
#

Tu peux get des mots aussi

#

mais pour les mots, je préfère utiliser find

red snow
#

A ui on peut utiliser les String effectivement

oak turret
#

ahh les gars petit soucis techniques, j'ai du me tromper dans la syntaxe mais je vois pas où, je veux tag un rôle dans mon serveur dans un field :

 if(command === "ticket") {
         const reason = message.content.split(" ").slice(1).join(" ");
         const mp = message.author.send(`Bonjour/Bonsoir ${message.author}, un membre de notre équipe va prendre en charge votre ticket.`);
         const admin_send = client.guilds.cache.get('708665648494149693').channels.cache.get('708729093834670161');
         const guilds = client.guilds.cache.get('708665648494149693');
         const grade = guilds.roles.cache.get('709126548657274952');
         const admin_embed = new Discord.MessageEmbed()
         .setColor("#0099ff")
         .setTitle(`Ticket de ${message.author.tag}`)
         .setAuthor("aLife | Bot", "https://i.imgur.com/T7beXKg.png", "https://alife.mtxserv.com/")
         .addField(`${grade.mention}`)
         .addFields(
            { name: 'Utilisateur', value: `${message.author}`, inline: true },
            { name: 'Raison', value: `${reason}`, inline: true },
            { name: 'Channel', value: `${message.channel}`, inline: true },
            
         )
         .setTimestamp()
         .setFooter("aLife | Bot", "https://i.imgur.com/T7beXKg.png");
         admin_send.send(admin_embed);
     }

J'ai était obligé de define ma guild sinon ça me le trouvait pas, et ça marche mais ça me met "undefined", j'ai zappé un truc ?

crimson fern
#

J'ai pas compris

#

Tu veux tag un rôle dans ton embed ?

slim anvil
#

fais le avec la syntaxe de tag direct

oak turret
#

yep

slim anvil
#

<&622054964717682724>

#

no c'est pas celle ci

#

@thorny pumice

#

ah non ça cle user

crimson fern
#

Par contre, je comprend pas pourquoi faire :

         .addField(`${grade.mention}`)
         .addFields(
            { name: 'Utilisateur', value: `${message.author}`, inline: true },
            { name: 'Raison', value: `${reason}`, inline: true },
            { name: 'Channel', value: `${message.channel}`, inline: true },
            
         )```
oak turret
#

lequel ?

slim anvil
#

Yes du coup fais juste <@ &622054964717682724>

crimson fern
#

Bah, enfaite, tu fais addField et addFields

#

surtout que ton:

         .addField(`${grade.mention}`)
#

ne va pas marcher

slim anvil
#

c'est 2 params required yup

crimson fern
#

fait un .setDescription

#

au pire

oak turret
#

ouais pas con xD je vais test

#

donc pour tag le grade je fais "@legrade" on est d'accord ?

slim anvil
#

avec un &

oak turret
#

le \

slim anvil
#

entre @ et l'id

oak turret
#

ahhh ouiii

slim anvil
#

<@ &622054964717682724> sans l'espace

oak turret
#

.setDescription("@&<@&709126548657274952>") marche po xD

crimson fern
#

d'ailleurs, je te conseille d'éviter le .setAuthor et .setTitle, ca rend pas souvent joli

#

@oak turret tu as mis quoi donc ton code ?

oak turret
#

ça rends comme ça (la qualité du logo est deg mais c'pas la priorité)

#

ça :

.setDescription("@&<@&709126548657274952>")
crimson fern
#

et ton code, ca rend quoi ?

#

ah ok

slim anvil
#

tu mets @&

#

devant le truc

crimson fern
#

enlève le

oak turret
#

ouaip mais ça me tag pas :x

slim anvil
#

tu as laissé quoi

oak turret
#

ça met bien le @admin mais

#
         .setDescription("<@&709126548657274952>")
#

avec ça ça me met le tag du rôle mais le mentionne pas

slim anvil
#

t'as pas désactivé le mention sur ce rôle ?

oak turret
#

je viens de l'activé mais ça me met ça

#

ah attend

#

mon bot bug là je crois :x;

#

wololo il me spam mp en plus il mets plus le tag wtf

#

C'est bon ^^

#

dites moi tout ça c'est opti ?

 if(command === "ticket") {
         const reason = message.content.split(" ").slice(1).join(" ");
         if(reason.length == 0) {
             message.channel.send("Vous devez mettre une raison !");
             return false;
         }
         const mp = message.author.send(`Bonjour/Bonsoir ${message.author}, un membre de notre équipe va prendre en charge votre ticket.`);
         const admin_send = client.guilds.cache.get('708665648494149693').channels.cache.get('708729093834670161');
         const admin_embed = new Discord.MessageEmbed()
         .setColor("#0099ff")
         .setTitle(`Ticket de ${message.author.tag}`)
         .setAuthor("aLife | Bot", "https://i.imgur.com/T7beXKg.png", "https://alife.mtxserv.com/")
         .setDescription("<@&709126548657274952>")
         .addFields(
            { name: 'Utilisateur', value: `${message.author}`, inline: true },
            { name: 'Raison', value: `${reason}`, inline: true },
            { name: 'Channel', value: `${message.channel}`, inline: true },
            
         )
         .setTimestamp()
         .setFooter("aLife | Bot", "https://i.imgur.com/T7beXKg.png");
         admin_send.send(admin_embed);
     }
slim anvil
#

le fait de faire chaque commande dans ton index c'est pas très opti de base

oak turret
#

c'est comme ça :

#

oauis non trop gros :x

crimson fern
#
         if(reason.length == 0) {
             message.channel.send("Vous devez mettre une raison !");
             return false;
         }

->

         if(!reason) return message.channel.send("Vous devez mettre une raison !");
slim anvil
#

dans ce cas là

oak turret
#

et avec mon else return true pareil ?

slim anvil
#
if (!raison.length)
crimson fern
#

J'ai pas fait attention à la condition

slim anvil
#

Mais pas fan de pas mettre de {}

crimson fern
#

else return true ?

slim anvil
#

on se retrouve vite avec des trucs imbitables

crimson fern
#

autant faire un else return;

oak turret
#

ah oui non j'suis con

#

c'est vrai :x

crimson fern
#
         const mp = message.author.send(`Bonjour/Bonsoir ${message.author}, un membre de notre équipe va prendre en charge votre ticket.`);
slim anvil
#

ça sert à rien de faire un else return

crimson fern
#

Voit pas l'utilité de le mettre en const

slim anvil
#

met juste un return direct dans ce cas là

crimson fern
#

⬆️

oak turret
#

je l'avais même pas mit le const y a 10 minutes xD

crimson fern
#

ah x)

oak turret
#

le return c'est good

crimson fern
#

A part c'est 2 trucs, je vois pas de truc non opti

#

Tu utilises les const donc ca c'est nickel

oak turret
#

ok super ! merci à vous les gars !

slim anvil
#

Mais pour des bots essentiellement en commande

#

utilisez commando

#

super ta connexion Enzo 10s pour envoyer un message

oak turret
#

connais pas, suis-je inculte ? xD

crimson fern
#

commando, j'aime pas perso

#

ah bah nice, moi aussi les 10s

humble storm
#

Non non enzo c'est discord qui bug

oak turret
#

c'est quoi commando ?

#

ah moi aussi

#

sinon, vous me conseillez quoi héberger le bot ?

#

okay !

crimson fern
#

Discord ont encore rien dit sur les problèmes de co

#

Ah mais c'est que sur ce discord 🤔

oak turret
#

on peut récupérer le nombre de ticket qu'un joueur a crée puis les afficher ? (de ma commande)

#

ça mets toujours 10sec moi 😮

#

oyoy

hazy mirage
#

c gca qui casse tout tkt kappa

oak turret
#

on est d'acord que const user = client.guilds.memberCount; ça me retourne normalement le nombre de membres sur un discord ?

#

(même les bots)

red snow
#

Ui

#

Mais ça s'utilise pas comme ça

oak turret
#

ça s'utilise comment alors ?

#

ça marche mais ça me met undefined

red snow
#

client.guilds.get('id').memberCount

oak turret
#

nickel merci ^^

crimson fern
#

i'm back

oak turret
#

Bon c'est encore moi xD, alors j'ai une idée dans la tête mais je sais pas comment la faire, je pense que c'est une boucle mais je sais pas comment la faire, j'ai envie d'initialisé une var nommé "nbr_ticket" égale à 0 et à chaque fois que l'user fais un ticket ça fais nbr_ticket = nbr_ticket + 1 mais j'ai essayé mais marche po

crimson fern
#

Alors, je te conseil d'utiliser enmap

#

et non du json

#

car il faut que tu stock la valeur

oak turret
#
if(command === "ticket") {
         let nbr_ticket = 0;
         const reason = message.content.split(" ").slice(1).join(" ");
         if(reason.length == 0) {
             message.channel.send("Cette commande nécessite une raison `&ticket raison`");
             return false;
         }
         else {
            nbr_ticket = nbr_ticket + 1;
             return;
            
         }

Sûrement pas comme ça, mais vu que c'est là qu'il créer ou pas le ticket je me suis dis, qui ne tente rien n'a rien, mais j'ai perdu :x

#

comment ça ?

crimson fern
#
         if(reason.length == 0) {
             message.channel.send("Cette commande nécessite une raison `&ticket raison`");
             return false;
         }
#

oublie pas de modif ca

#

ensuite, ton let ne sera pas sauvegardé indéfiniment

oak turret
#

oui xD j'ai oublié mais je le ferais quand j'aurais finis ce que j'ai dans la tête

#

une const ne marche pas

crimson fern
#

Toujours pas

oak turret
#

je fais comment du coup ?

slim anvil
#
         if(reason.length == 0) {
             message.channel.send("Cette commande nécessite une raison `&ticket raison`");
             return false;
         }
crimson fern
#

Alors, je te conseil d'utiliser enmap
@crimson fern

oak turret
#
if(!reason) {
             message.channel.send("Cette commande nécessite une raison `&ticket raison`");
             return false;

}
slim anvil
#

Autant faire un return message.channel....

#

etc

ancient sonnetBOT
#
Citation de Samuel.#0001 posté dans #aide-bots

Cliquez sur 📄 pour accéder au message.

         if(reason.length == 0) {
             message.channel.send("Vous devez mettre une raison !");
             return false;
         }

->

         if(!reason) return message.channel.send("Vous devez mettre une raison !");
slim anvil
#

Après installer un package npm pour stocker juste une data

#

Je vois pas l’intérêt

crimson fern
#

Yep

oak turret
#

Je vois pas comment faire autrement

crimson fern
#

Mais faut éviter le json

slim anvil
#

pourquoi faut éviter le json

#

il va stocker un Number

oak turret
#

yep

crimson fern
#

Le JSON peux se corrompre

oak turret
#

de base à 0 et puis +1 à chaque ticket crée

crimson fern
#

meme si y'as que quelques valeurs

slim anvil
#

sinon tu fais plus simple Lartaxx

crimson fern
#

et json n'est pas fait pour stocker de base

slim anvil
#

Chaque ticket tu le republies dans un channel caché

#

Et pour avoir le nombre de ticket tu regardes le nombre de message dans ton channel

#

Ça te fait un historique de ticket en même temps

oak turret
#

donc je l'envoie deux fois

#

et je compte le nombre de message dans ce channel

#

pas con

slim anvil
#

Bah tu l’envoies une fois dans le channel log-tickets par exemple

oak turret
#

mais je veux savoir le nombre de ticket crée par l'utilisateur en question

#

pas en général

slim anvil
#

après si tu veux un vrai système de ticket utilise une base de donnée sqlite ou quoi

crimson fern
#

enmap 🤷

oak turret
#

non pas un vrai juste qu'il stocke le nombre de tickets juste ça

slim anvil
#

Oui n’importe celui qu’il veut

oak turret
#

je connais pas enmap on peut m'expliquer ?

crimson fern
#

Enmap est super simple a use

slim anvil
#

regarde la doc npm

crimson fern
#

Parles-tu anglais ?

#
oak turret
#

oui xDDD

crimson fern
#

si oui, tient 🙂

slim anvil
#

Ça use sqlite quoi

crimson fern
#

oui

#

par contre, n'utilise pas quick.db

oak turret
#

donc j'ai installé puis foutu les require et après je fais quoi ?

#

faut provider aussi ?

crimson fern
#

ca permet de mettre les bases

slim anvil
#

look un peu la doc Lartaxx

#

pas sûr que t’es essayé de comprendre et d’essayer en 3 minutes sue

oak turret
#

non xD je lis actuellement, juste pour avoir une idée

crimson fern
#

la doc est nickel

#

on peux pas faire mieux je pense 🙂

oak turret
#

Je lis, mais j'avoue que j'ai plus de mal qu'avec les autres lib

#

Alors j'ai à peu près capté le truc, sauf que je comprends pas comment lié mon nbr_ticket à mon EnmapL (c'est là que je déclare mon new Enmap({name: "tickets"})

#

j'ai set EnmapL à un entier avec la valeur à 0

#

après je sais pas comment le relié à mon nbr_ticket

crimson fern
#

en gros, t'as défini ton :

const db = new Enmap({name: "tickets"})```
désormais, tu vas check si y'as un nombre de tickets ouverts défini pour cet utilisateur, si il en a pas, tu le met a 0 :
```js
if(!db.get(`user.${msg.author.id}.ticket`) return db.ensure(`user.${msg.author.id}.ticket`, 0)```
#

maintenant que tu as ca, tu vas add 1 au nombre

#

donc :

db.math(`user.${msg.author.id}.ticket`, "add", 1)```
#

je t'ai offert le code car au début, ca peux être dur avec enmap 🤷

oak turret
#

donc j'ai fais :

const EnmapL = new Enmap();
        EnmapL.set('integrer', 0);
        const nbr_ticket = EnmapL.get('integrer');
         const reason = message.content.split(" ").slice(1).join(" ");
         if(!reason) return message.channel.send("Vous devez mettre une raison ! `&ticket raison`");
         else {
            EnmapL.set('integrer', nbr_ticket+1);
             return;
            
         }

Puis pour l'afficher j'ai juste fais ${nbr_ticket}, aucune erreur mais ça ne m'envoie pas mon embed

oak turret
#

super merci, donc la troisième partie je la mets dans mon else ?

#

et pour l'afficher je fais quoi ?

crimson fern
#

tu fais un db.get

oak turret
#

y a un problème avec ça :

        if(!db.get(`user.${msg.author.id}.ticket`)  return db.ensure(`user.${msg.author.id}.ticket`, 0); 

')' attendu mais je vois pas où

#

ah si c'est bon manquait une ) là if(!db.get(user.${msg.author.id}.ticket))

crimson fern
#

j'ai du en oublier une

oak turret
#

J'installe npm i -g --add-python-to-path --vs2015 --production windows-build-tools depuis powershell dans mon folder

#

puis bettersqllite3

#

et après je le start

#

long à installer le premier xD

#

ça fais rien :x

#
 if(command === "ticket") {
        const db = new Enmap({name: "tickets"});
        if(!db.get(`user.${message.author.id}.ticket`)) return db.ensure(`user.${message.author.id}.ticket`, 0); 
         const reason = message.content.split(" ").slice(1).join(" ");
         if(!reason) return message.channel.send("Vous devez mettre une raison ! `&ticket raison`");
         else {
            db.math(`user.${message.author.id}.ticket`, "add", 1)
             return;
            
         }
          message.author.send(`Bonjour/Bonsoir ${message.author}, un membre de notre équipe va prendre en charge votre ticket.`);
         const admin_send = client.guilds.cache.get('708665648494149693').channels.cache.get('708729093834670161');
         const admin_embed = new Discord.MessageEmbed()
         .setColor("#0099ff")
         .setTitle(`Ticket n°${db.get} de ${message.author.tag}`)
         .setAuthor("aLife | Bot", "https://i.imgur.com/T7beXKg.png", "https://alife.mtxserv.com/")
         .setDescription("<@&709126548657274952>")
         .addFields(
            { name: 'Utilisateur', value: `${message.author}`, inline: true },
            { name: 'Raison', value: `${reason}`, inline: true },
            { name: 'Channel', value: `${message.channel}`, inline: true },
            
         )
         .setTimestamp()
         .setFooter("aLife | Bot", "https://i.imgur.com/T7beXKg.png");
         admin_send.send(admin_embed);
     }
#

aucune erreur

#

ça m'a crée un dossier data => enmap.sqlite

crimson fern
#

mais

#

tu fais db.get

#

je t'ai dit d'utiliser db.get

#

et pas seulement d'écrire db.get

oak turret
#

je l’use comment dans mon title ?

oak turret
oak turret
#

j'ai essayé de faire une const avec le db.get mais ça ne me mets rien non plus

#
        const db = new Enmap({name: "tickets"});
        const nbr_ticket = db.get(`user.{message.author.id}.ticket`);
        if(!db.get(`user.${message.author.id}.ticket`)) return db.ensure(`user.${message.author.id}.ticket`, 0); 
         const reason = message.content.split(" ").slice(1).join(" ");
         if(!reason) return message.channel.send("Vous devez mettre une raison ! `&ticket raison`");
         else {
            db.math(`user.${message.author.id}.ticket`, "+", 1)
             return;
            
         }
          message.author.send(`Bonjour/Bonsoir ${message.author}, un membre de notre équipe va prendre en charge votre ticket.`);
         const admin_send = client.guilds.cache.get('708665648494149693').channels.cache.get('708729093834670161');
         const admin_embed = new Discord.MessageEmbed()
         .setColor("#0099ff")
         .setTitle(`Ticket n°${nbr_ticket} de ${message.author.tag}`)
         .setAuthor("aLife | Bot", "https://i.imgur.com/T7beXKg.png", "https://alife.mtxserv.com/")
         .setDescription("<@&709126548657274952>")
         .addFields(
            { name: 'Utilisateur', value: `${message.author}`, inline: true },
            { name: 'Raison', value: `${reason}`, inline: true },
            { name: 'Channel', value: `${message.channel}`, inline: true },
            
         )
         .setTimestamp()
         .setFooter("aLife | Bot", "https://i.imgur.com/T7beXKg.png");
         admin_send.send(admin_embed);
     }
red snow
#

Bonjour, auriez vous une idée de pourquoi cette ligne ne marche pas ?

#

(C'est peut être totalement con mais je trouve pas🤷‍♂️)

slim anvil
#

oui

#

le ! au début

red snow
#

A ui 🤦‍♂️

slim anvil
#

tu dis "si il y a pas de parentId égale à id"

red snow
#

C'est pas un booléen

slim anvil
#

pas forcément sur les booleens

red snow
#

Ah ?

slim anvil
#

c'est juste que là ça n'a pas de sens du coup

#

soit tu fais parentID !== id

#

sois tu fais !parentId

#

ce qui veut dire "si il y a pas de parentId"

#

si en gros elle est undefined ou null

red snow
#

👌 merci :)

slim anvil
#

mais ça marche aussi sur le true ou false

oak turret
#

Hello, comment je peux mettre l'icone de l'image de l'utilisateur dans un .setAuthor dans un embed ${message.author.avatarURL} ne fonctionne pas

#

j'ai une erreur
(node:12752) UnhandledPromiseRejectionWarning: DiscordAPIError: Invalid Form Body
embed.author.icon_url: Not a well formed URL.

#

mon code :

 .setAuthor(`${message.author.tag}`, `${message.author.avatarURL}`, "")
slim anvil
#
 .setAuthor(message.author.tag, message.author.displayAvatarURL)
oak turret
#

c'est à cause de mes ${} ?

slim anvil
#

Non, mais ils servent à rien

#

c'est car tu fais passer un params vide "" je pense

oak turret
#

ah okay, alors ça m'envoie mon embed en dm mais y a mon tag mais pas mon image

#

:x

slim anvil
#

remet avatarURL ? 🤔

slim anvil
#

j'use displayAvatarURL d'hab

oak turret
#

toujours pas :x

#
        .setAuthor(message.author.tag, message.author.avatarURL)

Comme ça on est d'accord?

slim anvil
#

log ton message.author normalement tu as une clé avatarURL et displayAvatarURL no ?