#javascript-typescript

1 messages · Page 11 of 1

desert riverBOT
#

:guide: Interactions: Building and sending buttons
read more

glass cargo
#

Et ça pour t’aider ^^

keen narwhal
#

merci

#

je vais voir

keen narwhal
glass cargo
#

De rien ^^

proud acorn
#

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

floral bolt
#

tu as cette query : query("SELECT MAX(ID) FROM ma_table");

glass cargo
proud acorn
glass cargo
#

^^

proud acorn
#

Personne ne sait m'aider?

sharp grail
#

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

icy oracle
#

C'est marrant comme problème

sharp grail
#

Mais y a pas des events ?

proud acorn
glass cargo
#

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)

sharp grail
#

Extrêmement chiant

glass cargo
#

Très x)

sharp grail
#

Aucun risque de ban api si tu fais trop de requêtes ?

glass cargo
#

Nop

sharp grail
#

Mais sinon bah tu boucles dessus je suppose

#

Wtf

glass cargo
#

Genre c'est comme si tu spammais les F5 sur la page de recherche vinted kapp

sharp grail
#

😭 mdrrr sauf que tu vas un peu plus vite si tu fais des requêtes

#

Puis euj

sharp grail
#

Si y a 30 articles ajoutés par seconde c'est chaud quand même

glass cargo
#

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 kapp

sharp grail
#

Mdrrr

#

Oui

#

D'ailleurs je sais que des hebergeurs gratuits avaient interdit les bots vinted parce que ça créait des rate limits

keen narwhal
#

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

glass cargo
# keen narwhal salut, j'aurai une question est ce que quelqu'un sait comment faire rejoindre un...

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 :)

keen narwhal
#

bv merci a toi

red basin
#

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

Lightshot

Captured with Lightshot

glass cargo
signal marsh
#

Yo, j'ai une petite question, comment je fait pour accéder à un Entries ? merci de vos rep

glass cargo
#

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 😉

true mortar
#

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

true mortar
#

le .id sert a quoi ?

#

j'ai iren dit

#

rien

desert riverBOT
true mortar
#

merci et le lien pour join le serveur

true mortar
glass cargo
true mortar
#

okok merci !

desert riverBOT
stark forge
#

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)
glass cargo
#

<Message>.mentions.members.first()

stark forge
#

je met ça a la place ?

glass cargo
#

yep

stark forge
#

d'accord merci bcp, je vais essayer

#

ducoup c'est pareil pour le .getString ?

glass cargo
stark forge
#

ç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)
true mortar
#

@glass cargo

glass cargo
true mortar
#

chut bête

#

merci encore mdr je débute

glass cargo
#

tkt, on est tous passés par là ^^

stark forge
# glass cargo enlève ton `("raison")`

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)

glass cargo
#

Ta variable user est une class GuildMember et non User ^^

graceful spruce
#

Salut je suis oas très fort en java et je me demandais comment faire un système de tris grace au javascript ?

true mortar
undone herald
#

code ?

graceful spruce
#

punaise une vraie usine à aides mdr @undone herald

true mortar
graceful spruce
#

oui montre ton code pour qu'on puisse résoudre ton erreur

true mortar
#

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);
    }
}
undone herald
#

log ton member.guild voit ce qu'il te retourne

true mortar
#

@undone herald

glass cargo
true mortar
#

ah mdr

#

c'est une id mais moi je vuet le nom du serveur stp

glass cargo
true mortar
#

.....

graceful spruce
#

je suis en train de creer un site et j'ai besoin d'un système de tris des films en javascript @glass cargo

true mortar
#

pourquoi en js ?

graceful spruce
#

car je ne suis pas très fort en php et avec les base de données

glass cargo
true mortar
graceful spruce
#

site

glass cargo
#

Les sites de streaming sont illégaux (sauf si tu as les droits d’auteurs sur les films proposés, ce dont je doute)

graceful spruce
#

oui j'en ai tkt je fais un site de jeu mdr

#

🙂

glass cargo
#

Mouais

#

J’en doute...

graceful spruce
#

ouai tkt mdr

true mortar
#

Erreur ?

stark forge
# glass cargo `user.user.id`

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)
stark forge
# median hollow 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

fleet scaffold
#

Hope it help you

stark forge
#

merci je vais essayé 👍

stark forge
#

mais je dois pas être loin d'y arriver

dire latch
#

Quel est le soucis ?@stark forge

stark forge
dire latch
#

Qu'est-ce qui ne fonctionne pas ?

#

Car au dessus, ton bot réponds à ta commande 🤔

#

@stark forge

stark forge
#

Désolé je me suis endormi notlikethis

stark forge
#

Donc il y à une erreur dans le code

torn fog
dire latch
#

@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

stark forge
stark forge
true mortar
#

normal ?

floral bolt
#

si tu n'as pas defini de nom oui

dire latch
#

@stark forge oui mais tu as mis ceux qui sont kickable ne peuvent pas être kick

true mortar
#

merci mdr

#

et sa ?

floral bolt
#

Tu sais, enfaite on est peut être trop fort mais on est pas divin sans le code on peut rien faire ...

true mortar
floral bolt
#

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

true mortar
#

okok

stark forge
#

Pourtant elle marche très bien sur mon bot avec slashcommand

dire latch
stark forge
#

Dommage

true mortar
glass cargo
#

Bonjour 👋
Comment puis-je recevoir des requêtes POST avec VueJS ?

past nimbus
#

Envoyer tu veux dire j'imagine ?

glass cargo
#

Mais dcp je vais faire avec express 👀

past nimbus
#

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

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)

past nimbus
#

Oui mais VueJS c'est du front donc du client Web
Ou bien tu parles de VueJS en SSR ?

glass cargo
#

je débute pas mal avec vue

past nimbus
#

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 ?

glass cargo
# past nimbus 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é :)

past nimbus
#

D'accord et il est où ton vuejs là-dedans ?

glass cargo
past nimbus
#

Euh d'accord mais du coup pourquoi tu parles de VueJS au départ ? x)

glass cargo
past nimbus
#

Euh d'accord mais je pense que tu as dû mélanger certaines notions, VueJS c'est pour faire un client Web

glass cargo
#

ah

#

x)

red basin
#

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)

true mortar
floral bolt
#

alors non désolé

true mortar
#

ah ok pg

true mortar
#

ghost ping ?

ashen rapids
#

C'moi désolé, je répondais à une de tes demandes mais Discord m'avait pas scroll

true mortar
#

ah ok

#

ah bah tien vu que on y ait

#

une question

#

@ashen rapids

ashen rapids
#

Je te conseille d'apprendre le minimum de JavaScript avant tout ça 😇

true mortar
#

js mdr

red basin
#

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)

true mortar
#

@floral bolt

green wren
#

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

floral bolt
floral bolt
green wren
true mortar
floral bolt
green wren
#

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

green wren
floral bolt
#

Tu t'y connais avec discordjs ?

green wren
floral bolt
#

bien sur

green wren
floral bolt
#

en vrai 4 ligne c'est fait 🙂

green wren
#

mais sinnon mon bot est deja dasn mon serveur je l ai code avezc visual juste il fait rien

green wren
floral bolt
#

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()
green wren
#

Ok merci beaucoup je vais essayer ca tu gere

stark forge
#

quelq'un s'y connaît en database pour mettre a jour l'ID d'un warn quand j'unwarn un membre ?

undone herald
#

Va sur w3school ils vont te donner des exemples

#

@stark forge

stark forge
#

je sais pas c'est quoi mais je vais voir

green wren
floral bolt
#

Sinon tu peux crée le bot tous seul

#

Je suis sûr que c’est pas très compliqué quand tu connais

stark forge
green wren
#

bref pas grave merci quand même je vais essayer de faire ce que tu ma dit

undone herald
floral bolt
stark forge
undone herald
#

Utilise l'autoincrement au pire pour ta table

stark forge
#

par exemple l'id du warn est 1, et quand je l'unwarn ça retombent a 0 dans la base de donnée

stark forge
green wren
stark forge
#

mais ça met pas a jour

floral bolt
#

Ah bah dans ces cas là tu fais une demande de dev sur g-ca.fr/offre

green wren
undone herald
stark forge
#

jsp si t'as compris

undone herald
#

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?

stark forge
#

player 2, c'est à dire ?

stark forge
#

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

undone herald
stark forge
#

c'est possible de faire une table par joueur ?

undone herald
#

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

stark forge
#

j'utilise l'auto incrémentation

undone herald
#

Donc impossible de savoir qui a été warn précisément ?

stark forge
#

Si

#
db.query(`INSERT INTO warns (guild, user, author, reason, date)
#

j'ai l'auteur et le membre

undone herald
#

Ah ok donc il n'y a pas que id et raison

stark forge
#

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

stark forge
undone herald
#

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

undone herald
stark forge
stark forge
undone herald
stark forge
# undone herald 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

stark forge
undone herald
#

Logique l'AI est basé sur la table entière et pas sur les id des membres

undone herald
stark forge
undone herald
#

Pas de soucis mp moi demain

stark forge
#

d'accord ça marche 👍

worldly flicker
#

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 ?

glass cargo
#

Uniquement depuis des applis téléchargées sur le téléphone ^^

worldly flicker
#

C’est pas possible de faire une app avec un site ?

alpine goblet
glass cargo
burnt fractal
past nimbus
worldly flicker
#

J’y connais ps grand chose en js les gars 😅

burnt fractal
#

Effectivement, mais il faut apprendre à faire avant de vouloir faire

sharp vapor
#

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

glass cargo
sharp vapor
green wren
#

qui a un bot pour coop des paires

burnt fractal
honest ruin
#

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 ?

green wren
glass cargo
#

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 ?

past nimbus
glass cargo
#

:/

#

Encore changer x)

past nimbus
#

Je dis pas que tu dois le faire, je dis juste que c'est pas le plus adapté au vu de ton besoin actuel

glass cargo
past nimbus
#

Je saurais pas te dire pour NextJs mais c'est possible de récupérer le contenu, c'est obligatoire

glass cargo
floral bolt
#

Nextjs 13 te permet de faire des api

#

Mais vite fait

true mortar
#

je fait comment la svp @glass cargo

frail plank
#

déjà faudrait importer Intents de discord.js avant d'utiliser Intents.FLAGS

true mortar
#

thanks

stark forge
#

wavey 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 :

modern skiff
#

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)

stark forge
#

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

glass cargo
# stark forge ```js const Discord = require ("discord.js") module.exports = { name: "kic...
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

stark forge
#

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)
glass cargo
#

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à :)

stark forge
#

ah mince

#

j'ai le même problème qu'au début :

glass cargo
stark forge
#

maintenant le bot me renvoie ça :

glass cargo
#

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() 😉

stark forge
#

bolbhyper t'es vraiment le boss merci bcp !

glass cargo
#

de rien :)

simple arch
red basin
#

@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

red basin
#

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

glass cargo
red basin
#

azi mp

hard iris
#

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 kappa

oak turret
hybrid elk
#

Ca y est

hard iris
#

tu te trompes de channel là sue

hybrid elk
#

Non

hard iris
#

Si si

#

crois moi que si

hybrid elk
oak turret
pallid plume
#

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

past nimbus
#

Passe l'id en string

pallid plume
#

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 :/

past nimbus
#

Car c'est un nombre trop grand pour js

pallid plume
#

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

past nimbus
#

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

past nimbus
pallid plume
#

Après c'est rare que je manipule des nombres comme ça sauf la exceptionnellement pour un bot discord :/

pallid plume
#

ça c'est dans le channel

past nimbus
#

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

pallid plume
#

Ouais bizarre je vais continuer à chercher merci quand même

oak turret
pallid plume
#

Nop fetch s'applique pas sur cache

oak turret
#

Alors, autre truc ton fichier c’est quoi une commande?

pallid plume
#

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

past nimbus
#

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

pallid plume
#

ça sera pas le cas la c'est vraiment juste pour suivre ma plante kappa

past nimbus
#

D'acc aha

drifting grove
#

bonsoir qui c crée tout les commandes bots ?

fleet scaffold
#

@past nimbus t'as créé scyllaDb toi, je reconnais xd

past nimbus
#

:p

#

Non je rigole, mais bien évidemment, non ce n'est pas moi malheureusement :c

keen narwhal
#

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

rose isle
past nimbus
#

Excel ?

floral bolt
frail plank
#

:derp: excel

fleet scaffold
glass cargo
#

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

torn fog
glass cargo
#

Merci !

torn fog
glass cargo
# torn fog deux rien

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>
torn fog
#

j'aurais + fait un const projects = require('fichierjson')

glass cargo
torn fog
#

ah donc oklm alors

glass cargo
#

mais c'est dans le v-for que j'arrive pas à l'avoir :/

torn fog
#

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

glass cargo
#

🤔

torn fog
#

vérifie en gros dans le code de ton navigateur si t'a les datas ou pas

glass cargo
#

je vais look mais je pense pas 👀

torn fog
#

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

torn fog
#

elles sont comment les données dans le projects.json ?

glass cargo
#
[
    {
      "id": 1,
      "name": "Cool Project"
    },
    {
        "id": 2,
        "name": "Awesome Project"
    }
]
fleet scaffold
glass cargo
#

nop

torn fog
# glass cargo Par hasard, tu ne saurais pas pourquoi rien ne s'affiche quand je fais ça ? ```j...

<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

glass cargo
#

marche pas :/

torn fog
fleet scaffold
#

sans utiliser vfor ect

torn fog
#
<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>
torn fog
#

👀

glass cargo
queen ocean
pallid plume
queen ocean
pallid plume
#

Je suppose que c'est ça ?

queen ocean
#

yep

#

met lui la perm de voir le salon

pallid plume
#

Bah en gros j'active voir le salon quoi

queen ocean
#

yes

pallid plume
#

ah ok att je viens de voir tu peux set la perm membre à membre

#

euh groupe à groupe*

queen ocean
#

Pas compris sue

frozen depot
#

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);    
    }
}
});```
frozen depot
queen ocean
#

const prompt = message ta oublié le . content nan ?

frozen depot
#

je les rajouter

#

mais ne fonctionne pas

red torrent
#

Tu peux pas modifier le message de quelqu'un d'autre

#

Donc ton message.edit ne fonctionnera pas

visual hamlet
#

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")
  
             }      
        }
    }
simple arch
#

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 :)

visual hamlet
simple arch
#

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?

visual hamlet
#

je let met tout en bas ?

simple arch
#

en bas? euh..
déjà, as tu remplacé la ligne par celle que j'ai proposé ou pas?

visual hamlet
#

oui

simple arch
#

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?

visual hamlet
#

Comment sa ?

simple arch
#

pour verifier si l'erreur est bien ici, je suis en voc si besoin

keen narwhal
#

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

glass cargo
torn fog
#

xD

glass cargo
#

x)

#

Bizarre, j'ai rien changé et maintenant ça marche kappo

#

Mais dès que je remet mon component ça marche plus :/

glass cargo
#

@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>
glass cargo
#

problème résolu

#

il manquait un :key :)

torn fog
terse geyserBOT
#
Voici ton bonhomme de neige !

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 !

queen ocean
#

@signal marsh tu as le channel #bots-commands bongo

near saddle
#

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 )

keen narwhal
simple arch
#

salut, juste apres client.on("interactionCreate", interaction => { tu peux mettre un console log pour voir au moins si ça entre là dedans?

keen narwhal
#

nan rien ne se passe

#

j'ai peut etre pas la bonne syntax ^^'

#

c different quand tu utilise le .startsWith avec des prefix perso

queen ocean
#

@north matrix je remet ton msg ici 👌

#

@fierce plank je te laisse lui expliquer du coup 👌

north matrix
#

Merci

keen narwhal
#

Je suis desoler je suis en galere mdr ça fais quelque jour que je cherche un moyen de réaliser ça

woven cosmos
#

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

woven cosmos
#

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

floral bolt
#

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

woven cosmos
#

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);
    })
})
simple arch
# woven cosmos comment j'ajoute une classe a une autre ?
// 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");
fleet scaffold
#

dite

#

quelqu'un à déja utilisé Vuejs et eu des problèmes ou le dom chargeais juste pas ?

#

😭

#

Car c'est mon soucis là

simple arch
#

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)

glass cargo
fleet scaffold
fleet scaffold
glass cargo
frosty idol
#

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);
    }
});
glass cargo
frosty idol
#

Mais j’ai aucune erreur

glass cargo
#

🤔

#
console.log(bot)
frosty idol
#

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)

glass cargo
#

C'est bien V14 la version de djs ?

#

parce que Discord.MessageEmbed, c'est de la V13 voire V12 🤔

frosty idol
#

C’est v14 oui

glass cargo
#

Bon ben déjà ça va pas 👀

desert riverBOT
#

:class: EmbedBuilder
Represents a embed in a message (image/video preview, rich embed, etc.)

glass cargo
#

Et tu as bien activé le "Message Content Intent" ?

frosty idol
#

oui

glass cargo
#

Bizarre...

#

Possible d'avoir tout le fichier (sans le token) ?

woven cosmos
#

il y a une méthode element.classname qui permet de recup le nom de la class ?

glass cargo
woven cosmos
#

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

past nimbus
#

Passe un identifiant en paramètre

woven cosmos
#

comment

#

stp

#

je sais juste rajouter un parametre a une fonction

#

en mettant le mot dans les parentheses

#

mais c tt

glass cargo
#

Ah

#

Ok x)

#

Lorsque tu définie ta fonction :

function maSuperFonction (Argument) {...}

Lorsque tu appelle ta fonction

<Element ... onclick="MaSuperFonction(Argument)">...</Element>
woven cosmos
#

hmm

#

et dans la fonction si je veux changer le style de l'élement qui m'a appeler par exemple c'est comment ?

fleet scaffold
celest cliff
#

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

simple arch
#

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>
simple arch
celest cliff
#

Yep

glass cargo
simple arch
#

(sauf si tu envoi le pointeur de l'element html dans la function js :p)

woven cosmos
keen narwhal
#

Bonsoir, j'ai un probleme avec mon bot quand j'execute une commande la console me sort ça :

simple arch
woven cosmos
#

Ah ça m'était destiné j'avais pas capté déso :')

glass cargo
simple arch
#

j'avoue qu'il y a une double conv sur le même sujet donc j'en profite, ça peut t'être destiné aussi :)

glass cargo
#

Si c’est des emojis personnalisés, je dirais qu’il ont été modifiés/supprimés

woven cosmos
#

et puis j'avoue je comprends pas comment il est sensé marcher

simple arch
#

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

woven cosmos
#

mais a quelle moment la fonction utilise le "this" ?

#

et c'est une fonction sans avoir besoin de mettre function devant ducoups ?

simple arch
#

ç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

fleet scaffold
#

donc faut faire `forEach(El => El.innerText =...

floral bolt
#

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)

floral bolt
#

Le problème c’est pas de le faire xD c’est de savoir si c’est illégal

drowsy ocean
fleet scaffold
drowsy ocean
floral bolt
#

ca reste du scrapping

fleet scaffold
#

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

drowsy ocean
floral bolt
drowsy ocean
#

De plus vinted a une api accessible par tous donc...

#

Pas vraiment d'interet de scraper par pupeteer ou autre

floral bolt
floral bolt
#

j'ai vus ouais

floral bolt
#

Donc on est d'accord c'est pas une api public et ca reste du scrap

drowsy ocean
floral bolt
#

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

drowsy ocean
#

Visiblement tu ne sais pas de quoi tu parle, alors je vais te laisser penser ce que tu veux

floral bolt
#

Ahah mdr

modest condor
#

Snox a raison, si le site interdit le scrapping, alors tu ne dois pas en faire

floral bolt
#

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 😉

fleet scaffold
#

Je fais du scrapping d'un site avec 0 Cgu harold

#

Moi c'est okay

floral bolt
#

Moi aussi en ce moment je vole les infos des sites connus sur les films :

fleet scaffold
woven cosmos
#

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

floral bolt
#

Tu peux utiliser .style.background

dry sleet
#

Si tu as préparé des balises img, tu peux aussi changer l'attribut "src".

woven cosmos
#

.srcContent ?

dry sleet
#

Tu as jQuery ou c'est en simple js ?

woven cosmos
#

simple js

dry sleet
woven cosmos
#

dac mrc

#

et pour que ça change pour toute les images de ma class ?

#

et pas que la première ?

dry sleet
#

Tu peux faire une boucle sur tes éléments

#

le getElementsByClassName("truc") va te retourner un tableau

woven cosmos
#

tu pourrais m'écrire la boucle pls

#

j'ai jamais fait

dry sleet
simple arch
#

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

woven cosmos
#

distribute c'est quoi ?

dry sleet
#

tu n'en a pas besoin tkt

woven cosmos
#

ok et rapidement, comment je récupe un élément au hasard de mon tableau js ?

dry sleet
#
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

woven cosmos
#

oula mais l'autre code, le .item jdois aussi l'utiliser ?

dry sleet
#

c'est à dire ?

woven cosmos
#

ouah je suis perdu

simple arch
#

(vocal?)

dry sleet
#

@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.

simple arch
#

un sort random, puis un foreach ouip

dry sleet
#

@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

woven cosmos
#

ça ne m'affiche pas d'erreur mais aucune image apparait...

dry sleet
#

tu as remplacé les url par les url de tes images ?

woven cosmos
#

oui

#

aaah att

#

nan, rien ne se passe

dry sleet
#

Quand tu inspectes ta page, il y a les url dans les sources de tes balises images ?

woven cosmos
#

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)

simple arch
#

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 :)

woven cosmos
#

mais ducoups oui c'est pas adapter

simple arch
#

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)

woven cosmos
#

dac merci bcp

#

est-ce que il y comme element.classList.add mais pour les ID ?

simple arch
#

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

woven cosmos
#

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 ?

simple arch
#

ç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 :)

woven cosmos
#

j'ai réussi merci

keen narwhal
#

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é

desert riverBOT
#

: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.

woven cosmos
#

Bonsoir !

#

Si je reviens pas c que j'ai réussi ce que je voulais faire

woven cosmos
#

c grave ça ?

woven cosmos
fleet scaffold
normal lichen
#

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

past nimbus
#

Oui

normal lichen
#

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 ^^

past nimbus
#

Pas besoin de passer par la database, le bot sait lui-même sur quel serveur il est normalement

normal lichen
#

ahh donc via l'id du membre je peut m'en sortir ?

normal lichen
#

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 ?

near saddle
simple arch
#

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

normal lichen
#

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 ?

simple arch
fleet scaffold
#

Mais oui

normal lichen
#

merci je vais regarder a sa ^^

normal lichen
#

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())
        })
dry sleet
#
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 ?

normal lichen
dry sleet
#

ta variable "bot" doit bien être une instance de "Client"

normal lichen
#

oui c'est une instance de client

dry sleet
#

montre moi où tu as déclaré "bot" stp

normal lichen
#

bot il arrive dans mon module ^^

dry sleet
#
const Discord = require('discord.js');
const bot = new Discord.Client();
#

Il est bien déclaré comme ça ?

normal lichen
#

il est declarer en client

dry sleet
#

au tout début de ta fonction fais un log simple

#

par exemple

#

console.log(bot.user.username)

#

juste pour vérifier ton instance

normal lichen
#

je fait sa

keen narwhal
#

j'essaye d'enrengistre la command et a l'execusion sa me fait sa

dry sleet
normal lichen
dry sleet
normal lichen
#

oui x)

#

mais j'arrive pas avec le fait de ban sur tout les serveurs ou le bot est present ^^

dry sleet
#

le bot a les perms de ban sur tous ces serveurs ?

normal lichen
#

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)

simple arch
#

ouai verif qu'il est présent sur le serv avant de ban, ça va ptet crash sinon

dry sleet
# normal lichen (le membre est present sur 3 des 4 discord)

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}`);
        }
    });
});
normal lichen
normal lichen
#

sa me dit que themember.has n'est pas une fonction ^^

drowsy ocean
#

Tu travail avec quelle version de discord js ?

dry sleet
# normal lichen sa me dit que themember.has n'est pas une fonction ^^
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 ?

normal lichen
dry sleet
#

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}`);
        }
    });
normal lichen
#

j'essaye sa ^^

#

oh sa fonctionne presque !

dry sleet
#

on va y arriver 😂

normal lichen
#

sa ma mit sa

#

normalement sa aurais du le banir de 2 et mettre qu'il a pas ete trouver pour les 2 autres ^^

dry sleet
#

tu es certain qu'il est sur les autres ?

normal lichen
#

oui ^^

#

il est sur 2 des 4 serveur, le principal et un secondaire ^^

#

il est sur 3 serveur sur 4 meme

dry sleet
#

Je t'avoue que je ne sais pas trop, tu as bien vérifié les id des guilds ?

normal lichen
#

oui ils sont auto 😅

#

je vais regarder, merci beaucoup pour votre aide ^^

dry sleet
normal lichen
#

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

drowsy ocean
normal lichen
#

parce que oui mon code est split en différent handler (command, event, components)

drowsy ocean
#

Utilisé un ShardingManager pour que ton bot se réplique en fonction du nombre de serveur lié au bot

normal lichen
#

ahh non j'ai pas sa

#

je vais regarder comment sa se fait

drowsy ocean
#

D'acc ça aurais pu etre une raison pour laquelle ça ne marchais pas

#

T'es pas obligé d'en utilisé un

normal lichen
#

il en faut un du coup ou pas ?

#

parce que le bot est bien fonctionnel sur tout les serveurs

drowsy ocean
#

Pas si ton bot est sur moins de 2000 -2500 serveurs

normal lichen
#

ah bah oui il va etre sur 20 serveurs j'ai de la marge x)

drowsy ocean
#

Oui xD

normal lichen
#

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

drowsy ocean
#

Tu es dispo stv on regle ça ensemble ?

#

@normal lichen

normal lichen
#

euh oui mais rapidement ^^

drowsy ocean
shut tide
#

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 !

drowsy ocean
shut tide
past nimbus
#

Test/demo.txt

#

Car tu le lances depuis le dossier pareil

drowsy ocean
#

Tu devrais regarder des tuto sur youtube concernant nodejs

shut tide
shut tide
keen narwhal
#

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é 😀

tidal tusk
#

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 😅

drowsy ocean
#

Tu n'exporte pas le .bot

tidal tusk
#

non c’est bon

#

je devais retirer ```js

bot.on("ready", () => {
console.log(${bot.user.tag} est en ligne !)

#

merci comme même

drowsy ocean
tidal tusk
drowsy ocean
tidal tusk
gilded moat
#

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

glass cargo
gilded moat
#

des commandes de réponses,embed avec un prefix +

drowsy ocean
gilded moat
#

😐

drowsy ocean
# gilded moat 😐

Pourquoi demander alors qu'une simple recherche google te donne la réponse

gilded moat
#

bah jsp je comprend quand meme rien avec les tutos

drowsy ocean
gilded moat
drowsy ocean
gilded moat
drowsy ocean
gilded moat
#

ok merci

foggy wasp
open python
#

Il faut regarder du côté des modules

#

@foggy wasp

foggy wasp
dry sleet
#
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 ?

foggy wasp
foggy wasp
foggy wasp
#

parce que quand j'essaie sa marche toujours pas

dry sleet
#

Quel est ton message d'erreur ?

foggy wasp
#

la variable est pas défini

dry sleet
#

Tu peux me montrer la partie du code qui enregistre la variable et celle qui l'affiche stp ?

foggy wasp
#

Euh ouais mais je peut pas tout de suite je mange mais dans 5 / 10 minutes

stark forge
#

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] });
    },
};

dry sleet
foggy wasp
#

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);

solid garnet
#

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 ❤️

dry sleet
#

@solid garnet

#

Le problème ici c'est l'utilisation de la fonction prompt()

#

Cette fonction va toujours renvoyer une string

solid garnet
#

ok je vois

#

Je pensais à un let note = Number(prompt("la phrase"))

dry sleet
#
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

solid garnet
#

Wow, c'est super gentil merci

dry sleet
#

j'ai ajouté une condition à la fin pour éviter de calculer la moyenne sur un tableau vide

solid garnet
#

parfait merci beaucoup !

dry sleet
#

Pas de soucis 👍

simple arch
#

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

stark forge
#

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] });
    },
}; ```
stark forge
#

oui attend

keen narwhal
#

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

stark forge
drowsy ocean
#

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"

keen narwhal
#

Il veux récupérer un argument je crois

#

Donc message.mentions.users.first()

drowsy ocean
keen narwhal
#

Et si en effet tu veux récupérer l’auteur du message c’est message.author

drowsy ocean
#

donc member est censé représenté un membre

keen narwhal
keen narwhal
#

Et users est un GuildMember

#

On est pas en typescript pas besoin de le typée

drowsy ocean
#

J'ai jamais parlé de typé

keen narwhal
#

Du coup tu as l’erreur @stark forge ?

drowsy ocean
keen narwhal
#

Il veut récupérer un utilisateur mentionner

#

Pour récupérer ses infos

stark forge
keen narwhal
#

Non

#

montre l’erreur déjà

drowsy ocean
keen narwhal
#

ou une personne que tu mentionne ?

stark forge
keen narwhal
#

Voilà

drowsy ocean
#

Ah ok

keen narwhal
#

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

stark forge
keen narwhal
#

Oui un truc comme ça

#

Mentions avec un s

drowsy ocean
#

message.mentions.members.first()

keen narwhal
#

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

drowsy ocean
#

Et pas besoin du await normalement

keen narwhal
#

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

stark forge
#

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: [] }
  }
}
keen narwhal
#

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

stark forge
#

ça marche, merci bcp !

glass cargo
#

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;
}
drowsy ocean
keen narwhal
glass cargo
#
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;
                    }
                }
            })
drowsy ocean
glass cargo
#

là tu devrais mieux comprendre x)

drowsy ocean
#

J'ai pas fait gaffe

glass cargo
#

tkt

stark forge
glass cargo
drowsy ocean
glass cargo
#

mrc

dry sleet
#
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 ?

glass cargo
#

je vais tenter ça

#

mais ça m'étonnerai

#

le spam de la console en plus x)

drowsy ocean
#

Désolé je vois pas ce qui cloche goodenough

dry sleet
glass cargo
#

@dry sleet

dry sleet
#

@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

drowsy ocean
#

Je pense pas que ce soit worth

glass cargo
#

Euh...

#

Ben jpp

#

Sinon ça recommence toutes les questions...

dry sleet
#

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

floral bolt
#

Je peux avoir un resumé du probleme ?

glass cargo
floral bolt
#

tu peux montrer tous le code je comprend pas comment ca marche

#

Enfin comment tu te sers de question ?

glass cargo
#

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().

floral bolt
#

Apres il me semble que dans les prompt style npm ect il repose juste la question

glass cargo
#

Je peux encore écrire, sauf que jpp effacer le NaN

floral bolt
#

tu peux reposer la question ?

glass cargo
#

Euh là, nop

#

J’ai pas accès à mon pc

floral bolt
dry sleet
floral bolt
#

C'est que de base c'est pas possible

#

mais je comprend pas trop a quoi ca sers enfaite

glass cargo
#

Ah ouais

#

Pas con l’idée du filtre x)

#

Même si je vois pas comment il clear...

dry sleet
#

Pourquoi tu as besoin de Inquirer.js en particulier ?

#

Il n'y a pas moyen d'utiliser autre chose ?

glass cargo
#

Aucuns pb à utiliser autre chose x)

#

Simplement, j’ai look comment smaug avait fait pour Sheweny et voilà x)

floral bolt
glass cargo
#

Et le schéma du fichier de configuration à compléter se situerait sur le repo en question 👀

true mortar
#

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

keen narwhal
#

Bonjour j'ai un problème avec mon bot

queen ocean
keen narwhal
#

je les installer

#

marche toujour pas

#

je suis aller dans mon cmd puis j'ai mis npm i discord.js

queen ocean
keen narwhal
#

ah ouii

#

bas comment je fait pour le mettre dans le dossier

#

basque la j'ai pas de dossier pour les modules ?

#

@queen ocean

queen ocean
#

Et tape npm i

queen ocean
#

Ça viens d’où ça ?

keen narwhal
#

je clique 2 fois puis je fait npm i?

keen narwhal
#

tu ma dit d'ouvrir un cmd dedans

queen ocean
#

Oui ouvrir un terminal, pas de créer un fichier bat mdr

keen narwhal
#

jvais sur visual studio code ?

#

pour le terminal

queen ocean
#

Comme tu veux

keen narwhal
#

je suis dans le terminal

#

et j'écrit npm i

queen ocean
#

yep

keen narwhal
#

ah tu gère

#

merci mec

keen narwhal
# queen ocean yep

dernière question quand ton bot répond pas a t commande c quoi le problème