#javascript-typescript
1 messages · Page 33 of 1
Tu réinstalles node.js et lors de l’installation verifie bien à cocher la case « ADD TO PATH »
Bonne soirée
ca marche pas mias merci
ta tester yarn?
oui c'est + opti que npm
ca marche pas
y a les error aussi?
J’ai exactement le même soucis
Npm install —g yarn
Refait npx create-next-app@latest pour test
Il manque un e à create
Montre
Somme toute logique y’a pas de dev dans son json 👀
Ou il est pas dans le bon dossier …
C’est probable
Mais comme il ne répond plus c’est qu’il doit avoir trouvé
@floral bolt merci d'avoir répondu à ma place j'étais pas là
il a régler le problème ou pas ?
Sachant qu’il n’a pas répondu depuis 18 heures 30 je pense que oui
daccord, merci à toi !
C'est conseillé dans la Doc d'utiliser corepack
Ouais, mais bon on va pas le perdre sachant qu’il n’arrive pas à lancer un projet next :/
Hello je suis coincer sur une chose toute bête , comment on prend la valeur d'un resultat et on le multiplie par 3
valeur * 3 ?
Wep
C'est sa que je veux faire
@floral bolt
En gros c'est sa
Luffy augmente sa speed {valeur} si celui-ci baisse son ennemie de 230 alors il gagne {valeur * 3}
Le problème c'est qu'il me relance un GetrandomInt de 600
Tu peux envoyer un screen de ton code ?
Et donc quand tu met ${230*3} ça te sort un getrandomInt
nan
je veux pas faire 230*3
je veux prendre le résultat du getrandomint de "Luffyspeedgain" et le faire x3
mais si je remet Luffyspeedgain sa me relance un getrandom int
Passe un screen de ta fonction getrandomInt
je ne l'ai pas
enfin je ne sais ps dans quel section elle est
c'est un bot que j'ai du reprendre car le créateur à arreter
Ah
J'ai compris tqt
et faire x3
Je réfléchis
'k
sinon tempis je dis juste au joueur a l'écrit de faire x3
et il se débrouille a la calc
Pas ouf de faire ça
Tu as essayé de faire une const a lieux d'un let pour pas que la valeur bouge
Je dis peut être de la merde mais ça peux fonctionner
bah le but c'est que la valeur bouge
c'est un roll
c'est juste qu'une fois que j'ai le résultat du roll
je veux le faire x3 sur la section à coté
att 2s
Je test un truc et je te redis
tu vois, la sa fais ainsi
mais le triplé
correspond pas a 185 * 3
ah si
att
j'ai peut etre résolu moi même le soucis sans le vouloir
mdr
bon
je pense
j'avais oublié de restart le bot
et donc que ce que j'avais fais de base
fonctionné
Je me disais bien que c'était bizarre que juste *3 ne fonctionnait pas
Bonjour! Est-ce que quelqu'un s'y connaît un peu en js pour after effects ici?
Pour after effects ? Pour faire un plugin ? 
Un petit script oui
J’ai jamais test mais envoie direct ta question peut être que quelqu’un pourra t’aider
D'acc, alors en gros j'aimerais que mon script crée un calque text et qu'il applique deux preset d'animation, le premier qui est déjà intégré qui s'appelle "Fade Up Words" et le second qui a toujours du mal à s'intégrer "Fade Out Slow". Dès que je tente de l'intégrer, les keyframes du premier effet disparraissent, voir même l'effet complet qui disparaît des calques
c’est quoi ton code actuellement
le voici
Désolé du temps de réponse mon chaton faisait le bordel haha
Ce qu'il fait pour l'instant c'est générer des sous titres sous forme de calques de texte via un fichier srt. Le premier preset d'animation est good aussi et bien keyframe mais le second ne veux pas apparaître
Si quelqu'un est dispo pour lui montrer en partage ce serait mieux je pense 🙂
Hola des persoones qui dev des bots discord ici ou pas ? J'aurais une petite question svp
Pose ta question
Je développe un bot depuis un certain temps (je suis novice), et il y a quelques mois, quand je travaillais dessus, j'ajoutais une commande, et elle apparaissait directement sur Discord une fois le bot lancé, ce qui me permettait de l'essayer tout de suite. Mais récemment, j'ai repris le développement, et maintenant, lorsque j'ajoute une commande, je dois attendre plusieurs heures, voire une journée, pour qu'elle apparaisse sur Discord.
Est-ce normal ? Ont-ils ajouté un délai pour que les commandes soient déployées ?
Salut, tu dois simplement relancer ton discord pour que ta commande apparaissent
Bonjour, j'aurai besoins d'aide pour un code si possible . J'essaye de faire un switch mais avec un getrandomint qui me permet de tirer un dé, merci a vous
j'ai trouver
Bonjour , j'aimerais crée ou trouver un moyen d'avoir la fonction entre 2 nombre merci a vous
(en urgence si possible)
Hello, il faut que tu actives les commandes en mode privé (qu'un seul serveur, donc tu rentreras le serverID de ton serveur de test) pas en mode global
Yes ?
Oh désolé , j'ai oublié de prévenir mais merci quand même
J'ai réussi à trouver la solution
Et tu fais ça où ?
Non, aucun. C'est bizzare, à part relancer discord de temps en temps pour refresh les commandes, y a rien n'a faire. Quel version utilises tu ? Et, qu'as-tu cocher dans le discord développeur ? Cest sûrement une magouilles du style... Très bizzare
J'arrive a charger directement que quand je réinvite le bot a chaque fois sur le discord
Directement dans ton code
Peux-tu me faire voir où tu enregistres les slash commands ?
je regarde ça
essaie de changer de bot
créer 1 nv bot
non
att 2s
c du chatgpt?
Non cette partie la j'avais regardé une vidéo y a genre plus d'un an
Pas moi qui les ecris en tout cas
t'es en quel version ?
Mais les 3/4 du bot c'est moi
v14
discord.js combien ?
et le tuto c'était écrit combien?
la mm
Merci
const guildId = "ton serverID"
client.once('ready', () => {
client.guilds.cache.get(guildId).commands.set(commands);
})
Après j'ai demandé a chatgpt y a peu de temps de me reexpliquer tout les codes que je n'avais pas ecris moi meme pour apprendre et comprendre ce qui avait ete fait
Le handler il va galerer
sil doit mettre tout les id discord
pk tu changes pas ton handler ?
non tu n'as pas compris
C'est un bot pour un seul discord
annh ok
zjai cru tallais le rendre public
Il ne va rentrer que le serverID de son serveur de test car il veut que les commandes slash se refresh immédiatement après le redémarrage du bot
Mais si c'est du public alors c'est normal qu'il faut attendre plusieurs heures avant que les commandes slash se refresh
ga j'ai compris en mode le bot fonctionne que sur le serveur déterminer
perso le mien à rien
il refresh instant
Un simple CTRL + R sur discord et on vois les commandes
Non, parfois lorsque le bot est en mode slash command global il faut attendre plusieurs heures avant qu'une nouvelle commande soit visible après qu'elle a été créer
Jamais eu sa perso, juste le besoin de refresh discord
🤷 en tout cas, @stone roost a ce pb là
Et ça m'est déjà arriver
@stone roost tu as essayé de refresh ton discord comme ils ont dit ?
Yep !
et ça marche tjrs pas dcp ?
nop
Ce qui est bizzare c'est que y a quelque mois j'avais pas se problème alors que c'est le mm bot/code
En vrai c'etait y a genre 6/7 mois (oui je dev par periode ahah)
C'est comme ça, des choses peuvent varier, mais en tout cas si tu fais ça, ça apparaitra directement
je vais test la
Parfait j'ai juste du modifier un petit truc
le commandsArray ?
yep
ça marche du coup ?
oui merci beaucoup
Nice, tu n'auras plus jamais ce souci :)
Parfait merci la vie c'etait trop chiant je faisait un truc j'attendais le lendemain pour test 🥲
bonsoir, j'ai un projet NextJS et ça fait 4h que j'arrive pas a récupérer des abonnée YT, si quelqu'un aurais un ptit exemple ou juste la solution svp 
Bonsoir a tous
Je travail sur un projet avec react et express
je dois faire un fetch vers un chemin depuis mon front vers mon back
et dans ce fetch je passe les cookie du site grace a ' credentials: "include", '
problème
je me chope une erreur cors parce que je veux faire passer mes cookie ainsi
comment enlever cette erreur CORS ?
Si j'amais voici l'érreur :
Blocage d’une requête multiorigine (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur http://localhost:8081/clientInfos. Raison : l’identification n’est pas prise en charge si la valeur de l’en-tête CORS « Access-Control-Allow-Origin » est « * »
@keen narwhal comme tu as supprimé ton message je suppose que tu as résolu ton problème et j'aimerais bien savoir comment tu as fait car j'ai la même erreur de mon côté
envoie ton erreur et le dernier code qui te fait cette erreur
DiscordAPIError[50027]: Invalid Webhook Token
at handleErrors (/home/container/node_modules/@discordjs/rest/dist/index.js:730:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async SequentialHandler.runRequest (/home/container/node_modules/@discordjs/rest/dist/index.js:1133:23)
at async SequentialHandler.queueRequest (/home/container/node_modules/@discordjs/rest/dist/index.js:963:14)
at async _REST.request (/home/container/node_modules/@discordjs/rest/dist/index.js:1278:22)
at async InteractionWebhook.editMessage (/home/container/node_modules/discord.js/src/structures/Webhook.js:341:15)
at async ModalSubmitInteraction.editReply (/home/container/node_modules/discord.js/src/structures/interfaces/InteractionResponses.js:161:17) - undefined```
aucune idée du code mdrr y'a vient que de discord.js
et ça spam pas mal la console, plusieurs fois par jours
c'est un bot que j'ai un peu abandonné en vrai, te casse pas la tête à essayé de savoir d'où ça vient
Je suis en train de refaire au propre le même bot
dsl jsuis la
jtt entrain de manger
ta un modal?
commande modal?
j'ai pas de commande modal non
t'es sur un hébergement là non?
oui
Bonjour, j'ai un probleme avec child_process sur node.js 20.17.0.
const playerctl = spawn('playerctl', ['status'], { shell: true });
playerctl.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
playerctl.stderr.on('data', (data) => {
console.error(`stderr: ${data}`);
});
playerctl.on('close', (code) => {
console.log(`exit code ${code}`);
});
les logs :
stdout: (playerctl:494502): playerctl-DEBUG: 12:03:48.883: Getting list of player names from D-Bus
stdout: (playerctl:494502): playerctl-DEBUG: 12:03:48.884: Playerctld is running. Getting names from there.
stdout: (playerctl:494502): playerctl-DEBUG: 12:03:48.886: Getting list of player names from D-Bus
stdout: (playerctl:494502): playerctl-DEBUG: 12:03:48.888: initializing player: firefox.instance_1_114
stderr: No player could handle this command
- Dans le shell system la commande fonctionne parfaitement
- J'ai vérifier les variables d'environements dans le contexte du shell node.js est celui de mon shell system, il y a une différence que je ne comprend pas
shell system env : DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
shell node.js env : DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus,guid=cb08ec9f216e7f753c689a2466d60022 - playerctl status ne fonctionne pas dans le terminal de vscode
Je viens de comprendre ce n'est pas un probleme avec node.js mais un probleme du contexte d'execution si je lance mon app a partir de mon shell system cela fonctionne mais sur le shell vscode non
Bonjour à tous,
J'apprends a developper des application mobile, pour le moment je suis sous React Native en JS & expo.
Coté developpement ca se passe bien mais je n'arrive pas a build d'apk, l'appli tourne parfaitement sous Expo Go avec emulateur ou machine physique.
Ca dois faire quelques semaines que j'y passe des heures sans reussit. Alors j'ai décidé de re crée un projet vierge car l'autre avait pas mal d'erreur en partant du principe que le buil ne fonctionnait pas a cause de ca.
Une fois le nouveau projet setup je décide de faire un build apk tel qu'il est donc avec juste la page d'accueil de base quoi. L'apk se genere sans problème.
J'essaie donc d'ajouter mes composants et pages tout en prennant soins de réparer chaque erreur.
Maintenant que c'est fait, le build ne refonctionne plus.
Je vous ments pas je suis a bout de nerf x)
Si quelqu'un a une idée de pourquoi ca bloque je suis prenneur.
Merci beaucoup
Bonjour,
j'ai un léger problème que je n'arrive pas a résoudre. Je souhaite remove un objet généré dynamiquement en fonction du state d'un autre tout en remontant la ref y étant associer afin de la manipuler a un autre endroit.
c'est assez compliquer d'expliquer la suite donc voici mon code :
removeItems = (index: number[]): Promise<ObjectCustom[]> => {// pour le test index vaut [0]
return new Promise((resolve) => {
const toReturn = index.map(i => this.ref[i].current);
this.setState(
(prevState) => ({
data: [...prevState.data.filter((_, i) => !index.includes(i))]
}), () => {
console.log('toReturn: ', toReturn.map((item) => item.state)); //ici toReturn a la valeur que je souhaite : this.ref[0].current avant la suppréssion de l'item autrement dit l'item qui est supprimé.
resolve(toReturn);
}
);
});
}
render(){
return (<div>
{this.state.data === null ? null : this.state.data.map((data, index) =>
<div key ={index}><Item ref={this.ref[index]} data={data} /></div>
)}
</div>);
}
et voici l'utilisation de removeItems :
from.removeItems(items).then((removedItems) => {
console.log('card removed from hand :', removedItems.map((item) => item.state)); //affiche la valeur du nouveau this.ref[0].current soit l'ancien this.ref[1].current au lieux de me return l'élément supprimer
PS: dans le cas ou je n'utiliserai pas une promise pour removeItems alors removedItems serait bon mais lors de n'importe quel nouveau setstate celui-ci change tout seul retrouvant le mauvais élément le rendant donc inutilisable pour ce que je souhaite en faire : une animation de déplacement ou l'item passerai d'un composent A à un composent B a l'aide un composent C servant a faire la transition
Salut !
J'ai cette erreur en fin de build :
[RUN_GRADLEW] FAILURE: Build failed with an exception.
[RUN_GRADLEW] * What went wrong:
[RUN_GRADLEW] Execution failed for task ':react-native-pager-view:compileReleaseKotlin'.
[RUN_GRADLEW] > A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction
[RUN_GRADLEW] > Compilation error. See log for more details
[RUN_GRADLEW] * Try:
[RUN_GRADLEW] > Run with --stacktrace option to get the stack trace.
[RUN_GRADLEW] > Run with --info or --debug option to get more log output.
[RUN_GRADLEW] > Run with --scan to get full insights.
[RUN_GRADLEW] > Get more help at https://help.gradle.org.
[RUN_GRADLEW] BUILD FAILED in 1m 16s
[RUN_GRADLEW] 191 actionable tasks: 191 executed
[RUN_GRADLEW] Error: Gradle build failed with unknown error. See logs for the "Run gradlew" phase for more information.
Build failed
Gradle build failed with unknown error. See logs for the "Run gradlew" phase for more information.
npx exited with non-zero code: 1
Error: build command failed.
Je peux t'envoyer le shell du build complet si besoin ! Merci pour ton aide ! 🙂
ton probleme vient de react-native-community/viewpager
Oui je vois bien que le problème viens de ça mais je ne vois pas c'est quoi le problème, il est bien a jour et fonctionne très bien en local
c'est pas a jour non ... c'est deprecié et plus maintenu
React Native wrapper for Android and iOS ViewPager. Latest version: 5.0.11, last published: 4 years ago. Start using @react-native-community/viewpager in your project by running npm i @react-native-community/viewpager. There are 112 other projects in the npm registry using @react-native-community/viewpager.
si ca ne marche pas n'hesite pas 😉
T'es un tueur merci beaucoup !
Mmmh enfaite j'utilise déjà react-native-pager-view et pas react-native-community/viewpager
essaye cd android ./gradlew clean ./gradlew build
Le problème avec ca c'est que j'ai pas de fichier android :c
Tu fais quoi comme commande quand tu build ?
eas build --platform android --local```
t'es bien sur windows ?
yes mais pour build j'utilise WSL
fait ca : eas build --platform android --local --gradle-flag --stacktrace on aura plus d'info
eas build --platform android --local --gradle-flag --stacktrace
Unexpected arguments: --gradle-flag, --stacktrace
See more help with --help
Error: build command failed.
loic@MAIRP0033:/mnt/c/Users/l.florimont/Documents/Developpement/ApplicationTablette/test-build$
ton projet est sur github ?
nop
eas build --platform android --local --stacktrace
roid --local --stacktrace
★ eas-cli@12.0.0 is now available.
To upgrade, run npm install -g eas-cli.
Proceeding with outdated version.
Unexpected argument: --stacktrace
See more help with --help
Error: build command failed.
envois ton package.json et ton build.gradle
{
"name": "test-build",
"version": "1.0.0",
"main": "expo/AppEntry.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web"
},
"dependencies": {
"@expo/vector-icons": "^14.0.2",
"@react-navigation/native": "^6.1.18",
"@react-navigation/stack": "^6.4.1",
"expo": "~51.0.28",
"expo-status-bar": "~1.12.1",
"firebase": "^10.13.1",
"prop-types": "^15.8.1",
"react": "^18.3.1",
"react-native": "^0.75.2",
"react-native-safe-area-context": "^4.10.5",
"react-native-screens": "^3.34.0",
"react-native-snap-carousel": "^1.3.1",
"react-navigation": "^5.0.0",
"react-native-pager-view": "6.3.0"
},
"devDependencies": {
"@babel/core": "^7.20.0"
},
"private": true
}
J'ai pas de fichier builkd.gradle
npm install react-native-pager-view@latest et reesaye
franchement je archi seche sur le problème :c
le "failed with unknown error" n'aide pas beaucoup
essaye : cmake --version
tu peux peut-être essayer avec --info ou --debug
cmake --version
cmake version 3.22.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
t'es en retard : https://cmake.org/download/
You can either download binaries or source code archives for the latest stable or previous release or access the current development (aka nightly) distribution through Git. This software may not be exported in violation of any U.S. export laws or regulations. For more information regarding Export Control matters please go to https://www.kitware...
ensuite npx expo upgrade puis npx expo install
$ expo upgrade is not supported in the local CLI, please follow this guide https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough/ instead
Une fois sur le liens
npm install expo@latest
up to date, audited 1305 packages in 3s
136 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
npx expo install --fix
The following packages should be updated for best compatibility with the installed expo version:
react@18.3.1 - expected version: 18.2.0
react-native@0.75.2 - expected version: 0.74.5
react-native-pager-view@6.4.1 - expected version: 6.3.0
react-native-safe-area-context@4.10.9 - expected version: 4.10.5
react-native-screens@3.34.0 - expected version: 3.31.1
Your project may not work correctly until you install the expected versions of the packages.
› Installing 5 SDK 51.0.0 compatible native modules using npm
> npm install
added 16 packages, removed 33 packages, changed 52 packages, and audited 1288 packages in 1m
133 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
cmake --version
cmake version 3.22.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
Voila :c
ta pas mis a jour cmake
faut que j'le dl version windows ?
si t'es sur windows oui
j'avoue que c'est plutot logique
si ca marche pas je te laisserais faire ce tuto : https://docs.expo.dev/develop/development-builds/create-a-build/
Okay merci pour ca,
Malgré la maj cmake ca build tjr sous l'ancienne version
[RUN_GRADLEW] > [CXX1428] exception while building Json A problem occurred starting process 'command '/mnt/c/Users/l.florimont/AppData/Local/Android/Sdk/cmake/3.22.1/bin/cmake'' : org.gradle.process.internal.ExecException: A problem occurred starting process 'command '/mnt/c/Users/l.florimont/AppData/Local/Android/Sdk/cmake/3.22.1/bin/cmake''
Pourtant :
cmake --version
cmake version 3.30.3
CMake suite maintained and supported by Kitware (kitware.com/cmake).
Possible que ce soit du au fait que l'ancienne version a été installé toute seule par android studio ?
J'ai modifier dans le ~/.bashrc l'emplacement de cmake car l'install de la nouvelle version l'envoie dans programme files. J'ai du louper quelque chose a faire.
J'vais laisser ca pouir ajd mais si t'as d'autres idée je suis grave prenneur je reesaierais demain
Merci beaucoup pour ton aide
hello pourriez vous m'aider s'il vous plait ?
Property 'getString' does not exist on type 'Omit<CommandInteractionOptionResolver<CacheType>, "getMessage" | "getFocused" | "getMentionable" | "getRole" | "getAttachment" | ... 6 more ... | "getSubcommand">'
J'ai l'impression que ce soucis vien d'un ptobleme avec mon interface SlashCommand mais je ne trouve pas de solution
voici mon code
import { SlashCommand } from "../../types";
import { PermissionFlagsBits, SlashCommandBuilder } from 'discord.js';
export const command: SlashCommand = {
name: 'play',
data:
new SlashCommandBuilder()
.setName('play')
.setDescription('Play song ')
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
.addStringOption(option => option.setName('song').setDescription('The song you want to play').setRequired(true)),
async execute(interaction, client) {
await interaction.deferReply();
const song = interaction.options.getString('song');
console.log(song);
}
}
export interface SlashCommand {
name: string,
data: SlashCommandBuilder | any,
async execute: (interaction : CommandInteraction, client: Client) => Promise<void>,
}
Bonjour tout le monde je recherche actuellement quelqu’un qui pourrait m’aider à fixer certains bugs d’un script
Ça concerne la création de live TikTok interactif, un genre de quizz culture g
La base du script est solide mais pour toute la partie backend ça marche pas
envoie tes erreurs
l'erreur est explicite, ton interaction.options.getString('song'); ne peut pas être fait sur interaction.options (problème de type)
rien a voir c'ets un soucis d'interface comme je l'ai précisé ...
n'envoie pas ton erreur alors puisqu'elle dit ça
et l'erreur explicte affiche bien "on type"
sa sert a rien d'essayer de prendre les gens de haut ...
bien oui
aucun rapport
sa sert a rien d'dit ton message pour rajouter problème de type 😂
bref je vais attendre l'aide de quelqu'un s'y connais vraiment et qui est plus agréable, merci a toi pour ta non assistance 😉
j’ai juste lu ton erreur pour te l’expliciter vu que je ne connais aucunement ton niveau, mon but était bien de t’aider. après pas de soucis attend quelqu’un d’autre :thumbsup:
j'avoue que je veux bien aussi la stack complète ou plus de code si ça n'est pas ce qu'a dit @spice grail ^^' après je reste un junior donc ça se trouve il n'y en a pas besoin mais je vois pas là comme ça
peux tu montrer ta class CommandInteraction ou plutôt ce qui est contenue dans option?
btw si quelqu'un s'y connais bien en ref j'ai utilisé une autre façon de faire entre temps mais j'aimerai bien savoir comment contourner proprement le problème.
Tu as essayé avec ChatInputCommandInteraction ?
oui mais il me met toujours des soucis de type 😵💫
Essai comme ça (je sait pas si tu la fait de la même manière, si oui je vais encore chercher une autre méthode)
import { SlashCommand } from "../../types";
import { PermissionFlagsBits, SlashCommandBuilder, ChatInputCommandInteraction, Client } from 'discord.js';
export const command: SlashCommand = {
name: 'play',
data:
new SlashCommandBuilder()
.setName('play')
.setDescription('Play a song')
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
.addStringOption(option =>
option.setName('song')
.setDescription('The song you want to play')
.setRequired(true)
),
async execute(interaction: ChatInputCommandInteraction, client: Client) {
await interaction.deferReply();
const song = interaction.options.getString('song');
console.log(song);
}
}
export interface SlashCommand {
name: string,
data: SlashCommandBuilder | any,
execute: (interaction: ChatInputCommandInteraction, client: Client) => Promise<void>,
}
j'ai ceci actuellement
async execute(interaction, client) {
await interaction.deferReply();
const inter = interaction.options as CommandInteractionOptionResolver
const song = inter.getString('song');
const player = useMainPlayer();
const res = await player.search(song, {
requestedBy: interaction.user,
searchEngine: QueryType.AUTO,
})
const member = interaction.member as GuildMember;
const voiceChannelMember = member.voice.channel;
const voiceChannelBot = (await interaction.guild.members.fetchMe()).voice.channel;
if (!voiceChannelMember) {
await interaction.editReply('You must be in a voice channel to use this command');
return;
}
if (voiceChannelBot && voiceChannelBot.id !== voiceChannelMember.id) {
await interaction.editReply('I am already in another voice channel');
return;
}
const { track } = await player.play(voiceChannelMember, song, {
nodeOptions: {
metadata: {
channel: interaction.channel
},
volume: 75,
leaveOnStop: true,
leaveOnEmpty: true,
leaveOnEnd: false,
selfDeaf: true
}
});
interaction.editReply(`Playing song: ${track.title}`);
}
la mtn le bot ce co en voc mais la musique ne ce joue pas, il ya pas d'erreur ni rien :/
Salutn, tu utilise discord-player ? @normal lichen
Salut Oui ^^
Je n'ai pas regarder si sa été résolu, mais discord-player et down
Ok, ne prend pas en compte mon message, sa a l'air d'être revenu
C’était down quand ?^^
Me suis arraché les cheveux pendant 1h a regarder des personnes qui ont utilisé la dépendance sûr git😂
Je sais que sa fait un moment maintenant, mais date précise je sais pas, surement début juillet
Ah oui bah non c’est pas sa alors
tu as ajouté l'intent GuildVoiceStates au démarrage de ton bot ?
oui je comprend pas 😵💫
le bot est admin il a le droit de parler et uil ce connect bien au vocal ...
si tu log track dans ta console il t'affiche quoi?
sinon tu as vérifié que tu as bien toutes les dépendances requises ?
Bonjour, j'ai un petit soucis sur mon bot discord
Cela me fait cette erreur assez souvent. Dès fois, ça fonctionne normalement et d'autres fois l'erreur est là.
J'utilise une base de donnée et je pense que ça vient de là.
at Connection._addCommandClosedState (/home/container/node_modules/mysql2/lib/connection.js:164:17)
at Connection.query (/home/container/node_modules/mysql2/lib/connection.js:572:17)
at Object.runInteraction (/home/container/modalsBS/createAccount.js:109:20)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
fatal: true
}
[mainBS.js] stderr: /home/container/node_modules/discord.js/src/structures/interfaces/InteractionResponses.js:102
if (this.deferred || this.replied) throw new DiscordjsError(ErrorCodes.InteractionAlreadyReplied);
^
Error [InteractionAlreadyReplied]: The reply to this interaction has already been sent or deferred.
at ModalSubmitInteraction.reply (/home/container/node_modules/discord.js/src/structures/interfaces/InteractionResponses.js:102:46)
at Object.runInteraction (/home/container/modalsBS/createAccount.js:123:25)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 'InteractionAlreadyReplied'
}
Node.js v20.17.0
[mainBS.js] child process exited with code 1```
la première erreur vient en effet du module que tu utilise pour la base de donnée. Il te dit en gros que tu ne peux pas faire ta requête si la connection à la base de donnée est fermée. Il faut ouvrir cette connexion, faire ta requête puis la fermer. Les autres requêtes qui passerons après la fermeture du coup auront cette erreur.
La deuxième erreur vient de ton interaction. Cela indique que tu as déjà répondu à l'intéraction et que ton code a exécuté interaction.reply() au lieu de interaction.editReply()
comment j'ouvre la connexion ?
je suppose en lisant la doc
ou alors tu n'as pas configuré tes paramètres de connexion correctement
ourtant en localhost c'est nickel mais dès que je passe sur de l'héberger ça bug
Bonjour je recherche quelqu'un qui peut m apprendre les base de discord.js
Hey ! J'ai un soucis avec le grid en css : J'ai 4 divs et je veux faire en sorte que 3 d'entre elles soient ç gauche et 1 sois à droite, mais je n'y arrive pas trop, j'ai essayer de bidouiller un truc avec grid-template-columns et grid-template-rows mais ça n'a pas trop l'air de marcher 🤔 J'ai mis des bordules et une couleur de fond pour qu'on puisse mieux voir : Il y à deux div à gauche et deux à droite :(
Rien de tel qu'un ptit coup de gpt xD
j'erpere que ca réponds a ton problème 😉
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Grille de 4 div</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="grid-container">
<div class="item">Div 1</div>
<div class="item">Div 2</div>
<div class="item">Div 3</div>
<div class="item right">Div 4</div>
</div>
</body>
</html>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: Arial, sans-serif;
}
.grid-container {
display: grid;
grid-template-columns: 1fr 1fr; /* Deux colonnes : une large pour les 3 premières div, une pour la dernière */
gap: 10px;
max-width: 800px;
margin: 0 auto;
padding: 20px;
}
.item {
padding: 20px;
background-color: #f4f4f4;
border: 1px solid #ccc;
text-align: center;
}
.grid-container .item:nth-child(-n+3) {
grid-column: 1; /* Les 3 premières div sur la première colonne */
}
.grid-container .right {
grid-column: 2; /* La dernière div sur la deuxième colonne (droite) */
grid-row: 1 / span 3; /* Occupe toute la hauteur (3 lignes) */
}
https://discordjs.guide/#before-you-begin
rien de tel ,
Après faut lire un peux anglais 😉
J ai suivie la doc j ai eu des erreur
Bonjour à tous,
Je travaille sur un projet et j'ai du mal à trouver une solution.
Mon projet est de faire une animation de feuilletage d'une page d'un livre sur un Timer (flip timer).
Pour tester mon animation, je l'ai testé sur les parties secondes.
Le problème est que l'animation n'est pas synchronisée avec le changement de seconde, donc elle tourne deux fois plus vite.
Voici mon code : https://codepen.io/shikamaru098/pen/ZEdvpex
Bonsoir,
Je viens demander de l'aide suite à un problème que je rencontre depuis 2-3 heures et qui me prend la tête. J'ai un bot Discord en Node.js (version Node -v v20.15.1). Ce bot a pour but d'être utile ; bien que ce ne soit pas très intéressant en soi, j'ai décidé de créer une commande /allbots pour afficher les bots présents sur le serveur. Cependant, lorsque j'essaie d'exécuter cette commande, elle peine à récupérer les membres et rencontre un timeout. Actuellement, le serveur compte plus de 5800 membres.
Console
Erreur générale : Members didn't arrive in time.```
Code
const { SlashCommandBuilder } = require('@discordjs/builders');
const { EmbedBuilder } = require('discord.js');
module.exports = {
data: new SlashCommandBuilder()
.setName('allbots')
.setDescription('Affiche la liste des bots présents sur le serveur'),
async execute(interaction) {
const guild = interaction.guild;
if (!guild) {
console.error('La guilde est introuvable.');
return interaction.reply({ content: 'La guilde est introuvable.', ephemeral: true });
}
console.log('Début de la récupération des membres...');
await interaction.deferReply();
try {
let members = [];
let lastMemberId = null;
let fetchedMembers;
const batchSize = 100;
while (true) {
fetchedMembers = await guild.members.fetch({ limit: batchSize, after: lastMemberId });
if (fetchedMembers.size === 0) break;
members.push(...fetchedMembers.values());
lastMemberId = fetchedMembers.last().id;
console.log(`Nombre de membres récupérés : ${members.length}`);
if (fetchedMembers.size < batchSize) break;
}
console.log(`Nombre total de membres récupérés : ${members.length}`);
const bots = members.filter(member => member.user.bot);
const embed = new EmbedBuilder()
.setColor('#00ff00')
.setTitle('Liste des Bots')
.setDescription(bots.length > 0 ? bots.map(bot => `• ${bot.user.tag}`).join('\n') : 'Aucun bot trouvé.')
.setTimestamp();
await interaction.editReply({ embeds: [embed] });
console.log('Réponse envoyée avec succès.');
} catch (error) {
console.error(`Erreur générale : ${error.message}`);
if (!interaction.replied) {
await interaction.editReply({ content: 'Une erreur est survenue lors de la récupération des bots.', ephemeral: true });
}
}
},
};
Bonjour, est ce que quelqu'un connait une méthode pour faire en sorte que quelqu'un soit dans un input par défaut qu'il n'ai pas besoins de cliqué dessus et qu'il soit déja dedans pour écrire
Regarde focus
Yes j'ai trouvée mais merci quand même
Perso je passe par .list pour tout récup
https://discord.js.org/docs/packages/discord.js/14.16.2/GuildMemberManager:Class#list
Ca permet de récup les membres par stack de 1000, donc moins de requête nécéssaire
Merci je vais check ca
et celui-là ? :
Tu comment t'es import ^^
Tu le bind bien sûr ta div sur ton HTML ? J'en es pas l'impression
je sais pas je débute en reactJs j'ai juste fait un tuto
il faudrait faire comment le binding ?
Il l'explique dans n'importe quel tuto que tu pourrais suivre, lui dire de prend une certaine id pour rentrer les compoosant React
slt, j'ai une commande help qui affiche les commande en utilisant fs, mais je voudrais que les commande s'affiche comme ceci : </ fight:1048044253051371582> mais dans mon code, je ne récupère pas les id et jsp comment faire, quelqu'un serais comment faire ?
voici mon code actuel:
Pourquoi tu t'embête a faire un fs ? Sachant que tu donne déjà toutes tes command quand tu lance ton bot, tu n'a qu'à les parcourir
j'ai récup ça sur un serv 
Bonjour, j'ai toujours une erreur qui m'embête avec mon bot et sa base de donnée. En local tout fonctionne à merveille mais quand je passe sur la base de donnée de mon hébergeur cela ne fonctionne jamais alors que je suis pourtant bien connecté dessus.
Voici les erreurs que cela m'affiche au fil du temps :
Error: Can't add new command when connection is in closed state
at Connection._addCommandClosedState (/home/container/node_modules/mysql2/lib/connection.js:164:17)
at Connection.query (/home/container/node_modules/mysql2/lib/connection.js:572:17)
at Object.run (/home/container/CommandesBS/addpromo.js:74:12)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Emitted 'error' event on Connection instance at:
at Connection._addCommandClosedState (/home/container/node_modules/mysql2/lib/connection.js:171:12)
at Connection.query (/home/container/node_modules/mysql2/lib/connection.js:572:17)
at Object.run (/home/container/CommandesBS/addpromo.js:74:12)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
fatal: true
}```
De plus, je tiens à préciser que quand j'ajoute une ligne à la table, celle ci ne s'ajoute jamais à la table pourtant mon code MySQL est bon d'après mes cours.
Merci de votre aide.
L'erreur que tu rencontres semble indiquer que la connexion à la base de données est fermée ou a été interrompue au moment où tu essaies d'exécuter une requête. Cela pourrait provenir de plusieurs causes
Pourrais tu donner avec des entrées custom ton fichier qui permet de connecter ton bot a ta base de données
Cependant j'ai une alternative que es bcp plus simple, surtout quand tu changes d'os quand tu travailles sur un projet pour faire t'es action database : Prisma
tu aurais un exemple de code pour parcourir les commandes et obtenir leur id ?
Je te fais ça après
oki merci d'avance ^^
Tu a cette commande : client.application?.commands.cache.values() qu ite permet de recupere toutes les commande application
Je te fas un code plus explisite
@empty mauve
Et tu peux avoir son id avec command.id
Tu a toute les info de la command dedans
run: async (client, interaction) => {
await interaction.deferReply();
const embed = new EmbedBuilder()
.setTitle('Liste des commandes')
.setColor('#3498db')
.setFooter({ text: `Demandé par ${interaction.user.tag}`, iconURL: interaction.user.displayAvatarURL() })
.setTimestamp();
for (const command of client.application?.commands.cache.values() ?? []) {
embed.addFields({
name: `</${command.name}:${command.id}>`,
value: command.description ?? 'Pas de description'
});
}
await interaction.followUp({ embeds: [embed] });
}
Ce qui te donne donc
ok mercii
Avec plaisir
Salut je fais un bot discord qui est connecté à chatgpt et j'ai une erreur que je comprend pas
at async BurstHandler.runRequest (/home/user/puants-bot/node_modules/@discordjs/rest/dist/index.js:831:23)
at async _REST.request (/home/user/puants-bot/node_modules/@discordjs/rest/dist/index.js:1272:22)
at async ChatInputCommandInteraction.reply (/home/user/puants-bot/node_modules/discord.js/src/structures/interfaces/InteractionResponses.js:115:5)
at async Object.execute (/home/user/puants-bot/commands/ask.js:122:21)
at async Client.<anonymous> (/home/user/puants-bot/index.js:31:9) {
requestBody: { files: [], json: { type: 4, data: [Object] } },
rawError: {
message: 'Interaction has already been acknowledged.',
code: 40060
},
code: 40060,
status: 400,
method: 'POST',
url: 'https://discord.com/api/v10/interactions/1285268693785514067/aW50ZXJhY3Rpb246MTI4NTI2ODY5Mzc4NTUxNDA2NzpoVVR1RTFPVTI4dnB2d2JNdElNdlNsQTk5NnZ6cXB6dEJsbGd1bVV5M2xYQ0lXVDRwS3RGcm1lNlFKalAzVE9Bb0FvNTVWd0Zuc213aE85b1I0ZkZpQlp5cXhGODFSUXZmeWEyZTJWVkZ2NkZRRzEzRnVYQlVEZ1V5MzhTTVlyYQ/callback'
}
message: 'Interaction has already been acknowledged.',
Veux dire qu'une intance du bot et deja en court
Tu lance 2x ton interaction en gros
Vérifie bien que ton bot et pas lancer 2x
@hearty ridge
Ah top parce que je ne sais pas où il est lancé mais je confirme qu'il est lancé car même avec tout éteind il est toujours allumé
Regarde dans ton gestionnaire de tache et tu reherche si NodeJs a une instance de lancer
Si oui tu a juste a cliquer droit fin de taches
enfaite je testé google idx pour dev donc c'est un ide 100% dans le cloud
je vais reset le token je pense
Ah, oui xD
Ps quand tu partage du code apres les 3e premier ''', tu peux metter ts, ou js, pour q'uil comprenne quu'il doit l'interpreter
c'est bon
mais enfaite mon code est trop long pour discord donc il créé un fichier txt
Au moins tu saura pour les prochaines fois
ouais parce que ça fait genre 1h que je suis dessus
slt, quelqun aurai une commande pour unregistre des commandes ? (car quand je fait une commande avec guild.delete rien ne marche)
Hein ?
const mysql = require("mysql2")
module.exports = async (bot) => {
let db = await mysql.createConnection({
host: "xx.xxx.xxx.xx",
user: "xxxxxx",
password: "xxxxx",
database: "name of database"
})
return db;
}
J'ai repris toutes les infos correctement donné lors de la création de la base de donnée sur l'hébergeur mais ça ne fonctionne que pour certaines tables et seulement que pour la création de la première ligne. Je n'y comprend rien perso.
@mighty fossil par hasard , ton noyau local et bien MySQL, mais vérifue que ton noyau sur ta machine soit aussi MySQL et pas Mariadb
ça vient de ça tu penses
je viens de regarder ma base de donnée en local et le serveur a l'air similaire
Tu coups tu n'est pas sur mysql2 sur ton serveur tu es sur Mariadb ^^
Oui je sais que debian / Ubuntu l'orm c'est chiant
J'ai déjà eu ce souci a l'époque
Bien que MariaDB soit compatible avec MySQL dans la plupart des cas, certains comportements ou versions peuvent causer des erreurs. Si tu rencontres des problèmes, tu peux essayer de spécifier le dialecte MariaDB explicitement en utilisant le package mariadb à la place de mysql2.
Petite question est-ce qu'il est possible de changer/supprimer/ajouter des images à un thread dans un channel forum
les requêtes SQL sont les mêmes ?
Pas tous a fait
Y'a des typage qui ne passe pas, d'où t'es erreur de requêtes
MySQL n'est pas Mariadb même si c'est similaire
mais avec le module mariadb c'est le même fonctionnement niveau code ou faut tout que je revois ?
un peu chiant XD
de ce que je vois sur la doc mariadb, j'ai pas besoin de modifier le code juste de mettre le module mariadb en require. Mais bon faut faire ça sur chaque fichier XD
Pour sa pour tt t'es futur projet utile des truc comme Prisma / docker pour t'es import de dev a t'es prod sur serveur ta aucun soucis
je connais pas du tout XD
ça y est je suis perdu XD
J'ai tenté d'installer mariadb sur les fichiers package-lock.json et package.json mais ça ne fonctionne pas et comme j'ai plusieurs bot dessus. Chaque bot a ses package mais là quand je lance le serveur, ça me créé des nouveaux package et je ne crois pas qu'ils sont assignés au bot que je veux du coup.
dit tu sais ce que je dois mettre dans le ready.js ? pour faire la connexion.
Mon Loader est nickel mais ça crash sur le ready.js. J'ai essayé de faire une connexion avec un
.getConnection(function () {
console.log("Base de donnée connectée.")
})
Je ne sait pas comment ton code et organiser, moi dans moi mes base de données je les initialise avant
je suis en handler
je me connecte à la base de donnée avec le mot de passe user etc
et ensuite dans le ready.js pour dire que le bot est connecté. Il y a une connexion avec la base de donnée.
après dans chaque fichier de commande, c'est juste un require et un db dans le async
Bha tu a deja une connection pourquoi en refaire une autre et ses quoi ton erreur
throw er; // Unhandled 'error' event
^
TypeError: bot.db.connect is not a function
at module.exports (/home/container/EventsBS/ready.js:7:12)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Emitted 'error' event on Client instance at:
at emitUnhandledRejectionOrErr (node:events:394:10)
at process.processTicksAndRejections (node:internal/process/task_queues:84:21)
Node.js v19.9.0```
euh jsp XD
le load database suffit donc
juste ça dans le ready.js ça suffit aussi du coup ?
ui loadDatabase suffit, une fois connecter tu y es
Bah non pas dans le ready ça
Mais quand tu initialise ton bot
Pas quand il es ready
initialisation c'est dans main.js du coup ?
oui
en tout cas ça fonctionne XD
Mais apres ta plus besoin de faire de bot.db.coonect, vue que bot.db et deja connecter a ta db
Tu a tt compris au moins ?
Me semble que oui
TEmps mieux alors 🙂
mais j'ai une nouvelle erreur que là par contre je ne comprend pas XD
okii merci
je t'attend 😉
les messages pv sont interdits sur le serv
Bonjour, j'aimerai de l'aide pour crée des listes avec des touche pour changer de page si possible ( pour crée un inventaire )
Bonsoir, ce serait pour un site web ?
non un bot discord
car pour résumé on as un inventaire de personnage
mais je suis arrivé au maximum, résultat il me faudrait des pages car bas sur discord il y a des caractères maximum
Tu a déjà essayer des choses ?
Négatif
Bah essaie et ton guidera sera plus simple
wep merci
Bonjour, je suis étudiante en BUT MMI spécialisation création numérique je fais autant d'audiovisuel que d'infographie mais malheureusement pour moi j'ai des cours de dev web, étant très nul je n'y arrive pas du tout. J'ai tout essayé mais je ne comprends vraiment rien, mes connaissances s'arrêtent en HTML ET CSS. Malgré Chat GPT je n'arrive pas, étant désespérée je me permets de vous demander de l'aide ne serait-ce que pour la première partie. Merci d'avance
Le premier et avec js je dois pouvoir ajouter "des parts" et aussi faut que les parts soit en triangle xD
tout est chiant je comprends rien ahah
J'avoue j'ai passer 30 min a faire ça mdrr
M ${innerRadius * Math.cos(startAngle)} ${innerRadius * Math.sin(startAngle)},
L ${outerRadius * Math.cos(startAngle)} ${outerRadius * Math.sin(startAngle)},
A ${outerRadius} ${outerRadius} 0 0 1 ${outerRadius * Math.cos(endAngle)} ${outerRadius * Math.sin(endAngle)},
L ${innerRadius * Math.cos(endAngle)} ${innerRadius * Math.sin(endAngle)},
A ${innerRadius} ${innerRadius} 0 0 0 ${innerRadius * Math.cos(startAngle)} ${innerRadius * Math.sin(startAngle)},
"Z"
@keen narwhal fait lui pas son devoir non plus ^^
si svp je suis desespérée 🥲
faut apprendre tout seul
si on te fait ton devoir comment tu vas apprendre 🙂
Honnêtement je veux pas apprendre, ca ne m'interresse pas juste mon professeur ne m'apprécie pas alors que je veux pas me faire disputer pcq j'y arrive pas
cette petite partie je la mets ou ?
je comprend pas ca t'intéresse pas bah pourquoi du dev alors ??
Ta tous le code au dessus, xD Apres le triangle tu te débrouille
enft mes études c'est la premiere année geénrale on voit de l'audio visuel de la com et du dv ensuite on choisit l'un des trois j'ai choisi l'audio visuel et jsp pq mais jai encore du dev
oui j'essaye la xD merci bcp !
Je t'es fais un exemple complexe donc ta juste a essayer de comprendre pour en faire ton triangle
Quand tu es en école tu es sensé apprendre avant de faire non ? Le fait de demander un coup de main c’est bien, mais, on est pas là pour faire t’es devoirs :/
😛
wow c'est magnfique !!
oui mais j'ai demandé à apprendre de l'audiovisuel dcp le dev ne me plait guère
oui mais la première année après on se spécialise sauf que malgré la spé j'en ai tjr
Tu aura du Dev pendant les 3 ans, c'est dans le programme..
Tu a reussi ?
ouiiii merci bcp
qqn est chaud avec socket et à du temps à perdre ?
Comment ça ? @tough blaze
Salut moi aussi je suis en MMI (2eme Année) malheuresement pour toi MMI est une formation ou tu touche a tout les domaines quelque soit ta spécialisation. celle ci te sera seulement utile en 2/3eme année suivant ton IUT (perso je suis a celle de Bordeaux et j'ai aussi pris création numérique et sa ne me sera utile que en 3A)
Moi c’est à partir de la 2A et je suis en 3A mdrrr mais c’est pas grave je pleure
hello j'ai un problème avec mon projet next js
j'ai cette erreur : Error: Unsupported Server Component type: {...}
mon-projet/
├── src/
│ ├── app/
│ │ ├── about/
│ │ ├── contact/
│ │ ├── favicon.ico
│ │ ├── globals.css
│ │ ├── layout.tsx
│ │ └── page.tsx
│ └── components/
│ ├── Footer.tsx
│ └── Header.tsx
├── package.json
├── tailwind.config.ts
└── tsconfig.json
je ne sais pas d'ou ça vient j'ai essayé plein de truc
Tu load un 'use server' ou il ne faux pas
bonjour j'ai un gros soucis mon bot se met a crash depuis aujourd'hui je comprend pas pourquoi merci
Y'a une erreur dans ta commande
Bjr excusez-moi j'ai un soucis :
mon programme angular compile
mais à l'exécution il n'affiche pas du tout le contenu de la page AppComponent
alors que son selector est présent parmi les balises html
//App.component.html
<h1>
hello, it's me
</h1>
///app.module.ts
/*
généré manuellement + baeldung
+ moi
*/
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app/app-routing.module';
import { FormsModule } from '@angular/forms';
import { HttpClientModule } from '@angular/common/http';
import { AppComponent } from './app/app.component';
import { UserListComponent } from './user/user_list/user-list.component';
import { UserFormComponent } from './user/user_form/user-form.component';
import { UserService } from './user/user_service/user-service.service';
import {RouterModule} from '@angular/router';
@NgModule({
imports: [
BrowserModule,
AppRoutingModule,
HttpClientModule,
FormsModule
],
declarations: [
AppComponent,
UserListComponent,
UserFormComponent,
],
providers: [UserService],
bootstrap: [AppComponent]
})
export class AppModule { }
//module.ts
import { bootstrapApplication } from '@angular/platform-browser';
import { appConfig } from './app/app.config';
import { AppComponent } from './app/app.component';
import {AppModule} from './app.module';
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
import {enableProdMode} from '@angular/core';
bootstrapApplication(AppComponent, appConfig)
.catch((err) => console.error(err));
Je check
//index.html
<html>
<head>
<!-- <meta charset="utf-8">-->
<title>Spring Boot X Angular Application</title>
<!--<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
crossorigin="anonymous">
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/bulma@1.0.2/css/bulma.min.css"
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
crossorigin="anonymous"
-->
</head>
<body>
GGG abc
<app-root></app-root>
</body>
</html>
n'hésite pas à me notifier quand tu veux me répondre
pcq je n'ai pas toutes les notifications du discord
//App.component.ts
/*import { Component } from '@angular/core';
import { RouterOutlet } from '@angular/router';
@Component({
selector: 'app-root',
standalone: true,
imports: [RouterOutlet],
templateUrl: './app.component.html',
styleUrl: './app.component.scss'
})
export class AppComponent {
title = 'angularclient';
}
deprecated
*/
import { Component, OnInit,Input } from '@angular/core';
/*import { Routes, RouterModule } from '@angular/router';
import { AppRoutingModule } from './app-routing.module'
*/
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title: string;
constructor() {
this.title = 'Spring Boot feat. Angular Application';
}
}
J'allait te le demander ce fichier xD
Essaie en commentant styleUrl
Rassure moi tu a bien fais t'es routes ?
Envoie le app-routing
Je fais ça dès que j'ai un moment, mais le qd est indéterminé
Le routing ?
Pourquoi ton app-routing est commenter
Bah oui tu commente ton système de routing
Donc il ne veux pas chercher ta page logique
Hummm
J'avais eu des soucis à la compilation à un moment donc j'essayais de le résoudre en commentant lles parties qui pouvaient poser problème
Je ne maîtrise pas le système de routting, je suivais un tuto
Je peux décommenter pour voir
Non non tu n'es pas obligé de faire du routing en soit pour un composant donc tu a une erreur ailleurs
Je check w sur phone pas facile xD
Dans ta console navigateur ta une erreur ?
C'est le standalone qui était désactivé qui posait problème visiblement
Là ça m'a affiché mon msg
Merci bcp pour ton aide 🙂
Dans ton app module aussi vue tu utilise pas le routage enlève tous t'es import
Ah parfait alors
Je vais m'en servir plus tard 👍
Oui parce que sandalone sa vas macher, mais c'est un peu forcer le truc
Hum 🤔
bon au final j'ai résolu sans utiliser standalone
car ça semblait avoir ses limites
en fait il fallait
écrire :
//main.ts
platformBrowserDynamic().bootstrapModule(AppModule)
et pas :
bootstrapApplication.(AppComponent, appConfig)
.catch((err) => console.error(err));*/
le deuxième sert pour le standalone
https://stackoverflow.com/questions/77950699/upgraded-angular-versions-and-now-getting-error-the-appcomponent-component-is
premier problème : Angular 
(non en vrai je rigole chacun a son framework de prédilection)
Haha
salut,
interface TransitionConfigFrom {
x?: number;
y?: number;
opacity?: number;
}
interface TransitionConfig<T extends TransitionConfigFrom> {
from: T;
to: Required<T>;
duration: number;
}
Es qu'il est possible de faire en sorte que si from.x est defini, TS comprend que to.x est forcément défini. Actuellement il me dit que to.x est potentiellement undefined
Avec les types conditionnels pour forcer TS à comprendre la relation entre from et to
Normalement avec un type auxiliaire qui va conditionnellement définir les champs de to en fonction de la présence des champs dans from si je me trompe pas
J'ai essayé avec des types conditionnels mais je n'ai pas réussi. Du coup je fais comme ça car finalement ça ne m'apporte pas grand-chose.
from.x !== undefined ? from.x + (to.x! - from.x) * progress : 0
T'as raison c'est même mieux au final
C'est plus pragmatique x)
pragmatique, oui ça l'est :)
hello, quelqu'un a déjà utilisé les .env dans une app electron ? ça marche nickel en local, mais dès que l'app est build le .env n'existe plus on dirait, quelqu'un sait pourquoi ?
Parce que .env n'est pas inclut dans le build de électron
Je n'ai pas webpack, et oui du coup il l'est pas, mais ça veut dire que je devrais le foutre dans le build
J'ai pas webpack
Tu peux mettre t'es info dans un json alors si tu veux les avoir
Ou en variable d'environnement windows
Bonjour,
Je suis en train de dév mon bot discord et je suis au menu déroulant pour la sélection des rôles. Le menu déroulant apparaît dans le channel qu'on a définit dans ma commande /setup et pareil pour les rôles que les utilisateurs peuvent s'octroyer. Tout ça est enregistré dans ma base de donnée.
J'ai un petit soucis, mes rôles sont affichés avec l'id (ce que je ne veux pas et que j'essaie de corriger) et quand je suis choisis un rôle, j'ai ce message d'erreur. J'ai beau mettre des logs d'erreurs, je n'ai pas de retour...
Ce bout de code c'est l'initialisation de mon embed.
const embed = new EmbedBuilder()
.setTitle('🎭 Menu de sélection de rôle.')
.setDescription('Veuillez sélectionner les rôles qui vous intéressent dans la liste.')
.setColor('#00FF00')
.setTimestamp();
const selectMenu = new StringSelectMenuBuilder()
.setCustomId('select_roles')
.setPlaceholder('Aucun rôle sélectionné.')
.setMinValues(0)
.setMaxValues(rolesArray.length)
.addOptions(rolesArray.map(roleId => {
const role = interaction.guild.roles.cache.get(roleId);
return {
label: role ? role.name : `Rôle ${roleId}`,
description: `Mention - ${role ? role.name : roleId}`,
value: roleId
};
}));
Ce bout de code c'est pendant le setup des rôles dans la base de donnée :
case 'roles':
// Configuration des rôles pour le menu de sélection et le canal d'envoi
const roles = interaction.options.getString('roles');
const rolesArray = roles.split(',').map(role => role.trim());
const roleChannel = interaction.options.getChannel('channel');
// Enregistrer les rôles et le canal dans la base de données
await connection.query(
`INSERT INTO guild_settings (guild_id, roles, role_channel_id)
VALUES (?, ?, ?)
ON DUPLICATE KEY UPDATE roles = ?, role_channel_id = ?`,
[guildId, JSON.stringify(rolesArray), roleChannel.id, JSON.stringify(rolesArray), roleChannel.id]
);
await interaction.editReply(`Les rôles ont été configurés avec succès dans le canal : ${roleChannel.name}`);
Fait une fois un console.log de rolesArray
Laisse moi 2min je fais que timedout j'ai une co de merde ajrd
.
Ils sont bien pris pourtant, c'est les bons
C'est les bons ID j'ai vérifié
justement ton erreur c'est que c'est pas des id ca
tu dois save en DB sans <@& et >
#php
Je modifie ça, merci 🙂
C'est un bot juste pour toi ou public ?
Si c'est publique jte recommande de passer par le RoleSelectMenuBuilder pour permettre aux gens de sélectionner les roles qu'ils veulent config
Et comme ca tu recois direct un array d'ids
Il va être que pour moi pour être sur différents serveurs
Après, je compte faire un public plus tard donc je pense le garder de côté quand même, c'est bon à prendre de savoir ça

Btw, juste un petit soucis xd
Mon bot a les perms admin + au dessus de tout le monde
Mais "Missing Permissions"
🤔
pour faire quoi ?
DiscordAPIError[40060]: Interaction has already been acknowledged.
client.on('interactionCreate', async interaction => {
if (interaction.isCommand()) {
const command = client.commands.get(interaction.commandName);
if (!command) return;
try {
await command.execute(interaction, pool, config);
} catch (error) {
console.error(error);
await interaction.reply({ content: 'Une erreur est survenue lors de l\'exécution de cette commande!', ephemeral: true });
}
} else if (interaction.isStringSelectMenu()) {
if (interaction.customId === 'select_roles') {
const selectedRoles = interaction.values;
const member = interaction.member;
try {
const rolesToAdd = selectedRoles.filter(roleId => !member.roles.cache.has(roleId));
const rolesToRemove = member.roles.cache.filter(role => !selectedRoles.includes(role.id));
if (!interaction.deferred) {
await interaction.deferReply({ ephemeral: true });
}
if (rolesToAdd.length > 0) {
await member.roles.add(rolesToAdd);
}
if (rolesToRemove.size > 0) {
await member.roles.remove(rolesToRemove);
}
await interaction.editReply({ content: 'Vos rôles ont été mis à jour avec succès.', ephemeral: true });
} catch (error) {
console.error('Erreur lors de la gestion des rôles :', error);
if (interaction.deferred) {
await interaction.editReply({ content: 'Une erreur est survenue lors de l\'attribution des rôles.', ephemeral: true });
} else {
await interaction.reply({ content: 'Une erreur est survenue lors de l\'attribution des rôles.', ephemeral: true });
}
}
}
}
});
Je comprends pas trop la, pourtant je diffère bien l'interaction, non ?
Vérifie que ton bot est pas lancé 2 fois
Et tu devrais éviter de gérer tes interactions comme ca
😮
ça a l'air magique tiens merci !
Bonjour à tous,
J'ai un soucis, je developpe une application mobile avec expo go, j'ai exporté un apk tout ca et maintenant une fois l'apk installé, l'app ne se lance pas et crash direct. J'ai des erreurs dans les logs de l'emulateur android studio, mais je n'arrive pas a la résoudre malgré plusieurs essaies.
Voici mes erreurs :
E TypeError: undefined is not an object (evaluating 'h.View.propTypes.style')
E FATAL EXCEPTION: mqt_native_modules
E Invariant Violation: "main" has not been registered. This can happen if:
Si quelqu'un peu m'aider ca serait top merci bcp.
(n'hesitez pas a me ping je suis en ne pas déranger sur discord donc pas de notif! 🙂 )
ça existe encore propTypes dans React ?
Si je me trompe pas c'est obsolète maintenant, c'est dans les anciennes versions
Le problème c'est que je ne trouve pas de proptypes je n'ai pas utilisé ca
a moins c'est dans un node modules
franchement je sais pas dutout
Pour ton Invariant Violation, c'est juste que t'as pas mis dans ton fichier principal la ligne qui enregistre ton composant principal
Voilà, supprime les
c'est tout ce que je peux te dire
Ou voir si y'a des versions récentes
De tout update
regarde attends
node_modules/expo/AppEntry.js
import registerRootComponent from 'expo/build/launch/registerRootComponent';
import App from '../../App';
registerRootComponent(App);
package.json
"main": "./index.js",
index.js
import { AppRegistry } from 'react-native';
import App from './App';
import { name as appName } from './app.json';
AppRegistry.registerComponent(appName, () => App);
Fait voir l'architecture de ton projet
Je pense que c'est un conflit à ce stade
@proven stone
Comment ca ?
Juste voir les dossiers et fichiers que tu as dans ton projet
Non j'ai mis un truc que j'ai supprimé qui était bête
ahhh okk
Je pense essaie de faire un rm -rf ./node_modules
et de réinstaller tes modules
@proven stone
Je peux essayer, mais vu que j'ai modifier des choses dedans j'ai peu sa plante tout
ptdrrr enft j'suis fou ca marche déjà pas de tt manière
En gros ca revient a l'histoire des proptypes
fallait modifier un truc pr que ca fonctionne mais j'men souvient plus :c
Comment ça ?
franchement je serais même pas t'expliquer
ah attends
import { ViewPropTypes } from 'deprecated-react-native-prop-types';
fallait remplacer le proptypes de base par ca
par exemple la j'ai modifier ca depuis Carousel.js
Oui parce que c'est déprécié
les propTypes c'est fini dans React depuis un moment
Yep ca j'avais bien compris
mais dcp si je suppr les node modules
va falloir que j'me les retappes a la mains
problème
j'me rappeler plus de tous
Mais pourquoi t'en a absolument besoin ?
Sinon j'ai fullup d'erreur quii viennent de ca
Tu les supprimes des node modules 
Mais j'en ai besoin ?
j'me sert d'un carousel dans l'app avec react-native-snap-carousel
par exemple
Bah faut passer par autre chose
Mauvaise idée d'utiliser quelque chose qui est laissé à l'abandon depuis un moment
c'est pas faux
Fin c'est pas déprécié en tant que tel
Juste que ça a été séparé de React, c'est devenu un package à lui tout seul
prop-types
Mais vachement moins utilisé vu qu'il y a typescript
Après j'ai tjr mon problème de fichier d'entrée
ton App.js il exporte bien ton composant principal ?
c'est a dire ?
si c'est juste est ce que la fonction app est bien exporté c'est oui
J'en ai parlé avec un pote
et il m'a dit crée un index.js et ajout y ca
import { AppRegistry } from 'react-native';
import App from './App';
import { name as appName } from './app.json';
AppRegistry.registerComponent(appName, () => App);
Tu essayes de dev un projet nextjs ?
Ça ne ressemble pas à ça un projet Next.js
J’ai pas regarder le messages
Mais je viens de voir RN
Petit résumé de ton problèmes ?
Hello, non React native 🙂
En gros j'ai fnis mes maquettages et quelques fonctionnalités donc je veux tester l'appli en apk, l'apk s'exporte bien avec expo et quand je l'install tout ca et après avoir lancé l'app elle crash direct avec des erreurs en console.
Envois t’es erreurs je regarderais quand j’ai 5 minutes
yes j'essaie de les trouver
E TypeError: undefined is not an object (evaluating 'h.View.propTypes.style')
E FATAL EXCEPTION: mqt_native_modules
E Invariant Violation: "main" has not been registered. This can happen if:
Je les retrouves pas toutes mais dans l'idée c'est ca comme erreurs
Hello
J ai un leger probleme: je n arrive pas à modifier le plus haut role de mon serveur, pourtant je suis le proprio et sinon les autres c est que des bots
Svp aidez moi 😭😭😭
at handleErrors (C:\Users\liveweb\Desktop\DynaBot\node_modules\@discordjs\rest\dist\index.js:727:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async BurstHandler.runRequest (C:\Users\liveweb\Desktop\DynaBot\node_modules\@discordjs\rest\dist\index.js:831:23)
at async _REST.request (C:\Users\liveweb\Desktop\DynaBot\node_modules\@discordjs\rest\dist\index.js:1272:22)
at async ChatInputCommandInteraction.deferReply (C:\Users\liveweb\Desktop\DynaBot\node_modules\discord.js\src\structures\interfaces\InteractionResponses.js:72:5)
at async Object.execute (C:\Users\liveweb\Desktop\DynaBot\commands\drop.js:22:9)
at async Client.<anonymous> (C:\Users\liveweb\Desktop\DynaBot\index.js:83:13) {
requestBody: { files: undefined, json: { type: 5, data: [Object] } },
rawError: { message: 'Unknown interaction', code: 10062 },
code: 10062,
status: 404,
method: 'POST',
url: 'https://discord.com/api/v10/interactions/1295023683114373233/aW50ZXJhY3Rpb246MTI5NTAyMzY4MzExNDM3MzIzMzpDNWhYRHlVQTNtMkM5Znd3eW5ZSmlTeTJzNWUwRzUxZlMzeVJla3ZsaVNWTHdSd1doVXl4QkZrV1ZXQ25vU0oyT2M2V3RtUWhMWFRpeXJOTEpaaVphT2tVVlk1OE5hMVdQZUk3V0x0NldXczBJWnRyRWQzdGw5a1h4c2RkOVVNRw/callback'
}```
G pas trop pigé le prob
du coup envoie ta commande drop et surtout la ligne 22
??
Ah j'ouvre powershell dans vscode et ja tape drop ou....
non ?
tu envoies ici ton code
Ok
Mais pas mtn car je vient de sortir de chez moi
pas de soucis
const { SlashCommandBuilder, ButtonBuilder, ActionRowBuilder, ButtonStyle, EmbedBuilder } = require('discord.js');
const db = require('../database');
module.exports = {
data: new SlashCommandBuilder()
.setName('drop')
.setDescription('Drop XP for a user')
.addIntegerOption(option =>
option.setName('xp')
.setDescription('Amount of XP to give')
.setRequired(true)),
async execute(interaction) {
if (interaction.user.id !== '790240841598763018') {
return interaction.reply({ content: 'You do not have permission to use this command.', ephemeral: true });
}
const xpDropAmount = interaction.options.getInteger('xp');
const button = new ButtonBuilder()
.setCustomId('xp_drop_button')
.setLabel('Claim XP')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder().addComponents(button);
const embed = new EmbedBuilder()
.setTitle('XP Drop')
.setDescription(`Click the button below to claim \`${xpDropAmount}\` XP!`)
.setTimestamp()
.setColor('#fff000');
await interaction.reply({ embeds: [embed], components: [row] });
},
};
et l'erreur apparaît à quel moment exactement ? dès que tu exécutes la commande ?
Hello, j'essaye de récupérer le nombre de message écrit dnas une guild par un user.
J'ai essayé avec l'api mais ça me return Bots cannot use this endpoint
Une idée ?
discord.js ^14.16.3
Il n'y a pas d'endpoint pour faire ça
?
Il n'y a pas d'api pour faire ce que tu cherches à faire
Si tu veux compter les messages tu dois compter toi même. Discord n'a pas d'endpoint pour compter à ta place
si, mais on ne peux pas l'utiliser via un bot
Donc non.
Tu n'auras pas d'aide ici sur comment violer la propriété intellectuelle de discord donc on peut dire qu'il n'y a pas d'endpoint pour faire ça.
Du coup :
.
hein ?
comment ça violer la propriété intellectuelle de discord
t'as craqué ton slip toi 😂
Alors 
Discord pas avoir api pour compter avec bot. Toi pas avoir droit d'utiliser API autre que API bot sinon ça violer conditions d'utilisation et droit d'auteur
Conditions d’utilisations diffèrent que propriété intellectuelle hein au cas où
🤣
l'API client est la propriété intellectuelle et privé de discord
ok et ?
hormis ça
les bot n'ont pas accès au api user
d'ou l'impossibilité de passer par une API
mais compté des messages en 6 ligne c'est fini
Bah justement il doit trouver une AUTRE solution
Non, ça s’appelle du non respect des limites de l’API officielle
bah c'est ce que je demande justement
et toi tu me répète ce que j'ai dit
C'est ce que je lui ai dit dans le tout premier message
donc il y en a une, mais client only ^^
⬆️⬆️⬆️⬆️⬆️
t'as 2 event a capturer & dans c'est event tu doit compter les messages envoyé par un author
tu peux mettre en place un listener d’événements dans ton bot qui écoute chaque message envoyé dans une guild, puis tu peux incrémenter un compteur pour l’utilisateur concerné chaque fois qu’un message est envoyé
yep, mais quand un bot est ajouté sur un srv existant, il n'aura pas les anciens msg d'enregistré
Nop
c'est ce que je voulais du coup
effectivement vu que y'avait aucune capture n'i log de data avant
et sa pour le coup c'pas possible ou alors pas au courant
Tu peux toujours lister tous les messages de tous les salons pour retrouver l'auteur et compter mais tu peux oublier
MDRR
mais...
alors la bon courage
c'est justement ce que je demandais
Tu mettras des années à finir de compter avec les rate limit
merci pour ta réponse
C'est possible ^^
Bon max 1 ou 2 jours a récup, en fonction du nombre de message, mais largement possible
ouais mais si je dois faire ça pour chaque guild que les gens ajoutent, le bot se fera rate limit en une semaine je pense
Gl hf pour le rate limit, mais : https://stackoverflow.com/questions/63322284/discord-js-get-an-array-of-all-messages-in-a-channel
Ton bot et server crachera avant mdrr
Biensur que non, tu géres avec des paquets
ça prendra juste du temps
Salut, j'avais une question je voulais savoir je peux mettre quoi dans mon fichier ticket pour que j'ai un selectionneur avec plusieurs choix ?
SelectMenuBuilder
Merci
Comment faire pour permettre à l'utilisateur de switch en light mode s'il est en dark mode et inversement?
.....
Pk Switch en light mod frr
Je comprends pas l'intérêt de ce message
ça s'appelle les goûts et les couleurs de chacun
Tu modifies ton onClick comme ça : onClick={() => setTheme(theme === "light" ? "dark" : "light")}
ˋˋˋ
'use client';
import { Moon, Sun } from 'lucide-react';
import { useTheme } from 'next-themes';
import { useEffect } from 'react';
const ThemeSwitcher: React.FC = () => {
const { theme, setTheme } = useTheme();
return theme === 'light' ? (
<Moon
className="fill-dark-background dark:fill-white cursor-pointer w-8 h-8 hover-bounce"
onClick={() => {
setTheme(theme === 'light' ? 'dark' : 'light');
}}
/>
) : (
<Sun
className="fill-dark-background dark:fill-white cursor-pointer w-8 h-8 hover-bounce"
onClick={() => {
setTheme(theme === 'light' ? 'dark' : 'light');
}}
/>
);
};
export default ThemeSwitcher;
ˋˋˋ
Ça sert à rien je pense dans son cas
C’est rajouter des choses inutiles
@noble mountain @tough blaze
Merci beaucoup pour votre aide!

"use client";
import { Button } from "./ui/Button";
import { MoonIcon, SunIcon } from "@radix-ui/react-icons";
import { useTheme } from "next-themes";
export default function ModeToggle() {
const { setTheme, theme } = useTheme();
return (
<Button
variant="ghost"
className="w-8 h-8"
onClick={() => setTheme(theme === "light" ? "dark" : "light")}
>
{theme === "light" ? <SunIcon /> : <MoonIcon />}
</Button>
);
}
La même chose mais en moins compliqué
👍
Yop, j'ai besoin d'un petit peu d'aide s'il vous plait,
Je suis en node.js avec typescript
J'ai une array d'objet comme cela :
[
{ hour: '00:23', value: 530 },
{ hour: '00:24', value: 546 },
{ hour: '00:25', value: 494 },
{ hour: '00:26', value: 739 },
{ hour: '00:27', value: 314 },
]
Je cherche a faire un graphique de cela, en gros sur chaque minutes/groupement de minute (horizontalement) la valeur (verticalement)
Et je veux export cela en image
OR, pour me faire chier un peu la vie, je ne veux pas d'un graphique basique avec Chart.js, je veux le rendre en mode "dessin" style ceci : https://www.jwilber.me/roughviz/ (avec le preset "bar")
Soucis c'est que je trouve aucun package qui propose d'export cela en image,
J'ai essayer convertir avec canevas et Rough.js, le résultat est vraiment pas fou,
Vous avez des idées ?
tu génère directement en png ? a tu test différent réglage roughness, la stroke ect sinon tu peux essayer de générer l'image en svg en premier lieu puis de la convertir en png par la suite avec sharp ou puppeteer
Alors attention c'est un projet en nodejs mais je n'ai pas de site web, c'est juste pour faire des stats sur une api et balancer l'image dans un salon discord, d'où le soucis, tout les package propose cela en intégration html
Je peux en sois le faire avec canevas mais j'arrive pas a avoir le même résultat que sur ce site ou le résultat est vraiment propre
Ah, je crois qu'il y a un petit malentendu la ce que je t'ai proposée fonctionne entièrement en Node.js et sans interface web tu n'as pas besoin d'une page HTML ou quoi que ce soit
En gros, tu génères ton graphique en SVG (ce qui te permet d'avoir un rendu propre), puis tu le convertis en PNG avec un outil comme sharp ou puppeteer.
je vois je ne connait pas sharp mais pourquoi pas essayer, puis je ne savais pas non plus que puppeteer permet de faire cela, pour moi c'est plus de la navigation sur les site web
Faut que déjà du coup j'arrive a export cela en svg avec Rough.js
Yep, Puppeteer est surtout connu pour la navigation web, mais il peut capturer des images, donc pour des conversions de SVG complexes (avec animations ou styles particuliers), il sera plus performant que sharp. Par contre, il est plus lourd, donc moins rapide. Sharp est idéal si ton SVG est simple, sans animations ni styles particuliers.
Pour l'export en SVG tu peux utiliser svgdom et svgdotjs/svg.js ces deux modules te permettent de manipuler facilement le SVG en NodeJs et ils fonctionnent parfaitement avec RoughJs
Bon j'ai trouver une solution (complètement immonde) et ca fonctionne assez bien :
export async function generateStatsChart(stats: FormattedStat[]) {
nodeHtmlToImage({
output: "./image.png",
html: `<script src="https://unpkg.com/rough-viz@2.0.5"></script>
<style>
* {
background-color: #313338;
}
.tick, .rough-yAxischart > path, .rough-xAxischart > path {
color: white;
stroke: white !important;
}
#chart {
width: 100vh;
height: 100vh;
}
</style>
<div id="chart"></div>
<script>
new roughViz.Bar({
element: "#chart", // container selection
data: { labels: ["a", "b", "c", "d"], values: [20, 16, 5, 15] },
axisStrokeWidth: 3,
bowing: 5,
color: "orange",
stroke: "white"
});
</script>`,
}).then(() => {
console.log("The image was created successfully!");
});
}```
Plus qu'à faire le style un peu plus propre et ajouter les données dans le graph
archaïque mais fonctionnelle 🤣
un petit avis ? (vue3 / bulma pour le fw css) première fois que j'fait un design glassmorph
^^ j'viens de changer le shadow du btn ctf dans l'hero en regardant mon rec il me trigger 🤣
ca rend vachement bien, après faut que je trouve ce qui est le plus pertinant en therme de stats a afficher
Bonsoir tout le monde, si il y à quelqu'un de disponible ce soir j'avoue que j'aurais bien besoin d'un peu d'aide en javascript (j'arrive même plus à réflechir dessus mdr)
qu'est-ce qui t'arrive chef ?
Oh mon sauveur 😂
Bon je t'explique, en très gros résumé je suis en train de créer une plateforme étudiante, et pour l'inscription je fais un processus d'accueil avec différentes étapes.
Mais je n'arrive pas à faire la logique de mon js (pourtant très simple normalement), voila ma logique : c
-
Si l'option Collège est choisi alors :
=> Je veux afficher la selection (6ème, 5ème, 4ème, 3ème) puis lorsque l'utilisateur à selectionné entre (6ème, 5ème, 4ème, 3ème) je veux passer directement à l'étape ou l'utilisateur doit selectionner ses matières (et donc ne pas afficher l'étape de selection (Général, Pro, Techno...) (Seconde, Première, Terminale...) -
Si l'option Lycée est choisi alors :
=> Je ne veux pas afficher l'étape ou l'utilisateur selectionne (6ème, 5ème, 4ème, 3ème) je veux directement passer à l'étape prochaine donc afficher les étapes de selection (Général, Pro, Techno...) (Seconde, Première, Terminale...)
Mais malheureusement ça ne fonctionne pas, c'est trop bizzare genre ça bugue énormement. Ca peut m'afficher correctement, mais en dessous ça m'affichera autre chose enfin bref n'importe quoi
j'fini de faire le seo d'un client et j'regarde ça
tiens dis moi si c'est ce que tu voulais
Je regarde ça demain mais si ça fonctionne merci beaucoup
bas perso sa fonctionne après chez pas si j'ai bien compris ce que tu voulais la quand tu choisi collège t'arrive sur le choix de la classe puis des matière / si tu choisi lycée t'arrive sur le choix general/pro/tech puis la classe puis les matières x)
Yep je verrai demain, mais ca devrait être parfait
Merci beaucoup ça fonctionne !
Tu sais pourquoi ça ne fonctionnait pas mon code ?
de mémoire y avait 3 truc qui allait pas vraiment
Déjà, dans tes étapes (steps), tu avais mis des return true là où il fallait des return false cela permet d'empêcher de passer à l'étape suivante (nextStep) si l'étape actuelle n'est pas validée correctement.
Ensuite, les conditions pour le choix entre "Collège" et "Lycée" étaient mal formulées, il manquait une validation pour vérifier si l'utilisateur avait bien sélectionné un élément avant de continuer.
Enfin, il y avait aussi une erreur dans la manière dont tu gérais le passage d'une étape à l'autre, notamment avec l'incrémentation du currentStep, ce qui causait des bugs dans l'affichage des étapes.
Ah ouais d'accord merci, je vais essayer de faire gaffe la prochaine fois, merci encore !
ton import dotenv
fait :
import dotenv from 'dotenv';
dotenv.config();
Module '"c:/Users/ilyas/Desktop/louise/node_modules/dotenv/lib/main"' has no default export.
ah pardon c'est du ts
import * as dotenv from 'dotenv';
dotenv.config();
' je crois ' pas sur
après ton npm start est pas bon
c'est peut etreb aussi que tu n'es pas dnas le bon dossier pour éxécuter ton app
yes j'viens d'voir 🤣
Bonjour
J'aimerais rajouter une fonctionnalité à mon bot discord une wordlist, et il sanctionne à chaque fois qu'une personne utilise l'un de ces mots.
J'ai donc une entité receuillant tout les mots banni par un serveur lambda cependant, je trouve que cela pourrait charger mon bot si je dois faire une requete pour chaque message, surtout si mon bot est sur une centaine de serveur ou plus...
Donc ma question est de savoir comment faire réellement dans ce cas, j'ai chercher je suis tombé sur l'algorithme d'Aho-Corasick, cela à l'air bien mais pas assez à mon goût, donc je suis preneur pour toute solution possible.
Il faut que tu mettes en cache la wordlist de chaque serveur sur ton bot pour ne pas avoir à aller requeter la base de données
Est ce que quelqu'un pourrais me dire si c'est possible de changer le nom d'une key dans un fichier json a en executant du code javascript ?
(Bien sur un truc qui le fait directement, par ce que en effet, je peux copier le contenu de la valeur de ma key et la transférer sur une nouvelle clée avec le nouveau nom puis supprimer l'ancien)
Tu peux nous donner un exemple concret de ce que tu veux essayer de faire ? Ton fichier json t'y a accès ? Car si oui et que la clé est unique il te suffit de remplacer le texte du nom de la clé par le nouveau nom que tu veux et c'est réglé !
Oui non mais je veux dire, le replacer a partir de code.
data.json:
{
"test": ["a", "b", "c"],
"test_2": "Yes"
}
mon_code.js:
const data = require("./data.json")
data.changer_le_nom_de_la_cle("test", "test_a")
Bien sur si je peux dabord obtenir la valeure en object du fichier json, appliquer la fonction, puis utiliser un module pour ecrire dans le fichier json son nouveau contenu je prend auss
en gros je ne veux pas manuellement changer le nom d'une clé
Bon j'ai trouvé un module qui peux le faire mais c'est dommage que ca n'existe pas par défault, je suppose que la seule manière de le faire sans installer de module c'est de crée une nouvele clée et lui donner la valeure de notre clé puis supprimer l'ancienne
Oui globalement c'est ce qu'il faut faire mais le module va sûrement faire ça aussi, ça s'écrit en 1 ligne ou 2 ce que tu veux faire, t'as pas vraiment besoin d'un module pour faire ça
Oui je sais justement j'ai juste dit que le max que j'ai trouvé pour le faire en utilisant le moin de lignes possible c'est un module
Je me demandais juste au cas ou si il n'y avais pas une fonction built-in qui le fesais deja
data.test_a = data.test
delete data.test
yes
non à ma connaissance il n'y a pas de fonction built-in pour ça
Je vois, merci !
Coucou tout le monde quand je lance mon bot discord toutes les commandes se load bien etc mais le bot ne se connecte pas et je ne comprend pas pourquoi..
voici mon index.js :
const { Client, GatewayIntentBits, Collection, Partials } = require('discord.js');
const fs = require('fs');
const path = require('path');
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMembers,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
GatewayIntentBits.GuildMessageReactions,
GatewayIntentBits.GuildMessageTyping,
],
partials: [Partials.Message, Partials.Reaction, Partials.User],
});
client.commands = new Collection();
const loadCommands = (dir) => {
const commandFiles = fs.readdirSync(dir).filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
const filePath = path.join(dir, file);
try {
const command = require(filePath);
if (command.name) {
client.commands.set(command.name, command);
console.log(`cmd chargée: ${command.name} | ${filePath}`);
} else {
console.warn(`cmd sans nom trv: ${filePath}`);
}
} catch (error) {
console.error(`Erreur lors du chargement de ${filePath}:`, error.message);
}
}
};
try {
loadCommands(path.resolve(__dirname, './commandes'));
} catch (error) {
console.error(`Erreur lors du chargement des commandes:`, error.message);
}
client.once('ready', () => {
console.log(`Connecté en tant que ${client.user.tag}`);
});
client.on('messageDelete', message => {
if (!message.partial && !message.author.bot) {
client.lastDeletedMessage = message;
}
});
client.on('messageCreate', message => {
if (message.author.bot || !message.content) return;
const urlRegex = /(https?:\/\/[^\s]+)|(www\.[^\s]+)/g;
if (urlRegex.test(message.content)) {
message.delete().catch(console.error);
message.channel.send(`${message.author}, les liens ne sont pas autorisés ici !`).then(msg => {
setTimeout(() => msg.delete(), 5000);
}).catch(console.error);
}
});
const prefix = '+';
client.on('messageCreate', message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).trim().split(/ +/);
const commandName = args.shift().toLowerCase();
const command = client.commands.get(commandName);
if (!command) return;
try {
command.execute(message, args, client);
} catch (error) {
console.error(error);
message.reply("Il y a eu une erreur lors de l'exécution de la commande.");
}
});
client.login('Jai bien mis mon token ici');
Quelqu'un aurais une idée ?
Tu n'as pas une ligne en console qui te dit: Connecté en tant que... ?
Euh bah si normalement j'en avais 1
regarde en dessous du loadCommands
Non je demande si tu as cette ligne affichée dans ta console
non justgement
Elle est censé s'affiché mais elle ne s'affiche pas
c'est quoi la dernière chose que tu as ajouté avant que ça ne fonctionne plus ?
euh bah rien jai juste modifié mon dossiers commandes
c'est-à-dire modifier ? tu as ajouté des fichiers par exemple ?
Non javais 3 sous dossiers mais jai tout supprimer et mis toutes mes commandes dans mon /commandes
Fait un handler pour les events dedans tu créer un ready.js et tu execute ceci
console.log(`Connecté en tant que ${client.user.tag}`);
En JavaScript peu importe se que tu veux renvoyer comme information dans ton terminal tu utilise un console.log([Object])
C'est bon j'ai resolue le problemes navré ! En gros c'est juste mon hebergeur qui bug j'ai changer d'hebergeur et sa marche parfaitement
Mon conseil t'aidera quand mm par la suite
Optimise ton code car là ..
alors si c'est ça vérifie t'es version de node & npm entre les deux host
Alors a vrai dire je ne sais pas comment on fait..
D'acc merci
alors idk si t'as un vps et qu'tu gère toi même t'as juste a faire : node -v & npm -v
vasy je vais voir ca
Et juste c'est quoi un vps ?
Virtual Private Server
alors c'est un serveur (windows ou linux) sur le quel tu peux héberger des choses
Un hébergeur ?
Comment on s'en procure 1 ?
C'est payant ?
oui
Tu héberge via un ptero ?
Jheberge via un vieux site XD
j'pense bien oui mdr
ou alors c'est sous les truc d'hosting free
Sur
C'est ca ouais
j'ai pas de tales..
surtout pour un bot que j'utilise personnellement
En gros c'est pour mon serveur donc personne le paye
yes ça ce comprend après pour des bot discord un vps a 2€ sa fait largement le taff si ton bot c'est un pas gros truc commu qui demande de la resource 🤣
ou du moins si t'es pas a l'aise avec le shell tu prend une offre ptero OU sinon encore mieux t'investi dans un Raspberry 🤣
Pour 1 € mm
J'ai vrm 0
Avec github students tu peux faire tourner ton bot gratuitement
Faut juste prouver à github que t'es étudiant
Gratuitement comme ça ? Et sa marche comme un vps ? Fin genre il tourne h24 ?
Tu verras
L'abonnement c'est toujours compliqué, surtout si tu ne travaille pas, ou que tu n'a pas d'entrée d'argent régulière,
Le selfhost est également une option, un "investissement" en une fois voir même "gratuit" (hors électricité et internet que tu paie déjà),
Personnellement le vieux pc que le lycée ma filer en 2nd, je le passe sous debian (mais en vrais si tu n'est pas a l'aise tu peux le laisser sous Windows), je l'utilisais comme serveur dédier
Seul bémol : faut pas de coupure d'internet ou d'électricité, mais selon ton projet ca fait largement le taff
Puis toujours dans le selfhost une raspberry pi, qui consomme beaucoup moins en électricité peut être in investissement (une p3 B+ est largement suffisante ~50€ sur amazon), juste faut être a l'aise avec debian/raspbian
Mais du coup tu utilise un vieux pc comme serveur ?
Oui
Si t'a un pc dont tu n'a plus d'usage fait le
Yep tu peux
Mais comment on fais ce genre de chose c'est compliqué a transformé un pc en serveur ?
Bah... comment dire... ton pc est un serveur
Un serveur est une machine
un pc est une machine
si tu hébergerai sous VPS Linux ou windows se serais la mm interface que ton pc
Bah pourquoi on utilise pas directement son pc pour avoir un serveur alors
Car faut avoir 2 pc
Car tu peux avoir des coupures de courant ou d'internet
Yo j'aurais besoin d 'aide pour tanstack router
Et avec un vieux pc on peux faire un serveur un minimum performant ?
Tu veux host quoi ?
boarf ton pc principal peux faire serveur, faut juste jamais l'étindre du coup
pas conseillé de faire sa sur son propre PC
Et pour ma part j'ai deux pc je peux largement host chez moi mais pourtant je pref payer
Yep chacun a son avis la desus bien sur
Bah un bot discord
T'a mm pas besoin de config alors
tu installe node js sur ton deuxieme pc tu ouvre un cmd et lets go
N'en fais pas 40 non plus mais je pense que 3 tu peux après tout dépend du pc et de ta connexion internet
@dire oriole est plus calé que moi pour te répondre en vrai j'ai jamais host comme ca
Voila ce que prenne en ram mes bots
sachant que les bot avec l'id 3 - 4 - 5 sont des bots public sur plus de 1000 serveurs chacun
C'est quoi le pc aussi ?
👀
#javascript-typescript message
La raspberry
L'abonnement c'est toujours compliqué, surtout si tu ne travaille pas, ou que tu n'a pas d'entrée d'argent régulière,
Le selfhost est également une option, un "investissement" en une fois voir même "gratuit" (hors électricité et internet que tu paie déjà),
Personnellement le vieux pc que le lycée ma filer en 2nd, je le passe sous debian (mais en vrais si tu n'est pas a l'aise tu peux le laisser sous Windows), je l'utilisais comme serveur dédier
Seul bémol : faut pas de coupure d'internet ou d'électricité, mais selon ton projet ca fait largement le taff
Puis toujours dans le selfhost une raspberry pi, qui consomme beaucoup moins en électricité peut être in investissement (une p3 B+ est largement suffisante ~50€ sur amazon), juste faut être a l'aise avec debian/raspbian 
Ce message contient également une image, visible à droite de l'embed.
➜ [Voir le message original](#javascript-typescript message)
OK nikel merci
Après les bots consomme rien
en proco ouais, en ram ca va vite dépendament du bot
Oui mon bot je sais que je ne peux pas
J'aurais des down h40
Mon plus gros bot est a un demi giga de ram mais au vu des stats normal
Il fait quoi comme fonctionnalités ?
Moi j'ai un bot roleplay
Il fait le lien entre twitter et discord, tu follow des compte twitter et ca poste sur discord
Oue c'est pour ca alors
C'est rien pour un bot sa
Utilise juste du canvas dans ton code tu verra du changement
Bonjour, j'ai un soucis avec mon code, il s'agit d'un systeme de voc dans un projetThreeJs, mais il ne fonctionne pas, mon navigateur autorise bien le micro, mais rien ne se passe jsp pourquoi. Je ne bosse pas du tout avec ce genrs de techno
const io = new Server({
cors: {
origin: "http://localhost:5173",
},
});
io.listen(3001);
const characters = [];
const generateRandomPosition = () => {
return [Math.random() * 3, 3.6, 0];
};
const generateRandomHexColor = () => {
return "#" + Math.floor(Math.random() * 16777215).toString(16);
};
io.on("connection", (socket) => {
console.log("user connected");
characters.push({
id: socket.id,
position: generateRandomPosition(),
hairColor: generateRandomHexColor(),
topColor: generateRandomHexColor(),
bottomColor: generateRandomHexColor(),
});
socket.emit("hello");
io.emit("characters", characters);
socket.on("move", (position) => {
const character = characters.find(
(character) => character.id === socket.id
);
character.position = position;
io.emit("characters", characters);
});
socket.on("join-audio", () => {
socket.broadcast.emit("new-user", socket.id);
});
socket.on("offer", (data) => {
io.to(data.to).emit("offer", { offer: data.offer, from: socket.id });
});
socket.on("answer", (data) => {
io.to(data.to).emit("answer", { answer: data.answer, from: socket.id });
});
socket.on("ice-candidate", (data) => {
io.to(data.to).emit("ice-candidate", { candidate: data.candidate, from: socket.id });
});
socket.on("disconnect", () => {
console.log("user disconnected");
characters.splice(
characters.findIndex((character) => character.id === socket.id),
1
);
io.emit("characters", characters);
});
});
quelqu'un sait comment changer ca pour que se coit compatible avec Deno ?
ah ok j'ai trouvé, il y avais une fonction "import"
Attention tu mélange tout
https://stackoverflow.com/questions/46677752/the-difference-between-requirex-and-import-x
?
Oui je sais ca c'est parce que maintenant je passe sur Deno mais ca me requiert de convertir les "require" en "import"
seulement on ne peux pas faire :
from module import '../../commands' + dir + '/' + file
pour gérer les imports dynamiques dans Deno, tu dois utiliser import() de manière asynchrone, parce que les import statiques ne permettent pas de construire le chemin d'import dynamiquement comme require().
Exemple :
const modulePath = `../commands/${dir}/${file}`;
const module = await import(modulePath);
Comme ça, tu importes ton module de manière dynamique et asynchrone ensuite assure-toi que ton code est bien dans une fonction async ou utilise des Promises. Deno fonctionne parfaitement avec ce type d'import si je dit pas de connerie x)
Petite parenthèse, faire des imports dynamique c'est pas vraiment une bonne pratique
Je sais mais je ne vois pas vraiment d'autres moyens
Ah ok je vois, merci
Par contre quelqu'un a une idée de par quoi je doit replacer module.exports avec deno ?
J'ai bien essayé export mais apres je ne peux pas du coup fare :
export new ApplicationCommand({...})
De ce que j'ai trouvé sur google il faudrai utiliser export default mais je ne vois pas a quoi ca sert
export default { taFonction }
ou
export default Fonction; si t'as qu'une seul fonction dans ton code
Oui mais moi c'est des class/instances de class
C'est pareil ?
Ok bas si tu travaille avec des classe ou des instances de classes tu peux les exporter directement en utilisant export ou export default
exemples:
pour une classe
export class ApplicationCommand {
constructor() {
// ton constructeur ici
}
}
pour une instance:
const appCmd = new ApplicationCommand();
export default appCmd;
et si t'as plusieurs classe ou instance tu peux simplement les lister:
export { taClassName, tonInstanceName };
Juste par déduction, export c'est pour plusieurs classes et export default c'est que pour une seule c'est ca ?
Yes export default c'est pour une seul entité que tu veux exporter comme principale dans ton fichier, tandis qu'export sans le default peut être utiliser pour exporter plusieurs classes; fonctions ou autre obj, après rien ne t'empêche d'avoir un export default & plusieurs export dans un même fichier si nécessaire
Ohh je vois, super ca.
Merci beaucoup
est ce que il y a quelqu'un avec une ame charitable pour m'aider sur un problem webRTC, pour expliquer, mon navigateur recoit le son mais rien ne sort, evidement mon son est monté, je me suis pas co à un appareil en blutooth etc
tu veux que le navigateur joue du son via un stream audio ?
Oui
tu peux faire ça avec une balise audio ?
et rajouter des chunk au fure et à mesure ?
et le jouer à l'infini ?
Je vais essayer
je vais ducoup ajouter cette balise audio dans le index.html, on va voir comme ca se passe
Ca ne fonctionne pas, je pense que ce n'est pas la bonne facon, au pire je vais mettre le code, on verra bien, merci
Bonjour j'aurais besoins d'aide concernant mon dev , j'aimerais crée 2 chose mais j'ai beaucoup de mal merci a vous
(je débute encore)
oui ?
Hello tout le monde
Est-ce que vous sauriez
Si il y a un moyen de transférer un champ de type "long" de Java vers angular via Spring et l'API rest ?
Car jusque-là
Mon champ de perçu comme "undefined "?
fais voir ton retour avec postman ?
lorsque je récupère avec angular, tout fonctionne sauf pour l'id
qui est perçu comme "undefined"
je n'arrive pas à trouver d'équivalence pour le type long de java, (en tout cas c'est comme ça que j'explique le pb)
alors là niveau sec on est a un level hors norme 🤣
En fait, ton souci vient probablement du fait que le type long en Java est un nombre assez grand, et parfois, JavaScript (donc Angular dans ton cas) peut avoir du mal avec ces grands nombres. Par défaut, il va peut-être l’interpréter comme undefined s'il n'arrive pas à gérer sa taille
hummm
bah là les valeurs sont faibles
je cheche juste à récupéer desid de usr
je me demande si le champ est pas mal nommé
pcq il est nommé id chez angular
c'est aussi censé être le cas dans ma class, mais là ça apparait comme idUser...
bizarrre
😢
sec?
sécurité
aïe
il aurait fallu faire un post
après c'est censé être un site en amateur mais oui
il aurait fallu cacher les id 😵💫
nn nn ton get == pour récupérer des info
hummm
post == pour envoyé des info
oui mais déjà dans ton url le plus logique ce serais juste de renseigné l'id
et pas tous le reste
donc un /userSearch?id=0
qui te return toutes les info de l'id 0
enfin toutes les info que tu souhaite (password a ne pas send)
là je veux vérifier si qqn avec ce pseudo et ce mdp existe en base.
Mais je pourrai envoyer moins d'info en effet
Ah la oui c'est du post
fais fais voir comment tu le récupères dans ton app angular
je souhaite aussi récupérer le user avec ses informations, car je pourrai en avoir besoin dans partie angular, donc pour ça, j'ai besoin de get les infos
je pense que yuketsu a trouvé le problème
j'ai réussi à récupérer un un "id" plutôt qu'un "idUser", via postman
je vais tester
c'était bien ça le problème merci beaucoup 🫡
donc faut que tu face 2 route différente t'as route pour get & t'as route pour post
Pour ton endpoint post, tu pourrais imaginer quelque chose comme :
Endpoint : /userAuth
Méthode : POST
Body : { "pseudo": "JohnD", "password": "ton_mdp" }
Ton backend fait alors la vérification et ne retourne que les infos nécessaires
ok, c'est noté !
C'est une mauvaise pratique d'utiliser post pour renvoyer une valeur ?
Nn nn c'est pas une mauvaise pratique d'utiliser POST pour renvoyer une valeur en fait POST est souvent utilisé pour transmettre des données sensibles ou faire des opérations qui impliquent des changements ou des vérifications, comme une authentification.
Le GET est plus adapté pour récupérer des données publiques et sans risques. mais dès qu'il s'agit de mots de passe ou d'informations sensibles, POST est préférable, même si tu veux seulement une réponse de validation ça ajoute une couche de sécurité parce que les données ne sont pas visibles dans l'URL et ne risquent pas d'être exposées dans les caches ou les logs de ton serveur
d'accord, dans ce cas, pourquoi ne pas tout faire en post alors ? et éliminer get ?
Alors bonne question tout faire en POST marcherait, mais ça alourdirait ton API parce que GET est fait pour être léger et optimisé (notamment avec la mise en cache). POST est plus sécurisé pour les données sensibles, mais pour le reste GET reste bien plus optimisé (si on peut dire ça comme ça x))
puis utiliser post pour de la lecture ça déroge aux standards HTTP donc si 1 jour t'as besoin d'aide pour de la maintenance ect bas bon courage 🤣
ce sera bien plus chiant à maintenir dans le temps que si tu respectes les standards http tu sais que tes request get => récupère des info & t'es request post => transmette nt des infos
ok je comprends, merci 👍
😌
Bonjour, je suis entrain de faire un bot discord, je me suis rendu compte que des slash commands étaient enregistré plusieurs fois, donc je me suis mis a chercher une solution, j'ai trouvé ce code qui permet de re enregistrer les commands sauf que j'ai un message d'erreur
Le code :
const { REST, Routes } = require("discord.js");
const { clientId, token, guildId } = require("./config.json"); // Needed values from config.json
const fs = require("fs");
const path = require("path");
const { green, bold, red } = require("colorette");
const slashCommands = [];
const foldersPath = path.join(__dirname, "./commands");
const commandFolders = fs.readdirSync(foldersPath, { withFileTypes: true });
for (const folder of commandFolders) {
if (folder.isDirectory()) {
const commandsPath = path.join(foldersPath, folder.name);
const commandFiles = fs
.readdirSync(commandsPath)
.filter((file) => file.endsWith(".js"));
for (const file of commandFiles) {
const filePath = path.join(commandsPath, file);
const slashCommand = require(filePath);
if ("data" in slashCommand && "execute" in slashCommand) {
slashCommands.push({
command: slashCommand.data.toJSON(),
developer: slashCommand.config?.developer || false, // Default to false if not specified
});
} else {
console.log(
`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`
);
}
}
} else if (folder.isFile() && folder.name.endsWith('.js')) {
// Handle JS files directly in the commands folder
const filePath = path.join(foldersPath, folder.name);
const slashCommand = require(filePath);
if ("data" in slashCommand && "execute" in slashCommand) {
slashCommands.push({
command: slashCommand.data.toJSON(),
developer: slashCommand.config?.developer || false,
});
} else {
console.log(
`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`
);
}
}
}
const rest = new REST().setToken(token);
(async () => {
try {
const globalCommands = slashCommands
.filter((cmd) => !cmd.developer)
.map((cmd) => cmd.command);
const guildCommands = slashCommands
.filter((cmd) => cmd.developer)
.map((cmd) => cmd.command);
console.log(`${green("[INFO]")} Deploying Slash Commands...`);
if (slashCommands.length > 0) {
console.log(
`[${green("+")}] Deploying ${bold(
slashCommands.length.toLocaleString()
)} Total Slash Commands`
);
} else {
console.error(`${red("[ERROR]")} No Slash Commands To Deploy`);
}
if (globalCommands.length > 0) {
await rest.put(Routes.applicationCommands(clientId), {
body: globalCommands,
});
console.log(
`[${green("+")}] Reloaded ${bold(
globalCommands.length.toLocaleString()
)} Global Application Slash Commands`
);
}
if (guildCommands.length > 0) {
await rest.put(Routes.applicationGuildCommands(clientId, guildId), {
body: guildCommands,
});
console.log(
`[${green("+")}] Reloaded ${bold(
guildCommands.length.toLocaleString()
)} Guild Application Slash Commands`
);
}
} catch (error) {
console.error(error);
}
})();
Logs :
[+] Deploying 3 Total Slash Commands
DiscordAPIError[20012]: You are not authorized to perform this action on this application
at handleErrors (C:\Users\Admin\Documents\PuantBot\CopyPuants\node_modules\@discordjs\rest\dist\index.js:727:13)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
at async SequentialHandler.runRequest (C:\Users\Admin\Documents\PuantBot\CopyPuants\node_modules\@discordjs\rest\dist\index.js:1128:23)
at async SequentialHandler.queueRequest (C:\Users\Admin\Documents\PuantBot\CopyPuants\node_modules\@discordjs\rest\dist\index.js:959:14)
at async _REST.request (C:\Users\Admin\Documents\PuantBot\CopyPuants\node_modules\@discordjs\rest\dist\index.js:1272:22)
at async C:\Users\Admin\Documents\PuantBot\CopyPuants\deploy_commands.js:75:7 {
requestBody: { files: undefined, json: [ [Object], [Object], [Object] ] },
rawError: {
message: 'You are not authorized to perform this action on this application',
code: 20012
},
code: 20012,
status: 403,
method: 'PUT',
url: 'https://discord.com/api/v10/applications/1300830498460794950/commands'
}```
L'objectif est de supprimer les commandes en double ?
discordClient.once('ready', async () => {
try {
const guild = discordClient.guilds.cache.get('id du serveur');
await guild.commands.set([]);
await discordClient.application.commands.set([]);
console.log('Toutes les commandes slash ont été supprimées avec succès.');
} catch (error) {
console.error('Une erreur est survenue lors de la suppression des commandes slash :', error);
}
});```
J'utilisais ça pour un serveur spécifique
Et une fois que ça a supprimé tu mets cette partie entre commentaires
Il y a sûrement plus pratique
tu a autoriser son bot a faire des applciaion command ? dans le scop d'invite ?
Y'a t-il un dev qui s'y connait en Next JS et Supabase. Je bute sur un souci d'authentification avec les rôles user, admin avec Supabase. Une personne voudrait-elle bien m'aider ?
Salut je ne m'y connais pas
@stray nest YA une erreur aux lignes 64 et 185
Oui justement quand j'ai tout essayé de ce que je sais pour régler ça mais rien, j'ai même consulté Stackeoverflow
Force à toi
Utilise chat gpt
il me propose des codes incompatibles ou obseltes
C'est ces 2 erreurs ?
Pour ton SheetContent si tu retire temporairement le side ça passe ?
à voir pour étendre sinon ton type SheetContentProps pour inclure side
C'est le but du discord
