#javascript-typescript

1 messages · Page 24 of 1

sharp star
#

@modern skiff tu as la solutions au problème ?

#

@dusk berry tu saurais aider au problème juste au dessus ?☝️

dusk berry
#

ah

#

javais envoyé un msg pour dire que oui mais il n'est jamais arrivé xd

sterile lark
#

j'ai pas reçu de message dsl

normal lichen
#

Bonjour, je fait actuellement un bot en ts et j'ai cette condition

if (interaction.member.roles.cache.some(r => r.id === Roles.staff))

qui ne fonctionne plus, j'ai une erreur sur le .cache, pourriez vous me dire comment corrigez cette ligne s'il vous plait ?

Property 'cache' does not exist on type 'GuildMemberRoleManager | string[]'.
Property 'cache' does not exist on type 'string[]'.ts

merci beaucoup 😁

grizzled lily
#

Salut petit question vous savez comment je peux enlever sa ?

slim anvil
#

sauf si tu met la réponse en ephemeral

frosty sand
#

Le message « Le tuer 23 a utilisé </verification:0282989289299> ? »

slim anvil
#

et donc personne la verra sauf l’utilisateur qui a entré la commande

frosty sand
#

Ah j’allais dire ça

#

Ephemeral et apres sa envoie sans réponse

oak turret
#

Ephemeral c'est exactement la même chose mais c'est visible seulement par la personne qui fait la commande, et elle aura un petit "bouton" pour enlever la réponse en gros

frosty sand
#

Oui ephemeral et sa envoie sans répondre après le ephemeral le message originel

#

J’ai déjà fait sa c’est clean

#

Mais j’ai oublié comment

floral bolt
#
            ephemeral: true
        });```
#

pas plus compliqué

grizzled lily
#

Salut, quelque peux me dire pourquoi avec moi sa marche mais les autre personne ?

cerulean spoke
#

bonjour tt le monde ... nouvelle journée .. nouveau challenge 🙂

#

j'aimerai créer en JS une fonction qui prendrait en variable un objet ayant des données JSON et le mettre en forme en HTML dans une table ...

#

les données JSON ne sont jamais les memes ... ni statiques au niveau du nombre de colonnes

#

j'avais pour idée de faire la création d une variable accueillant l'ensemble des données html et de faire un append a la fin ...

#

mais voila ... (pas fort en objet ...) je vois pas comment mettre n forme l'objet ne connaissant pas le nombre de td .. qui varie

#

sur des tableau définit du genre var1 = blabla et var2 = blabla j'aurai bouclé sur l'ensemble des objets contenant les données définies puis ajouté ca dans les td respectifs ... puis append .. mais la vu que je connais pas le nombre de variables je visualise pas trop la chose ..

#

donc je suis preneur d'idées 🙂

#

ma base de départ :

#

function makeTableFromObject(objects , cible) {

const newTable = document.createElement("table");
newTable.innerHTML = "<thead><th>Var1</th><th>Var2</th></thead>";
for(object of objects){
const newRow = document.createElement("tr");
const tdVar1= document.createElement("td");
const tdVar2 = document.createElement("td");
tdVar1.textContent = Var1.valeur1;
tdVar2.textContent = Var2.valeur2;
newRow.appendChild(tdVar1);
newRow.appendChild(tdVar2);
newTable.appendChild(newRow);
}

const target = document.getElementById(cible);
target.appendChild(newTable);

}

jaunty granite
#

Salut ce serait pour demander si quelqu’un n’aurait pas un exemple de commande de ce style sans pour autant passer par les slash commandes mais plutôt de faire une commande de ce genre la !invite et ça met ça car je sais pas comment faire pour les messages chats merci de votre aide

past nimbus
jaunty granite
#

je narrive pas a corriger cette erreur pourtant la commande a bien un nom regardez :

dusk berry
#

essaye de déclarer ta fonction et de faire

module.exports = {taFonction}
jaunty granite
dusk berry
#

hum possible de passer par autre chose replit ne fonctionne pas chez moi

dusk berry
#

nop

function DonneUnNomATaFonction(MessageEmbed) {
  return {
    name: "ping"
    async //...
  }
}

module.exports = { DonneUnNomATaFonction }
dusk berry
#

ouaip

#

essaye comme ça

jaunty granite
jaunty granite
#

ca ma remis ca

floral bolt
dusk berry
#

il te met quoi quand tu passe ta souris sur le require('discord.js')

jaunty granite
dusk berry
#

et sur Message ?

floral bolt
#

non mais juste l'erreur est ecrite ...

#

envois ton loadcommands

jaunty granite
#

okay

jaunty granite
floral bolt
#

si je ne me trompe pas ton name doit etre en dehors du return

floral bolt
#

attend

jaunty granite
#

okay

floral bolt
#
module.exports = {
  name: "ping",
  async runCommand(message, args) {
   // ton code
  },
}```
jaunty granite
floral bolt
#

montre message create

jaunty granite
#

okay

jaunty granite
floral bolt
#

ah si tu as le repl je suis prenneur

jaunty granite
#

okay att

past nimbus
#

run =/= runCommand

floral bolt
#

oui

jaunty granite
floral bolt
#

bah il veut pas se lancer

#

ah voila

#

test

jaunty granite
#

okay

jaunty granite
jaunty granite
cerulean spoke
#

pour vous c'est quoi la solution la plus simple de recharger un div dans le dom suite à un changement de sa valeur avec un innerHTML ?

glass cargo
#

hein?

cerulean spoke
glass cargo
#

je comprends pas ce que tu veux...

cerulean spoke
#

ah lol

#

j'ecris des choses dans un div ...

#

mais

#

lorsque je selectionne l'inspecteur de code et que je pointe sur le div ... il m'affiche la valeur qui était précédemment ecrite dedans ...

#

du coup il me semble que le dom est pas a jour ...

#

d ou ma question .. peut on recharger le dom après coup ... après lui avoir changé sa structure ... sans recharger la page bien sur

glass cargo
#

Une div ou un textarea ?

cerulean spoke
#

div

glass cargo
#

tu peux pas écrire dans un div 🤔

cerulean spoke
#

ah

#

ok ... je dois etre magicien 🙂

glass cargo
#

Envoie ton code xD

#

Je crois qu'on s'est mal compris x)

cerulean spoke
#

juste l'idee

#

et ben quand j utilise ce principe dans mon code ... il change à l'écran ... mais si j'essaye de faire un console.log ... bah undefined

glass cargo
fleet scaffold
fleet scaffold
#

après l'exemple du Block de script je me suis fail c'est un style, mais c'est un cas d'utilisation "envisageable" 👀

sterile lark
#

?

#

quelqun aurait une solution svp

silent raptor
#

Bonjour tout le monde, est ce que quelqu'un aurait un lien vers une vidéo ou un site qui explique comment faire en sorte qu'un bot discord va sur un site déjà existant (si c possible déjà)

past nimbus
#

Tire un fil entre les deux

silent raptor
#

mdrrrrr

#

Je veux juste que le bot va sur un site déjà existant si j'ai pas été assez clair

#

Après dit juste que c pas possible

past nimbus
#

T'as essayer de le poser dessus ?

silent raptor
fleet scaffold
#

Tu parle de la connexion avec discord ? Ou autre chose qui n'as rien à voir ?

silent raptor
fleet scaffold
#

Alors, un bot discord n'as aucun rapport avec ça

silent raptor
#

Car j'ai vu quelqu'un envoyé un message sur son site et sa à renvoyé le message sur discord par le bot

fleet scaffold
#

Ouais ça s'appelle un websocket

#

ou une requête API

#

tu peux relier ton bot discord à n'importe quoi

#

c'est simplement un programme

past nimbus
silent raptor
fleet scaffold
#

ta seule limite c'est ton imagination

#

Et normal qu'il y ai pas de tuto clair de ta demande car tu ne sais même pas ce que c'est.

Pour t'aiguiller, renseigne toi sur :

API HTTP, Websocket, et la route api send Message(sur discord.dev ça)

Maintenant si tu ne sais pas comment lire une documentation API, je vais pas pouvoir t' aider plus que ça

silent raptor
fleet scaffold
#

Maintenant je suis désolé, il est 1h du matin au Japon 🇯🇵 donc je répondrais il sera sûrement 2/3h du matin environs

silent raptor
#

Okk merci encore

#

A toi aussi @past nimbus pour t renseignements qui m'ont vraiment été très utile

fleet scaffold
#

(2/3h du matin en France)

silent raptor
#

J'avais compris bonne nuit à toi du coup

past nimbus
#

De rien

slim anvil
silent raptor
#

Okk merci

empty mauve
#

hey je bosse sur une commande pour voir les statut des commande (fonctionel, en cour de dev, ...) et je voudrais savoir quand on add des option quel option récupère les commande?

floral bolt
#

tu veux dire quoi ?

#

tu parles de quoi plutot

#

Sinon moi j'ai un ptit soucis j'essaye de faire une app pour twitch mais j'arrive pas a faire un auto scroll qui descend jusqu'en bas de la page il reste toujours quelques pixel :

#

j'ai fait avec nextjs : ```js
<div className={"h-full overflow-y-auto pb-6 bg-slate-800 relative"}>

            {messages.map((message, i) => (
                <MessageContent data={message} key={i}/>
            ))}
            <div ref={messagesRef}/>
        </div>```
#
                messagesRef.current?.scrollIntoView({behavior: 'smooth'})
            }```
slim anvil
#

je sais pas si tu vois ce que je veux dire

#

pour tester tu devrais essayer de setTimeout juste pour écarter cette hypothèse ou non

floral bolt
#

ah yes bonne idée merci

void coyote
#

y0 quelqu'un à une idée de c'est quoi le nouveau bitfield flag pour l'envoie des messages ?

#

en discord v14

void coyote
#

update j'ai trouver, j'avais pas mis de s

silent raptor
#

Bonjour, j'ai un soucis avec mon bot voici mon code: ``` const guildId = message.guild.id;

    const commandsDirectory = path.join(__dirname, '..', 'Bot_Image');

    const browser = await puppeteer.launch({
        headless: 'new'
    });

    const page = await browser.newPage();

    try {

      await page.goto(url, { waitUntil: 'networkidle0' }); 
      const screenshotPath = path.join(commandsDirectory, `image_${guildId}.png`);
      await page.screenshot({ path: screenshotPath });

  } catch (err) {
      return message.reply("L'image ne s'est pas chargée !");
  }

  const screenshotPath = path.join(commandsDirectory, `image_${guildId}.png`);
  
  const embed = {
    title: 'Image Téléchargé',
    description: `L'image a été téléchargé avec succès depuis le lien : ${lien}`,
    image: {
      url: `attachment://${screenshotPath}`
    }
  };
  
  const files = [
    {
      attachment: `${screenshotPath}`,
      name: `${screenshotPath}`
    },
  ];

  message.reply({
    embeds: [embed],
    files
  });
}      

};```

rocky oar
silent raptor
#

Att 2sec mon message d'erreur est trop long

#

Je vais l'envoyer en plusieurs fois

#
(Use `node --trace-warnings ...` to show where the warning was created)
C:\Users\\Desktop\BOT_DISCORD_Dev\node_modules\@discordjs\rest\dist\index.js:687
      throw new DiscordAPIError(data, "code" in data ? data.code : data.error, status, method, url, requestData);
            ^

DiscordAPIError[10062]: Unknown interaction
    at handleErrors (C:\Users\\Desktop\BOT_DISCORD_Dev\node_modules\@discordjs\rest\dist\index.js:687:13)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async BurstHandler.runRequest (C:\Users\\Desktop\BOT_DISCORD_Dev\node_modules\@discordjs\rest\dist\index.js:786:23)
    at async _REST.request (C:\Users\\Desktop\BOT_DISCORD_Dev\node_modules\@discordjs\rest\dist\index.js:1218:22)
    at async ChatInputCommandInteraction.reply (C:\Users\\Desktop\BOT_DISCORD_Dev\node_modules\discord.js\src\structures\interfaces\InteractionResponses.js:111:5) {
  requestBody: {
    files: [
      {
        data: Buffer(216008) [Uint8Array] [
          137,  80,  78,  71,  13,  10,  26,  10,   0,   0,   0,  13,
           73,  72,  68,  82,   0,   0,   3,  32,   0,   0,   2,  88,
            8,   6,   0,   0,   0, 154, 118, 130, 112,   0,   0,   0,
            1, 115,  82,  71,  66,   0, 174, 206,  28, 233,   0,   0,
           32,   0,  73,  68,  65,  84, 120, 156, 236, 189, 233, 122,
          227,  72, 146,  45, 120, 204,  29,  27,  23,  45,  17, 145,
           89, 221, 125, 251, 187, 253, 254, 175,  53, 243, 107, 190,
          169,  59,  85, 153, 177,  72,  92,   0, 183, 249, 225,  11,
          220,   1,   7,   8,
          ... 215908 more items
        ],
        name: 'C:\\Users\\\\Desktop\\BOT_DISCORD_Dev\\Bot_Image\\image_1145658541244432394.png',
        contentType: undefined
      }
    ],```
#

Je suis désolé le message d'erreur est un peu trop long je savais quelle partie envoyé je ne le comprends pas

rocky oar
#

Le problème est au niveau de l'intéraction : DiscordAPIError[10062]: Unknown interaction

silent raptor
#

Okk je vais voir

pallid path
#

Bonjour, j’ai une question sa fait quelques jour que je dev un petit site internet en html avec aussi des scripts en Js.
Il y a aussi un outil de traduction ou quand on change la langue cela va chercher les traductions dans un fichier traduction.js
Mon problème est que lorsque je test mon site en local tout fonctionne en revanche, quand je le test en ligne selon certain navigateur et le support ( tel ou PC ) cela fonctionne ou non. Je ne sais pas comment réglé se problème.
Voici le site si vous voulez bien y jeter un coup d’œil : https://istres-airbnb.fabien83560.fr

#

Si vous avez besoin du code n’hésitez pas à me le demander

keen narwhal
#

Quelqu'un pourrait m'aider a régler ça ? Je débute je ne comprend pas trop

queen ocean
keen narwhal
queen ocean
#

Ça c’est un fichier

keen narwhal
queen ocean
#

Montre ton package.json

keen narwhal
queen ocean
#

Tu vois Start à la 12eme ligne ?

keen narwhal
queen ocean
#

Change node . par node src/index.js

keen narwhal
#

good?

queen ocean
#

Puis pour lancer ton bot tu fais la commande npm run start

queen ocean
#

Ton bot ce lance, mtn ta des erreurs dans ton code

keen narwhal
civic dragon
grave bronze
pastel cave
#

Salut, est-ce que quelqu'un sait comment ajouter des éléments dans une div avec un forEach en React/TypeScript:

    render() {
        return <div>
                    <h3>{this.state.name}</h3>
                    <div>
                        {
                            this.state.products.forEach(elem => {
                                elem.category === this.state.name ? <div>Hi</div> : null
                            })
                        }
                        
                    </div>
                </div>
    }

mais là ça marche pas

slim anvil
#

et c'est recommandé d'utiliser .map au lieu de .forEach pour boucler sur ton state

#

et faut aussi return dans ta boucle

#

ou alors remplace les dernières {} par des ()

#

et oublie pas d'ajouter le key à tes élements

#

d'ailleurs pourquoi du class component au lieu d'utiliser du functional component ?

#

question innocente

pastel cave
#

j'ai besoin des elements de state hors de la fonction, donc je les fais passer par une classe (je sais pas si c'est clair...)

slim anvil
#

je suis pas sur de comprendre

#

si tu peux expliquer avec des exemples

pastel cave
#

juste j'ai fais ça pour le render:

render() {
        return (
            <div>
                <h3>{this.state.name}</h3>
                <div>
                    { this.state.products.map(elem => (
                            elem.category === this.state.name ? <div>Hi</div> : null
                        ))
                    }
                </div>
            </div>
        );
    }
#

je te montre les exemples

#

ah bah j'ai pas d'exemple fais ^^
je commence en React, et c'est un tp sur la chaine de Grafikart

slim anvil
#

Le fait de passer par des Class component ou des function Component, n'impactera pas directement ton code, mais avec les Class component tu vas devoir faire attention aux side-effect et autre qui seront plus chiant a gérer (de part le fait de tout gérer via des lifecycle => componentDidMount etc..)

avec les Functionnals component tout ça disparait, la gestion des erreurs, state, etc.. es*t plus simple

anyway, dans ton cas ton state est déclaré dans ta class, tu as besoin de le récupéré ailleurs ?
aussi, quand tu dis "je veux ajouter un élément", comment ? via un autre composant ? un click ?

pastel cave
#

en fait je fais ce tp, et pour rechercher des articles je vais aller voir dans la classe si elle a le mot clé

slim anvil
#

ouais après là le screen je vois pas trop de quoi il s'agit, enfin le contexte,je vois juste un composant qui filter les vegetables et les fruits
le but c'est de faire quoi

#

ah ok tu dois refaire le screen blanc de ton côté ?

pastel cave
#

oui, et la méchanique qui va avec

slim anvil
#

Ok et concrètement ton archi ressemble à quoi ? tu as un parent qui contient les products et tu les passes à un component Filter ? (ou autre nom osef)

#

(via les props)

pastel cave
#

c'est ça

slim anvil
#

Okay ce que tu vas faire c'est dans ton component filter déjà c'est déclarer un state de type string (keyword, ou autre) pour venir créer ta recherche

tu vas venir au onInput ou au onChange mettre à jour ton state

#

et ensuite venir créer 2 computed, pour venir filter directement ton productList en fonction de ton state keyword

#

mais si tu veux un conseil, passe directement en functional component

pastel cave
#

transformer ma classe en fonction ?

slim anvil
#

oui

pastel cave
#

ok

slim anvil
#

et tout le code dedans sera vachement simplifié

pastel cave
#

c'est dans quel cas qu'on utilise plutot une classe ?

slim anvil
#

Y a pas vraiment de "lequel est le mieux" en réalité, juste les lifecycle faut bien les maitriser, ca peut devenir pénible à force, et comme dit tout ce qui est side effect / gestion d'erreur en class component est plus chiante

pastel cave
#

ok

slim anvil
#

mais tbh de plus en plus tu verras class component disparaitre, ou du moins etre - utilisé

#

du coup concrètement tu devrais avoir un truc du genre

export default function Filter ({ products } : { products: Array<Product> }) {
  const [keyword, setKeyword] = useState<string>('')

  const vegetables = useMemo(() => {
    return products?.filter((product) => product.category === 'vegetables'))
  }, [keyword])

  return (
    <div>
      <input type="text" value={keyword} onChange={...} />
      {vegetables?.map((vegetable, v) => (
        <p key={v}>{vegetable.name}</p>
      ))}
    </div>
    )
}

grosso modo

pastel cave
#

ok, je vois

void coyote
void coyote
keen narwhal
glass cargo
#

Simplement qu'il ne peut pas utiliser import X from 'X' en dehors d'un module. Il doit utiliser const X = require("X") :)

#

@keen narwhal

fleet scaffold
#

faut écrire "type" :"module" 👀

proven dagger
glass cargo
#

Redescend kapp

proven dagger
#

Le problème est flagrant, tu n'aides pas quand tu n'as pas les compétences ^^ (je parle de l'autre)

void coyote
void coyote
carmine crag
#

on peut m'aider prq mon bot se lance pas

grave bronze
#

Il fait mettre des intents

carmine crag
grave bronze
#

C’est soit un chiffre soit un array

#

Mais pas les deux

carmine crag
#

donc je change quoi ?

grave bronze
#

Enlève les []

#

Et ça devrait fonctionner

carmine crag
#

nn sa marche pas

carmine crag
grave bronze
#

Bizarre

proper loom
#

Le i majuscule

carmine crag
proper loom
#

client.on("ready", async() => {
console.log("Le bot est connecté")
})

proper loom
carmine crag
#

?

proper loom
#

Je t'explique après

carmine crag
#

ok

dire latch
#

Faut mettre les intents sur le bot, dans la page web

proper loom
proper loom
dire latch
#

Ah j'ai pas vu

carmine crag
proper loom
carmine crag
proper loom
#

Tu devrais relire ce que j'ai dit

carmine crag
#

a dsl j'vais pas vus att je teste

carmine crag
desert riverBOT
#

Suggestion for @carmine crag:
:guide: Popular Topics: Gateway Intents
read more

glass cargo
#

:)

proper loom
#

T'avais mal fait le listener

client.on("ready"), async() => {}

T'avais déjà fermé la function

glass cargo
#

Le guide est la doc de DiscordJS sont supers, ça serait dommage de s'en passer nan ?

carmine crag
#

qui peut m'aider il veut pas démarrer
const { Client, Intents } = require('discord.js');
const { REST } = require('@discordjs/rest');
const { Routes } = require('discord-api-types/v9');

const TOKEN = 'tokentkt';
const CLIENT_ID = '1148246108703838248';
const GUILD_ID = '1147899015963361385';

const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });

client.once('ready', () => {
console.log(Logged in as ${client.user.tag});
});

const commands = [
{
name: 'userinfo',
description: 'Get user information',
type: 1,
options: [
{
name: 'user',
description: 'Select a user',
type: 6,
required: true,
},
],
},
{
name: 'ping',
description: 'Get bot ping',
type: 1,
},
];

const rest = new REST({ version: '10' }).setToken(TOKEN);

(async () => {
try {
console.log('Started refreshing application (/) commands.');

await rest.put(
  Routes.applicationGuildCommands(CLIENT_ID, GUILD_ID),
  { body: commands },
);

console.log('Successfully reloaded application (/) commands.');

} catch (error) {
console.error(error);
}
})();

client.on('interactionCreate', async (interaction) => {
if (!interaction.isCommand()) return;

const { commandName, options } = interaction;

if (commandName === 'userinfo') {
const userOption = options.getUser('user');
const user = userOption ? userOption : interaction.user;

await interaction.reply(`User ID: ${user.id}`);

} else if (commandName === 'ping') {
await interaction.reply(Pong! Bot latency is ${client.ws.ping}ms.);
}
});

client.login(TOKEN);

#

svp aidez moi

desert riverBOT
#

Documentation suggestion for @carmine crag:
:property: (static) IntentsBitField.Flags
Numeric WebSocket intents

left forum
carmine crag
proper loom
#

Et t'a déjà oublié ?

#

Tu peux faire un effort et remonter au moins la discussion

carmine crag
proper loom
left forum
#

cache ton token...

#

@carmine crag

carmine crag
left forum
#

reset le au cas où

carmine crag
left forum
#

👉 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
#

suit ce tuto

#

et apprends javascript si ce n'est pas fait

carmine crag
left forum
#

bah 1 an c'est récent encore

cobalt oyster
left forum
#

bah au pire il corrige ce qui est obsolète

#

à attendre tout le code tout cuit ça l'aidera pas à apprendre

cobalt oyster
#

c'est pas vraiment l'obsolécence les problèmes de ce tuto

#

c'est surtout les mauvaises pratique , j'ai vraiment du mal a recommander mad rage

carmine crag
#

je trouve pas l'erreur
erreur dans la consol :
PS C:\Users\Kloklo\Desktop\kingprotect.xyz-BOT> node .
Le bot est connecté
Started refreshing application (/) commands.
DiscordAPIError[50035]: Invalid Form Body
1.options[0][UNION_TYPE_CHOICES]: Value of field "type" must be one of (9, 7, 4, 11, 2, 8, 3, 6, 10, 1, 5).
at handleErrors (C:\Users\Kloklo\Desktop\kingprotect.xyz-BOT\node_modules@discordjs\rest\dist\index.js:687:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async SequentialHandler.runRequest (C:\Users\Kloklo\Desktop\kingprotect.xyz-BOT\node_modules@discordjs\rest\dist\index.js:1072:23)
at async SequentialHandler.queueRequest (C:\Users\Kloklo\Desktop\kingprotect.xyz-BOT\node_modules@discordjs\rest\dist\index.js:913:14)
at async _REST.request (C:\Users\Kloklo\Desktop\kingprotect.xyz-BOT\node_modules@discordjs\rest\dist\index.js:1218:22)
at async Client.<anonymous> (C:\Users\Kloklo\Desktop\kingprotect.xyz-BOT\index.js:46:9) {
requestBody: { files: undefined, json: [ [Object], [Object] ] },
rawError: {
message: 'Invalid Form Body',
code: 50035,
errors: { '1': [Object] }
},
code: 50035,
status: 400,
method: 'PUT',
url: 'https://discord.com/api/v10/applications/1148246108703838248/guilds/1147899015963361385/commands'
}

#

on peut m'aider svp

#

@queen oceantu mais tjr un glace quand j'ecris toi prq mdr ?

carmine crag
#

a ok mdr

oak turret
#

T'as une valeur de l'objet du field "type" qui n'est pas égal à l'une des valeurs citées juste après

lapis kindle
carmine crag
#

mdr

proper loom
carmine crag
keen narwhal
#

Il y aurait des gens pour m'aider à faire mon code

J'ai fait un bot musique et je voudrais que il fasse aussi modération ban jeu ...

grave bronze
grave bronze
#

Pas de problème 😉 !

dense ice
#

Hello, j'ai besoin d'ajouter un boutton sur mon panel cependant je ne peux mettre que du script JS en injection, avez vous un script qui ajouter un boutton avec un lien cliquable svp ?

proper loom
dense ice
#

Mais, je peux uniquement injecter le script car il s'agit d'un panel de management

#

(WISP)

proper loom
#

Je crois que tu devrais attendre un autre

fleet scaffold
dense ice
#

En gros, je veux ajouter la même chose que ça :

fleet scaffold
#

puis += au innerHTML

dense ice
#

J'y connais rien en JS, j'espèrais que ce soit simple :x

proper loom
proper loom
granite hemlock
#

Bonsoir , j’ai besoin d’aide

#

J’arrive pas à débloquer la situation

oak turret
#

Du coup

#

tu peux pas envoyer un screen du code sur ton pc ?

#

mais du coup c'est normal

granite hemlock
#

Vas-y mais je sais pas screen sur Mac 💻

#

Haha

oak turret
#

Ahhh

#

aucune idée de comment faire

granite hemlock
#

Hahaha

#

Du coup c’est normal chef?

oak turret
#

Tu utilises DJS V14 ?

granite hemlock
#

Tu parle de visual studio?

oak turret
#

Non de discord js

granite hemlock
#

Oui

oak turret
#

Regarde plutôt ceci

#

J'utilise Sheweny pour mes bot, donc la base de DJS je m'en souviens plus lol

oak turret
granite hemlock
#

J’utilise node.js

oak turret
#

Supprime, fais un .env et regénère ton token on sait jamais

granite hemlock
#

Excuse de là mal information

oak turret
#

Tu as appris le JS ?

granite hemlock
#

Non je m’aide avec chat gpt pour le connecter avant après je m’entraîne pour le dev 😭

#

Mais personne veut m’accompagner 5 minutes pour le faire

oak turret
#

Ok, alors c'est une mauvaise idée de faire comme ça si tu veux commencer

#

Chat GPT va te résoudre ou pas les problèmes, mais pas toi

#

mais je viens de te donner la solution là

granite hemlock
#

Le problème c’est que je suis sur nodejs

#

Pas DJS

#

Si je me trompe pas ^^

oak turret
#

Oui alors tu confonds les deux

#

Node.js c'est un environnement back JS

#

DJS = Discord.JS

#

c'est une librairie faites en JS qui est utilisée pour faire des bot discord (elle facilite l'utilisation de l'api de Discord en gros)

granite hemlock
#

Et cette bibliothèque ce créer grâce à la commande npm install Discord.js

#

C’est sa ?

oak turret
#

elle s'inclut à ton projet oui

granite hemlock
#

Maintenant comment je connais la version de djs?

#

C’est tout simplement la version de node js qui défini la bibliothèque finalement ?

oak turret
#

ton package-lock.json

#

ou package.json

granite hemlock
#

Je peut te les montrer sa te dérange pas?

oak turret
#

Oui vas-y

granite hemlock
#

Je suis en 14.13.0

oak turret
#

Ok alors c'est bon

granite hemlock
oak turret
#

Tu as regarder le lien que j'ai send avant ?

#

ok c'est bon

granite hemlock
#

Oui mais c’est en anglais

#

Trop chinois pour moi

oak turret
#

C'est normal mdr

#

Si t'aimes pas trop l'anglais ça va être compliqué

#

dans la prog tout est en anglais

granite hemlock
#

Mdr j’ai vraiment pas envie que tu m’abandonne accompagne moi stp

oak turret
#

si tu veux dév en français fait du windev :KaPOP:

granite hemlock
granite hemlock
oak turret
#

je t'écoute du coup

granite hemlock
#

Du coup si la version DJS est à jour le problème survient d’où ?

oak turret
#

Je t'ai send un lien

#

Envoie moi ton code dans des balises JS stp

#

```js```

#

comme ça

granite hemlock
#

Allez go

oak turret
#

Supprime

#

y a ton token

#

bon alors

#

laisse moi 2mn

#

bien alors

#
require("dotenv").config();
const { Client, GatewayIntentBits  } = require('discord.js');
const client = new Client({ 
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent,
        GatewayIntentBits.GuildMembers,
    ],
});

client.on('ready', () => {
    console.log('Connecté en tant que ${client.user.tag}');
});

client.on('messageCreate', (message) => {
    if (message.content === '!ping') {
        message.reply('Pong !');
    }
});

client.login(process.env.TOKEN);
#

Voici ton nouveau code

#

Je t'explique ce que tu dois modifier et installer

#

Stocker des informations aussi dangeureuses que ton token dans une variable c'est pas possible

#

Là je peux connecter ton bot à un bot que je peux dév et faire n'importe quoi, genre bannir tout le monde, supprimer tous les channels etc

#

J'ai donc utilisé dotenv, qui te permet de faire un fichier d'environnement accessible seulement depuis l'environnement

#

un fichier nommé .env

granite hemlock
#

Alors qu'est ce qu'un fichier environnement ?

oak turret
#

Voilà un guide assez complet

#

ça te permet de stocker des informations dangeureuses comme un token un mdp d'api, ou autre

#

tout ce qui peut être source de faille ou autre

#

ton fichier .env sera comme ça :

TOKEN="TON TOKEN"
#

et tu devras l'installer via la commande npm i dotenv

#

après ça, tu restart ton bot et ça devrait être good

#

j'ai update tes intents par la nouvelle méthode en Discord.JS V14

granite hemlock
#

Ok alors première etape je modifie le code dev

#

ensuite je met mon token

#

apres je fais la commande dans le terminale

#

pour installer dotvenv

#

dotenv

oak turret
#

Oui, puis tu restart

granite hemlock
#

allez je fait sa je te donne le compte rendu

#

Alors j'ai fait

#

J’ai même installer npm i dotenv

oak turret
#

mais ?

#

non encore

#

tu dois faire le fichier .env

#

le créer

#

puis à l'intérieur mettre

#

TOKEN="TON TOKEN"

granite hemlock
#

Ahhh autant pour moi

oak turret
#

c'est process.env.TOKEN

#

pas ton token

granite hemlock
#

Je fais sa dsl ^^

oak turret
#

supprime l'image

granite hemlock
#

Alors j’ai créer un fichier du nom de TOKEN.env

#

Et j’ai mis TOKEN =« mon token »

oak turret
#

non

#

juste .env

#

pas token.env

granite hemlock
#

Ah oui effectivement là dans le fichier le token est devenu orange

#

J’ai relancer

#

Sa ma fais sa

oak turret
#

Ok faut que t'ailles sur le panel dév de discord

#

là où t'as créé ton bot

#

Onglet bot

#

tu actives tout ça

granite hemlock
#

T’es génie

#

Y’a plus de message d’erreur

#

🚀🚀🚀🔥🔥🔥🔥🔥

oak turret
#

😉

granite hemlock
#

Hahaha t’es le meilleure merci fraté 🔥🔥🔥🔥

oak turret
#

wp, np

granite hemlock
#

Donc la si je veux m’amuser à ajouter des code de dev je dois les ajouter après ou avant client.login ?

oak turret
#

peu importe ça n'a pas d'influence, mais le plus logique c'est que le login soit tout à la fin de tes instructions

granite hemlock
#

Ok sa marche , je vais te recruter ces sur et je vais te payer aussi

#

Car t’as était le seul dev à pouvoir m’expliquer et m’aider

oak turret
#

ahahah

granite hemlock
#

T’as pris de ton temps pour sa

oak turret
#

c'est pas vraiment sorcier ça

#

c'est normal t'inquiète

#

c'est un discord d'entraide c'est normal

#

on est tous passés par là, à part ceux qui sont nés devin

granite hemlock
#

Et juste pour sa je veux vraiment à mon tour te donner du boulot si sa ce dis comme sa et investir sur toi car je suis en construction d’un bot RP

oak turret
#

#general

cobalt oyster
past nimbus
#

--> 🤑

fleet scaffold
#

pa$$ion

granite hemlock
#

Bonjour je recherche un dev en js rapidement

queen ocean
granite hemlock
#

J'ai mes embed qui ne ce lance pas

queen ocean
#

🤔

granite hemlock
#

Bot heberger API connecter tout est bien. Meme au lancement du code 0 message d'erreur

#

Mais effectivement les embed ne sont pas fonctionnel

#

require("dotenv").config();
const { Client, GatewayIntentBits } = require('discord.js');

const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
GatewayIntentBits.GuildMembers,

],

});

client.on('ready', () => {
console.log('Connecté en tant que ${client.user.tag}');
});

client.on('messageCreate', (message) => {
if (message.content === '/bienvenue') {
// Crée un message sous forme d'embed
const embed = new MessageEmbed()
.setColor('#0099ff')
.setTitle('Bienvenue sur le serveur Discord!')
.setDescription('Nous sommes ravis de vous accueillir!')
.addField('Règles', 'Veuillez lire les règles du serveur dans le salon #regles.')
.setFooter('Merci de rejoindre notre communauté!');

    // Envoie l'embed dans le salon actuel
    message.channel.send({ embeds: [embed] });
}

});

client.login(process.env.TOKEN);

#

Voici le code

queen ocean
#

ta quel version de discordjs ?

granite hemlock
#

La toute derniere

queen ocean
#

MessageEmbed existe plus alors

granite hemlock
#

14.13.0

queen ocean
#

Tu dois passer par EmbedBuilder

granite hemlock
#

Ah il faut mettre quoi a la place?

#

Ah je vais essayer merci

queen ocean
#

Oublie pas de le récuper au début de ton fichier quand tu require discordjs

#

const { Client, GatewayIntentBits, EmbedBuilder } = require('discord.js');

granite hemlock
#

Je vient de faire les modif

#

Voici le nouveau code dev

#

require("dotenv").config();
const { Client, GatewayIntentBits , EmbedBuilder } = require('discord.js');

const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
GatewayIntentBits.GuildMembers,

],

});

client.on('ready', () => {
console.log('Connecté en tant que ${client.user.tag}');
});

client.on('messageCreate', (message) => {
if (message.content === '/bienvenue') {
// Crée un message sous forme d'embed
const embed = new EmbedBuilder()
.setColor('#0099ff')
.setTitle('Bienvenue sur le serveur Discord!')
.setDescription('Nous sommes ravis de vous accueillir!')
.addField('Règles', 'Veuillez lire les règles du serveur dans le salon #regles.')
.setFooter('Merci de rejoindre notre communauté!');

    // Envoie l'embed dans le salon actuel
    message.channel.send({ embeds: [embed] });
}

});

client.login(process.env.TOKEN);

#

Sa ne fonctionne pas encore lol

queen ocean
#

Avant ta ligne if (message.content === '/bienvenue') { ajout un console.log(message.content)

#

puis envoie ta commande pour voir si ca envoie bien le log

granite hemlock
#

{ ajout un console.log(message.content)

#

tout ou juste en commencant par console.log

queen ocean
#
client.on('messageCreate', (message) => {
    console.log(message.content)
    if (message.content === '/bienvenue') {
        // Crée un message sous forme d'embed
        const embed = new EmbedBuilder()
            .setColor('#0099ff')
            .setTitle('Bienvenue sur le serveur Discord!')
            .setDescription('Nous sommes ravis de vous accueillir!')
            .addField('Règles', 'Veuillez lire les règles du serveur dans le salon #regles.')
            .setFooter('Merci de rejoindre notre communauté!');

        // Envoie l'embed dans le salon actuel
        message.channel.send({ embeds: [embed] });
    }
});
#

ca en gros

granite hemlock
#

Toujours pas chers amis

queen ocean
#

Tu as pas de msg /bienvenue dans la console ?

granite hemlock
#

Non

queen ocean
#

Dans ce cas c'est pas l'embed le problème, ta un problème ailleurs qui fais que ton bot recois pas le msg

granite hemlock
#

Peut etre parce qu'il est lancer aussi dans le visual studio

#

attend je le stop sur visual

#

sur visual il est pas lancer lol

#

les perm du bot sont clean aussi je crois

proper loom
#

C'est normal que j'arrive pas a fetch() sur mon site ?

J'ai fetch un lien pour obtenir les informations, et les affiché sous forme de json, mais rien ne se passe

granite hemlock
#

Je sais pas y'a un soucis quelque part aussi sur mon dev

#

Un simple embed passe pas lol

#

J'ai reset mon token

#

0 message d'erreur mais 0 console pour le /bienvenue

proper loom
#

Salut, j'ai un soucis au niveau de mon site, surtout la partie JavaScript, j'essaie de fetch un lien pour obtenir des informations sous forme de json, mais j'ai cette erreur :

Access to fetch at 'https://vihangayt.me/tools/chatgpt?q=Salut' from origin 'http://skyway-bot.com:20046' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
vihangayt.me/tools/chatgpt?q=Salut:1 
 Failed to load resource: net::ERR_FAILED
(index):42 
 
 Uncaught (in promise) TypeError: Failed to fetch
    at HTMLDivElement.<anonymous> ((index):42:9)```

N'hésitez pas a me ping plusieurs fois 🙂
#

Ps : J'utilise express

past nimbus
#

L'API distante n'autorise pas le CORS

#

Par contre le site distant est vraiment useless et très mal réalisé, c'est carton rouge 🟥

#

Plus de mille erreurs par seconde quand tu ouvres la consomme, joli record, vraiment

granite hemlock
#

Ont fait comment pour afficher son code comme sa ?

#

ici

#

Car j'ai un problème aussi svp

#

J'ai résolu le probleme mdr merci

frosty sand
#
"Test"
proper loom
slim anvil
#

généralement quand on comprend les erreurs on est quand meme apte à les régler 🤪

proper loom
past nimbus
#

Pour résoudre ce problème, soit tu le fais à la mano, soit tu utilises une des multiples solutions d'express (qui vont simplement faire la "manipulation" à ta place)

granite hemlock
#

Bonjour tout le monde

#

Qui pourrait m'expliquer d'ou vient le problème svp j'ai pourtant bien tout verifier niveau TOKEN et parametre bot

oak turret
#

tu as enlevé le require("dovenv").config(); ?

#

remet le et ça fonctionnera

#

@granite hemlock

granite hemlock
#

Oui j'ai remis sa refonctionne jusqu'au lancement de la commande sur le serveur discord

#

ou apres sa me met ce message d'erreur

#

Et le /bienvenue n'est pas visible aussi mdr je suis totalement perdu depuis hier sur sa

#

Meme chat gpt m'a renvoyer vers vous hahaha

slim anvil
#

alors je pense que t'as pas bien saisis la notion de slash commands
il faut que tu crées une vraie commande que tu dois register, ca fonctionne pas avec l'event messageCreate

#

là tu dois taper
/bienvenue
en dur

#

c'est comme si tu faisais !bienvenue en gros

#

alors que j'ai l'impression que ton but c'est d'avoir un rendu comme ça:

granite hemlock
#

Oui c'est effectivement sa que je veut

#

Mais meme en dur

#

La commande fonctionne pas

#

Aucun message de bot s'envoie dans le salon

#

Et merci encore pour votre communauté et votre présence vous nous aidez vraiment beaucoup nous les débutant

oak turret
#

Essaie ! au lieu de /

#

pour voir

granite hemlock
#

Allez c'est partie

#

Aucune reaction mais 0 message d'erreur

oak turret
#

Ok t’as changé de bot?

#

Oui non ok je sais ce que c’est

#

Attend je me connecte à mon pc 5mn

granite hemlock
#

Allez let's go merci tu gere comme sa c'est deja sa d'appris

#

je comprend mieux comme sa je vous promet que de lire des centaines de page mdr

oak turret
#

Après c’est comme ça qu’on apprend + l’aide des gens

#

Mais faut vraiment que t’apprennes les bases

#

sinon tu risques de jamais t’en sortir seul

granite hemlock
#

Oui sa c'est sur et certain

oak turret
#

Du coup, je pense que ton problème c'est les partials

#

je vais check comment ça se config en djs de base

slim anvil
#

c'est surtout que tu veux faire un énorme bot de ce que j'ai compris, et tu bloques aux premieres étapes, malheureusement tu iras pas jusqu'au bout tout seul si tu essayes pas de learn un peu plus le javascript avant

granite hemlock
#

Je suis totalement d'accord

oak turret
#

Mh de ce que je vois c'est censé fonctionné

granite hemlock
#

faut que je retienne tout ces codes

oak turret
#

Laisse moi 2m,

granite hemlock
#

Yes

oak turret
#

Donc si t'écris n'importe quoi dans la guild où ton bot est, ça log rien ?

granite hemlock
#

Sa le notifie dans la console de visual code

#

mais rien ne ce passe

oak turret
#

ah bah c'est bien

granite hemlock
oak turret
#

donc si tu fais

client.on("message", (message) => {
  
if (message.content === "!bienvenue") { console.log("bienvenue"); }
 
});
#

Remplace ton client.on("message")... par mon code voir

granite hemlock
#

Allez ont va faire sa

#

Alors y'a eu une différence

#

Maintenant sa le notifie plus dans la console de visual et y'a plus de message derreur des que je fais le /bienvenue

oak turret
#

c'est normal

#

c'est !bienvenue

#

...

granite hemlock
#

Mais toujours aucune embed lol

oak turret
#

Chaque chose en son temps

granite hemlock
#

Je confirme avec les deux command y'a 0 message d'erreur

oak turret
#

Mais y a un log "bienvenue" si tu fais !bienvenue

#

non ?

granite hemlock
#

Non

oak turret
#

c'est pas possible

#

fais voir ton code

granite hemlock
#

Allez go

oak turret
#

Dans une balise JS stp

granite hemlock
#

‘‘‘js

ancient sonnetBOT
#
❓ Obtenir de l'aide

Tu as besoin d'informations ? Tu es au bon endroit !
Consulte la liste des sujets pour en savoir plus sur Creators Area.

💻 Comment on envoie du code ? 💻

Pour envoyer du code sur Discord c'est très simple !
||Il vous faut d'abord du code... Et deux cubes de Kubor ! bongoTap||

En vrai, il faut utiliser les blocs de code de Discord :
Pour cela entoure ton code de ceci : ```

Par exemple :
```js
console.log("Salut Creators Area !")
```

Le résultat sera le suivant :

console.log("Salut Creators Area !")
```*Si tu es sur téléphone, tu ne verras pas le bloc de code*

> *TIPS: Si ton code est trop long, tu peux le coller sur [pastebin.com](https://pastebin.com/) et envoyer le lien par message.*
granite hemlock
#
require("dotenv").config();
const { Client, GatewayIntentBits , EmbedBuilder } = require('discord.js');

const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent,
        GatewayIntentBits.GuildMembers,

    ],
});

client.on('ready', () => {
    console.log('Connecté en tant que ${client.user.tag}');
});

client.on("message", (message) => {
  
    if (message.content === "!bienvenue") { console.log("bienvenue"); }
    if (message.content === '/bienvenue') {
        // Crée un message sous forme d'embed
        const embed = new EmbedBuilder()
            .setColor('#0099ff')
            .setTitle('Bienvenue sur le serveur Discord!')
            .setDescription('Nous sommes ravis de vous accueillir!')
            .addField('Règles', 'Veuillez lire les règles du serveur dans le salon #regles.')
            .setFooter('Merci de rejoindre notre communauté!');

        // Envoie l'embed dans le salon actuel
        message.channel.send({ embeds: [embed] });
    }
});

client.login(process.env.TOKEN);
#

Comme sa ?

oak turret
#

Non

#

presque

#

Faut que tu retournes à la ligne après ton ``js

#

Mais soit

#

Met messageCreate au lieu de message en V14 même si les deux fonctionnent toujours il me semble

granite hemlock
#

client.on("messageCreate"

#

??

oak turret
#

messageCreate au lieu de message oui

granite hemlock
#
index.js:20
Process exited with code 1
Uncaught TypeError TypeError: (intermediate value).setColor(...).setTitle(...).setDescription(...).addField is not a function
    at <anonymous> (/Users/nerimainejegham/Desktop/SpaceRoleplay/index.js:27:14)
    at emit (events:514:28)
    at handle (/Users/nerimainejegham/Desktop/SpaceRoleplay/node_modules/discord.js/src/client/actions/MessageCreate.js:28:14)
    at module.exports (/Users/nerimainejegham/Desktop/SpaceRoleplay/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
    at handlePacket (/Users/nerimainejegham/Desktop/SpaceRoleplay/node_modules/discord.js/src/client/websocket/WebSocketManager.js:355:31)
    at <anonymous> (/Users/nerimainejegham/Desktop/SpaceRoleplay/node_modules/discord.js/src/client/websocket/WebSocketManager.js:239:12)
    at emit (/Users/nerimainejegham/Desktop/SpaceRoleplay/node_modules/@vladfrangu/async_event_emitter/dist/index.js:282:31)
    at <anonymous> (/Users/nerimainejegham/Desktop/SpaceRoleplay/node_modules/@discordjs/ws/dist/index.js:1173:51)
    at emit (/Users/nerimainejegham/Desktop/SpaceRoleplay/node_modules/@vladfrangu/async_event_emitter/dist/index.js:282:31)
    at onMessage (/Users/nerimainejegham/Desktop/SpaceRoleplay/node_modules/@discordjs/ws/dist/index.js:988:14)
    at processTicksAndRejections (internal/process/task_queues:95:5) 
#

Voila le message d'erreur

oak turret
#

ah bon déjà c'est mieux mdr

#

bon laisse moi régler ça

granite hemlock
#

Allez lol

oak turret
#
if (message.content === "!bienvenue") {
    const newEmbed = new EmbedBuilder()
      .setColor(0x0099FF)
      .setTitle('Some title')
      .setDescription('Some description here')

    message.channel.send({ embeds: [newEmbed] });
  }
granite hemlock
#

Ahhhhhhhh

#

Voila

#

Sa fonctionne

oak turret
#

parfait

granite hemlock
#

C'était a cause de quoi que je retiens l'erreur ?

oak turret
#

.addField me semble t-il n'existe plus

#

c'est .addFields({}) maintenant

granite hemlock
#

Ah oookkkk

#

Donc si depuis le début j'aurais enlever cette ligne sa aurait fonctionner?

oak turret
#

normalement oui

proper loom
# granite hemlock Ah oookkkk

Si tu veux faire un message de bienvenue quand quelqu'un rejoins vaut mieux faire sa :

client.on("guildMemberAdd", async(member, guild) => {
      const channel = client.channels.cache.get("L'id de ton salon discord")
     channel.send(`Bienvenue ${member} sur ${guild.name}`)
})```
granite hemlock
#

Merci champion

proper loom
granite hemlock
#

la const channel comment l'utilisateur du bot va la config pour un salon specifique ?

#

J'ai compris

#

Ce code concerne seulement le code pour son propre serveur

#

mais si il veut partager le bot a d'autre serveur sa ne fonctionnera pas

#

Merci ^^

proper loom
#
client.on("guildMemberAdd", async(guild, member) => {
      const channel = client.channels.cache.get("L'id de ton salon discord")
     channel.send(`Bienvenue ${member} sur ${guild.name}`)
})```
glass cargo
#

Il faut que tu enregistre les salons des différents serveurs dans une bdd :)

proper loom
#

Tu utilises une database, je te conseille mongodb ou sequelize (Ps : Je te recommande pas mysql)

granite hemlock
#

Merci les gars pour votre temps vous etes geniaux !

#
require("dotenv").config();
const { Client, GatewayIntentBits , EmbedBuilder, } = require('discord.js');

client.on('message', (message) => {
    if (message.content.startsWith(prefix)) {
      const args = message.content.slice(prefix.length).trim().split(/ +/);
      const command = args.shift().toLowerCase();
  
      if (command === 'createaccount') {
        // Créer un compte bancaire pour l'utilisateur
        if (!bankAccounts[message.author.id]) {
          bankAccounts[message.author.id] = {
            balance: 0,
          };
          message.channel.send('Votre compte bancaire a été créé.');
        } else {
          message.channel.send('Vous avez déjà un compte bancaire.');
        }
      }
  
      if (command === 'balance') {
        // Vérifier le solde du compte
        const account = bankAccounts[message.author.id];
        if (account) {
          message.channel.send(`Votre solde est de : ${account.balance} crédits.`);
        } else {
          message.channel.send('Vous n\'avez pas de compte bancaire. Utilisez `!createaccount` pour en créer un.');
        }
      }
  
      if (command === 'deposit') {
        // Déposer de l'argent sur le compte
        const amount = parseInt(args[0]);
        if (isNaN(amount) || amount <= 0) {
          message.channel.send('Veuillez spécifier un montant valide à déposer.');
          return;
        }
  
        const account = bankAccounts[message.author.id];
        if (account) {
          account.balance += amount;
          message.channel.send(`Vous avez déposé ${amount} crédits. Votre solde total est maintenant de ${account.balance} crédits.`);
        } else {
          message.channel.send('Vous n\'avez pas de compte bancaire. Utilisez `!createaccount` pour en créer un.');
        }
      }
  
      if (command === 'withdraw') {
        // Retirer de l'argent du compte
        const amount = parseInt(args[0]);
        if (isNaN(amount) || amount <= 0) {
          message.channel.send('Veuillez spécifier un montant valide à retirer.');
          return;
        }
  
        const account = bankAccounts[message.author.id];
        if (account) {
          if (account.balance >= amount) {
            account.balance -= amount;
            message.channel.send(`Vous avez retiré ${amount} crédits. Votre solde total est maintenant de ${account.balance} crédits.`);
          } else {
            message.channel.send('Fonds insuffisants.');
          }
        } else {
          message.channel.send('Vous n\'avez pas de compte bancaire. Utilisez `!createaccount` pour en créer un.');
        }
      }
    }
  });
  client.login(process.env.TOKEN);
  
  
  
  
  
#

Voici le retour de ce developpement pour la création de compte en banque.

#

Pour moi je pense que le problème vient du modèle de codage qui n'est pas a jour

#

Je pense que c'est pas la bonne version js

slim anvil
#

le problème est écrit dans la 2ème ligne en rouge

granite hemlock
#

D'accord il manque le client , pourtant il est défini

slim anvil
#

nop tu as important Client, qui va te permettre justement de créer ton "client"

#

c'est pas super clair comme ils sont nommés quasi à l'identique

#

mais ton "client" en minuscle tu peux voir ça comme ton "bot", c'est lui va recevoir des events

#

le Client en majuscule c'est ce qui va te permettre justement de créer cette instance de "bot"

proper loom
#

Tu devrais suivre des tutos en ligne pour pouvoir comprendre la création d'un bot discord et d'une database

#

Tu n'es pas obligé de suivre mes conseils, mais ce sont juste des conseils 🤷

pastel dust
#

Yo je débute le js et je voulais savoir comment ln fais pour que le bot nous rep en message prv svp

#

Quand on lui parle prv il répond genre

pastel dust
#

Et mrc du coup !

proper loom
pastel dust
#

Stp

frosty sand
#

@proper loom

proper loom
proper loom
granite hemlock
#

Bonsoir les amis ^^ voila mon developpement avance trés bien les commande sont nikel maintenant je souhaiterais qu'elle s'affiche des que je fait la commande "/" comment dois procéder ? car exemple la commande /payer elle existe sur un autre bot et c'est problématique car du coup ma commande n'est pas accessible

frosty sand
#
if(message.channel.type === 0) {
       message.reply({content:`Bonjour vous allez bien ?`})
}
#

@pastel dust

slim anvil
granite hemlock
#

Donc il faut que je remplace le code messageCreate par interactionCreate?

frosty sand
#

Oui

#

comme ca sa donne ca

granite hemlock
#

C'est possible avec un js 12.5?

#

Voici un exemple d'une des commandes

#
if (command === 'compte-bancaire-créer') {
        // Créer un compte bancaire pour l'utilisateur
        if (!bankAccounts[message.author.id]) {
          bankAccounts[message.author.id] = {
            balance: 0,
          };
      
          const embed = new Discord.MessageEmbed()
            .setColor('#00ff00')
            .setTitle('Compte Bancaire Créé')
            .setImage('https://static.latribune.fr/full_width/1240767/banque.jpg') // Remplacez par l'URL de votre image agrandie
            .setDescription(`Votre compte bancaire a été créé avec succès. :moneybag:`)
            .addField('Titulaire du compte', message.author.username)
            .addField('Solde initial', '1000 dollars')
            .setTimestamp()
            .setFooter('Banque Spaceroleplay');
      
          message.channel.send(embed);
        } else {
          const embed = new Discord.MessageEmbed()
            .setColor('#ff0000')
            .setTitle('Erreur')
            .setDescription(`Vous avez déjà un compte bancaire. :x:`)
            .setTimestamp()
            .setFooter('Banque Spaceroleplay');
      
          message.channel.send(embed);
        }
      }
slim anvil
granite hemlock
#

Pourrais tu m'accompagner rapidement sur ce détails stp? t'es le meilleure si tu le fais

#

Je suis encore en train d'apprendre sa me permettrais d'apprendre grave cette fonctionnalité

pastel dust
frosty sand
#

De rien c’est fait pour ça le serveur

void coyote
#

Salut ! J’ai une question, comment on fait pour garder nos lignes de code fermer même après redémarrage de l’application ou autre. Pour ceux qui ne comprennes pas voici un exemple :

#

Et avec plus de 1’000 ligne de code c’est vraiment chiant…

fleet scaffold
#

bah

#

Separe ton code dans d'autre fichiers ? 👀

#

tu fais pas de giga méga Block rassure moi ?

#

@void coyote

slim anvil
#

là tu veux juste le code sinon

void coyote
fleet scaffold
#

Les fonctions tout simplement

granite hemlock
#

Bonjour tout le monde je recherche des dev qui pourrait m’aider à MAJ un code dev de 12.js à 14.js

#

Exemple je souhaiterais avoir les slashcommand qui sont très importante pour la facilité du projet en cours de programmation

rose isle
rose isle
granite hemlock
#

‘´´js
J’utilise les if ( command === ‘compte-bancaire-créer’) {
‘´´

#

Faut juste que je demande à un dev qui me montre comment faire pour mettre à jour ce type de command

#

Car je connais pas les command V13 et 14

slim anvil
#

@granite hemlock honnêtement la migration est super accessible, sur la doc de discord.js il y a un exemple des la première page qui dans ton cas prend en charge 100% de tes besoins

sinon tu peux faire une offre sur le site du serveur pour chercher un dev pour faire ton bot

granite hemlock
cobalt oyster
#

@granite hemlock Apprend en reprenant de zero essaye pas de mettre ton code v12 à jours meilleure solution sinon tu vas ramer

void coyote
rose isle
cobalt oyster
#

Pas malin de pas les utilisé sachant que petit à petit elles deviennent de plus en plus obligatoire

cobalt oyster
rose isle
cobalt oyster
#

Bah un peu quand même :p

void coyote
#

@cobalt oyster j’avais créé mon bot les commandes slash avait aucune importance, le logo “prend en compte les commandes slash” sur les bot n’était même pas présent.

#

De plus, je suis pas fan des commandes slash qui ne te laisse aucune liberté.

#

Sincèrement, j’ai fait une commande slash pour que j’ai le badge sur moi sinon, j’en ai aucune.

slim anvil
#

c'est beaucoup plus simple, surtout pour l'utilisateur

#

il a pas besoin de chercher dans quel ordre tu dois mettre les paramètres, ni de faire un !help pour voir les commandes, tout est intégré in-app c'est quand meme mieux lol

#

tu peux trigger une modal si besoin etc.. donc si il a raison, Discord pousse clairement a l'utilisation des / commands et c'est recommandé de les utiliser, à terme vous allez vous retrouvez bloqué pour faire certaines choses

#

(sans parler du fait d'avoir des paramètres users, autocomplete et autre qui sont super pratique)

void coyote
#

Je ne sais pas si je me suis mal exprimé, mais je ne pense pas avoir mentionner que Discord ne pousser pas à l’utilisation des commandes slash.

slim anvil
#

tu retiens la moitié de ce que j'ai dis, je te répond surtout au fait "- de liberté" tu en as tout autant voir +

#

sachant que tu peux manager beaucoup plus facilement les types de tes options

queen ocean
void coyote
# slim anvil sachant que tu peux manager beaucoup plus facilement les types de tes options

En effet, depuis quelques année, les commandes slash prennent de plus en plus de place dans discord avant elle était presque invisible aujourd’hui les bots les plus “connu” sont sous commande classique et commande slash.
Oui je trouve personne que la liberté est moins présente, par exemple la rapidité des commandes. Je trouve que je suis plus rapide à taper mes commandes qu’à utiliser les commandes slash. (Il y a même d’ailleurs plus de manipulation). C’est plutôt sa que j’entend pas liberté, le fait qu’un menu s’ouvre pour te boucher la vu du salon sur lequel tu es.

#

Après je suis d’accord sa a certain plus, comme l’ordre des paramètres dans une commande, tout de suite avec les commandes slash, l’ordre est affiché donc se tromper et presque voir impossible. Mais je pense qu’étant donner que ça fait longtemps que je code dans les slash, les commandes vont modifier mes habitudes… Je pense que c’est ça qui doit me déplaire.

slim anvil
#

Il y a pas + de manipulations, il suffit de taper / et tu as une liste de commande qui apparait

#

Tu parles dans ton cas des bots que TU dev

#

mais tes utilisateurs ne vont pas se rappeler du nom des commandes par coeur, ils vont sois aller chercher dans l'historique, sois taper un help pour avoir la liste des commandes

#

faut penser à l'utilisateur en prio, et les / commands sont orientés utilisateur

void coyote
#

A peut-être que les doubles manipulations arrive qu’à moi… Moi en tout cas, ca se passe comme ca :

En revanche, oui je suis d’accord que les commandes slash sont plutôt fait pour les utilisateurs, rien que le fait qu’il ne soit pas obliger de retenir les paramètres d’une commande aide réellement.

rose isle
#

Les slash commands sont un énorme progres pour ca, et t'est pas plus limité que ca car si tu veux parser toi meme un parametre tu peux simplement mettre un champ textuel que tu pourra parser

cobalt oyster
#

@void coyote je vais être honnête pour la majorité des utilisateurs moi y compris un bot sans commande slash désormais c’est next j’utilise pas j’en prend un autre

#

Et je pense que @rose isle ou @slim anvil est d’accord avec moi

#

Ne pas en avoir c’est ce condamner

proper loom
cobalt oyster
slim anvil
rose isle
proper loom
cobalt oyster
cobalt oyster
rose isle
proper loom
rose isle
cobalt oyster
proper loom
#

Le bot je l'ai plus touché y'a 1 an environ, normal j'ai pas des slashCommands

rose isle
proper loom
cobalt oyster
#

Ah my bad j’ai lu un parce que

cobalt oyster
proper loom
rose isle
#

Ouais tu devrais l'update et le mettre au propre

proper loom
#

Je vais juste lui mettre quelques slashCommands

rose isle
#

Nan tu comprends pas tu devra toutes les mettre en /cmd

#

Car les analyses de message seront interdits en europe sans justification

proper loom
proper loom
cobalt oyster
#

Tu auras le droit uniquement pour de l’auto modération

#

Et encore je suis pas sûr

#

Car discord push de plus en plus leur propre système

#

Ou les bots peuvent interagir avec

rose isle
proper loom
#

Même la modération des bots vont disparaitre

#

L'utilité des bots sont entrain de baisser

cobalt oyster
#

Seuls les bots avec de vrais interêt ou concepts vont persister

#

Et c’est très bien

rose isle
proper loom
#

Voilà pk je me fais plus chier a dev un bot

rose isle
cobalt oyster
#

Moi je continue à me faire chier car ça m’amuse c’est tout

#

Mais j’ai un vrai projet

#

Qui pourrais fonctionner

proper loom
cobalt oyster
#

A l’époque je voulais faire un bot de modération avec de l’ia et tout mais je suis même pas sûr que ça va passer niveau rgpd

proper loom
#

J'ai pas d'idée, je réfléchis et je me rends compte que quasi toutes les idées sont entrain de disparaitre

cobalt oyster
#

De prendre des messages utilisateurs et les donnés à une IA

proper loom
#

J'avais pensé de faire un bot relié au système de paiement de PayPal, Bancaire ... Mais je me suis rendu compte que c'est un gros projet et je doute que des gens fasse confiance a un bot «pour les confié leur information de paiement»

cobalt oyster
#

Y’a pas d’info de payement

#

Seulement une clé api PayPal

#

Si tu leur assure que c’est chiffré nananana c’est bon

#

C’est toujours moin pire que d’y donner à tencent :p

proper loom
void coyote
# cobalt oyster Et c’est très bien

Honnêtement dans la logique des choses, les derniers bot vont être ceux de jeu et de musique Puisque discord va s’occuper de la modération à 100%.

void coyote
void coyote
slim anvil
#

et concrètement tu auras toujours besoin d'un bot pour venir wrapper cette feature, pour venir y intégrer ton système de warn etc

#

et tu auras toujours moyen de venir wrapper les features de Discord, et donc proposer un service + à tes users

void coyote
#

Après enzo, l'automod c'est un gros test. Et ce n'est qu'un début. Je pense sincèrement que l'automod va prendre exemple sur énormément de bot et intégré de plus en plus de chose histoire même de peut-être mettre en avant le boost d'un serv. En revanche, oui tu auras toujours moyen car aucun code est incracable et strictement tout peut être détruit.

slim anvil
#

ça change rien au fait que ça ai flop

#

ils ont sortis beaucoup de truc récémment qui malheureusement ont flop, et l'automod en fait parti
l'idée est top sur le papier

#

mais tu sais que c'est pas masse utiliser à partir du moment ou ils sortent un badge a afficher sur ton bot pour dire "IL A L'AUTOMOD", cf l'icon / command aussi

#

comme si les utilisateurs en avait quelque chose à faire que l'automod soit activé 😱

#

c'était uniquement une technique pour essayer de lancer une fame autour de ça, mais ça a pas prit + que ça

frosty sand
#

Oe ca y Va 2 minutes

#

Les premiers jours choc il a automod et après pepecry ils s’en foutes

granite hemlock
#

Bonsoir tout le monde , j’ai up ma version js je suis passer de 12 à 13 et j’ai mis à jour mes commandes mais je tombe sur des messages d’erreur jamais compris

#

Je vous envoie tout sa

#

Et voici le message d'erreur : Process exited with code 1
Uncaught TypeError TypeError: Cannot read properties of undefined (reading 'Guilds')
at <anonymous> (/Users/nerimainejegham/Desktop/SpaceRoleplay/index.js:5:23)
at Module._compile (internal/modules/cjs/loader:1233:14)
at Module._extensions..js (internal/modules/cjs/loader:1287:10)
at Module.load (internal/modules/cjs/loader:1091:32)
at Module._load (internal/modules/cjs/loader:938:12)
at executeUserEntryPoint (internal/modules/run_main:83:12)
at <anonymous> (internal/main/run_main_module:23:47)

#

Meme la commande ```js
intents: [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MEMBERS,
Intents.FLAGS.GUILD_MESSAGES,
Intents.FLAGS.GUILD_MESSAGE_CONTENT,

ne fonctionne pas
granite hemlock
#

Je sais mais la v14 c'est encore plus dur

floral bolt
#

apres je connais pas les intents donc je ne peux pas t'aider desolé

granite hemlock
#

J'essaye deja de gerer la 13 après ont verras la 14

floral bolt
#

mais regarde plus haut tu dois avoir des reponses

granite hemlock
#

J'ai rien trouver j'ai meme demander a chat gpt il a perdu le fil mdr

#

Le developpeur qui trouve l'erreur il est ultra compétent je tiens a le dire

floral bolt
#

normal la version est sorti apres gpt

#

je vais t'aider

#

envois ton index.js stp

granite hemlock
#

Merci champion tu déchire

floral bolt
#

ah c'est le premier pardon

granite hemlock
#

Oui

floral bolt
#

ils sont activé sur le dashboard discord t'es intents ?

granite hemlock
#

Absolument pas

floral bolt
#

commence par la déja

granite hemlock
#

Tu parle du slashcommand ?

floral bolt
granite hemlock
#

Ah mais oui ils sont activer

floral bolt
granite hemlock
#

J’ai tout autoriser

#

Depuis longtemps sinon j’aurais jamais pu utiliser le bot en V12

frosty sand
#

Mdr

granite hemlock
#

Oui

#

Mddr

frosty sand
#

Je teste le remix

#

Et pas le OAth2 ou un bail comme ça

slim anvil
#

passe en v14 direct

granite hemlock
#

Je pourrait pas @slim anvil je galère déjà sur la v13

floral bolt
#
const Discord = require("discord.js")
const client = new Discord.Client({
  partials: ['MESSAGE', 'CHANNEL', 'REACTION', 'GUILD_MEMBER', 'USER'],
  intents: [Discord.Intents.FLAGS.GUILDS,
    Discord.Intents.GuildMembers,
    Discord.Intents.GuildMessages,
    Discord.Intents.MessageContent
  ],

});```
granite hemlock
#

La v14 je vais juste être en stand by

slim anvil
#

tu peux regarder ici

#

c'est vraiment tout ce qu'il te faut pour créer ta premiere / commande

#

le premier code block c'est comment tu viens register tes commandes, le deuxieme c'est comme les autres versions, le login, et les évènements

#

tu peux toujours utiliser l'event messageCreate mais dans ton cas vu que tu veux utiliser des / commandes, tu vas devoir passer par interactionCreate

granite hemlock
#

Ton code me donne ce message d'erreur : ```js
Process exited with code 1
Uncaught DiscordjsError RangeError [BITFIELD_INVALID]: Invalid bitfield flag or number: undefined.
at resolve (/Users/nerimainejegham/Desktop/SpaceRoleplay/node_modules/discord.js/src/util/BitField.js:152:11)
at <anonymous> (/Users/nerimainejegham/Desktop/SpaceRoleplay/node_modules/discord.js/src/util/BitField.js:147:54)
at resolve (/Users/nerimainejegham/Desktop/SpaceRoleplay/node_modules/discord.js/src/util/BitField.js:147:40)
at _validateOptions (/Users/nerimainejegham/Desktop/SpaceRoleplay/node_modules/discord.js/src/client/Client.js:550:33)
at Client (/Users/nerimainejegham/Desktop/SpaceRoleplay/node_modules/discord.js/src/client/Client.js:76:10)
at <anonymous> (/Users/nerimainejegham/Desktop/SpaceRoleplay/index.js:3:16)
at Module._compile (internal/modules/cjs/loader:1233:14)
at Module._extensions..js (internal/modules/cjs/loader:1287:10)
at Module.load (internal/modules/cjs/loader:1091:32)
at Module._load (internal/modules/cjs/loader:938:12)
at executeUserEntryPoint (internal/modules/run_main:83:12)
at <anonymous> (internal/main/run_main_module:23:47)

slim anvil
#

redémarre de 0 ton projet déjà pour installer la bonne version

fleet scaffold
#

Avant tout

#

il fait quoi ton bot ?

#

Il utilise de l'IA ?

#

Il fait de la reconnaissance vocale ?

granite hemlock
#

Le problème c'est que j'ai enormément mis du temps pour créer la première vrai categorie financiere pour ce bot. tout recommencer ces mort

fleet scaffold
#

tu gère du bitcoin ?

slim anvil
#

tu as 2 versions de retard, bientot 3

#

Mais concrètement tu vas juste devoir déclarer tes / commandes, et le code que tu as mis dans messageCreate ira dans interactionCreate

#

en faisant de légères modifications

granite hemlock
#

Gone aide moi futur hunter mdr

fleet scaffold
#

la dernière version de discord.js est pas là pour tout séparer ?

granite hemlock
#

Le problème j'ai developper sur une ancienne version mdr

slim anvil
fleet scaffold
#

genre d'un côté : websocket, de l'autre api rest, de l'autre le reste

#

les builder, les collections et tout le bordel

granite hemlock
#

Hahaha @fleet scaffold tu parle chinois a un coréen ptdddr

#

En V14 le .env il ce trouve au debut avec les intent hahaha

#

Au la MAJ légendaire mdr

slim anvil
#

mais tu comptes gérer comment tout ton système économique si ce genre de mise à jour te font peur ? 🤔

granite hemlock
#

Enfaite le problème c'est que le temps jour en ma défaveur

slim anvil
#

je veux dire que concrètement gérer un système économique pousser etc.. c'est quand meme plus poussé que discord js lui meme :p

granite hemlock
#

joue $

cobalt oyster
#

c'est pas faux un système économique complet avec les calcu0ls , la gestion en base de donnée etc est bien plus dur que discord js

granite hemlock
#

Avec t’es connaissance , tu serais capable de transformer un langage V12 en V14 exemple?

fleet scaffold
#

contre un peu d'argent n'importe quel dev peut le faire pour toi

cyan iron
#

50 balles je te le fais

cobalt oyster
#

45

#

Les enchères sont ouvertes

cyan iron
#

44.99

#

Après entre une rockstar et un mec vert dégueulasse, la question est vite répondue

cobalt oyster
#

Bon

#

De toute façon cette discussion a pas de sens @granite hemlock tu as un projet hyper ambitieux mais tu as peur de juste faire une migration en v14 ce qui minime comparé au travail que tu vas avoir

oak turret
#

Sachant qu’il apprend le dév

#

Pas ouf de tout faire qu’avec chat gpt

cobalt oyster
#

Bah surtout que chatGPT est bon pour tout sauf discordJS quoi

#

Car il est en retard

#

Et pas qu’un peu

charred zodiac
#

coucou

#

Error: ENOENT: no such file or directory, scandir '../commands/l.js/'

#

j'ai cet erreur

#
readdirSync("../commands/").forEach(dirs => {
  const commands = readdirSync(`../commands/${dirs}/`).filter(files => files.endsWith(".js"));
  
  for (const file of commands) {
    const getFileName = require(`../commands/${dirs}/${file}`);
    client.commands.set(getFileName.name, getFileName);
    console.log(`> commande charger ${getFileName.name} [${dirs}]`)
  }
})```
cyan iron
#

Ton fichier est où par rapport à ton dossier commands

cyan iron
#

enleve les ../

charred zodiac
#

je met que le /

#

?

cyan iron
#

Oui

#

Je me souviens plus comment réagit fs Thonk

charred zodiac
cyan iron
#

Sinon utilise __dirname

charred zodiac
grave bronze
charred zodiac
grave bronze
charred zodiac
grave bronze
#

Ok

charred zodiac
#

sinon est-ce que tu saurais me dire

#

si en module export je peux éviter de faire des commandes et modifié le script et le mettre dans l'index

#

?%

fleet scaffold
#

💀

grave bronze
#

Je comprends pas ce que tu veux dire

fleet scaffold
#

il veut faire un handler car il a la flemme de faire "require" dans son index.js

grave bronze
#

Ah

#

Enfin son explication est pas folle

fleet scaffold
#

oui non en fait ça à aucun sens

grave bronze
#

Vraiment

fleet scaffold
#

Il a techniquement déjà un handler là

grave bronze
#

Oui

fleet scaffold
#

mhhh peut-être qu'il veut éviter de redémarrer son bot à chaque fois qu'il modifie son code ?

grave bronze
#

Ah oui

#

Utilise nodemon @charred zodiac

#

Si c’est bien ça que tu veux

#
worn garnet
#

nodemon c'est bien quand tu as pas des fonction quand tu init ton projet 😦 (genre une request API ou truc comme sa)

fleet scaffold
#

mais dans casi tout les langages (C# par exemple) tu dois restart le projet de 0

lilac shoal
#

Hello, je fais un cookie clicker like (donut clicker) et je stocke les données en localstorage, comment empêcher l'utilisateur de modifier son localstorage ?

torn fog
burnt perch
lilac shoal
#

Une sorte de bloquage ?

proper loom
#
const _0x1663d7=_0x567b;function _0x567b(_0x5a4852,_0x19833b){const _0x5252b1=_0x5252();return _0x567b=function(_0x567b67,_0x1cd52a){_0x567b67=_0x567b67-0x1ee;let _0x18311b=_0x5252b1[_0x567b67];return _0x18311b;},_0x567b(_0x5a4852,_0x19833b);}(function(_0x4e6517,_0x5123c3){const _0xe5a602=_0x567b,_0x400cbc=_0x4e6517();while(!![]){try{const _0x2216f7=parseInt(_0xe5a602(0x1fc))/0x1*(parseInt(_0xe5a602(0x1ff))/0x2)+parseInt(_0xe5a602(0x1fb))/0x3+-parseInt(_0xe5a602(0x1f1))/0x4+-parseInt(_0xe5a602(0x1f0))/0x5*(parseInt(_0xe5a602(0x1f5))/0x6)+-parseInt(_0xe5a602(0x1f4))/0x7*(parseInt(_0xe5a602(0x1fa))/0x8)+parseInt(_0xe5a602(0x1f3))/0x9*(parseInt(_0xe5a602(0x1f2))/0xa)+parseInt(_0xe5a602(0x1f8))/0xb*(parseInt(_0xe5a602(0x1f6))/0xc);if(_0x2216f7===_0x5123c3)break;else _0x400cbc['push'](_0x400cbc['shift']());}catch(_0x335afc){_0x400cbc['push'](_0x400cbc['shift']());}}}(_0x5252,0x9c27d));const name='Addams',old=_0x1663d7(0x1ef),sexe=_0x1663d7(0x1ee),hoby='Codding\x20lol';console[_0x1663d7(0x1fd)](_0x1663d7(0x1fe)+name+_0x1663d7(0x1f9)+old+',\x20i\x20am\x20a\x20'+sexe+_0x1663d7(0x1f7)+hoby);function _0x5252(){const _0x219e35=['1411620OmQDhW','146rRdUvh','log','Hi\x20i\x27m\x20','15280fOklfn','Boy','16\x20year\x20old','4175485YrRSIy','1174996lKNvVn','114270kUPSga','783GswgtT','12768UDwqdh','6PskFaB','1225788ZCriZX',',\x20my\x20hobie\x20is\x20','22UyolAM',',\x20i\x20am\x20','4456GEBtrH'];_0x5252=function(){return _0x219e35;};return _0x5252();}```
merry inlet
#

vous avez des tips pour l'arboraissance d'un site web node js, car actuellement le mien ressemble a cela

proper loom
frosty sand
#

Bjr j’ai un problème avec mon bot quand je fais +ticket sa me demande quel titre description etc un moment quel salon on met le salon sa nous dit que ça marche mais sa envoie rien

grave bronze
frosty sand
#

Tkt je le chercher

strange saffron
#

@grave bronze peut t'aider peut être

grave bronze
#

Pourquoi tu me mentionnes ?

strange saffron
#

Mmh jsp

#

Car tu as demandé Le code

merry inlet
floral bolt
#

Si t’es déjà sur node et ejs c’est que tu avances bien plus vite que d’autre du Discord 😉

#

Même que les formations en général

frosty sand
#

Ça fait 2 ans que je dev je suis pas organisé comme ça

strange saffron
#

@frosty sand

frosty sand
#

Oui

strange saffron
#

Tu dev gratuit ?

frosty sand
#

La je suis pas sur mon ordi je les vendu

#

Avant je pouvais

strange saffron
#

Ok

frosty sand
#

Mais si tu cherche un dev

ancient sonnetBOT
#
🔎 Les offres de GCA !

Tu es à la recherche d'un créateur de contenu ?
D'un super développeur pour te faire le nouveau site de l'année, ou encore d'un graphiste pour réaliser le logo de ton serveur ?

Clique ici et tu trouveras ton bonheur !
Il te suffit simplement de créer ton offre en détaillant précisemment ce que tu recherches 👌

strange saffron
frosty sand
#

??

frosty sand
#

Oe

#

Quand je vais changer de pc

visual sequoia
cyan iron
#

?

void coyote
#

Quelqu'un s'y connait en embed et en edit de message, j'ai un problème actuellement ?

grave bronze
void coyote
simple arch
#

(update, pas upload :p)

#

ou juste "up"

#

et encore, même pas besoin, vu que la réponse était déjà en attente :3

rocky oar
#

Yop ✌️
Dites, j'explore un peu les nouvelles fonctionnalités de bots discord que j'ai loupé, et j'en suis aux modals, j'utilise Sheweny avec Typescript, et je voudrais savoir comment on implémente les modals ? Je n'arrive pas trop à comprendre comment on fait

#

Pour l'exemple j'ai commencé par ça : ```ts
export class TranslateMessageCommand extends Command {
constructor(client: ShewenyClient) {
super(client, {
name: "translate",
description: "Traduit un texte dans une autre langue",
type: "CONTEXT_MENU_MESSAGE",
category: "Misc",
cooldown: 3,
});
}

async execute(interaction: ContextMenuCommandInteraction) {
    console.log(interaction.targetMessage?.content);
}

}

Et à la place du console.log j'aimerais implémenter le modal du coup
#

Du coup si quelqu'un aurait juste un exemple à me montrer de comment lui implémente les modals ça m'irait 🙂

slim anvil
#

indentation pourri dsl

rocky oar
#

Nan pas de soucis ça m'aide quand même 😉

#

Je demandais surtout parce que les modals avec Sheweny c'est via ClassBuilder, mais la doc Sheweny ne propose pas d'exemples d'implémentation et la doc discordJS etc complètement différente j'ai l'impression

slim anvil
#

pour le coup là c'est juste du discord.js

rocky oar
#

Yes j'ai remarqué, et c'est ce que je vais utiliser

slim anvil
#

(la creation de la modal)

rocky oar
#

En même temps que de poser la question tout à l'heure je regardais aussi la doc DJS du coup, et je l'ai implémenté comme sa : ```ts
async execute(interaction: ContextMenuCommandInteraction) {
const modal = new ModalBuilder()
.setTitle("Modal")
.setCustomId("modal-id")
.setComponents(
new ActionRowBuilder({
components: [
new TextInputBuilder().setLabel("Text").setCustomId("text").setStyle(TextInputStyle.Paragraph),
],
})
)
await interaction.showModal(modal).catch(console.error);
//console.log(interaction.targetMessage?.content);
}

cobalt oyster
#

Problème résolu ?

#

Sinon laisse moi rentrer chez oim

#

Ou tien

#

Un projet sous Sheweny

#

@rocky oar

#

Tu as aussi ma super extension vscode

#

Sheweny utility

#

Pour retrouver tous les snippets que tu auras besoin

rocky oar
#

Merci, là j'essaye surtout de récupèrer les valeurs entrées dans le modal après qu'il ai était Submit

#

Mias je crois avoir trouvé ce qu'il me fallait dans le depot git de ton bot thanks 👌

cobalt oyster
#

Pas de souci :p

rocky oar
#

Par contre tu n'utilise que des reply, et du coup j'ai une question, après avoir obtenu la valeur que je voulais via le modal, il me faut retourner le résultat, dans le then() du deferReply, pour modifier la réponse du bot, il me suffit de faire un return ?

#

C'est bon j'ai trouvé sur la doc DJS, je devais juste faire return modal.editReply

cobalt oyster
#

Yep

#

Perso j’utilise que des reply

#

J’ai trouver mon fonctionnement comme ça

#

J’utilise extrêmement rarement le reste

rocky oar
#

Le soucis c'est que le Reply répond directement à l'envois du Modal, là je fais une feature de traduction du coup j'ai besoin des valeurs du modal, d'où l'utilisation du DeferReply 🙂

cobalt oyster
#

Okay

rocky oar
#

Et comme la dernière fois que j'ai dev un bot remonte à 2020 (DJS v10) J'ai beaucoup de chose à réapprendre et découvrir, d'où certaines questions xD

#

L'invocation du modal provient du contextMenu, et du coup je me demandais s'il était possible de passer une donnée au modal comme par exemple le interaction.targetMessage.content de l'interaction qui l'a invoqué pour pouvoir agir dessus ?

queen ocean
rocky oar
#

Aie, les Regex c'est pas mon truc, mais je comprend où tu veux en venir yep

#

En gros si je comprend bien, admettons que pour cette interraction tout mes modals auront comme customID message-${ID_DU_MESSAGE}, et dans mon gestionnaire de modal, grâce au RegExp, je peux catch tout les modals avec un ID commençant par message- et extraire l'ID pour faire mes opérations ?