#javascript-typescript
1 messages · Page 8 of 1
Pour Javascript, on m'a récemment partagé cette page, en Français : https://fr.javascript.info/
Tu as cette chaîne YouTube (NetNinja), vraiment top, pour peu que tu comprennes l'anglais : https://www.youtube.com/c/TheNetNinja/search?query=javascript
FreeCodeCamp est une référence également (cours en anglais) : https://www.freecodecamp.org/learn/
Sur ce site, tu as des cours interactifs : https://scrimba.com/allcourses?price=free
Cette chaîne YouTube (en français) est pas trop mal : https://www.youtube.com/c/Formationvidéo8
Lui aussi est pas mal : https://www.pierre-giraud.com/javascript-apprendre-coder-cours/
Merciii, je copie colle tout ça
13
Tu dois avoir une méthode has sur l'objet permission qui te permet de vérifier si la permission est comprise
Bah justement j'ai utilisé hasPermission mais il me fait une erreur
Il faut suivre la documentation
Faut quere regarde car je l'avais utiliser sur DJs 12 a l'époque
C'est passé à permission.has depuis la v13
Ahh ok ok je m'en doutais que ils avaient changé encore
Ils sont un peu chiant pour ce genre de truc
Du coup jai test mais il me dit Cannot read properties of undefined (reading 'has')
if (!interaction.user.permissions.has(Permissions.FLAGS.MANAGE_CHANNELS)) {
return interaction.reply({ content: "Cette commande est uniquement pour le staff!", ephemeral: true });
un User ne peut pas avoir de permissions mais un GuildMember oui
essai de remplacer interaction.user par interaction.member
Ok ça marche mais mtn c'est permission qui n'est pas defini
Pourtant jai suivi la doc
Si tu avais réellement suivi la doc tu aurais vu que c'est permissions et pas permission
Bah en mettant le s a la fin c'est pareil
Dans ce cas l'erreur vient de ton code, soit member n'est pas défini soit tu n'utilises pas la propriété permissions sur un objet de type GuildMember
Mais un objet de type GuildMember aura toujours une propriété permissions
hello ! j'ai une autre question par rapport à un addRole, j'ai écrit ça : ```js
if(message.guild.roles.cache.get(role)) return message.reply("Ce membre est déjà prévenu !")
si quelqu'un pourrait me corriger car j'imagine que ce n'est pas la bonne ligne à écrire, merci !
t'as le code en entier ? car là c'est compliqué
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
je viens de me souvenir qu'il fallait un .has
mais je sais pas trop quoi mettre devant
et l'erreur ?
bah y'a pas d'erreur justement
ça envoie direct le code au catch
ah, j'ai console/log : js TypeError: message.member.roles.get is not a function
message.member.roles.cache.has
il n'y a plus d'erreur, mais même si le membre à le rôle il zappe cette ligne
il y a même pas cette ligne dans ton pastebin
je l'ai modif depuis
att
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
essaye de mettre l'id du rôle au lieu de ta variable role
toujours pas
jsp j'ai testé de mon côté ça marche très bien
si le mec a déjà le rôle ça envoie bien le message ?
oui
du coup c'est member.roles.cache.has("id")
aah yes mercii
Salut salut ! J'ai une petite question sur express.
require('dotenv').config();
var express = require('express');
var router = express.Router();
var jwt = require('jsonwebtoken');
router.post('/login', function(req, res) {
let user = req.body.username;
let pass = req.body.password;
let data = {username : user};
jwt.sign(data, process.env.TOKEN_SECRET_KEY, {expiresIn: '1h'}, (err, token) => {
res.json({
token
});
});
});
// Middleware to check if the user is logged in
function verifyToken(req, res, next) {
const authHeader = req.headers['authorization'];
const token = authHeader && authHeader.split(' ')[1];
if (token == null) return res.sendStatus(401);
jwt.verify(token, process.env.TOKEN_SECRET_KEY, (err, user) => {
if (err) return res.sendStatus(403);
req.user = user;
next();
});
}
module.exports = router;
J'aimerais pouvoir utiliser le middleware dans un autre fichier router. Je suis censé export quoi ducoup ?
J'avais test
module.exports = verifyToken();
module.exports = router;
Salut jai un petit problème jai fait ce code et enfaite des que j'utilise un bouton en ayant le rôle give il me met le message comme quoi jai bien reçu le role peut importe le bouton
async execute (interaction) {
if (!interaction.isButton()) return;
if (interaction.customId === 'role-kumo') {
if(interaction.member.roles.cache.has("1013166245480239184")) return interaction.reply({ content: `Vous avez deja obtenu le role <@&1013166245480239184>`, ephemeral: true });
else
if(interaction.member.roles.cache.has("1013166244226142229")) return interaction.reply({ content: `Vous avez deja le role <@&1013166244226142229> donc vous ne pouvez pas obtenir le role <@&1013166245480239184>`, ephemeral: true });
let roleToGive = interaction.guild.roles.cache.get('1013166245480239184')
interaction.member.roles.add(roleToGive)
interaction.reply({ content: `Vous avez reçu le role <@&1013166245480239184>`, ephemeral: true });
}
}
Normal, tu met le message en bas qu'il reçoit le rôle @untold shale
Bah oui mais pk il le fait sur tout mes bouton
Nan
att
module.exports = {
name: 'interactionCreate',
/**
* @param {ButtonInteraction} interaction
* @param {Client} client
*/
async execute (interaction) {
if (!interaction.isButton()) return;
if (interaction.customId === 'role-kumo') {
if(interaction.member.roles.cache.has("1013166245480239184")) return interaction.reply({ content: `Vous avez deja obtenu le role <@&1013166245480239184>`, ephemeral: true });
if(interaction.member.roles.cache.has("1013166244226142229")) return interaction.reply({ content: `Vous avez deja le role <@&1013166244226142229> donc vous ne pouvez pas obtenir le role <@&1013166245480239184>`, ephemeral: true });
let roleToGive = interaction.guild.roles.cache.get('1013166245480239184')
interaction.member.roles.add(roleToGive)
interaction.reply({ content: `Vous avez reçu le role <@&1013166245480239184>`, ephemeral: true });
}
}
}
Interaction has already been acknowledged.
Apres im me dit ça dans la console
Jsp dutout pour le coups
bonsoir
je debute avec react-native
et j'ai essayer de faire une carte avec l'api google
jusqu'a la aucun probleme
mais le probleme vien quand j'essaye d'ajouter un marqueur sur la carte
je n'arrive pas a controller la taille du marqueur du coup il est trop gros
voila le code
let iconmaps = require('./assets/maps.icon.png')
export default function App() {
const [dark, setDark] = useState(false);
return (
<View style={styles.container}>
<MapView style={styles.map} provider={PROVIDER_GOOGLE} customMapStyle={dark? mapStyle : null}>
<TouchableOpacity onPress={() => setDark(!dark)} style={{
backgroundColor: "#fff",
height: 30,
borderRadius: 15,
width: 30,
alignItems: 'center',
justifyContent: 'center',
position: 'absolute',
marginTop: 60,
alignSelf: 'flex-end',
right: 20
}}>
<FontAwesome name="adjust" size={30} />
</TouchableOpacity>
<Marker title='SiwaFive' icon={iconmaps} coordinate={{latitude:36.745874, longitude:3.056551 }} />
</MapView>
</View>
)
}```
C'est bon jai trouvé
Enfaire j'avais 2 fois la meme fonction qui se call en meme temps
Ah ok ba good alors
DISCORD.JS
Bonjour , est ce que c'est galère de passer de v13 => v14
Ca dépend de ton niveau de compétence
Si tu veux voir la liste des changements : https://discordjs.guide/additional-info/changes-in-v14.html
Salut, vous savez comment on peux gérer le cycle de vie de React, j'ai importer un objet qui se double j'ai essayer avec un useEffect mais sa change rien. J'ai mon composant dans lequel j'ai importer mon objet, j'ai essayer un console.log il se double aussi. Une idée ? Svp
Hello, tu es en strict mode, d'où le double render, mais tu dois le prendre en compte
Montre ton code pour qu'on t'aide
Ah d'accord merci je vais me renseigner dessus. La du coup c'est mon composant qui représente mes projets
la c'est ou j'importe tout mes composants pour faire ma page
et sa la page index, désolé pour le nombre de screen
Pourquoi tu as deux React.StrictMode
Attention à l'organisation de ton code et ne pas paraphrasé le comportement de React
Je voulais avoir une div qui englobe tout mais qui s'affiche pas sur le navigateur
Alors dans ce cas là utilise les Fragment, c'est fait pour ça justement (ça va pas faire une div mais ça va te permettre de grouper le retour de ton component dans créer un elem du dom en plus)
D'accord je sais pas encore comment bien structuré mon code ex "mettre quoi comme nom de composant" y a des règles de nommage à savoir ? comme pour index
Ok c'est noté j'avais vue qu'on pouvais utiliser des balises vide aussi si je trompe pas sa change quelque chose ?
Oui, pour t'aider tu peux suivre les conventions et la doc pour structurer ton code
<></> c'est strictement équivalent à React.Fragment, donc c'est au choix
Ok je vais jetez un oeil merci.
Ah d'accord
Bonjour j'ai un petit soucis que je n'arrive pas a résoudre
Pourtant le role de mon bot est le plus haut du serv et il a les perm admin
En vous remerciant d'avance
<rejected> DiscordAPIError: Missing Permissions
at RequestHandler.execute (/home/container/node_modules/discord.js/src/rest/RequestHandler.js:350:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (/home/container/node_modules/discord.js/src/rest/RequestHandler.js:51:14)
at async GuildBanManager.create (/home/container/node_modules/discord.js/src/managers/GuildBanManager.js:165:5) {
method: 'put',
path: '/guilds/1013164766333784176/bans/399502721272774657',
code: 50013,
httpStatus: 403,
requestData: { json: [Object], files: [] }
}
} reason: Missing Permissions
ton bot essaye de te ban
ce qui pose problème car je suppose que tu es l'owner du serveur
et l'owner ne peut pas être banni
Ahhh
interaction.member.ban(user)
Pour moi j'avait compris que le membre de l'interaction ban le user
hm non x)
:method: GuildMember#ban()
Bans this guild member.
concrètement
Ok ok je vais essayer de voir comment corriger
ton bot ne peut pas te faire bannir un membre du serveur (si, mais il faut qu'il ait des accès à ton compte). Donc plus simplement, tu peux éventuellement inclure le membre a l'origine du bannissement (commande) dans la raison du bannissement
si tu as d'autres problèmes n'hésite pas
:method: GuildBanManager#create()
Bans a user from the guild.
Ok ok je te remercie et je vais regarder comment faire
Bonjour, j'ai un souci lorsque je veux lancer mon bot, cette erreur apparaît :
return process.dlopen(module, path.toNamespacedPath(filename));
^
Error: dlopen(/Users/warman/Desktop/Positivity/canvas/build/Release/canvas.node, 0x0001): tried: '/Users/warman/Desktop/Positivity/canvas/build/Release/canvas.node' (not a mach-o file)
at Object.Module._extensions..node (node:internal/modules/cjs/loader:1177:18)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:999:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/Users/warman/Desktop/Positivity/canvas/lib/bindings.js:3:18)
at Module._compile (node:internal/modules/cjs/loader:1095:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1147:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12) {
code: 'ERR_DLOPEN_FAILED'
}
Node.js v17.0.1```
> On m'a dit de réinstaller canvas, mais ça m'a dit qu'il y avait 4 vulnérabilités lorsque cela a été fait... ducoup, je sais pas si quelqu'un va pouvoir m'aider, mais je pose ça la quand même. Merci d'avoir lu et bonne journée ! (je suis sur mac, peut-être que c'est du à ça...)
up
ici nécessairement tu dois réinstaller le module sinon ça ne marchera pas 🤔
Par ailleurs
tu ne devrais pas utiliser les versions 17.x, elles sont relativement buggés et aucune n'a pas pour but d'être stable, installe plutôt la version LTS 18.x ou (16.x)
J'essaye, mais cela apparaît :
npm WARN EBADENGINE package: 'node-superfetch@0.3.3',
npm WARN EBADENGINE required: { node: '>=18' },
npm WARN EBADENGINE current: { node: 'v17.0.1', npm: '8.1.0' }
npm WARN EBADENGINE }
up to date, audited 590 packages in 952ms
62 packages are looking for funding
run `npm fund` for details
4 vulnerabilities (1 moderate, 2 high, 1 critical)
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.```
yep bah tu dois update node
Ah bah je vais essayer la v16.9, car la v18 ne fonctionne pas avec canvas
pas sur
npm WARN EBADENGINE required: { node: '>=18' },
tu dois nécessairement avoir une version de node qui soit 18 ou plus
donc update
Eh bien ça ne marche toujours pas là, même en v18.3.0
C'est quoi la nouvelle erreur
Celle-ci, mais au lieu de
Node.js v17.0.1tout en bas, y'aNode.js v18.3.0
Et quand je décide de réinstaller canvas, ce message réapparait :
62 packages are looking for funding
run `npm fund` for details
4 vulnerabilities (1 moderate, 2 high, 1 critical)
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.```
C'est tout bon au final. J'ai tout supprimé, y compris VS Code pour vraiment tout refaire et là c'est bon ! Merci encore pour votre aide
Ça veut juste dire que canvas c'est bien installé
Discord.js
message.guild.members.cache.filter(m => m.user.bot).size
Renvoie systématiquement 1 alors qu'il y à 5 bots sur le serveur
T'as essayé (await message.guild.members.fetch()).filter(m => m.user.bot).size ?
Parce que concrètement là tu te bases uniquement sur le cache de ton bot
Bonjour, j'ai un problem.
Vous avez une solution ?
J'ai une question, j'ai mon projet nuxt avec tailwind CSS mais j'ai une page ou je ne veux pas utiliser tailwind c'est possible de l'enlever de cette page tout en gardant les autres ?
Bonjour je voudrais savoir si c'est possible de faire en sorte que si un joueur dans une phrase met un mot clé du style "je peux avoir la collection du serveur ?"
Le bot lui répond en lui donnant le lien de la collection
Tu utilises la fonction indexOf() qui te renvoie la position de la sous chaine. Donc if(message.content.indexOf("TonMot") >= 0) alors ton mot existe
Ou ya search() qui fait le même boulot
Même en async avec await ça me renvoie 1 ou 2 ça varie
Okay bah
T'as essayé (await message.guild.members.fetch({ force: true })).filter(m => m.user.bot).size ?
Comme ça ca devrait marcher @hollow notch
faut que tu await correctement
fin
fetch renvoie une promise, donc tu peux pas mettre directement filter après
montre moi ton code
Bonjour, j'ai un problème avec un bot, voici l'erreur qu'il me renvoie
TypeError: event.bind is not a function
Voici le code:
module.exports = async bot => {
fs.readdirSync("./Events").filter(f => f.endsWith(".js")).forEach(async file => {
let event = require(`../Events/${file}`)
bot.on(file.split(".js").join(""), event.bind(null, bot))
console.log(`Evènement ${file} chargé avec succès! `)
})
}
Bah il n'y a pas écris justement
Ok ok merci je vais regarder ça
Elle est claire l'erreur 🤨
J'ai une question, j'ai mon projet nuxt avec tailwind CSS mais j'ai une page ou je ne veux pas utiliser tailwind c'est possible de l'enlever de cette page tout en gardant les autres ?
okay so clairement tu await mal
j'ai déjà tout essayer
Jveux bien te croire mais c'est exactement cque tu m'as send
Perso jamais utilisé d'évent.bind pour un handler de bot discord
c'est pour load mes event
nah
dans ton set name tu mets aucun await
et tu réutilises même pas totalbots
ni dans totalbots tu fais pas ça non plus
donc je te propose
const totalbots = (await message.guild.members.fetch({ force: true })).filter(m => m.user.bot).size
await client.channels.cache.get('id')?.setName(`[emoji] : ${totalbots}`).catch(console.error); // Fais attention si l'id n'est pas en cache ça ne marchera pas
// si ça concerne un channel dans la guild, tu peux faire ça
await message.guild.channels.edit('id', { name: `[emoji] : ${totalbots}` }).catch(console.error);
Je t'ai juste sorti les 3 lignes que j'ai try pour le screen
C'est good ty
tu fait comment pour load tes event
Ton fichier commads.js ligne 10
Bonjour, comment je pourrai faire pour que un message contenant cette fonction se modifie tous seul toute les 1 minute avec djs
Bonjour je ne comprend pas pourquoi il me met null alors que je le déclare dans la commande
let WinnersCount = interaction.options.getNumber("winnners");
👥 Nombre de gagnants :**${WinnersCount}**
envoie le code de toute ta commande
Bonjour je voulais est ce que vous avez ce code pour le système de règlement ?
Si c'est une option requise dans ta commande tu peux commencer par mettre true en deuxième argument de ta méthode getNumber
Et après quand on accepte le règlement on est un rôle défini
Ensuite, si tu reçois null c'est que ton option n'existe pas ou n'a pas le nom que tu attends
https://pastebin.com/BJJ8jU4Y Le voici
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
Je l'ai deja mis
required: true
mettre true en deuxième argument de ta méthode getNumber
puis tu as aussi un "n" de trop à "winnners"
Bon je vais dormir 😂
Bizzare quand j'enlève le "n" ça marche 😂
Bonjour, j'aurais une petite question comment je pourrais faire pour actualiser le paramètre surligné en jaune a chaque envoie de l'embed s'il vous plaît ?
Ce que t'as surligné en jaune ? C'est une fonction à vu d'œil ?
Fin si tu parle bien de ça
Ducoup c'est quoi que tu veux modifier la fonction à executer ou les paramètres dedans ?
Enfaite je voudrai que sa mette a jour les valeur afficher qui sont les suivante:
(Et au passage si tu sais comment je pourrais affiché le status du serveur sa m'aiderai)
Je fais pas de discord JS mais dans l'idée ton interval est pas au bon endroit la ton resultat changera jamais c'est normal
Faudrait que ton interval soit au dessus de ta Promise
Son embed est envoyé sur l'event ready, soit à chaque démarrage de son bot, il n'est pas modifié jusqu'au prochain appel de cet event.
Sur la doc de DiscordJS c'est précisé que un embed déjà envoyé ne peut être modifier, par contre tu peux le récupérer pour modifier son corps et l'envoyer à nouveau
const receivedEmbed = message.embeds[0];
const exampleEmbed = EmbedBuilder.from(receivedEmbed).setTitle('New title');
channel.send({ embeds: [exampleEmbed] });
const exampleEmbed = new EmbedBuilder()
.setTitle('Some title')
.setDescription('Description after the edit');
message.edit({ embeds: [exampleEmbed] });
https://discordjs.guide/popular-topics/embeds.html#using-an-embed-object-1
Mais ducoup pour mettre a jour ma fonction je fait comment, prcq quand je lance le bot elle prend une valeur, mais elle la garde jusqu'au prochain redémarrage, j'avais pensé que la mettre dans la variable interval réglerai le soucis mais non, vous avez pas une idée ?
Prcq la ducoup pour cette exemple il faut mettre a jour ma fonction sinon il va modifé par le même paramètre
Si tu veux modifier les données de ton embed pour l'actualiser en temps réel, il ne faut pas qu'il fasse partie de l'event ready, mais d'un autre event qui sera appeler plus régulièrement et qui correspond plus à ton besoin, par exemple :
https://discord.js.org/#/docs/main/main/class/Client?scrollTo=e-guildMemberAvailable
Ou si tu veux l'update avec un interval de temps tu pourrais aussi utiliser cron
https://www.npmjs.com/package/cron
Je viens de découvrir un autre soucis avec cette fonction je n'est plus aucune commande qui fonctionne, sa peux être réglé avec une des eux solution que tu m'as proposé ?
Avec la fonction guildMemberAvailable il me renvoie rien du tout
Rate-limited
Tu dois avoir un évènement qui est déclenché quand tu es rate-limité qui t'indique pendant combien de temps tu vas l'être
Hello.
J'ai une p'tite galère avec mon tsconfig, j'ai renseigné dans le compilerOptions mes assets, pour que je puisse me retrouver avec mon dossier views, qui va contenir mes fichiers .hbs pour mes e-mails :
"**/views/**/*.hbs"
],```
Mais impossible de retrouver le dossier views dans mon dist quand je build.
Si vous avez une idée je suis preneur !
Tu l'as include ?
Yes
app.engine('handlebars', engine({ extname: '.hbs' }));
app.set('view engine', '.hbs');
app.set('views', path.join(__dirname, "views"));
Non dans ton tsconfig
J'ai envoyé le bout du code ou je l'ai importé juste au dessus.
Lors de ton build, il ne va inclure dans le build que ce qui est import (non dynamic) et ce qui est include
J'ai jamais utilisé assets, mais je sais que include fonctionne
J'essai avec include
"include": [ "src/**/*.hbs", "src/**/*.ts", ],
Même résultat :/
Montre ton tsconfig en entier et ta structure de fichiers
TSConfig :
{ "compilerOptions": { "resolveJsonModule": true, "target": "es2021" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, "module": "ESNext" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, "declaration": true /* Generates corresponding '.d.ts' file. */, "sourceMap": true /* Generates corresponding '.map' file. */, "outDir": "./dist" /* Redirect output structure to the directory. */, "strict": true /* Enable all strict type-checking options. */, "moduleResolution": "Node", "baseUrl": "./", "paths": { "@/*": [ "src/*" ] }, "esModuleInterop": true, }, "include": [ "src/views/**/*.hbs", "src/**/*.ts", ], "exclude": [ "node_modules", "src/tests" ] }
Ma structure
mmh
Après je peux toujours faire un cpx pour copier, mais je trouve ça moche
Ouep, mais si je peux utiliser tsconfig pour faire le boulot c'est toujours mieux
Mais vu que je galère, je comprends même pas d'où ça vient
C'est quoi cpx ?
Euh ouais nan, si on en arrive là on peut aussi bien ne plus transpiler le code x)
Tu as essayer de regen le build de 0 ?
Ah j'ai retiré ça :
"src/**/*.ts",
Et j'ai une erreur maintenant
No inputs were found in config file 'F:/Git/ALLO-MAITRE-DHO/api_amd_ts/tsconfig.json'. Specified 'include' paths were '["src/views/**/*.hbs"]' and 'exclude' paths were '["node_modules"]'.
Mais je pense que c'est à cause de ce retrait
Oui avec tsc
Ta config tsconfig est bonne, mes fichiers sont bien tous include
Même si ils sont pas import
Oui c'est ce que je dis ^^
C'est quand même étrange
C'est pour ça la solution cpx, elle est bonne aussi mais bon
C'est un cache misère
Pas faux, mais j'ai cherché un peu sur Google je trouve pas grand chose
https://github.com/nest-modules/mailer/issues/42
il avait le même problème que moi
ça te le fait uniquement pour le hbs ?
Yes, le reste en .ts ça marche correctement
Ah mais oui dans ton cas t'as besoinde assets
Tu as essayer un path plus générique dans assets ?
Bonjour je suis entrain de faire un système de suggestion avec un .edit et je voudrais savoir comment je peux récup le contenu de l'embed de la suggestion pour le mettre dans celui de la réponse
merci
Tu peux regarder du côté de <EmbedBuilder>.from
Bonjour, je débute en programmation et j'ai suivit le tuto de discord pour faire un bot et il s'arrête juste a des question et réponse fixe. J'essaye de faire un bot qui peut lire des video youtube sauf que je ne sais pas comment ont fait pour que la personne puisse rajouter des argument. Merci
Avec les slash-commands tu fais un array sur une clé options lors de l'enregistrement des commandes. Dans cet array tu mets des objets qui représentent des arguments sous le format suivant:
{
name: "nom-argument",
description: "Description de l'argument",
type: ApplicationCommandOptionsType.String, // String, Channel, Number, Integer, User, Boolean...
required: true // Si l'argument est indispensable ou non
}
Documentation suggestion for @untold shale:
:property: Message#embeds
A list of embeds in the message - e.g. YouTube Player
^^
Excuse moi mais comment je fait un array sur une clé option je sais pas faire ça comme je débute. Merci
Fais voir à quoi ressemble ton code
Sa ressemble à ça
Avec les builders tu as une méthode addOptions
Ok je regarde ça quand j'arrive chez moi
salut, je veux upload un fichier qui est ensuite stocké dans ma db pour le réutiliser. J'utilise nuxt
cependant je ne parviens pas à récupérer l'image
alors qu'elle est bien stocké dans la db
je me demandais si il fallait utiliser un truc comme multer par exemple
alors que lorsque je choisis le fichier celui ci supload bien
le lien est un blob, c'est quoi?
Bonjour !
J'aimerai faire une commande /derank @user [grade], mais j'aimerai faire en sorte que quand je tape la commande ça me dises "Pour quelle raison voulez-vous dérank cette personne
?" et que là ça me propose un menu de plusieurs raisons (que j'ai). Si quelqu'un saurait comment faire ! Merci beaucoup
Tu as deux options Soit tu fais avec les évents donc ca aura l'avantage de fonctionner même si ton bot redémarre après avoir envoyé le select-menu soit tu passes par les collectors. Ici les collectors semblent êtres suffisants. Du coup tu peux procéder comme ca:
- Tu réponds à l'intéraction avec un contenu de message et le select-menu (tu dois construire une ligne d'action via ActionRow et ajouter dedans le select-menu puis le mettre dans la clé
components.) Tu as plusieurs exemples dans le guide - Ensuite tu ajoutes ton collector et dans l'évent "collect" tu peux récupérer la raison et terminer le traitement sans oublier de supprimer le collector pour libérer de la mémoire.
Oula, je m'y connais pas du tout donc je vais essayer de faire ça
Merci !
Comences par envoyer le select-menu (https://discordjs.guide/interactions/select-menus.html#building-and-sending-select-menus)
Puis regardes du coté des collectors (https://discordjs.guide/popular-topics/collectors.html#collectors)
si tu veux inverser un booléen en JS c'est !
!true === false
!false === true
donc si je fait !1 ça va me donner True ?!
D'accord merci !
ca va renvoyer false
car 1 c'est vrai si tu fais Boolean(1)
ptn j'ai compris !!!!!!!!!!!!!!!!
en revanche ca renverra true si tu fais !0
merciiiiiiiiiiiiiiiiiiii !!!!!!!!!!!!!!!!!!
je suis trop content
merci merci merci merci merci merci merci merci merci merci merci
pas de soucis
J'ai réussi à faire mon select-menu mais j'arrive pas du tout à comprendre les collectors
Car ça pose énormément de problème lié à l'exploitation
quelqu'un à une idée de code que je dois faire pour récupérer le input de mon fichier html? toute mes tentative était infructueuse
Merci !
Hello, je veux faire un navbar avec React mais ça ne met pas correctement la classe en fonction de la page active.
Sur la page accueil ça met bien uniquement le lien "Accueil" en active mais sur la page donations ça met les deux 🤔
import React from 'react';
import { NavLink } from 'react-router-dom';
const Navigation = () => {
return (
<div className="navigation">
<NavLink to="/" className={(nav) => (nav.isActive ? "nav-active" : "")}>
<p>Accueil</p>
</NavLink>
<NavLink to="/donations" className={(nav) => (nav.isActive ? "nav-active" : "")}>
<p>Donations</p>
</NavLink>
</div>
);
};
export default Navigation;
Alors que les deux sont les mêmes
J'ai trouvé:
Ce code fonctionne pour la version 6.2 de React mais avec la dernière version, il faut ajouter end à la fin de la balise NavLink pour éviter la propagation au voisin
import React from 'react';
import { NavLink } from 'react-router-dom';
const Navigation = () => {
return (
<div className="navigation">
<NavLink to="/" className={(nav) => (nav.isActive ? "nav-active" : "")} end>
<p>Accueil</p>
</NavLink>
<NavLink to="/donations" className={(nav) => (nav.isActive ? "nav-active" : "")} end>
<p>Donations</p>
</NavLink>
</div>
);
};
export default Navigation;
Hello, je suis ce tuto (https://medium.com/@johndyer24/creating-and-deploying-an-auto-updating-electron-app-for-mac-and-windows-using-electron-builder-6a3982c0cee6) mais quand je fais npm run deploy j'ai cette erreur ⨯ GitHub Personal Access Token is not set, neither programmatically, nor using env "GH_TOKEN".
Où dois-je spécifié GH_TOKEN et regler ce problème ?
Tu dois mettre ton token, tu dois aller sur github dans paramètres développeurs puis Personal Access Token, tu set tes permissions et tu copie ton token
Je l'ai déjà, mais je ne sais pas où je dois mettre GH_TOKEN
Dans un fichier ENV
Bonjour/Bonsoir, j'ai un soucis mon bot se lance bien, mais ne reçoit aucune commande je ne trouve pas l'origine du soucis pouvais vous m'aidez ?
Tu ne recevras pas l'événement messageCreate sans son intent
Et pourquoi tu déclare ton embed avec const mais ton actionrow avec var ?
Le var c'est mal
C'est pas mon code jsp du tout
J'ai pas connu l'époque du var, quand j'ai commencé le js const et let étaient déjà supporté presque partout
ok...
j'aimerais faire un petit bouton pour mettre ma page en fullscreen
comment je fait pour le faire ?
Cela ne marche toujours pas, j'ai mis GH_TOKEN = "[MON_TOKEN]" mais je toujours ceci :
• electron-builder version=23.6.0 os=10.0.22621
• loaded configuration file=package.json ("build" field)
• writing effective config file=dist\builder-effective-config.yaml
• "electron-squirrel-startup" dependency is not required for NSIS
• packaging platform=win32 arch=x64 electron=21.2.0 appOutDir=dist\win-unpacked
• building target=nsis file=dist\Zikaa App Setup 0.0.3.exe archs=x64 oneClick=true perMachine=false
• building block map blockMapFile=dist\Zikaa App Setup 0.0.3.exe.blockmap
⨯ GitHub Personal Access Token is not set, neither programmatically, nor using env "GH_TOKEN"
Il s'appelle comment ton fichier?
@keen narwhal Si tu utilise node js, tu met ton fichier ".env" à la racine de ton projet puis dans ton code:
require("dotenv").config()
// tu peux récupérer ton token avec `process.env.GH_TOKEN`
// Exemple:
console.log(process.env.GH_TOKEN) // Ca va log ton token dans la console
Tu dois installer dotenv avec npm i dotenv --save
D'accord merci je vais faire ça :)
Aurait il une personne qui pourrais m'aider à faire un auto updater sur electronjs, car je n'y arrive pas.
Tu entend quoi pas auto updater
Je voudrais que quand mon application ce lance, elle vérifie une nouvelle mise à jour et si il y a en a une elle la télécharge, redémarre puis ouvre la page index.html par exemple.
Un truc comme ça
Tu as regardé la doc ? il y a une section dédiée
Ouais mais je n'y arrive pas -_-
Tauri > Electron 🤡
Salut tout le monde, j'utilises pour la première fois jest avec vue et j'arrive pas à importer de fichier .vue dans mes fichiers de test j'ai une erreur à chaque fois:
FAIL src/components/VBtn/__test__/VBtn.spec.ts
● Test suite failed to run
ReferenceError: __importDefault is not defined
> 1 | import VBtn from '../VBtn.vue';
| ^
2 | console.log(VBtn);
3 |
4 | /*
at Object.<anonymous> (src/components/VBtn/__test__/VBtn.spec.ts:1:1)
J'utilises typescript mais j'ai config ts-jest
Ma config jest.config.js
/** @type {import('ts-jest').JestConfigWithTsJest} */
module.exports = {
verbose: true,
preset: 'ts-jest',
transform: {
'.*\\.(vue)$': '@vue/vue3-jest',
},
};
Et mon fichier de test
import VBtn from '../VBtn.vue';
console.log(VBtn);
Si jamais quelqu'un a une idée je suis preneur
Salut salut , pourrai-je recevoir de l’aide sur les message aléatoire Math random je suis perdue aha ^^’
tu pourrais detailler ton prblm ?
Enfaite je suis un débutant sur le codage et actuellement je suis bloquer sur les message aléatoire : en gros j’aimerais faire en sorte que si j’effectue une commande /commande le bot me répondent en embed plusieurs réponses aléatoires mais pas en même temps en mode cette commande peut donner plusieurs réponses tu vois ?
j'aurais fait un array d'object qui contitent le contenue de chaque embeb. puis tu prend un nombre aleatoire entre ton array.lenght et 0. puis tu selection l'element de l'array avec (exemple array[4])
et tu affiche ton embed avec les valeur
Je sais pas faire 😭 j’y connais rien eft
tu peux call dans 5min ?
Call ?
vocal
Bonjour tout le monde comment allez-vous ? Je suis a la recherche d'un site capable de générer des petites animations en fond quand lance la page vous avez cela en réserve ?
Salut, je suis actuellement en train de passer mon autocomplete en v14 de discord.js sauf qu'il me met une erreur d'interaction.
Je n'arrive pas à voir d'où cela peut venir.
Code :
autocomplete: async (interaction, bot) => {
const focusedValue = interaction.options.getFocused().toLowerCase();
getGamesEurope()
.then(async games => {
const filtered = games.filter(game => game.title.toLowerCase().startsWith(focusedValue));
const array = filtered.length > 10 ? filtered.slice(0, 9) : filtered;
await interaction.respond(
array.map(game => ({ name: game.title, value: game.title }))
);
});
},
Merci de m'aider mais cette étape est déjà faites.
else if(interaction.type == 4){
const {slashCommands} = bot;
const {commandName} = interaction;
const command = slashCommands.get(commandName);
if(!command) return;
console.log(command)
try {
await command.autocomplete(interaction, bot);
} catch (err) {
console.error(err);
}
}
Je pense que ton code met plus de 3s à répondre à l'interaction
ça doit être ça car il marche une fois sur 2 merci.
Oui ce message d'erreur c'est l'interaction qui n'existe plus. Normalement tu dois envoyer une réponse de type defer reply à l'interaction mais là vu qu'il s'agit de choix pour l'autocompletion je ne pense pas que ça peut fonctionner
J'ai bien peur que tu doivent optimiser ton code pour qu'il réponde plus rapidement. Si tu ne peux pas c'est que ça vient du réseau (soit celui de Discord soit celui du serveur qui héberge le bot)
Je pense que c'est le fait que je sois en local c'est tout je verrai sur mon VPS car avant en V13 ça marchais nickel sur l'hébergeur et j'ai pas encore essayé dessus.
C'est fort probable
bonsoir, désolé de vous déranger si tard. J'ai un petit problème actuellement. J'ai supprimé mes nodes modules et je suis en train de les réinstaller ave npm i. Mais j'ai remarqué que la console crash
l'installation se bloque
je comprends vraiment pas pourquoi
voila où j'en suis, c'est bloqué depuis 10min
Salut, j'essaye actuellement d'héberger un bot discord sur ptérodactyl grâce à l'egg ATLauncher, cependant, je rencontre cette erreur lors du lancement:
check ta version de node
je peux faire comment ?
envoie moi ton interface total
je me souviens plus exactement
de ptéro ?
tu veux quelle interface
ok va dans settings
clic sur docker image
je peux copier le truc mais rien faire d'autre
il y a écrit quay.io/parkervcp/pterodactyl-images:alpine_nodejs-10
il te propose pas d'autre choix ?
nop
alors essayons activity
déjà regardé
ah mince et par rapport a la version de node ?
pourquoi tu n'utilises pas l'egg discord.js ?
Hey je voudrais savoir comment je peux faire pour faire en sorte que dans ma commande /spam pendant qu'elle s'execute si il y a un message qui contient stop dans le meme channel alors elle arrete de spam
const spam = new SlashCommandBuilder()
.setName("spam")
.setDescription("This command will spam")
.addStringOption(option => option
.setName("message")
.setDescription("Put the message !")
.setRequired(true))
.addIntegerOption(option => option
.setName("number")
.setDescription("Put the number of messages who will be spammed !")
.setRequired(true))
---------------------------------------------------------------------------------------
if(interaction.commandName === "spam"){
var number1 = interaction.options.getInteger("number");
let message = interaction.options.getString("message");
let i = 1;
let a = 1;
if(interaction.member.roles.cache.some(e => e.id == modoID) && message != "<@"+doughID+">" && message != "<@"+skorflexID+">" && interaction.member.id != creatopID){
interaction.reply({content:"Asked by <@"+interaction.member.id+"> ! "+ number1 + " fois !!"});
while(i<=number1){
interaction.channel.send(message);
i=i+1;
if(message.content.startsWith("stop")){
break;
}
}
}
Tu peux faire un collector de message tout simplement.
j'ai un problème avec nuxt, j'ai mon lien auth qui marchait avec suelement identify mais j'ai maintenant rajouté guilds et celui-ci apparait mais lorsque je console.log, je ne rédupère que les informations d'avant, pas les guilds
pourtant j'ai bien rajouté guilds dans le scope
C'est une autre route pour obtenir les guilds
Comme dans la documentation...
developper portal?
oui
je viens d'essayer avec l'egg discord-js13, mais toujours la meme erreur au final
C’est c’est ton code
Franchement j'ai pas trouvé, si tu pouvais juste me donner le nom de la route please
Bonjour, j'ai cette erreur savez vous pourquoi ?
C'est écrit :
Require n'est pas définie. Voilà l'erreur
oui mais alors je mets quoi à la place de require ?
Je sais pas, je sais pas ce que tu veux faire.
Ton code est écrit ou ?
Et tu cherche à faire quoi ?
Je veux faire un auto updater avec electron js.
Mon code :
const { ipcRenderer } = require('electron');
const select = selector => document.querySelector(selector)
let container = select('#messages')
let progressBar = select('#progressBar')
let version = select('#version')
ipcRenderer.on('message', (event, text) => {
let message = document.createElement('div')
message.innerHTML = text
container.appendChild(message)
})
ipcRenderer.on('version', (event, text) => {
version.innerText = text
})
ipcRenderer.on('download-progress', (event, text) => {
progressBar.style.width = `${text}%`
})
Dans ton code, il y a une choses qui me pose question.
Require fonctionne que sur nodejs. Tu le lance sur un navigateur ?
C'est pas comme ça qui faut lancer electron
La réponse se trouve dans la doc : https://www.electronjs.org/fr/docs/latest
Bienvenue dans la documentation d'Electron ! Si c'est la première fois que vous développez une application Electron, lisez cette section pour vous familiariser avec les bases. Sinon, n’hésitez pas à explorer nos guides et la documentation de l’API !
Hein ?
C’est la console qui s’affiche quand tu fais F12
🤣
Fais-le sur l’app Discord, tu verras c’est la même chose
Bonjour, est-ce possible de faire une boucle sur un setTimeout
Oui tu peux. C'est quoi l'idée
Via electronjs donc oui
Dans l'idée il faudrait que je boucle l'envoie d'un embed djs, sauf que déjà sans le code de l'embed juste en envoyant un message un message console simple sa ne fonctionne pas
Tu ne peux pas faire une boucle infini.
Pourtant j'ai suivis ce github : https://github.com/sandeep1995/pingo
Comment je pourrais faire pour l'envoyer a l'infini ducoup ?
Ok, electron ne se lance pas dans ton navigateur.
Donc tu doit oublier ton navigateur.
Electron va lancer une fenêtre. Mais c'est avec NodeJs. Et pas avec ton navigateur.
Tu le fais pas. Pas de boucle infini.
Utilise plutôt des évènement. Ou un setInterval()
setInterval ^^
Mais de quoi tu parles ?
On peut pas lancer electron dans un navigateur 🤣
Oui, c'est pas comme ça que électron fonctionne
bonjours a tous, j'ai commencer la folle aventure de création d'un bot discord en javascript sans aucune notion de javaScript (en regardent des vidéos) et en regardent de la documentation de discordjs. Tous ça pour demander de l'aide pour une commande avec un bouton alors je ne sait pas se qu'il faut faire avec (comme dit au dessus je suis vraiment débutant et je fais beaucoup de copie) voila merci beaucoup si quelqu'un peux m'expliquer comment intégrer cette fonction
dsl du paver
Tu aurais un code de début ou tu pars de rien ?
Oui et....
alors j'ai commencer en regardent des vidéos donc j'ai déjà du code j'ai créé le bot et j'ai fais les commande slash voila
Si tu veux bien, on va commencer par le début : envoyer le bouton
yep
:interface: InteractionReplyOptions
Options for a reply to an [Interaction](<https://discord.js.org/#/docs/discord.js/stable/class/Interaction>).
tu veux que l'on se parle en pv ? ou vocal ?
Ici, tu as tous les paramètres pour répondre à un message.
Celui qui correspond aux boutons et aux menus est "components"
Donc en utilisant un row avec un bouton, tu peux envoyer un bouton
:class: ActionRowBuilder (extends ComponentBuilder)
Represents an action row component
Et
:class: ButtonBuilder (extends ComponentBuilder)
Represents a button component
ok car j'avais sa comme code pour l'intégration d'un bouton
Voilà
Ah oui aussi x)
Et pour recevoir quand l’utilisateur appuie sur le bouton tu utilises un messageComponentCollector
alors je suis dsl mais j'ai pas tous tous compris ^^
Vous avez une idée de la ou sa pourrais venir ??
ok
Au hasard je dirais du 25ème caractère de la ligne 49 d'index.js
Mais complètement au hasard
Nan masi oui ok mais jsp pourquoi enfaite ses surtous sa je sais ou elle sont les lignes
merci pour ton aide mais je te cache pas que je suis perdu ^^ je vais lire tous ça et faire des test
Si y’a un truc que tu comprends pas, n’hésites pas à me mentionner 👀
mdrr je t'avous que pour que je comprenne tous il me faut une démonstration avec le code, c'est pour cela que pour l instant je vais regardé des vidéo voir si je peux comprendre sans te déranger ^^
Okay
Ah bah si même toi tu ne sais pas où sont les lignes il y a peu de chance pour que quelqu'un d'autre le sache
Mais ...
Je dis je sais ou son les lignes, mais je comprend pas pourquoi sa marche pas
Ahhhh okkkk et pk chez lui ça marche et pas moi alors ?
Je connais pas le code de l'autre.
Tu utilise NodeJs ?
Et ton code ne peut pas fonctionner. Comme j'ai dit électron c'est pour faire une application desktop.
Electron va ouvrir une fenêtre et charger une page.
Electron se lance avec nodejs
Voici un projet demo pour comprendre électron : https://github.com/electron/electron-quick-start
Clone to try a simple Electron app. Contribute to electron/electron-quick-start development by creating an account on GitHub.
Tu a essayé de copier le code de la doc de elctron car moi il marche bien
const { app, BrowserWindow } = require('electron')
const createWindow = () => {
const mainWindow = new BrowserWindow({
width: 800,
height: 600
})
mainWindow.loadFile('index.html')
}
app.whenReady().then(() => {
createWindow()
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') app.quit()
})```
ducoup j'ai pas tous compris ^^ j'ai test plein de chose et j'ai pas réussi
Bonsoir quelqu'un aurais le code complet pour la modération. Si oui possible de me l'envoyer. Bonne Soirée
Bonjours
J'aimerais pouvoir deplacer des éléments de mon site web grace a un dashboard mais je ne sais pas comment faire donc si vous savais je suis preneur
Cordialement
Bonsoir tout le monde, je bosse sur une page web statique en ce moment qui si on devais schématiser :
A l'ouverture de la page, texte qui apparait avec animation machine à écrire, et bouton en bas,
quand on clique sur le bouton en javascript ça change le contenu du texte et du bouton et le texte refais une animation machine à écrire
puis une autre fois et ainsi de suite
Quelqu'un aurait une idée de comment faire l'animation machine à écrire qui se refais à chaque fois que le texte change ?
Voici mon code pour l'instant (l'animation en css ne marche pas d'ailleurs) :
html :
<div class="container">
<a id="helloWorld" class="typed-out">texte1</a>
</div>
<a class="bn39" onclick="start()">
<span class="bn39span" id="start">Submit</span>
</a>
Js :
function start() {
const button = document.getElementById("start").innerHTML if (button == "Submit") { document.getElementById("helloWorld").innerHTML = "texte2" document.getElementById("start").innerHTML = "Suivant" } else {
document.getElementById("helloWorld").innerHTML = "texte" document.getElementById("start").innerHTML = "Suivant" }}
css :
.typed-out{
overflow: hidden;
border-right: .15em solid orange;
white-space: nowrap;
font-size: 1.6rem;
width: 0;
animation: typing 1s forwards;}
@keyframes
typing {
from { width: 0 }
to { width: 100% } }
Merci à tous ça m'aiderait de fou 🙌
le code est si vieux 😮
bonsoir tous le monde apres 4/5h de code pour un bot discord (je début vraiment dans le javascript) enfin fini le code sauf qu'il me donne une erreur help please
setDisable n'est pas reconnu dans pagination
D'accord je vais devoir regardé se que j'ai oublié d écrire
Ducoup sa veut dire que je dois nommé setDisable où autre ?
ah 😅 j'avais pas vue
Bonjour quelqu'un pourrait m'aider, sa met une erreur
Mais tu sais lire l'erreur ?
Tu as juste oublié une virgule dans la liste
Merci je vais regarder.
voici son code https://github.com/sandeep1995/pingo. Aurez vous sinon un tutoriel pour faire un auto updater qui a une version récente ?
Avec une simple recherche Google je tombe dessus : https://www.electronjs.org/fr/docs/latest/tutorial/updates
Il y a plusieurs méthodes pour mettre à jour une application Electron. La plus simple et qui est officiellement pris en charge est de tirer parti du framework intégré Squirrel et du module autoUpdater d’Electron.
Merci, je vais voir si j'y arrive
Je suis bloqué, j'ai chois Nuts comme serveur de mise à jour car il prend en charge les dépôts privés. Mais quand je fais $ export PORT=6000 ou export PORT=6000 la console me dis que l'argument $ ou export n'est pas reconnu comme nom d'applet de commande. Pourquoi ?
T’as oublié une virgule à la fin de la ligne 5 🙃
Question comment puije supprimer tous les rôles d'un user discord js v14?
Tu recupere tout les rôles du user dans une liste puisbtu suprime les rôles du user grace a la liste
oui mais comment
car j'arrive pas
Il y a une coupure avec l'API si je me trompe pas
Tu envoies un tableau vide quand tu modifies un utilisateur
Question on peut bien utilier php avec react grace a une api ?
heins
mec enfait j'ai pas idée
att je test
un truc
t'aurait un exemple?
const discord = require("discord.js");
const db = require("quick.db")
module.exports = async(client, message, member) => {
var welcome = await db.fetch(`welcome_${message.guild.id}`)
if (welcome == null) return
if (welcome !== null) client.channels.cache.get(welcome).send(`${member.user.tag}`)
}```
quelqu’un saurait ?
Vu que tu utilises un module export je suppose que c'est une commande exportée et utilisée par une fonction principale, vérifie le passage de l'attribut member, dans ton message d'erreur est indiquée comme étant undefined. L'erreur vient probablement à l'appel de cet export.
j’utilise ça donc je vois pas où je pourrais glisser ça
Le problème est bien présent pourtant, ton module contient les attributs client, message et member soit 3 attributs. Mais au moment de ton appel à ce module tu ne passe que 2 attributs, member est donc inexistant dans ton module et lève une erreur
Bonjour, je suis cette doc (https://www.electronjs.org/fr/docs/latest/tutorial/updates) pour faire un auto updater, j'ai donc choisis nuts comme serveur de mise à jour car mon répertoire est en privé. Je suis donc leur doc (https://nuts.gitbook.com/deploy.html) afin de mettre en place leur serveur mais quand je fais export PORT=6000 j'ai ceci export : Le terme «export» n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou programme exécutable. que dois-je faire ?
Bonjour, désolé de vous déranger, je ne sais pas si c'est le meilleur salon pour mais voila, j'ai coder un site en react.js et j'ai une api en back end relier a se site. une fois le dev fini, c'est l'heure de la mise en prod !!, or je ne sais pas encore relier tout ça avec un nom de domaine etc, j'ai donc décider de demander de l'aide a un ami, et cet a fichu un peu la pagaille, il m'a setup nginx et a relier mon site et mon api a mon nom de domaine. Or le petit problème c'est qu'il a relier l'api et le front sur le meme port donc plus rien de fonctionne, il m'a donc dit de modifier dans mon code par MONPI:MONPORT, mais meme comme ca, cela ne fonctionne pas, j'ai une erreur qui s'affiche : cannot GET /
est ce que quelqu'un serait comment corriger ca ? merci par avance
Les commande que tu vois c'est probablement pour du Linux.
Donc avec powershell, c'est différent
Sinon, si tu veux lancer des commande Linux, tu peux installer WSL ( window subsystem Linux)
Dans le powershell tu tape:
wsl --install
En mode administrateur bien sur
Merci du conseil
une fois installé je fais quoi ?
Tu as accès à un Linux en tapant WSL dans le terminal
Bonsoir, des utilisateurs de la bibliothèque Lenis ? Svp
quelqu'un sais si c'est possible de faire un compteur de phrase ? je m'explique un script qui permettrez de compter le nombre de phrase dans un fichier
a j'avais pas penser a ça
ouais jpense que sa pourrai marcher
@inland ocean
y a t'il de la documentation pour ça ?
Tu peux utiliser.split
Cet article expliquera comment compter le nombre total d'occurrences d'un caractère dans une chaîne avec JavaScript... Les expressions régulières sont souvent utilisées en JavaScript pour faire correspondre un texte avec un motif.
Y’a plein de technique différentes à toi de voir laquelle est la plus optimale et optimisée
ok merci
merci beaucoup !
Bonjour, je suis cette doc (https://nuts.gitbook.com/deploy.html) l'API_USERNAME et l'API_PASSEWORD je l'obtient où ?
Il faut que tu t'inscrit
Hello, j'ai un p'tit problème dans lequel je bloque, j'avoue que j'ai une petite colle...
Alors, le problème c'est que dans le code ci-dessous, la boucle for, ne fait que un tour au lieu de 2 tours qu'il devrait faire (car il y a deux éléments dans le guilds), donc la suite du code ne s'exécute et ne renvoie aucune erreur...
Merci de votre aide !
for(const guild of guilds) {
let isPremium = await bot.db.isGuildPremium(guild)
if(isPremium !== false) return;
return options.push({label: bot.guilds.cache.get(guild).name, value: guild})
}```
comment tu peut etre sur que la boucle ne fait que 1 tours au lieu de 2.
pour en etre sur, tu peux placer un vulgaire console.log() et voir la console. tu aura le coeur net
mais tu fais un return dans une boucle for ?
un return met fin à une fonction. donc forcément la boucle est interrompu ( sauf erreur )
tu peut faire voir le reste de ta fonction ?
J'ai fais un console log, et ça log qu'un seul truc, c'est pour ça que je suis sûr
Le isPremium renvoie true, false ou undefined
Mais a forcément besoin d'un await
jprécise que le console log a été déplacé avant la déclaration du isPremium)
bonsoir, pourquoi cette erreur ?
pouvez vous m'aider ? https://i.imgur.com/MnmAA6P.png
Bonsoir je voudrai faire un compteur de phrase / de . Pour mon serveur et on m'a parlé occurence je me suis renseigné mais j'avoue j'ai pas très bien compris comment cela marché et comment je pourrais l'utiliser quelqu'un pour m'expliquer ( je suis un grands débutant )
un compteur de phrase ?
d'accord merci
Ou de point JSP le quelle est possible
bah tu peux faire par des points oui
Un compteur de points et des autres signes de ponctuation
d'accords peut tu m'expliquer comment cela marche ?
en js c'est simple tu peux split par character
donc si tu fais un split('.') il va te sortir un array de ce que tu veux
ok
Il faut penser aux autres fins de phrases que les points
je vais regarder sa
Qui a un hébergeur de bot discord replit
Bonsoir, quelqu'un peut m'aider s.v.p, en gros, je suis en train de faire un système d'auto-rôle avec discordjs, mais l'auto-rôle me retourne Échec de l'interaction. J'ai utilisé cela pour que le rôle soit ajouté, mais ça ne fonctionne pas :
if(member.roles.cache.has("1029086504519204934")) {
member.roles.remove("1029086504519204934")
} else {
member.roles.add("1029086504519204934")
}
Merci d'avoir lu et n'hésitez surtout pas à me ping si vous avez une quelconque réponse.
Hello,
Est-ce que ton bot est admin sur ton serveur ? C'est peut-être lié à un problème de permission
Salut, oui il l'est
J'ai vérifié sur la doc tu appelles pourtant les bonnes méthodes et propriétés de member, tu passes les IDs en string ce qui est bon aussi
Je vais tester rapidement si j'ai du temps avant 12h
okay merci, tu m'en diras des nouvelles dans ce cas 😉
et prends ton temps, si tu n'as pas le temps, t'inquiètes, c'est pas pressant
Il faut renvoyé une réponse à la fin de l’interaction
Et ton bot doit être au dessus des autres rôles
J'avoue que je ne comprend pas trop l'envoie de réponse à la fin de l'interaction
https://discordjs.guide/popular-topics/faq.html#how-do-i-add-a-role-to-a-guild-member
okay, je vais regarder tout cela dès que je rentre chez moi. Merci, je vous donnerai des nouvelles 👌
Bah si il n’y a pas de reply ca renvois obligatoirement interaction échoué
Enfin c’est mon cas
j'avais mis ça pour le reply :
await interaction.reply({ embeds: [EmbedSelfRole], ephemeral: true });
const EmbedSuccessRoleAdd = new EmbedBuilder()
.setColor(bot.color)
.setDescription(
`✅ Le rôle <@&1029086504519204934> vous a bien été ajouté !`
);
await interaction.followUp({
embeds: [EmbedSuccessRoleAdd],
ephemeral: true,
});
}```
J'ai fait la même chose là, mais je sais pas ce que je dois mettre au lieu du "target"...
La doc est la suivante, avec un type string c'est probablement son ID
Salut, j'aimerais telecharger un fichier en js depuis une url mais je sais pas comment faire
tu crees un glob
tu fetch les contents
tu check le mime
tu copie dans le glob
et tu ouvre le glob
blob !
J'ai fait ça pour un fichier que je récupère d'une API en local
fetch(url)
.then(resp => {
return resp.blob();
}).then(blob => {
if (blob != null) {
var a = document.createElement("a");
a.href = window.URL.createObjectURL(blob)
a.download = "file_name"
a.click();
}}).catch(err => {
console.error(err);
});
Et comment tu choisis le chemin ou mettre le fichier ?
ahh mais enfaite je suis sur un serveur express j'ai oublié de precisé :/
donc je peux pas avec document il me semble
Hey j'aimerais savoir comment je peux faire pour changer la valeur d'une variable css dans un script js
Variable CSS
c'est quoi le mime?
un zip je crois
Le type Multipurpose Internet Mail Extensions (type MIME) est un standard permettant d'indiquer la nature et le format d'un document. Il est défini au sein de la RFC 6838. L'Internet Assigned Numbers Authority (IANA) est l'organisme officiel responsable du suivi de l'ensemble des types MIME officiels existants. Une liste exhaustive et maintenue ...
Non, c'est pas un zip. Je ne pense pas
en gros je vais sur un lien pour telecharger, et quand j'essaye depuis le navigateur du coup c'est un .zip
je connais pas du tout comment je peux reconnaitre enfaite
Au lieu de demander, pose le problème ?
Vu si tu demande un expect VueJS tu limite les réponse.
En React il y a les state. Pour VueJS ça doit être similaire à mon avis
tu sais pas comment je peux faire du coup ?
Tu as ça ou ?
Bonsoir ! j'aimerais crée un bot avec comme utilité 'Rocket League Tracker'
sauf que le problème qui s'expose à moi, c'est l'utilisation de l'API.
Je ne comprends pas comment le mettre en fonctionnement..
Bonjour j'ai fait un hook personnalisé pour envoyer des données en post
const useFetchData=<DataRes>()=>{
const [res, setRes] = React.useState<resInterface|DataRes>({data: null,error:null,isLoading:false});
const callAPI = (url:string, headers:object, payload:object):void => {
setRes(prevState => ({...prevState, isLoading: true}));
axios.post(url,payload).then(res => {
console.log("res:" , res)
setRes({data: res.data, isLoading: false, error: null});
}).catch((error) => {
console.log("error : =>", error)
setRes({data: null, isLoading: false, error});
})
}
return [callAPI,res] as const;
}
export default useFetchData
et je l'utilise comme ceci
const HandleSubmit = (e: React.MouseEvent<HTMLButtonElement>) => {
console.log("f")
callApi(Routes.LOGIN,{},user)
console.log(res.error)
}
seulement j'ai un soucis les données sont bien à jour .... mais je dois attendre le rerender de ma page pour recupere les state changés dans le hooks seulement j'en ai besoin dans l'action du click pour rediriger l'utilisateur si la reponse a un code 200 ....
Merci
J'ai trouvé, c'etait bien un zip mais je suis bete je devais juste l'extraire
J'ai une question, je dois effectuer un code une fois une partie finis, mais je peux pas utiliser .then je peux faire comment ?
Salut, qu'est ce que tu comprends pas ?
Salut, as-tu un code pour nous aider ?
Remplit est déjà un hébergement
Bonjour, je suis cette doc (https://www.electronjs.org/fr/docs/latest/tutorial/updates) et il faut que je mette l'url de mon site de déploiement, const server = 'https://your-deployment-url.com', j'ai choisis Nuts. Je dois mettre quelle url ?
Il y a plusieurs méthodes pour mettre à jour une application Electron. La plus simple et qui est officiellement pris en charge est de tirer parti du framework intégré Squirrel et du module autoUpdater d’Electron.
Enfaite, je sais pas comment mettre l'api..
pcq ils disent de mettre une ligne, mais ou et comment ?
Salut ! Je débute en Js et je voulais faire en sorte que quand j'appuie sur un bouton un bout de code html se créer pour rajouter des boutons ou du texte
Je sais pas si c'est possible
Le but c'est que quand j'appuie sur du texte il rajoute un autre texte avec des autres boutons etc...
Oui, c'est possible ! C'est de la manipulation du DOM
En Javascript, tu peux récupérer les élément de ton HTML ( les balise)
Puis les modifier.
Oui, bon autant le récupéré directement via la méthode
document.getElementById()
Si ton élément a un id que de partir et te casser la tête en partant du document.
Cette méthode te donne un object élément qui correspond à la Balise html.
j'avoue
qql a un code pour bot discord ticket
Y'a des tutos youtube pour ça 😉
okay nice si ya des tutos
Salut tout le monde , j'espere que vous allez bien :: svp j'ai un soucis, je commence nodejs mais j'ai pas la suggestion de code comme les mecs du tuto. J'aimerais savoir si il y'a un moyen de changer ça, et comment le faire!!Merci d'avance ps: j'utilise vs code
Montre la video et précise ton éditeur de code
Il l'as dis, c'est VSC
Fais CTRL + ESPACE
node:events:491
throw er; // Unhandled 'error' event
^
TypeError: Cannot read properties of undefined (reading 'commands')
at Client.<anonymous> (/home/container/index.js:72:51)
at Client.emit (node:events:513:28)
at WebSocketManager.triggerClientReady (/home/container/node_modules/discord.js/src/client/websocket/WebSocketManager.js:385:17)
at WebSocketManager.checkShardsReady (/home/container/node_modules/discord.js/src/client/websocket/WebSocketManager.js:368:10)
at WebSocketShard.<anonymous> (/home/container/node_modules/discord.js/src/client/websocket/WebSocketManager.js:194:14)
at WebSocketShard.emit (node:events:513:28)
at WebSocketShard.checkReady (/home/container/node_modules/discord.js/src/client/websocket/WebSocketShard.js:511:12)
at WebSocketShard.onPacket (/home/container/node_modules/discord.js/src/client/websocket/WebSocketShard.js:483:16)
at WebSocketShard.onMessage (/home/container/node_modules/discord.js/src/client/websocket/WebSocketShard.js:320:10)
at WebSocket.onMessage (/home/container/node_modules/ws/lib/event-target.js:199:18)
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 v18.12.0
J'ai cette erreur
mais je comprends pas le soucis en sachant que j'ai bien invité mon bot en cochant la case
Sûrement que le client est undefined ¯_(ツ)_/¯
bah là il est defini
Yep mais à l’endroit du .commands non
déjà je sais pas ou il est le .commands :(
Ou alors le .get() ne renvoie rien
T’as un code mais tu sais pas où se trouve le .commands..
C’est marqué dans l’erreur
Je dis ça je dis rien 👀
index.js ligne 72
ah j'ai compris
oui tkt
j'avais pas capté
je l'ai fait ya 2 semaine le bot ducoup bah
et @glass cargo comment je peux créer deux commandes en même temps dans mon .commands ?
prsk j'ai essayé le .commands.create(thumbnail, announce, announcement) mais ça marche pas
ah bah si
jsp pourquoi ça marchais pas
:method: ApplicationCommandManager#set()
Sets all the commands for this application or guild.
@last lance :)
Dans la fonction, tu mets un object avec toutes les données de toutes tes commandes
.set() remplace les anciennes données par celles que tu vas indiquer. Donc en plus, pas besoin de ton bout de code en commentaire pour supprimer celles qui ne vont pas :)
je fais un tableau de valeurs avec toutes les commandes ?
j'ai pas compris
Bonjour, je suis cette doc (https://www.electronjs.org/fr/docs/latest/tutorial/updates) et il faut que je mette l'url de mon site de déploiement, const server = 'https://your-deployment-url.com', j'ai choisis Nuts. Je dois mettre quelle url ?
Il y a plusieurs méthodes pour mettre à jour une application Electron. La plus simple et qui est officiellement pris en charge est de tirer parti du framework intégré Squirrel et du module autoUpdater d’Electron.
salut
je suis en train de regarder la video crée un bot discord
quand je démarre de le debogage il y a une erreur dans mon terminal
quelqu'un pourrais m'aider svp ?
Hey,
J'ai un problème avec les slashs commands. Et je n'arrive pas à comprendre d'où vient l'erreur
Merci d'avance de vos réponses
hey est ce que vous savez comment je peut récupérer les roles d'un membre pour els afficher en djs?
Montre nous toutes l'erreur
Dans quel contexte ? Une commande ?
oep une commande user info
Si c'est une slash command tu peux faire un command.member.roles.cache pour avoir la liste des rôles
En partant du principe que command est l'objet que tu recois quand la commande est exécuté
l'objet que je recoit?
let user
if(args.getUser('membre')) {
user = args.getUser('membre')
if(!user || !message.guild.members.cache.get(user?.id)) return message.reply("je ne trouve pas le membre")
} else user = message.user
const member = await message.guild.members.cache.get(user.id)
const user_embed = new Discord.EmbedBuilder()
.setColor(bot.color)
//.setAuthor(user.avatarUrl({dynamic: true}))
.setTimestamp()
.setImage(user.displayAvatarURL({dynamic: true}))
.setTitle(`Informations de ${user.tag}`)
.addFields([
{name: "**ID :**", value: user.id},
{name: "**Date de création du compte :**", value: `<t:${Math.round(user.createdTimestamp / 1000)}:F>`},
{name: "**A rejoint le serveur le :**", value: `<t:${Math.round(member.joinedTimestamp)}:F>`},
{name: "**Roles :**", value: `${member.roles.cache}`}
])```
Uncaught ExpectedConstraintError Error: Invalid string format
at BaseError (c:\Users\guigu\OneDrive\Documents\Personnel\Bot Dioxy\node_modules\@sapphire\shapeshift\dist\index.js:174:17)
at BaseConstraintError (c:\Users\guigu\OneDrive\Documents\Personnel\Bot Dioxy\node_modules\@sapphire\shapeshift\dist\index.js:185:5)
at ExpectedConstraintError (c:\Users\guigu\OneDrive\Documents\Personnel\Bot Dioxy\node_modules\@sapphire\shapeshift\dist\index.js:195:5)
at run (c:\Users\guigu\OneDrive\Documents\Personnel\Bot Dioxy\node_modules\@sapphire\shapeshift\dist\index.js:1564:64)
at <anonymous> (c:\Users\guigu\OneDrive\Documents\Personnel\Bot Dioxy\node_modules\@sapphire\shapeshift\dist\index.js:142:66)
at parse (c:\Users\guigu\OneDrive\Documents\Personnel\Bot Dioxy\node_modules\@sapphire\shapeshift\dist\index.js:142:29)
at validateName (c:\Users\guigu\OneDrive\Documents\Personnel\Bot Dioxy\node_modules\@discordjs\builders\dist\interactions\slashCommands\Assertions.cjs:11:17)
at setName (c:\Users\guigu\OneDrive\Documents\Personnel\Bot Dioxy\node_modules\@discordjs\builders\dist\interactions\slashCommands\mixins\NameAndDescription.cjs:9:16)
at <anonymous> (c:\Users\guigu\OneDrive\Documents\Personnel\Bot Dioxy\index.js:76:16)
at _sharedAddOptionMethod (c:\Users\guigu\OneDrive\Documents\Personnel\Bot Dioxy\node_modules\@discordjs\builders\dist\interactions\slashCommands\mixins\SharedSlashCommandOptions.cjs:47:50)
at addStringOption (c:\Users\guigu\OneDrive\Documents\Personnel\Bot Dioxy\node_modules\@discordjs\builders\dist\interactions\slashCommands\mixins\SharedSlashCommandOptions.cjs:36:17)
at Addcommands (c:\Users\guigu\OneDrive\Documents\Personnel\Bot Dioxy\index.js:75:12)
at <anonymous> (c:\Users\guigu\OneDrive\Documents\Personnel\Bot Dioxy\index.js:35:9)
Process exited with code 1
prcq sa sa me renvoie [object Map]
zaros en pls mdr
Car comme je t'ai dit, member.roles.cache renvoie une liste (aka collection) donc tu dois parcourir la liste pour traiter les rôles 1 à 1
et comment je peut la parcourrir?
C'est toi qui a fais le reste du bot ?
Tu sais comment faire une boucle ? 👀
Go essayer par toi même alors 💪
lets go en plus jvai devoir aller dormir
bon jferai sa demain
merci bcp
pour le nombre de fois que sa sera executé je peut faire un member.roles.length?
sans les options ta commande s'enregistre bien ou pas ?
Sans le i.name oui mais avec non
member.roles.cache.size*
Si tu veux voir toutes les fonctions que tu peux appeler sur member.roles.cache : https://discord.js.org/#/docs/collection/main/class/Collection
Comment ca sans le i.name ??
Quel get ?
member.roles.cache.get()
Ca c'est pour get un seul rôle, en fonction de comment tu vas t'y prendre, peut-être que tu vas l'utiliser
Tu peux faire sans aussi
Mais c'est pas une obligation 👌
ba ma boucle je la met dans quoi dcp?
Avant de créer ton embed par exemple
De nouveau, tout dépend comment tu vas faire 👌
Mais tu testeras demain directement dans ton code 😉
Quand dans ma table options de ma commande, je ne met pas le name ça fonctionne mais dès que je met un truc ça ne fonctionne plus et quand je met quand je met juste un setName("Test")
mon cerveau est en surchauffe mdr
au final g le droit a 15min de +
const boucle = for(let i; i < member.roles.cache.size; i++){
}```
jpeut faire un truc de ce genre?
vs code kiff pas trop mdr
Essaie avec test comme nom au lieu de Test
Il faut que tu test différentes choses, que tu poses des questions sur google aussi pour revoir des exemples de boucle, c'est comme ca que tu vas progresser 💪
Merci à toi, ça fonctionne 😉
Niquel !
ok merci beaucoup bg

je comprend pk c toi qui a la couronne
MDR
Je suis pas celui qui aide le plus, et encore moins le plus compétent 
Bon après, y a pire aussi, genre @hazy mirage
Mais on lui dira pas
hm
Qui aime bien châtie bien
Bon ici ca marche pas car on s'aime pas
Mais la phrase est cool
ohh salutt
Salut, ducoup tu as réussi ? Parce que moi aussi je cherche a faire ça
Bonsoir,
j'aurai une question, quelqu'un sait comment faire pour que lorsqu'une interaction soit déclenchée, y'ait un rôle qui soit ajouté à la personne qui a appuyé sur celle-ci svp ? Parce que ça fait plusieurs jours que je cherche, même avoir regardé la doc de djs, ça ne fonctionne pas... Merci d'avoir lu !
(N'hésitez pas à me ping si vous avez une idée)
Voici l'interactionCreate
} else if (interaction.customId === "role") {
if (interaction.values == "annonce") {
const EmbedRoles = new EmbedBuilder()
.setColor(bot.color)
.setTitle(`Auto - Rôles`)
.setDescription(
`**–––**\n\nSi vous voulez recevoir une notification lorsqu'il y a de l'activité dans le serveur, vous êtes au bon endroit.\n\nEffectivement, veuillez appuyer sur le menu ci-dessous, puis choisir les notifications qui vous conviennent le mieux !\n\nPour retirer un rôle qui ne vous plaît pas / plus, vous avez juste à ré-appuyer sur la réaction qui ne vous convient pas !\n\n**–––**`
)
.setTimestamp()
.setFooter({
text: `${bot.user.username}`,
iconURL: bot.user.displayAvatarURL({ dynamic: true }),
});
const Role = new ActionRowBuilder().addComponents(
new SelectMenuBuilder()
.setCustomId("role")
.setPlaceholder(
"Sélectionnez le rôle notification de votre choix !"
)
.addOptions(
{
label: `Annonce`,
description: `Soyez au courant de toutes les dernières annonces concernant le serveur`,
emoji: `🔔`,
value: `annonce`,
},
{
label: `Giveaway`,
description: `Soyez au courant de tous les concours qui arrivent prochainement`,
emoji: `🎁`,
value: `giveaway`,
},
{
label: `Sondage`,
description: `Soyez au courant de tous les sondages pour
l'amélioration du serveur`,
emoji: `📊`,
value: `sondage`,
},
{
label: `Partenariat`,
description: `Soyez au courant de tous nos prochains partenaires`,
emoji: `🤝`,
value: `partenariat`,
}
)
);
await interaction.deferUpdate();
await interaction.editReply({
embeds: [EmbedRoles],
components: [Role],
});
const EmbedSuccessRoleAdd = new EmbedBuilder()
.setColor(bot.color)
.setDescription(
`✅ Le rôle <@&1029086504519204934> vous a bien été ajouté !`
);
if (interaction.customId == "annonce") {
interaction.member.roles.add('1029086504519204934')
await interaction.followUp({
embeds: [EmbedSuccessRoleAdd],
ephemeral: true,
});
}
}
}
}
}
};
C'est n'imp ton code
client.on("interactionCreate", async interaction => {
if (!interaction.isButton()) return
if (interaction.customId == "annonce") {
interaction.member.roles.add('role-annonce')
} else if (interaction.customId == "giveaway") {
interaction.member.roles.add('role-giveaway')
} // etc..
})```
ah donc enfaite on m'a montré un mauvais exemple dcp...
Quand à cela, ça me met toujours Échec de l'interaction
Oui car tu ne réponds pas à l'interaction, donc même si un rôle est ajouté tu auras une erreur "Echec de l'interaction"
Ah oui pas con, je vais voir ça
Je pense que tu devrais désintaller et réinstaller NodeJS :)
ça ne fonctionne pas 😦 je sais pas si j'ai mal fait quelque chose
j'ai besoin d'aide sur la commande lock
const Discord = require('discord.js')
module.exports.run = async (bot, message, args) => {
if(!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send('Vous n\'avez pas la permission d\'utiliser cette commande !');
let channel = message.user ? message.guild.channels.cache.get(args._hoistedOptions[0].value) : (message.mentions.channels.first() || message.guild.channels.cache.get(args[0]))
if(!channel) return message.channel.send(`Veuillez mentionner un channel !`)
if(channel.permissionOverwrites.cache.get(message.guild.roles.everyone.id)?.deny.toArray(false).includes("SEND_MESSAGES")) return message.channel.send(`Ce salon est déjà lock !`)
await channel.permissionOverwrites.edit(message.guild.roles.everyone.id, {
SEND_MESSAGES: false
})
await message.channel.send(`Le salon a été lock avec succès !`)
}
module.exports.config = {
name: "lock",
}```
quand je fais +lock ça me met une erreur dans la console :
if(channel.permissionOverwrites.cache.get(message.guild.roles.everyone.id)?.deny.toArray(false).includes("SEND_MESSAGES")) return message.channel.send(`Ce salon est déjà lock !`) ^
TypeError: Cannot read properties of undefined (reading 'get')
at module.exports.run (C:\Users\DeroZzz\Desktop\Bot Discord\cmds\lock.js:10:43)
at Client.<anonymous> (C:\Users\DeroZzz\Desktop\Bot Discord\index.js:68:33)
at Client.emit (node:events:525:35)
at MessageCreateAction.handle (C:\Users\DeroZzz\Desktop\Bot Discord\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at module.exports [as MESSAGE_CREATE] (C:\Users\DeroZzz\Desktop\Bot Discord\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\DeroZzz\Desktop\Bot Discord\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (C:\Users\DeroZzz\Desktop\Bot Discord\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\DeroZzz\Desktop\Bot Discord\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\DeroZzz\Desktop\Bot Discord\node_modules\ws\lib\event-target.js:132:16)
at WebSocket.emit (node:events:513:28)```
Bonjour une personne serais m'aider pour donner un role a une personne quand elle rejoin une vocal specifique ?
Hey, comment je pourrais faire pour faire en sorte que le message de bienvenue soit tiré au sort aléatoirement selon la variable chance to get que j'ai mis dans l'objet svp ( ce sont plusieurs objets dans un array bien évidemment ) ?
En gros j'ai un message de bienvenue qui à 100% de chance d'être mit mais j'ai d'autres message avec moins de chance qui font gagner des choses ( ex : Nitro, prestations... ) qui peuvent être tiré au sort
Tiens j’ai trouvé ça, ça va sûrement t’aider: https://stackoverflow.com/a/44196624
Ouais je vois, le problème c'est que moi ça fonctionne pas vraiment comme ça, genre c'est pas 30 + 30 + 40 mais genre 100, 100, 100, 20, 1,...
Tu peux vocal que je te montre ?
Le principe ça serait de savoir à quel pour-cent tu es
Et ensuite de random tous les résultats à 100%
Enfin je ferais comme ça il y a peut être beaucoup plus simple
Oui mais genre comme j'ai des trucs à 100 et d'autres à 1 faut pas faire une approximation car si c'est 49 ce sera le 1% qui serra choisi. Tu vois où je veux en venir ?
Mais je vois comme toi tu ferais, genre une const chance aléatoire où je récupère tout un des objets avec la chance tiré.
pas besoin d'approximation, tu peux sum toutes les chances en parcourant l'array une première fois, faire un tirage dessus, puis reparcourir l'array en additionnant les chances de chaque objet au fur et à mesure jusqu'à que cette chance additionnée soit supérieure (ou égale) au nombre tiré 🤔
J'ai pas bien compris ..
Okay alors
Tu peux vocal sinon ?
nop désolé 😅
D'acc pas de soucis
Tu prends ton array, tu le parcours pour additionner toutes les chances
ex : 452
Tu génères un nombre aléatoire entre 1 et 452
ex : 311
Ensuite, tu reparcours ton array, et tu additionnes les chances de chaque objet jusqu'à qu'elle soit supérieur à ton nombre tiré
exemple :
Compteur = 0
Tirage = 311
1er - chance = 10
compteur = 10
compteur < tirage
-> on continue
2er - chance = 50
compteur = 60
3er - chance = 100
compteur = 160
4er - chance = 100
compteur = 260
5er - chance = 75
compteur = 335
compteur > tirage
-> on stoppe et on renvoie la phrase
Le truc c'est que du coup, plus tu augmentes le nombre de phrase et donc plus tu rajoutes des chances, plus la probabilité d'obtenir une phrase à 100 diminue
Donc celle d'avoir une phrase à 1 aussi dcp !
yep
Donc en soit c'est pas si mauvais 👀
oui, ça 'dilue' toutes les probabilités
okay
D'acc, j'essayes ça de suite 😉
Documentation suggestion for @keen narwhal:
:event: (event) Client#voiceStateUpdate
Emitted whenever a member changes voice state - e.g. joins/leaves a channel, mutes/unmutes.
;)
t'as réussi ? x)
Je suis encore sur mon système de ticket, j'essaye juste après x)
pas de problème x)
Re, écoutes ça à l'air de marché, je tombe jamais sur le message et quand j'ai inversé tout les 100 par 1 et le message cadeau par 100 j'avais que le message de cadeau 😄
Cool
T'as essayé de faire un test a grande échelle (genre 1 million d'essai pour voir si tu arrivais à avoir le message de cadeau quand même ?
Nop c'est selon le nombre d'objets dans mon array là 
j'ai une erreur sur mon bot musique je fait exemple /play jul wesh alor le bot et et quitte directement
et sa me met cette erreur dans
cmd
at Object.loader [as require] (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules\prism-media\src\util\loader.js:12:9)
at loadOpus (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules\prism-media\src\opus\Opus.js:17:17)
at new OpusStream (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules\prism-media\src\opus\Opus.js:46:10)
at new Encoder (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules\prism-media\src\opus\Opus.js:149:5)
at Object.transformer (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules@discordjs\voice\dist\index.js:1756:22)
at C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules@discordjs\voice\dist\index.js:1936:58
at Array.map (<anonymous>)
at createAudioResource (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules@discordjs\voice\dist\index.js:1936:39)
at DisTubeVoice.play (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules\distube\dist\core\voice\DisTubeVoice.js:162:62)
at QueueManager.playSong (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules\distube\dist\core\manager\QueueManager.js:84:25)
Unhandled 'error' event.
See: https://distube.js.org/#/docs/DisTube/stable/class/DisTube?scrollTo=e-error and https://nodejs.org/api/events.html#events_error_events
Un ptit problème here
alor je doiis faire quoi svp
Where?
La ta range est entre 0 et 800
feur
Non car le cadeau c'est 1 donc si ça tire 1 bah j'ai le cadeau 😄
Et tu peux utiliser reduce pour sum les valeurs de ton array
Oui justement
La t'as 2 / 801 chances
Fin
En gros si ton tirage est 0
Tu rajoutes une valeur artificiellement au premier obj de message
Nan 0 est inclus
Car Math.floor renvoie la valeur inferieur
Et since Math.random() e [0;1[
Tu pourras jamais avoir ta valeur supérieure
Mais la valeur inférieure oui
Donc faut que j'enlève le <= et que je mette juste < dcp en soit
Good 
J'y avais pas pensé merci
Bah
Dans ce cas la faut enlever le + 1
Car si tu tires 801 tu sortiras rien ~
T'inquiète pas x)
Pour plus de rapidité tu peux stocker en ram le nombre total de chance mais c'est pas très important, et plus simple de ne pas le faire si ces phrases sont soumises à modification
salut
jetait entrain de regarder la vidéo dev un bot discord
mais quand je start le déboggage sa me met cette erreur
quelqun pourrais m’aider ? Merci
Tu as oublié de préciser les intents
comment ça ? j’ai recopier exactement les lignes de code comme sur la vidéo
Dans ce cas ton tuto est surement trop vieux
regarde, rien ne me semble bizzard
Oui justement, ca ne se partage pas ca
ah désolé
Regarde simplement un autre tuto plus récent 👌
le tuto date d'il y a 3 mois sa dois etre moi
mais comme je debute je ne vois pas mes erreurs c'est pour ca
je suis pratiquement sure que c'est moi qui merde mais je sais pas ou
Envoie le tuto
Envoie l'erreur
il manque un s à intent
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client{(
intents: {
// ...
}
)};
les 2 ?
ligne 4
Hey est ce que vous savez comment je peut récupére le nombre de banni d'un serveur?
avec ou sans "s"?
prcq ya une version avec et une sans
merci
j'ai une erreur sur mon bot musique je fait exemple /play jul wesh alor le bot rejoin le salon vocal et quitte directement et sa me met cette erreur dans cmd
at Object.loader [as require] (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules\prism-media\src\util\loader.js:12:9)
at loadOpus (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules\prism-media\src\opus\Opus.js:17:17)
at new OpusStream (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules\prism-media\src\opus\Opus.js:46:10)
at new Encoder (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules\prism-media\src\opus\Opus.js:149:5)
at Object.transformer (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules@discordjs\voice\dist\index.js:1756:22)
at C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules@discordjs\voice\dist\index.js:1936:58
at Array.map (<anonymous>)
at createAudioResource (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules@discordjs\voice\dist\index.js:1936:39)
at DisTubeVoice.play (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules\distube\dist\core\voice\DisTubeVoice.js:162:62)
at QueueManager.playSong (C:\Users\acaly\OneDrive\Bureau\Music-bot-main\node_modules\distube\dist\core\manager\QueueManager.js:84:25)
Unhandled 'error' event.
See: https://distube.js.org/#/docs/DisTube/stable/class/DisTube?scrollTo=e-error and https://nodejs.org/api/events.html#events_error_events
@ebon flume il nous faut ton code
Et il manque le début de ton erreur, tu n'as pas tout copié
Fais npm i opusscript
Ta variable message n'existe pas, montre les autres lignes de ton fichier
ha ok; ta pas mit ton code au bon endroit, ce que tu as de la ligne 31 à 37, tu dois le mettre avant la ligne 27
ligne 32 j'ai juste rajouter un + deriere le help
quand je fais la commande +help
sa me met cette erreur
Bonsoir je veux créer un morpion en ligne avec NodeJS, Socket.io et Boostrap (lien vidéo: https://www.youtube.com/watch?v=Mct3TqiCxLY&ab_channel=Pentiminax) mais je n'arrive pas a effectuer ma commande npm install et sa me met un message d'erreur que je ne comprends pas. A savoir que je ne comprends pas non plus tout le code du package.json donc je ne sais pas si il y a des choses a modifier, quelqu'un pourrait m'aider ? bonne soirée à vous
@restive nymphTu n'as pas défini prefix
je ne sais pas comment on fait peux tu m’expliquer
car le gars dans la vidéo n’a rien mis
Salut je suis nouveau en Discord JS, je suis en discord 14 et j'aimerai modifier mon Handler Event pour au lieu d'avoir ./events/file.js avoir ./events/buttons,selectmenus,modals/file. Je ne sais pas comment faire si quelqu'un pourrait m'aider.
@restive nymph il l'as forcément fais
salut tu peut utiliser switch et case pour faire cela
ou il peut juste mettre ./events/**/${file}
ok je vais tester
J'avais déjà tester
Bien le bonjour, je suis entrain de faire une commande de LeaderBoard (DiscordJS v14):
client.db.query(`SELECT * FROM moneytable WHERE guildID = '${interaction.guild.id}'`, async(err, req) => {
if(req.length < 1) {
return interaction.reply({ content: "Aucune personne n'a de l'argent !"})
} else {
const embed = new EmbedBuilder()
.setColor(config.embedColor)
.setTitle(`LeaderBoard - ${interaction.guild.name}`)
.setDescription("test")
const memberID = req[0].memberID
for (let i = 0; i < req.length; i++) {
embed.addFields(
{ name: `${i + 1}. ${req[i].memberID}`, value: `${req[i].money}`}
)
}
return interaction.reply({ embeds: [embed]})
}
})
Donc j'aimerais savoir comment faire en sorte que sa mette dans l'ordre dans le sens (+ d'argent au - d'argent)
Merci d'avance
salut, le résultat de la requête te retournera un tableau que tu auras juste à trier. du coup, tu dois enregistrer le résultat de client.db.query() dans une variable/constante
En SQL tu peux utiliser ORDER BY
J'avais pas vu les messages, oui c'est ce que j'ai fais du coup
yo, j'ai un petit problème, j'aimerai mettre à jour mon discordjs car actuellement je l'ai en 7.0 (débian).... Des connaisseurs ?
yoo petit soucis,
`const Discord = require("discord.js");
const { SlashCommandBuilder } = require("@discordjs/builders");
const Client = new Discord.Client({
intents: [
Discord.Intents.FLAGS.GUILDS,
Discord.Intents.FLAGS.GUILD_MESSAGES
]
});
const data = new SlashCommandBuilder()
.setName("ping")
.setDescription("pong");
.addUserOption(option => option
.setName("utilisateur")
.setDescription("utilisateur que vous souhaitez mentionner")
.setRequired(false));
Client.on("ready", () => {
// Client.application.commands.create(data);
Client.guilds.cache.get("1041809873307959369").commands.create(data);
console.log("bot opérationnel");
});
Client.on("interactionCreate", interaction => {
if(interaction.isCommand()){
if(interaction.commandName === "ping"){
interaction.reply("pong");
}
}
});
Client.login("")`
--> quand je le start
j'arrive pas a start mon bot 
& node qui est en v12....
Bonjour, comment puis-je mettre une icone à mon application electronjs et dans mon BrowserWindow ?
Si tu regarde la doc BrowserWindow peut prendre plein d'option donc celle de l'icone
Crée et gére les fenêtres navigateur.
Bonjour, j'ai fait mon site internet qui est à peu près good (je vais continuer de l'opti) et je souhaite que lorsqu'un nouvel article est posté, dans un channel de mon discord, un bot ou un webhook envoie directement l'article pour en faire part aux autres membres. Seulement je ne sais pas trop comment m'y prendre, quelqu'un aurait des suggestions. (Mon site est réalisé avec nuxtjs pour le front (framework vue) et express pour le back)
Tu peux regarder les params que prends un webhook
Et faire une requête post via ton back
Okok je vais voir
C'est simplement de la même structure qu'un message discord (si tu as déjà fais du discordjs)
Tu peux reprendre directement la lib, elle fait 90% du boulot à ta place
J'ai mon bot hébergé du coup oui
Je mets la lib dans mon projet quoi?
Tu peux oui, sur la partie back du coup
T'aura juste à créer l'instance webhook et à .send un message (classique ou embed)
ok je vais voir ça
mon back est en express
@past nimbus sinon je ne peux juste pas créer une route qui post l'info à l'url du webhook?
sans utiliser discord.js dans le back
Bah si l'objectif est de send un message Discord lorsqu'un article est publié, dans ton article.service tu déclenche ton module discord-webhook pour send le message
Sachant que ton article.service lui est call normalement sur ta route de publication d'article
Pas besoin d'une route supplémentaire, ou bien j'ai pas compris la question ?
ah oui okok je vais voir merci
icon: '/Logo_Zikaa_Rond.png', déjà mis mais cela ne marche pas. J'ai l'icone de base de electron.
Tien sa va t'aider https://www.electronjs.org/de/docs/latest/api/native-image
Create tray, dock, and application icons using PNG or JPG files.
Faut tray l'image avant
Puis tu la met dans le paametre icon
Merci ça marche ! :)
J'aurais une autre question. Est ce que vous aurez un tutoriel pour faire un auto updater avec nucleus ou nuts ou encore hazel?
quelqu'un ?
Utilise ton gestionnaire de package
je ne m'y connais pas du tout
j'aimerais update mon node qui est en v12 & discord en v7
Il y a un début à tout
c'est pour ca que j'écris ici
Pourquoi tu veux l'update ?
pour mon bot discord, il ne se run pas a cause des trop vielles version obsolète
https://docs.npmjs.com/updating-packages-downloaded-from-the-registry pour mettre à jour ton package
niquel je vais test ca, je te dit
re, mon node s'est mit en V14 alors que je le voulait en V18.
Pour discordjs, voici ce que sa m'affiche quand je fais npm discordjs -v
ERROR: npm v9.1.1 is known not to run on Node.js v14.1.0. You'll need to upgrade
to a newer Node.js version in order to use this version of npm. This version of
npm supports the following node versions: `^14.17.0 || ^16.13.0 || >=18.0.0`. You
can find the latest version at https://nodejs.org/.
ERROR:
/usr/local/lib/node_modules/npm/node_modules/hosted-git-info/lib/index.js:63
#fill (template, opts) {
^
SyntaxError: Unexpected token '('
at Object.compileFunction (vm.js:344:18)
at wrapSafe (internal/modules/cjs/loader.js:1106:15)
at Module._compile (internal/modules/cjs/loader.js:1140:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1196:10)
at Module.load (internal/modules/cjs/loader.js:1040:32)
at Function.Module._load (internal/modules/cjs/loader.js:929:14)
at Module.require (internal/modules/cjs/loader.js:1080:19)
at require (internal/modules/cjs/helpers.js:72:18)
at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-package-arg/lib/npa.js:7:19)
at Module._compile (internal/modules/cjs/loader.js:1176:30)
root@po ~ $
ben tu upgrade node
c'est possible d'avoir la commande ?
v14
oui
Tu peux utiliser NVM pour installer des nouvelles versions de Node et changer de l'une à l'autre facilement
By the end of this tutorial, you should be able to install the nvm command and use it to manage different versions of Node.js on a single environment.
hey est ce que vous savez pourquoi l'unix timestamp ne fonctionne pas?
Hello !
Des recommandations pour une librairie Node pour modifier une image dans le code ?
Le besoin serait de récup une image via le web et la modifier
J'ai trouvé @napi-rs/canva mais pas l'impression qu'on puisse load une URL
Rajouter du texte
Un canva directement je pense
Et si tu veux utiliser une lib, tu as Jimp qui est cool
Mais je sais pas si ils proposent ce que tu cherches exactement
J'regarde
Oue je vois, peut-être un peu lourd comme package pour ce dont j'ai besoin
Canva du coup
dcp svp
Il faut que tu mette un Date.now() et non un Date()
Bonsoir,
Lorsque je veux créer une nouvelle commande en / cmd, je refais la const data mais cependant lorsque je refais cette constante, le data se souligne comme etant une erreur. Pouvez vous m'aider svp
Qu’est-ce que te dit vsc ?
mais c la date de creation du serveur
Faut pas définir data ?
Il est en train de le définir :)
ha oui 
Tu as déjà créé une autre variable qui s’appelle data :)
Alors il faut que tu convertisse la date en un timestamp (avec moment par exemple)
oui mais quand je met tt ma commande pour "clear" ca me souligne mon client mdr
euuuuuu
comment je peut faire?
Je me suis corrigé x)
Mais est ce que const c'est la meme chose que var ?
Oui
c quoi moment meme?
Un module npm
Et dcp ma commande pour clear je l'a met a l'endroit ou j'ai defini data auparavant ?
<t:${moment(${guild.createdAt}).format("x")}:d>``` de mémoire 👀
Tu change le nom de ta variable 🙃
de ma nouvelle ?
Ouaip
Le problème là, c’est que tu as 2 variables qui ont le même nom ^^
Donc il suffit de leur donner des noms différents ;)
Donc a chaque fois que je veux faire une nouvelle comannde differente je dois trouver un nouveau nom ?
