#javascript-typescript

1 messages · Page 101 of 1

normal lichen
#

pour les ${...} j'ai fait par deduction, etes vous sur que ce que je demande est correcte ? ^^

dire latch
#

Yes, essaye comme j'ai mis

#

Et ta tables, c'est bien membres ?

past nimbus
#

Le concaténation n'est pas bien dans une requête SQL mais bon

normal lichen
#

oui la table est la bonne

dire latch
#

La quoi ? @past nimbus

past nimbus
#

type de ta colonne qui est pas bon

normal lichen
#

la concatenation ne pose aucun probleme, j'en met toujour dans mes requete html php ^^

past nimbus
past nimbus
#

C'est une faille SQL

normal lichen
#

je suis en varchar 255 pour ma range de id et username

past nimbus
#

Sans échappement

past nimbus
#

C'est pas pour rien qu'il y a des façon d'insérer des variables, en général on ajoute pas des méthodes en plus juste pour faire joli

#

Enfin bref

normal lichen
#

tu veut dire stocker dans des variable epuis stocker les variable dans la base ?

past nimbus
#

Si demain mon pseudo est une requête SQL, tu vas concaténé ça dans ta requête, je peux détruire ta db

#

littéralement

#

C('est de l'injection SQL

normal lichen
#

non tu ne peut pas la detruire le pdo et autre est fait pour ca et ton pseudo ne sera pas considéré comme une imbrication de requête

past nimbus
normal lichen
#

l'imbrication de requete est dans le where, en aucun cas l'imbrication ne peut pas etre utilisé dans de l'injection

dire latch
#

Va s'y, avec la ligne, tu fais comment ?

normal lichen
#

sa fonctionne je vous remercie

#

sa insere dans ma base de donnée

dire latch
#

Dr @normal lichen

normal lichen
#

perso je suis en formation de dev et j'ai toujours concaténé, mes profs m'ont toujours dit de faire comme ca et je n'ai jamais eut de problème

queen ocean
#

Molo molai ici

normal lichen
dire latch
#

On était calme 😦 @queen ocean

queen ocean
past nimbus
queen ocean
dire latch
#

Héhé

oak turret
#

db.query("INSERT INTO membres(id_user, username) VALUES(?,?)", [member.user.id, member.user.username], function(err) {if (err) throw err})

#

ça évitera les injections sql, ta requête verra juste ?,?

#

aucune donnée pourra flop

normal lichen
#

merci ^^

oak turret
#

avec plaisir, si t’as des questions hésite pas à nous ping ^^

#

et en php c’est sensiblement la même chose avec les requêtes préparées

normal lichen
#

je decouvre les bots discord pour l'instant mdrr, c'est mon tout premier bot celui la xd

oak turret
#

aucun soucis ahah!

normal lichen
#

php je connais, j'en fait depuis des mois x)

#

mais pour de l'html

oak turret
#

nice alors, je te le dis juste ahah ^^

#

c’est plus sensible niveau php tout de même

normal lichen
#

oui pas de soucis, je connais pas tout de toute facon et ce discord m'aide enormement x)

oak turret
#

si on peut t’aider, te donner des conseils etc c’est avec plaisir on est passés par là aussi

normal lichen
#

je vous remercie, je vous laisse, mille fois merci de votre aide et bonne soirée a vous

oak turret
#

avec plaisir, hésite pas à nous ping 👌

dire latch
#

@oak turretParle français !

oak turret
#

kezako oiseau_pas_content

dire latch
#

Kezako ?

oak turret
#

pourquoi tu dis ça ?

#

et #general

dire latch
#

Au moins, tu dis les choses

misty parcel
#

Bonjour c'est quoi la différence entre select menu et context menu svp ?

neat lintel
#

un context-menu apparait avec un clique-droit sur un message ou une personne

#

un select-menu est un menu déroulant

misty parcel
#

Oh c'est possible de faire ça damn je savais pas

#

trop bien discord

neat lintel
#

Les context-menu ne sont actuellement pas pris en charge sur mobile

cyan iron
#

Oui malheureusement

#

Tu peux les faire sur les messages ou les utilisateurs. Ce que je te conseille c'est de faire des raccourcis de commandes déjà existantes

neat lintel
#

Ca arrivera surement quand ils auront finis de réécrire l'app android

cyan iron
#

Que les utilisateurs mobiles puissent les utiliser

misty parcel
#

re commant je met des field cote à cote dans un message embed please ?

neat lintel
#

mets une option inline

bold sparrow
#

Ça dépend si tu use addField ou addFields

neat lintel
#

mets une option inline

bold sparrow
#

Tu as la props inline

#

Ça dépend si tu use addField ou addFields

#

Ça dépend si tu use addField ou addFields

ashen rapids
oak turret
#

ça dépend si c’est un addField ou addFields

#

addField c’est .addField(name, value, true) ou .addFields({name: "", value: "", inline:true})

bold sparrow
#

A 4 pour aider sur un inline, yes

oak turret
#

au moins t’auras eu des réponses harold

tacit shore
oak turret
#

non

#

si y en a plusieurs y aura juste plusieurs {} à la suite

misty parcel
#

merci

bold sparrow
sharp grail
#

thanks !

lost arrow
#

comments on fait pour que notre bot envoi un lien est le suprime du fichiert qui contient des lien?

lost arrow
lost arrow
ashen rapids
#

Nope

lost arrow
#

ah ok

#

bon en gros j'aimerai coder mon bot pour que il nous donne un lien nitro par rapport a un fichier qui a plusieurs lien et j'aimerai que le bot une fois que le lien serai utilisé le suprime puis en prend un autre au azar @ashen rapids

ashen rapids
#

Haaaa

#

Mais un bot peut pas savoir si un lien nitro est dispo ou pas

#

A moins de faire un GET dessus je sais pas, à tester

misty parcel
#

Re bonjour comment on crée un salon vocal please ? J'ai essayé ça

interaction.guild.channels.create(`${interaction.user.username}`, {
                parent: '938861157169627246',
                type: 'voice',
            })
#

Sauf que ça n'a pas marché

desert riverBOT
cyan iron
#

Pour les types de channels myman

cyan iron
#

Donc dans ton cas c'est GUILD_VOICE

#

En même temps

sharp grail
misty parcel
#

ça marche

#

C'est bizzare car quand j'avais fais ctrl + espace il ne m'avait proposé que comme instruction GUILD_STORE

misty parcel
#

Salut comment on dit "ou..." en javasript déjà ? J'oublie tout kappa

neat lintel
#

|| ou ??

misty parcel
#

d'accord merci

neat lintel
#

sachant que la diff entre les 2 et que ?? renverra son opérande de droite si l'opérande de gauche est null ou undefined. Ca peut etre une chaine vide, la valeur 0 ou la valeur false contrairement a ||

misty parcel
#

interessant à savoir, merci en tout cas

misty parcel
#

Bonjour j'ai un petit problème j'essaye de get la réponse des membres de mon serveur lorsqu'ils font une SLASH_COMMAND, le problème c'est que ça me renvoie [Object Object], voici mon code

const pseudo = new SlashCommandBuilder()
    .setName('pseudo')
    .setDescription('Indiquer son pseudo épic')
    .addStringOption(string => string
        .setName('nom')
        .setDescription('Votre pseudo épic')
        .setRequired(true))
let name = interaction.options.get("nom")
            interaction.reply({
                content: `Pseudo épic : ${name}\nQuel est ton rank 1s ?`,
                components: [rank1s]
#

Et voici le résultat

full scaffold
#

Fait un console.log de name avec le reply et montre le résultat

misty parcel
#

Ah non c'est bon excusez moi, il fallait mettre interaction.options.getString et pas juste get

full scaffold
#

ok

copper pagoda
#

Bonjour, j'ai un petit problème que je n'avais pas eu au par avant avec les commandes slash.

J'ai fait une commande rpc et quand je l'a fais une fois et que je veux la refaire ça me met que l'application de répond pas alors que le bot est en ligne et il n'y a pas d'erreur.

J'ai essayé de chercher l'erreur en me disant que ça pourrait venir des collectors mais je n'ai pas réussi à y résoudre.

cyan iron
copper pagoda
#

Oki merci Wailrone.

cyan iron
#

Et si ça met thinking à l'infini c'est que ton code à un problème, et je pense que ça va être le cas car c'est bizarre qu'il mette autant de temps à répondre

#

Mais malheureusement je ne peux pas regarder ton code à l'heure actuelle

copper pagoda
#

Ah oki

#

Je test et puis je vais voir.

cyan iron
#

Ok myman

copper pagoda
#

J'ai test ça ne mets pas le thinking à l'infini mais ça ne répond toujours pas alors que le bot est bien en ligne.

misty parcel
#

Les gars je bloque depuis tout à l'heure, comment on ajout eun role à qqn svp ? 😭

#

J'ai essayé interaction.user.roles.add(...) mais ça marche pas

slim anvil
misty parcel
#

mais non mdrr

#

en js

hazy mirage
misty parcel
#

d'accord merci

#

ça ne marche pas 😦 @hazy mirage

#

il n'y a pas de message d'erreur

#

ok j'ai trouvé l'erreur ptdr

#

que je suis bête

normal lichen
#

Bonjour, j'ai un soucis avec mon bot discord, il est heberger sur un hebergeur que je paye, mais il ce met hors ligne tout seul tout les jours a 6h du matin ( avec comme raison serveur crash) mais des je le redemarre il na aucune erreur et reste on et ce recoupe le lendemain a 6h, quelqu'un aurais t'il une solution ?

oak turret
#

c’est quoi ton crash

copper pagoda
normal lichen
#

ils m'ont dit que non ^^

copper pagoda
lone flax
#

Yop, j'ai fais un bot pour quelqu'un lui permettant de faire un carousel d'images avec des boutons Discord.
J'ai utilisé #sheweny-js et ça a marché sans souci.

Le souci, c'est que, pour une raison totalement incompréhensible, l'interaction ne marche qu'une fois sur deux.
Genre ça n'a vraiment aucun sens, ça me semble impossible que cela provienne de mon code vu que ça marche la deuxième fois sans qu'aucune modification ne soit amenée aux boutons.

L'interaction n'est même pas appelée par Sheweny, j'ai beau faire des logs au départ, rien, donc ça vient vraiment de l'API qui ne renvoie pas la réponse.
Quelqu'un aurait une idée de la source de ce problème ? Merci !

#

PS: ce n'est pas une question de cooldown, j'ai beau attendre 30 secondes avant la prochaine interaction, le bug restera présent

sharp grail
#

Mmh

#

Ca provient certainement de ton code

#

Néanmoins pour t'aider à localiser le problème, essaye par exemple l'event api request ou api response ? 🤔

lone flax
#

Si ça provient de mon code, comment tu expliques que cela fonctionne au deuxième appel sans qu'aucun changement ne soit effectué sur le bouton ? 👀

#

C'est ça qui m'est incompréhensible

sharp grail
lone flax
#

Ca vient peut-être du framework wasiedFace

sharp grail
#

Mais t'as pas d'erreur ?

lone flax
#

Aucune

#

Zero

#

Nada

#

J'ai vraiment du mal à comprendre à ce niveau

#

En plus, le délai est global, ce n'est pas unique à un joueur, donc c'est encore plus bizarre

#

C'est pas comme si c'était une fois qu'un joueur cliquait on faisait un truc ou je ne sais quoi, non, c'est vraiment une fois sur deux il décide de marcher

sharp grail
#

Sinon ça veut dire quelque part dans ton code pour x raisons tu ne réponds pas à l'interaction

lone flax
sharp grail
#

Kesk

lone flax
#

Donc même le callback de mon bouton n'est pas appelé

sharp grail
#

Et pour test

#

Est ce que l'event est emitted au niveau de discord.js

lone flax
#

Je t'avoue que j'ai pas encore été chercher aussi loin, je me demandais si quelqu'un n'avait pas eu ce problème avec l'API

#

En fait ça me brainfuck à 100% que cela ne fonctionne qu'une fois sur 2 si je fais la même action, que le message/les boutons ne sont pas modifiés entre temps.
C'est logiquement nécessairement au-dessus de moi, soit le framework soit l'API

sharp grail
#

C'est logique, en soit pas sur, après si tu log au début et que tu ne reçois rien quand ça fail c'est que le problème ne vient pas de toi

#

Le problème peut clairement être du à discord.js ou sheweny pour l'api de discord je doute un peu mais c'est pas nécessairement à exlcure

#

Ce que tu peux essayer de faire c'est de voir si l'event est trigger dans discord.js (interactionCreate) 👀

lone flax
#

Ouais non je viens de re-vérifier et cela ne se log que lorsque l'interaction marche (1 fois sur 2)

#

Yep je vais test pour voir

#

Alors

#

Donc je viens de tester

#

Et l'interaction fonctionne bien côté discord.js

#

Donc ça provient probablement du framework

sharp grail
#

Ah 🤔

#

Oui

lone flax
#

Je vais juste voir niveau customId si c'est okey

#

Je veux pas accuser Smaug pour rien hihi

sharp grail
#

Ouais x)

lone flax
#

Ouais donc

#

Le "I AM CALLED WTF" c'est mon callback sheweny

#

Et le reste c'est le customId de l'interaction

#

Donc là je pense que ça vient du framework

#

@neat lintel tu pourrais peut-être m'aiguiller? 🙂

sharp grail
#

Pourquoi le custom id change ?

lone flax
#

Parce qu'il clique sur un bouton différent

sharp grail
#

Ah x)

lone flax
#

0, 1, 2 c'est l'ID des images

sharp grail
#

Ah dac

lone flax
#

Et pour chopper mon interaction ici j'utilise un regex

#

Mais du coup yes je vais attendre que Smaug me réponde avant d'investiger plus loin
Edit: Hésite pas à me mention Smaug si jamais tu as une update là-dessus

sharp grail
#

Je suppose qu'il y a une erreur dans son match de reg xp 🤔, mais oui il saura sans doute mieux t'aider à résoudre le problème x)

neat lintel
#

@lone flax Salut, ça ressemble à un deferReply qui déconne, si tu écoutes l'évent interactionCreate ou interactionButtonCreate vérifie que tu as pas mis de defer reply la bas. Sinon tu peux envoyer un code me permettant de reproduire l'erreur sur mon PC pour que j'essayes ?

lone flax
#

Et je n'écoute pas interactionCreate j'utilise à 100% ton handler

oak turret
#

t’as toujours des problèmes wtf toi

neat lintel
#

D'ac, tu aurais le code que je puisse essayer ?

lone flax
#

Yep

#

Le code du bouton ?

#

Attends je te send tout le truc au pire

neat lintel
#

Oui ça sera plus simple

lone flax
#

Je t'ai send ça en privé

bold sparrow
normal lichen
#

Bonjour, quelqu'un pourrait m'aider pour la mise en forme d'un embed s'il vous plait ?

normal lichen
#

j'aimerais un embed de cette mise en forme afin de faire une liste mais je n'arrive pas a la faire, je ne maitrise pas encore du tout le javascript pour les bot discord ^^

neat lintel
#

pour le mot en haut tu peux faire un setTitle et sinon fais un gros setDescription avec du markdown

normal lichen
#

oui c'est pour le setDesceiption le problème, je sais pas comment l'utiliser le markdown ^^

neat lintel
#
**Gras**
__Souligné__
*Italique*
~~Baré~~
> Citation
`code sur une seule ligne`
||spoiler||
neat lintel
#

Une syntaxe qui permet de mettre en forme du texte

#

mais discord en a une version particulière

normal lichen
#

d'accord je vais me renseigner sur son utilisation, je vous remercie ^^

#

et pour les retour a la ligne c quoi qu'il faut tutilisé stp ? c'est ceci code sur une seule ligne ?

neat lintel
#

\n

normal lichen
#

je vous remercie ^^

#

je met ca au moment ou je veut revenir a la ligne, equivalent du br html ? ^^

neat lintel
#

oui c'est ca

#

tu peux en mettre plusieurs a la suite si tu veux plusieurs retours

normal lichen
#

je vous remercie de votre aide, je vais regarder a cela ^^

neat lintel
#

Cependant mettre tous le code sur une seul ligne peut ne pas être très visuel lors du développement de ton bot donc si a la place de mettre des "texte" ou des 'texte' tu mets des backticks (`texte`) alors tu peux faire des retours a la ligne dans ton code et l'indentation sera conservée

dire latch
#

Hey, j'ai cet erreur et je ne sais pas pourquoi 😦

#

Voici mon code

#

Les embeds sont aux dessus

#

Donc, quand j'utilise mes boutons, tout fonctionnent bien, mais à un moment, sa bug et j'ai l'erreur au dessus pour je ne sais quels raisons 😦

normal lichen
#
Client.on("messageCreate", message => {
    if(message.author.bot) return;

    message.channels.send({embeds: [roleje], attachement: [rolej]});
    message.channels.send({embeds: [roleno], attachement: [rolen]});
})
#

j'ai une erreur au moment d'envoyer les embeds, quelqu'un pourrait m'aider ?

grave bronze
#

Donne ton erreur

#

Stp

#

Ah mais c’est pas attachment ?

#

Tu as mit un e

#

C’est ça l’erreur

#

Donc met attachment

dire latch
#

C'est message.channel.send @normal lichen

grave bronze
#

Ah

#

J’ai pas fait attention

normal lichen
#

je vous remercie, j'ai mit un s j'ai pas vue ^^

#

c'est l'envoie des attachement qui pose problème, je ne comprend pas pk

dire latch
#

Change par files: [rolej] voir @normal lichen

normal lichen
#

non toujours pas ^^ /home/container/index.js:147
message.channel.send({embeds: [roleje], files: [rolej]});
^
ReferenceError: rolej is not defined
at Client.<anonymous> (/home/container/index.js:147:53)
at Client.emit (node:events:394:28)
at MessageCreateAction.handle (/home/container/node_modules/discord.js/src/client/actions/MessageCreate.js:26:14)
at Object.module.exports [as MESSAGE_CREATE] (/home/container/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (/home/container/node_modules/discord.js/src/client/websocket/WebSocketManager.js:351:31)
at WebSocketShard.onPacket (/home/container/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
at WebSocketShard.onMessage (/home/container/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
at WebSocket.onMessage (/home/container/node_modules/ws/lib/event-target.js:199:18)
at WebSocket.emit (node:events:394:28)
at Receiver.receiverOnMessage (/home/container/node_modules/ws/lib/websocket.js:1098:20)
[MERCURE] Server marked as OFF

dire latch
#

Ou attachment: [rolej] 🙂

normal lichen
#

c'est fait lol et toujour pas... je comprend vraiment pas.. ca fonctionne d'habitude ^^

dire latch
#

Cquoi le rolej ?

normal lichen
#

c un selectmenu ^^

dire latch
#

components dans ce cas 🙂

#

@normal lichenGood ?

normal lichen
#

oui je vous remercie ^^

dire latch
#

Dr

dire latch
ashen rapids
dire latch
#

Tu as mon code plus haut, si jamais 🙂

#

@ashen rapids

sharp grail
dire latch
#

Ok

copper pagoda
#

Bonjour, j'ai un petit problème que je n'avais pas eu au par avant avec les commandes slash.

J'ai fait une commande rpc et quand je l'a fais une fois et que je veux la refaire ça me met que l'application de répond pas alors que le bot est en ligne et il n'y a pas d'erreur.

J'ai essayé de chercher l'erreur en me disant que ça pourrait venir des collectors mais je n'ai pas réussi à y résoudre.

https://media.discordapp.net/attachments/617677968474636298/946790923747065896/unknown.png?width=280&height=169

main mesa
#

Yo les bgs, comment vous allez. J'ai un soucis avec un link entre ma database (free) monbodb et mon bot discord jsV13. J'ai bien fais le lien avec la base, tout est bon mais quand je start mon bot, cette erreur s'affiche (regardez le screen)

lone flax
lone flax
#

Est-ce que là où ton bot est host, le port 27017 en TCP est ouvert sur le firewall ?

oak turret
main mesa
#

Et en gros j’ai fais une liaison à une database et voilà

main mesa
#

Parce que en plus, j’ai regardé partout dans les forums, rien de m’aide. Et ça m’embête car sans régler ce problème je ne peux plus avancer

slim anvil
# main mesa Parce que en plus, j’ai regardé partout dans les forums, rien de m’aide. Et ça m...
#

Essaye ce qu’il dise concernant le lien de connexion

#

et vérifie que tu autorises aussi ton ip

main mesa
#

Je remplace ou pour mettre le nom de ma base

main mesa
main mesa
#

j'ai testé avec cette ligne de code là :

main mesa
#

j'ai réussi, merci les gens

hollow quail
#

Bonjour, quelqu'un peux m'envoyer un bon site avec de la doc js ?

past nimbus
misty parcel
#

bonjour est ce que on peut envoyer des gif dans un .setImagez ?

bold sparrow
nova current
#
module.exports = {
    run: async(client, message) => {
        await message.guild.members.fetch();
        if (!message.author || !message.member || !message.guild || !message.guild.id) return;
        if (message.author.bot) return; 

        const [command, ...args] = message.content.slice(client.config.prefix.length).split(" ");
        const cmd = client.commands.get(client.aliases.get(command) || command);
        if (!cmd) return;
        cmd.run(client, message, args);
    },
    name: "messageCreate"
}
#

j'ai un petit problème comment on fais pour ajouter le cooldoun sur ce code je sais pas comment on fais
merci pour ce qui m'aiderons
🥺

past nimbus
#

cooldoun ?

nova current
past nimbus
#

Par cooldown tu entend quoi ?

nova current
#

mettre du temps apres chaque commande

#

comme ici

#

10

#

seconde

past nimbus
#

Bah tu stockes la date du dernier lancement, et tu ajoutes une condition

nova current
#

pour l'instant je l'ai mis la

past nimbus
#

Et donc c'est quoi le soucis ?

nova current
#

il faut pas le mettre dans messageCreate comme aliases ?

past nimbus
#

Tu comprends ce que tu fais ou pas du tout, honnêtement ?

nova current
past nimbus
#

bah dans ta collection tu stockes par exemple (c'est un exemple très simple)
key: "messageCreate" value: la date du dernier call
Quand tu as un nouveau call tu prend la key en question, tu récup la valeur et tu check si now > dernier call + x seconde

nova current
#

ohhh je vois merciii

normal lichen
#

Bonjour, j'aimerais dans ma base de donnée que la ligne correspondant au membre sois supprimer lorsqu'il quitte le serveur mais ma requete ne fonctionne pas, quelqu'un pourrait m'aider ?
Voici la requete
db.query(DELETE FROM membres where id_users = "${member.user.id}" );

past nimbus
#

Pas de concaténation :x
tu sers sur du nom de ta colonne ? id_users semble bizarre comme nomage

normal lichen
#

lol j'ai l'habitude avec la concaténation mais je vais la retirer mdrr, oui je me sert de l'id-user car il est fixe, a l'inverse un membre peut changer de pseudo donc si il rejoin avec un pseudo et quitte avec un autre la base de données va être perdu ^^

#

je n'ai pas l'habitude en js sans la concatenation, mais cela fonctionnerais ?
var user_id = ${member.user.id};
db.query(DELETE FROM membres where id_users = user_id );

past nimbus
#

Ce que je veux dire cest le "s" à la fin du nom de ta colonne

#

Non, check la doc du package de mysql

normal lichen
#

ah oui j'en suis sur ^^

#

d'accord je vais essayer d'y regarder, parce que mettre un "?" comme pour la requete d'insertion me semble innaproprié non ? ^^

past nimbus
#

D'acc, tu dois pas mettre le nom de la table en chaine de caractères ?

#

Bah non, le ? sert simplement à récup un champ de ton array

normal lichen
#

je vais chercher dans la doc mais la concatenation a mon sens ne pose aucun problème dans cette requête car aucune insertion n'est effectuer et que la définition de ma colonne est un int et non un varchar, donc ca ne peut pas être une requête x)

past nimbus
#

Ta deuxième réflexion est totalement fausse par contre
Autant la première on pourrait estimer que oui, sauf qu'en fait non. Sauf si tu es sur à 100% que tu aura toujours une valeur fiable et validé, alors la concaténation est à bannir
Et récupérer une valeur du package discord n'est pas une information fiable et validé

Ce qui est 100% secure c'est ce que tu maitrises, à savoir, tes data, ton code et ta logique métier

normal lichen
#

D'accord je vais chercher pour plu concaténé mes requête, mais étant plus dans le php je concaténé toujours mdrr, je commence seulement a passer par des classes et autres^^

past nimbus
#

Même en PHP il faut escape les caractères sinon tu as des failles

normal lichen
#

ya moyen d'exploser la cellule de la bd a afficher ? du style je veut afficher que une partie de la date alors je selectionne les caractéres que je souhaite afficher ? ^^

past nimbus
#

Bah tu peux typer ta colonne pour n'avoir que l'année, le jour et le mois par exemple

normal lichen
#

yep c'est ce que je veut mdrr, parce que la sa m'affiche tout, le fuseau horraire et autre x) je te remercie de ton aide ^^

slim anvil
#

après tu peux aussi juste formater la date avec ce que tu as en base

main mesa
#

yo les gars, vous avez peut être une idée de comment lier un système de prix du btc à un bot discord ? Style à chaque fois qu'on fais une commande (exemple slash commande), le prix actuel du btc s'affiche

past nimbus
#

Tu ask simplement une API

main mesa
past nimbus
#

On peut parler ici non ? Ou bien c'est privé ?

main mesa
past nimbus
#

On peut faire un thread

main mesa
normal lichen
#

quand on fait pour que son bot créer un channel textuelle ont met "text" mais pour qu'il céer un salon vocal on met quoi ? ^^

keen narwhal
#

quelqu’un aurait la commande mpall pour un bot dc j’ai perdu le dossier

main mesa
#

https://srcb.in/71yazXqKcj dans ce code, je comprend pas ce qu'est le probleme, quand je start, ils me disent que le .get (après axios) ne peut pas être lu, vous savez d'où ça viens ?

oak turret
#

log ton reponse pour voir

oak turret
keen narwhal
oak turret
keen narwhal
oak turret
# keen narwhal yes

fais un tour sur Sheweny c’est simple et bien foutu puis dev par un membre du discord (Smaug), et tu n’as plus qu’à t’y remettre

keen narwhal
#

merci de l’aide alors !

oak turret
#

👌

dire latch
#

@oak turret attends, tu viens d'aider un mec pour une commande mpall là 🤔

oak turret
#

mpall c’est pas forcément à but malveillant hein, et dans le pire des cas il va se faire rateLimit et voilà tout

dire latch
#

C'est interdit surtout 🤔

past nimbus
#

🤔

cyan iron
oak turret
#

c’est moi la loi harold

normal lichen
#

Bonjour, j'aimerais que quand un bouton est cliquer mon bot créer un channel vocal, j'utilise ceci mais je ne trouve pas qu'elle est le type a mettre pour créer un salon vocal

            var vocal = interaction.message.guild.channels.create(`🔓・Vocal de ${interaction.user.username} `, {
                type: ' ?? ',
                parent: "",
                permissionOverwrites: [{
neat lintel
#

GUILD_VOICE

#

Et tu devrais éviter var, let et const sont maintenant la norme en javascript, var à des problèmes de scope

past nimbus
#

C'est pas des problèmes, c'est un souhait du langage, mais oui var est globale

normal lichen
#

ah je savais pas je vais mettre let mtn ^^

#

merci ^^

past nimbus
#

Et const si c'est une constante (pas de changement de valeur au cours de ça vie)

normal lichen
#

ah donc un embed est a mettre en const ?

past nimbus
#

Sauf si tu refais une assignation, alors oui
Toujours const sauf si la variable en question peut changer de valeur dans le temps

normal lichen
#

genre si je veur creer un timer, si ce timer prend +1 chaque seconde alors je le defini en let ?

past nimbus
#

Oui sauf si c'est un objet
Exemple:

let x = 0;
x++;

Ici on utilise let car X va changer

#

Ici pas besoin de let car obj ne change pas, dans le cadre d'un objet, la variable contient en réalité la référence de l'objet, et celle-ci ne change pas dans cette situation

const obj = {
  x: 0;
}
obj.x++
normal lichen
#

oui le deuxieme ne change pas car tu const obj comme un tableau^^

#

obj est un tableau contenant l'élément x et le obj.x signifie que tu prend l'objet x du tableau obj ^^

#

c'est comme en lua si je me trompe pas ^^

past nimbus
#

Non, en JS c'est simplement un obj, par un array associatif
Faire un tableau associatif avec des key string en JS mérite une peine de mort

normal lichen
#

ah bah x)

#

je decouvre le js moi encore la mdrrr et je suis loin de le maitriser xd

past nimbus
#

Yes je te le dis comme ça tu sais
Pour faire un key -> value on utilise une collection ou une map

normal lichen
#

collection je vois map pas trop x)

#

dit il faut utiliser l'attribut string pour que le bot attende une valeur du style "entrer le nom d'utilisateur du membres a ajouter"[...] "Le membre a été ajouter" ?

past nimbus
#

Si c'est relatif à discordjs je peux pas te dire, je m'en sers pas

normal lichen
#

je vais chercher alors, merci ^^

past nimbus
sharp grail
#

Les map sont pas forcément pratique à manipuler

#

Un obj est plus flexible, plus pratique

#

Donc ça dépend de la situation

past nimbus
#

Comment ça pas pratique ?
C'est pas les même contextes d'utilisation à aucun moment j'ai sous entendu ça
J'informais juste qu'un tableau associatif avec des key string est une grosse erreur en JS

Si tu as une liste d'utilistateur tu vas pas stocker dans un objet, c'est pas adéquat, alors qu'un key->value (key: id unique utilisateur) (value: l'objet utilisateur, instance...) sera plus adapté et bien plus performant

sharp grail
#

Oui c'est sur

keen narwhal
#

Bonsoir je voudrais de l’aide ou le début d’une base pour un embed, je veux pas tout car je souhaiterais m’entraîner et me donner tout me faciliterait la chose

lone flax
#

Premier lien

#

Tu as une explication complète de comment marche un embed

keen narwhal
#

je vois que y'a sonic ici

versed thicket
#

Bonjour je cherche des développeurs pour un très gros projet Minecraft me mp urgent . ! {début du projet semaine prochaine} [pour plus d'infos ou pour participer me mp]✓

keen narwhal
#

@oak turret le script que tu m'as send ne marche pas, puis j'ai cru lire que c'était interdit d'mpall ? je ne veux pas être dans l'illégale ^^'

leaden wren
#

Bonsoir, on est bien d'accord que ce code est totalement exploitable non ?

let sql = `INSERT INTO serveurKSEC (guildID, prefix, premium, roleid, status) VALUES (${message.guild.id}, '*', '0', '0', ${ar})`
#

Je me pose la question vu que en PHP c'est totalement exploitable, et là c'est limite pareil

oak turret
#

oui tout à fait

steel igloo
#

c'est pour faire quoi ?

oak turret
#

t’as qu’à mettre des ? et après mettre les valeurs

leaden wren
#

C'est ce que je vais faire, merci

leaden wren
dire latch
#

@oak turretDit moi, en v13, c'est plus message.mentions.members.first() 🤔

oak turret
#

bonne question, je vais check la doc

dire latch
#

Ah ba zuper

oak turret
#

tu l'utilises comment ?

dire latch
#

Ba const user = message.mentions.members.first()

#

J'ai cet erreur

oak turret
#

montre moi ton bout de code

dire latch
#

Ba c'est ça, la suite, ya rien 😂

oak turret
#

essaye déjà const user = await message.mentions.members.first();

#

ah oui attend

#

t'as les intents et partials adéquats ?

dire latch
#

Il autorise pas apparemment 🤔

oak turret
#

t'utilise sheweny ?

dire latch
#

Non

oak turret
# dire latch

ton parse, y a pas un "members" à mettre par hasard ?

#

je connais pas ton handler

#

et les intents t'as quoi ?

dire latch
#

Je tente de mettre members

dire latch
oak turret
#

strange

#

je check un truc

dire latch
#

Ok

oak turret
#

non je vois pas

#

c'est bizarre

dire latch
#

😦

#

Jfais comment ducoups ?

keen narwhal
#

Essaye ```js
let user = message.user === undefined ? (message.mentions.users.first() || bot.users.cache.get(args[0])) : (args._hoistedOptions.length === 0 ? message.user : bot.users.cache.get(args._hoistedOptions[0].value))

dire latch
#

Nope

oak turret
#

je connais pas cette erreur tiens

#

🤔

dire latch
#

Moi non plus mdr

oak turret
#

ton code c'est juste cette let ?

dire latch
#

Yep

oak turret
#

alors là

#

mystère

#

@neat lintel t'aurais une idée toi ?

dire latch
#

Jpeut venir partager mon écran si il faut

keen narwhal
#

@dire latch Ton code marche si l'user est l'auteur ?

let user = message.author;
neat lintel
#

C'est quoi le problème ?

dire latch
neat lintel
#

Tu as essayé de fetch le message ? Car si tu as certaines partials les structures peuvent êtres incomplètes. Mais le truc qui me paraît le plus probable ici c'est que ta variable message ne contient pas un message. Tu as essayé de la log ?

dire latch
#

Sa log bien le message que je met

neat lintel
# dire latch

Et si tu es en V13 tu peux enlever fetchAllMembers ça existe plus

dire latch
#

Yep, jsuis en v13

#

Tu veut que je te montre en vocal ? @neat lintel

neat lintel
#

Je peux pas dsl, et si tu fais un console.log de message.mentions c'est undefined ?

dire latch
neat lintel
#

Ah bah c'est pas undefined alors

#

C'est quoi ton erreur ?

dire latch
oak turret
#

.users.first() du coup

dire latch
#

En utilisant: let user = message.mentions.members.first();

neat lintel
# dire latch Ceci

Pas possible si message.mentions est définie. Ah nn j'étais sur le mauvais screen

oak turret
#

et après tu get le member via l'id

dire latch
#

@oak turret

oak turret
#

avec const userMention = await message.mentions.users.first() ?

dire latch
#

Nope @oak turret

neat lintel
#

Après si ton membre est pas dans le cache il sera pas possible de le récupérer avec message.mentions

#

Ça fetch pas l'api

#

Donc si c'est null alors faut faire un système custom qui va fetch discord

dire latch
#

Ba j'ai pas undefined là

neat lintel
#

members est null

#

Donc l'user est dans le cache mais pas le member

dire latch
#

Ducoups, je dois faire quoi ?

neat lintel
#

Sinon oui passes par l'user avec const user =message.mentions.users.first()

dire latch
#

Fonctionne pas

neat lintel
#

Tu as quelle erreur avec ça ?

dire latch
#

Même erreur avec members

#

Mais users

neat lintel
#

Fais voir ton code stp

dire latch
#

Ba ya que sa 🤔

neat lintel
#

Si tu as log que message.mentions est pas undefined à peut pas valoir une erreur of undefined

dire latch
#

Ok, good, j'avais fais une erreur

keen narwhal
#

yo
on peut maider?
jaimerais set quelque chose dans une db (mongodb)

#

genre par ex +setbot id idd'unbot

#

me mention pour la réponse svp

neat lintel
#

Commences par créer un model et ensuite tu pourras créer une nouvelle instance de ce modèle et utiliser la fonction save pour sauvegarder. @keen narwhal

keen narwhal
#

``const mongoose = require("mongoose");

module.exports = mongoose.model("User", new mongoose.Schema({
id: { type: String },
bots: null,
}));``

#

@neat lintelça c'est bien?

neat lintel
#

C'est un début, faut utiliser la fonction model

keen narwhal
#

oe mai genre je veut une catégorie ID et une Bots

#

genre je veut ajouter un bot a un user

#

avrc une commande

#

jcromprend r a mongo

leaden wren
#

Bonsoir, je suis entrain de développer un bot, et je cherche à faire en sorte de check si un rôle peut être ajouté (en gros, savoir si le bot est au dessus du rôle pour l'ajouter) mais je n'y arrive vraiment pas, comment je peux faire ça ?

oak turret
#

hello, je l'ai déjà fais je te retrouver ça

leaden wren
#

Merci bg

#

Car là je suis entrain de tester des choses très voilà

slim anvil
#

bah déjà le .some ca ne peut pas etre bon

#

le .some renvoie un booléen

oak turret
#

voilà

slim anvil
#

donc tu auras pas de .roles.highest... dedans

oak turret
#
const RoleHighestKickedUser = message.guild.members.cache.get(userToKick.user.id).roles.highest.rawPosition;
const RoleHighestModeratorUser = message.guild.members.cache.get(message.author.id).roles.highest.rawPosition;

et de là tu fais tes vérifs ( en changeant bien sûr les valeurs )

#

pour t'expliquer, je get le rôle le plus haut des deux users, ça me renvoie genre 9 et 2, la rawPosition c'est la position dans tes rôles le premier à le plus haut chiffre/nombre selon ton nombre de rôle et inversement

leaden wren
#

Ahhhh oui d'accord je vois

#

Merci j'vais test ça

oak turret
#

np

leaden wren
#

c'est good merci

oak turret
#

parfait, avec plaisir et good luck 👌

urban stream
#

Hello à tous, j'ai un petit problème sur NuxtJS concernant la page d'erreur!
Je m'explique… j'ai ma page default.vue qui se trouve dans le dossier layouts qui contient le code suivant:

<template>
  <div>
    <Navbar />
    <div class="container">
      <nuxt-child />
    </div>
    <Footer />
  </div>
</template>

J'ai également ma page error.vue qui se trouve dans le même dossier. Celui-ci comporte le code suivant:

<template>
  <div>
    <h1 v-if="error.statusCode === 404">404 Not Found</h1>
    <h1 v-else>An error occured - {{ error.statusCode }}</h1>
  </div>
</template>
<script>
export default {
  props: ["error"],
  layout(context) {
    return "error";
  },
};
</script>```
Le code de base, en somme…

Seulement, lorsque je me rends sur l'URL `https://localhost:3000/jerozjeroj` (qui devrait me rediriger vers ma page d'erreur avec le code `404`), j'ai mes composants `<Navbar />`, mon `container`, et `<Footer />` qui s'affiche, mais pas mon `h1` avec son code d'erreur.

Ça fonctionne lorsque je renomme `default.vue` en `*.vue`, sauf que mes composants ne s'affichent plus… ce qui n'est pas non plus la solution idéale. Que faire?
slim anvil
urban stream
#

Hello, comme dit dans #html-css: Problème résolu!

sharp grail
slim anvil
#

tu as rajouté un chemin absolu dans ton router ?

urban stream
slim anvil
#

Ah bah top

urban stream
#

Par contre… je ne sais pas comment enlever les composants par défaut dans default.vue spécifiquement sur une page en particulier (en l'occurence, je parle de error.vue)…

#

J'aimerais que ma barre de navigation et mon pied de page ne s'affichent pas sur la page d'erreur…

slim anvil
#

Dans ce cas là n'utilise pas ton layout default.vue, mais un autre par exemple

urban stream
#

Pas bête, et dans les pages où un certain layout est requis, je fais

<script>
export default {
layout: 'nom-du-layout'
}
</script>

C'est ça? 🤔

slim anvil
#

exact

urban stream
#

Okay, merci !

slim anvil
#

nuxt 2 du coup ?

urban stream
#

Hum… I guess? 🤷‍♂️

#

Comment je vérifie ça?

#

Ouep, Nuxt 2

slim anvil
#

package.json

urban stream
slim anvil
#

okay, hésite pas a installer composition api si tu veux vraiment explorer et profiter un peu plus de la puissance de vuejs

#

ce n'est pas natif dans nuxt2 je crois

urban stream
#

J'ai vu que Nuxt 3 est sorti, mais j'ai rien compris de cette histoire de bridge

slim anvil
#

Bridge c'est uniquement si tu veux migrer d'un projet Nuxt2 à Nuxt3

urban stream
#

Je vais y jeter un œil ! 👌

#

Ohhh… je vois!

#

C'est intéressant aussi, ça

slim anvil
#

Nuxt3 je pense que c'est un bon gros bébé qui arrive

#

j'en fais un peu actuellement, le fait de pouvoir utiliser nativement la composition api + vitejs derrière, ca rend la chose bcp plus agréable qu'actuellement

urban stream
#

Je me doute bien… je vais essayer de m'y pencher et de comprendre comme tout ça fonctionne!
Je suis actuellement en train de faire mon portfolio, donc l'utilisation d'une API n'est pas nécessaire… mais j'ai un gros projet qui arrive (site de fonds d'écran), j'essaierai ça à ce moment-là! 😀

#

Merci pour le conseil

slim anvil
#

nuxt est très lourd pour ce genre de petit projet

urban stream
#

Oh que oui… 👍

#

Ça a l'air vachement intéressant ViteJS

slim anvil
#

yes derrière c'est Evan You (mr Vue.js) donc tu peux y aller les yeux fermés

urban stream
#

C'est créé par des français? 🤔

slim anvil
#

nop

#

Nuxt oui pour le coup c'est 2 français

urban stream
#

Le nom pourrait faire croire que! 😂

urban stream
#

Fierté française! (en l'occurence, je suis belge…)

slim anvil
#

yes les frères chopins

slim anvil
#

mais là pour le coup non Evan est chinois

#

(il s'appelle pas vraiment Evan non plus btw 😂 )

urban stream
#

C'est bouillant ViteJS !

#

Je vais essayer ça au plus vite

leaden wren
#

Rebonsoir j'aurais un petit problème concernant mon bot discord, quand j'essaye de print

oldPresence.member.presence.status

ça me return "dnd" donc le status "ne pas déranger", sauf qu'il me le fait même quand avant j'étais en mode hors ligne, comment faire pour return le "offline" plutôt que dnd ?

#

Car j'essaye de faire en sorte que si l'user était déconnecté, et qu'il se reconnecte sans custom status ça return

fading glacier
#

oldPresence c'est le status avant qu'il change, donc si avant de passer hors-ligne tu étais en dnd c'est normal qu'il t'affiche ça. Si tu veux le nouveau status prends plutôt newPresence

leaden wren
#

Oui justement, j'essaye de faire en sorte que si le membre était hors ligne et qu'il se reconnecte sans custom status, ça return

#

Donc logiquement c'est old presence

versed thicket
#

Hello je cherche des gens qui s'y connaissent en mods et en serveur pvp faction moddé me mp

fading glacier
lone flax
#

Il y a moyen de compter le nombre de boosts d'un utilisateur avec DiscordJS ?

dire latch
#

Je ne crois pas 🤔

#

Sinon, tu saves chaque boost que l'utilisateur a fais @lone flax

lone flax
#

Il y a un event quand un mec boost ?

dire latch
#

Jsp 🤔 Il me semble

#

Sinon, tu check le message ? Jsp

fading glacier
red torrent
fading glacier
#

Oui aussi

sharp grail
slim anvil
#

le plus précis c'est de le noter avec un crayon sur un bloc note

#
  1. ne faire confiance qu'à soit même KaPOP
sharp grail
#

Baaah

#

Même pas

timid loom
#

Ça me paraît étrange que Discord y ait pas pensé

cyan iron
#

Oui

#

C'est comme le fait de pouvoir différencier les utilisateurs qui ont nitro ou pas

dire latch
#

Yep

cyan iron
#

La seule solution c'est de regarder si le gars a une pdp animée

#

Mais on peut très bien avoir nitro et pas une pdp animée

dire latch
#

Même sans, tu peut avoir nitro

#

J'allai le dire

#

Mdr

sharp grail
#

Après pour ca tu scrap

dire latch
#

Développe 🤔

cyan iron
#

Oui mais non harold

sharp grail
#

😂

cyan iron
#

Avec un token utilisateur on doit pouvoir bien sûr

#

On peut choper une bio avec d'ailleurs

sharp grail
#

Yep

#

D'ailleurs la bio

cyan iron
#

j'ai pas testé wola

sharp grail
dire latch
#

La bio est récupérable après 🤔

cyan iron
#

à moins qu'ils aient update les bougre kapp

dire latch
#

Même sans

#

Tu parles bien du status personnalisé ? @cyan iron

cyan iron
#

Non

#

Si je parlais du statut personnalisé j'aurais dit statut personnalisé

#

Là je parle vraiment de la bio

sharp grail
#

bah après

#

techniquement

#

tu peux savoir si la personne a nitro ou pas

#

juste avec un bot

dire latch
#

Ah nan 🤔 @cyan iron ducoups mdr

sharp grail
cyan iron
#

Oui

dire latch
#

Ils auraient put mieux faire quand même

fading glacier
fleet kayak
#

Pouvez-vous me donnez la doc discord js ?

fading glacier
#
fleet kayak
#

merci

fading glacier
#

Pas de soucis

lone flax
fading glacier
#

Je crois pas que tu puisses, en tout cas c’est pas dans la doc

dire latch
#

Look par message @lone flax

cyan iron
#

J'allais le dire

#

Mais c'est pas le plus efficace

dire latch
#

Héhé 🙂

fading glacier
#

Tu peux essayer de chercher aux niveau des requêtes effectués quand tu boost un serveur voir la requête et ce qu’elle contient

#

Pas sûr que ça t’aide mais j’ai fait comme ça pour get la bio

cyan iron
#

Ouais mais il va être obligé d'utiliser un token user

lone flax
#

Ouais non

cyan iron
#

Mais c'est la seule solution

#

En tout cas le seul truc qui serait fiable

lone flax
#

On peut fake les messages serveur ?

cyan iron
#

comment ça

visual sequoia
#

boost x5

#

ses pas comme twitch les /me ahah

fading glacier
lone flax
#

Oui

fading glacier
#

Sûrement, mais il te faudra encore un token user

sharp grail
fading glacier
#

C’est pareil faut tester avec la console dev et regarder les requêtes

#

Tout est dedans

sharp grail
#

Oui, mais étant donné que tu ne request pas directement pour envoyer un message mais pour boost, je pense que c'est géré côté serveur

dire latch
#

🤷‍♀️

fading glacier
#

Yes jsp

#

Faut tester

#

Sans forcément boost déjà essayer avec le message de join voir un peu la requête

sharp grail
#

Ouais

fading glacier
#

Et ça devrait pas être trop dur à reproduire

#

Hors-tos mais pas impossible

#

@cyan iron KaPOP

dire latch
#

Mdr

fading glacier
#

Nan c’est pas ça

#

Il veut send un message serveur

#

Genre le vrai message de boost avec l’icon à côté

#

(Si j’ai bien compris)

dire latch
#

Il veut savoir combien de boost un utilisateur à fais

fading glacier
#

Oui aussi

dire latch
#

Donc, si, c'est ça, après, il aurat pas les boosts d'avant quoi

fading glacier
#

Enft max tu veux trop de truc 😭

lone flax
#

Je veux détecter des qu’un message boost apparaît histoire de pouvoir compter le nombre de boost d’un user c’est tout

#

Si il y a d’autres manières tant mieux

sharp grail
#

Y a un pb la dessus

lone flax
#

Si il arrête le boost

#

?

sharp grail
#

Yep mais qu'il en avait 2 par ex

fading glacier
#

Ah non

#

Yes

lone flax
fading glacier
#

Voilà

#

Trop rapide j’étais en train de vérifier 😭

dire latch
fading glacier
#

@lone flax utilises directement djs pas besoin d’utiliser un module externe

#

Quand il y a un message tu check si le type contient (ct pas le bon att)

#

Si oui c’est un message de boost

desert riverBOT
fading glacier
#

Enft utilises <Member>.premiumSince dans un guildMemberUpdate

#

Si oldMember.premiumSince est null et que newMember.premiumSince l’est pas c’est que la personne vient tout juste de boost pour la première fois

dire latch
#

Et tu check comment si il boost 2 fois ?

fading glacier
#

<Message>.type

dire latch
#

Hmm

sharp grail
dire latch
#

Go demander à discord d'ajouté ça mdr

fading glacier
sharp grail
#

Quand quelqu'un join un serveur, y a une requete avec l'invite, logique, mais pas de post de message

fading glacier
#

Faut que ça soit activé dans les paramètres du serveur

#

Le message de join

sharp grail
#

yep mais c'est le cas

#

mais ça ne trigger pas de requete car géré côté serveur

fading glacier
#

Okok

ebon hawk
#

Hey j'ai un soucis xampp ne veux pas se lancer comment faire ...

dense mulch
#

Je galère sur une install de lib npm. Dès qu'il faut faire appel à VS pour build la lib mon npm foire. J'ai tout réinstaller plusieurs fois. Node js. Visual Studio. J'ai tout delete, tout les dossiers qui existe. Tout refait. Je comprends pas https://pastebin.com/ea2QUPRd

keen narwhal
#

Je recherche des développeurs java en .jar pour mon serveur Minecraft

oak turret
#

#java-jvm @keen narwhal

tawny estuary
hard iris
slim anvil
# hard iris C'est ce qu'il dit là ?

non mais si tu réfléchis (alors juste 1 minute, vraiment pas plus) il met un message pour trouver quelqu'un en java, dans le channel javascript
ce qui laisse penser qu'il ne connait pas la différence

hard iris
#

Ah merde, mais nan ça m'affichait le channel java sue

slim anvil
hard iris
#

Bah si y'a java dans les deux c'est juste une amélioration KaPOP

tawny estuary
keen narwhal
#

Alors je recherche des développeurs JavaScript pour mon serveur

misty parcel
#

Salut j'ai un problème que je ne sais pas résoudre kappa en gros j'essaie de faire en sorte que quand on appuie sur un bouton ça delete un salon qui à été crée recemment par mon bot, voici mon code

#

ah bah il est trop long

#

Voila et donc en gros à la ligne 493 je ne sais pas comment delete le salon qui a été crée à la ligne 449

oak turret
#

bah interaction.channel.delete() ?

misty parcel
#

Oui mais il faut get l'id du salon à delete non ? @oak turret

#

Si je fais ce que tu m'as dis ça me delete le salon de configuration, pas le salon vocal

dire latch
#

Tu get le salon adéquat dans ce cas

misty parcel
#

Oui mais si il vient de se crée je fais comment 🤔

dire latch
#

Tu find le salon

#

Avec le nom

misty parcel
#

aah

#

ok merci

dire latch
#

Dr

misty parcel
#

J'avais aussi une autre question

#

est ce que c'est possible de get l'emoji d'un select menu

dire latch
#

Idk, test de console.log ton selectmenu

misty parcel
#

ok

#

oh non je crois qu'on peut pas 😦

#

C'est possible de console.log les options d'un select menu ?

dire latch
#

Test et tu auras la réponse mdr

fading glacier
#

@misty parcel le bouton est dans le salon que tu veux delete ?

misty parcel
#

non @fading glacier

#

justement

pallid plume
oak turret
#

du coup : #java-jvm

hidden cypress
#

Bonjour , J'aimerais avoir un peut d'aide pour un petit bot voila l'erreur

cyan iron
#

Hey, la propriété name n'existe pas dans ton props.config

#

Essaye de console log props.config pour voir

hidden cypress
#

Comment dois-je l'ajouter ?

cyan iron
#

Avant de faire des bots Discord je te conseille d'abord d'apprendre les bases du js ;)

hidden cypress
#

Ses pas mon bot :p

misty parcel
#

salut comment on utilise find svp ? J'ai trouvé rien du tout qui pouvait m'aider sur internet

ancient sonnetBOT
#
Résultats de la recherche: .find

Array.prototype.find()
La méthode find() renvoie la valeur du premier élément trouvé dans le tableau qui respecte la condition donnée par la fonction de test passée en argument. Sinon, la valeur undefined est renvoyée.

Example:

arr.find(callback(element[, index[, tableau]])[, thisArg])

Array.prototype.findIndex()
La méthode findIndex() renvoie l'indice du premier élément du tableau qui satisfait une condition donnée par une fonction. Si la fonction renvoie faux pour tous les éléments du tableau, le résultat vaut -1.

Example:

arr.findIndex(callback(element[, index[, tableau]])[, thisArg])

find.find()
Recherche du texte dans un onglet.

Example:

browser.find.find(
  queryphrase,       // string
  options            // optional object
)
slim anvil
misty parcel
#

alors de ce que j'ai compris find c'est pour trouver un élément dans une variable

#

Sauf que moi je veux find un salon vocal

#

je suis duper

slim anvil
#

c'est pour find dans un tableau

fading glacier
misty parcel
#

ah mais faut utiliser find ou pas alors 🤔

fading glacier
misty parcel
#

attends

#

moi j'ai ça

fading glacier
#

Oui

misty parcel
#

j'ai pas de variable dedans

fading glacier
#

Bah déjà récupères la liste des salons de ton serveur

#

Tu veux faire quoi ? Delete le vocal de la personne qui clique ?

misty parcel
#

oui

fading glacier
#

interaction.member.voice?.channel.delete()

#

Pas besoin de find

sharp grail
#

Bah

misty parcel
#

olala notlikethis

fading glacier
sharp grail
#

@misty parcel est ce que quand la personne quitte le salon vocal tu veux que ça le delete ?

misty parcel
#

euf je sais pas faire ça moi donc je suis parti sur un bouton

sharp grail
#

Mmh 🤔

#

Bah en gros

fading glacier
#

interaction.member.voice?.channel?.delete()

misty parcel
#

ah d'accord c'est quand on est dans le salon vocal

sharp grail
#

Alors

#

Very bad idea

misty parcel
#

🤔

sharp grail
#

Car tu pourrais delete n'importe quel salon vocal comme ça

fading glacier
#

Et voilà j’ai rajouté un ? comme ça quand il est pas en voc ça fait rien

misty parcel
#

si je suis dans un vocal pas perso ça va le delete

#

ouais jeme suis dis ça aussi

sharp grail
#

Oui

fading glacier
misty parcel
#

ouais mais y'a plus simple nan ? x)

fading glacier
#

Non

misty parcel
#

ah

sharp grail
#

Bah

fading glacier
#

Tout ne se fait pas en une ligne

sharp grail
#

En soitsi

#

Fin pas plus simple, en vrai ça dépend juste de ce que tu veux faire

fading glacier
#

D’abord vérifie si le salon est privé (à toi de faire la condition), et si oui delete avec la ligne que je t’ai donné

misty parcel
#

oui je sais mais ce que je veux dire c'est que moi j'avais imaginer delete le salon qui comporte le nom de la personne qui à crée le vocal

fading glacier
#

Ah

#

Fallait être plus clair 😭

misty parcel
#

car quand on crée un voc sur mon serv ça le crée au nom de la personne qui a cliquer sur le btn

#

pardonharold

fading glacier
#

Donc récupères la liste des salons vocaux

#

Et après avec .find tu get celui qui a le nom du membre

misty parcel
#

ok

sharp grail
#

Ca peut aussi poser problème

#

Au niveau du pseudo

misty parcel
#

oui si 2 personnes ont le meme pseudo

sharp grail
#

Si tu veux faire un truc vraiment clean faudrait stocker ça en cache bongoTap

misty parcel
#

en ram

sharp grail
#

Chuut

#

En gros pas dans quelque chose de durable

#

Un stockage temporaire comme des informations stockes dans le client par exemple

past nimbus
#

Une db si tu veux quelque chose de durable

sharp grail
#

Ouais mais la c'est pas vraiment utile

misty parcel
#

ouais nan la vous m'avez perdu

past nimbus
#

J'ai pas lu le contexte, mais si il faut stocker des data "durable", c'est à dire persistante, le mieux est une db (le premier qui me sort un fichier json je l'achève)

sharp grail
#

Go jsonnnn KaPOP

misty parcel
#

keske

sharp grail
#

Nan en gros je proposais de stocker les informations nécessaires au fonctionnement d'un système de création de channel sur discord

#

Au lieu d'utiliser les noms des channels

#

Donc c'est pas de la data durable

misty parcel
#

je suis en train de faire un truc vous allez me dire si c'est potable

past nimbus
#

Donc en ram (le cache discord c'est de la ram)

misty parcel
slim anvil
sharp grail
#

Avant de parler des problèmes du à ce système fonctionnement, y a quelque chose qui va pas

#

Tu check si le channel de l'interaction porte le nom du membre et tu delete le channel vocal du membre

misty parcel
#

oui

sharp grail
#

Tu devrais plus check si le channel auquel le membre est connecté porte son pseudo

misty parcel
#

if(interaction.member.voice?.name === `Salon de ${interaction.user.username})

#

?

cyan iron
#

C'est vraiment pas terrible de se baser sur quelque chose qui peut être modifiable à tout moment

#

Si tu fonctionnait avec l'ID du salon ce serait beaucoup mieux

#

Là y'a un type qui rename le salon et ton système ne fonctionne plus

misty parcel
#

oui mais l'id je l'ai pas

cyan iron
#

Tu le stockes de manière temporaire 😄

#

Comme t'as dit Hareng

past nimbus
#

Oublie le stockage temporaire, tu restart ton bot tu l'as plus ton id...

cyan iron
#

Un vocal ne reste pas 100 ans

sharp grail
#

C'est pas un problème, le système de channel est lui même temporaire

cyan iron
#

Tout dépend du stockage temporaire en plus

past nimbus
#

ça va le faire si t'as 5 utilisateurs sur ton serveur

#

Si tu prévois de le déployer, c'est mort

#

Autant prendre les bonnes habitudes

sharp grail
#

Bah

#

Là c'est pour moi inutile

#

Car le système en lui n'a pas pour but d'être durable

past nimbus
#

ça change rien que le système soit durable ou non, si le bot restart au mauvais moment, tu plante tout

#

Alors que juste en réfléchissant tu as un système fiable et bien plus facile à gérer

sharp grail
#

Pas vraiment

#

Le bot plante au mauvais moment ? C'est pas un problème et puis c'est pas quelque chose de récurrent normalement

#

Au pire quand le bot se redémarre tu clear tous les channzls vocaux de la catégorie et voilà

past nimbus
#

J'ai pas dis qu'il plantait, j'ai parlé d'un restart ^^

cyan iron
#

Je suis pas trop d'accord avec toi Scylla

sharp grail
#

Même un restart

past nimbus
#

Super l'exp user

sharp grail
#

Mouais tu as pad des restart toutes les 10 minutes heik

#

Sinon ça n'a aucun sens

misty parcel
past nimbus
#

Non mais vraiment y a pas de débat pour le coup
T'as une solution 100% fiable et validé par des systèmes énormes
Et t'as une autre solution homemade pas fiable et complètement expérimental

Le seul gain c'est l'absence d'une db, ce qui n'est clairement pas un argument...

sharp grail
#

Euh non

#

Clairement pas là

#

Ou tu vois juste pas le principe de ce système

cyan iron
past nimbus
sharp grail
cyan iron
#

Enmap à la limite

past nimbus
misty parcel
#

comment je fé iwi

cyan iron
#

C'est léger, le bot restart t'as plus de problème

past nimbus
#

ça reste une db

#

Donc on revient au même

sharp grail
#

Clairement c'est pas utile de prendre une db

past nimbus
#

D'acc ^^

sharp grail
#

Et même tu reduis l'expérience utilisateur en ayant une latence

cyan iron
#

Pour moi stocker dans une Map suffirait

#

¯_(ツ)_/¯

past nimbus
#

Mais où tu vois une latence avec une db locale ? Elle est de 10ms à tout péter

past nimbus
cyan iron
#

Oui

#

Pas python KaPOP

sharp grail
sharp grail
misty parcel
#

ok

cyan iron
#

Soit il utilise enmap et il est sûr d'avoir les données si le bot crash / restart
Soit il stocke les données dans une Map ou un Collection et si le bot crash adios pépitos

sharp grail
#

après Scylla je comprends tout à fait tes arguments, mais je trouve pas ça nécessaire, chacun son avis là dessus

#

¯_(ツ)_/¯

misty parcel
#

oh ça marche

#

god damn

cyan iron
#

Yes mais si tu rename ton salon

sharp grail
#

bah là KaPOP

#

c'est foutu

misty parcel
#

ah

#

et aussi je veux supp 2 salons

#

le salon voc mais aussi le salon donfiguration

sharp grail
#

att mais

misty parcel
#

la ou on appuie sur le bouton pour supprimer le voc

sharp grail
#

t'as deux salons ? x)

misty parcel
#

bah oui x)

#

un salon vocal et le salon pour configurer le vocal

cyan iron
#

Ouais je vois

misty parcel
misty parcel
sharp grail
#

nan c'est pas un problème 🤔

cyan iron
past nimbus
#

Je peux entendre que vous considérez que c'est pas nécessaire mais Wail il est à côté de la plaque là mdr

cyan iron
#

Je viens de regarder le système que j'utilise fonctionne avec une Map, et je n'ai jamais eu de problème

sharp grail
misty parcel
#

ah mais oui je suis bete mdrr j'avais fais ça et ça avait delete le salon de configuration

#

my bad

cyan iron
#

Tu nous dit qu'il aura forcément d'être problème, je te prouve le contraire sur un système qui est fonctionnel sur un serveur de +10k membres et qui n'utilise pas de db
Il peut utiliser une db, mais ce n'est pas du tout utile dans son cas cringe

cyan iron
#

Après tu pourras même faire en sorte que les gens puissent modifier le nom de leur channel ;)

past nimbus
#

Bon j'abandonne...

#

^^

past nimbus
#

On cherche une solution pour stocker les données entre deux restart, tu arrives en proposant un Map
Je propose une dB, tu proposes ensuite enmap qui techniquement revient à faire une dB juste avec moins davantage

cyan iron
#

On s'est mal compris alors

cyan iron
#

Pour moi gérer le potentiel restart ce n'est pas utile

#

C'est ce que j'ai dit

slim anvil
#

tout est stocké en base mtn

sharp grail
cyan iron
#

Ensuite, j'ai dit que si tu voulais absolument utiliser une db, il pouvait utiliser enmap

#

Qui est léger

past nimbus
#

Pourquoi utiliser enmap alors qu'une dB fais la même chose en mieux ?

cyan iron
#

Ce qu'il va stocker c'est deux ID, je le rappelle

#

Qui resterons allez .. 2h, 3h

past nimbus
#

Peu importe ce qu'il stocke, c'est des principes de base de dev web
Même si il stockait qu'un id, une dB aurait ça place pour ces raisons

#

(désolé si je parais agressif, mon but est pas de l'être)

keen narwhal
#

Quelqu'un pourrait m'aider pour la création de la commande pour un ticket ? en button et non en react si possible

keen narwhal
#

J'ai essayé plusieurs scripts trouvé sur des forums, youtube et même des liens pastebin qu'on m'a envoyé

#

mais aucun n'a fonctionné

slim anvil
slim anvil
cyan iron
#

Mais je suis pas agressif enzo_nrv

slim anvil
#

non j'ai dis que etre agressif avec toi c'est pg

cyan iron
#

Ah, merci

cyan iron
sharp grail
keen narwhal
keen narwhal
sharp grail
#

Baaah c'est en forgeant qu'on devient forgeron x)

keen narwhal
#

C'est pour ça que je voudrais qu'on me donne la base

#

et non le script

#

sinon ça m'apprendrai rien

dire latch
#

Sa t'apprends mieux si tu fais la base toi même aussi 🙂 @keen narwhal

keen narwhal
#

Alors, ça part sur quoi ? pour le début ^^

cyan iron
#

Déjà il faut que tu te poses les bonnes questions. Par où commencer ?

#

Tu veux faire un salon sur ton serveur dans lequel est ton bouton pour ouvrir le ticket, c'est bien ça ?

#

Puis en appuyant sur ce bouton, l'utilisateur créé un salon dans une catégorie réservée sur le serveur ?

keen narwhal
#

Exactement

dire latch
#

Ba commence à créer un salon @keen narwhal

cyan iron
# keen narwhal Exactement

Donc il faut que tu commences par créer le salon avec le bouton
Ensuite tu récupères ce que te renvoie le bouton
Et pour finir, tu créé le salon ;)

keen narwhal
#

J'ai créer le bouton, mais pour l'instant ça charge à l'infini :c

dire latch
#

Car tu leur as pas mis une utilité

keen narwhal
#

yes, je peux vous demander comment faire pour que ça crée un channel ?

dire latch
#

Doc discordjs

keen narwhal
#

je vais jeter un oeuil

desert riverBOT
misty parcel
#

rebonsor je suis perdu encore une fois j'arrive pas à faire supprimer un salon et à donner des roles, voici mon code

#

bon avec du recul le premier screen sert à rien mais mon select menu dont le custom id est frhdv ne réagit pas quand je clique sur une option

#

je n'ai pas de message d'erreur

misty parcel
#

oh...

#

J'ai mis inteactionCreate au lieu de interactionCreate 😭

#

J'en ai marre de moi

keen narwhal
#

Bonjour, voici mon problème, d'abord voici mon code :

#

et voici l'erreur que j'ai

desert riverBOT
#

:_: GuildMember#permissions
The overall set of permissions for this member, taking only roles and owner status into account

sharp grail
# keen narwhal

La méthode hasPermissions n'existe plus sous discord.js@v13

keen narwhal
#

C'est ça que je dois mettre ?

sharp grail
#

Oui et tu peux rajouter éventuellement rajouter true en option pour que la perm admin override

#

Mais c'est ca c'est comme tu veux

unborn knot
#

Hello je fais quelques test en js et je suis bloqué ```javascript
const words = [
{
name: "Test",
value: "0",
},
{
name: "Test2aaaaa",
value: "1"
}
]

words.forEach(function(name) {
const allname = name.name;
const result = allname.filter(word => word.length >= 6);
console.log(result);
});``` il me dit que allname.filter n'est pas une fonction, j'ai compris que c'était parceque allname n'était pas une array mais je ne vois pas comment faire :/

past nimbus
#

allname.length >= 6 directement ?

unborn knot
unborn knot
unborn knot
#

Quelqu'un sais pourquoi rien n'est écrit dans mon fichier json ? ```javascript
const Target = interaction.options.getMember('membre');
const Sender = interaction.member;
const Reason = interaction.options.getString('raison');
const WarnFileType = JSON.stringify({warnedMember: Target.id, sourceWarn: Sender.id, reason: Reason});

    if (Sender.permissions.has(Permissions.FLAGS.KICK_MEMBERS)) { // Check if the author of the command have the good permissions.
        if (Sender.id !== Target.id) { // Check if the author try to warn himself.
            console.log(WarnFileType); // retourne bien les informations nécessaires
            fs.writeFile('../../../warn.json', WarnFileType, (err) => {
                if (err) throw err;
                console.log('complete'); // le console log est bien effectué
            })
        }
    }```
slim anvil
#

T’as plus d’encre

unborn knot
#

d'encre?