#javascript-typescript
1 messages · Page 5 of 1
@left forum Ok j'ai trouvé, en gros tu dois fetchReply
Regarde :
await ctx.interaction.reply({
content: `Ton message`,
})
await ctx.interaction.fetchReply().then(async (msg) => {
await msg.pin()
})
Ok y'a mieux :
await ctx.interaction.reply({
content: `${Emotes.SUCCESS} Message envoyé.`,
fetchReply: true,
}).then(async (msg) => {
await msg.pin();
})
T'as juste à mettre fetchReply: true
Et ça va te renvoyer un Message, pas une InteractionResponse
est-ce que quelqu'un a une idée de comment compter un nombre d'heures en vocal ?
parce que je n'ai aucune idée de comment je pourrais faire
hey !
pourquoi les membre de mon serveur ne peuvent pas utiliser les commandes de mon bot
genre je voudrais qu'ils puissent utiliser toutes les commandes de mon bot sauf celles de la modération
en commandes slash ?
dans les paramètres de ton serveur, tu peux aller tout en bas et je crois que c'est la dernière permission, attends deux secondes
ah non, c'est pas la dernière
j'ai mis sa mais après les commandes ne marches pas pour les membres
mais les modo oui
c'est celle-là
j'ai deja cocher sa mais après les commandes ne marches pas pour les membres
mais les modo oui
tu as du activer cette permission sur le rôle modo et non le rôle everyone
sinon, vas dans intégrations, cherches ton bot, cliques dessus et cliques sur une commande, tu peux l'autoriser ou l'interdire à certains rôles
c'est très pratique ça 👍
ahh super ! merci
🙂
C'est qoui une promise ?
c'est le fait qu'une ligne de ton code attende une réponse, je crois
Tu regarde quand quelqu'un s'est connecté à un vocal tu écris le timestamps dans un json où une base de données et deque la personne quitte tu compares les 2 timestamps
Ok merci à vous 2
ahh pas bête !
j'avais pensé à check les personnes dans les vocs chaque minute mais, pas ouf comme technique, merci beaucoup 🙂
Le truc de check est pas con mais ducoup tu auras pas vraiment le temps exacte et ça va le faire même si y'as personnes de connectés, pas de soucis
surtout que le truc tournera même la nuit alors qu'il n'y aura personne dans les vocs, puis je pense que ça doit utiliser plus de ressources, non ?
pas beaucoup plus mais, un petit peu plus, non ?
C'est la meilleure chose à faire comme ça même si tu redémarres ton bot ça comptera
Oui
hmm
mais comment on peut faire une action toutes les minutes ?
je suis pas assez calé en javascript pour ça, moi
Une boucle
je vais me renseigner
salut ! j'ai eu cette erreur lors d'un ban : js if(message.member.roles.highest.comparePositionTo(message.guild.members.cache.get(user.id).roles.highest) <= 0) return message.reply("Vous ne pouvez pas bannir cette personne !") ^ TypeError: Cannot read properties of undefined (reading 'roles')
c'est parce que le mec n'est pas sur le serveur ? si oui comment je peux faire en sorte de ban un mec qui n'est pas sur le serveur avec son id ?
parfait merci !
bonjours à tout le monde, je bosse sur un dashboard et j'ai un souci que j'arrive pas a résoudre un message d'erreur :Uncaught ReferenceError: Routes is not defined
Montre de code, on peut pas le deviner
Salut, j'essaie remotion, un outil qui permet de créer des vidéos en react, mais lorsque je fais npm start pour la prévisualisation j'obtiens cette erreur :
# npm start
> remotion-template@1.0.0 start
> remotion preview src/index.tsx
internal/modules/cjs/loader.js:818
throw err;
^
Error: Cannot find module 'fs/promises'
Require stack:
- /home/zpiboo/Documents/Code/Remotion/Remotion-test/node_modules/@remotion/renderer/dist/stitch-frames-to-video.js
- /home/zpiboo/Documents/Code/Remotion/Remotion-test/node_modules/@remotion/renderer/dist/index.js
- /home/zpiboo/Documents/Code/Remotion/Remotion-test/node_modules/@remotion/cli/dist/index.js
- /home/zpiboo/Documents/Code/Remotion/Remotion-test/node_modules/@remotion/cli/remotion-cli.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15)
at Function.Module._load (internal/modules/cjs/loader.js:667:27)
at Module.require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/home/zpiboo/Documents/Code/Remotion/Remotion-test/node_modules/@remotion/renderer/dist/stitch-frames-to-video.js:9:20)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Module.require (internal/modules/cjs/loader.js:887:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/home/zpiboo/Documents/Code/Remotion/Remotion-test/node_modules/@remotion/renderer/dist/stitch-frames-to-video.js',
'/home/zpiboo/Documents/Code/Remotion/Remotion-test/node_modules/@remotion/renderer/dist/index.js',
'/home/zpiboo/Documents/Code/Remotion/Remotion-test/node_modules/@remotion/cli/dist/index.js',
'/home/zpiboo/Documents/Code/Remotion/Remotion-test/node_modules/@remotion/cli/remotion-cli.js'
]
}
Le membre n'est pas en cache, soit il n'est pas dans la guild sois juste pas en cache
Une variable n'a pas été définie, vérifie que t'as bien mis let, var ou const devant
Bonsoir, j'ai petit problème avec les embeds, c'est en Discord.js
DiscordAPIError: Invalid Form Body
data.embeds[1].description: This field is required
at RequestHandler.execute (S:\dev\Bot UltrArthy\node_modules\discord.js\src\rest\RequestHandler.js:350:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (S:\dev\Bot UltrArthy\node_modules\discord.js\src\rest\RequestHandler.js:51:14)
at async CommandInteraction.reply (S:\dev\Bot UltrArthy\node_modules\discord.js\src\structures\interfaces\InteractionResponses.js:103:5) {
method: 'post',
path: '/interactions/1013134622432972932/aW50ZXJhY3Rpb246MTAxMzEzNDYyMjQzMjk3MjkzMjpoSHllZG1kdHE3QlIySGN6d0IyMnczS3JoTXhmc0VaQnhuMkRJdDZ6WDlISG40Nnc1R2tQeEZCS0JId09DY25hNEtmY2x0WHR3WWhocmxwREhFanEwTm54S3hVOWtaZ2xBRWpvR0JRVWhaM3dXMGxuTkowbzFKeDNPTkFncW1sOQ/callback',
code: 50035,
httpStatus: 400,
requestData: {
json: {
type: 4,
data: {
content: undefined,
tts: false,
nonce: undefined,
embeds: [
{
title: 'Tu es à la quête `18/10`',
type: 'rich',
description: 'cette erreur me casse les pieds',
url: null,
timestamp: 0,
color: 5135764,
fields: [],
thumbnail: null,
image: null,
author: null,
footer: null
},
{
title: null,
type: 'rich',
description: null,
url: null,
timestamp: 0,
color: 5488636,
fields: [],
thumbnail: null,
image: null,
author: null,
footer: null
}
],
components: undefined,
username: undefined,
avatar_url: undefined,
allowed_mentions: undefined,
flags: undefined,
message_reference: undefined,
attachments: undefined,
sticker_ids: undefined
}
},
files: []
}
}
je ne comprend pas bien l'erreur
"data.embeds[1].description: This field is required" je l'interprête comme si il fallait une description
bah t'as mis un embed vide
ahh je ne l'avais pas vu, celui-là
pour indexer une valeur, tu prends sa position comme on la dirait -1
donc premier = 0, deuxième = 1 etc
oh je crois que j'avais juste foiré un truc avec un switch
ok
_ _
L'erreur est écris... Error: Cannot find module 'fs/promises'
._.
si je demande c'est qu'il y a un problème
fs est installé par défaut
j'ai réinstallé (au cas où), fait des recherches et rien n'a fonctionné pour l'instant
merci pour ton aide !
mon problème était mon switch, j'avais fait ça comme ça :
switch(userData.palier){
case '0'
// là ça définis l'embed comme quoi c'est au palier 1
case '1'
// et là ça définis l'embed comme quoi c'est au palier 2
}
et mon problème était que userData.palier n'était pas un string mais était un nombre ...
0 n'est pas égal à '0', ce qui empêchait de définir le deuxième embed
aussi évite les switch case
pourquoi pas ?
là c'est du C#
au contraire les switch sont très utiles pour éviter une armée de if else
envoie ton code
envoie sur pastebin ton fichier ou y a l'erreur
je sais pas lequel c'est
tu as mal importé un module dans ton code
bonjour j’ai un problème avec mon bot j’ai voulu intégrer les slash commands mais quand je fais par exemple /Ping Ça fonctionne pas j’ai aucune erreur pourtant. J’ai bien vérifié mon code et j’ai aucune erreur dans mon code et j’ai bien fait le fichier interactionCreate
ça me marque ça L’application ne répond plus
Toi seul(e) peux voir celui-ci — Rejeter le message
merci
(node:3940) [INSPECTOR_ASYNC_STACK_TRACES_NOT_AVAILABLE] Warning: Warning: Async stack traces in debugger are not available on 32bit platforms. The feature is disabled.
(Use node --trace-warnings ... to show where the warning was created)
bonjour j'ai cette érreur depuis que j'ai installé node js quelqu'un pourrait m'expliquer a quoi est ce dû de manière a ce qu'un débutant puisse comprendre 🙂
c'est un avertissement, pas une erreur, ça te dit qu'une fonctionnalité dont tu peux te passer n'est pas disponible sur ton ordinateur, ce n'est pas grave.
je ne peux pas déboger
envoie le code de ta /commands et l'interaction
Dans le dossier de ton bot tu fais clic droit puis "ouvrir dans terminal" puis node tonfichier.js
moi je parle de déboger en mode lire chaque ligne de code
c'est ce qui fait quand tu lance ton fichier js, il lit le code te dit si y'as une erreur et sinon il le lance
dac pour la prochaine fois j'afficherai mon code mais c'est bon j'ai réglé le souci merci comme même
oui mais tu as un windows 32 bits donc tu ne pourra pas l'avoir
const Discord = require("discord.js")
module.exports = async (bot, interaction) => {
if(interaction.type === Discord.InteractionType.ApplicationCommand) {
let command = require(`../Commandes/${interaction.commandName}`)
command.run(bot, interaction, interaction.options)
}
}
Interaction
const Discord = require("discord.js")
const { REST } = require("@discordjs/rest")
const { Routes } = require("discord.js")
module.exports = async bot => {
let commands = [];
bot.commands.forEach(async command => {
let slashcommand = new Discord.SlashCommandBuilder()
.setName(command.name)
.setDescription(command.description)
.setDMPermission(command.dm)
.setDefaultMemberPermissions(command.permission === "Aucune" ? null : command.permission)
if(command.options?.length >= 1) {
for(let i = 0; i < command.options.length; i++) {
slashcommand[`add${command.options[i].type.slice(0, 1).toLowerCase() + command.options[i].type.slice(1, command.options[i].type.length)}Option`](option => option.setName(command.options[i].name).setDescription(command.option[i].description).setRequired(command.options[i].required))
}
}
await commands.push(slashcommand)
})
const rest = new REST({version: "10"}).setToken(bot.token)
await rest.put(Routes.applicationCommands(bot.user.id), {body: commands})
console.log("Les slashs commandes sont créés avec succès !")
}
loadslashcomands
et la création de ta /commands ?
le messageCreate?
Nous là où tu crée ta /commands
au lieu de se tirer les cheveux pour rien
bonjour les gars j'aimerais savoir si on peut réer un site de a a z avec javascript genre un site comme facebook
Facebook est pas à 100% en javascript mais je vois pas en quoi cela serait impossible si d'autre l'ont déjà fait
ça peut être possible mais pas facile, pour certains trucs.
ca peut se faire mais complexe en effet
Bonjour à tous et à toutes. Je suis toujours sur le même tuto. J'utilise tailwind pour le style du dashboard mais j'ai l'impression qu'il n'est pas prit en compte pourtant j'ai rajouté l'extention
pour envoyer mon code je ne sais pas quelle partie si quelqu'un a du temps pour un vocale et que je partage mon écran ça sera plus simple merci d'avance
hey ! quelqu'un connait cette erreur ? : js Uncaught DiscordAPIError DiscordAPIError[20012]: You are not authorized to perform this action on this application at DiscordAPIError (c:\Users\louan\Desktop\bot test\node_modules\@discordjs\rest\dist\index.js:289:5) at runRequest (c:\Users\louan\Desktop\bot test\node_modules\@discordjs\rest\dist\index.js:748:15) at processTicksAndRejections (internal/process/task_queues:96:5)
je pense que c'est à cause des intents non ?
intents ou directement dans les permissions du bot
quand c'est les permissions, ça fait "Missing permissions" non ?
Salut tous le monde !
Salut,
On peut faire quelque chose pour toi ?
Je cherche une personne qui maitrise assez bien react j'ai un petit soucis...
Un await qui me traite la derniere donnée d'un tableau au lieu de toutes et quand je l'enleve ça traite bien ma donnée et ne s'arrete pas au await
Je map sur un component puis lui envoie en props le tableau
Le but etant d'envoyer des adresses pour recuperer les coordonner lat, lag
Le await ne fais pas arrêter le code 🤔
Je dois louper quelque chose quelque part..
Mais envoi ton code/erreur pour qu'on t'aide au mieux
Je n'ai pas d'erreur justement
J'envoi ca
Ma fonction me recupere que ma derniere donnée alors qu'elle que je vois bien toutes les donnée du tableau passer ne props arrivée
Dans mon composant parent je map sur le tableau et je lui envoi ca dans un composant enfant
Je suis cencé recuperer des données en fonction de chaque donnée recu du tableau sauf que bah il n'ya que la derniere que je recoit bien et pas le reste
Malheureusement je ne pourrait pas t'aider plus, je suis sur tel actuellement
Et je dl pas les .txt ducoups
Je te copie via discord alors ou bien mp ?
Je pense que d'autres personnes plus douée que moi vont t'aider
Sinon il faudra attendre demain, vu l'heure
Oui je pense, j'attendrai la nuit porte conseille comme on dit
Je laisse le code en brut si jamais merci quand meme
const getLocation = async () => {
const locationByAddresss = await getLocationByAddress({ address: props.shop.address, city: props.shop.city })
console.log(locationByAddresssss ===> ${JSON.stringify(locationByAddresss)})
let distance = getDistance({
beginLatitude: location.latitude !== undefined && location.latitude,
beginLongitude: location.longitude !== undefined && location.longitude,
destinationLatitude: locationByAddresss[0].latitude,
destinationLongitude: locationByAddresss[0].longitude,
});
console.log(`distance${distance}`)
let kmDistance = getConvertDistance({ distance: distance + 1000, unit: 'km' }).toFixed(2);
setDistance(kmDistance.toString());
let d = calculateDuration({ distance: kmDistance });
setDuration(d);
console.log(`getLocation address ===> ${props.shop.address}`)
}
useEffect(() => {
console.log(useEffect name ===> ${props.shop.address})
getLocation().then((e) => console.log('e', e))
}, [])
hey
J'ai un petit soucis, j'ai voulu logger le noms des joueurs d'un jeu avec les "super troupes" qu'elles ont, voici le json que j'obtient dans le terminal
Par exemple ici je veux que le bot réponde dans le channel "PsyStenTH11 => Super Wall Breaker"
Sauf que moi j'ai une liste de plus de 10 joueurs du coup j'ai du faire une boucle for...of
alors j'ai essayer de bidouiller et j'ai fais ça
Sauf que ça me renvoie une montage de undefined
@misty parcel hey, essaie déjà d'utiliser un .map() pour les tableaux, puis vois si ça marche
en passant par un push et en définissant un tableau vide avant la première boucle for, tu outrepasses la portée des variables. c'est peut-être ça qui pose soucis. la convention est donc d'utiliser un .map()
Hello !
Je suis actuellement en train de dev un bot dans lequel il est inclus une fonctionnalité d'affichage de l'heure actuelle.
Tout bêtement, j'update un embed et jusque là, aucun souci.
Seulement, pour l'esthétique, j'aimerais avoir un rendu en image, je pensais pour se faire utiliser discord-canvas mais impossible de trouver une image d'horloge, est-ce que quelqu'un a une idée 'un module utilisable dans ce but?
Salut, je ne sais pas ce que vaut discord-canvas mais il faut mieux que tu utilises canvas et que tu prennes ton image à toi que tu veux.
ok ok !
Hey, quelqu'un saurait comment redimensionner une image en Javascript ?
Salut j'ai suivie la formation "Apprendra JavaScript pour le web" de Openclassrooms, est ce que vous pensez que j'ai fais une bonne décision ? 🤓
Bonjour, pour ce qui utilise Nextjs, vous savez pourquoi je peux pas récupérer le cookie qui n'est pas dans le même scope ?
/api/auth/authentified: Je fais le cookie
localhost:3000/ : Si j'essaye de le récupérer ici, ça me met undefined
Merci
en appelant des fonction de style j'imagine
tu get ton image par l’id puis :
image.style.width = "100px";
image.style.height = "100px",
Okay merci
on peut pas juste faire image.width/image.height ?
pour le modifier je crois, c'juste du get
Hello, je suis actuellement en train d'utiliser le module canvas pour faire un système d'horloge / météo évolutive.
J'ai besoin, dans le cadre du système météo, d'intégrer un émoji représentatif actuel, mais je rencontre le souci suivant :
au lieu d'avoir l'emoji sous ce format là :
🌤️ / \🌤️
je l'obtiens comme affiché au dessus, c'est à dire en noir et blanc
est-ce que quelqu'un a une idée de comment je peux faire ?
voilà le code actuel
c'est probablement le module que tu utilises qui adapte l'émoji pour pouvoir l'afficher convenablement
pour la compatibilité, en gros
et est-ce qu'il y a une quelconque solution pour l'afficher en couleur ?
si tu n'as pas d'erreur dans la console, je ne vois pas ce que ça peut être d'autre
aucune idée, je n'utilise pas ce module :/
en l'occurence, 0 erreur donc c'est probablement ça oui
Au lieu d'utiliser l'émoji utilise plutôt des svg ça sera mieux niveau qualité.
tu télécharges le fichier SVG et tu lui dis d'afficher le svg
enfin c'est une image le SVG
tu n'as pas de perte de pixel grâce à ce format
Comme avec une image normal, après je viens de penser mais je sais pas si canvas supporte svg, je regarde.
ça à l'air d'être supporté.
Salut tous le monde j'espere que vous allez bien
Un pro react qui saurait me dire pourquoi mon useEffect stop ma loop ?J'appelle un useEffect dans un composant qui est mapper
Avec le code c'est mieux
J'essaie de consoler log locationByAddress mais il me retourne que le dernier element que mon composant recoit
Tandis que le premier console log m'affiche bien toutes mes adresses par exemple
à vrai dire même avec une image normale je vois pas comment faire
bonsoir
j'ai une erreur au lancement d'un tool en js
j'ai lancé l'api en local host
(je m'y connais pas trop 🥲)
voici l'erreur
Tu utilise la v12 de discord js alors que la dernière version est la v14 (qui utilise la v10 de l'api de discord)
je mets à jour comment
hm ?
Tu deinstalle discord js et tu le réinstalle
oui
Là j'ai pas de solution
@past nimbustu pourrais m'aider stp ?
?
look en haut
l'erreur est pourtant assez claire : Invalid URL
hm ?
Ton URL est invalide
le dév de ce tool m'a dit qu'il fallait lancer l'API je l'ai lancé tjr la même erreur puis il m'a dit que c'est lancé en localhost et que je devais demander à un dev de m'aider

C'est quoi l'URL complète qui pourrait poser problème ?
Ton URL ressemble à ça ou pas : localhost:{port}/url/you/want
C'est npm et non nmp@low panther
c'est pas trop une erreur c'est juste tu fais pas attention
hey ! c'est normal que j'ai sa ?
si tu passes ta souris dessus, qu'est-ce que l'IDE t'affiches ?
Plus de détails de ce que c'est ? Sur quel fichier ?
Remplace pwa-node par node
salut
J'ai un soucis j'utilise une api d'un jeu (encore
)
Le principe c'est de faire des guerres entre 2 équipes, on à le droit à 2 attaques, moi ce que je veux c'est que quand qqn attaque ça envoie un message, donc j'ai fais ça
attackCount c'est le nombre d'attaques alors je me suis dit que les attaques d'avant et les attaques d'après allaient etre différentes 🤷♂️
enfin bref du coup c'est sensé me renvoyer ça
Sauf que y'a rien
update : j'ai eu ça de la part des devs de la librairie
ça veut dire que le temps que ça envoie un message est de 10 minutes ?
Non ça veut dire que lorsque tu requête l'api, ta demande est mise en cache pendant 10 minutes de leur côté
yo je doit faire quoi svp ?
Ce sont tes intents qui pose problème
je dois faire quoi pour regler sa ?
Envoie ton code en entier
le code de quoi ?
De ton bot
dans index
Oui
ducoup ?
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
GatewayIntentBits.GuildMembers,
],
});
Tu es en quel version de discord.js ?
sa fonctionne pas
?
Sur ce lien https://discord.com/developers/applications/
Et ne met pas le code de @left forum @random cosmos
Ducoups, tu as mis les intents sur le site que je t'ai mis plus haut ?
bais le lien c'est pour cree le bot sa j'ai deja fait nn ?
c'est bon j'ai cocher
Et restart ton bot si tu as cocher ce qu'il fallait pour ton bot
Bonsoir est ce que vous sauriez comment un bot discord pourrait écrire une commande dans un channel et qu'elle soit prise en compte. Par exemple je lui ai fait écrire /ping mais pour lui c'est jute une chaine de caracteres et nn une commande. Merci
tjr pas
Il te manque des intents dans ce cas
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MEMBERS,
Intents.FLAGS.GUILD_BANS,
Intents.FLAGS.GUILD_EMOJIS_AND_STICKERS,
Intents.FLAGS.GUILD_INTEGRATIONS,
Intents.FLAGS.GUILD_WEBHOOKS,
Intents.FLAGS.GUILD_INVITES,
Intents.FLAGS.GUILD_VOICE_STATES,
Intents.FLAGS.GUILD_PRESENCES,
Intents.FLAGS.GUILD_MESSAGES,
Intents.FLAGS.GUILD_MESSAGE_REACTIONS,
Intents.FLAGS.GUILD_MESSAGE_TYPING,
Intents.FLAGS.DIRECT_MESSAGES,
Intents.FLAGS.DIRECT_MESSAGE_REACTIONS,
Intents.FLAGS.DIRECT_MESSAGE_TYPING
Tu as la liste des intents ici
@random cosmosPrends celle que tu utilises
Ça va être compliqué et je ne pense pas que c'est faisable parceque discord à fait que les /commands soit plus pratique et quand tu tape un / ça va automatiquement t'afficher une commande et que si tu appuies sur entrée ça va t'en sélectionner une
Il faut juste qu'il active celle pour le contenu du message sur le panel
Il à déjà la liste de ses intents
Mais je pense que c'est faisable de bypass avec des caractères spéciaux
c'est a dire ?
Si c'est le bot qui écris, sa doit être good 🤔
Ah my bad, je pensais qu'on voyait tout vue la liste de zaro
nan j'ai testé mais ça écrit juste /ping dans le channel
Et non 🙂
Dans le code de zaro il manque aussi l'intent des webhook
Ah tu veut qu'il use une commande d'un autre bot ? Ou qu'il use sa propre commande de / ?
sa propre commande
Peu importe après, il est pas utilisable son code, c'est de la v14
Yep
genre j'ai fait userChannel.send('/ping') mais c'est pas détecté comme une commande apparement
Ba c'est normal
ok ok
Juste les pings à la limite
(Ah et sorry si mon message avait l'air méchant c'était pas mon intention)
Alors si, si il fait dans l'event messageCreate, il fait réagir le bot quand il tape /ping
Mais sa ne seras pas une / command
ok je vois merci je vais testé quand meme
oui c'est vrai du coup
je vais faire a l'ancienne avec un prefixe défini
Hello, je commence react.js et j'aurais besoin d'aide en gros je veux faire une todolist, mais je sais pas comment structurer mon appli, je comprend pas vraiment comment en cliquant sur un bouton je peux ajouter un composant la ou je veux si quelqu'un pourrait m'éclairer
Hey ! J'ai cette erreur quelqu'un pourrait m'aider svp :
at <anonymous> (g:\Sellz\Bot Discord\Sellz-bot\vinted-bot-kilmax\Bot-Vinted-Discord-JS-master\Commandes\vinted.js:105:21)```
J’ai pas vraiment compris ce que tu dis
en gros, je veux faire une to-do list, et je veux que avec un bouton ça me créer un nouvel élément et qu'il s'ajoute à ma to-do list
mais je comprend pas comment avec le bouton je peux ajouter le component que je veux a un endroit précis...
en fait je pense que je structure mal donc ça n'a pas vraiment de sens
Dans ce cas là tu peux faire avec le hook UseState
Je rentre d’ici une heure chez moi je te montrerai un exemple
ça marche ping moi si tu veux je serais encore là
Alors petit tuto assez simple:
- Créer un nouveau composant nomée
addTodo.jsdans le dossierComponents
il doit resemble à ça:
import React, { useState } from "react";
import todoItem from "./todoItem";
const addTodo = () => {
const aFaire = [
{ id: 1, name: "Faire les courses" },
{ id: 2, name: "Faire la vaisselle" },
{ id: 3, name: "Faire le ménage" },
];
const [todo, setTodo] = useState(aFaire)
return (
<div>
{todo.map((item) => (
<todoItem key={item.id} name={item.name} />
))}
</div>
);
};
export default addTodo;
- Créer un nouveau composant nomée
todoItem.jsdans le dossierComponents
il doit resemble à ça:
import React from "react";
const todoItem = (props) => {
return <div>{props.name}</div>;
};
export default todoItem;
donc la tu as la base de ton composant addTodo qui va afficher tes tâches à faire.
Maintenant pour ajouter des tâches à faire, il faut que tu crées un input et un button.
Ça parle de react alors je m'incruste x),
Vous avez des guide/sites pour apprendre le reactjs ? (Plus le côté react que js)
Pour que l'input serve a quelque choses tu dois recuperer le text ecris.
pour ca on va crée un nouveau useState
const [value, setValue] = useState("")
puis dans l'input on va ce servir de la fonction onChange pour definir la valeur de value a chaque fois que l'utilisateur tape quelque chose
<input type="text" onChange={(e) => setValue(e.target.value)} />
surtout la doc perso regarde https://fr.reactjs.org/docs/hello-world.html
Alors, déjà enfaite mon erreur c'est que je voulais faire absoluement une classe j'ai du mal a savoir quand utiliser le quel donc je me suis perdu dans ce détail
Ouai je vois daccord
Merci
ah oui je suis l'opposé je fais que des classes...
mais du coup
au niveau de la fonction setTodo,
ça marche comment
si je set, les données sont écrasé non ?
Et si l'anglais te dérange pas celui la est vraiment incroyable https://scrimba.com/playlist/pKNqYAZ
Ensuite pour enfin ajouté la todo a la liste il faut faire un push dans le tableau aFaire et ensuite faire un setTodo avec le tableau aFaire
la methode que j'utilise pour faire un push dans un tableau est la suivante:
const aFaire = [...todo, { id: todo.length + 1, name: value }]
et enfin
setTodo(aFaire)
Ok merci, de toute façon je veux m'améliorer en anglais donc ça me pose pas de problème
D'accord c'est beaucoup plus clair merci beaucoup !
@floral bolt J'ai fais tout ce que tu m'as donné, mais j'ai rien qui s'affiche :/
J'ai bien mis mon addTodo dans mon idex.js et dans ce addTodo j'ai mis mes items dans le map mais je vois pas ce qui cloche
et j'obtiens rien
@wraith wren il lui faut du style à ton addtodo genre une taille
J'en ai ajouter mais toujours rien...
Vien dans le voc
je peux pas pour l'instant :/ mais j'ai remarqué que dans mon index, avec l'import de addTodo il y a écrit que c'est jamais utlisé
Bah après si t'a une erreur aussi dans l'index.js
ça va pas trop continué d'exécuter le code
Bah ouai mais pourtant j'ai importé correctement et c'est le bon nom

Fait voir ton package.json @wraith wren
Et envoie un screen quand tu passe ta souris sur le import en rouge
je comprend pas pourquoi il me dit ca ?
Remplace pwa-node par node
Merci, c'est résolu pour l'erreur mais j'ai toujours pas d'affichage
merci
De rien
J'aimerais donner la valeur d'un de mes etat de ma classe a un composant extérieur en react
c'est possible ?
Salut voici mon problème quand je fais node .
merci d'avance pour votre aide
PS : j'ai deja fait ces commandes : npm install discord.js et npm install
Discord.js c'est une librairie, pas un bot déjà conçu donc si tu n'as écrit aucune ligne de code ton node . ne sert à rien.
donc je peux pas ON mon bot ?
Tu peux pas "on" un bot que tu n'as pas encore créé
Montre nous ton package.json
Essaie npm start ou node index.js à la place de node .
aucun des deux marche
Ton fichier index.js il contient quoi?
const { Client, Partials, Collection, GatewayIntentBits } = require('discord.js');
const config = require('./config/config.json');
const colors = require("colors");
// Creating a new client:
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.GuildPresences,
GatewayIntentBits.GuildMessageReactions,
GatewayIntentBits.DirectMessages,
GatewayIntentBits.MessageContent
],
partials: [
Partials.Channel,
Partials.Message,
Partials.User,
Partials.GuildMember,
Partials.Reaction
],
presence: {
activities: [{
name: "T.F.A is cool!",
type: 0
}],
status: 'dnd'
}
});
// Host the bot:
require('http').createServer((req, res) => res.end('Ready.')).listen(3000);
// Getting the bot token:
const AuthenticationToken = process.env.TOKEN || config.Client.TOKEN;
if (!AuthenticationToken) {
console.warn("[CRASH] Authentication Token for Discord bot is required! Use Envrionment Secrets or config.json.".red + "\n")
return process.exit();
};
// Handler:
client.commands = new Collection();
client.slashcmds = new Collection();
client.events = new Collection();
module.exports = client;
["prefix", "slash", "events", "mongoose"].forEach(file => {
require(`./handlers/${file}`)(client);
});
// Login to the bot:
client.login(AuthenticationToken)
.catch((err) => {
console.error("[CRASH] Something went wrong while connecting to your bot..." + "\n");
console.error("[CRASH] Error from Discord API:" + err);
process.exit();
});
// Handle errors:
process.on('unhandledRejection', async (err, promise) => {
console.error(`[ANTI-CRASH] Unhandled Rejection: ${err}`.red);
console.error(promise);
});
Tu es sûr que tu exécute ta commande dans le bon dossier ?
comment sa ?
J'ai l'impression que la commande que tu exécute pour lancer ton bot dans le terminal n'est pas exécutée dans le bon dossier
Va dans le dossier de ton bot > ouvrir avec l'invite de commande > node index.js
Le dossier avec l'explorateur de fichiers pas vs code
Oui
fait npm i
ensuite ?
node index.js
Va dans le dev portal de discord puis bot et active l'intent message content
OH PUTIN
pardon
parfait
jvous kiffeeeeeeeeeeeeeeeeeeeeeeee
merci beaucoupppppppppppppppp
Dr
https://discordjs.guide/#before-you-begin
Pour comprendre ce que tu fais, parceque j'ai l'impression que tu comprends pas trop
De rien
ahh merci
juste ducoup mon bot je dois toujours le ON comme ceci ?
Oui
okayy thanks
Juste node index.js ou node .
okayy
Mais dans le bon dossier x)
Salut j’ai un problème avec mon site en ReactJS et Node j’arrive pas à faire fonctionner OAuth Twitter API
Si quelqu’un d’assez compétent peu m’aider jle récompenserais svp
Besoin urgent
Jvous donne la version twitter api v2
Quelqu'un peut m'aider sur du discord.js en vocale ? Sa prendra moins de 2 minutes svp
/say1
Vous savez si on peut donner donner en props un props en react ?
si on a un props et qu'on le redonne a un autre composant
Oui on peut
Tu peux transférer un props d'un component parent à un component enfant.
Mais si c'est un props que tu veux passer à beaucoup de components tu devrais regarder du côté des contexts
Mais c'est assez technique si tu veux des bonnes performances
Ah merci, mais enfaite j'avais un problème j'ai donner une props key a un component et pour donner a un autre component a l'intérieur je devais changer le nom, quand je mettais key={props.key} j'avais une erreur et je sais pas du tout a quoi c'est du
Sinon si quelqu'un sait comment je peux faire j'ai une div cliquable et une span cliquable dans cette div, mais le span ne marche pas pcq la div récupère le clic en premier
Changer le z-index ne fonctionne pas ?
nan comme le bouton est dans la div ça change pas grand chose :/
Ok je vois où est le soucis
déjà le span, il est pas de type bloc donc ça marche pas, soit tu lui donne un display block en css soit tu utilise une div
alors j'ai essayer avec span block, bouton block ou div et div block et ça marche pas
Voilà un petit exemple d'un span dans une div, les 2 sont cliquables :
HTML
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./styles.css">
<title>Document</title>
</head>
<body>
<div id="btn1">
<span id="btn2"></span>
</div>
<script src="./app.js"></script>
</body>
</html>
CSS
#btn1 {
background-color: red;
width: 100px;
height: 100px;
}
#btn2 {
background-color: green;
width: 30px;
height: 30px;
display: block;
}
JS
let btn1 = document.getElementById("btn1");
let btn2 = document.getElementById("btn2");
btn1.addEventListener("click",(e)=> {
console.log("test1")
});
btn2.addEventListener("click",(e)=> {
console.log("test2")
e.stopPropagation();
});
@wraith wren
ouai alors j'ai a peut près ça mais ça marche pas je sais pas si tu peux jeter un coup d'oeil rapide: https://todo-react-dun-six.vercel.app/
Generated by create next app
le problème il est la quand je veux supprimer un élément de la liste To do
sinon dans la liste Done tout marche
puisque j'ai pas assigné de fonction
Tu saurais m'envoyer le git si t'en as un pour que je test en local ? ou bien un zip sur wetransfert, n'importe
J'ai jamais bosser avec next, pour lancer ton projet t'installe juste les dépendance avec un yarn install, puis tu lance avec un yarn start ou il y a d'autre chose à faire ?
alors j'utilise pas particulièrement yarn, faut juste aller dans le dossier todo app et tu fais un npm run dev
mais pour les dépendance tu peux yarn install je crois je m'y connais pas trop
D'acc c'est bon j'ai réussi à lancer, je fais mes tests et je te dit si je trouve le soucis
Daccord merci beaucoup
Le fait que le todo se supprime quand tu clique sur son nom c'est un comportement voulu ?
pas du tout
alors attend j'avais pas vu ça
bah il se supprime pas quand je clic sur son nom
il passe dans la liste Done mais sinon il se supprime pas
Ah oui oui j'avais pas vu qu'il partait en dessous ahah, du coup quand tu clique sur la corbeille tu voudrais qu'il se supprime mais il part en dessous c'est bien ça ?
ouai voila
D'acc bah j'ai trouvé
c'etait quoi ?
Dans delete.js il faut stopper la propagation de l'évenement qui appelle la fonction du parent, donc qui déplace le todo dans done :
import { AiFillDelete } from "react-icons/ai";
import styles from '../styles/Home.module.css'
import React from 'react';
const Delete = (props) => {
return (
<span className={styles.delete} onClick={(e) => {props.delete(props.cle, props.done);e.stopPropagation();}}><AiFillDelete className={styles.img}/></span>
)
}
export default Delete;
j'ai un peu du mal a comprendre pcq du coup avant il detectait pas le clic sinon ça se serait supprimé non ? ou alors il se supprimait mais en meme temp il passait dans l'autre liste ?
ça me semble bizarre aussi qu'il se supprimait pas, normalement de ce que je comprend il aurait dû se supprimer puis essayer de passer dans l'autre liste.
Si on fait des console.log normalement on devrais voir d'abord la fonction du delete s'executer puis la fonction du parent
ouai mais comme c'est des setState, elles sotn asynchrone donc elle se font a la fin c'est surement pour ça
du coup je comprend mieux
Ouai c'est peut-être pour ça
Daccord bah merci en tout cas pour ton temps !
Avec plaisir, pas de soucis
Sinon j'ai une question, j'ai l'impression que mon app est un peu brouillon
au niveau des composants
et des props
Pour la structure, ça manque un peu de découpage, plus de dossier pour séparer les éléments par type, et peut-être des noms plus explicite pour tes composants. Pour les props j'ai pas regardé en détails mais si tu dois les faire passer dans plusieurs composant pour arriver à l'endrois où tu veux, tu peux regarder pour intégrer un state manager.
Après je suis loin d'être un expert en react, je fais juste des petit projet perso dessus.
Pour te donner un exemple, voilà la structure d'un projet en react native que je viens de commencer il n'y a pas longtemps avec des amis :
Ah daccord je vois, c'est quoi un state manager ?
C’est une manière d’accéder facilement aux props sans devoir les passer du composant où tu le crées jusqu’au composant où t’en a besoin
Renseigne toi sur redux, c’est le plus populaire
Ah ouai je vois d'accord merci !
Non la props key elle n'existe pas dans props même si tu la donne. Elle est utilisée par react pour indexer ton component
ahh c'est pour ça merci alors
Salut! Petite question, quel qu'un ici a déjà fait un relay avec steam? genre lier son compte discord avec le bot. merci d'avance
Bonjour !
Je développe un bot discord fon de réaliser diverses taches.
Dans l'une des commandes que l'on peut exécuter, je veux faire en sorte que le bot propose des paramètres obligatoires à la commande par exemple /ban [membre] ( obligatoire )
Cependant, les options restent facultatives malgrès mes efforts
Voici donc mon code ( main.js et la commande ) ainsi que l'erreur
{
"code": "invalid_type",
"expected": "boolean",
"received": "undefined",
"path": [],
"message": "Required"
}
]
at handleResult (C:\Users\Thomas\Desktop\bot discord\node_modules\zod\lib\types.js:28:23)
at ZodBoolean.safeParse (C:\Users\Thomas\Desktop\bot discord\node_modules\zod\lib\types.js:139:16)
at ZodBoolean.parse (C:\Users\Thomas\Desktop\bot discord\node_modules\zod\lib\types.js:119:29)
at F (C:\Users\Thomas\Desktop\bot discord\node_modules\@discordjs\builders\dist\index.js:3:1521)
at MixedClass.setRequired (C:\Users\Thomas\Desktop\bot discord\node_modules\@discordjs\builders\dist\index.js:3:2478)
at C:\Users\Thomas\Desktop\bot discord\main.js:70:135
at MixedClass._sharedAddOptionMethod (C:\Users\Thomas\Desktop\bot discord\node_modules\@discordjs\builders\dist\index.js:3:7762)
at MixedClass.addStringOption (C:\Users\Thomas\Desktop\bot discord\node_modules\@discordjs\builders\dist\index.js:3:7535)
at C:\Users\Thomas\Desktop\bot discord\main.js:70:40
at Array.map (<anonymous>) {
issues: [
{
code: 'invalid_type',
expected: 'boolean',
received: 'undefined',
path: [],
message: 'Required'
}
],
addIssue: [Function (anonymous)],
addIssues: [Function (anonymous)],
errors: [
{
code: 'invalid_type',
expected: 'boolean',
received: 'undefined',
path: [],
message: 'Required'
}
]
}
Je pense que c'est justement le .setRequired(op.required)); dans main.js qui pose soucis mais auparavant j'utilisais cela et ca fonctionnait très bien
Pour le .setRequired c'est soit .setRequired(true) si l'option est obligatoire sinon c'est .setRequired(false)
Mais je crois que ton handler le gère différemment
Oui il le gère differrement mais justement avant ca fonctionnait ainsi... Maintenant j'ai cette erreur
Je viens d'essayer au cas où mais non ca ne va pas car comme tu le dis, le handler le gere differement
Ah désolé je peux pas faire plus pour toi, sûrement quelqu'un d'autre pourrait mieux t'aider
Pas de soucis j'attend ^^
@exotic spokeLe premier require, faut l'enlever 🙂
Le premier ?
Ou ca je comprend pas
Ba ton premier require
Dans le ban.js ?
Pour toi c'est clair pas pour moi xD
Toujours la même erreur
Hmm
Ah tu es en v14 maintenant, je pense jsp
vahh
pas sur
faut que je verif
nan
13.7
Et ya encore deux mois tout fonctionnait
Oui tu peux suivre des tutoriels, par exemple sur openclassroom et réfléchir à de petits projets que tu souhaites accomplir à terme pour te motiver
J'ai toutes les dépendencies enfin je pense
Au cas où
Ba jsp 😦
Je suis avec node js 18 si ca peut poser soucios
Comme j'ai dis, je ne sais pas plus que ça
Tu veux faire quoi ? Du web, du mobile, des applications de bureau, des jeuxvideo
Pour le web : tu peux apprendre html, css, javascript, ça te donne une bonne base pour commencer
Pour du Jeuxvideo : soit tu fais du Jeuxvideo sur navigateur, là tu peux utiliser la même chose que pour le web,
ou alors tu veux faire un vrai Jeuxvideo dans ce cas, il faudra apprendre à utiliser l’un des deux combo suivant :
Unity avec C#
Ou
Unreal engine avec C++
@keen narwhal
Trop d’info ?😅
Du coup html, css et javascript
Dans les options t'as écrit require et dans ton handler c'est required
- je te conseillerais d'ajouter cette option partout et de mettre un default au cas où ça peut t'éviter des problèmes
Merci ^^
Salut! Petite question, quel qu'un ici a déjà fait un relay avec steam? genre lier son compte discord avec le bot. merci d'avance
Pose ta question directement
Ses sa ma question car j'ai essayer avec express js mais je n'y comprend rien....
Nan mais justement explique ce que tu as fait et quelles erreurs tu as rencontré en demandant ce qui va pas
Yo
j'ai un petit soucis
J'ai un fichier Bash, je l'ai bien route vers le bin/Bash, mais il le prend pas les fonctions primaires de Bash
Genre Les accolades, bah ça marche pas
comment puis-je faire pour que tous le monde puisse y acceder? dois-je avoir un nom de domaine ect
Tu trouveras pas beaucoup de personnes qui pourront te faire parceque le temps, mais tu as as une formidable université qui s'apelle "internet" tu peux trouver dessus des tuto qui t'aprenne le js
Bonsoir depuis que j'ai restart mes bots ils ont tous cette erreur alors que avant tou fonctionner tres bien
[FATAL] Possibly Unhandled Rejection at: Promise Promise {
<rejected> TypeError: Cannot read properties of undefined (reading 'commands')
at Client.<anonymous> (/home/container/handler/index.js:91:21)
at Client.emit (node:events:539:35)
at WebSocketManager.triggerClientReady (/home/container/node_modules/discord.js/src/client/websocket/WebSocketManager.js:379:17)
at WebSocketManager.checkShardsReady (/home/container/node_modules/discord.js/src/client/websocket/WebSocketManager.js:362:10)
at WebSocketShard.<anonymous> (/home/container/node_modules/discord.js/src/client/websocket/WebSocketManager.js:189:14)
at WebSocketShard.emit (node:events:527:28)
at WebSocketShard.checkReady (/home/container/node_modules/discord.js/src/client/websocket/WebSocketShard.js:513:12)
at WebSocketShard.onPacket (/home/container/node_modules/discord.js/src/client/websocket/WebSocketShard.js:485:16)
at WebSocketShard.onMessage (/home/container/node_modules/discord.js/src/client/websocket/WebSocketShard.js:317:10)
at WebSocket.onMessage (/home/container/node_modules/ws/lib/event-target.js:199:18)
} reason: Cannot read properties of undefined (reading 'commands')
Une idée ?
Merci de me ping
TypeError: Cannot read properties of undefined (reading 'commands') @untold shale
C'est dans le message 🤔
C'est pas méchant, désolé si ça en avait l'air
Bah Je sais mais pourquoi
Alors que avant j'avais aucun soucis
Et jai rien touché
Bonjour, est-ce que c'est ici que je peux copy/paste du code en node js discord, afin que quelqu'un m'aide à trouver ce qui déconne ?
Oui, c'est le but 🤔
en mp ? si tu as du temps, pas envie de polluer trop le salon..
Ba c'est le but du salon
Alors c'est assez simple. C'est pour une commande discord bot utilisant une api
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
la ligne 11-12 fonctionne parfaitement et j'ai le retour souhaité dans la console
Hello vous savez comment je peux récupérer joinedAt dans l'event guildMemberAdd ? quand je print l'user que je récupère lors de l'event j'ai que ça
En revanche, arrivé en ligne 27-28, plus de data en retour (à savoir que j'ai un code 200) et qu'en lisant le retour, il reconnaît la commande, il reconnaît l'api, la clé api etc, tout semble fonctionner
sauf que..
method: 'get',
url: 'https://api.checkwx.com/metar/q=lfmn&appid=66b9615b4ce14c4d8ac78770cf',
data: undefined
dans la console il semble comprendre l'argument
j'te donne un exemple de ma commande qui va être !metar wsss
dans la console : method: 'get',
url: 'https://api.checkwx.com/metar/q=wss&appid=66b9615b4ce14c4d8ac78770cf',
data: undefined
Ba il ne trouve rien aussi, sa peut être une solution
qu'est-ce que j'ai loupé..
Jsp
ça serait args qu'il ne lit pas entièrement ..? ou plutôt ce que je lui demande d'afficher en réponse donc resp.data qui pose souci..?
ce qui est incompréhensible
parce qu'en début de code il y a ça pour avoir un "test" dans la console
axios.get('https://api.checkwx.com/metar/LFPG?x-api-key=66b9615b4ce14c4d8ac78770cf').then(resp => {
console.log(resp.data);
});
et la console renvoie
data: [ 'LFPG 061430Z 14006KT 120V180 CAVOK 28/14 Q1013 NOSIG' ],
results: 1
en l'état actuel des choses, la réponse du bot est : Raw METAR at [object Object]
Oui donc c'est bien ce que je dis, il trouve pas avec l'arg que tu as mis
pourtant là il voit bien l'arg vu qu'il va la chercher dans l'url
et tu n'as pas d'idée de ce qu'il faudrait que je corrige
Ba essaye une autre arg ?
ah mais j'en ai essayé plein d'autres, même résultat
Tu as fais une erreur sur le lien, c'est pas le même 🤔
?
Celui là
Ben..
comment dire
le premier il est fixe, il me l'affiche en echo dans la console
il lira pas de !metar {args}
Non justement j'ai pas retiré l'api-key
const url = https://api.checkwx.com/metar/q=${args};
let response = await axios.get(url, options).then(resp => {
sachant que la const options défini l'api key
j'ai même un code 200 dans la console c'est que j'suis bien auth avec la clé
@dire latchbon je viens de faire plein de tests, j'ai enfin un retour positif sur la console, mais le bot n'affiche pas correctement les données que je souhaite voir
à la commande !metar WSSS , la console affiche data: [ 'WSSS 061530Z 19003KT 9999 FEW018 BKN150 28/25 Q1011 NOSIG' ],
results: 1
mais le bot ça : Raw METAR at WSSS : [object Object]
et le code c'est : return Raw METAR at ${args} : ${resp.data};
donc c'est resp.data qui n'est pas bon, seulement je ne sais pas ce qu'il faut y mettre pour le coup
Ba tu console.log resp
Nan
pardon j'me suis mal exprimé
j'ai fait plein d'essais et y'a eu une progression. quand je tape la commande, maintenant la console reçoit une réponse positive alors qu'avant c'était undefined
data: [ 'WSSS 061530Z 19003KT 9999 FEW018 BKN150 28/25 Q1011 NOSIG' ]
Et la dernière étape, c'est que le bot affiche ceci : "WSSS 061530Z 19003KT 9999 FEW018 BKN150 28/25 Q1011 NOSIG"
au lieu de object Object
et j'ai l'impression que c'est ${resp.data} (ligne 28) qui est incorrect
tu print le user?
normalement guildMemberAdd return member
Salut les gars vous me conseillée quoi comme langage cote back ??
NodeJS ou C#
Bon.. donc après avoir avancé au max dans mon code, je me retrouve avec ça
let response = await axios.get(url, options).then(resp => {
console.log(resp);
return `Raw METAR at ${args} : ${res.data}`;
}).catch ( e => {
console.error(e);
return "Couldn't find that airport";
})
message.channel.send(response);
Tout le reste est bon, la console reçoit ce que j'attends mais impossible d'avoir la réponse correctement sur le salon, j'me retrouve avec [object Object], any idea ..?
Il est défini où ton res ?
je sais pas pourquoi ça affiche res ici alors que dans le code c'est resp.data
Enfin là c'est à toi de mettre resp.data non ?
c'est le cas
Bah du coup mets resp à la place de res
oui oui c'est fait mais c'est avec resp.data que j'ai object Object
Oui il faut maintenant que tu prennes tes éléments tu ne peux pas retourner un objet sur Discord.
Et comment je fais ça.. j'débute là dessus et j'ai la tête en chou depuis cet aprem que je galère
Il te retournes quoi dans la console que je te fasses un exemple.
oki
le console.log(resp.data) affiche ça :
data: [
'KJFK 061951Z 13005KT 2SM R04R/5500VP6000FT -RA BR SCT011 BKN020 OVC033 21/20 A2998 RMK AO2 SFC VIS 4 SLP152 P0028 T02110200'
],
results: 1
et le bot répond ça : "Raw METAR at KJFK : [object Object]"
Oki du coup dans ton data en faites tu as une liste donc ici les []
Tu as juste à faire ça : res.data[0]
res ou resp du coup ? ^^
Euh oui resp excuse moi
Vas-y
alors dans la console pareil, réponse reçue correctement
et au niveau de la réponse du bot : undefined
Euh bizarre refait voir ton code.
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
Et si tu console.log resp.data[0] ça te mets quoi ?
undefined dans la console et en réponse msg du bot
C'est bizarre là.
c'est quand-même chelou que le console.log(resp.data) marche parfaitement bien, mais en return pas du tout
Tu utilises quoi comme exemple ?
Comme exemple, de commande ..?
Ouais
à savoir qu'à la place de resp.data j'ai essayé plein d'autres trucs
response, resp, et d'autres bricoles, pas mieux
En faites ce que je ne comprends pas c'est que tu as un array mais lui ne te le dis pas c'est bizarre.
ça change rien ça.
Oh bah peu importe, ça fait la même peu importe la requête
Quand tu log resp.data, il te retournes quoi dans la console ?
à chaque fois la console reçoit une réponse correcte et propre, mais le message en salon fini en object Object
Essaye resp.data.data[0]
j'viens d'essayé comme toute à l'heure sur !metar LFLL
console :
{
data: [ 'LFLL 062030Z 17006KT CAVOK 23/15 Q1016 NOSIG' ],
results: 1
}
Essaye ça.
T'habite où ? j'te paye le champagne
Non c'est bon, j'suis pas trop alcool XD
Et puis en plus demain j'ai cours XD
🥲
De rien 😉
J'avais pas capté au début que quand tu m'avais envoyé le console.log c'était resp.data si j'aurai fait gaffe direct j't'aurai dit directement ça AhAH
Pas de souci ! au contraire j'te remercie
J'vais me coucher bonne nuit à toi et puis encore de rien 😉
Merci à toi aussi 😉
Salut, petite question ses possible de récupérer le steamid d'un mec a partir d'un compte lier sur discord genre dans sont profil il a lier son compte possible de le recup? Merci
oui je faisais guildMember.user.joinedAt alors que c'était guildMember.joinedAt !
Vous savez comment je peux reply à un message en créant un thread?
j'ai essaye ça javascript const channel = client.channels.cache.get("1016408639801667726"); await channel.send({ embeds: [suggestionEmbed] }).then(function(message) { message.react("✅") message.react("❌") message.threads.create({ name: "test", autoArchiveDuration: 60, reason: "myTest" }) });
mais j'ai ça TypeError: Cannot read properties of undefined (reading 'create') Error [InteractionAlreadyReplied]: The reply to this interaction has already been sent or deferred.
C'est pas la bonne méthode :
https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=startThread
@unborn knot
ohh merci tu me sauve la vie !
okk thx !
ok ok 🙂
Bonjour je suis en train d'intégrer les slashcommands a mon bot mais j'ai cette erreur qui apparaît
Uncaught Error Error: Expected token to be set for this request, but none was present
Salut les gars j'ai finis le cursur coté front-end de https://grafikart.fr mtn je m'attaque au coté back mais je ne sais pas quel language apprendre pouvez m'aider ?
Personnellement je préfère le js avec react mais sa formation et un peu vielle donc pas mal de choses on changer
En soit même symphony avec php c’est une vielle version pareil pour vue en js mais au moins tu apprends les bases
Nodejs en backend pardon
C'est possible de faire du web fullstack avec node ou pas (genre un réseau social) avec une base de donées , système de connexion et tout
Avec nextjs il me semble mais je n’est jamais essayer
Avec électron c'est possible en application.
Oui tu peux, discord était en full nodejs il y a quelques temps par exemple
Le back est plus en node, et depuis peu, l'app mobile est en react native
Salut @queen ocean une fois tu m'avais aider à faire un script avec ashk ou spoke je sais plus, c'était ça
et bien j'ai littéralement fait un copier coller sur mon bot pour faire des tests et ça me renvoie cette erreur :
je comprends plus rien au code
C'est pas très malin ca :/
Quand on t'aide comme ca en vocal, prend des notes si besoin !
Surement que l'API te renvoie pas les data que tu veux du coup .troops est undefined
Fais un console.log de ta variable joueur
ok
Ok c'est bon je comprends mieux mais du coup j'ai modif quelques trucs pour faire en sorte que tu puisses savoir les super troupes des membres du clan que toi meme tu as chercher sauf que c'est un peu plus compliqué car il faut passer par 2 json
Ah oui
Bjr j'ai besoin d'aide
Comment je peux créer un système pour renommée les fichiers en JavaScript
Salut les gars j’ai un soucis avec mon bot sa me fait merci d’avance à vous ^^
Yo, envoie ton code s'il te plaît
bonjour pouvez vous m'aider svp
code:
const discord = require("discord.js");
const { ApplicationCommandOptionType } = require("discord.js");
const { ChannelType } = require("discord.js");
module.exports = {
name:"clear",
description: "🧹・Supprimer des interaction.",
dm: false,
category: "Information",
options: [
{
name: "salon",
description: "Le salon où effacer les messages",
channelTypes: [ChannelType.GuildText],
required: true,
type: ApplicationCommandOptionType.Channel,
},
{
name: "nombre",
description: "🎲・Nombre de interaction à supprimé",
required: true,
type: ApplicationCommandOptionType.Integer,
}
],
run: async (bot, interaction, args) => {
let channel = interaction.options.getChannel("salon")
let number = interaction.options.getInteger("nombre")
if(parseInt(number) <= 0 || parseInt(number) > 100) return interaction.reply("il vous faut un nombre entre `0` et `100` !")
await interaction.deferReply()
try {
let interaction = await channel.bulkDelete(parseInt(number))
await interaction.followUp({content: `J'ai bien supprimer \`${interaction.size}\`!`, ephemeral: true})
} catch (err) {
let messages = [...(await interaction.channel.messages.fetch()).filter(msg => !msg.interaction && (Date.now() - msg.createdAt) <= 1209600000).values()]
if (interaction.length <= 0) return interaction.followUp("Aucun interaction à supprimé car il datent tous de plus de 14 jours !")
await channel.bulkDelete(number, true)
await interaction.followUp(`J'ai pu supprimé uniquement \`${interaction.length}\` messages car les autres datient de plus de 14 jours !`)
}
}
}```
erreur:
Possibly Unhandled Rejection at: Promise Promise {
<rejected> DiscordAPIError[10008]: Unknown Message```
Bonjour, j'ai une question, vous savez on peut récuperer les values d'une interaction (discord.js) avec interaction.values mais comment je peux faire pour récupérer les labels car interaction.labels ne marche pas. Merci !
interaction.component.label
Salut, essaye ça voir.
ok merci, au final j'ai trouvé une solution de récuperer le nom du role par l'id et de l'envoyer en bdd.json pour la récup après. Mais merci quand même !
Tu as plus simple tu peux directement le mettre dans le customId à la suite de celui déjà défini et après quand tu récupères le bouton tu récupères l'id du rôle avec un .slice().
Salut, j'ai souvent l'erreur require is not defined et je comprend pas vraiment pourquoi si quelqu'un peut m'éclairer
Code et erreurs
Pcq en gros j'ai un site avec laravel, et j'aimerais utiliser une api mais quand je met require ça me dis que il existe pas et le seul moyen que j'ai trouvé pour que ça marche c'est faire un autre package.json et devoir run avec npm...
sinon je peux pas utiliser le script autrement
et du coup ça me bloque complétement
Je ne sais pas pour le coups
mais enfaite je comprend pas c'est a quel moment que le require marche
meme dans un .js de base il marche pas
Après sans code, ni rien, on peut pas trop t'aider
let tvtime = require('tvtime-api');
tvtime.login('39164467', 'mdp')
//recuperer tous les shows et les mettre dans un tableau
tvtime.followShow(329822).then((data) => {
console.log(data);
});
juste ça
j'ai une erreur comme quoi le require n'existe pas
ça c'est du code node ça marche pas en navigateur
ouai j'ai vu du coup j'ai utiliser browserify mais du coup j'ai une autre erreur c'est vraiment la galère
Si quelqu'un sait
Uncaught (in promise) Error: Cannot find module '/node_modules/tvtime-api/src/access.json'
at o (script.js:1:159)
at script.js:1:316
at getCookies (script.js:63582:19)
at Object.put (script.js:63679:30)
at script.js:63471:10
at new Promise (<anonymous>)
at Object.followShow (script.js:63470:10)
at 392.tvtime-api (script.js:65682:8)
at o (script.js:1:265)
at r (script.js:1:431)```
Salut, j'aimerais savoir comment je peux faire un test en gros je veux tester de recuperer les valeurs d'une requête post mais je sais pas comment m'envoyer une requête moi meme en localhost
en js
Une requête post, en ajax ?
axios
J'ai du mal à comprendre ce que tu ne sais pas faire
bah enfaite
je comprend pas comment je peux lancer une requête sur la route a laquelle je susi actuellement
Hm je crois qu'il suffit de mettre le paramètre url à vide, et ça pointe sur l'url où tu es
Si c'est ça la question
mmh ça marche pas
Dans l'onglet réseau tu vois ta requête ?
j'ai ça surtout
et sinon je vois pas de requête post
Là ça a l'air d'être un problème en amont de ta requête ajax, si ta page web ne s'affiche même pas
axios.get('/localhost:1010/show', {
username: 'Xnern',
password: 'mdp'
})
j'ai fais ça
pcq
meme une get marche pas
Tu es sur quoi comme framework ?
la j'ai pas de framework
Essaye de désactiver defender
fin j'ai express je sais pas si ça compte
Il te faut un serveur actif local sur le port 1010
Sinon c'est normal que ça marche pas
Pour pouvoir faire une requête ajax il te faut déjà une page web qui fonctionne
non mais ça marche de base
fin
en gros de base
je veux faire une api
mais je voudrais tester des trucs
avec une requête
pcq je sais pas comment recuperer les paramètre d'une requête post
Ta requête ajax remplace ta page web en fait ?
bah comme j'y connais pas grand chose en gros dans mon /show je recupère des donnés que j'affiche en json, mais moi je veux envoyer une requête a cette url pour me connecter avec les identifiant dans la requête post pour pouvoir si c'est les bon continuer et afficher mon json
mais du coup je sais pas comment faire cette requête post
marche pas
Mais tu es sûr de ton localhost:1010 ?
Parceque normalement si ça aurait defender qui aurait bloqué un port le fait de le désactiver aurait reouvert le port
L'erreur site inacessible, on dirait que ya pas de serveur derrière ce nom d'hôte + port
ça marche très bien
la j'ai rien mis dans l'url
donc j'ai pas de résultat
mais dés que je met la requête
j'ai plus accés
On peut voir ton code ?
mais enfaite je mettais la requete dans le app.get('/show')
je sais pas ou le mettre sinon
Si je comprends bien, ton script script.js est côté serveur ? C'est ton api ?
ouai
en gros
et je fais appel au module tvtime pour les requête sur le site
pour récuperer mes données
Ton test de requête post il faut que tu le mettes côté client à mon avis
ah daccord je vois
Comme ça tu fais ta requête post à ton api et tu vois le résultat
Dans l'onglet réseau
ok ok je vois merci
de rien
😉
sinon tu sais comment je peux recuperer les paramètre de la requête ?
Tu as essayé via req.body ?
ouai ça me dis undefined
Tu utilises body parser ?
Je ne connais pas nodejs en côté serveur mais j'ai trouvé ça
Express ?
Les params sont dans req.params, les query dans req.query et le body dans req.body
params et query au format object
body en fonction du type du body
j'ai fais req.params['username'] mais j'ai une erreur
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
meme req.query ça me fais ça
app.post("/shows", (req, res) =>{
console.log(req.params['username'])
tvtime.login(req.params['username'], req.params['password'])
tvtime.shows().then((data) => {
shows = data;
res.json(shows);
});
tvtime.logout();
})```
mais enfaite le console.log
je sais pas ou il est sensé s'afficher
dans la console de mon vs code ?
pcq j'ai rien dans la console web
Oui la console de ton serveur
Donc certainement le terminal depuis lequel tu l'as lancé
ouai mais y'a toujorus undifined
Pour info tu peux écrire req.params.username
(mais c bon comme tu as fait aussi)
Tu peux montrer ta requête ajax côté client à tout hasard ?
Tu as affiché ton req.params déjà ?
comment ça affiché
Ah c'est pas une requete ajax, mais ça devrait marcher aussi
j'essaye de le log
console.log ou bien avec ton debuggeur
bah il y est le console.log
Tu peux ptet essayer de console log tout le req
Juste le req.params
Comment il doit récupérer les données depuis post du coup ?
Dans le body plutôt
req.body = undifined
Tu peux essayer de console tout le req ?
ouai mais c'est super long
Si tu peux copier coller tout ça sur notepad, tu pourras chercher "username"
je trouve pas de username
Et dans ton onglet réseau sur ta requête tu as bien les paramètres ?
https://www.digitalocean.com/community/tutorials/use-expressjs-to-get-url-and-post-parameters
En step 5 ils disent que ya deux lignes spéciales à mettre côté serveur (app.use)
okay merci je check
niquel ça marche merci beaucoup !
Parcontre
en gros j'ai une fonction login
et quand je suis pas connecter ça me renvoie user no login
mais en gros quand je fais ma requete post
ça me met no login
et si j'actualise bah ça me loginù
je sais pas c'est du a quoi
Montres ton code
En gros
En gros je me login avec la fonction
et j'affiche le résultat de la requête
mais la première connexion, j'ai des resultat comme si j'etais pas connecté
et quand j'actualise je vois comme si j'etais conntecté
et si je réactualise ça me remet comme si j'etais pas connecter
j'ai l'impression que le logout il se fait plus tard
Voila les 2 fonctions
elles sont rename quand elles sont exporté c'est pour ça que signOut = logout
On peut voir la fonction resolve ?
Hm je dis du caca j'crois. Je maîtrise pas trop les promesses
Si attends, ça doit bien être une fonction déclarée plus haut non ?
resolve fait partie des promise
La méthode Promise.resolve(valeur) renvoie un objet Promise qui est résolu avec la valeur donnée. Si cette valeur est une promesse, la promesse est renvoyée, si la valeur possède une méthode then, la promesse renvoyée « suivra » cette méthode et prendra son état ; sinon, la promesse renvoyée sera tenue avec la valeur.
comment ça
🤔
Tes deux dernieres captures c'est côté front ?
c'est le module de tv-time
c'est les fonctions que j'importe du module
et la je veux faire une api pour utiliser les données du module
pcq sinon je peux pas utiliser dans mon projetds
Mais du coup, tu l'appelles dans ton app la fonction login j'imagine
bah enfaite
je t'explique mieux en gros
quand t'es connecter ta une liste de série
que ta mis dans ton appli
et dans la liste chaque série a des saison avec des épisodes
et tu peux voir si tu les a déjà coché comme vu ou pas
et en gros
du coup je sais que je suis connecté en voyant les épisodes comme watched: true
et en gros
du coup je fais login
je fais show
et logout
donc logiquement il doit m'afficher mes episode en tant que watched: true
mais quand je le lance la première fois j'ai watched: false
et si j'actualise ça passe a true
et si je réactualise false etc...
Je ne comprends pas tout mais il me semble que tu n'attends pas d'être loggé et que tu dis de logout avant même d'être loggé
oui bah en gros je pense aussi que c'est ça
J'pense que tu devrais faire .login(....).then...
ok je vais essayer merci
Si tu entre dans le then, comme la fonction login est bien faite, ça veut dire que tu es connecté
okay faut que je vois la syntaxe pour le then
ça prend juste en paramètre une fonction qui va s'exécuter quand/si tu es bien loggé
ah ça marche niquel !!
Hehe
merci beaucoup tu m'as beaucoup aidé
De rien 🙂
Salut, j'ai essayé de host une API sur heroku, ça marchait pas donc je me suis dis que j'allais faire une app next.js et la host sur vercel pour mes requêtes mais quand je fais la requête post en localhost ça marche mais quand je la met sur vercel ça marche plus si quelqu'un sait
bonjour j'ai un problème mon bot veux pas me répondre a mon "ping" voir screen
const { Client, GatewayIntentBits } = require('discord.js');
const settings = require('./settings.json');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.on('ready', () => {
console.log(Logged in as ${client.user.tag}!);
client.user.setActivity("2MTNE1 Meilleur classe.");// WATCHING, LISTENING ou pas type mais url:lien twitch pour STREAMING
client.user.setStatus('online'); //dnd, invisible, online, idle
});
client.on("message", msg => {
if (msg.content === "ping") {
msg.reply("pong");
}
})
client.login(settings.discord_token);
Merci de m'aidez au plus vite.
@keen narwhalTu es en quel version de discord.js ?
Car je vois que tu utilises des intents, donc c'est messageCreate, de plus, tu as pas les intents des messages, et sur la page du bot (Page d'application discord), il faut cocher 🙂
Ceci ducoups @keen narwhal
ou avoir les intents
@dire latch dsl de te ping mes jsp comment mettre ce que tu ma dit
Regarde des tutos 🙂
j'ai ça Uncaught DiscordjsError Error [DisallowedIntents]: Privileged intent provided is not enabled or whitelisted.
at DiscordjsError (c:\Users\boulm\Desktop\2MTNE BOT\node_modules\discord.js\src\errors\DJSError.js:18:32)
at createShards (c:\Users\boulm\Desktop\2MTNE BOT\node_modules\discord.js\src\client\websocket\WebSocketManager.js:250:15)
C'est bon sa marche mrc
Np
Hello, quelqu'un sait pkoi j'ai cette erreur sur expo. Sur le web ça fonctionne mais pas sur mobile. J'ai eu cette erreur juste après avoir ajouté firebase.
Salut, j'ai fais une api en js et en gros je l'ai host, mais si y'a un problème avec la requête y'a une erreur et l'api plante
je sais pas comment empêcher ça
Je vois deux solutions, je pense qu'il faut utiliser les deux à la fois :
_faire des try catch pour protéger le code des exceptions qui remontent tout en haut
_utiliser un outil tel que PM2 pour que ton API redémarre automatiquement en cas de plantage
Ah je vois, je connaissant pas du tout PM2, et c'est quoi selon toi la meilleur solution ?
ça marche bah merci beaucoup je vais essayer
mais tu parles de try catch
est-ce que
sur une requete axios par exemple
si je fais .catch ça fonctionne ou pas ?
ça revient au meme ?
Hm, je sais pas si une promesse non catch génère une exception, je crois pas
bah la en gros si je fais une requête avec les mauvais identifiant ça me fais une erreur
ou alors si l'id que je met dans la requête est pas bon etc
OK
Oui ton app est censée gérer ce genre d'erreur
Si tu catch l'erreur avec un .catch ça ne devrait plus planter je pense
ça marche je vais essayer
Cet article explique bien les choses :
https://www.stashofcode.fr/deboguer-les-promesses-en-javascript/
Il suffit que tu ajoutes un .catch pas vide, en lui passant une fonction et il n'y aura plus d'erreur
.catch(() => {})
Merci !
Du coup j'ai regardé et pour pm2 sur heroku par exemple faut payer c'est un peu chiant
Autant payer un petit VPS dans ces cas là.
J'ai utilisé pm2 pour un projet, c'était gratuit, un simple package à installer
Salut, j'ai un soucis avec mon bot discord, j'aimerais qu'il modifie un message d'état d'un serveur de jeu mais malheursement, je ne trouve rien sur le sujet. J'aimerais savoir si il y serait possible d'effectuée la modification du message toutes ( exemple : les 5 minutes ) en v12.5.1 ( je suis sur une même version car elle me vas très bien et que je suis a l'aise avec )
Salut, savez-vous comment faire en sorte que lorsque le joueur arrive sur une div ( il scroll jusqu'à arriver desssus ) une fonction se déclenche
The setInterval() method,
offered on the Window and Worker interfaces, repeatedly
calls a function or executes a code snippet, with a fixed time delay between each
call.
Oh merci beaucoup !
J'ai un problème avec le composant Calendar de PrimeReact : le mode range ne fonctionne pas, et chaque clic sur une date renseigne et écrase toujours la première date. ça parle à quelqu'un ?
La vache j'ai enfin réussi ! En fait c'était le state qui contrôlait intempestivement la value du calendar
Bonjour vous seriez comment faire pour que le bot envoyer un message dans un fil
Salut, il faut que tu prennes l'id du fil que tu le définisses dans le code et ensuite tu fais un .send comme avec un channel text.
Bonsoir, j'étais en train de créer une slashCommand pour un bot discord, mais lorsque je commence à l'écrire dans un salon je n'ai pas l'argument "identifiant" qui est proposé. Auriez vous une idée de pourquoi ça ne marche pas de cette manière ?
const {EmbedBuilder} = require('discord.js');
module.exports = {
name :'ed',
description: 'école directe',
permission: "",
dm: false,
options: [
{
name: 'identifiant',
description: 'id',
type: 3,
required: true,
},
],
}
Salut, tu n'as pas l'argument identifiant quand tu fais /ed ?
oui c'est ça
Oki, alors à première vue je ne vois pas d'erreur tu as d'autres commandes avec des options ?
nan c'était la première avec options
Alors, perso peut être que tu as mal définis dans ton code au niveau de ton handler pour lire les options.
à ce niveau j'ai fait ça :
bot.commands.forEach(async command => {
let slashcommand = new Discord.SlashCommandBuilder()
.setName(command.name)
.setDescription(command.description)
.setDMPermission(command.dm)
.setDefaultMemberPermissions(command.permission === "" ? null : command.permission)
if(command.options?.lenght >= 1){
for(let i = 0; i < command.options.lenght; i++) {
slashcommand[`add${command.options[i].type.slice(0,1).toLowerCase() + command.options[i].type.slice(1, command.options[i].type.lenght)}Option`](option => option.setName(command.options[i].name).setDescription(command.options[i].description).setRequired(command.options[i].required))
}
}
await commands.push(slashcommand)
});
j'utilise discordjs v14 c'est ça le problème ?
car depuis tout à l'heure j'y arrive toujours pas
Euh excuse moi j'ai pas pu te répondre, je t'avoue, je sais pas trop d'où viens le problème. C'est bizarre.
Tu a refresh t'es commande dans lapi discord?
je fais comment ?
Comme quand tu a register tes commande avec normalement si tu a suivi le tutos deploy-commands.js
Tu le require au lancement du bot
ah oui ok
@hasty shoal et puis
J'ai testé ça pour les supprimer mais :
const {REST} = require("@discordjs/rest")
const {Routes} = require('discord.js');
const {token, guildId, clientId} = require('../config')
REST.put(Routes.applicationGuildCommands(clientId, guildId), { body: [] })
.then(() => console.log('Successfully deleted all guild commands.'))
.catch(console.error);
j'ai cette erreur :
@visual sequoia
Strange tu as installé rest?
Mais nan pas besoin de les sup tu run toujours ton code de base sa va les update @hasty shoal
quand je démarre mon bot j'ai fais en sorte que ça me mette "la commande ed.js a été lancée" et "loadSlashCommand a été effectué avec succès"
dans la console *
Ok et?