#javascript-typescript

1 messages · Page 12 of 1

queen ocean
#

Au Slash command ? Ca peux venir de plusieurs problèmes, il faudrait plus de détail

keen narwhal
queen ocean
#

💪

keen narwhal
#

j'ai un autre bot avec cette erreur c quoi?

drowsy ocean
dry sleet
#

18.12.1 on dirait

keen narwhal
#

oue

#

c celle la

drowsy ocean
#

Ton pb est avec better sqlite3

keen narwhal
#

?

keen narwhal
drowsy ocean
#

jsp fait voir ton code

keen narwhal
#

y a bcp de truc

drowsy ocean
#

T'es au début du projet non ?

keen narwhal
#

nan il les fini il date depuis 1 ans

#

et puis la je suis revenue

#

avant il marcher très bien puis la

#

y a des erreurs

drowsy ocean
#

Ok faut que tu met a jour tes dépendances

keen narwhal
#

c quoi ça

#

je connais plus rien en js mtn

drowsy ocean
#

tes libs quoi ^^

keen narwhal
#

dans le dossier la ?

drowsy ocean
#

non dans le package.json

keen narwhal
#

je trouve pas le better_sqlite3.node

#

peux être que je doit re l'installer

true mortar
#

j'ai un prblm mon bot ne parle pas et rien s'affiche dans la console

#

@queen ocean

true mortar
true mortar
drowsy ocean
true mortar
drowsy ocean
#

Tu n'as pas l'event pour déclencher

#

👉 Yo les potes, je vous fais un petit tuto de comment coder un bot Discord avec discord.js v14 ! Dans cette vidéo, on va créer l'handler des commandes et faire notre première commande, la commande ping ! N'hésite pas à t'abonner, activer la cloche, liker et rejoindre mes réseaux (merci) !

👉 #DISCORDJSV14 #BOTDISCORD #DISCORD

❤️ S'abonner : htt...

▶ Play video
true mortar
#

thanks

fleet scaffold
#

Dite question, car je trouve l'info nul part c'est possible d'installer une extension avec un service worker ?

fleet scaffold
drowsy ocean
fleet scaffold
severe saddle
fleet scaffold
#

je vois

severe saddle
# fleet scaffold je vois

Après je sais pas si j'ai bien compris ta question ahah, tu veux installer une extension avec dedans un service worker ? Ou un service worker qui installe une extension ?
Car ta question est mind fuck omg

severe saddle
#

ok 🙂

fleet scaffold
#

donc t'avais bien compris xd

severe saddle
#

(si jamais, première option, toutes les extensions ont un service worker en interne, persistant ou non, à toi de décider)

fleet scaffold
#

Yep yepp

#

mais du coup pas grave, je vais créer ma propre extension

severe saddle
#

C'est super simple en vrai

fleet scaffold
stark forge
#

Bonsoir, je suis sur une commande timeout en djs V13 qui ne timeout pas le membre mais qui me renvoie bien un msg :

stark forge
#

elle ne fonctionne plus depuis que j'ai changé quelques trucs pour faire en sorte que l'usage soit tempmute <user> 4m [raison] au lieu de tempmute <user> 4 minutes [raison]

stark forge
# drowsy ocean <:ltWithCodeBetter:875779098276933632>
const ms = require('ms');

module.exports = {
    name: 'tempmute',
    category: 'moderation',
    permissions: ['MODERATE_MEMBERS'],
    ownerOnly: false,
    usage: 'tempmute [@member] [duration] [reason]',
    examples: ['tempmute @yeux jaunes 4m raison'],
    description: "Timeout un utilisateur avec une raison",
    async run(client, message, args) {
        if (!args[0]) return message.reply('Spécifier un membre à timeout!');
        if (!args[1]) return message.reply('Spécifier une durée pour votre timeout');
        if (!args[2]) return message.reply('Spécifier une raison à votre timeout');

        const target = message.mentions.members.find(m => m.id);
        const duration = args.slice(2).join(' ');
        const convertedTime = ms(duration);
        const reason = args.slice(2).join(' ');
        const role = message.guild.roles.cache.find(role => role.name === 'Muted')

        if (!target.moderatable) return message.reply('Ce membre ne peut pas être timeout par le bot!');

        await target.roles.add(role)
        target.timeout(convertedTime, reason);
        message.channel.send(`Le membre ${target} a été timeout ${duration} pour \`${reason}\``);

        setTimeout(() => {
            target.roles.remove(role)
        }, ms(duration))
    },
    options: [
        {
            name: "target",
            description: "L'utilisateur a timeout",
            type: "USER",
            required: true
        },
        {
            name: "duration",
            description: "La durée du timeout",
            type: "STRING",
            required: true
        },
        {
            name: "reason",
            description: "La raison du timeout",
            type: "STRING",
            required: true
        }
    ],
};

drowsy ocean
keen narwhal
#

Bonsoir à tous, je suis en train de faire un event pour un message de bienvenue et je reçois ça comme erreur

Error: Expected the value to be an object, but received string instead
#

Voici mon code :

const { EmbedBuilder } = require('@discordjs/builders');

module.exports = {
    name: "guildMemberAdd",

    async execute(member, client) {

        var addembed = new EmbedBuilder()

            .setDescription(`<@${member.id}> Bienvenue a toi !`)
            .setFooter(`Nous somme maintenant ${member.guild.memberCount}`)
            .setColor('blue')

        client.channels.cache.get("1069020279772295178").send({ embeds: [addembed] });
    }
}
dry sleet
#

@keen narwhal

drowsy ocean
dry sleet
keen narwhal
#

c'est a dire ?

dry sleet
#

avec addembed.build()

drowsy ocean
#

Non

keen narwhal
#

je connais pas ça

dry sleet
#

donc :

client.channels.cache.get("1069020279772295178").send({ embeds: [addembed.build()] });
drowsy ocean
#

Regarde le stackoverflow

keen narwhal
#

c pour ça je viens ici

drowsy ocean
#

.setFooter({text: "Mon text"})

keen narwhal
#

deja essayé

#

apres ça met " received one or more errors "

dry sleet
drowsy ocean
#

Réessaye et montre moi le code

#

build() n'existe pas

#

ça sert a rien

dry sleet
#

c'est pas une méthode de EmbedBuilder ?

drowsy ocean
#

Non

keen narwhal
drowsy ocean
#

Envoi le code

drowsy ocean
#

go voc ?

keen narwhal
#

ouais vasy

dry sleet
drowsy ocean
dry sleet
#

il doit avoir quoi du coup ?

drowsy ocean
#

Un array RGB

dry sleet
#

aaah

#

ok

keen narwhal
#

c'etais tout bete enfaite

#

sur ce bonne soirée les mec encore merci

dry sleet
#

Bonne soirée

fleet scaffold
#

c'est pas facile 😭

#

ça marche pas

#

je suis bloqué carrément

#

Mon extension work pas du tout

drowsy ocean
fleet scaffold
#

remplacé un header

#

c'est pas sencer être si dure

severe saddle
#

ahah, non c'est plutôt simple en vrai, tu utilises quel manifest, 2 ou 3 ?

fleet scaffold
#

Ah

#

ça à été décallé my bad

#

Bah j'utilise le v3 malgré tout

#

Et c'est archi bloquant bizarrement 😭

severe saddle
fleet scaffold
severe saddle
#

Ok, du coup déjà tu dois déclarer le site que tu souhaites modifier dans tes content_scripts.matches

#

dans le manifest

#

ensuite tu créer un script que tu déclares dans content_scripts.js

#

et dans ce script, tu pourras jouer avec le site

fleet scaffold
#

j'ai fait ça depuis tout à l'heure

#

et c'est bloquant de fou

#

Je veux juste que l'extension ne puisse acceder qu'à 1 seul site

severe saddle
#

tu peux me montrer ton manifest ?

fleet scaffold
#
{
    "manifest_version": 2,
    "name": "JapanWatch",
    "version": "1.0.0",
    "default_locale": "fr",
    "description": "JapanWatch une application qui vous permet d'utilisez des foncionnalité de recherche avancé par apport aux animés et mangas",
    "icons": {
        "16": "icons/favicon-16x16.png",
        "32": "icons/favicon-32x32.png"
    },
    "permissions": [
        "webRequest",
        "webRequestBlocking",
        "<all_urls>"
    ],
    "background": {
        "scripts": [
            "background.js"
        ]
    }
}
#

(si je change all_urls bah l'extension ne fait pas ce que je souhaite)

severe saddle
#

background.js c'est ton service worker, il n'a pas accès au DOM

fleet scaffold
#

Je cherche à ajouté l'entête access_allow_origin SEULEMENT quand je suis sur le site xxx.com

severe saddle
#

tu dois créer un content_script

fleet scaffold
#

j'ai pas besoin du DOM

#
// allow cors everywhere
chrome.webRequest.onHeadersReceived.addListener(
    function(details) {
        let found = false;
        for (var i = 0; i < details.responseHeaders.length; ++i) {
            if (details.responseHeaders[i].name.toLowerCase() === 'access-control-allow-origin') {
                details.responseHeaders[i].value = '*';
                found = true;
                break;
            }
        }
        if (!found) {
            details.responseHeaders.push({name: 'Access-Control-Allow-Origin', value: '*'});
        }
        return {responseHeaders: details.responseHeaders};
    },
    {urls: ['<all_urls>']},
    ['blocking', 'responseHeaders']
);
#

et blocking marche pas en V3

#

Bref que des trucs bloquant en + 😦

severe saddle
#

y'a plein d'extension qui font ce que tu veux déjà

fleet scaffold
#

Oui

#

Mais, j'ai besoin de partager cette extension à des gens

severe saddle
#

et tu peux pas partager les extensions qui existent déjà ?

fleet scaffold
#

C'est ce que je fais

#

Mais leur expliqué qu'il faut modifié les paramètre de l'extension ect..

#

C'est un peu dur pour eux à comprendre

severe saddle
#

ok ok

#

alors le plus simple, si ça existe déjà

#

c'est de pomper leur code et de faire à ta sauce

fleet scaffold
#

c'est de leur expliqué XD

severe saddle
#

l'extension est dispo dans le dossier de ton chrome

fleet scaffold
severe saddle
#

non, car tu pourras le faire à ta sauce, et donc bypasser la config pour forcer le truc

fleet scaffold
#

La restriction à 1 seul site ne marche pas comme je veux

severe saddle
#

pour ça tu dois rajouter les permissions à ton site sur ton manifest

#

"permissions": ["https://..."]

fleet scaffold
#

AH

#

Trouvé

#

il fallait laissé all_urls

#

Mais le problème est toujours là en soit

#

L'extension ne work pas en v3 😭

severe saddle
#

J'utilise pas cette config, je pourrais pas trop t'aider du coup. Mais regarde la docs de migration, elle est assez bien détaillée. Je sais que y'a un truc à propos des <all_urls>

severe saddle
#

sérieux ? lol c'est bizarre

fleet scaffold
#

Par exemple

severe saddle
#

T'as bien mis sous forme de tableau tes permissions ?

fleet scaffold
#

Yep

#

Mais ça à changé

#
{
    "manifest_version": 3,
    "name": "JapanWatch",
    "version": "1.0.0",
    "default_locale": "fr",
    "description": "JapanWatch une application qui vous permet d'utilisez des foncionnalité de recherche avancé par apport aux animés et mangas",
    "icons": {
        "16": "icons/favicon-16x16.png",
        "32": "icons/favicon-32x32.png"
    },
    "permissions": [
        "webRequest"
    ],
    "host_permissions": [
        "https://deril-fr.github.io/*"
      ],
      "optional_host_permissions": [
        "*://*/*"
      ],
        "background": {
        "service_worker": "background.js"
    }
}
#

ça c'est la v3

#

Déja il me manque webRequestBlocking

#

donc ça nique tout ce que j'ai besoin XD

severe saddle
fleet scaffold
severe saddle
#

ahah, ouais, ils sont un peu relou

#

Par contre, fait attention, la manifest V3 n'est pas prise en charge sur firefox je crois, du moins pas encore (en octobre dernier en tout cas, c'était pas le cas)

fleet scaffold
#

Je vais créer une extension qui fait juste une modif réseau ça fera le café

stark forge
drowsy ocean
#

Tu appel une fonction asynchrone sans l'await ce qui l'interrompt dès la fin de ta fonction

stark forge
#

qu'est-ce qu'une fonction asynchrone ?

#

J'ai réussi en définissant la durée par le 2ème argument ici

#

mais ducoup quand j'écris mal la commande par exemple comme ça :

#

j'aimerais que ça renvoie un message qui dise que c'est pas le bon format pr exemple

drowsy ocean
stark forge
stark forge
drowsy ocean
drowsy ocean
stark forge
#

j'ai fais quelques recherche mais je ne vois pas comment l'utiliser 🤷

drowsy ocean
stark forge
#

c'est un paramètre qu'on va définir pour que la commande soit tapée correctement

drowsy ocean
#

Oui plus ou moins, enfaite tu va pouvoir vérifier grace au regex si ton argument est de forme valide ou non

#

Having the ability to search through text, validate text, and replace text using an advanced set of rules is exactly what Regex is for. Unfortunately, people fail to ever truly learn Regex. In this video I will be teaching you everything you need to know about Regex. We will talk about what Regex is, what Regex flags are, how to do simple and co...

▶ Play video
stark forge
#

je vais voir

#

moi ce que je veux c'est qu'il y ai qu'un seul caractère qui soit pris en compte quand on déterminera la durée, par exemple s si c'est en seconde ou m si c'est en minutes etc...

drowsy ocean
#

Oui grace au regex

stark forge
#

pour l'instant j'ai fais ça, pour moi ça signifie que l'argument qui est après la mention est la durée, ensuite j'ai défini les args

stark forge
#

c'est mieux ?

#

la j'ai ajouté que si la durée n'est pas défini après la mention ça va return

drowsy ocean
#

Ton premier if est pas bon

stark forge
#

pourquoi ?

drowsy ocean
#

match est une méthode qui prend en argument le regex a comparaitre

#

ducoup ton deuxieme if est pas bon aussi

#

Regarde plus attentivement le site que je t'ai envoyé

stark forge
#

sur le site ils mettent des if avec un match juste après :

drowsy ocean
#

dispo call ?

stark forge
#

Vasy

drowsy ocean
stark forge
#
const regex = /(?<=[tT]he)/;
        if (regex.match){
            args[1, 2].match;
        }
        if(!regex.match(/(?<=[tT]he)/))
        return message.reply('Pas le bon format!')
drowsy ocean
#

/[0-9]+[a-z]/

stark forge
#

/(?<=[tT]he)/

#
UNHANDLED_REJECTION: TypeError: Cannot read properties of undefined (reading 'regex')
Promise {
  <rejected> TypeError: Cannot read properties of undefined (reading 'regex')
      at Object.run (C:\Users\leura\OneDrive\Bureau\Bot V13\commands\moderation\tempmute.js:23:26)
      at Object.execute (C:\Users\leura\OneDrive\Bureau\Bot V13\events\guild_messages\messageCreate.js:24:22)
      at Client.<anonymous> (C:\Users\leura\OneDrive\Bureau\Bot V13\utils\handlers\EventUtil.js:19:54)
      at Client.emit (node:events:513:28)
      at MessageCreateAction.handle (C:\Users\leura\OneDrive\Bureau\Bot V13\node_modules\discord.js\src\client\actions\MessageCreate.js:26:
14)
      at Object.module.exports [as MESSAGE_CREATE] (C:\Users\leura\OneDrive\Bureau\Bot V13\node_modules\discord.js\src\client\websocket\han
dlers\MESSAGE_CREATE.js:4:32)
      at WebSocketManager.handlePacket (C:\Users\leura\OneDrive\Bureau\Bot V13\node_modules\discord.js\src\client\websocket\WebSocketManage
r.js:351:31)
      at WebSocketShard.onPacket (C:\Users\leura\OneDrive\Bureau\Bot V13\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444
:22)
      at WebSocketShard.onMessage (C:\Users\leura\OneDrive\Bureau\Bot V13\node_modules\discord.js\src\client\websocket\WebSocketShard.js:30
1:10)
      at callListener (C:\Users\leura\OneDrive\Bureau\Bot V13\node_modules\ws\lib\event-target.js:290:14)
}

drowsy ocean
#

('/dqdd/')

mellow parrot
#

Bonsoir

#

alors j'ai une erreur commune.. mais pas du tout LOGIQUE

#

je vous montre

#

la vous allez me dire, il est con ou quoi ?

#

mon package.json...

#

mon main.js

#

JE NE COMPREND PAS

#

help me please

#

merci d'avance x)

floral bolt
#

Tu as fais npm i ?

mellow parrot
#

je vais essayer de le faire

mellow parrot
#

j'ai rajouté un p..

floral bolt
#

Quelqu’un a déjà utilisé stripe avec nextJS ici ?

floral bolt
#

T’aurais moyen de m’expliquer comment marche le système après avoir payer ?

#

(J’ai pas encore commencé) mais en gros je dois faire un module de paiement pour un site et dès que quelqu’un paye ça doit lui renvoyer un mail, l’envoi de mail ça c’est bon mais je comprend rien à la docs de stripe

past nimbus
#

Tu écoute le webhook, quand tu le reçois, tu déclenche ton flux

#

De cette manière tu pourras traiter également les litiges etc...

olive lake
#

Bonjour ! J'ai un soucis, je n'arrive pas à set un nickname sur discord.js v14. Voici mon code de test:

module.exports = {
    data: new SlashCommandBuilder()
        .setName('test')
        .setDescription('Replies with Pong!')
        .addUserOption(option =>
            option.setName('input')
                .setDescription('The input to echo back')),
    async execute(interaction) {
        const user = interaction.options.getUser('input')
       
        await user.setNickname('Test')
        
        
        await interaction.reply('Test réussi !');
        
    },
};```

J'obtiens dans la console `TypeError: user.setNickname is not a function` donc je pense qu'il me manque un truc, mais quoi ? 😶 Je n'ai pas réussi à trouver dans la documentation (je suis pas très bon aussi...) et je pense que c'est une erreur classique. Est ce que quelqu’un aurait une idée ? Et merci par avance ^^
severe saddle
# floral bolt T’aurais moyen de m’expliquer comment marche le système après avoir payer ?

comme le dit @past nimbus, sur tous les moyens de paiement du marché tu as ce qu'on appelle des IPN (Instant Payment Notification), qui correspondent en gros à de simple webhook que la plateforme appelle sur ton serveur. Elle envoi des données en POST (dans la majorité des cas) avec les infos de la commande. A noter que ces IPN doivent être sécurisés. La plateforme de paiement peut te le faire (en cryptant le message), autrement c'est à toi de le faire.

Généralement l'ordre de statuts d'une commande c'est :

  • Authorized - le client a payé, à toi de capturer le paiement (en gros c'est dire : "OK j'ai eu l'info que le paiement est passé, j'accepte de recevoir l'argent"), à noter qu'à ce moment l'argent N'est PAS sur ton compte
  • Captured - l'argent est récupéré sur la plateforme de paiement (donc sur ton compte)
floral bolt
#

Top ! Merci pour les infos

leaden prism
#

Bonjours, j'ai créer un modal pour un système de suggestion. Il s'affiche mais lorseque j'appuie sur "envoyer" il ne se ferme pas mais le reste de la commande s'exécute bien
pouvez vous m'aider svp

keen narwhal
#

salut si y a des devs djs vous avez des astuces pour dev sans les perms admins (car mon pc est kc dcp c po le mien) je parle pour dl node car vsc ça passe sans perms

uncut python
#

bonjour excusez moi je n'arrive pas a comprend la cocumentation de discord js v14 car j'ai des problémes de compréhension c'est compliqué pour moi j'en ai un peut honte j'aimerait un peut d'aide ....

olive lake
uncut python
worn garnet
#

sinon tu ne peux pas le bypass

#

au pire tu peux tester deno, mais dans mes souvenir il te demande d'etre admin

keen narwhal
worn garnet
worn garnet
olive lake
#

Salut Hyverno, est ce que tu penses que tu pourrais me filer un coup de pouce s’il te plaît vu que tu as l’air à l’aise avec djs ^^

worn garnet
#

j'ai fait vite fait du djs, donc je pourrais pas t'aide sur des sujets complexe

olive lake
worn garnet
#

tu as une erreur ?

olive lake
#

Oui je l’ai notée en dessous

worn garnet
#

ha oui mmy bad mdr

olive lake
#

Je pense que je suis un boulet et qui me manque un require

#

Mais lequel

worn garnet
#

askip c'est user.member.setNickname et pas user.setNickname

olive lake
#

J’ai essayé et je crois qu’il m’a dit je ne connais pas la fonction member x)

#

Mais je vais réessayer

#

(Pas tout de suite)

floral bolt
#

Log user pour voir

olive lake
olive lake
worn garnet
#

(oui)

olive lake
#

Ah pardon

#

C'est quoi précisément ? ^^"

fleet scaffold
#

do you know javascript ?

#

tu dois get le membre à partir de l'user id

olive lake
fleet scaffold
#

Il l'as un peu mal expliqué

#

globalement depuis l'interaction

#

interaction.guild.members.get(user.id).setNicknamr

#

un truc du genre

#

(ne fait pas de copier coller)

olive lake
#

J'obtiens "l'objet" du compte

fleet scaffold
#

c'est brut l'info que je te donne

olive lake
floral bolt
#

Non je parlais juste de console.log(user)

olive lake
#

Avec toutes ses infos

floral bolt
#

Du coup ça revient bien à ce qu’à dit garder

leaden prism
floral bolt
leaden prism
#

de quoi?

olive lake
#
module.exports = {
    data: new SlashCommandBuilder()
        .setName('test')
        .setDescription('Replies with Pong!')
        .addUserOption(option =>
            option.setName('input')
                .setDescription('The input to echo back')),
    async execute(interaction) {
        const user = interaction.options.getUser('input')
        console.log(user)
        interaction.guild.members.get(user.id).setNickname('Test')
        
        
        await interaction.reply('Test réussi !');
        
    },
};```

Comme ça ? Si oui, ça donne ça dans la console `TypeError: interaction.guild.members.get is not a function`
leaden prism
#

genre la dans ma commande quand on l'execute ya un modal qui souvre

#

et j'imerai que quand on l'envoie il se ferme

floral bolt
leaden prism
#

ah ok

#

ba je louvre avec un modal.showModal()

fleet scaffold
olive lake
fleet scaffold
#

inverse members et cache

#

Et va lire la doc

#
olive lake
#

Tu es mon idole !

fleet scaffold
#

la fatigue

fluid warren
#

besoin de quelqu'un qui maitrise la libraire discord de python, important, me mp

ionic rose
#

hey

#

j'aimerai rajouter des genre de question réponse sur ca , mais je sais pas comment m'y prendre peut etre commencer par rajouter une commende /bonsoir et le bot me répond "bonjour"

const { Client } = require("discord.js");

const bot = new Client({ intents: ["Guilds"] });
console.log("Connexion au bot...");
bot.login("NzkwNjk1ODUxMjE4OTYwMzk0.Gw_CLj.dy82tm6yIwBosBqdbo")
.then(() => console.log("Connecté au bot !"))
.catch((error) => console.log("Impossible de se connecter au bot - " + error));

bot.on("ready", async () => {

await bot.application.commands.set([
    {
        name: "ping",
        description: "Pong!"
    }
]);

console.log("Le bot est prêt !");

});

bot.on("interactionCreate", (interaction) => {

if (!interaction.isCommand()) return;

if (interaction.commandName === "ping")
    interaction.reply("Pong!");

});

#

dans le texte de base c'est pour faire une commande /ping et il te répond pong et je veux justement rajouter une commande comme ca pour apprendre et comprendre les base ^^

#

rajouter une commande /touché et il répond "coulé"

copper pagoda
ionic rose
#

rajouter une commande

#

pour en avoir 2

#

sur le meme bot

copper pagoda
#

Oui tu rajoutes la partie du code de

    if (interaction.commandName === "ping")
        interaction.reply("Pong!");

Tu la remets une deuxième fois et tu modifies.

ionic rose
#

javais deja essayer , mais je vais le refaire

copper pagoda
#

Faut que tu rajoutes des {}

#

Genre

    if (interaction.commandName === "ping") return interaction.reply("Pong!");
    if (interaction.commandName === "command") return interaction.reply("Ceci est la réponse !"); //Ou comme ça avec un return ça ira plus vite.
#

Ah et puis j'oublie aussi faut que tu rajoutes ça

    await bot.application.commands.set([
        {
            name: "ping",
            description: "Pong!"
        },
        {
            name: "command",
            description: "Ceci est une commande"
        }
    ]);
copper pagoda
ionic rose
ionic rose
#

le bot se lance mais la commande ne fonctionne pas

#

comment je fais pour tenvoyer le code en couleur ?

copper pagoda
copper pagoda
drowsy ocean
#

Quelle version de discordjs tu utilise ?

copper pagoda
#

Tu fais comme ça

olive lake
#

Bonsoir, c'est encore moi ^^
J'ai un nouveau soucis avec l'objet Date en javascript, je voudrais utiliser le système de timestamp de discord pour indiquer le temps à attendre avant un prochain vote. J'ai créé une commande de test qui donne un temps indicatif de quatre minutes à attendre. Le soucis c'est que le message me dis d'attendre 50 000 ans donc je pense qu'il y a un soucis dans l'écriture de javascript. Voici le code: (C'est une commande à test du coup il y a plein de trucs pas logiques ou inutiles.) ```js
const { SlashCommandBuilder, GuildMemberManager, CachedManager, GuildMember } = require('discord.js');
module.exports = {
data: new SlashCommandBuilder()
.setName('test')
.setDescription('Replies with Pong!')
.addUserOption(option =>
option.setName('input')
.setDescription('The input to echo back')),
async execute(interaction) {
const user = interaction.options.getUser('input')
console.log(user)
const current = new Date()
console.log(current)
const minutes = current.getMinutes()
console.log(minutes)
const timeTo = minutes + 4
console.log(timeTo)
current.setMinutes(timeTo)
const nextVote = Date.parse(current)
console.log(nextVote)

    await interaction.reply(`Test réussi ! <t:${nextVote}:R>` );
    
},

};```
Merci beaucoup par avance et au fait si vous savez comment colorer le code sur discord je suis intéressé ^^

ionic rose
drowsy ocean
copper pagoda
drowsy ocean
ionic rose
#
const { Client } = require("discord.js");

const bot = new Client({ intents: ["Guilds"] });
console.log("Connexion au bot...");
bot.login("NzkwNjk1ODUxMj3cwm6yIwBodINOQsBqdbo")
    .then(() => console.log("Connecté au bot !"))
    .catch((error) => console.log("Impossible de se connecter au bot - " + error));

bot.on("ready", async () => {

    await bot.application.commands.set([
        {
            name: "ping",
            description: "Pong!"
        },

    { 
        name: "touché",
        description: "couléé"
    }    

    ]);

    console.log("Le bot est prêt !");
});

bot.on("interactionCreate", (interaction) => {

    if (!interaction.isCommand()) return;

    if (interaction.commandName === "ping")
        interaction.reply("Pong!");


    if (interaction.commandName === "touché")
        interaction.reply("Coulé");

});
olive lake
drowsy ocean
olive lake
#

Donc d’abord le code vérifie si le vote est possible et si non il donne le temps

drowsy ocean
ionic rose
copper pagoda
drowsy ocean
olive lake
olive lake
copper pagoda
olive lake
#

Avec plaisir ^^

ionic rose
copper pagoda
drowsy ocean
copper pagoda
ionic rose
drowsy ocean
ionic rose
drowsy ocean
drowsy ocean
copper pagoda
ionic rose
#

ca marche , @copper pagoda mais sur le panneau de controle il me sort pleins de truc

drowsy ocean
ionic rose
#

c normal?

drowsy ocean
#

Non

copper pagoda
#

Renvoie ton code stp

ionic rose
#
const { Client } = require("discord.js");

const bot = new Client({ intents: ["Guilds"] });
console.log("Connexion au bot...");
bot.login("NzkwNOQsBqdbo")
    .then(() => console.log("Connecté au bot !"))
    .catch((error) => console.log("Impossible de se connecter au bot - " + error));

bot.on("ready", async () => {

    await bot.application.commands.set([
        {
            name: "ping",
            description: "Pong!"
        },

    { 
        name: "touché",
        description: "couléé"
    }    

    ]);

    console.log("Le bot est prêt !");
});

bot.on("interactionCreate", (interaction) => {

    if (!interaction.isCommand()) return;

    if (interaction.commandName === "ping") return interaction.reply("Pong!");

    if (interaction.commandName === "touché") return interaction.reply("Coulé !");

});
drowsy ocean
#

Ici tu melange les slash commandes et les commandes normal

ionic rose
#

jvoulais faire des slash commande

drowsy ocean
#

Vraiment meilleur conseille que je peux te donner, prend le temps de lire le guide, il est super complet et te donne les bonnes pratiques pour tout réaliser

#

Sois patient et lit chaque lignes

drowsy ocean
# ionic rose jvoulais faire des slash commande

👉 Yo les potes, je vous fais un petit tuto de comment coder un bot Discord avec discord.js v14 ! Dans cette vidéo, on va commencer par les prérequis pour coder le robot et apprendre à le démarrer ! N'hésite pas à t'abonner, activer la cloche, liker et rejoindre mes réseaux (merci) !

👉 Discord développeur : https://discord.com/developers/docs/in...

▶ Play video
ionic rose
#

je l'ai lu , je test ca ducoup

#

ok jai reussi

#

c plus organisé comme ca

drowsy ocean
#

Top

#

Oui

ionic rose
#

jaimerai apprendre a faire un truc que je faisais a college avec python , genre je t'explique , le bot me dit "comment t'appelles-tu" puis je répond "moma" et le bot me dit "bonjour moma"

#

il reprend la meme valeur pour la réecrire

drowsy ocean
#

Go dans #python

ionic rose
dry sleet
ionic rose
dry sleet
#

Un bot en java ?

dry sleet
#

Essaye de trouver un cours sur le java et tu sauras faire ça très vite, c'est assez basique

bitter mango
#

Bonjour a tous, je voulais savoir, j'ai envie de créer un effet de parallaxe un peu plus lent que le scroll. J'ai trouvé des trucs en JS mais j'arrive pas a faire en sorte que l'effet de parallaxe commence avec l'image centrer, parceque en soit le haut de mon image est pas interessant ce qui m'interesse c'est le centre.

#

Ou alors au moins un moyen de faire la transition entre les background qui se repetent avec un flou genre.

severe saddle
olive lake
copper pagoda
olive lake
copper pagoda
olive lake
copper pagoda
olive lake
copper pagoda
#

Mais ouais c'est vrai que ça peut faire bizarre après c'est comme ça.

olive lake
#

Merci beaucoup en tout cas

copper pagoda
#

De rien.

mellow mauve
#

salut, est ce que y'a qlq qui peut m'aider avec ce pb ??

spiral veldt
mellow mauve
#

?

civic fractal
spiral veldt
spiral veldt
#

Peur

olive lake
#

Bonjour, bonjour ! J'ai encore un soucis ^^" J'essaie désespérément de contacter une api et elle me réponds undefined. (J'ai censuré le token du serveur c'est normal sinon je me ferais taper sur les doigts.) Auriez vous une petite idée ?

const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');
const superagent = require('superagent')
module.exports = {
    data: new SlashCommandBuilder()
        .setName('vote')
        .setDescription('Pour voter pour le serveur !'),
    async execute(interaction) {
        let { check } = superagent.get('https://api.top-serveurs.net/v1/votes/claim-username?server_token=XXXXXXXX&playername=Alnon77')
        console.log(check)
        if (check.code === 200) {
            const nextVote =  Math.floor(Date.now() * 1e-3 + 60* check.duration);
            const embed200 = new EmbedBuilder()
                .setColor(0x0099FF)
                .setTitle(`Doucement l'ami !`)
                .setDescription(`Je peux comprendre que tu es impatient(e) mais ton prochain est disponible dans <t:${nextVote}> !`)
                .setFooter({ text: 'Tu devras refaire la commande pour que je puisse vérifier ton vote !' });
            interaction.reply({embeds: [embed200], ephemeral: true});

        }
    },
};```
spiral veldt
#

En code block please

mellow mauve
mellow mauve
spiral veldt
civic fractal
olive lake
#

Zarow, ambassadeur de la cybersécurité sur discord

civic fractal
#

Met le dans un droit "sécurisé". Qui n'est pas dans le fichier principal du bot

olive lake
spiral veldt
#

Oui

olive lake
#

Il va falloir que tu m'en dise un peu plus @spiral veldt

mellow mauve
civic fractal
civic fractal
spiral veldt
#

Nn mon tél avais mal pris le code block

#

Mb

olive lake
#

Pas de soucis

civic fractal
#

Il n'y a pas de Code Block sur téléphone enfin du moins, pas comme sur PC

spiral veldt
#

si faut juste qu'ils chargent

#

bref

civic fractal
olive lake
civic fractal
olive lake
spiral veldt
#

main.js -->

const Discord = require("discord.js")
const intents = new Discord.IntentsBitField(3276799)
const bot = new Discord.Client({intents})
const config = require("./config")

config.js

module.exports = {

    token: "token"
}
#

J'aurais fais comme ça

#

c'est plus simple

civic fractal
civic fractal
olive lake
civic fractal
#

Cela veut dire que ce n'est pas défini

spiral veldt
olive lake
civic fractal
mellow mauve
civic fractal
spiral veldt
spiral veldt
drowsy ocean
#

Salut dites moi ce qu'il y a je peux vous aider

mellow mauve
spiral veldt
#

att

civic fractal
olive lake
drowsy ocean
olive lake
drowsy ocean
olive lake
drowsy ocean
#

lorsque tu fais le superagent.get ajoute await devant et essaye

#

car c'est une fonction asynchrone

olive lake
#

ça n'a pas marché

drowsy ocean
#

ok dispo call ?

olive lake
#

Mais l'idée était très bonne

mellow mauve
civic fractal
drowsy ocean
#

@mellow mauve Je peux t'aider ?

mellow mauve
mellow mauve
drowsy ocean
#

je sais pas ou exactement mais c'est lui qui t'enpeche d'executé

mellow mauve
drowsy ocean
mellow mauve
#

?

drowsy ocean
mellow mauve
drowsy ocean
#

Ca appartient a discordjs v12 et là on est a la v14

#

Et bcp de choses ont changé

mellow mauve
#

donc ça doit expliqué prk ça marche pas

drowsy ocean
# mellow mauve donc ça doit expliqué prk ça marche pas

👉 Yo les potes, je vous fais un petit tuto de comment coder un bot Discord avec discord.js v14 ! Dans cette vidéo, on va commencer par les prérequis pour coder le robot et apprendre à le démarrer ! N'hésite pas à t'abonner, activer la cloche, liker et rejoindre mes réseaux (merci) !

👉 Discord développeur : https://discord.com/developers/docs/in...

▶ Play video
keen narwhal
#

Saluuut ! J'ai une erreur lors de l'utilisation de commandes avec mon bot 😦

#

Je me suis renseigné sur internet, mais je n'ai pas trouvé de quoi m'aider (je suis bien en "messageCreate")

glass cargo
drowsy ocean
glass cargo
#

Si il a besoin d’aide pour le faire, à ce moment là on aura besoin du code ^^

keen narwhal
#

Mais il ne fonctionne toujours pas 😦

drowsy ocean
glass cargo
drowsy ocean
glass cargo
#

C’est pas une erreur qui fait crash ton code normalement

keen narwhal
#

yes je vous fais ça

#

J'ai pu le mettre qu'ici

#

sinon il est trop long

#

En faite les commandes marchait y'a quelque semaines, sauf que là plus rien fonctionne :/

drowsy ocean
keen narwhal
#

13.8.0

#

me suis tromper dsl

#

j'utilise la 13.8.0

drowsy ocean
#

tu n'utilise pas messageCreate

keen narwhal
#

Si je l'ai changé juste après avoir envoyé le code

#

Mais aucun changement apparent

drowsy ocean
keen narwhal
#

là peut pas trop ya du monde chez moi

drowsy ocean
#

ok réexecute ton bot et donne nous le message d'erreur stp

keen narwhal
#

c'est fou y'a aucune erreur mais les commandes ne s'envoient pas

drowsy ocean
# keen narwhal c'est fou y'a aucune erreur mais les commandes ne s'envoient pas

La structure de ton bot est très brouillon, je te conseil de suivre ce tutoriel: https://www.youtube.com/watch?v=COwKz34VMns&list=PLCKgTe6DYNc60EiOlsnSNMhva6-zgr2MN&ab_channel=MadRage

👉 Yo les potes, je vous fais un petit tuto de comment coder un bot Discord avec discord.js v14 ! Dans cette vidéo, on va commencer par les prérequis pour coder le robot et apprendre à le démarrer ! N'hésite pas à t'abonner, activer la cloche, liker et rejoindre mes réseaux (merci) !

👉 Discord développeur : https://discord.com/developers/docs/in...

▶ Play video
#

Cela te permettra de réduire tes erreurs

keen narwhal
#

super merci à toi

ionic rose
#

pourquoi ca me met ce message d'erreur?

#

j'ai pas l'impression d'avoir fait derreur

#

il me dit que flags est pas défini mais il est pas a définir

olive lake
ionic rose
olive lake
olive lake
olive lake
ionic rose
#

comment voir si je suis en v14?

olive lake
ionic rose
#

j'en ai pas pour linstant je crois

olive lake
ionic rose
#

discord.js@14.7.1

olive lake
#

Parfait

ionic rose
#

jessaye mais la jpense jai fais de la merde

#

att je vais essayer de comprendre

olive lake
#

Je pense qu'il faut que tu repartes à zéro avec le guide @ionic rose

ionic rose
#

ok fallait juste sauvegardé

dry sleet
#

@ionic rose je te conseille de ne jamais partager ton token

#

tu devrais supprimer ton screen

glass cargo
#

Ou regen le token :)

dry sleet
#

Oui

ionic rose
#

tkt c pas le toké entier

#

token

#

jai suppr la fin

quasi mauve
visual sequoia
#

Salutation,
Je suis actuellement embeter par messageDelete qui me return pas de message:
https://prnt.sc/p8APC4_B_inZ

      const messageContent = messageDelete.content
      log.createLog("Un message a été supprimé!", `**Utilisateur:** <@${messageDelete.author.id}> \n **Channel:** <#${messageDelete.channel.id}> \n **Message:** ${messageContent}`, 4)
Lightshot

Captured with Lightshot

#

Thanks in advance!

copper pagoda
fleet scaffold
#

Hello, je voulais savoir si quelqu'un avait déjà utilisé Firebase sur un site Html/CSS pour avoir un site fullstack sans aucun back-end

visual sequoia
visual sequoia
drowsy ocean
visual sequoia
#
const client = require('../client.js');
const log = require('../Functions/Logs');
const utils = require('../Functions/Utils');

module.exports = {
    name: 'messageDelete',
    once: false,
    execute: async (messageDelete) => {
      if (messageDelete.author.bot) return;
      console.log(messageDelete)
      const messageContent = messageDelete.content
      log.createLog("Un message a été supprimé!", `**Utilisateur:** <@${messageDelete.author.id}> \n **Channel:** <#${messageDelete.channel.id}> \n **Message:** ${messageContent}`, 4)
    },
};

@drowsy ocean

drowsy ocean
visual sequoia
visual sequoia
copper pagoda
visual sequoia
drowsy ocean
copper pagoda
#

Oki

drowsy ocean
visual sequoia
#

Sauf que je peut pas de dire exactement je suis plus devant mon pic

#

Pc

copper pagoda
#

Ah mince

drowsy ocean
copper pagoda
#

Tu es redispo ce soir sinon ?

visual sequoia
copper pagoda
#

Vas-y mentionne nous quand tu es de retour.

visual sequoia
drowsy ocean
#

@visual sequoia C'est bon tu a réglé ton pb ?

keen narwhal
#

bonjour, ce code est sencer vérifier toutes les 10 secondes si il y a plus d'une personne dans un vocal et si oui éxécuter la suite du code

    setInterval(() => {
      this.client.guilds.cache.forEach((guild) => {
        guild.members.cache.forEach((member) => {
          if (member.voice.channel) {
            if (member.voice.channel.members.size !== 1) {
              async () => {
                // give xp to this user
                Logger.info(`Giving xp to ${member.user.tag}`);

                const guildExists =
                  await prisma_instance.guild.findFirstOrThrow({
                    where: { guildId: guild.id },
                  });
                if (!guildExists) return;
                const userExists = await prisma_instance.user.findFirstOrThrow({
                  where: { userId: member.id, memberOfId: guildExists.id },
                });
                if (!userExists) return;

                let xptoadd = Math.floor(Math.random() * 1000) + 1;
                let level = userExists.level;
                let xp = userExists.xp;

                if ((level + 1) * 1254 <= xp + xptoadd) {
                  level++;
                  await prisma_instance.user.update({
                    where: { id: userExists.id },
                    data: {
                      level: level,
                      xp: xp - level * 1000,
                    },
                  });
                } else {
                  await prisma_instance.user.update({
                    where: { id: userExists.id },
                    data: {
                      xp: xp + xptoadd,
                    },
                  });
                }
              };
            }
          }
        });
      });
    }, 10000);

Le problème étant que on est 2 dans le vocal mais rien ne s'éxécute même pas le Logger.info(Giving xp to ${member.user.tag});

drowsy ocean
# keen narwhal bonjour, ce code est sencer vérifier toutes les 10 secondes si il y a plus d'une...

Faire un scan toute les 10 secondes peut s'avérer gourmand en ressources, je te conseil dans un premier temps de te servir de l'event voiceStateUpdate: https://discord.js.org/#/docs/discord.js/main/class/Client?scrollTo=e-voiceStateUpdate

drowsy ocean
keen narwhal
#

Yes j'arrive dans 3 minutes

visual sequoia
#

@drowsy ocean @copper pagoda Juste pour vous dire que ses good merci quand même!

copper pagoda
#

Oki ça marche de rien.

glass cargo
#

Bonjour, est-ce que quelqu'un saurais pourquoi est-ce que la variable configs est réduite alors que c'est configsRestant qui devrait l'être ?

#
const configs = githubData.configs;

let configsRestants = configs;

let allAnswers = [];

askConfig();

function askConfig() {
    console.log(configs)
    const questions = configsRestants[0].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.type !== "number" && config.required && input === "") {
                    return "Ce champ est requis !";
                }
                if (config.type === "number" && config.required && !input || input === "") {
                    return "Ce champ requiert un nombre !";
                }
                return true;
            },
            filter: input => {
                if (config.type === "number" && isNaN(input)) return Number.isNaN(input) || Number(input) <= 0 ? '' : Number(input)
                return input
            },
        }
    })

    console.log(yellow(`\n\n\nÉtape ${allAnswers.length + 1}/${configs.length}${configsRestants[0].name ? ` - ${configsRestants[0].name }` : ""}`))

    inquirer.prompt(questions).then(async (answers) => {
        allAnswers.push({
            filePath: configsRestants[0].path,
            answers: answers
        })

        configsRestants.shift();

        if (configsRestants.length !== 0) askConfig();

        if (configsRestants.length === 0) {
            // ...
            console.log("Questionnaire terminé !")
        }
    })
}
red torrent
glass cargo
#

Comment je peux faire dcp ?

red torrent
#

Si tu veux copier un tableau et pas y faire référence il faut le dupliquer ```js
let configsRestants = [...configs];

glass cargo
#

Je teste ça 🤔

#

ça marche !

#

merci ^^

copper sapphire
#

Bonjour, j'aimerai savoir quel est la ligne de code pour mettre un bot discord dans un salon vocal?

copper sapphire
#

merci

normal lichen
#

Bonjour, savez vous comment je peut faire pour mp un membre depuis son id ou son uername sur discord s'il vous plait ?

normal lichen
#

j'ai vue sa ^^

#

mais sa correspond pas a ce que je souhaite faire 😅

drowsy ocean
normal lichen
#

la fonction

visual sequoia
normal lichen
#

je souhaite que un membre publie ce message via un modal, ensuite je stock en base de donnée l'id de ce message et l'id du membre

#

et je veut que lorsque je clique dans le select menu sa mp ce membre ^^

visual sequoia
drowsy ocean
drowsy ocean
normal lichen
#

yep l'id de l'interaction est la meme jusque la sa fonction je recupere bien les donnée du membre

visual sequoia
#

Sauf que sa marche pas...

drowsy ocean
visual sequoia
drowsy ocean
normal lichen
#

j'ai reussi je pense x)

#
db.query(
            "SELECT user_id FROM attentewl WHERE message_id = ?",
            [interaction.message.id],
            async (err, req) => {
                const userId = req[0].user_id;
                bot.users.fetch(userId, false).then((user) => {
                    switch (interaction.values[0]) {
                        case "visayes":
                            user.send("tu a été validé");
                            break;

                        case "visano":
                            user.send("tu a été refusé");
                            break;

                        case "visavoc":
                            // await theUser.send("tu es convoquer en vocal");
                            user.send("tu a été validé");
                            break;

                        default:
                            break;
                    }
                });
            }
        );
#

sa me donne sa et sa mp bien le membre, je suis juste repasser par un then car si je stocker en variable sa fonctionner pas

drowsy ocean
normal lichen
visual sequoia
# drowsy ocean Envoi ton code
    const thread = await message.startThread({
                            name: 'Discussion Privée',
                            autoArchiveDuration: 60,
                            type: ChannelType.PrivateThread,
                            reason: 'Discussion entre chef.',
                        });
drowsy ocean
drowsy ocean
visual sequoia
# drowsy ocean Et ton message ici représente quoi ?
await channel.send({
                     //   content: `|| @everyone ||`,
                        embeds: [formEmbed],
                        components: [buttons, selectmenu]
                    }).then(async message => {
                        const thread = await message.startThread({
                            name: 'Discussion Privée',
                            autoArchiveDuration: 60,
                            type: ChannelType.PrivateThread,
                            reason: 'Discussion entre chef.',
                        });
#

Plus exactement

drowsy ocean
#

ça devrait t'aider

drowsy ocean
#

Reproduit la meme

#

ça devrait le faire

visual sequoia
visual sequoia
drowsy ocean
#

"Private threads behave similar to Group DMs, but in a Guild. Private threads can only be created on text channels."

#

Tu peux uniquement les créer comme ça

#

En tout cas pour les threads privé

visual sequoia
#

Ah mais comment je peut le mentionnez?

drowsy ocean
visual sequoia
drowsy ocean
visual sequoia
drowsy ocean
visual sequoia
drowsy ocean
#

Si tu donne l'url ou l'id je pense que c'est bon

#

le mec aura juste a clické dessu

visual sequoia
drowsy ocean
visual sequoia
drowsy ocean
#

Les private sont différement présenté que les public

visual sequoia
#

Ouais idk a voir

fleet scaffold
visual sequoia
fleet scaffold
#

Tu gère le fait de créer des private Thread ou non ?

glass cargo
#

Si ton salon est réservé aux admins, ils seront les seuls à pouvoir accéder aux threads publics qui s’y trouvent @visual sequoia

#

Donc pas besoin de galérer avec des threads privés ^^

visual sequoia
visual sequoia
glass cargo
#

Donc tu crée un salon privé pour "les boss" et si ton bot crée des threads public, ils seront les seuls à pouvoir y accéder ^^

visual sequoia
glass cargo
#

^^

opal harness
#

👋 Hey,

Quelqu'un sait d'où vient l'error là avec le module mysql2

drowsy ocean
opal harness
drowsy ocean
drowsy ocean
opal harness
drowsy ocean
opal harness
drowsy ocean
opal harness
#

C'est une base de donnée qui est hébergé par OVH mais pas par moi, je n'ai pas accès au root

drowsy ocean
keen narwhal
#

cOUCOU

#

Je suis entrain de coder mon bot discord

#

C difficile, si quelqu'un peut m'aider c avec plaisir

drowsy ocean
#

Tu reste jusqu'a quel heure ?

keen narwhal
#

@drowsy ocean

drowsy ocean
#

Vers 23h minuit c'est bon ?

keen narwhal
#

Ok

keen narwhal
drowsy ocean
#

Yes je serais en voc

keen narwhal
#

Ok

#

Vien en MP

red parrot
#

Salut les ptits gars

#

j'ai un gros probleme, je bloque dessus depuis presque 1h

#

en gros je dev un systeme de ticket sur mon bot discord

#

et je bloque sur ça dans mon code :

#
          let EmbedPermissionLock = new EmbedBuilder()
          .setColor("#2F3136")
          .setDescription(`❌ Vous n'avez pas la permission requise !`)
        
          if(!interaction.member.permissions.has(Discord.PermissionFlagsBits.ManageChannels)) return interaction.reply({embeds: [EmbedPermissionLock], ephemeral: true})
        
          let EmbedLock = new EmbedBuilder()
          .setColor("#2F3136")
          .setDescription(`🔒 Ce ticket a été verrouillé par <@${interaction.member.id}>`)
        
          interaction.channel.send({embeds: [EmbedLock]});
          interaction.channel.permissionOverwrites.edit({SEND_MESSAGES: false})

        }
        else if(interaction.customId === "unlock") {
          let EmbedPermissionUnlock = new EmbedBuilder()
          .setColor("#2F3136")
          .setDescription(`❌ Vous n'avez pas la permission requise !`)
        
          if(!interaction.member.permissions.has(Discord.PermissionFlagsBits.ManageChannels)) return interaction.reply({embeds: [EmbedPermissionUnlock], ephemeral: true})
        
          let EmbedUnlock = new EmbedBuilder()
          .setColor("#2F3136")
          .setDescription(`🔓 Ce ticket a été déverrouillé par <@${interaction.member.id}>`)
        
          interaction.channel.send({embeds: [EmbedUnlock]});
          interaction.channel.permissions.reset();
        }```
#

en gros quand mon compte admin clique sur le bouton "lock", l'embed pour dire que le salon à été lock s'envoie

#

mais mon double compte avec lequel j'ai ouvert le ticket peut tjrs écrire

glossy gazelle
#

qui peux m'aider svp

drowsy ocean
drowsy ocean
red parrot
#

justement bg j'ai été verif la documentation je bloque

#

je sais plus quoi faire

drowsy ocean
red parrot
#

oui

#

.9

glass cargo
drowsy ocean
glass cargo
#

ah x)

mellow parrot
#

Demande d'aide avec le module Gamedig (pour mon serveur Gmod)

frank dock
#

Heyy je viens pour vous exposer un de mes problème... J'ai fini de migrer mon bot vers les commandes / il y a peut et il y a encore pas mal de bugs mais là j'ai un bug et je ne vois pas du tout d'où il sort. Pour résumer : dès que j'allume mon bot, il quitte un serveur "inconnu"... J'ai uniquement l'identifiant du serveur. Quand je suis allé chercher dans ma database un ID correspondant à celui fourni je ne trouve aucun serveur alors que le bot ne supprime pas les serveurs de sa database lorsqu'il est retiré d'un serveur pour garder la configuration que les créateurs ont faite. Je ne comprends pas pourquoi le bot quitte ce serveur spécifiquement à chaques démarrages... Quelqu'un pourrait m'aider svp ? Je tiens à préciser que l'event ready.js ne contient pas de client.guild.leave("l'id du serveur"); et que l'index ne contient pas de code du genre js client.on('ready', () => { client.guild.leave("l'id"); })

#

La recherche de l'ID en question :

frank dock
#

Ma db:

frank dock
frank dock
#

non la v14

#

le bug est toujours d'actualité

leaden prism
#

hey est ce que qlqn sait comment je peut modfier le contenu d'une balise html en js svp

glass cargo
leaden prism
#

ba sa marche pas

#

score.innerHTML = point

#

g fait sa

#

sa me met des err partout

glass cargo
leaden prism
#

bizard

#
var score = document.getElementById("score")```
#

c comme sa on est d'accord?

leaden prism
#

ba bizard

glass cargo
#

mais est-ce que tu as bien une balise qui a l'id score ?

leaden prism
#

oui

#
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Snake</title>
    <link rel="stylesheet" href="./style.css">
    <script src="./snake.js"></script>
</head>
<body>
    <h1>Snake</h1>
    <canvas id="board"></canvas>
    <div id="score">0</div>
</body>
</html>```
glass cargo
#

🤔

#

bizarre

fleet scaffold
#

regarde ou il a placé son script JS

fleet scaffold
leaden prism
#

Mais c bizard Prcq sa arrive à détecter la balise canvas

sand wing
languid igloo
#

salut ya des gens qui touche un peut a nuxt.js 2 sur vuetify.js j'ai une galère sur un affichage

languid igloo
pallid plume
#

yes

rancid willow
#

Bonjour voici mon problème, dans l'embed le code me sort comme résultat "object object" alors que je souhaite les coins donc ici "107", pour info le nom de la table est "argent"

pallid plume
#

console.log(coins) pls

rancid willow
#

voilà ce que m'a donné le console.log

pallid plume
#

Bah tu log un object le problème vient de la

#

T'as pas la valeurs dans coins la

rancid willow
#

comment je peux modif le code là du coup ?

potent sail
#

@rancid willow t'ulise qu'elle module pour le db.query stp ?

#

Normalement dans let coins tu ne devrai pas avoir une autre requete vu que tu l'as déjà fait au dessus, essaye de console.log(req)

sand wing
# floral bolt On ne voit pas le code
  <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.5.1/gsap.min.js"></script>
    <style>
      #counter {
        font-size: 72px;
        text-align: center;
        font-family: 'Roboto', sans-serif;
      }
    </style>
    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
  </head>
  <body>
    <div id="counter">1</div>
    <script>
      gsap.to("#counter", {
        duration: 2,
        repeat: 0,
        yoyo: false,
        ease: "Power2.easeInOut",
        onUpdate: function() {
          document.querySelector("#counter").innerHTML = Math.floor(this.progress() * 100);
        }
      });
    </script>
  </body>
</html>```
keen narwhal
#

Bonjour, je fais actuellement ma commande lb. Mais j'ai un souçi j'ai un utlistauer qui est niveau 1 quand je crée une variable récupérant le niveau et que je la log bah ça donne 1 et quand je crée une autre variable qui vaut la 1ère variable +1 bah ça donne 11
Code : ```js
let leaderboard = await req.sort((a, b) => calculXp(parseInt(b.xp), parseInt(b.level)) - calculXp(parseInt(a.xp), parseInt(a.level)))
for(let i = 0; i< (req.length > 10 ? 10 : req.length); i++) {
let nextLevel = leaderboard[i].level
let reelLevel = nextLevel + 1
console.log(nextLevel)
console.log(reelLevel)
}

#

du coup le log de nextLevel donne 1 et reelLevel donne 11

floral bolt
#

Parce que c’est dès string que tu envois de base

#

Enfin j’avais eu ce problème et ça venait de ça

keen narwhal
#

ah donc faut parseInt ?

keen narwhal
#

@floral bolt merci c'était bien ça faut parseInt

glass cargo
#

Quelqu'un sait-t-il pk mon URI n'est pas bien encodée ?

const clientId = config.infos.id;
const redirectUri = window.location.origin + "/#/dash";
const scope = "guilds identify";
const oauthUrl = `https://discord.com/api/oauth2/authorize?client_id=${clientId}&redirect_uri=${encodeURI(redirectUri)}&response_type=code&scope=${encodeURI(scope)}`;
past nimbus
#

Il n'y a rien à encoder ?

past nimbus
#

Tu as pas check la doc ?

#

Tu dois passer l'url complète, sinon il peut pas deviner qu'il s'agit d'un query string params

glass cargo
#

c'est à dire ?

past nimbus
#

Non tu utilises le mauvais utils

#

encodeURIComponent

#

encodeURI il attend une url complète

glass cargo
#

ah merci

#

ça fonctionne :p

#

Autre question du coup, pk il me renvoie le code comme ceci : http://localhost:8080/?code=CODE#/dash ?

past nimbus
#

Il y a #/dash à la fin du code ?

glass cargo
#

il devrait me renvoyer vers ça : http://localhost:8080/#/dash?code=CODE non ?

past nimbus
#

Oui, tu as config les redirect uri sur l'interface de ton app ?

glass cargo
past nimbus
#

En lui passant la redirect uri en brut tu as testé ?

glass cargo
#

ça marche pas

past nimbus
#

Seul différence qui change avec mes intégrations c'est le #, donc peut-être qu'il aime pas trop, tu as essayé sans ?

glass cargo
#

vue be like...

past nimbus
#

Ah

#

:x

#

Je sais pas sorry

glass cargo
#

je regarde sur google pour voir comment le retirer

potent sail
#

Tu peux utilise le mode history pour l'enlever dans ton router

glass cargo
potent sail
#

Ta un htaccess ?

#

Car le mode history c'est plus du client ducoup

glass cargo
#

ah nan c good

#

ChatGPT : mode: "history"
Autre solution trouvée sur google : history: createWebHistory()

#

et mtn ça fonctionne :)

#

merci quand même !

potent sail
#

Pas de soucis

glass cargo
#

Bonjour
J'utilise NextJS. J'ai dans un fichier .json un code couleur. J'aimerais que le fond de tous les boutons de toutes les pages soient de cette couleur. Comment puis-je faire ?

fleet scaffold
glass cargo
#

globals.css :

.primary {
  background: #2F3136;
  border-radius: 1em;
  border: none;
  padding: 25px;
  transition: all 0.3s ease;
  color: white;
  font-size: 1.5em;
  font-weight: bold;
  font-family: 'Nunito', sans-serif;
  outline: none;
  text-decoration: none;
}

.primary:hover {
  background: #36393F;
  cursor: pointer;
}
#

NavBar.tsx (composant)

import config from "@/utils/config.json"
import { useRouter } from "next/router"
import styles from "@/styles/components/NavBar.module.css"

export default function NavBar() {
    //const router = useRouter()
    const redirect = (url: string) => {
        //router.push(url)
        return undefined
    }

    return (
        <div className={styles.navbar}>
            <div className={styles.left}>
                <img src={config.infos.avatar} alt={config.infos.name} className={styles.logo}/>
                <button className={`${styles.primary} primary`}>Accueil</button>
                {
                    config.infos.docs ? <button className={`${styles.primary} primary`} onClick={redirect(config.infos.docs)}>Documentation</button> : null
                }
                {
                    config.infos.support ? <button className={`${styles.primary} primary`} onClick={redirect(config.infos.support)}>Serveur support</button> : null
                }
            </div>
            <div className={styles.right}>
                <button className={`${styles.tertiary} tertiary`}>Se connecter</button>
            </div>
        </div>
    )
}
fleet scaffold
#

Pourquoi tu utilise pas direct style= ?

#

si tu fais du react

glass cargo
fleet scaffold
#

style={[{
color: config.infos.mainColor || "autrecouleur"

glass cargo
#

Mais là, ça ne s'applique qu'à un seul bouton

#

Je voudrais que ça s'applique à tous ceux qui ont la classe primary

fleet scaffold
thick sage
#

Qq s'y connais pour me programmer deux type de bot discord svp
Un ou c est un bot qui genere des codes nitro
un deuxieme ou c'est pour une interface afin de simplifier du gta rp Ps4
merci d'avance

glass cargo
glass cargo
#

Ça m’avais même pas traversé l’esprit 🤣

thick sage
#

nn je demande juste

fleet scaffold
#

Bah react c'est des composant donc c'est plus simple de faire comme ça xd

glass cargo
#

Je rappelle : nitro gen = illégal

#

Et pour le gta rp, https://g-ca.fr/offres

GCA

Tu recherches ou tu es un développeur, graphiste, modélisateur, ou tout autre créateur de contenu ?
Tu es au bon endroit ! Tu peux désormais poster une annonce ou même proposer tes services très facilement !

Qu'attends-tu ? Rejoins-nous dès maintenant !

thick sage
#

ok

#

mais comme j ai pas de reponse de la personne contacter ba je suis venu ici

red parrot
#

Yo quelqu'un peut m'aider je comprend vrmt pas la '-'

glass cargo
red parrot
#

Ah, je vais test

#

(ta le meme prénom que moi mdr)

glass cargo
#

C'est noté

red parrot
#

Mdrrrr

#

et ça fonctionne

#

merci, pour un vieu cache '-'

#

ptn de langage mdr

glass cargo
#

x)

red parrot
glass cargo
#

dis-moi

red parrot
#

j'ai pas d'erreurs

#

par contre

#

mon role "support" ne peut pas claim le ticket en question

#

alors que je leur ai donner la permission

glass cargo
#

🤔

#

C'est quoi que tu veux faire ?

red parrot
#
            let EmbedPermissionClaim = new EmbedBuilder().setColor('#2F3136').setDescription(`❌ Vous n'avez pas la permission requise !`);

            if (!interaction.guild.roles.cache.get("1067389692472999966").permissions.has(Discord.PermissionFlagsBits.ManageChannels))
                return interaction.reply({ embeds: [EmbedPermissionClaim], ephemeral: true });

            let EmbedClaim = new EmbedBuilder().setColor('#2F3136').setDescription(`🔨 Ce ticket a été pris par <@${interaction.member.id}>`);```
#

ca

#

ils ont la permission "gerer le salon" dans la catégorie pourtant

glass cargo
#

Nan mais le but du truc

#

Tu veux vérifier quoi ?

red parrot
#

ca consiste en ça mdr

#

Que quand ils appuies sur le bouton "claim" ca renomme le salon

#

Moi ça marche evidemment j'suis admin

#

mais eux, meme avec la perm ça veut pas

glass cargo
#

oui mais avec ton if

#

Tu veux vérifier quoi ?

#

Que la personne qui clique sur le bouton a tel role ?

red parrot
#

Bah en gros si il a la permission

#

que ça claim le ticket

glass cargo
#

ok

#

if (!interaction.member.roles.cache.has("roleId")) return interaction.reply(...)

#

Ici, le bot vérifie si la personne a un role. Si elle ne l'a pas, il lui sort l'erreur

red parrot
#

Ok super je test ca

#

Pourquoi il me cache le code du dessous ?

glass cargo
#

Tu as mis un ; après ton if

#

ah nan

red parrot
#

nan que je le mets ou non il me la cache quand meme

glass cargo
#

tu as un return sous ton if

red parrot
#

ah ui

#

voila comme ça c'est plus logique mdr

#

voila là ça fonctionne

glass cargo
#

^^

red parrot
#

merci bg

red parrot
#

xD

glass cargo
red parrot
#

je l'enleve juste en haut enft ? '-'

#

ptn j'suis rouillé

glass cargo
#

Tu as du la déclarer x2

#

renomme la deuxième

red parrot
#

A part ici :

#

et ici

#

ctt

red parrot
#

genre ça

glass cargo
#

non

red parrot
#

ah

#

effectivement ça marche moins

glass cargo
#

tu utilise ta variable avant de la déclarer.

#

C'est comme un panneau attention école, qui se situe après l'école

red parrot
#

Ok

#

comme ça

#

fallais juste déplacé quoi

glass cargo
#

👍

red parrot
#

Bah mtn ca me mets une autre erreur qui est completement illogique

#

genre mon embed fonctionne plus KappaCringe

#

que l'erreur vient de la ligne "const embed"

#

y avait rien avant mdr

#

j'ai rie ndis

#

j'avais juste mis addfields en trop

#

Ah bah non enfaite ça veut pas

#

Comme si l'erreur se produit parce que la variable values n'a pas de valeur définie au moment où elle est passée à la méthode addFields, car elle n'est définie qu'après le code où elle est utilisée alors que non enfaite

red parrot
#

C'est réglé, tout ça à cause du role

#

ptn

red parrot
#

Hé j'ai l'impression que je ne sais plus dev sérieux

#

quelqu'un peut me dire pourquoi il ne détecte pas le chiffre 2000 quand on l'écrit et du coups n'applique pas le changement de description

#

(j'ai 0 erreurs)

glass cargo
desert riverBOT
keen narwhal
#

bonjour, j'ai buy un code de crow bot mais lorsque je fais node index.js, j'ai cette erreur qui s'affiche :

#
C:\Users\Admin\Documents\CrowBot Discord\node_modules\bindings\bindings.js:121
        throw e;
        ^

Error: \\?\C:\Users\Admin\Documents\CrowBot Discord\node_modules\better-sqlite3\build\Release\better_sqlite3.node is not a valid Win32 application.
\\?\C:\Users\Admin\Documents\CrowBot Discord\node_modules\better-sqlite3\build\Release\better_sqlite3.node
    at Module._extensions..node (node:internal/modules/cjs/loader:1243:18)
    at Module.load (node:internal/modules/cjs/loader:1037:32)
    at Module._load (node:internal/modules/cjs/loader:878:12)
    at Module.require (node:internal/modules/cjs/loader:1061:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at bindings (C:\Users\Admin\Documents\CrowBot Discord\node_modules\bindings\bindings.js:112:48)
    at new Database (C:\Users\Admin\Documents\CrowBot Discord\node_modules\better-sqlite3\lib\database.js:48:64)
    at Object.<anonymous> (C:\Users\Admin\Documents\CrowBot Discord\node_modules\quick.db\src\index.js:7:15)
    at Module._compile (node:internal/modules/cjs/loader:1159:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1213:10) {
  code: 'ERR_DLOPEN_FAILED'
}

Node.js v18.12.1```
#

sauriez-vous m'aider s'il vous plaît ?

#

pingez moi si vous postez une réponse svp ;)

lean jacinth
#

De ce que je vois, better-sqlite3 n'as pas l'air d'avoir réussi à build, et donc est introuvable

#

installe les build tools sur ta machine de dev, et de prod

keen narwhal
#

merde le ping

#

excuse moi

keen narwhal
lean jacinth
#

Pour te la faire courte, better-sqlite3 à besoin d'être build car le code est dans un langage compilé, hors, si ta machine n'as pas les outils pour build le projet, ca ne marchera pas

#

Pour windows il faut python, et Visual Studio (pas visual studio code)

#

Sinon tu fais juste un npm i better-sqlite3 et dans l'erreur il t'affichera quoi installer

keen narwhal
#

il me dit ça :

#
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated diglet@1.0.6: This package is no longer maintained.

changed 22 packages, and audited 368 packages in 32s

54 packages are looking for funding
  run `npm fund` for details

17 vulnerabilities (2 moderate, 10 high, 5 critical)

To address issues that do not require attention, run:
  npm audit fix

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.```
lean jacinth
#

better-sqlite3 est en c++, et vu que chaque machine est différente, ils ne fournissent pas le fichier binaire directement, il faut qu'il build, et pour build du C++ sur windows il te faudra Visual Studio

keen narwhal
#

il faut que j'installe quoi ?

lean jacinth
keen narwhal
#

je vais tenter d'installer visual studio

#

prsk python je l'ai déjà

lean jacinth
#

Si tu fais juste npm i il te met pas d'erreur ?

keen narwhal
#

lequel je télécharge

lean jacinth
#

community

keen narwhal
keen narwhal
#
PS C:\Users\Admin\Documents\CrowBot Discord> npm i

up to date, audited 368 packages in 3s

54 packages are looking for funding
  run `npm fund` for details

17 vulnerabilities (2 moderate, 10 high, 5 critical)

To address issues that do not require attention, run:
  npm audit fix

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.```
#

je mets quoi ?

#

juste node.js ?

#

bon RIP t'es parti

red parrot
#

j'ai console log ma valeurs en mettant console.log('Value of interaction.values: ', interaction.values);

#

ce qui donne en gros ```const EmbedCategory = new EmbedBuilder().setColor('#2F3136').addFields({
name: 'Catégorie sélectionnée:',
value: (() => {
if (!interaction.values) {
return "Valeur non définie pour interaction.values";
}

    switch (interaction.values) {
        case 'help':
            return "Besoin de discuter / problème IRL";
        case 'helpstaff':
            return "Signaler un staff";
        case 'helpmember':
            return "Signaler un membre";
        case 'other':
            return "Autre demande";
        default:
            return "Valeur non reconnue";
    }
})(),
inline: true

});

#

Le log me donne bien ma valeur "help" ou "helpstaff" ... mais par contre

#

Il me dit "valeur non reconnue" dans la catégorie

#

Alors qu'il reconnait bien ma value

#

je pige pas

glass cargo
#

La propriété values renvoi un tableau de toutes les valeurs sélectionnées (tu peux faire en sorte que l'utilisateur puisse en sélectionner plusieurs). Tu dois donc prendre la première valeur de ce tableau : values[0]

red parrot
#
        if (!interaction.values || !Array.isArray(interaction.values)) {
            return "Valeur non définie pour interaction.values ou n'est pas un tableau";
        }

        switch (interaction.values[0]) {
            case 'help':
                return "Besoin de discuter / problème IRL";```
#

comme ça du coups ?

#

Ouais ça à marcher

#

merci mon reuf tu m'aides bcp

glass cargo
#

^^

keen narwhal
# keen narwhal

@lean jacinth bon désolé pour le ping mis j'ai vrmt besoin d'aide stp

glass cargo
#

Bonsoir,
J'ai ici un système de connexion à Discord. Je souhaite récupérer les serveurs de l'utilisateur qui se connecte et pouvoir les récupérer sur d'autres pages de mon site. Je les sauvegarde avec les données de l'utilisateur et les stocke grâce à un JWT. Je souhaiterais stocker ce JWT dans un cookie. Or, quand je consulte la liste des cookies, il n'y en a pas. J'utilise NextJS 👀

#
    const body = new URLSearchParams({
        client_id: config.infos.id,
        client_secret: process.env.CLIENT_SECRET!,
        grant_type: "authorization_code",
        redirect_uri: REDIRECT_URI,
        code,
        scope,
    }).toString();

    // @ts-ignore
    const { access_token, token_type = "Bearer" } = await axios.post("https://discord.com/api/oauth2/token", body, {
        headers: { "Content-Type": "application/x-www-form-urlencoded" },
    }).then(res => res.data);

    if (!access_token || typeof access_token !== "string") return res.redirect(OAuthURL);

    // @ts-ignore
    const me: DiscordUser | { unauthorized: true } = await axios.get("https://discord.com/api/users/@me", {
        headers: { Authorization: `${token_type} ${access_token}` }
    }).then(res => res.data);

    const guilds: Guild[] | { unauthorized: true } = await axios.get("https://discord.com/api/users/@me/guilds", {
        headers: { Authorization: `${token_type} ${access_token}` }
    }).then(res => res.data);

    if (!("id" in me)) return res.redirect(OAuthURL);

    const token = sign({ user: me, guilds: guilds }, process.env.JWT_SECRET!, { expiresIn: "1w" });

    res.setHeader("Set-Cookie", [
        serialize("cookie", token, {
            httpOnly: true,
            secure: process.env.NODE_ENV !== "development",
            sameSite: "lax",
            path: "/"
        })
    ]);

    res.redirect("/dash");
}```
#

Sachant, que quand j'enregistre juste les données de l'utilisateur, le cookie s'enregistre bien (sans que j'ai rien changé)

fleet scaffold
#

ah et le nombre MAXI des donnée de cookie d'un seul site = 16Ko

#

regarde LocalStorage à mon avis

glass cargo
#

dcp, comment est-ce que je peux faire ?

fleet scaffold
fleet scaffold
#

comme quoi le cookie n'est pas présent

#

Après si ton cookie fait de la physique quantique harold

glass cargo
#

Ah x)

#

Dans le navigateur j'ai le localStorage du JWT, mais j'ai pas le cookie x)

fleet scaffold
glass cargo
#

Donc logique que ça passe pas dans un cookie x)

#

Sauf que dcp, jsp comment stocker le jwt

fleet scaffold
#

yup

#

bah LocalStorage

#

comme google

glass cargo
#

Je look ça 👀

glass cargo
#

J'ai localStorage is not defined

fleet scaffold