#javascript-typescript

1 messages · Page 54 of 1

oak turret
#

money etc

keen narwhal
#

Oki, j'ai dl sqlite

oak turret
#

t'as des exemples sur je sais plus quel site

keen narwhal
#

Du coup, je del tout mon code

#

?

oak turret
#

Bah là tout va changer ouais

#

j'avais appris à l'use sur ça

keen narwhal
#

J'ai dl ce sqlite3

oak turret
#

no

keen narwhal
#

C'est pas le bon?

oak turret
#

celui-là

keen narwhal
#

Comment je dl l'autre ?

oak turret
#

npm i better-sqlite-3

#

et tu créer un bdd.sqlite

#

et du coup tu fais bdd.prepare etc

keen narwhal
#

?

oak turret
#
const db = require('better-sqlite-3');
cont table = db.prepare('SELECT * FROM users').get();
keen narwhal
#

Oki

oak turret
#

mais select tout depuis users pas de WHERE sinon tu get juste les id

#

et donc tu dl sqlite3 manager

#

pour gérer les tables etc

keen narwhal
oak turret
#

et tu dois créer une newsqlite3 aussi

keen narwhal
#

;-;

oak turret
#

non pas en npm

#

là tu le dl sur windows

#

en exe

#

pour le gérer

keen narwhal
oak turret
#

look mon bot pour t'aider

keen narwhal
#

Ouais

#

Et je fais quoi après l'avoir dl ?

#

C'est tellement compliqué xDD

#

J'pense que j'aurais pus le faire avec mon ancien code

oak turret
#

bah tu créer ta bdd en .sqlite dans ton dossier

#

et après tu l'ouvres depuis sqlitemanager

keen narwhal
#

Oki

flint eagle
#

Bonjour
J'ai voulu créer une nouvelle channel mais il me dit channel is not defined

oak turret
#

fais ton code toi-même

#

arrête de le prendre sur internet

#

et là tu set le Name du channel t’en crée pas un

flint eagle
#

c'est sur le site que tu m'a envoyé

#

discord.js

#

c'est comme des modéles

#

et pour le nom j'ai crée devant channel.setname('Chill Zone')

oak turret
#

je sais merci mdrr

#

oauis mais là tu crée rien

flint eagle
#

oui t'as raison je vais rien comprendre comme ça, je vais essayer de créer mes propres commandes et si j'ai rencontré quelque prob je re.

feral abyss
#

Normal chanel n'est pas définie de base

#

channel*

#

Et tiens sur ce site c'est beaucoup mieux expliquer

merry compass
#

slt slt j'ai une ptite erreur sur mon code de bot
je sais d'où elle viens mais je ne sais pas comment la resoudre sans modifier se que je veux faire
mon code : ```py
@bot.command()
@commands.has_permissions(ban_members = True)
async def ban(ctx, user : discord.User, *, reason = "AUCUNE RAISON N'A ETE AJOUTEE !"):
reason = " ".join(reason)
#await ctx.guild.ban(user, reason = reason)
embed5 = discord.Embed(title=":no_entry: Vous n'avez pas la permission de ban un membre !", color=0xf81305)
embed = discord.Embed(title="Bannissement", description='Un moderateur fini toujours par avoir le respect !', color= 0xf3082f)
embed.set_thumbnail(url="https://discordemoji.com/assets/emoji/6623_banhammer.png")
embed.add_field(name="Membre banni", value= user.name)
embed.add_field(name="Raison", value= reason)
embed.add_field(name="Modérateur", value= ctx.author.name)

await ctx.send(embed=embed)

await ctx.send(embed = embed5)```

#

c'est la derniere ligne le pbl

feral abyss
#

Je ne fais pas de python sorry

merry compass
#

a zut

feral abyss
#

Aprés donne l'erreur je peut toujours essayer de voir

merry compass
#

ba l'erreur c a cause de la derniere ligne

#
File "C:/Users/ELYOTT/PycharmProjects/bot/main.py", line 28
    await ctx.send(embed = embed5)
    ^
SyntaxError: 'await' outside function```
slim anvil
#

Ton dernier await est en dehors de ta fonction

merry compass
#

oui je me douter vu l'erreur mais comment y remedier ??

#

moi j'aimerais que cet embed ne soit send que si ban_member est egale a False

keen narwhal
#

Je connais pas le python, mais si tu peux faire un if(ban_member == false ) { ton code }

merry compass
#

a ouep et où stp

keen narwhal
#

Je connais pas le python...

merry compass
#

ok mrc pas grave

flint eagle
#

la creation d'un bot c'est comme la creation d'un self bot ?

#

@merry compass

#

le bot c'est comme tu sais

#

un bot tu le crée

#

mais le self bot

#

il est lié avec ton token

#

personel

merry compass
#

a je vois pas trop se que sais un self bot sorry

flint eagle
#

mais je sais pas comment faire

merry compass
#

a ok a je connaisser pas les self bot

#

moi c un bot normal discord

flint eagle
#

d'acc

merry compass
#

j'ai une commande "ban" elle ne fonctionne qu'avec ceux qui on la perm de ban
mais j'aimerais rajouter un msg d'erreur pour ceux qui n'ont justement pas cette perm j'ai deja créer l'embed pour l'erreur

#

mon code : ```py
@bot.command()
@commands.has_permissions(ban_members = True)
async def ban(ctx, user : discord.User, *, reason = "aucune raison n'a été ajouter"):
reason = " ".join(reason)
#await ctx.guild.ban(user, reason = reason)
embed5 = discord.Embed(title=":no_entry: Vous n'avez pas la permission de ban un membre !", color=0xf81305)
embed = discord.Embed(title="Bannissement", description='Un moderateur fini toujours par avoir le respect !', color= 0xf81305)
embed.set_thumbnail(url="https://discordemoji.com/assets/emoji/6623_banhammer.png")
embed.add_field(name="Membre banni", value= user.name)
embed.add_field(name="Raison", value= reason)
embed.add_field(name="Modérateur", value= ctx.author.name)

await ctx.send(embed=embed)```
oak turret
#

tu mets permissions = @commands.has_permissions(ban_members = True)
et if(!permissions) { message.channel.send("Tata")} else { tatata}

Après idk comme faire en python

flint eagle
#

moi j'ai fait la commande de ban

#

mais le prob

#

les personnes qui ont les perms ou non tous il peuvent ban et expulser

#

mdr

oak turret
#

code ?

flint eagle
#

att

merry compass
#

ba tu vois ma ligner avec @commands.has_permissions(ban_members = True)tu rajoute ça

#

tu mets permissions = @commands.has_permissions(ban_members = True)
et if(!permissions) { message.channel.send("Tata")} else { tatata}

Après idk comme faire en python
@oak turret et si je veux que se soit un embed qui sois send et pas un simple texte ?? j'ai just a mettre embed=embed5 ??

oak turret
#

non tu refais un embed

merry compass
#

oui le 5 c'est celui la que je veux qu'il send

oak turret
#

non mais tu refais un embed un nouveau

keen narwhal
#

Lartaxx

#

J'ai réussi sans à avoir à utilisé sqlite

#

:333333333

merry compass
#

j'ai pas trop compris ou je le met le if(!permissions)

oak turret
#

bg Alex

#

j'ai l'habitude des bases donc bon mdrr

merry compass
#

??? 😭

keen narwhal
#

j'ai l'habitude des bases donc bon mdrr
@oak turret Mais ça stock pas les deux monnaies donc si je veux faire un shop ou tu peux seulement acheter avec une seule sorte de monnaie bah x,)))))))))

#

Tu connais la suite

oak turret
#

bah si tu peux

#

avec les objets de ta base

#

^^

keen narwhal
#

Ouais, mais sans base

#

;-;

merry compass
#

a oui c un autre delir votre truc 😂

keen narwhal
#

Le JS, c'est mieux kappo

oak turret
#

bah sans base tu peux mais pas stocké genre au reeboot de ton bot c'est reset

keen narwhal
#

Att j'te prend un screen

#

Ça stock comme ça

#

Ça m'affiche comme ça

oak turret
#

c'est en json

#

tu reeboot ça reset

keen narwhal
#

Nope

oak turret
#

ah bon

keen narwhal
#

Yep

#

Pour que ça reset il faut del la ligne

#

:3

oak turret
#

ah ui j'suis con

keen narwhal
#

tkt xD moi aussi je le suis

#

x')

hazy mirage
#

@keen narwhal tu comptes stocker plusieurs utilisateurs dans le même fichier json?

keen narwhal
#

Oui

#

XD

oak turret
#

bah c'est super simple ton truc alors

keen narwhal
#

J'ai pas trouvé comment faire pour changer de ligne

#

;-;

hazy mirage
#

Il vaudrait mieux faire un fichier par utilisateur ou passer par du sql

keen narwhal
#

Il vaudrait mieux faire un fichier par utilisateur ou passer par du sql
@hazy mirage Ça ferais beaucoup de fichier s'ils sont 500...

oak turret
#

sqlite comme je t'ai dis ^^

keen narwhal
#

Je comprend pas comment use le sql xDDD

hazy mirage
#

Et si ils sont 500, tu pense pas que la lecture / l’écriture de ton fichier sera long?

#

Si ils sont 500 et qu’il y a une corruption du fichier, tu fais comment?

keen narwhal
#

Bah oui, mais je sais pas comment faire automatiquement

#

Si ils sont 500 et qu’il y a une corruption du fichier, tu fais comment?
@hazy mirage J'me fais baisé

#

Genre

oak turret
#

objets de ta base e tu les updates tout simplemenet

hazy mirage
#

Du sqllite semble une bonne alternative 👌

merry compass
#

comment je peu envoyer un msg en priver de quelqu'un que je mentionne ?? pour le ban par exemple

oak turret
#

je fais ça pour mon système de ticket, warn, money etc

keen narwhal
#

Je regarderais

oak turret
#

@merry compass member (si c'est ta var qui mentionne l'user).send("contenu") en js du moins

#

python idk

merry compass
#

a moi la je suis en python

oak turret
#

idk

merry compass
#

mais j'ai aussi un en JS et en JS j'ai reussi tkt mrc quand meme 😉

oak turret
#

np

#

Alex donne moi l'idée de ton bot, je te fais ça en 2spi

keen narwhal
#

;-;

#

Bah en gros, je veux qu’il y ait 3 monnaies différentes, aucune des trois n’a la même valeur, et ensuite, bah il y a un shop pour chaque monnaie dans laquelle tu peux seulement payé avec cette monnaie pas une autre..

oak turret
#

yes bah tout simple

#

et les shops c'est quoi

keen narwhal
#

Bah une boutique xD

#

Où il y a plusieurs articles

#

#unembed

oak turret
#

ui non mais mdr

#

quoi dedans

keen narwhal
#

Bah un sabre

#

Pas besoin de 30,000 trucs xD

oak turret
#

un sabre

keen narwhal
#

Met Enzo à vendre aussi et Taink

#

À un prix raisonnable quand même x’)

oak turret
#

Enzo & Taink pour 20k 😉

keen narwhal
#

Ça me va

#

xD

oak turret
#

Un sabre pour chaque shops ?

keen narwhal
#

Bah un sabre en matériaux différents xD

#

Jsp ça change quoi xD

merry compass
#

XD tu poura envoyer un screen de ton embed ça a l'aire cool

keen narwhal
#

C’est juste un test

oak turret
#

ui non mais un sabre pour un shop quoi

#

pour payer avec les 3 monnaies

#

les sabres donc ça sera un int puis après tu gères les objets quoi

#

je fais ça demain

keen narwhal
#

Oki

keen narwhal
#

Hâte de voir, ce que ça va donner !

oak turret
#

Yes je suis pas sûr de te donner ça aujourd’hui j’ai beaucoup de choses à faire

keen narwhal
#

Tkt

slim anvil
#

20K moi c’est tout ?

keen narwhal
#

Non toi et Taink

#

Donc 10k

#

x'))

red snow
#

Il va être encore plus vexé

keen narwhal
#

xDDD

#

Chuttt

plain crystal
#

J'met pas plus de 30€

timid loom
#

alors

#

attention

merry compass
#

quelqu'un pour du pyhton

timid loom
#

j'avoue qu'elle est pas très facile à naviguer cela dit

merry compass
#

heu je sais plus j'ai demander quoi hier 🤔

#

a oui c pour MP la personne

#

merchi

inland tide
#

J'avoue que je trouve le wiki juste horrible

merry compass
#

c pas simple simpl 😂

inland tide
#

Non mais franchement la doc n'aide pas du tout.

merry compass
#

ba c pas facile a lire et c un ptit peu le mess 😉

keen narwhal
#

Je suis content, le shop marche à merveille, le seul truc que je crain, c'est le passage json vers DB

#

Je sens que je vais galère

merry compass
#

ta des screen ??

oak turret
#

@keen narwhal Hello, j'ai finis ton projet

#

j'ai fais le gros à toi de modif à ta guise

#

je te fous le code en pastebin

#

et t'as qu'à installer better-sqlite3 sur ton project

keen narwhal
#

Waw comprend rien xD

oak turret
#

xD c'est tout con

#

et ta base ressemblera à ça

keen narwhal
#

Mais

oak turret
#

j'ai po fais les shops etc

#

à toi de faire ton projet

keen narwhal
#

Tkt

#

J'fais quoi après xD

oak turret
#

t'as un .exe dedans non ?

keen narwhal
#

Nope

oak turret
#

c'est ça

keen narwhal
#

Tu m'avais donné un lien forge xD

oak turret
#

je me souviens plus j'étais fatigué sûrement

keen narwhal
oak turret
#

1

#

avec un fichier .sqlite

keen narwhal
#

Ça m'ouvre un truc

oak turret
#

Ouais normal

#

tu vas dans file > open > et tu choisis ta base

#

si tu veux suppr ta base pour créer autre chose etc tu fais

#
DROP table nomdetatable

ça mettra un petit message en bas

keen narwhal
#

Bah en faite, j'ai fait le shop etc

#

Moi, c'est juste pour save les trucs

oak turret
#

bah c'est fait pour ça

keen narwhal
#

Ouais, mais genre comment je fais ?

oak turret
#

bah imagine c'est un int ton produit très sûrement bah dans l'object xp tu feras ex noli: xp.noli - tonproduit

#

et dans le !show tu auras le résultat fin le montant qui reste à l'user

keen narwhal
oak turret
#

tu le mets dans la racine la bdd

keen narwhal
#

Je sais, mais comment je fais pour le save genre dans le truc

oak turret
#

fin où tu veux

#

de ?

keen narwhal
#

genre

#

Ici

#

Genre ça

#

Je voudrais qu'il y ait un fichier par user

oak turret
#

tu vas faire laguer ton bot

#

il va mettre 30 ans à repondre

#

pas besoin ça fais une nouvelle ligne dans ta table

keen narwhal
#

Et qu'au lieu de mettre 0 bah ça met l'argent 356 * 0.76

oak turret
#

bah pareil tu fais noli: xp.noli * 0.76 - tonproduit quand il achète un truc

#

dans le const sql tu remplaces bdd par Alex du coup

keen narwhal
#

Ouais, mais xp.noli comment je le sav

oak turret
#

ça se save seul

#

c'est mis à jour tout seul quand il change de valeur

keen narwhal
#

J'sais mais genre

#

Moi mon code

#

Il save seulement baud

#

Mais baud et Noli n'ont pas la même value

#

Du coup

oak turret
#

Je comprends pas

#

bah si tu veux changer juste baud

keen narwhal
#

xD

#

Je veux save les 3

oak turret
#

bah aux autres tu fais genre noli: xp.noli et pareil pour pommi

#

ça changera pas la valeur

keen narwhal
#

Mais genre, là json en save seulement 1

oak turret
#

et bah ?

keen narwhal
#

Bah je veux qu'il affiche les 3

#

xDD

oak turret
#

bah dans mon code il affiche les 3

keen narwhal
#

En gros, je veux qu'au lieu de faire genre money[user.id].baud >= 374 bah je voudrais faire money[user.id].noli >= Michel

#

Ouais, mais là ils ont tous la même valeur

oak turret
#

Oui normal car j'ai fais une commande générale

#

suffit de changer ça

#

rien de compliqué

#

genre pour baud & noli & pommi je fais + moneyamount genre ce qu'entre l'user

#

si je fais xp.noli et xp.pommi à la place

keen narwhal
#

MMh

oak turret
#

ça fais + moneyamount à baud juste

keen narwhal
#

Je suis perdu dans ton code

#

xDDD

oak turret
#

c'est simple pourtant

keen narwhal
#

Peut-être mais ma tête comprend pas

oak turret
#

tu comprends pas quoi

keen narwhal
#

Tout xD

oak turret
#

je m'étais basé sur ça au début

keen narwhal
#

Mais enfaite, j'avais déjà tout fait et genre tout marchait sauf la comparaison et le save de Noli et Pommi

#
const Discord = require('discord.js')
const money = require('../money.json')
const fs = require('fs')

module.exports.run = async(client, message, args) => {
    if(!args[0]) {
        var user = message.author;
    }


    if(!money[user.id]) {

        money[user.id] = {
            name : message.author.username,

            baud : 0
        }
        


        fs.writeFile("./money.json", JSON.stringify(money), (err) => {
            if(err) message.channel.send(err)
        })
    }


    var embed = new Discord.MessageEmbed()
        .setColor()
        .addFields(
            { name: '\u200B', value: '\u200B' },
            { name: `Argents de Baud` , value:  money[user.id].baud + " 🤗", inline: true},
            { name: `Argents de Noli` , value:  Math.floor(money[user.id].baud * 0.56) + " 👁️", inline: true},
            { name: `Argents de Pommi` , value: Math.floor(money[user.id].baud * 0.72) + " 🌸", inline: true}

            
        )
        .setFooter(`Système d'argent de Jack !`)
        .setTimestamp()
        .setTitle("Le compte en banque de : " + message.author.username)


    message.channel.send(embed)
}

module.exports.help = {
    name: "coffre",
    alias: ["bank", "balance", "bal", "money"] // Ça marche pas ;-;
}
#

Ça c'est mon système

oak turret
#

normal que ça marche pas

#

{ name: Argents de Noli , value: Math.floor(money[user.id].baud * 0.56) + " 👁️", inline: true},
{ name: Argents de Pommi , value: Math.floor(money[user.id].baud * 0.72) + " 🌸", inline: true}

#

.baud t'as mis à Noli et Pommi

#

ah mais

#

t'as rien mis en json pour noli et pommi ?

keen narwhal
#

Yep

oak turret
#

okay je vois

keen narwhal
#

Parce que je trouvais pas comment faire

#

Pour que ça affiche la valeur différente

oak turret
#

Je vois

keen narwhal
#

Et je voulais pas venir parce que je me disais que c'était simple donc je pouvais trouvé moi même

oak turret
#

json c'est pas fais pour stocké

#

donc learn sqlite c'est plus simple

#

et moins chiant

keen narwhal
#

Yep

#

Mais du coup

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

module.exports.run = async(client, message, args) => {
    if(!args[0]) {
        var user = message.author;
    }


    if(!money[user.id]) {

        money[user.id] = {
            name : message.author.username,

            baud : 0,

            noli : 0,

            pommi : 0
        }
    }


    var embed = new Discord.MessageEmbed()
        .setColor()
        .addFields(
            { name: '\u200B', value: '\u200B' },
            { name: `Argents de Baud` , value:  money[user.id].baud + " :hugging:", inline: true},
            { name: `Argents de Noli` , value:  money[user.id].noli + " :eye:", inline: true},
            { name: `Argents de Pommi` , value: money[user.id].pommi + " :cherry_blossom:", inline: true}

            
        )
        .setFooter(`Système d'argent de Jack !`)
        .setTimestamp()
        .setTitle("Le compte en banque de : " + message.author.username)


    message.channel.send(embed)
}

module.exports.help = {
    name: "coffre",
    alias: ["bank", "balance", "bal", "money"]
}
#

Genre

#

Du coup

#

Tu peux me montrer / m'apprendre comment on save en sqlite3 ?

oak turret
#

mais save t'entends quoi ?

#

mon code save ⭕o

keen narwhal
#

?

oak turret
#

bah

#

mon code save

keen narwhal
#

Yep, mais genre

oak turret
#

à partir du moment ou j'use mon object et que je le run

#

là il save dans la bdd

keen narwhal
#

Il est pas adapté à ce que j'ai fait

oak turret
#

et change les valeurs ou non

#

adapte le

keen narwhal
#

Ok

oak turret
#

parce que une bdd par user

#

c'est compliqué niveau opti xd

keen narwhal
#

Dans le DB

oak turret
#

mon code le fait sans soucis

#

xp.baud xp.noli et pommi

keen narwhal
#

Yep

#

Mais ils ont la même valeur xD

oak turret
#

Où ?

#

dans mon code ?

#

Non

#

Si il n'a rien dans la db ça mets tout à 100

#

sinon ça affiche la valeur du baud etc actuelle de l'user

keen narwhal
#

Yep

#

Justement, c'est ce que je veux changer

oak turret
#

bah à la place de 100 tu mets ce que tu veux

#

et sinon pareil

#

tu changes

#

à ta guise

#

tout simple

keen narwhal
#

Je fais genre xp.baud * 0.56 ?

#

Parce que de base

#

Il est à 0

oak turret
#

bah tu peux faire ça avec baud MAIS pour noli et pommi ça va pas bien marcher donc si tu veux faire noli et pommi en utilisant baud tu devrais enlever pommi et noli de la base

#

donc quand tu affiches l'embed

#

tu ferais

keen narwhal
#

Comme j'ai fait au départ ?

oak turret
#

ouais

keen narwhal
#

Mmh

#

Mais tu as une solutions sans utilisé Baud ?

oak turret
#

et tu changes le * 0.56 en fonction

#

comment ça

keen narwhal
#

Bah

#

Genre que dans le embed au lieu de faire comme j'ai fait au départ

#

Parce que je veux que ça se save

oak turret
#

bah xp.baud * 0.56

#

sinon tu mets noli et pommi dans la bdd

#

et en objet tu fais noli: xp.baud * 0.56

#

et pommi pareil

keen narwhal
#

Ok

oak turret
#

c'est mieux en base

keen narwhal
#

Comme ça ?

#

Et ça va marcher ?

oak turret
#

ui

merry compass
#

aah vive le JS

oak turret
#

mieux que discordpy xd

merry compass
#

😂 oui

keen narwhal
oak turret
#

t'as pas mis money à l'objet ?

keen narwhal
#

Nope

oak turret
#

montre tout

keen narwhal
#

J'ai repris ton code au complet et je l'es mis dans main.js

oak turret
#

mets 100*0.56 au pire

#

c'est pareil

keen narwhal
#

Ouais mais en bas

#

Ça va faire * 0.56 ?

oak turret
#

quelle ligne

keen narwhal
#

et * 0.73 ?

#

56/57

oak turret
#

mets userscore.baud etc pour voir

keen narwhal
#

Où ?

oak turret
#

bah à xp.baud

#

ligne 56/57 t'as dis

keen narwhal
#

Je te dis ça

#

userscore is not defined

oak turret
#

oui normal j's débile

#

j's ko donc je vois pas trop où est l'erreur

keen narwhal
#

;-;

oak turret
#

je relis ça demain

#

moi ça marche pourtant

keen narwhal
#

Ah bah ça marche

#

That's weird

#

Je veux pas être obligé de me mention

#

Règler

oak turret
#

Une taxe ? xd

keen narwhal
#

Bah

#

Je add 600 il me donne 500 xD

oak turret
#

euh moi ça marche mdr

keen narwhal
#

xD

#

(node:34108) UnhandledPromiseRejectionWarning: SqliteError: database disk image is malformed

#

J'ai pas touché pourtant

oak turret
#

jamais vu cette erreur

keen narwhal
#

;-;

keen narwhal
#

C'est bon, ça marche merci Lartaxx

oak turret
#

np

#

t'as eu ce que tu voulais ?

keen narwhal
#

Yep

#

Maintenant, pour le buy c'est autre chose xD

#

Aucune error rien

#

Le work aussi le cooldown ne marche plus

#

Bonjour j'ai un soucis pour installer une extension pour python car je veux essayer de faire un bot

#

C'est quoi ton soucis ?

#

j'essayer d'installer pip pour mettre ensuite discord.py mais j'ai une fatal error car je dois avoir pip.exe dans mes script mais sa je sais pas l'installer aussi

merry compass
#

a enfin quelq'un avec py

keen narwhal
#

je débute je comprend pas grand chose

merry compass
#

tu a pycharm ??

slim anvil
#

Si tu débutes te lances pas dans la création d'un bot

#

mais peut etre dans l'apprentissage du langage déjà

merry compass
#

j'ai un truc pour installe l'API discord rtes simplement avec pychamr sans passer par pip ******

keen narwhal
#

bah je dois apprendre le langage l'année prochaine mais je veux déjà commencer maintenant

#

et non je fais avec VisualStudioCode

merry compass
#

ba va voir Openclassroom tu aura de bonne base 😉

#

et non je fais avec VisualStudioCode
@keen narwhal a ok et pk pas en JS du coup ??

slim anvil
#

bah je dois apprendre le langage l'année prochaine mais je veux déjà commencer maintenant
là tu vas surtout apprendre a utiliser la lib discordpy

keen narwhal
#

mais du coup le moyen le plus simple pour faire un bot discord c'est quoi ? apres c'est pas un bot complexe non plus

#

et @merry compass je voulais essayer par python c'est pour sa

merry compass
#

mais du coup le moyen le plus simple pour faire un bot discord c'est quoi ? apres c'est pas un bot complexe non plus
@keen narwhal ça depend quel fonction tu veux qu'il ait

keen narwhal
#

bah je voulais essayer pour qu'il ban ou kick ou même clear des messages

#

après si c'est trop complexe je vais attendre

#

Ban / kick / clear, je sais pas en python, mais en js c'est simple

#

je vais essayer en js au pire

merry compass
#

python c simple aussi 😉

#

mais en python y a pas bcp de tuto en français

leaden hollow
#

python c'est pas simple pour un débutant

#

je déteste python c'est le pire truc

#

nodejs >

merry compass
#

j'aime les 2 XD

#

please don't torture me

merry compass
#

on m'a renseigner pour les MP c bon

keen narwhal
#

@oak turret J’arrive pas à soustraire des sous du truc, c’est comme si le code s’exécutait pas

oak turret
#

code

keen narwhal
#

30 sec

#
if( command === "buy Sabre en bois")  {
            if(message.channel.id === config.baud) {
        
            if(xp.baud >= 274) {
                let member = message.author
                let removemoney = 274
                let userscore = client.getUser.get(member.id);
                if(!userscore) {
                    xp = {
                        id: client.id_ec,
                        user_id: member.id,
                        name: member.displayName,
                        baud: xp.baud - removemoney,
                        noli: xp.noli - removemoney,
                        pommi: xp.pommi - removemoney
                    }
                    client.id_ec++;
                    client.setUser.run(xp);
                    const userinfos_show = new Discord.MessageEmbed()
                    .setColor("#E5C900")
                    .addFields(
                        {name: "Baud", value: `${xp.baud}`, inline: false},
                        {name: "Noli", value: `${xp.noli}`, inline: false},
                        {name: "Pommi", value: `${xp.pommi}`, inline: false}    
                    )
                    .setTimestamp();
                    message.channel.send(userinfos_show);
                } else {
                    xp = {
                        id: client.id_ec,
                        user_id: member.id,
                        name: member.displayName,
                        baud: userscore.baud - removemoney,
                        noli: userscore.noli - removemoney,
                        pommi: userscore.pommi - removemoney
                    }
                }
                client.majUser.run(xp);
                message.channels.send(`Vous avez acheter avec succès le sabre en bois !`)
            } else {
                return message.channel.send(`Vous n'avez pas assez d'argent pour acheter cette article.`)
            }
        }
    }
#

@oak turret

oak turret
#

alors

#

si l’user n’a pas de données en base il est â combien noli etc ?

#

ça fais quoi à la fin ?

keen narwhal
#

Rien.. justement

oak turret
#

ok

#

y a toujours la commande show ?

keen narwhal
#

Yep

oak turret
#

c’est coffre je crois chez toi

#

yep bah fais là

keen narwhal
#

Yep

oak turret
#

look si en base ça fais les calculs

keen narwhal
oak turret
#

okay donc achète un sabre

#

et refais la commande

keen narwhal
oak turret
#

mh

#

look en base

keen narwhal
#

?

oak turret
#

look ta bdd

keen narwhal
oak turret
#

au lieu de userscore.baud etc mets xp.baud etc pour voir

keen narwhal
oak turret
#

t’as rien en base ?

#

wtf

keen narwhal
#

Yep

#

I don't understand xD

oak turret
#

pas normal

#

clique sur sql

#

et écris

keen narwhal
oak turret
#

DROP table users

keen narwhal
#

Att quoi ?

#

SQL ?

oak turret
#

sur sqlitemanager

#

t’as un truc sql

#

look

keen narwhal
#

Ah ok

#

xD

oak turret
#

^^

keen narwhal
oak turret
#

ok

#

donc

#

réouvre ta bdd

#

ferme sqlitemanagzr

#

et réouvre le avec ta bdd

#

et look si t’as une table

keen narwhal
#

Nope

oak turret
#

okay

keen narwhal
#

Pas de table

oak turret
#

donc reeboot ton boy

#

bot

#

il va te créer la base

#

et tout le tralalala dedans

keen narwhal
#

Ça n'a rien changé

oak turret
#

faut réouvrir ta base pour voir

#

ça te le log normalement

keen narwhal
oak turret
#

t’as relancé ton bot?

#

node tatata.js

keen narwhal
#

Je vais attendre qu'il se mettre hors ligne

#

node tatata.js
Je fais node . perso

oak turret
#

okay

keen narwhal
#

Ça lance tout

oak turret
#

moi non

#

node lefichier.js

#

au moins c’est ciblé

keen narwhal
#

Yep

#

J'ai legèrement envie de recommencer pour faire un truc que je comprendrais :3

oak turret
#

comme tu veux

#

car tu vas galerer si tu comprends pas

#

json c’est pas fais pour ça oublie pas

keen narwhal
#

I know

oak turret
#

essaye enmap

#

même si j’ai jamais compris comment l’utiliser

keen narwhal
#

xDD

#

Je pense partir sur Quick.db

#

Demain un mec va m'expliquer enfin je crois

keen narwhal
#

Je retravaillai sur la vérif de mon bot mais du coup, j'obtient const verifRole = guild.role.cache.get('723484500822196236') ```js
client.on('message', message => {
var guild = "706540132613881907"
const verifRole = guild.role.cache.get('723484500822196236')
const Rembed = new Discord.MessageEmbed()
.setColor(#edeb58)
.setDescription(✔️ | ${message.author} a eu le rôle ${verifRole})
.setTimestamp()
.setFooter("Jack le messager !")

    if(message.channel.id === "724366641986666607") {
        if(message.content === "Je jure sur la sainte pomme que mes intentions sont louables") {
            message.author.roles.add(verifRole)
            message.channel.cache.get(`706574421955182663`).send(Rembed)
        }
    }

})```

oak turret
#

c’est .roles me semble t-il non ?

keen narwhal
#

Même error

oak turret
#

enlève ta const guild

#

et tu mers

#

la même chose

keen narwhal
#

? Pas compris

oak turret
#

enlève ta const guild

keen narwhal
#

Oki

oak turret
#

sinon const guild = client.guilds.cache.get(id)

keen narwhal
#

Je fais ça après ma game

oak turret
#

const verifrole = guild.roles.cache.get(id)

#

okay

keen narwhal
#

Aucune error

#

Mais aucun message qui s'envoit

#

Et aucun role add

#

@oak turret

oak turret
#

avec quelle soluce

keen narwhal
#
client.on('message', message => {
        const guild = client.guilds.cache.get(config.guild)
        const verifrole = guild.roles.cache.get(config.role)
        const Rembed = new Discord.MessageEmbed()
            .setColor(`#edeb58`)
            .setDescription(`✔️ | ${message.author} a eu le rôle ${verifrole}`)
            .setTimestamp()
            .setFooter("Jack le messager !")

        if(message.channel.id === "724366641986666607") {
            if(message.content === "Je jure sur la sainte pomme que mes intentions sont louables") {
                message.author.roles.add(verifrole)
                message.channel.cache.get(`706574421955182663`).send(Rembed)
            }
        }
    
    
})```
keen narwhal
#

@oak turret

keen narwhal
#

Je suis perdu

#

Je comprend rien de quick.db

#

Plor

sand shore
#

Hello, quelqu'un c'est comment edit un embed ? je sais qu'on doit utiliser message.edit() mais je sais pas comment l'utiliser, j'aimerais edit un addfield de mon embed mais je sais pas comment faire :/

keen narwhal
#

Tu fais un nouveau embed avec tes fields edit

#

Et ensuite message.edit(tonembed)

sand shore
#

okk merci !

keen narwhal
#

De rien

keen narwhal
#

@oak turret Tu connais la soluce ?

oak turret
#

pour ?

keen narwhal
#

Mon problème de verif

oak turret
#

idk

#

Déjà ton embed tu l'envois pas là

#

ah si

#

essaye de log un peu tout

keen narwhal
#

Tu veux que je log quoi ?

oak turret
#

bah log un peu tout

#

voir où ça bloque

keen narwhal
#

message.author.role.add(verifrole)
^

TypeError: Cannot read property 'add' of undefined

#

Même avec un s à rôle marche pas

#

@oak turret

oak turret
#

pas besoin de ping

#

.guild.roles ?

#

j'ai pas look le wiki mais ça doit être un truc comme ça

keen narwhal
#

J'essaie et je retient pour le ping

#

TypeError: Cannot read property 'roles' of undefined

oak turret
#

look le wiki

keen narwhal
#

J'fais ça

oak turret
#

message.author.roles.cache.add

#

en fait add n'y est pas donc

keen narwhal
#

Cache est undefined

oak turret
#

look RoleManager

keen narwhal
#

Sur lui

#

C'est ce que j'ai fait au départ

#

Et dans mon autre bot, ça marche

oak turret
#
let role = message.guild.roles.cache.find(r => r.name === "Ton grade");

// Let's pretend you mentioned the user you want to add a role to (!addrole @user Role Name):
let member = message.author;

// or the person who made the command: let member = message.member;

// Add the role!
member.roles.add(role).catch(console.error);
#

essaye ça

keen narwhal
#

C'est la v11 ça Osmium

slim anvil
#

nn tkt kapp

keen narwhal
#

Un peu x')

oak turret
#

t'as test alex ?

keen narwhal
#

30- sec

#

add n'est pas définis

oak turret
#

.cache.add

#

pour voir

#

j'pense pas mais essaye

keen narwhal
#

Marche pas

oak turret
#

jamais fais ces trucs là donc j'sais pas plus

#

message.member.roles.add

#

essaye

#

donc

keen narwhal
#

member est pas défini

#

So

oak turret
#

attend

keen narwhal
#

I put message.author

oak turret
#
let role = message.guild.roles.cache.get(id);
message.member.roles.add(role).catch(console.error);
#

si ça marche pas wtf

#

c'est la suite logique sur le wiki

#

message => member => roles => add

keen narwhal
#

Eux, il passe par le nom du rôle

#

Sauf que je passe par l'id

oak turret
#

bah

#

tu remplaces find par get

keen narwhal
#

Bah

#

C'est ce que j'ai déjà

oak turret
#

message.guild.roles.get("id");

#

test ça

#

oui non

#

c'est pareil

#

wtf

#

test ça

keen narwhal
#

xD

oak turret
#

client.guilds.cache.get("id").roles.cache.get("id");

#

ou sinon dans role

#

client.roles.cache.get("id");

keen narwhal
#

Enfaite, l'error est à add

#
client.on('message', message => {
        const guild = client.guilds.cache.get(config.guild)
        const verifrole = guild.roles.cache.get('723484500822196236')
        const Rembed = new Discord.MessageEmbed()
            .setColor(`#edeb58`)
            .setDescription(`✔️ | ${message.author} a eu le rôle ${verifrole}`)
            .setTimestamp()
            .setFooter("Jack le messager !")
        if(message.content === "Je jure sur la sainte pomme que mes intentions sont louables") {
            message.author.roles.add('723484500822196236').catch(console.error);
            message.channel.cache.get(`706574421955182663`).send(Rembed)
        }
})
#

Voilà mon code

oak turret
#

idk

#

si Taink ou quelqu'un sait, là j'en sais rien

#

tu l'as pas déjà fais t'as dis ?

#

déjà

#

verifrole

#

client.guilds etc

#

donc

#

enlève guild c'est useless

#

donc client.guilds.cache.get("id").roles.cache.get("id");

#

après comme tu veux

#
let member = message.guild.member(message.author);
let Agree = message.guild.roles.cache.find(role => role.name === 'Novice');
 
                message.guild.member(member).roles.add(Agree)

j'ai trouvé ça ça m'a l'air pas mal

crimson fern
#

le let member tu peux le replace par <Message>.member

#

et tu peux aussi le replace par une const

keen narwhal
#

tu l'as pas déjà fais t'as dis ?
@oak turret Je l'ai déjà fait, mais avec une réaction, pas message.content

#

Je vais att Taink voir, parce que ça marche pas

timid loom
#

Quel est le problème ? C'est quoi l'erreur que tu obtiens @keen narwhal ?

keen narwhal
#

add

#

n'est pas définis dans le code donné un peu plus haut

timid loom
#

c'est quoi exactement le message?

#

cannot access function add of machin chose?

keen narwhal
#

message.author.roles.add('723484500822196236').catch(console.error);
^

TypeError: Cannot read property 'add' of undefined

timid loom
#

yes

#

classic

#

alors ton message déjà tu l'obtiens comment

keen narwhal
#

Bah lorsque le mec écrit Je jure sur la sainte pomme que mes intentions sont louables

#

Jpp de la phrase

timid loom
#

waw

#

donc dans un event client.on('message')

keen narwhal
#

Yep

timid loom
#

ok

#

t'as activé les partials sur les messages?

keen narwhal
#

nope

timid loom
#

hmm

#

dommage

keen narwhal
#

?

timid loom
#

rien ça aurait été facile à résoudre

#

je vais vérif deux secondes

keen narwhal
#

Bah, je peux le faire

#

Ça devrait pas être compliqué si ?

timid loom
#

bah en soi tout ce que tu dois faire c'est vérifier si c'est une partial, et à ce moment-là tu fetch le message via son id

if (message.partial) {
  try {
    await message.fetch();
  } catch (err) {
    console.log(`Error when fetching message ${message.id}: `, err);
    return;
  }
}

// tu fais tes actions sur ton message à partir d'ici```
keen narwhal
#

Je fais seulement un copie collé ?

timid loom
#

en gros tu mets ça au début de ton event message

keen narwhal
#

okk

timid loom
#

mais si t'as pas les partials sur les message ça sert à rien

keen narwhal
#

J'ai jamais compris c'était quoi un partial même avec le wiki

#

Mais du coup, je crois que le message est pas partial

#

Du coup tu as la solution ?

#
const config = require('../config.json')
const Discord = require('discord.js')
const client = new Discord.Client({ partials: ['MESSAGE', 'CHANNEL', 'REACTION'] })

client.on('message', async message => {
    const guild = client.guilds.cache.get(config.guild)
    const verifrole = guild.roles.cache.get('723484500822196236')
    const Rembed = new Discord.MessageEmbed()
        .setColor(`#edeb58`)
        .setDescription(`✔️ | ${message.author} a eu le rôle ${verifrole}`)
        .setTimestamp()
        .setFooter("Jack le messager !")
    if (message.partial) {
        try {
          await message.fetch();
        } catch (err) {
          console.log(`Error when fetching message ${message.id}: `, err);
          return;
        }
      }
    if(message.content === "Je jure sur la sainte pomme que mes intentions sont louables") {
        message.author.roles.add('723484500822196236').catch(console.error);
        message.channel.cache.get(`706574421955182663`).send(Rembed)
    }
})

module.exports = async (args) => {

}

client.login(config.token);
``` même error :3
crimson fern
#

<MessageAuthor> !== <GuildMember>

#

<MessageAuthor> te renvoie un <User>
Il faut donc que tu fasses un <Message>.member qui te renvoie <GuildMember>

#

si j'ai bien compris ton problème

timid loom
#

alors

#

dsl j'étais parti

#

c'est super bizarre que author soit undefined

#

je vais faire deux trois tests

crimson fern
#

c'est surtout que message.author.roles est undefined car message.author ne return pas roles suefort

oak turret
#

yeah

#

je t'avais donné un truc tout à l'heure

keen narwhal
#

Bah

oak turret
#

message.member.roles.add(role).catch(console.error);

#

c'est la suite logique du wiki

keen narwhal
#

member = message.author ?

slim anvil
#

Sinon tu consoles log jusque trouver où est le .roles

#

Ça t’aurait prit environ 10 minutes Max

keen narwhal
#

message.guild.members is not a function

oak turret
#

.member

keen narwhal
#

ectionWarning: TypeError: Cannot read property 'member' of undefined

oak turret
#

message.member

#

pas .guild

keen narwhal
#

message.member is not a function

oak turret
#

message.member.roles.add(role).catch(console.error);

#

t'as mis ça

keen narwhal
#

Il parle de cette ligne const member = message.member(message.author);

oak turret
#

enlève ta const

#

message.member.roles c'est du wiki

keen narwhal
#

Dieu merci :3

#

Ça marche

#

Enfin merci

oak turret
#

np xd

keen narwhal
#

Je viens de vivre quelque chose d'assez épic xD

oak turret
#

Hello, c'est tout con, mais vu que je fais à peu près toujours le même event, quand je change j'suis un peu perdu pour les messages, vous auriez la soluce du member.content (alias message.content) xD (il me met que content est undefined)

client.on("guildMemberAdd", (member) => {  
    member.guild.channels.cache.find(c => c.name === "hello-channel").send(`"${member.user.username}" has joined this server`);
    function codeVerify(length) {
        var result           = '';
        var characters       = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
        var charactersLength = characters.length;
        for ( var i = 0; i < length; i++ ) {
           result += characters.charAt(Math.floor(Math.random() * charactersLength));
        }
        return result;
     }
     
     let code = codeVerify(5);
     const rep = member.content.split(" ").slice(1).join(" ");
     if ( rep != code ) {
         return member.channel.send("Mauvais code");
     }
     else {
         return member.channel.send("Bon code");
     }
})
keen narwhal
#

Tu as essayé message.content ?

oak turret
#

undefined logique

slim anvil
#

tu veux faire quoi

keen narwhal
#

mais Member n'est pas égal à message.content enfin je crois.....

slim anvil
#

Que le mec réponde à un code pour valider que c’est un user ?

oak turret
#

que le mec réponde à un code yes et que ça valide ou pas sa réponse en fonction de ma let code

slim anvil
#

du coup ça peut se faire dans le onMessage aussu

#

Tu vas juste check que le message vient bien d’un certains channel

oak turret
#

je vais regarder ça, merci Enzo ^^

slim anvil
#

pardon onMessage habitude mais le on(« message »)

oak turret
#

ui je me disais xD, genre l'event tu parles ?

slim anvil
#

Yes

#

sur tel relou mais le client.on(‘mesage’, ....)

oak turret
#

yes j'ai compris, mais je le récup comment du coup dans l'autre

slim anvil
#

récupère quoi

oak turret
#

ce que l'user répond dans la let rep (genre la réponse au code)

#

je le fais avec un charAt de mon code dans rep ?

slim anvil
#

Bah sa réponse c’est juste le message.content de l’évent message

oak turret
#

yes

slim anvil
#

juste toi tu vas venir avant checker si le channel du message est bien celui du « hello-.... »

oak turret
#

hm je vois, mais du coup ma let rep est dans l'event message, et dans l'autre comment je peux lier les deux fin j'ai pas capté le truc

slim anvil
#

Tu régénérés un code différent à chaque arrivé ?

oak turret
#

yes

slim anvil
#

Mais encore une fois si t’as 2 membres qui arrivent en même temps

#

Le premier va écrire un truc qui va être faux car le code aura changé

oak turret
#

ouais mais c'est juste pour test, c'est pas pour un projet, après oui j'aurais du faire un code pour chaque user à son arrivé

slim anvil
#

Bah du coup tu vas devoir le stocker en base ou en json peu importe mais tu peux pas le générer pour chaque personne en le stockant dans une variable si le bot restart, si une autre personne rentre c’est loose, et dans le channel tu vas pas t’amuser à éditer le code qui apparaît à chaque fois, c’est pas tout le temps le même de code ? Généralement je crois que si, ou alors fais un système qui change le code chaque H où chaque Jour

#

ce sera plus simple à gérer de ton côté je pense, mais déjà géré en faisant en sorte que ce soit tjrs le même code, et ensuite ajoute toi la tache d’en généré un Chaque jour par ex, step by step je pense

oak turret
#

yes je vois, alors là un code se génère à chaque nouvelle arrivée, sans restrictions etc

slim anvil
#

Sois tu génères au start une espèce de code global à chaque arrivé, soit à chaque arrivé tu crées un code à la personne que tu dois save et lui envoyer en mp pour qu’elle le réécrit, mais aussi relou à faire que à utiliser pour la personne je trouve

crimson fern
#

du coup ça peut se faire dans le onMessage aussu
il y a les MessageCollector au pire

oak turret
#

alors là ce que je fais (pour test) c'est que je créer un objet en json dans mon code, et à chaque arrivée je push dedans id, username, et code avec pour chacun un code unique et pour l'instant j'ai fais que ça pour test

oak turret
#

Du coup je sais juste pas comment faire pour gérer la réponse de l'user (en mp) lié les deux events quoi

keen narwhal
#

Vous savez comment faire un cooldown ?

#

Genre, j'ai avec le timeout présentement et le seul moyen

#

Seulement, que je voudrais que ça reste pas vous pouvez faire cette commande dans 4 h mais que le temps se diminue genre s'il reste 2h56 bah ça affiche 2h56

hazy mirage
#

joue avec les timestamp 😉

keen narwhal
#

kk

oak turret
#

Vous auriez pas des idées pour lié les deux events du coup ? xddd

keen narwhal
#

est ce que quelqu'un saurait comment faire ca :

par exemple je met ca :

send "arg" #nodejs

et ca envoie dans le channel que j'ai marqué

En gros c'est un say mais avec un channel en plus

slim anvil
#

alors place le nom du salon en 2eme argument, plus simple a gérer

#

Mais oui tu regardes ton deuxieme argument, ca va etre un channel, tu vérifies déjà qu'il existe, et si il existe hop tu send le message dans ce channel

cyan iron
#

Salut à tous !
J'aurais une question à vous poser. Y'a t-il un moyen de get un utilisateur qui n'a aucun serveur en commun avec le bot ?

#

En fait, j'ai fait un unban avec timestamp. En gros ça check tous les X temps si il reste des personnes bans dans la base de donnée. Comme ça si le bot crash / redémarre et bah ça le unban quand même

hazy mirage
#

euh dans le serveur tu dois juste mettre l’ID de la personne à unban je pense

#

Genre un filtre comme un peu comme ça sur tous les bans: ban => ban.id === "userid"

#

Je vais voir

#

message.guild.members.unban(id, {reason:"unban"})

cyan iron
#

🤔 Oui je me suis compliqué la vie effectivement

#

Merci x)

#

Et du coup tu saurais pas si y'a un moyen de get un utilisateur qui n'a aucun serveur en commun avec le bot ?

#

ça pourrais mettre utile plus tard

hazy mirage
#

Non cela me parait impossible

#

Enfin pas un GuildMember, peut être via une api externe tu pourras récupérer nickname etc. mais tu ne pourras pas faire d’action sur lui

cyan iron
#

Bah

#

J'ai vu qu'un gars l'avait fait

#

Du genre on pouvait get l'avatar d'un mec qui avait aucun serv en commun avec le bot

oak turret
#

non pas possible

#

comment tu peux get des informations d'un gars random sans avoir des infos communes avec lui ?

#

à pars l'api discord en web mais pas pour un bot

cyan iron
#

aaah tu peux en web

#

ça se trouve le mec passe par le web et envoie l'info dans son bot 🤔

#

C'est possible en vrai

#

Il a bien du faire quelque chose

oak turret
#

oui tu peux par le web

#

avec l'api tu peux get tout le monde

slim anvil
#

Bah tu peux le faire avec ton bot de get les infos du mec

#

Tu fais juste une requête en nodejs sur l’api discord

uncut eagle
#

Salut, quand je start mon bot ( l'hébergement ) j'ai une erreur qui apparait ( je suis avec OVH ).

Je ne sais pas comment régler cette erreur. J'ai essayé de voir avec le développeur du bot, mais il n'a aucune idée pourquoi il y a cette erreur.

Quelqu'un peut m'aider svp.

La console :

oak turret
#

le client.login

#

y a process.env.TOKEN

#

un truc comme ça

#

faut changer

#

mettre le token du bot

#

et sur ton hébergeur tu dois npm i tous tes packages

timid loom
#

@uncut eagle ton problème semble se rapprocher de celui-ci
https://stackoverflow.com/questions/29994411/invalid-elf-header-when-using-the-nodejs-ref-module-on-aws-lambda

en gros: le module sqlite3 qui est utilisé est fait pour tourner sur une architecture différente que celle sur laquelle tu es en train d'exécuter l'instance node
est-ce que tu as upload le dossier node_modules avec le reste? si oui, retire le dossier et installe plutôt les modules au lancement du bot via un npm i (il faut que les dépendances soient renseignées dans le package.json ou que le fichier package-lock.json soit présent)
si tu as installé les dépendances depuis le serveur je ne sais pas vraiment, il faut que je recherche et j'ai franchement pas le temps (la réponse sur stack overflow serait mon point de départ cela dit)

keen narwhal
#

quand on fais un dossier avec des commandes pour avoir une meilleure présentation, ca s'appel bien un Handler ?

slim anvil
#

Oui

#

Enfin l’handler c’est ce qui va appelle tout ça

#

En gros

keen narwhal
#

Bonsoir , j'ai une erreur mais je ne sais pas là régler :/

**(node:14620) UnhandledPromiseRejectionWarning: ReferenceError: msg is not defined
at Client.bot.on (/home/keysex/Bureau/SelfBot JS/index.js:267:9)
at emitOne (events.js:121:20)
at Client.emit (events.js:211:7)
at MessageCreateHandler.handle (/home/keysex/Bureau/SelfBot JS/node_modules/discord.js/src/client/websocket/packets/handlers/MessageCreate.js:9:34)
at WebSocketPacketManager.handle (/home/keysex/Bureau/SelfBot JS/node_modules/discord.js/src/client/websocket/packets/WebSocketPacketManager.js:105:65)
at WebSocketConnection.onPacket (/home/keysex/Bureau/SelfBot JS/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:333:35)
at WebSocketConnection.onMessage (/home/keysex/Bureau/SelfBot JS/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:296:17)
at WebSocket.onMessage (/home/keysex/Bureau/SelfBot JS/node_modules/discord.js/node_modules/ws/lib/event-target.js:120:16)
at emitOne (events.js:116:13)
at WebSocket.emit (events.js:211:7)
(node:14620) 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(). (rejection id: 150)
**

bot.on("message", async message => {
    if(message.content === "!ping")
    return message.channel.send('Pong! The ping is `' + `${Date.now() - message.createdTimestamp}` + ' ms`')
    })

Quand je fait la commande !ping ça me fait l'erreur en haut et ça me spam les autres commande que j'ai comme mon !help et autre truc du genre

slim anvil
#

Pas le bon bout de code, tu dois utiliser msg quelque part alors qu’il est undefined

sand shore
#

Remplace msg par message

keen narwhal
#

@sand shore tout mes msg je les es remplacer en message

#

Le mot msg n'existe plus dans mon code

oak turret
#

@keen narwhal Je me permets de te mentionner, après changement tu as l'erreur ?

keen narwhal
#

Oui

#

Toujours
@oak turret

oak turret
#

D'accord, alors je vais te donner une base saine pour apprendre à faire tes bots facilement

#

deux secondes je t'écris ça

keen narwhal
#

Je connais sais faire des bot mais c'est la première fois que j'ai cette erreur alors que je ne vois pas pourquoi j'ai cette erreur

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

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

const client = new Discord.Client();

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

    console.log(`Ok`);
    client.user.setActivity("Test");

});

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 === "test" ) {
    return message.channel.send("test");
}  
  });

{
  "token": "token",
  "prefix": "prefix"
}
#

sinon, pour ton cas essaye de bien npm i discord.js

keen narwhal
#

peut être car je mais message.content === "!ping" ou une autre commande je pense que ça viens de message.content

oak turret
#

voir si tout marche bien

keen narwhal
#

J'avais essaye le npm i discord.js (J'ai eu que des erreur , heuresement que javais déjà pour un autre bot)

oak turret
#

t'as essayé de l'installer depuis le command prompt ?

keen narwhal
#

Oui

#

Mais il es bien full

#

C'est une erreur dans mon code askip

oak turret
#

test mon code

keen narwhal
#

Il marche

slim anvil
#

et c'est quoi ton erreur

oak turret
#

pourtant l'exemple de base c'est ça :

keen narwhal
#
bot.on("message", async message => {
    if(message.content === "!hfun")
    if (message.deletable) message.delete();
    {
        let embed = new Discord.RichEmbed()
        .setAuthor("[K.E.Y.S.E.X]")
        .setTitle("| HELP Fun| SelfBot")
        .addBlankField(1)
        .addField("!ping", `Get the latency of the bot`,true)
        .addBlankField(1)
        .addField("!coinflip", `Play heads or tails`,true)
        .addBlankField(1)
        .addField("!pp", `Lets have that pp or that of a member`,true)
        .addBlankField(1)
        .addField("!cat", `Lets have cat photos`,true)
        .addBlankField(1)
        .addField("!dog", `Lets have dog photos`,true)
        .addBlankField(1)
        .addField("!neko", `Lets have neko photos`,true)
        .addBlankField(1)
        .addField("!lizard", `Lets have neko photos`,true)
        .addBlankField(1)
        .addField("!Russianroulette", `Played Russian roulette`,true)
        .setTimestamp()
        message.channel.send(embed)
    }})

l'erreur pourrais venir de ça => message.content non ?

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

client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);
});

client.on('message', msg => {
  if (msg.content === 'ping') {
    msg.reply('Pong!');
  }
});

client.login('token');
keen narwhal
#

Bizarre

oak turret
#

ah mais

#

ton if msg.content y pas de {}

#

faut que le reste sois dans les {} de msg.content

keen narwhal
#

genre ```js
if(message.content === "!hfun"){

oak turret
#
bot.on("message", async message => {
    if(message.content === "!hfun") {  
    // ton code
}
    
#

il y est pas sur ton code

keen narwhal
#

Pour trouver une excuse de celà (j'ai fait ça tard dans la nuit xD)

oak turret
#

np ahah

#

bah fais sur mon code au pire

keen narwhal
#

C'est une erreur basic mais bon

#

ça sert à quoi les ```js
if(message.author.bot) return;

?
#

Simple question

slim anvil
#

si le message vient du bot

#

il executera pas le reste du code

oak turret
#

yes

slim anvil
#

le return sert à sortir du code

#

à dire que c'est fini

keen narwhal
#

Ok

oak turret
#

si c'est le bot ou un bot qui fait une commande etc ça return rien donc ça fais rien

keen narwhal
#

D'accord , bas merci beaucoup ^^

oak turret
#

np ^^

keen narwhal
#

@oak turret Tu veux te marrer , le ```py
if(message.content === "!commande..."){


La plupars de mon code à mais le reste en à pas xD j'ai fait n'importe quoi
oak turret
#

t'es sur vscode ?

keen narwhal
#

Yep

oak turret
#

t'as pas une sorte de truc rouge pour dire que sur ton code un truc va pas ?

keen narwhal
#

pas vraiment , sa dépend de si tu oublie un crochet ou une parenthèse oui mais sinon non

oak turret
#

yes donc t'as rien

keen narwhal
#

Ouais

weak grove
#

salut, pour get un message id il faut bien faire message.id("id") ou pas du tout ??

oak turret
#

tu veux get un message en particulier ?

weak grove
#

yep

#

genre ça : 727199348341080164

oak turret
#

oauis mais un message déjà existant je veux dire ?

weak grove
#

yep

oak turret
#

version 12 c'est message.channel.messages.fetch("ton id");

weak grove
#

mhhh merci 🙂

oak turret
#

test je suis pas sur, mais np ^^

#

c'est messages.fetch

weak grove
#

ok

#

sa me met une erreur 🤔

#

TypeError: message.channel.messages.fetch is not a function

oak turret
#

.cache.fetch

weak grove
#

sa vient de fetch

oak turret
#
channel.messages.fetch('99539446449315840')
  .then(message => console.log(message.content))
  .catch(console.error);
weak grove
#

ca marche pas 🤔

weak grove
#

?

#
client.on("message", (message) =>{
    if(message.content === "!t"){
        client.channel.messages.fetch('727214130230067312')
        .then(message => console.log(message.content))
        .catch(console.error);
    }
});

j'ai fait ça sauf que sa me dit que "messages" est undefined

oak turret
#

.channels peut-être

weak grove
#

ah j'ai trouvé il faut fetchMessage

oak turret
#

c'est po écris sur le wiki j'crois

keen narwhal
weak grove
#

re, vous savez quoi mettre pour check si le channel est le bon genre if( message.channel.get("5545648945123") pour un message normal sauf que la c'est sur un messageReactionAdd c'est possible si oui comment?? 🤔

oak turret
#

hm t'as du code à nous faire voir ?

#

faut adapter le truc

weak grove
#
client.on('messageReactionAdd', (reaction, user) => {
    if(reaction.emoji.name === "🍆") {
        if (reaction.channel.id == '683369915302150238') {
            
            client.channels.get("727153672248885269").send("TA DELETE !!!!!!!!")
        }
    }
});
oak turret
#

alors je sais pas à quoi correspond ton user, voir si on peut use les methodes de message

#

mais attend je vérif sur mon code pour les tickets auto

#

ah si tu peux

#

donc

#
client.on('messageReactionAdd', (reaction, user) => {
    const channel = message.guild.channels.cache.get("id"); // si t'es en v12

    if(reaction.emoji.name === "🍆" && channel ) {
        if (reaction.channel.id == '683369915302150238') {
            
            client.channels.get("727153672248885269").send("TA DELETE !!!!!!!!")
        }
    }
});

Pas sur de la const mais essaye

keen narwhal
#

Bonsoir , j'ai un petit problème avec une commande de ban.

**(node:4039) UnhandledPromiseRejectionWarning: DiscordAPIError: Missing Permissions
at item.request.gen.end (/home/keysex/Bureau/bot JS/node_modules/discord.js/src/client/rest/RequestHandlers/Sequential.js:85:15)
at then (/home/keysex/Bureau/bot JS/node_modules/snekfetch/src/index.js:215:21)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
**

ça me dit => UnhandledPromiseRejectionWarning: DiscordAPIError: Missing Permissions
Alors que pourtant j'ai les permissions vu que je suis le créateur du serveur

#

Le bot n’a pas les perms

#

Comment faire en sorte qu'il à les perm ?

#

Il ne demande pas si tu as toi les permissions, il dit seulement que lui n’a pas les permissions

#

Une commande ?

#

Bah tu l’es rajoutes

#

Comme quand tu rajoutes des perms à un rôle

#

Je sais que je peux les add , mais les permission comme ça

DiscordPermissions = [
  "ADMINISTRATOR", "CREATE_INSTANT_INVITE", "KICK_MEMBERS",
  "BAN_MEMBERS", "MANAGE_CHANNELS", "MANAGE_GUILD",
  "ADD_REACTIONS", "VIEW_CHANNEL", "READ_MESSAGES",
  "SEND_MESSAGES", "SEND_TTS_MESSAGES", "MANAGE_MESSAGES",
  "EMBED_LINKS", "ATTACH_FILES", "READ_MESSAGE_HISTORY",
  "MENTION_EVERYONE", "USE_EXTERNAL_EMOJIS", "EXTERNAL_EMOJIS",
  "CONNECT", "SPEAK", "MUTE_MEMBERS", "DEAFEN_MEMBERS",
  "MOVE_MEMBERS", "USE_VAD", "CHANGE_NICKNAME",
  "MANAGE_NICKNAMES", "MANAGE_ROLES", "MANAGE_ROLES_OR_PERMISSIONS",
  "MANAGE_WEBHOOKS", "MANAGE_EMOJIS"
]; 

marche ou pas (on ma dit que c'est mieux avec ça)

#

Mais pourquoi tu te fais chier comme ça ? Rajoute seulement les perms à ton bot.

#

Pas faux

#

Mais c'est pas pour moi le bot

#

Surtout comment tu veux que ton bot rajoute des perms s’il en n’a pas ?

#

Bas peux pas

#

...

#

Quoi ?

#

Rien

#

Ok ok

#

Je te conseil seulement de faire une vérification si l’auteur a les perms et si le bot a les perms.

#

Ok

#

Il à les perm mais ça veux toujours pas

#

Montre l’erronée

#

L’erreur*.

#

**(node:4156) UnhandledPromiseRejectionWarning: DiscordAPIError: Missing Permissions
at item.request.gen.end (/home/keysex/Bureau/bot JS/node_modules/discord.js/src/client/rest/RequestHandlers/Sequential.js:85:15)
at then (/home/keysex/Bureau/bot JS/node_modules/snekfetch/src/index.js:215:21)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
**

#

Ton code en screen

#

J'ai trouvé c'est bon

#

Ok

#

c'est tu embétent ça => (node:4172) [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.
?

#

Est-ce que ça a marcher ?

#

Oui

#

Mais j'ai tout le temp ça comme erreur

#

Est-ce que ça a marcher ?

#

Oui

#

Alors n’en prend pas compte

#

Ok

oak turret
#

au pire

#

réinvite ton bot avec les perms d’admin

#

plus simple md

#

mdr

keen narwhal
#

Pas faux

#

🙂

oak turret
#

^^

weak grove
#

Hello ! dans un messageReactionAdd c'est possible de modifier un message genre j'ai fetch l'id de mon message sauf que j'aimerais edit le msg

oak turret
#

si t’as mis une const à ton fetch

#

tu fais taconst.edit

#

pas sur mais ça me parais le plus logique

keen narwhal
#

@weak grove Oui, selon moi, c’est comme Lartaxx a dit, seulement il faut que dans ta const tu aies réécrit le message. Je te montre

weak grove
#

ok

keen narwhal
#

Un truc comme ça

oak turret
#

Ouais aussi, mais là dans l’exemple il envoie un message et après il l’édit, lui veut édit un message déjà écris et présent

#

donc je pense que fetch son message et l’édit après avec la const devrait fonctionner

weak grove
#

Ouais mais c'est un message reactionadd et je peux pas définir message

oak turret
#

j’ai le même problème pour mon système de captcha

#

je cherche encore comme relié les deux events

#

mais dans ton reactionadd je sais pas si user peut avoir les méthodes de user ou message

#

faut test

#

même pas useless bah je sais pas du coup

#

j’taurais bien dis de faire un message.startsWith() mais c’est message quoi

#

ah siii

#

const {message, _emoji} = reaction;

#

donc après tu fetch

#

et tu édit

#

avec message

hybrid berry
#

Hello pourquoi sur mon handler mon prefix '/' n'est pas prix en compte ?

#

en gros si je fais /help j'ai rien mais si je fais juste help sa fonctionne

#

je ne comprend pas du tout, ce problème est récent

slim anvil
#

si je dis pas de betise, si tu as

'/ping'.substring('/').split('')

// output ['/', 'p', 'i'....]
#

donc ton switch sera pas good

#

ah my bad non pas vu l'espace

#

mais du coup ton args0 = "/ping" et pas juste "ping"

hybrid berry
#

bah dans ma command je recup les args comme ceci

keen narwhal
#

Salut,
j'aimerais avoir un peu d'aide si quelqu'un sait comment faire :

j'ai un bot la et j'aimerais que des que quelqu'un rejoignent un des serveurs ou est le bot ca lui envoie un message !

#

Tu t’ai renseigné un peu ?

#

oui

#
    client.on('guildMemberAdd', member =>{
        member.send(embed)   ```
#

j'ai trouvé ca mais ca ne marche pas

#

ton embed n’est pas définis

#

ca me mettrait un message d'erreur si c'était le cas nan ?

#

genre embed is not defined

#

sauf que ca me met rien en erreur

#

juste ca envoie pas

#

: (

#

....

#

Comment tu veux que ça s’envoie, s’il envoie une variable vide ?

#

j'ai defini le bot avant

#

il faut que je le definisse dedans ?

#

Montre tout ton code

#

l'embed *

#

il est vrm long

#

Et tu fermes quand ton GuildMemberAdd ? Parce que là, il manque )}

#

Montre quand même

#

Si j’ai pas tout, je peux pas t’aider

#

au pire je raccourci les trucs inutiles

#

Montre au complet.

#
const Discord = require('discord.js');
const bot = new Discord.Client()
const figlet = require('figlet');
const sleep = require('system-sleep');
const colors = require('colors');
var prefix = ">"

bot.login('TOKEN8');



bot.on("message", message => {
    if (message.author.bot) return;
    if (!message.content.startsWith(prefix)) return;



    if (command === "embed") {
        var inviteazdaz_embed = new Discord.MessageEmbed()
        .setAuthor("Discord Bot",)
        .setColor("#ff00b7")
        .setDescription(`**MERCI D'AVOIR REJOINS LE SERVEUR**`)
        .setFooter("SERVER JOINS")
        message.channel.send(inviteazdaz_embed)
    }

    client.on('guildMemberAdd', member =>{
        member.send(inviteazdaz_embed)
        console.log(member.user.username + "a rejoint")
     
    });



})


bot.on("ready", () => {
  clear();
  
});


#

Tu veux qu'il envoi en pv ?

#

oe

#

bot.member.send(inviteazdaz_embed)

#

Essaye ça