#javascript-typescript
1 messages · Page 54 of 1
Oki, j'ai dl sqlite
t'as des exemples sur je sais plus quel site
Bah là tout va changer ouais
j'avais appris à l'use sur ça
J'ai dl ce sqlite3
no
C'est pas le bon?
Comment je dl l'autre ?
const db = require('better-sqlite-3');
cont table = db.prepare('SELECT * FROM users').get();
Oki
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
et tu dois créer une newsqlite3 aussi
;-;
look mon bot pour t'aider
SQLiteManager is a multilingual web based tool to manage SQLite database. The programming language used is: PHP4, but work fine with PHP5. Work just…
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
bah tu créer ta bdd en .sqlite dans ton dossier
et après tu l'ouvres depuis sqlitemanager
Oki
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
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')
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.
Normal chanel n'est pas définie de base
channel*
Et tiens sur ce site c'est beaucoup mieux expliquer
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
Je ne fais pas de python sorry
a zut
Aprés donne l'erreur je peut toujours essayer de voir
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```
Ton dernier await est en dehors de ta fonction
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
Je connais pas le python, mais si tu peux faire un if(ban_member == false ) { ton code }
a ouep et où stp
Je connais pas le python...
ok mrc pas grave
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
a je vois pas trop se que sais un self bot sorry
mais je sais pas comment faire
d'acc
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)```
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
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
code ?
att
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 mettreembed=embed5??
non tu refais un embed
oui le 5 c'est celui la que je veux qu'il send
non mais tu refais un embed un nouveau
j'ai pas trop compris ou je le met le if(!permissions)
??? 😭
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
a oui c un autre delir votre truc 😂
Le JS, c'est mieux 
bah sans base tu peux mais pas stocké genre au reeboot de ton bot c'est reset
Nope
ah bon
ah ui j'suis con
@keen narwhal tu comptes stocker plusieurs utilisateurs dans le même fichier json?
bah c'est super simple ton truc alors
Il vaudrait mieux faire un fichier par utilisateur ou passer par du sql
Il vaudrait mieux faire un fichier par utilisateur ou passer par du sql
@hazy mirage Ça ferais beaucoup de fichier s'ils sont 500...
sqlite comme je t'ai dis ^^
Je comprend pas comment use le sql xDDD
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?
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
objets de ta base e tu les updates tout simplemenet
Du sqllite semble une bonne alternative 👌
comment je peu envoyer un msg en priver de quelqu'un que je mentionne ?? pour le ban par exemple
je fais ça pour mon système de ticket, warn, money etc
Je regarderais
@merry compass member (si c'est ta var qui mentionne l'user).send("contenu") en js du moins
python idk
a moi la je suis en python
idk
mais j'ai aussi un en JS et en JS j'ai reussi tkt mrc quand meme 😉
;-;
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..
un sabre
Enzo & Taink pour 20k 😉
Un sabre pour chaque shops ?
XD tu poura envoyer un screen de ton embed ça a l'aire cool
C’est juste un test
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
Oki
Hâte de voir, ce que ça va donner !
Yes je suis pas sûr de te donner ça aujourd’hui j’ai beaucoup de choses à faire
Tkt
Il va être encore plus vexé
quelqu'un pour du pyhton
@merry compass si c'est la même chose que ce que tu demandais hier soir c'est dans la doc : https://discordpy.readthedocs.io/en/latest/api.html?highlight=user#discord.DMChannel.send
j'avoue qu'elle est pas très facile à naviguer cela dit
J'avoue que je trouve le wiki juste horrible
c pas simple simpl 😂
Non mais franchement la doc n'aide pas du tout.
ba c pas facile a lire et c un ptit peu le mess 😉
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
ta des screen ??
@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
Waw comprend rien xD
Mais
t'as un .exe dedans non ?
Tu m'avais donné un lien forge xD
je me souviens plus j'étais fatigué sûrement
Ça m'ouvre un truc
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
bah c'est fait pour ça
Ouais, mais genre comment je fais ?
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
tu le mets dans la racine la bdd
Je sais, mais comment je fais pour le save genre dans le truc
tu vas faire laguer ton bot
il va mettre 30 ans à repondre
pas besoin ça fais une nouvelle ligne dans ta table
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
Ouais, mais xp.noli comment je le sav
J'sais mais genre
Moi mon code
Il save seulement baud
Mais baud et Noli n'ont pas la même value
Du coup
bah aux autres tu fais genre noli: xp.noli et pareil pour pommi
ça changera pas la valeur
Mais genre, là json en save seulement 1
et bah ?
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
MMh
ça fais + moneyamount à baud juste
c'est simple pourtant
Peut-être mais ma tête comprend pas
tu comprends pas quoi
Tout xD
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
normal que ça marche pas
.baud t'as mis à Noli et Pommi
ah mais
t'as rien mis en json pour noli et pommi ?
Yep
okay je vois
Je vois
Et je voulais pas venir parce que je me disais que c'était simple donc je pouvais trouvé moi même
json c'est pas fais pour stocké
donc learn sqlite c'est plus simple
et moins chiant
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 ?
?
Yep, mais genre
Il est pas adapté à ce que j'ai fait
Ok
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
bah à la place de 100 tu mets ce que tu veux
et sinon pareil
tu changes
à ta guise
tout simple
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
Comme j'ai fait au départ ?
ouais
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
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
Ok
c'est mieux en base
ui
aah vive le JS
mieux que discordpy xd
😂 oui
t'as pas mis money à l'objet ?
Nope
montre tout
quelle ligne
mets userscore.baud etc pour voir
Où ?
;-;
Ah bah ça marche
That's weird
Je veux pas être obligé de me mention
Règler
Il y a une taxe ? 
Une taxe ? xd
euh moi ça marche mdr
xD
(node:34108) UnhandledPromiseRejectionWarning: SqliteError: database disk image is malformed
J'ai pas touché pourtant
;-;
C'est bon, ça marche merci Lartaxx
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
a enfin quelq'un avec py
je débute je comprend pas grand chose
tu a pycharm ??
Si tu débutes te lances pas dans la création d'un bot
mais peut etre dans l'apprentissage du langage déjà
j'ai un truc pour installe l'API discord rtes simplement avec pychamr sans passer par pip ******
bah je dois apprendre le langage l'année prochaine mais je veux déjà commencer maintenant
et non je fais avec VisualStudioCode
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 ??
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
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
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
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
python c'est pas simple pour un débutant
je déteste python c'est le pire truc
nodejs >
on m'a renseigner pour les MP c bon
@oak turret J’arrive pas à soustraire des sous du truc, c’est comme si le code s’exécutait pas
code
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
alors
si l’user n’a pas de données en base il est â combien noli etc ?
ça fais quoi à la fin ?
Rien.. justement
Yep
Yep
look si en base ça fais les calculs
?
look ta bdd
au lieu de userscore.baud etc mets xp.baud etc pour voir
DROP table users
^^
ok
donc
réouvre ta bdd
ferme sqlitemanagzr
et réouvre le avec ta bdd
et look si t’as une table
Nope
okay
Pas de table
Ça n'a rien changé
okay
Ça lance tout
Yep
J'ai legèrement envie de recommencer pour faire un truc que je comprendrais :3
comme tu veux
car tu vas galerer si tu comprends pas
json c’est pas fais pour ça oublie pas
I know
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)
}
}
})```
c’est .roles me semble t-il non ?
Même error
? Pas compris
enlève ta const guild
Oki
sinon const guild = client.guilds.cache.get(id)
Je fais ça après ma game
avec quelle soluce
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)
}
}
})```
@oak turret
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 :/
Tu fais un nouveau embed avec tes fields edit
Et ensuite message.edit(tonembed)
okk merci !
De rien
@oak turret Tu connais la soluce ?
pour ?
Mon problème de verif
Tu veux que je log quoi ?
message.author.role.add(verifrole)
^
TypeError: Cannot read property 'add' of undefined
Même avec un s à rôle marche pas
@oak turret
pas besoin de ping
.guild.roles ?
j'ai pas look le wiki mais ça doit être un truc comme ça
J'essaie et je retient pour le ping
TypeError: Cannot read property 'roles' of undefined
look le wiki
J'fais ça
Cache est undefined
look RoleManager
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
C'est la v11 ça Osmium
nn tkt 
Un peu x')
t'as test alex ?
Marche pas
jamais fais ces trucs là donc j'sais pas plus
message.member.roles.add
essaye
donc
attend
I put message.author
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
xD
client.guilds.cache.get("id").roles.cache.get("id");
ou sinon dans role
client.roles.cache.get("id");
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
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
le let member tu peux le replace par <Message>.member
et tu peux aussi le replace par une const
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
Quel est le problème ? C'est quoi l'erreur que tu obtiens @keen narwhal ?
message.author.roles.add('723484500822196236').catch(console.error);
^
TypeError: Cannot read property 'add' of undefined
Bah lorsque le mec écrit Je jure sur la sainte pomme que mes intentions sont louables
Jpp de la phrase
Yep
nope
?
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```
Je fais seulement un copie collé ?
en gros tu mets ça au début de ton event message
okk
mais si t'as pas les partials sur les message ça sert à rien
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
<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
alors
dsl j'étais parti
c'est super bizarre que author soit undefined
je vais faire deux trois tests
c'est surtout que message.author.roles est undefined car message.author ne return pas roles 
Bah
member = message.author ?
Sinon tu consoles log jusque trouver où est le .roles
Ça t’aurait prit environ 10 minutes Max
message.guild.members is not a function
.member
ectionWarning: TypeError: Cannot read property 'member' of undefined
message.member is not a function
Il parle de cette ligne const member = message.member(message.author);
np xd
Je viens de vivre quelque chose d'assez épic xD
Aucun des deux, n'a écrit la phrase..........
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");
}
})
Tu as essayé message.content ?
undefined logique
tu veux faire quoi
mais Member n'est pas égal à message.content enfin je crois.....
Que le mec réponde à un code pour valider que c’est un user ?
que le mec réponde à un code yes et que ça valide ou pas sa réponse en fonction de ma let code
du coup ça peut se faire dans le onMessage aussu
Tu vas juste check que le message vient bien d’un certains channel
je vais regarder ça, merci Enzo ^^
pardon onMessage habitude mais le on(« message »)
ui je me disais xD, genre l'event tu parles ?
yes j'ai compris, mais je le récup comment du coup dans l'autre
récupère quoi
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 ?
Bah sa réponse c’est juste le message.content de l’évent message
yes
juste toi tu vas venir avant checker si le channel du message est bien celui du « hello-.... »
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
Tu régénérés un code différent à chaque arrivé ?
yes
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é
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é
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
yes je vois, alors là un code se génère à chaque nouvelle arrivée, sans restrictions etc
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
du coup ça peut se faire dans le onMessage aussu
il y a les MessageCollector au pire
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
Du coup je sais juste pas comment faire pour gérer la réponse de l'user (en mp) lié les deux events quoi
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
joue avec les timestamp 😉
kk
Vous auriez pas des idées pour lié les deux events du coup ? xddd
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
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
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
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"})
🤔 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
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
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
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
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
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
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 :
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
@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)
I've just uploaded a zip to AWS Lambda which included the "ref" (https://www.npmjs.com/package/ref), which is needed to validate an iOS Game Center authentication token (How to authenticate Game Ce...
quand on fais un dossier avec des commandes pour avoir une meilleure présentation, ca s'appel bien un Handler ?
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
Pas le bon bout de code, tu dois utiliser msg quelque part alors qu’il est undefined
Remplace msg par message
@sand shore tout mes msg je les es remplacer en message
Le mot msg n'existe plus dans mon code
@keen narwhal Je me permets de te mentionner, après changement tu as l'erreur ?
D'accord, alors je vais te donner une base saine pour apprendre à faire tes bots facilement
deux secondes je t'écris ça
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
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
peut être car je mais message.content === "!ping" ou une autre commande je pense que ça viens de message.content
voir si tout marche bien
J'avais essaye le npm i discord.js (J'ai eu que des erreur , heuresement que javais déjà pour un autre bot)
t'as essayé de l'installer depuis le command prompt ?
test mon code
Il marche
et c'est quoi ton erreur
pourtant l'exemple de base c'est ça :
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 ?
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');
Bizarre
ah mais
ton if msg.content y pas de {}
faut que le reste sois dans les {} de msg.content
genre ```js
if(message.content === "!hfun"){
bot.on("message", async message => {
if(message.content === "!hfun") {
// ton code
}
il y est pas sur ton code
Pour trouver une excuse de celà (j'ai fait ça tard dans la nuit xD)
C'est une erreur basic mais bon
ça sert à quoi les ```js
if(message.author.bot) return;
?
Simple question
yes
Ok
si c'est le bot ou un bot qui fait une commande etc ça return rien donc ça fais rien
D'accord , bas merci beaucoup ^^
np ^^
@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
t'es sur vscode ?
Yep
t'as pas une sorte de truc rouge pour dire que sur ton code un truc va pas ?
pas vraiment , sa dépend de si tu oublie un crochet ou une parenthèse oui mais sinon non
yes donc t'as rien
Ouais
salut, pour get un message id il faut bien faire message.id("id") ou pas du tout ??
tu veux get un message en particulier ?
oauis mais un message déjà existant je veux dire ?
yep
version 12 c'est message.channel.messages.fetch("ton id");
mhhh merci 🙂
ok
sa me met une erreur 🤔
TypeError: message.channel.messages.fetch is not a function
.cache.fetch
sa vient de fetch
channel.messages.fetch('99539446449315840')
.then(message => console.log(message.content))
.catch(console.error);
ca marche pas 🤔
?
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
.channels peut-être
ah j'ai trouvé il faut fetchMessage
c'est po écris sur le wiki j'crois
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?? 🤔
client.on('messageReactionAdd', (reaction, user) => {
if(reaction.emoji.name === "🍆") {
if (reaction.channel.id == '683369915302150238') {
client.channels.get("727153672248885269").send("TA DELETE !!!!!!!!")
}
}
});
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
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
^^
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
si t’as mis une const à ton fetch
tu fais taconst.edit
pas sur mais ça me parais le plus logique
@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
ok
Un truc comme ça
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
Ouais mais c'est un message reactionadd et je peux pas définir message
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
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
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"
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

