#javascript-typescript
1 messages · Page 11 of 1
Et ça pour t’aider ^^
ça a fonctionné merci bcp ^^
De rien ^^
Hello! Ici j'ai une requête d'api sous cette forme: https://www.example.fr/api/v2/items/xxxxxxx ou xxxxxxx est un id unique qui correspond a un item d'une database qui fonctionne de manière très simple et qui est mise à jour constamment et rapidement: a chaque fois qu'un item est ajouté dans la data, il y est attribué id+1. Donc, plus l'id est grand, plus l'item est récent jusqu'a ce que la reponse de l'api soit Contenu non trouvé et donc que l'item n'existe pas encore.
Voici ce que je souhaiterais faire: être capable de récupérer l'item le plus récent, i.e avec l'id-1 du message d'erreur, le passer dans une série de test pour le stocker ou non et faire ceci en boucle sachant qu'il y'a plus de 30 items en plus par seconde.
Je n'ai absolument aucune idée de comment m'y prendre je ne demande vraiment pas à ce qu'on me le fasse mais quelqu'un pourrait m'indiquer quel serait le meilleur moyen de procéder ce serait déjà génial, par avance merci!
Sachant que le problème n'étant pas de savoir récupérer un item a partir d'une requête api mais plutôt de faire un fonction qui récupérerait le dernier item disponible dans la database
tu utilises sql ?
tu as cette query : query("SELECT MAX(ID) FROM ma_table");
D’après le schéma de son url et comment il veut l’utiliser, je pense que c’est l’api de vinted 👀
C’est une API externe
Bien vu 🙂
^^
Personne ne sait m'aider?
Heu
Je connais pas l'api de vinted mais je pense que si tu fais ça tu vas spam l'api et te faire ban
C'est marrant comme problème
Mais y a pas des events ?
C'est un problème de logique je ne pense qu'il faut connaître l'api de vinted si?
Nop
Faut qu'il get l'api avec un setinterval et qu'il filtre les dates en fonction des articles qu'il a déjà récupérés.
Je tiens à préciser que ce n'est pas du tout une API publique au départ.
Simplement celle que le site/l'app de Vinted utilisent pour les recherches x)
Extrêmement chiant
Très x)
Aucun risque de ban api si tu fais trop de requêtes ?
Nop
Genre c'est comme si tu spammais les F5 sur la page de recherche vinted 
Oui x)
Si y a 30 articles ajoutés par seconde c'est chaud quand même
Fin si tu met une trop petite intervale, c'est pas l'API de Vinted qui va te dégager mais plus celle de Discord 
Mdrrr
Oui
D'ailleurs je sais que des hebergeurs gratuits avaient interdit les bots vinted parce que ça créait des rate limits
Logique x)
salut, j'aurai une question est ce que quelqu'un sait comment faire rejoindre un salon vocal a un bot discord ? je suis en train d'apprendre a faire un bot et je ne connais pas tout dessus
Bonsoir 👋
Il te faut utiliser le module @discordjs/voice. Tu peux trouver là documentation sur https://Discord.js.org en sélectionnant voice dans le menu de gauche :)
bv merci a toi
besoin daide
du monde dispo
https://prnt.sc/sCFfRBvOEwN4
comme vous pouvez le voir sur le screen j'ai demander a mon bot que quand je !ping ou !help sa envoie un message en fonction de la commande
quand je tape la commande sur discord je vois que cela ne fonctionne pas
Salut 👋
As-tu pensé à activé le "Message Content Intent" ? Si non, il faudra te rendre sur la page de ton application sur le portail développeur dans la section "bot" et l’activer 😉
Yo, j'ai une petite question, comment je fait pour accéder à un Entries ? merci de vos rep
channel.id
Je ne te conseille pas du tout d'utiliser le débugger. Il affiche souvent pleins de trucs incompréhensibles qui vont plus te perdre qu'autre chose.
Utilises plutôt le terminal.
il te faudra taper la commande node <fichierPrincipalDeTonBot> pour le démarrer et utiliser le raccourci CTRL + C pour le stopper 😉
Yo petit question comment afficher le serveur ou la commande a était exécuté sur le console.log (pas member.guild) merci d'avance !
tu peut m'aider stp @glass cargo
console.log(<Guild>.id) :)
merci et le lien pour join le serveur
peut on faire sa ?
Il te faut créer une invitation
okok merci !
:method: GuildInviteManager#create()
Create an invite to the guild from the provided channel.
bonjour, quelqu'un peux m'aider svp car quand j'execute ma commande !kick j'ai cette erreur :
C:\Users\leura\OneDrive\Bureau\Bot music\Commandes\kick.js:25
let user = args.getUser("membre")
^
TypeError: args.getUser is not a function
at Object.run (C:\Users\leura\OneDrive\Bureau\Bot music\Commandes\kick.js:25:25)
at module.exports (C:\Users\leura\OneDrive\Bureau\Bot music\Events\messageCreate.js:16:13)
at Client.emit (node:events:513:28)
at MessageCreateAction.handle (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\actions\MessageCreate.js:28:14)
at Object.module.exports [as MESSAGE_CREATE] (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31)
at WebSocketShard.onPacket (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\WebSocketShard.js:480:22)
at WebSocketShard.onMessage (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\WebSocketShard.js:320:10)
at callListener (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\ws\lib\event-target.js:290:14)
at WebSocket.onMessage (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\ws\lib\event-target.js:209:9)
Le .getUser() ne fonctionnera que pour les commandes slashs :)
<Message>.mentions.members.first()
je met ça a la place ?
yep
args[0]
ça marche merci
j'ai une erreur, j'ai du mal le placer :
C:\Users\leura\OneDrive\Bureau\Bot music\Commandes\kick.js:30
let reason = args[0]("raison")
^
TypeError: args[0] is not a function
at Object.run (C:\Users\leura\OneDrive\Bureau\Bot music\Commandes\kick.js:30:29)
at module.exports (C:\Users\leura\OneDrive\Bureau\Bot music\Events\messageCreate.js:16:13)
at Client.emit (node:events:513:28)
at MessageCreateAction.handle (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\actions\MessageCreate.js:28:14)
at Object.module.exports [as MESSAGE_CREATE] (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31)
at WebSocketShard.onPacket (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\WebSocketShard.js:480:22)
at WebSocketShard.onMessage (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\WebSocketShard.js:320:10)
at callListener (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\ws\lib\event-target.js:290:14)
at WebSocket.onMessage (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\ws\lib\event-target.js:209:9)
@glass cargo
enlève ton ("raison")
member.guild renvoie la classe Guild. Il te suffit dont de faire member.guild.id
tkt, on est tous passés par là ^^
merci c'était ça mais j'ai un autre problème malheureusement 😿 , voici l'erreur : ```js
C:\Users\leura\OneDrive\Bureau\Bot music\Commandes\kick.js:33
if(message.user.id === user.id) return message.reply("Essaie pas de te kick !")
^
TypeError: Cannot read properties of undefined (reading 'id')
at Object.run (C:\Users\leura\OneDrive\Bureau\Bot music\Commandes\kick.js:33:25)
at module.exports (C:\Users\leura\OneDrive\Bureau\Bot music\Events\messageCreate.js:16:13)
at Client.emit (node:events:513:28)
at MessageCreateAction.handle (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\actions\MessageCreate.js:28:14)
at Object.module.exports [as MESSAGE_CREATE] (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31)
at WebSocketShard.onPacket (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\WebSocketShard.js:480:22)
at WebSocketShard.onMessage (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\WebSocketShard.js:320:10)
at callListener (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\ws\lib\event-target.js:290:14)
at WebSocket.onMessage (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\ws\lib\event-target.js:209:9)
user.user.id
Ta variable user est une class GuildMember et non User ^^
Salut je suis oas très fort en java et je me demandais comment faire un système de tris grace au javascript ?
code ?
punaise une vraie usine à aides mdr @undone herald
moi ?
oui montre ton code pour qu'on puisse résoudre ton erreur
module.exports = {
config: {
name: 'master',
description: 'le profile du bot',
usage: `.master`,
},
async run (bot,message,member,args) {
message.channel.send("Test");
console.log('la personne ' + message.author.tag + ' a exectué la commande .master sur ' + member.guild.id);
}
}
log ton member.guild voit ce qu'il te retourne
message.guild.id
Tu peux préciser ?
message.guild.name :)
.....
je suis en train de creer un site et j'ai besoin d'un système de tris des films en javascript @glass cargo
pourquoi en js ?
car je ne suis pas très fort en php et avec les base de données
Je t’aiderais pas, comme tout le monde ici 👀
c'est un logiciel ou un site ?
site
Les sites de streaming sont illégaux (sauf si tu as les droits d’auteurs sur les films proposés, ce dont je doute)
ouai tkt mdr
j'ai encore une autre erreur dsl de trop te déranger mais c'est que j'ai repris ma commande de mon bot avec slashcommand et j'ai envie de faire avec prefix et j'y arrive pas trop voici mon erreur :
C:\Users\leura\OneDrive\Bureau\Bot music\Commandes\kick.js:33
if(message.user.user.id === user.id) return message.reply("Essaie pas de te kick !")
^
TypeError: Cannot read properties of undefined (reading 'user')
at Object.run (C:\Users\leura\OneDrive\Bureau\Bot music\Commandes\kick.js:33:25)
at module.exports (C:\Users\leura\OneDrive\Bureau\Bot music\Events\messageCreate.js:16:13)
at Client.emit (node:events:513:28)
at MessageCreateAction.handle (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\actions\MessageCreate.js:28:14)
at Object.module.exports [as MESSAGE_CREATE] (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31)
at WebSocketShard.onPacket (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\WebSocketShard.js:480:22)
at WebSocketShard.onMessage (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\discord.js\src\client\websocket\WebSocketShard.js:320:10)
at callListener (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\ws\lib\event-target.js:290:14)
at WebSocket.onMessage (C:\Users\leura\OneDrive\Bureau\Bot music\node_modules\ws\lib\event-target.js:209:9)
code ?
const Discord = require ("discord.js")
module.exports = {
name: "kick",
description: "Kick un membre",
permission: Discord.PermissionFlagsBits.KickMembers,
dm: false,
options: [
{
type: "user",
name: "membre",
description: "Le membre à kick",
required: true,
}, {
type: "string",
name: "raison",
description: "La raison du Kick",
required: false,
}
],
async run(bot, message, args) {
let user = message.mentions.members.first()
if(!user) return message.reply("Pas de membre à kick !")
let member = message.guild.members.cache.get(user.id)
if(!member) return message.reply("Pas de membre à kick !")
let reason = args[0]
if(!reason) reason = "Pas de raison fournie.";
if(message.member.id === member.id) return message.reply("Essaie pas de te kick !")
if((await message.guild.fetchOwner()).id === member.id) return message.reply("Ne kick pas le propriétaire du serveur !")
if(member && !member.kickable) return message.reply("Je ne peux pas kick ce membre !")
if(member && message.member.roles.highest.comparePositionTo(member.roles.highest) <= 0) return message.reply("Tu ne peux pas kick ce membre !")
try {await user.send(`Tu as été kick du serveur ${message.guild.name} par ${message.user.tag} pour la raison : \`${reason}\``)} catch(err) {}
await message.reply(`${message.user} a kick ${user.tag} pour la raison : \`${reason}\``)
await member.kick(reason)
}
}
le voici
kick.js ligne 33
remplace message.user.user.id par message.author.id 🙂
Hope it help you
merci je vais essayé 👍
malheurseument non, le bot me renvoie ça :
mais je dois pas être loin d'y arriver
Quel est le soucis ?@stark forge
J'ai repris ma commande kick de mon bot avec slashcommand mais elle n'est pas totalement compatible avec les commande en prefixe ducoup ma commande kick ne fonctionne pas
Qu'est-ce qui ne fonctionne pas ?
Car au dessus, ton bot réponds à ta commande 🤔
@stark forge
Désolé je me suis endormi 
Ça ne kick pas mon membre, mon bot répond "Tu ne peux pas kick ce membre !" alors qu'il a aucun rôle au dessus ou autres 🤷
Donc il y à une erreur dans le code
@stark forge tu as mis que les membres non kickable ne peut pas être kick, et tu ne peut pas kick le créateur du serveur

Le membre que je veux kick n'est ni owner et n'a aucune perm 🤷
si tu n'as pas defini de nom oui
@stark forge oui mais tu as mis ceux qui sont kickable ne peuvent pas être kick
Tu sais, enfaite on est peut être trop fort mais on est pas divin sans le code on peut rien faire ...
En gros tu ne peux pas faire de await si ta fonction n'est pas en async hors la tu n'as aucune fonction de crée
okok
Ah bon ?
Pourtant elle marche très bien sur mon bot avec slashcommand
Ah ba jsp
Dommage
c'est possible genre de faire par ex :
me debannir d'un serveur avec mon bot dedans ? et faire la commande ailleur que dans le serveur ou je suis ban
Bonjour 👋
Comment puis-je recevoir des requêtes POST avec VueJS ?
Envoyer tu veux dire j'imagine ?
Qu'un autre si puisse m'envoyer un POST 👀
Mais dcp je vais faire avec express 👀
Non mais on ne peut pas envoyer une requête vers un client, c'est le client qui send un post ^^'
C'est ça que je veux dire
@glass cargo
🤔
Alors y'a une erreur dans mon msg x)
Je voulais dire qu'un autre site puisse m'envoyer un requete post x)
Oui mais VueJS c'est du front donc du client Web
Ou bien tu parles de VueJS en SSR ?
jsp x)
je débute pas mal avec vue
C'est pas en lien avec Vue, c'est juste qu'un navigateur ne peut pas recevoir de requête HTTP, c'est lui qui les envoie
Tu cherches à faire quoi ?
Mettre en place un shop avec kofi. Il y a une fonctionnalité qui permet d'envoyer une requête POST lorsqu'un achat est effectué. Je voudrais donc recevoir un évènement lorsqu'un achat est effectué :)
D'accord et il est où ton vuejs là-dedans ?
Ben j'ai rien pour le moment x)
Euh d'accord mais du coup pourquoi tu parles de VueJS au départ ? x)
Parce que je l'ai déjà utilisé pour autre chose et dcp je pensais le réutiliser x)
Euh d'accord mais je pense que tu as dû mélanger certaines notions, VueJS c'est pour faire un client Web
Oui
donc jutilise canvas pour chager une image
en message de bvn
j'ai un add un text avec xtx
ctx
limagine saffiche met le texte nan
et dans la console sa me met ceci
(node:31672) ExperimentalWarning: buffer.File is an experimental feature and might change at any time
(Use node --trace-warnings ... to show where the warning was created)
tu pourrais me faire un bail comme sa stp ? (je te paye stv)
alors non désolé
ah ok pg
ghost ping ?
C'moi désolé, je répondais à une de tes demandes mais Discord m'avait pas scroll
Je te conseille d'apprendre le minimum de JavaScript avant tout ça 😇
js mdr
@ashen rapids
donc jutilise canvas pour chager une image
en message de bvn
j'ai un add un text avec xtx
ctx
limagine saffiche met le texte nan
et dans la console sa me met ceci
(node:31672) ExperimentalWarning: buffer.File is an experimental feature and might change at any time
(Use node --trace-warnings ... to show where the warning was created)
2 vent mdr
les gars j ai une question qui peut m'expliquer en appelle ou quoi comment faire les commande d un bot discord qui va venir copier un lien vinted et l'envoyer dans un autre salon ( j ai déjà crée le bot et il est déjà sur mon serveur il me manque juste les commandes pour qu’il fasse l' action que je viens de dire et je m y connais pas du tout en codage mais le bot vinted et déjà sur mon serveur juste il est héberger par quelqu’un d autre et il y a la pub du discord au mec qui l’héberge avec le lien vinted du-coup je me suis dit que pour pas que ça pub ce discord bah je fait un bot juste qui copie juste le lien vinted (sans la description où il pub son serv) qu il y a dans mon salon et qu'il le renvoie sur un autre salon de mon discord a moi (si c est possible ) Merci d’avance j’ai vraiment besoin d’aide je suis bloqué et j’ai pas mal de projet avec ca
Lis ton erreur
Si j’ai bien compris tu veux faire un bot vinted ?
non pas exactement je veut juste un bot qui copie un lien vinted qui sera envoye dans le salon de mon serveur et quil l envoie dans un autre salon de mon serveur
j'ai trouvé cbon message etait pas bon c'est member
en gros copié un message vers un autre salon ?
car sur le lien vinted qui atteri dans mon salon il y a une pub d un mec qui est coller et j aimerai quelle disparaisse et donc juste copie le lien vinted et l envoyer dans un autre salon
ouais c est ca
Tu t'y connais avec discordjs ?
c est faisable ??
bien sur
ouais j ai deja mon bot la il faut juste les commande a inserer qui copie le lien et le reenvoie
en vrai 4 ligne c'est fait 🙂
mais sinnon mon bot est deja dasn mon serveur je l ai code avezc visual juste il fait rien
si tu pourrais me faire ca ce serai incroyable
Alors non tu vas le faire tous seul 😉 en gros tu dois :
- Definir ton channel pour le message que tu veux copié
- Definir le channel sur lequel tu veux envoyer le message
-Recuperer le message grace a fetchMessages({ limit: 1 })
-utiliser la fontion then pour savoir quand tu as trouvé le message .then(message => {})
- envoyer ton message grace a sen()
Ok merci beaucoup je vais essayer ca tu gere
quelq'un s'y connaît en database pour mettre a jour l'ID d'un warn quand j'unwarn un membre ?
je sais pas c'est quoi mais je vais voir
exuse moi de te redéranger mais je pourrais avoir un exemple du script et apres je changerai les channel et tout par ce que je comprend vraiment pas et un exemple me debloquerai puis je réappliquerai la methode pour les autres bots car je suppose que c est 1 bot par salon et j ai une vingtaine de salon a faire stp
Sinon tu peux crée le bot tous seul
Je suis sûr que c’est pas très compliqué quand tu connais
je dois faire quelque chose comme ça ?
ouais mais c'est compliquée de connaitre
bref pas grave merci quand même je vais essayer de faire ce que tu ma dit
Si c'est pour mettre à jour ta données oui
Apprend à développer avant peut être ? Si tu as un projet ça devrait aller assez vite
c'est pour que quand j'unwarn un membre, tout les id descendent d'un chiffre
Utilise l'autoincrement au pire pour ta table
par exemple l'id du warn est 1, et quand je l'unwarn ça retombent a 0 dans la base de donnée
oui c'est ce que j'ai fais
oui mais mon projet est de me faire des sous et non etre developpeur mais j ai besoin de developper pour me faire des sous
mais ça met pas a jour
Ah bah dans ces cas là tu fais une demande de dev sur g-ca.fr/offre
juste derniere question quand tu dit definir le channel j ai chercher sur internet il ne dise pas ce que c est c est quoi ?
En gros tu veux retirer le warn
je veux que quand je l'unwarn, dans ma bdd les compte retombent a 0
jsp si t'as compris
En gros :
ID[1] WARN PLAYER1
ID[2] WARN PLAYER2
si je retirés le WARN à PLAYER 1
ID[1] WARN PLAYER 2
c'est ça?
player 2, c'est à dire ?
enft la pour l'instant quand un membre a un warn, il est stocké dans ma bdd avec l'id qui est la numérotation de ses warn, par exemple si c'est son deuxième warn l'id sera 2 etc.. mais le problème est quand l'unwarn, la numérotation continue de monter
alors que ça devrait descendre
par exemple si il a 2 warn et que je lui retire le premier, je voudrais que l'id soit 1, mais l'id est 2 car c'était son deuxième warn
Mais comment tu recuperes le warn précis du joueur tu as une table avec tous les warns ou une table par joueur ?
une table avec tout les warn des membres du serveur
c'est possible de faire une table par joueur ?
Non je pense pas par contre une entrée par joueur oui
Mais du coup pour get les warns d'un joueur précis tu le fais comment ? Car j'ai la sensation que ta table ressemble à :
ID - RAISON DU WARN
j'utilise l'auto incrémentation
Donc impossible de savoir qui a été warn précisément ?
Si
db.query(`INSERT INTO warns (guild, user, author, reason, date)
j'ai l'auteur et le membre
Ah ok donc il n'y a pas que id et raison
non
mais id pas besoin de l'insérer vu que je l'auto incrémente
mais quelqu'un m'a dit qu'il fallait faire ça
pour que quand j'unwarn un membre ça fasse -1
pour l'id
mais c'est vrai que j'avais pas pensé a ça, il faudrait que je fasse un système dans ma bdd pour que chaque membre ai ses propre id
Je vois pas l'intérêt à la limite faudrait récupérer toutes les valeurs du dessus et faire -1 sur celle au dessus car sinon ça change pas ton problème
En soit c'est bon si tu récupère le ID du membre qui reçoit le warn
nn parce que j'ai testé avec deux membres différent et ça continue de monter avec l'auto incrémentation alors que c'est pas le même membre :
oui mais moi j'ai du mal avec les requêtes SQL
Je suis sur tel donc compliqué de te faire un code et en plus le JS n'est pas forcément mon domaine
Mais en gros tu recuperes ta tables et tu update toutes les entrées qui ont un id > id du warn à supprimer
Je comprends plus rien mdrrr
C'est simple, j'ai warn deux membres différents et quand tu regarde dans la section "warn" il y a écrit "8" pour le premier membre que j'ai warn et "9" pour le deuxième au lieu que ça soit individuel
c'est plutot les bdd qu'il faut connaître
Logique l'AI est basé sur la table entière et pas sur les id des membres
La base de données est simple en soit, on fera un vocal demain si tu veux pour résoudre ton problème ça sera plus simple
Si ça permet de résoudre le problème plus facilement pourquoi pas 🤷
Pas de soucis mp moi demain
d'accord ça marche 👍
Bonjour, je suis entrain de créer une app web musical, comment je peux faire en sorte qu'une musique continue a se jouer le téléphone en veille ?
C’est pas possible depuis un navigateur 👀
Uniquement depuis des applis téléchargées sur le téléphone ^^
C’est pas possible de faire une app avec un site ?
si normalement
Je sais que tu as electron qui permet de faire des apps PC. Après, à savoir si c’est possible aussi pour mobile 👀
Pour pouvoir faire ça, tu dois utiliser des API natives et donc passer par du dev mobile
T'as la solution des PWA, des frameworks comme React etc...
J’y connais ps grand chose en js les gars 😅
Effectivement, mais il faut apprendre à faire avant de vouloir faire
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See npm help init for definitive documentation on these fields
and exactly what they do.
Use npm install <pkg> afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
package name: (nn)
ça me met ça jsp pk quelqu'un pourrait m'éclairer ?
c'est lorsque je fait npm init dans le terminal
Essaie npm init -y
c'est bon c'est réglé merci quand meme ^^
qui a un bot pour coop des paires
illégal
Salut j'ai un probleme, En gros J'ai besoin de faire comme dans le screen 1 c'est a dire une suite de ligne verticale, c'est ce que j'ai fais avec un canvas. Sauf que quand je zoom les lignes deviennes tres flou. Dcp j'aimerais utilisé du svg comme la barre du screen 3 mais je n'obtient pas dutout le résultat voulu ( avec le code du screen 4).
Quelqu'un aurais une solution ?
Ah merde
Bonjour 👋
J'utilise NextJS pour recevoir des requêtes POST depuis kofi. Kofi envoie ses requêtes au format application/x-www-form-urlencoded. Je n'arrive pas à récupérer le contenu de la requête. Est-ce que quelqu'un peut m'aider ?
Hello, pour info NextJs est pas réellement destiné à implémenter des API "dans ce style"
NextJs à pour but de fournir une API à ton front (en théorie sous NextJs également), sinon le framework ne t'apportera que des complications
Je te conseilles de regarder plutôt NestJs si tu cherches juste une API
Je dis pas que tu dois le faire, je dis juste que c'est pas le plus adapté au vu de ton besoin actuel
ben le truc, c que j'ai déjà commencé sur next. A moins qu'il n'y ai une autre solution à mon problème, je suis obligé de passer sur nest :/
Je saurais pas te dire pour NextJs mais c'est possible de récupérer le contenu, c'est obligatoire
Le récupérer, oui. Sauf qu'il arrive d'une telle façon que je jpp l'utiliser...
je fait comment la svp @glass cargo
déjà faudrait importer Intents de discord.js avant d'utiliser Intents.FLAGS
thanks
salut, quelqu'un serait disponible pr m'aider pour ma commande kick qui ne fonctionne pas très bien en djs V14 s'il vous plaît, car le bot me répond ça :
hey, j'ai un petit problème (Cannot set properties of null (setting 'innerText'))
dans mon code j'ai
if(pass !== rpass){
pRef.current!.innerText = "The passwords don't match."
}else pRef.current!.innerText = ""
J'ai vu que je peux le régler avec un useEffect mais je ne sais pas si c'est la bonne pratique a adopter ou pas. Merci d'avance.
(c'est en react)

oui
const Discord = require ("discord.js")
module.exports = {
name: "kick",
description: "Kick un membre",
permission: Discord.PermissionFlagsBits.KickMembers,
dm: false,
options: [
{
type: "user",
name: "membre",
description: "Le membre à kick",
required: true,
}, {
type: "string",
name: "raison",
description: "La raison du Kick",
required: false,
}
],
async run(bot, message, args) {
let user = message.mentions.members.first()
if(!user) return message.reply("Pas de membre à kick !")
let member = message.guild.members.cache.get(user.id)
if(!member) return message.reply("Pas de membre à kick !")
let reason = (args.splice(1).join(' ') || 'Aucune raison spécifiée.')
if(message.mentions.id === user.id) return message.reply("Essaie pas de te kick !")
if((await message.guild.fetchOwner()).id === member.id) return message.reply("Ne kick pas le propriétaire du serveur !")
if(member && !member.kickable) return message.reply("Je ne peux pas kick ce membre !")
if(member && message.member.roles.highest.comparePositionTo(member.roles.highest) <= 0) return message.reply("Tu ne peux pas kick ce membre !")
try {await user.send(`Tu as été kick du serveur ${message.guild.name} par ${message.user.tag} pour la raison : \`${reason}\``)} catch(err) {}
await message.reply(`${message.user} a kick ${user.tag} pour la raison : \`${reason}\``)
await member.kick(reason)
}
}
le voici
const Discord = require ("discord.js")
module.exports = {
name: "kick",
description: "Kick un membre",
permission: Discord.PermissionFlagsBits.KickMembers,
dm: false,
options: [
{
type: "user",
name: "membre",
description: "Le membre à kick",
required: true,
}, {
type: "string",
name: "raison",
description: "La raison du Kick",
required: false,
}
],
async run(bot, message, args) {
let member = message.mentions.members.first()
if(!member) return message.reply("Pas de membre à kick !")
let reason = (args.splice(1).join(' ') || 'Aucune raison spécifiée.')
if(message.mentions.id === user.id) return message.reply("Essaie pas de te kick !")
if((await message.guild.fetchOwner()).id === member.id) return message.reply("Ne kick pas le propriétaire du serveur !")
if(member && !member.kickable) return message.reply("Je ne peux pas kick ce membre !")
if(message.member.roles.highest <== member.roles.highest) return message.reply("Tu ne peux pas kick ce membre !")
try {await member.user.send(`Tu as été kick du serveur ${message.guild.name} par ${message.user.tag} pour la raison : \`${reason}\``)} catch(err) {}
await message.reply(`${message.user} a kick ${member.user.tag} pour la raison : \`${reason}\``)
await member.kick(reason)
}
}
Essaie ça
desuite
j'ai une erreur
C:\Users\leura\OneDrive\Bureau\bot garenne\Commandes\kick.js:29
if(message.mentions.id === user.id) return message.reply("Essaie pas de te kick !")
^
ReferenceError: user is not defined
at Object.run (C:\Users\leura\OneDrive\Bureau\bot garenne\Commandes\kick.js:29:36)
at module.exports (C:\Users\leura\OneDrive\Bureau\bot garenne\Events\messageCreate.js:16:13)
at Client.emit (node:events:513:28)
at MessageCreateAction.handle (C:\Users\leura\OneDrive\Bureau\bot garenne\node_modules\discord.js\src\client\actions\MessageCreate.js:28:14)
at Object.module.exports [as MESSAGE_CREATE] (C:\Users\leura\OneDrive\Bureau\bot garenne\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\leura\OneDrive\Bureau\bot garenne\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31)
at WebSocketShard.onPacket (C:\Users\leura\OneDrive\Bureau\bot garenne\node_modules\discord.js\src\client\websocket\WebSocketShard.js:489:22)
at WebSocketShard.onMessage (C:\Users\leura\OneDrive\Bureau\bot garenne\node_modules\discord.js\src\client\websocket\WebSocketShard.js:328:10)
at callListener (C:\Users\leura\OneDrive\Bureau\bot garenne\node_modules\ws\lib\event-target.js:290:14)
at WebSocket.onMessage (C:\Users\leura\OneDrive\Bureau\bot garenne\node_modules\ws\lib\event-target.js:209:9)
oups
const Discord = require ("discord.js")
module.exports = {
name: "kick",
description: "Kick un membre",
permission: Discord.PermissionFlagsBits.KickMembers,
dm: false,
options: [
{
type: "user",
name: "membre",
description: "Le membre à kick",
required: true,
}, {
type: "string",
name: "raison",
description: "La raison du Kick",
required: false,
}
],
async run(bot, message, args) {
let member = message.mentions.members.first()
if(!member) return message.reply("Pas de membre à kick !")
let reason = (args.splice(1).join(' ') || 'Aucune raison spécifiée.')
if(message.mentions.id === member.user.id) return message.reply("Essaie pas de te kick !")
if((await message.guild.fetchOwner()).id === member.id) return message.reply("Ne kick pas le propriétaire du serveur !")
if(member && !member.kickable) return message.reply("Je ne peux pas kick ce membre !")
if(message.member.roles.highest <== member.roles.highest) return message.reply("Tu ne peux pas kick ce membre !")
try {await member.user.send(`Tu as été kick du serveur ${message.guild.name} par ${message.user.tag} pour la raison : \`${reason}\``)} catch(err) {}
await message.reply(`${message.user} a kick ${member.user.tag} pour la raison : \`${reason}\``)
await member.kick(reason)
}
}
voilà :)
Montre tes rôles et ceux de la personne que tu veux kick
euh
const Discord = require ("discord.js")
module.exports = {
name: "kick",
description: "Kick un membre",
permission: Discord.PermissionFlagsBits.KickMembers,
dm: false,
options: [
{
type: "user",
name: "membre",
description: "Le membre à kick",
required: true,
}, {
type: "string",
name: "raison",
description: "La raison du Kick",
required: false,
}
],
async run(bot, message, args) {
let member = message.mentions.members.first()
if(!member) return message.reply("Pas de membre à kick !")
let reason = (args.slice(1).join(' ') || 'Aucune raison spécifiée.')
if(message.mentions.id === member.user.id) return message.reply("Essaie pas de te kick !")
if((await message.guild.fetchOwner()).id === member.id) return message.reply("Ne kick pas le propriétaire du serveur !")
if(member && !member.kickable) return message.reply("Je ne peux pas kick ce membre !")
if(message.member.roles.highest <= member.roles.highest) return message.reply("Tu ne peux pas kick ce membre !")
try {await member.user.send(`Tu as été kick du serveur ${message.guild.name} par ${message.user.tag} pour la raison : \`${reason}\``)} catch(err) {}
await message.reply(`${message.author.tag} a kick ${member.user.tag} pour la raison : \`${reason}\``)
await member.kick(reason)
}
c'est .slice() et non .splice() 😉
t'es vraiment le boss merci bcp !
de rien :)
salut, dans ta page css, si tu ajoute ceci est-ce que ça marche lorsque zoom ?
canvas{image-rendering:pixelated;image-rendering:crisp-edges;}
@glass cargo hello jai un petit probleme au niveaux de mon code
Uncaught TypeError TypeError: Cannot use 'in' operator to search for 'default_member_permissions' in undefined pk sa me met sa

for (const file of commandsFiles){
const command = require(./Commands/${file})
if('data' in command && 'execute' in command){
client.Commands.set(command.data.name, command)
console.log(${command.data.name} a bien été chargé)
}
}
@glass cargo
Tu pourrais m’envoyer un de tes fichiers de commandes stp ?
azi mp
Bonsoir, je cherche à savoir comment fonctionne le require de JS car j'ai un fichier config.json dans la racine et je cherche à le require dans ./src/Commands/test.js, sauf que je comprends pas le délire des "../config.json" et surtout que j'ai beau mettre n'importe quel nombre de point ça fonctionne pas 
const config = require("../../config.json");
Les .. etc marchent de ce type :
. = le dossier actuel
.. = tu remontes d'un dossier
soit ../ = /Commands
soit ../../ = La racine où est /src
Donc ../../ revient à ta racine de ton projet, où il y aura logiquement config.json
Niquel merci ça fonctionne
tu te trompes de channel là 
Non
Je vois bien que je suis vert
gl
Salut tout le monde j'ai un petit soucis :
ça me fais un call sur une route qui n'as rien à voir : ( l'id correspond pas )
( Je cherche à récuperer le channel pour envoyer un message dedans )
version de discordjs en 14 et j'utilise Sheweny JS au cas où ça peut aider
Passe l'id en string
Merci
Chelou si je le met en string ça marche mais si je fais un fetch(channel.toString()) j'ai pas le même result
bref
mais ducoup c'est null le resultat :/
Car c'est un nombre trop grand pour js
Ok ça marche merci de l'info
Mais ducoup j'ai un autre soucis maintenant c'est que mon fetch me donne un result null alors que le channel existe bien
Après de manière générale, ce genre de données il ne faut jamais les traiter comme des nombres pour des raisons de sécurités
Considère que c'est toujours des string, tu vas grandement améliorer la fiabilité de tes app
Difficile à dire, il a accès au serveur le bot ? Et il a les permissions pour le channel ?
Après c'est rare que je manipule des nombres comme ça sauf la exceptionnellement pour un bot discord :/
Alors oui il est sur le serveur et pour le channel oui car je lui fais envoyé un embed sur un /command
ça c'est dans le channel
Ahm, je saurais pas te dire, mais c'est surement au niveau de ton framework le soucis car en théorie, si DiscordJs fetch l'API il va le trouvger
Ouais bizarre je vais continuer à chercher merci quand même
.cache.fetch() test ça
Nop fetch s'applique pas sur cache
Alors, autre truc ton fichier c’est quoi une commande?
Nop c'est dans l'index la je cherche juste à faire un envoyer un message dans un channel à terme ça sera une cron qui me retourne l'état de ma plante savoir si j'ai besoin de l'arroser en gros
Alors, c'est pas une solution mais les logs ont plus de sens à être gérer par un webhook
Et concernant la cron, j'imagine que dans ton cas c'est pas particulièrement important mais c'est une mauvaise pratique si ton infra est voué à évoluer
ça sera pas le cas la c'est vraiment juste pour suivre ma plante 
D'acc aha
bonsoir qui c crée tout les commandes bots ?
@past nimbus t'as créé scyllaDb toi, je reconnais xd
Connais pas
:p
Non je rigole, mais bien évidemment, non ce n'est pas moi malheureusement :c
Bonjour j'ai une basse de donnée avec des information et j'aimerai récuperer les information pour les mettre dans un bot discord comment je pourrais faire ? merci aurevoir
Ca dépends de quelle base de données tu as, mysql, excel, sqlite?
Excel ?
oui excel ca peut servir de Bdd
:derp: excel
Rigole EN CSV
Bonjour, j'utilise VueJS, et j'aimerais que la propriété name prenne la valeur de project.name. Comment puis-je faire ?
<div class="project" v-for="project in projects" :key="project.id">
<ProjectCard name="project.name"/>
</div>
Le code que je donne ici ne fonctionne pas
<div class="project" v-for="project in projects" :key="project.id">
<ProjectCard name={{project.name}}/>
</div>
Je viens justement à la seconde de me dire que c'était surement ça 
Merci !
Par hasard, tu ne saurais pas pourquoi rien ne s'affiche quand je fais ça ?
<template>
<div class="main">
<div class="project" v-for="project in projects" :key="project.id">
{{ project.name }}
<ProjectCard name={{ project.name }}/>
</div>
</div>
</template>
<script>
import ProjectCard from "@/components/ProjectCard.vue";
import projects from "@/assets/projects/projects.json";
export default {
name: "ProjectsView",
data() {
return {
projects: projects
};
},
components: {
ProjectCard,
},
}
</script>
regarde déjà si l'import de ton json contient bien les données et fonctionne bien
j'aurais + fait un const projects = require('fichierjson')
Ben quand je console.log() projects, ça fonctionne 🤷♂️
ah donc oklm alors
mais c'est dans le v-for que j'arrive pas à l'avoir :/

vérifie quand même avec l'outil de développemment si c'est pas un soucis de CSS que tu ne vois pas les datas
🤔
vérifie en gros dans le code de ton navigateur si t'a les datas ou pas
je vais look mais je pense pas 👀
c'est possible que ça soit la class project qui cause le soucis
mais aussi la class main
essaye genre d'afficher du texte sans le v-for mais à l'intérieur de la div
Y'a pas
[
{
"id": 1,
"name": "Cool Project"
},
{
"id": 2,
"name": "Awesome Project"
}
]
le problème viendrais pas du fait que le script soit en bas ?
Je pense pas mais je vais tester 👀
nop
<template>
<div class="main">
<div class="project" v-for="project in projects" :key="project.id">
{{ project.name }}
<ProjectCard name={{ project.name }}/>
</div>
</div>
</template>
<script>
import ProjectCard from "@/components/ProjectCard.vue";
import projects from "@/assets/projects/projects.json";
export default {
name: "ProjectsView",
data() {
return {
projects: []
};
},
created() {
this.projects = projects;
},
components: {
ProjectCard,
},
}
</script>
essaye comme ça
marche pas :/

tu peux essayer d'afficher projects[0].id?
sans utiliser vfor ect
<template>
<div class="main">
<ul>
<li v-for="project in projects" :key="project.id">
{{ project.name }}
</li>
</ul>
</div>
</template>
<script>
import ProjectCard from "@/components/ProjectCard.vue";
import projects from "@/assets/projects/projects.json";
export default {
name: "ProjectsView",
data() {
return {
projects: []
};
},
created() {
this.projects = projects;
},
components: {
ProjectCard,
},
}
</script>
essaye comme ça juste pour voir @glass cargo
👀
Je teste ça demain 👀
Le faite que le bot répond à ta slash commande ne veux pas dire qu'il a la perm de voir le channel 
Ok ok ducoup pour lui donner accès je dois lui donner une perm sur le portail dev ?
directement sur ton serv dans les perm du channel
Bah en gros j'active voir le salon quoi
yes
ah ok att je viens de voir tu peux set la perm membre à membre
euh groupe à groupe*
Pas compris 
bonjour j'ai une erreur dans mon code et je ne sais pas c'est quoi
client.on("messageCreate", async message => {
if (message.channel.id === "1064993537516646500") {
if (message.author.bot) return
const prompt = message
client.channels.cache.get("1064993537516646500").send({
content: `📝 Laisse moi réfléchir`,
ephemeral: false,
})
const configuration = new Configuration({
apiKey: "api key",
});
const openai = new OpenAIApi(configuration);
const response = await openai.createCompletion({
model: 'text-davinci-003',
prompt: prompt,
max_tokens: 2048,
temperature: 0.7,
top_p: 1,
frequency_penalty: 0.0,
presence_penalty: 0.0,
});
let responseMessage = '> ' + `**<@${utilisateur}> à demander:**\n > *${prompt}*` + response.data.choices[0].text;
if (responseMessage.length >= 2000) {
const attachment = new AttachmentBuilder(Buffer.from(responseMessage, 'utf-8'), { name: 'response.txt' });
await message.edit({ files: [attachment] })
} else {
await message.edit(responseMessage);
}
}
});```
Une erreur dans ta console ?
const prompt = message ta oublié le . content nan ?
Tu peux pas modifier le message de quelqu'un d'autre
Donc ton message.edit ne fonctionnera pas
Bonjour ,
J'ai un problème dans mon code voici l'erreur :
TypeError: Cannot read properties of undefined (reading 'roles')
at Object.run (C:\Users\Lucas\OneDrive\Bureau\SlaynBotUHC\Commandes\ban.js:38:81)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
Mon ban.js en 2 partie :
const Discord = require ("discord.js")
module.exports = {
name: "ban",
description: "Ban un membre",
permission: Discord.PermissionsBitField.BanMembers,
dm: false,
options: [
{
type: "user",
name: "membre",
description: "le membre à bannir",
required: true,
}, {
type: "string",
name: "raison",
description: "La raison du bannissement",
required: false
}
],
async run(bot, message, args) {
try{
let user = await bot.users.fetch(args._hoistedOptions[0].value)
if (!user) return message.reply("Pas de membre à bannir")
let member = message.guild.members.cache.get(user.id)
let reason = args.get("raison").value;
if(!reason) reason = "Pas de raison fournie.";
if(message.user.id === user.id) return message.reply("Vous ne pouvez pas vous bannir !")
if((await message.guild.fetchOwner()).id === user.id) return message.reply("Tu ne peux pas bannir cette personne ! " )
if(member && !member.bannable) return message.reply("Je ne peut pas bannir ce membre")
if(message && message.member.roles.highest(member.roles.highest) <= 0) return message.reply("Tu ne peut pas bannir cette personne !")
if((await message.guild.bans.fetch()).get(user.id)) return message.reply("Ce membre est déjà ban !")
try {await user.send(`Tu as été banni du serveur ${message.guild.name} par ${message.user.tag} pour la raison : \`${reason}\``)} catch(err) {}
await message.reply(`${message.user} a banni ${user.tag} pour la raison : \`${reason}\``)
await message.guild.bans.create(user.id, {reason: reason})
console.log(command)
console.log(user)
} catch (err) {
console.log(err)
return message.reply("Pas de membre à bannir")
}
}
}
Salut,
essaye :
!message || !message.member || !message.member.roles || message.member.roles.highest(member.roles.highest) <= 0
au lieu de
message && message.member.roles.highest(member.roles.highest) <= 0
d'après le message d'erreur, ton message.member.roles faisait undefined.roles :)
TypeError: Cannot read properties of undefined (reading 'roles')
at Object.run (C:\Users\Lucas\OneDrive\Bureau\SlaynBotUHC\Commandes\ban.js:38:108)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
toujours la même erreur pour le fichier ban.js ligne 38 (position 108) ??? wtf
tu peux console log le message.member pour voir s'il contient roles?
je let met tout en bas ?
en bas? euh..
déjà, as tu remplacé la ligne par celle que j'ai proposé ou pas?
oui
okey, hm et si tu fais un simple retour ligne juste avant et juste apres cette ligne là, l'erreur change bien d'une seule ligne?
Comment sa ?
pour verifier si l'erreur est bien ici, je suis en voc si besoin
salut salut, je ne comprend pas pk mon interaction avec un menu deroulant ne fonctionne pas
const Discord = require('discord.js');
const { Events, messageLink, CommandInteraction } = require('discord.js');
module.exports = async interaction => {
client.on("interactionCreate", interaction => {
if (interaction.isStringSelectMenu()) {
if (interaction.customId === "select") {
if (interaction.values == 'option1') {
interaction.reply({ content: "Vous avez séléctionner l'option 1 ", ephemeral: true });
}
else if (interaction.values == 'option2') {
interaction.reply({ content: "Vous avez sélectionner l'option 2", ephemeral: true });
}
else if (interaction.values == 'option3') {
interaction.reply({ content: "Vous avez sélectionner l'option 3", ephemeral: true });
}
}
}```
ça c l'interaction create
if (message.content.startsWith('!colormenu')) {
const menu = new EmbedBuilder()
.setColor(0x0099FF)
.setTitle('Couleur de l\'utilisateur')
const colormenu = new ActionRowBuilder()
.addComponents(
new StringSelectMenuBuilder()
.setCustomId('select')
.setPlaceholder('Pas de couleur choisi')
.addOptions(
{
label: 'bleu',
description: 'couleur de test 1',
value: 'premiere option',
},
{
label: 'vert',
description: 'couleur de test 2',
value: 'deuxieme option',
},
{
label: 'violet',
description: 'couleur de test 3',
value: 'troisieme option',
},
),
);
message.channel.send({ embeds: [menu], components: [colormenu] })
}```
et ça le code qui l'execute
si vous saurez me guider svp
non plus :/
x)
Bizarre, j'ai rien changé et maintenant ça marche 
Mais dès que je remet mon component ça marche plus :/
@torn fog j'ai réussi !
Sauf que dcp j'ai une erreur avec le v-bind
<template>
<div class="main">
<ProjectCard v-for="project in projects" v-bind:name="project.name"></ProjectCard>
</div>
</template>
<script>
import ProjectCard from "@/components/ProjectCard.vue";
import projects from "@/assets/projects/projects.json";
export default {
name: "ProjectsView",
data() {
return {
projects: projects
};
},
components: {
ProjectCard,
},
}
</script>
Trouve les messages cachés avec la réaction ❄ et clique dessus pour gagner des boules de neige !
Tu peux ensuite utiliser les boules de neige pour :
⛄ </fight:1048044253051371582> attaquer un autre membre du serveur !
⛄ Soigner ton bonhomme de neige avec le bouton ci-dessous !
@signal marsh tu as le channel #bots-commands 
Hello, est-ce que l'un d'entre vous aurait une idée de pourquoi il m'est impossible de retirer des rôles via ces quelques lignes de code ?
( je n'ai aucune erreur et à vrai dire, si on regarde dans le détail, les rôles sont bel et bien retirés, mais instantanément remis.. par le bot )
personne saurai m'aidé svp ?
salut, juste apres client.on("interactionCreate", interaction => { tu peux mettre un console log pour voir au moins si ça entre là dedans?
nan rien ne se passe
j'ai peut etre pas la bonne syntax ^^'
c different quand tu utilise le .startsWith avec des prefix perso
@north matrix je remet ton msg ici 👌
@fierce plank je te laisse lui expliquer du coup 👌
Merci
Peut etre que je me trompe de maniere pour le faire mais il me semble que c possible ?
Je suis desoler je suis en galere mdr ça fais quelque jour que je cherche un moyen de réaliser ça
j'aimerai lancer une animation css à l'aide socket.io svp je n'y arrive pas
auriez vous le bout de code nécessaire ou m'expliquer comment faire
pcq echanger des msg j'y arrive
comment ca ?
Genre tu vois quand tu envoi des msg avec socket ça affiche le msg en temps réel sur l'écran
Et bah a la place de send un msg j'aimerais démarrer une animation genre "translate 180°" d'une image
Mais tjr en temps réel
Pour faire ça tu dois juste ajouter une classe secondaire avec par exemple les 180deg
Que tu l’ajoute quand ton message arrive et une principale qui contient transition
CSS transitions provide a way to control animation speed when changing CSS properties. Instead of having property changes take effect immediately, you can cause the changes in a property to take place over a period of time. For example, if you change the color of an element from white to black, usually the change is instantaneous. With CSS trans...
comment j'ajoute une classe a une autre ?
sinon ça c'est ma partie js c'est ou que je dois add
var socket = io();
var send = function () {
var text = document.getElementById('m').value;
socket.emit('chat message', text);
}
var receive = function (msg) {
var li = document.createElement('li');
li.innerText = msg;
document.getElementById('messages').appendChild(li);
}
socket.on('chat message', receive);
//partie server
io.on('connection', function(socket){
console.log('a user is connected');
socket.on('disconnect', function (){
console.log('a user is disconnected');
})
socket.on('chat message', function (msg){
console.log('message recu : ' + msg);
io.emit('chat message', msg);
})
})
// ajouter une class à un element :
const elem= document.querySelector("#id_element");
elem.classList.add("180deg"); // ajouter .180deg à la liste des noms de class de cet element
// ici je vois
li.innerText = msg;
// donc je pense qu'il faudrait ajouter ceci apres la ligne innerText :
li.classList.add("180deg");
dite
quelqu'un à déja utilisé Vuejs et eu des problèmes ou le dom chargeais juste pas ?
😭
Car c'est mon soucis là
hello, je gagne mes sousoux avec du VueJS :)
je veux bien les erreurs de la console, et apres on verra pour des bouts de code (selon fichier et ligne de l'erreur)
Quand ça charge pas, c’est qu’il y a un problème avec un de tes components. Regarde dans la console 👀
et quand la console n'affiche rien c'est un problème avec quoi ?
tiens le site, mais du coup mon pote à corrigé j'sais pas comment XD
Je te conseille d'installer Vue DevTools. Tu pourras peut-être voir si il y a un problème. https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd?hl=fr
Tu peux aussi retirer ce que tu as fait voir si ça venait de là.
Ou encore, (si c'est pas fait), installer eslint. Il aide pas mal x)
Bonjour,
Savez-vous pourquoi mon messageCreate ne fonctionne pas, aucun print (console.log) ne fonctionne à l'intérieur.
Sachant que mon code se trouve dans le main.js (donc aucun loader) et sur la dernière version (v14).
bot.on("messageCreate", async message => {
console.log("1")
const getInfo = await axios.get(`https://api.top-serveurs.net/v1/servers/${config.TopServerAPI}`);
const VoteTotal = getInfo.data.server.total_votes;
const getClassement = await axios.get(`https://api.top-serveurs.net/v1/servers/${config.TopServerAPI}/players-ranking`);
const Classement = getClassement.data.players;
console.log("2")
console.log(Classement);
console.log(VoteTotal);
if (message.content === '!test') {
const embed = new Discord.MessageEmbed()
.setTitle(`Vote total : ${VoteTotal}`)
.setColor('#0099ff')
.setDescription('')
.addFields(
{ name: 'Champ 1', value: 'Valeur 1' },
{ name: 'Champ 2', value: 'Valeur 2' },
)
.setTimestamp();
message.channel.send(embed);
}
});
Juste avant ton bot.on(...), tu peux placer ceci :
console.log(bot.isReady())
Il est bien ON
Mais j’ai aucune erreur
Si tu as une alternative je suis preneur.
J’aimerais simplement envoyer un embed et dans cet embed mettre des informations via une API (grace a Axios)
C'est bien V14 la version de djs ?
parce que Discord.MessageEmbed, c'est de la V13 voire V12 🤔
C’est v14 oui
Bon ben déjà ça va pas 👀
:class: EmbedBuilder
Represents a embed in a message (image/video preview, rich embed, etc.)
Et tu as bien activé le "Message Content Intent" ?
oui
il y a une méthode element.classname qui permet de recup le nom de la class ?
je veux dire, j'ai mis un onclick() sur plusieurs élement mais ils appellent tous la mm fonction et ont tous la même class, donc j'aimerais les différencier lors de la fonction
Passe un identifiant en paramètre
comment
stp
je sais juste rajouter un parametre a une fonction
en mettant le mot dans les parentheses
mais c tt
Ah
Ok x)
Lorsque tu définie ta fonction :
function maSuperFonction (Argument) {...}
Lorsque tu appelle ta fonction
<Element ... onclick="MaSuperFonction(Argument)">...</Element>
hmm
et dans la fonction si je veux changer le style de l'élement qui m'a appeler par exemple c'est comment ?
Du coup, c'est simple le problème venait du "setup" dans les balises de script 😦
Hello , j'ai mis mon JavaScript, il marche mais sur un seul item alors qu'ils ont tous la même class je ne comprends pas
Mon code
je propose ceci, mais att je regarde ton screen :
<html>
<script>
const action=(html_element)=>{
html_element.className; //<-toutes les classes
html_element.classList.add("name2");
html_element.classList.remove("name1");
}
</script>
<body>
<element class="name1" onclick="action(this)"/>
</body>
</html>
tu veux venir en vocal pour en discuter en live?
Yep
t’es obligé d’attribuer un identifiant à ton élément ^^
(sauf si tu envoi le pointeur de l'element html dans la function js :p)
Ok mais comment je l'utilise avec l'argument de ma fonction ?
Bonsoir, j'ai un probleme avec mon bot quand j'execute une commande la console me sort ça :
j'ai envoyé un petit test avec action(this) et this c'est l'element html justement :)
Ah ça m'était destiné j'avais pas capté déso :')
Est-ce que tu utilises des emojis dans le fichier setup_ticket.js ?
j'avoue qu'il y a une double conv sur le même sujet donc j'en profite, ça peut t'être destiné aussi :)
Si c’est des emojis personnalisés, je dirais qu’il ont été modifiés/supprimés
il fonctionne pas : action is not defined
et puis j'avoue je comprends pas comment il est sensé marcher
un element, qui appel une fonction avec lui même donc action(this)
et la fonction bah elle utilise l'element "this" qui sera la balise html en gros
mais a quelle moment la fonction utilise le "this" ?
et c'est une fonction sans avoir besoin de mettre function devant ducoups ?
ça sera son premier argument
donc dans const action=(html_element)=>{
bah c'est html_element :)
parfois je marque fonction=(thiss)=>{
pour savoir au premier coup d'oeil que c'est le thiss du html :p
document.querySelectorAll retourne un tableau d'élément
donc faut faire `forEach(El => El.innerText =...
Je repose ici plus de chance d’avoir une réponse : Bot vinted c’est illégal ? Le fait de juste mettre des infos sur un discord ? (Je connais pas hein)
Non j'en vend stv
Le problème c’est pas de le faire xD c’est de savoir si c’est illégal
Non ce n'est pas illégal car le CGU interdit le screen scrapping mais pas le web scrapping
Alors c'est un peu le même délire 
Screen scrapping ?
Oui
ca reste du scrapping
alors Web scrapping ou screen scrapping dans tout les cas les donnée sont voué à rester confidentiel au site
Désolé de casser ton délire
Il y a une différence entre les deux
Non
Donc du coup tu récupères que du texte et tu touches pas aux images ? ca reste la meme choses pour moi
Rien a voir
De plus vinted a une api accessible par tous donc...
Pas vraiment d'interet de scraper par pupeteer ou autre
tu parles de ca ? : https://github.com/Androz2091/vinted-api
j'ai vus ouais
Donc on est d'accord c'est pas une api public et ca reste du scrap
L'api est accessible a tout le monde et le site ne l'interdit pas
Mais tu sais que F12 puis network ca veut pas dire que c'est public ?
explorer des données (data mining), gratter (screen scraping) ou utiliser des robots d’indexation (crawling) sur une quelconque partie du Site ; data mining c'est du scrapping
et utiliser l'api sans autorisation c'est illegal
désassembler, décompiler ou rétro-concevoir une quelconque partie du Site ; cette phrase veut dire que tu n'es pas sensé avoir l'api
enfreindre les lois et/ou réglementations applicables ; Dans la loi le scrap est interdit
Visiblement tu ne sais pas de quoi tu parle, alors je vais te laisser penser ce que tu veux
Ahah mdr
Snox a raison, si le site interdit le scrapping, alors tu ne dois pas en faire
tu as raisons 🙂
Promis le jour ou tu crées un site internet intéressant (sans copié coller) je viendrais scrap t'es donnée pour faire mon propre site 😉
👀
Je t'en prie
Je fais du scrapping d'un site avec 0 Cgu 
Moi c'est okay
Moi aussi en ce moment je vole les infos des sites connus sur les films :
moi c'est pour regarder mes animé xd
bonshoir,
imaginons j'ai 4 div img
<img class = "truc">
<img class = "truc">
<img class = "truc">
et j'ai un tableau js avec plusieurs images,
j'aimerais que quand mon site charge, aléatoirement une image du tableau va dans chaque balise img
c'est comment que je m'y prends
je sais que pour mettre le texte c'est .textContent = (edit; peut-être pas enft)
mais ça ne le met que sur la premiere img ducoups
Tu peux utiliser .style.background
Si tu as préparé des balises img, tu peux aussi changer l'attribut "src".
.srcContent ?
Tu as jQuery ou c'est en simple js ?
simple js
dac mrc
et pour que ça change pour toute les images de ma class ?
et pas que la première ?
Tu peux faire une boucle sur tes éléments
le getElementsByClassName("truc") va te retourner un tableau
https://stackoverflow.com/questions/15843581/how-to-correctly-iterate-through-getelementsbyclassname
pour des balises c'est .innerHTML
sinon tu peux préparer les url des images dans un javascript, et au chargement c'est le js qui créé les balises img :)
comme j'ai fait pour le site de tsukasa
distribute c'est quoi ?
dans ce code
ah nn ok
tu n'en a pas besoin tkt
ok et rapidement, comment je récupe un élément au hasard de mon tableau js ?
function getRandomItem(arr) {
// get random index value
const randomIndex = Math.floor(Math.random() * arr.length);
// get random item
const item = arr[randomIndex];
return item;
}
const array = [1, 'hello', 5, 8];
const result = getRandomItem(array);
console.log(result);
par exemple
D'autres solutions ici : https://stackoverflow.com/questions/5915096/get-a-random-item-from-a-javascript-array
oula mais l'autre code, le .item jdois aussi l'utiliser ?
c'est à dire ?
ouah je suis perdu
(vocal?)
@woven cosmos j'ai tout préparé
const array = [
"url1",
"url2",
"url3",
"url4"
];
function getRandomItem(arr) {
const randomIndex = Math.floor(Math.random() * arr.length);
const item = arr[randomIndex];
return item;
}
var images = document.getElementsByClassName("truc");
for (var i = 0; i < images.length; i++) {
images.item(i).src=getRandomItem(array);
}
ce code va charger des url de façon random dans les src de images
cependant cela veut dire qu'une image peut apparaitre plusieurs fois
const array = ["url1", "url2", "url3", "url4"];
let usedItems = new Set();
function getRandomItem(arr) {
if (usedItems.size === arr.length) {
usedItems.clear();
}
let randomIndex = Math.floor(Math.random() * arr.length);
while (usedItems.has(randomIndex)) {
randomIndex = Math.floor(Math.random() * arr.length);
}
usedItems.add(randomIndex);
return arr[randomIndex];
}
const images = document.getElementsByClassName("truc");
for (let i = 0; i < images.length; i++) {
images[i].src = getRandomItem(array);
}
Le dernier code que je t'ai envoyé vérifie que les images ne sont pas déjà apparues
Une méthode encore plus simple serait de simplement mélanger ton array et de boucler dessus pour récupérer les url.
un sort random, puis un foreach ouip
c'est ça
@woven cosmos
const array = ["url1", "url2", "url3", "url4"];
// Mélange les éléments de l'array de manière aléatoire
function shuffle(arr) {
for (let i = arr.length - 1; i > 0; i--) {
// Choisir un index aléatoire
const j = Math.floor(Math.random() * (i + 1));
// Echanger les valeurs de l'élément courant et l'élément aléatoire
[arr[i], arr[j]] = [arr[j], arr[i]];
}
}
shuffle(array);
// Récupère les éléments avec la classe "truc"
const images = document.getElementsByClassName("truc");
// Boucle sur les éléments récupérés
for (let i = 0; i < images.length; i++) {
// Affecte l'url mélangée à la propriété src de chaque élément
images[i].src = array[i];
}
Dis-moi s'il y a un élément que tu ne comprends pas
ça ne m'affiche pas d'erreur mais aucune image apparait...
tu as remplacé les url par les url de tes images ?
Quand tu inspectes ta page, il y a les url dans les sources de tes balises images ?
oh ok c bon ça marche
j'ai du rajouter un set interval jsp pourquoi mais mtn ça marche
(edit: j'ai mis un window onload c régler)
setinterval ça execute plusieurs fois une fonction non? o_o
ah oui avec onload c'est parfait, ça execute lorsque Toute la page est chargée :)
j'utilise ça quand je veux mettre un delay vu que je connais pas de fonction delay x)
mais ducoups oui c'est pas adapter
window.addEventListener("load",init,0);//execute la fonction nommée "init" lorsque page sera chargée
setTimeout(function,delayms)//delay
setInterval(function,delayms)//delay loop
requestAnimationFrame(function_name)//executera cette fonction à la prochaine frame
(si jamais.. ça peut te servir dans le futur)
pour select by id, j'utilise :
document.querySelector("#idelement").innerHTML // retourne le contenu html selon id
donc
document.querySelector("#idelement").classList.add("name1")
ça devrait marcher pour ajouter une class nommée name1
par contre pour set un id d'un element, ça sera :
element.setAttribute("id","idelement") // set id nommé idelement
super merci
c'est possible de mettre un état/une class a un élément qui fait qu'il ne peux plus subir d'effet .transform, entre autre ?
ça dépend de ton css, s'il est bourré de !!!! IMPORTANT
non.
par contre si c'est un css simple, oui tu peux créer (tout en bas de fichier) une class .notransform avec un transform:none (je pense)
et s'il y a du transform avant, alors ça sera réécrit avec ce notransform. à tester :)
j'ai réussi merci
bonsoir, je fais une commande kick mais ça me met l'erreur que member.kick n'est pas une fonction et je ne comprend pas pk
module.exports = {
name: "kick",
async run(client, message) {
const args = message.content.slice("1").trim().split(" ");
if (args[1] == undefined) {
message.reply("Vous n'avez pas specifier un membre")
}
else {
const member = client.guilds.cache.get(message.guild.id).members.fetch(args[1])
console.log(args[1])
if (!member) {
message.reply("Le membre est invalid.")
return
}
else {
member.kick()
}
}
}
}```
pourtant quand je console log le args je reçois bien l'identifiant que j'ai donné
:mdn: Introducing asynchronous JavaScript
In this article, we'll explain what asynchronous programming is, why we need it, and briefly discuss some of the ways asynchronous functions have historically been implemented in JavaScript.
c grave ça ?
pcq je vois aucun prblm de créé sur le moment
disons juste que t'as un listener qui est fermé avant de recevoir une réponse
Bonjour, est ce possible de faire en sorte d'avoir un bot discord sur plusieurs serveur, avec une commande /ban [membres] qui bannisse le membres de tout les serveur sur lequel le bot est présent
Oui
savez vous comment je peut m'y prendre ?
étant donner que quand le bot rejoins un discord j'ajoute ce discord en base de données, je peut parcourir chaque ligne de ma table pour bannir le mebre a chaque fois ? j'avais penser a sa mais je ne sais pas si c'est possible ^^
Pas besoin de passer par la database, le bot sait lui-même sur quel serveur il est normalement
ahh donc via l'id du membre je peut m'en sortir ?
quelqu'un saurais me dire pk mon bot na pas les commande sur tout les serveurs ? il les a que sur le serveur principal, cela peut-il venir de rest ? j'ai ces lignes la, si oui comment puis-je y remedier ?
ton ```js
member.kick()
est supposé contenir des arguments je crois
j'ai cru voir que non car le il kick le member, mais bon il faudrait trouver un endroit avec des exemples de code source de bot discord pour confirmer ça
pour ban un membre c'est member.ban(), savez vous comment je peut faire pour que en plus de sa je prennent en compte l'id du serveur afin de ban le membre de plusieurs serveur en meme temps ?
j'ai trouvé un petit truc, pour déjà envoyer un message sur plusieurs servs :
https://stackoverflow.com/questions/61624863/trying-to-send-a-message-to-multiple-discord-servers
guildList.forEach(guildID => client.guilds.get(guildID).defaultChannel.send('hello'));
ducoup il faudrait voir si ça marche, et ensuite comment ban quelqu'un .. bonne chance ! c'est un sympatique projet
Et ça cause un prblm ?
merci je vais regarder a sa ^^
vous n'avez pas une idée pour m'aiguillez a partir ce cette fonction s'il vous plait, je suis toujours bloquer sur mon systeme de ban multi serveur ^^
let guildIdList = Array()
let theMember = interaction.options.getMember('membre')
db.query('SELECT guildId FROM guild', async (err, req) => {
for(let i = 0; i < req.length; i++){
guildIdList.push(req[i].guildId)
}
// console.log(guildIdList)
guildIdList.forEach(guildId => bot.guilds.get(guildId).theMember.ban())
})
let guildIdList = [];
let theMember = interaction.options.getMember('membre');
db.query('SELECT guildId FROM guild', async (err, req) => {
for(let i = 0; i < req.length; i++){
guildIdList.push(req[i].guildId);
}
// console.log(guildIdList)
guildIdList.forEach(guildId => bot.guilds.get(guildId).members.ban(theMember));
});
@normal lichen et avec ce code ?
ca me met toujours ceci ^^
ta variable "bot" doit bien être une instance de "Client"
montre moi où tu as déclaré "bot" stp
bot il arrive dans mon module ^^
const Discord = require('discord.js');
const bot = new Discord.Client();
Il est bien déclaré comme ça ?
il est declarer en client
au tout début de ta fonction fais un log simple
par exemple
console.log(bot.user.username)
juste pour vérifier ton instance
je fait sa
j'essaye d'enrengistre la command et a l'execusion sa me fait sa
Je dois m'absenter, je reviens
pas de soucis, voici ce que sa donne ^^
Bon la bonne nouvelle c'est que l'instance fonctionne
oui x)
mais j'arrive pas avec le fait de ban sur tout les serveurs ou le bot est present ^^
le bot a les perms de ban sur tous ces serveurs ?
sa vien pas du fait que le joueurs que j'essaye de ban n'est pas present sur tout les discord ?
oui il est admin
(le membre est present sur 3 des 4 discord)
ouai verif qu'il est présent sur le serv avant de ban, ça va ptet crash sinon
essaye avec ça :
let guildIdList = [];
let theMemberId;
db.query('SELECT guildId, memberId FROM guild', async (err, req) => {
if(err) throw err;
for(let i = 0; i < req.length; i++){
guildIdList.push(req[i].guildId);
theMemberId = req[i].memberId;
}
guildIdList.forEach(async (guildId) => {
let theMember = await bot.guilds.cache.get(guildId).members.fetch(theMemberId);
if (theMember) {
if(theMember.has(theMemberId)) {
theMember.ban();
console.log(`${theMember.user.tag} was banned from the server ${guildId}`);
} else {
console.log(`${theMember.user.tag} is not in the server ${guildId}`);
}
} else {
console.log(`Couldn't find a member with id ${theMemberId}`);
}
});
});
C'es le cache que tu oublie
j'ai pas de memberId dans ma table guild, c'est une table config channel ^^
nan cache j'ai déja essayer ^^
sa me dit que themember.has n'est pas une fonction ^^
Tu travail avec quelle version de discord js ?
guildIdList.forEach(async (guildId) => {
let theGuild = bot.guilds.cache.get(guildId);
if(theGuild) {
if(theGuild.members.cache.has(theMemberId)) {
theGuild.members.cache.get(theMemberId).ban();
console.log(`${theGuild.members.cache.get(theMemberId).user.tag} was banned from the server ${guildId}`);
} else {
console.log(`${theGuild.members.cache.get(theMemberId).user.tag} is not in the server ${guildId}`);
}
} else {
console.log(`Couldn't find a member with id ${theMemberId}`);
}
});
Même en faisant le .has() comme ça ?
la j'ai cannot read properties of undefined (reading user)
Normalement ça devrait te faire ça si ton membre n'existe pas
On peut ajouter une condition pour éviter ça
guildIdList.forEach(async (guildId) => {
let theGuild = bot.guilds.cache.get(guildId);
if(theGuild) {
let theMember = theGuild.members.cache.get(theMemberId);
if(theMember) {
if(theGuild.members.cache.has(theMemberId)) {
theMember.ban();
console.log(`${theMember.user.tag} was banned from the server ${guildId}`);
} else {
console.log(`${theMember.user.tag} is not in the server ${guildId}`);
}
} else {
console.log(`Couldn't find a member with id ${theMemberId}`);
}
} else {
console.log(`Couldn't find a guild with id ${guildId}`);
}
});
on va y arriver 😂
sa ma mit sa
normalement sa aurais du le banir de 2 et mettre qu'il a pas ete trouver pour les 2 autres ^^
tu es certain qu'il est sur les autres ?
oui ^^
il est sur 2 des 4 serveur, le principal et un secondaire ^^
il est sur 3 serveur sur 4 meme
Je t'avoue que je ne sais pas trop, tu as bien vérifié les id des guilds ?
Pas de soucis 👍
c'est la roulette enfaite mdrr xd
une fois sa va le bannir que de 1, si je debanne et reesaye sa le ban de 3 fin je comprend pas trop comment c'est possible xd
Es ce que ton bot est sharder ?
tu appel quooi par sharder ?
parce que oui mon code est split en différent handler (command, event, components)
Utilisé un ShardingManager pour que ton bot se réplique en fonction du nombre de serveur lié au bot
D'acc ça aurais pu etre une raison pour laquelle ça ne marchais pas
T'es pas obligé d'en utilisé un
il en faut un du coup ou pas ?
parce que le bot est bien fonctionnel sur tout les serveurs
Pas si ton bot est sur moins de 2000 -2500 serveurs
ah bah oui il va etre sur 20 serveurs j'ai de la marge x)
Oui xD
mais ta pas idée pour laquel il ne detecte pas sur les autre serveur ?
la fonction s'execute bien, juste le membre n'y est pas detecter
j'ai rajouter dans mon consol.log l'id du serveur, afin de verifier que sa passe bien par tous
et sa les parcours tous, je vais essayer d'afficher le membres pour voir
euh oui mais rapidement ^^
Go voc
hello, je débute en javascript et j'essaye de lire un fichier avec la méthode readFileSync et j'ai un message d'erreur lorsque je lance le programme, tout est dans la capture, est-ce que quelqu'un peut me dire ce que j'ai mal fait ? merci d'avance !
Tout est marqué dans l'erreur, il ne trouve pas le fichier
mais du coup comment faire en sorte qu'il trouve le fichier ? celui-ci se trouve dans le même dossier il ne devrait pas le trouver avec le chemin que j'ai donné ?
Tu devrais regarder des tuto sur youtube concernant nodejs
oui ça marche, tout simplement, merci beaucoup !
yep, je comptais bien me renseigner un peu mieux dessus, j'avais juste besoin de lire des fichiers pour un mini projet bientôt terminé
Hello à tous !
Petite question car j'ai besoin d'aide ...
Si quelqu'un s'y connaît bien en Angular qu'il vienne en MP siouplé 😀
hey 👋
j’ai un problème avec le ready.js:
const Discord = require("discord.js")
const loadDatabase = require("../modules/loadDatabase")
const loadSlashCommand = require("../modules/loadSlashCommands")
const { ActivityType } = require('discord.js')
const bot = require('../main.js').bot
module.exports = async bot => {
bot.db = await loadDatabase()
bot.db.connect(function () {
console.log("Base de données connectée !")
})
await loadSlashCommand(bot)
bot.on("ready", () => {
console.log(`${bot.user.tag} est en ligne !`)
bot.user.setPresence({
activities: [{ name: `les cours`, type: ActivityType.Watching }],
status: 'dnd',
});
});
}
voici le main.js:
const Discord = require("discord.js")
const intents = new Discord.IntentsBitField(3276799)
const bot = new Discord.Client({intents})
const loadCommands = require("./modules/loadCommands")
const loadEvents = require("./modules/loadEvents")
const config = require("./config.js")
bot.commands = new Discord.Collection()
bot.color = "#2f3136";
bot.function = {
createId: require("./fonctions/createId")
}
bot.login(config.token)
loadCommands(bot)
loadEvents(bot)
ducoup si une personne peut m’aider sa serait sympa 😅
const bot = require('../main.js').bot C'est la le pb
Tu n'exporte pas le .bot
La structure de ton bot est bizarre: je te conseil de lire attentivement ça: https://discordjs.guide/creating-your-bot/#using-config-json
non c’est bon
je devais retirer ```js
bot.on("ready", () => {
console.log(${bot.user.tag} est en ligne !)
merci comme même
Si tu retire ça tu ne déclenche pas l'event ready
il se déclenche dans le main.js 😅
C'est pas très "good practice" tout ça 
je suis débutant 😅
bonjour je suis débutant je n'arrive pas a créer une commande avec le prefix +
sur mon bot discord en js
c'est une commande de réponse a une question

mon script ya que dale a pars pour connecter le bot enft j'ai juste jsp pas comment faire
des commandes de réponses,embed avec un prefix +
Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for.
😐
Pourquoi demander alors qu'une simple recherche google te donne la réponse
bah jsp je comprend quand meme rien avec les tutos
Tu utilise discordjs ?
non sur YTB je regardais
donc tu utilise pas discordjs dans ton projet ?? 👀
si le fichier est en .js et pour le connecter en discord.js
ok merci
Bonjour, j'aimerais passer une variable d'un fichier js à un autre quelqu'un pourrait m'aider?
Merci d'avance.
Il faut regarder du côté des modules
@foggy wasp
ok merci je vais y jeter un coup d'œil
Si tu déclares ta variable de façon globale sur ton premier fichier, alors elle sera accessible n'importe où.
window.maVariable="value";
Il est également possible de stocker tes variables dans ton localStorage
//Tu peux la stocker comme ceci
localStorage.setItem('maVariable', 'value');
//Puis la récupérer
let maVariable = localStorage.getItem('maVariable');
@foggy wasp Ton problème est résolu ?
ah je vais essayer sa devrai marcher parce que a chaque fois que je testais un truc le reste de mon code ne s'exécutai pas
et désoler pour l'attente j'étais en cour 😅
j'en demande peut-être beaucoup mais tu pourrais me faire
-un fichier HTML relier à un fichier js
-et un autre fichier HTML relier à un fichier js
et faire basculer une variable d'un fichier a un autre
parce que quand j'essaie sa marche toujours pas
Quel est ton message d'erreur ?
la variable est pas défini
Tu peux me montrer la partie du code qui enregistre la variable et celle qui l'affiche stp ?
Euh ouais mais je peut pas tout de suite je mange mais dans 5 / 10 minutes
Salut, je suis sur une cmd userinfo en djs V13 qui est en slashcmd mais j'essaye de la convertir en prefixe commande mais j'y arrive pas, quelqu'un pourrais m'aider svp ?
la comande:
const { MessageEmbed } = require('discord.js');
module.exports = {
name: 'userinfo',
async run(client, message, args) {
const member = await message.guild.members.fetch(message.targetId);
const embed = new MessageEmbed()
.setAuthor({ name: `${member.tag} (${member.id})`, iconURL: member.user.bot ? '🤖' : '🙍' })
.setColor('#8e48f7')
.addFields(
{ name: 'Nom', value: `${member.displayName}`, inline: true },
{ name: 'Modérateur', value: `${member.kickable ? '❌' : '✅'}`, inline: true },
{ name: 'Bot', value: `${member.user.bot ? '✅' : '❌'}`, inline: true },
{ name: 'Roles', value: `${member.roles.cache.map(role => role).join(', ')}` },
{ name: 'A créé son compte le', value: `<t:${parseInt(member.user.createdTimestamp / 1000)}:f> (<t:${parseInt(member.user.createdTimestamp / 1000)}:R>)` },
{ name: 'A rejoint le serveur le', value: `<t:${parseInt(member.user.joinedTimestamp / 1000)}:f> (<t:${parseInt(member.user.joinedTimestamp / 1000)}:R>)` },
)
message.channel.send({ embeds: [embed] });
},
};
@foggy wasp je te conseille d'utiliser ça
quand je met sa sa me met null c'est normal
js 1
localStorage.setItem("maVariable", "value");
js 2
let maVariable = localStorage.getItem("maVariable");
alert(maVariable);
bonjour à tous !
J'ai actuellement une amie qui a besoin d'un coup de main pour ses débuts dans Javascript avec Visual Studio Code, c'est pour un exercice pour les cours, elle essaie de faire une moyenne d'un tableau avec des note que l'on inscrit via un prompt, actuellement quand on essaie 3 chiffres comme (1,2,3) puis la moyenne, on tombe sur des chiffres qui n'ont rien à voir comme 3516546513
Voici le code actuel :
`let note = 0
let mon_tableau = []
let valide = 0
let invalide = 0
let min = 20
while (note >= 0)
{
note = prompt ("Veuillez entrer vos différentes notes d'examens. Lorsque ce sera terminé, entrez un nombre négatif:") ;
if (note >= 0 && note <= 20) {
mon_tableau.push(note) ;
if (note < min) {
min = note ;
}
if (note >= 10) {
valide++ ;
}
}
else if (note > 20) {
invalide++ ;
}
}
let moyenne = mon_tableau.reduce ((a, b) => a + b, 0) / mon_tableau.length ;
document.write ("<br>" + 'Vous avez entré ' + invalide + ' notes invalides.') ;
document.write ("<br>" + 'La plus mauvaise note obtenue est ' + min) ;
document.write ("<br>" + 'La moyenne de vos notes est' + moyenne) ;
document.write ("<br>" + 'Vous avez ' + valide + ' notes valides supérieures ou égales à 10.') ;`
à la base moi je fais du C# et le javascript je suis pas une tête dedans, si vous avez une réponse ce serait super sympa ❤️
@solid garnet
Le problème ici c'est l'utilisation de la fonction prompt()
Cette fonction va toujours renvoyer une string
let note = 0
let mon_tableau = []
let valide = 0
let invalide = 0
let min = 20
while (note >= 0)
{
note = parseFloat(prompt("Veuillez entrer vos différentes notes d'examens. Lorsque ce sera terminé, entrez un nombre négatif:"));
if (note >= 0 && note <= 20) {
mon_tableau.push(note) ;
if (note < min) {
min = note ;
}
if (note >= 10) {
valide++ ;
}
}
else if (note > 20) {
invalide++ ;
}
}
if(mon_tableau.length > 0) {
let moyenne = mon_tableau.reduce ((a, b) => a + b, 0) / mon_tableau.length ;
document.write ("<br>" + 'Vous avez entré ' + invalide + ' notes invalides.') ;
document.write ("<br>" + 'La plus mauvaise note obtenue est ' + min) ;
document.write ("<br>" + 'La moyenne de vos notes est' + moyenne) ;
document.write ("<br>" + 'Vous avez ' + valide + ' notes valides supérieures ou égales à 10.') ;
}
else {
document.write("Aucune note valide n'a été saisie.")
}
J'ai refais le code avec la correction
Wow, c'est super gentil merci
j'ai ajouté une condition à la fin pour éviter de calculer la moyenne sur un tableau vide
parfait merci beaucoup !
Pas de soucis 👍
attention à Number(prompt("la phrase"))
car le prompt s'il est quitté, renvoi "null" donc Number(null) ouille
peut être Number(prompt("la question") || 0)
pour eviter au moins les soucis de null
bon cela dit, apres il faudra gérer les problemes de nombre (facilement faisable avec isNaN)
ducoup peut être :
result= prompt("question");
if( result==null || isNaN(result) ){ return; } // vide ou pas nombre
note= Number(result); // valeur nombre
Salut, je suis sur une cmd userinfo en djs V13 qui est en slashcmd mais j'essaye de la convertir en prefixe commande mais j'y arrive pas, quelqu'un pourrais m'aider svp ?
la comande:
const { MessageEmbed } = require('discord.js');
module.exports = {
name: 'userinfo',
async run(client, message, args) {
const member = await message.guild.members.fetch(message.targetId);
const embed = new MessageEmbed()
.setAuthor({ name: `${member.tag} (${member.id})`, iconURL: member.user.bot ? ':robot:' : ':person_frowning:' })
.setColor('#8e48f7')
.addFields(
{ name: 'Nom', value: `${member.displayName}`, inline: true },
{ name: 'Modérateur', value: `${member.kickable ? '❌' : '✅'}`, inline: true },
{ name: 'Bot', value: `${member.user.bot ? '✅' : '❌'}`, inline: true },
{ name: 'Roles', value: `${member.roles.cache.map(role => role).join(', ')}` },
{ name: 'A créé son compte le', value: `<t:${parseInt(member.user.createdTimestamp / 1000)}:f> (<t:${parseInt(member.user.createdTimestamp / 1000)}:R>)` },
{ name: 'A rejoint le serveur le', value: `<t:${parseInt(member.user.joinedTimestamp / 1000)}:f> (<t:${parseInt(member.user.joinedTimestamp / 1000)}:R>)` },
)
message.channel.send({ embeds: [embed] });
},
}; ```
Tu as une erreur ?
oui attend
Sois sûr que ton message.targetID soit défini
D’ailleurs je comprend pas ce que c’est
Car sauf si je ne m’abuse message.targetID n’existe
Tu as éventuellement message.mention.users.first() pour récupérer la première mention du message
Mais si c’est un code bêtement copier coller c’est pour ça que ça ne fonctionne pas
je l'ai pris de youtube, et j'essaye de le faire marcher avec prefixe cmd
Si j'ai bien compris tu veux récupérer l'auteur du message dans la variable "member" donc je te conseil d'utiliser la propriété "message.member"
Non
Il veux récupérer un argument je crois
Donc message.mentions.users.first()
Bah non puisque après il fait des member.tag etc
Et si en effet tu veux récupérer l’auteur du message c’est message.author
donc member est censé représenté un membre
Yep c’est le but d’une commande users info
Oui un GuildMembers
Et users est un GuildMember
On est pas en typescript pas besoin de le typée
J'ai jamais parlé de typé
Du coup tu as l’erreur @stark forge ?
Mais il ne veut pas récupérer l’auteur du message
Il veut récupérer un utilisateur mentionner
Pour récupérer ses infos
ok donc je dois remplacer tout les member par author?
Tu veux récupérer l'auteur du message ?
ou une personne que tu mentionne ?
non, les infos du membre mentionner
Voilà
Ah ok
Donc message.mentions.users.first() un truc comme ça
Faut que je re check la doc mais il me semble que c’est ça
Je te laisse regarder @drowsy ocean j’suis sur tel dans un bus c’est galère
const member = await message.mention.users.first()
``` j'écris ?
message.mentions.members.first()
Mentions n’a pas accès à members
Ah si
Pardon
Putain j’suis vrm rouillé un ans sans faire de bot j’ai perdu la doc de la tête
Et pas besoin du await normalement
Yep
Et si y’a un autre problème envoie l’erreur
Et j’suis sur que c’est le genre de situation que chatGPT pourrait régler sans souci
connaîs pas
j'ai une erreur que j'ai jamais eu :
UNHANDLED_REJECTION: DiscordAPIError: Invalid Form Body
embeds[0].author.icon_url: Scheme "�" is not supported. Scheme must be one of ('http', 'https').
-----
Promise {
<rejected> DiscordAPIError: Invalid Form Body
embeds[0].author.icon_url: Scheme "�" is not supported. Scheme must be one of ('http', 'https').
at RequestHandler.execute (C:\Users\leura\OneDrive\Bureau\Bot V13\node_modules\discord.js\src\rest\RequestHandler.js:350:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (C:\Users\leura\OneDrive\Bureau\Bot V13\node_modules\discord.js\src\rest\RequestHandler.js:51:14)
at async TextChannel.send (C:\Users\leura\OneDrive\Bureau\Bot V13\node_modules\discord.js\src\structures\interfaces\TextBasedChannel.
js:175:15) {
method: 'post',
path: '/channels/1040335477242339339/messages',
code: 50035,
httpStatus: 400,
requestData: { json: [Object], files: [] }
}
}
Alors ce qui est sur c’est que ça viens de l’author icon
Mais quelle est le problème jsp
Laisse moi rentrer chez moi si personne te réponds je suis à toi dans 20 minutes
ça marche, merci bcp !
Bonjour, j'utilise inquirer pour demander un nombre. Je vérifie bien si le nombre est correct, mais si il ne l'est pas, je ne peux plus modifier. Comment puis-je faire pour qu'il soit modifiable malgré l'erreur ?
validate: (input) => {
if (config.required && !input || input === "") return "Ce champ est requis !";
if (config.type === "number" && isNaN(input)) return "Ce champ doit être un nombre !";
return true;
}
mec bizarre ta condition "config.type === "number" && isNaN(input)", tu lui dit que si c'est un number et un NaN mais les deux sont incompatible !
Nan x)
Je rentre pas avant plusieurs heures finalement x)
const questions = currentConfig.values.map(config => {
if (checkValue(config) !== "") {
console.log(red(checkValue(config)))
return process.exit()
}
return {
type: config.type === "boolean" ? "confirm" : config.type === "number" ? "number" : config.type === "password" ? "password" : "input",
name: config.name,
message: `${config.name} : ${config.description && !config.help ? config.description : config.description && config.help ? `${config.description}\n${config.help}` : config.help ? config.help : ""} > `,
default: config.default || null,
validate: (input) => {
if (config.required && !input || input === "") return "Ce champ est requis !";
if (config.type === "number" && isNaN(input)) return "Ce champ doit être un nombre !";
return true;
}
}
})
Ah oui autant pour moi
là tu devrais mieux comprendre x)
J'ai pas fait gaffe
tkt
ah ok pas de soucis, ping moi quand tu es de retour stp
Une idée du pb ?
att je regarde
mrc
validate: (input) => {
let isValid = false;
while (!isValid) {
if (config.required && !input || input === "") {
return "Ce champ est requis !";
}
if (config.type === "number" && isNaN(input)) {
return "Ce champ doit être un nombre !";
}
isValid = true;
}
return true;
}
le mettre dans une boucle ?
Non térrible
Désolé je vois pas ce qui cloche 
alors ?
@glass cargo en fait la boucle doit englober le moment où tu demandes ta variable
En gros tant que la variable ne respecte pas ta condition ça va la demander à ton user
Je pense pas que ce soit worth
🤔
Euh...
Ben jpp
Sinon ça recommence toutes les questions...
Tu as les id de ces questions ?
Car au pire toutes celles qui ont un problème tu les push dans un tableau et tu boucle dessus à la fin pour les reposer
Je peux avoir un resumé du probleme ?
@floral bolt
Je peux toujours récupérer la position de config dans currentConfig.values 🤷♂️
tu peux montrer tous le code je comprend pas comment ca marche
Enfin comment tu te sers de question ?
Tu crée l’array de questions, tu le mets dans inquirer.prompt(questions), il poses toutes les questions, puis tu récupères les réponses avec un .then().
Apres il me semble que dans les prompt style npm ect il repose juste la question
Je peux encore écrire, sauf que jpp effacer le NaN
tu peux reposer la question ?
ils ont l'air de galérer aussi xD
C'est que de base c'est pas possible
mais je comprend pas trop a quoi ca sers enfaite
Pourquoi tu as besoin de Inquirer.js en particulier ?
Il n'y a pas moyen d'utiliser autre chose ?
Aucuns pb à utiliser autre chose x)
Simplement, j’ai look comment smaug avait fait pour Sheweny et voilà x)
mais ca te sers a quoi ?
Le projet serait de faire un cli qui permettrait de configurer un repo avec un système de questions/réponses.
Et le schéma du fichier de configuration à compléter se situerait sur le repo en question 👀
Hello ! je débute en javascript et j'ai un problème mon bot ne parle pas quand on execute une commande aucune erreur log
me ping
Bonjour j'ai un problème avec mon bot
Tu dois installer discord.js
je les installer
marche toujour pas
je suis aller dans mon cmd puis j'ai mis npm i discord.js
Tu as sûrement du faire la commande dans le mauvais dossier
ah ouii
bas comment je fait pour le mettre dans le dossier
basque la j'ai pas de dossier pour les modules ?
@queen ocean
Ouvre un cmd dans ce dossier que tu montre
Et tape npm i
?
Ça viens d’où ça ?
je clique 2 fois puis je fait npm i?
.
tu ma dit d'ouvrir un cmd dedans
Oui ouvrir un terminal, pas de créer un fichier bat mdr
Comme tu veux
la j'ai ouvert le dossier avec visual studio code
je suis dans le terminal
et j'écrit npm i
yep
dernière question quand ton bot répond pas a t commande c quoi le problème


