#javascript-typescript
1 messages · Page 114 of 1
ok thanks
Dans l'index.js :
// Initialisation du cache des invitations
const invites = new Collection();
// Passe en revue toutes les guildes
client.guilds.cache.forEach(async (guild) => {
// Récupére toutes les invitations de guilde
const firstInvites = await guild.invites.fetch();
// Définis la clé comme l'ID de la guilde, et créez une carte qui contient le code d'invitation et le nombre d'utilisations.
invites.set(guild.id, new Collection(firstInvites.map((invite) => [invite.code, invite.uses])));
});
module.export.invites = invites;
Erreur :
^
TypeError: Cannot set properties of undefined (setting 'invites')```
j'ai oublié le s ..
module.exports
oui voilla ^^
ça marche du coup ?
moi ça marche tjrs pas mais la j'arrête pour aujourd'hui
merci de l'aide
t'abandonne ?
non juste je pars en voiture
ah ok
pour tte la soirée
^
TypeError: invites.get is not a function```
Voici le bout de code dans guildMemberAdd.js :
```js
invites = require('../../index.js');
const newInvites = await member.guild.invites.fetch()
const oldInvites = invites.get(member.guild.id);
const invite = newInvites.find(i => i.uses > oldInvites.get(i.code));
const inviter = await client.users.fetch(invite.inviter.id);
context.fillText(`#${member.invite.inviter}`, canvas.width / 2.5, canvas.height / 1.8)
mais demain je m'y remets
console.log(invites) ?
je vais test oui
{ invites: Collection(0) [Map] {} }
Essaye invites.invites.
invites.invites = require(../../index.js);
?
Ouais c'est ça.
^
TypeError: Cannot read properties of undefined (reading 'get')```
Remontre le code en entier stp.
invites = require('../../index.js');
const newInvites = await member.guild.invites.fetch()
const oldInvites = invites.invites.get(member.guild.id);
const invite = newInvites.find(i => i.uses > oldInvites.get(i.code));
const inviter = await client.users.fetch(invite.inviter.id);
context.fillText(`#${member.invite.inviter}`, canvas.width / 2.5, canvas.height / 1.8)
Mets direct oldInvites voir.
Comment ça ?
const invite = newInvites.find(i => i.uses > oldInvites);
Met ça voir.
Mtn c'est inviter haha ^^
^
TypeError: Cannot read properties of undefined (reading 'inviter')```
Oki je vois
console.log(inviter) => { invites: Collection(0) [Map] {} }
Essaye de console.log oldInvites pour voir.
oki
la console donne :
undefined
Visiblement il trouve rien.
remettre oldInvites.get(i.code) puis un console.log
ptetre
ça changera pas car si c'est undefined
En faites c'est comme si il trouvait aucune invitation pour le serveur.
Si tu console.log(member.guilld.id ça te mets quoi ?
990588372718325780
L'ID de la personne qui join
C'est l'id de la personne qui join ?
ID de la guild pardon !
C'est surement dans l'enregistrement dans index.js qui va pas.
const invites = new Collection();
client.guilds.cache.forEach(async (guild) => {
const firstInvites = await guild.invites.fetch();
invites.set(guild.id, new Collection(firstInvites.map((invite) => [invite.code, invite.uses])));
});
module.exports = invites;```
Tu veux faire quoi @gentle zinc ?
Hello ! Mettre le nom de la personne qui join sur le canvas avec un fillText
Et ça coince où ?
Sur l'event guildMemberAdd il ne trouve pas oldInvites il dis qu'il est indéfini
invites = require('../../index.js');
const newInvites = await member.guild.invites.fetch()
const oldInvites = invites.invites.get(member.guild.id);
const invite = newInvites.find(i => i.uses > oldInvites.get(i.code));
const inviter = await client.users.fetch(invite.inviter.id);
context.fillText(`#${member.invite.inviter}`, canvas.width / 2.5, canvas.height / 1.8)
Tu veux juste mettre le nom de la personne qui a rejoint ?
Oui puis par la suite mettre le nombre d'invitation pour pouvoir faire un inviteTrackers à pars mais la oui juste le nom de la personne qui a invité le membre en question
client.on("guildMemberAdd", (member) => {
ctx.fillText(`#${member.user.tag}`, canvas.width / 2.5, canvas.height / 1.8);
});
Ca marche pas ça ?
Oui mais ça c'est le nom de la personne qui a joint exact mais on cherche a avoir le nom de la personne qui l'a invité en gros
Bah donc ne me dis pas que c'est le nom de la personne qui a rejoint 
Ok bon
T'es en quelle version de discord.js ?
Tu ne peux pas récupérer l'invitation qui a été utilisé par le membre visiblement
Donc il faut aller faire ça manuellement c'est un peu pourri
On a suivi ce lien :
compatible v.13
Ouais donc c'est un peu pourri c'est bien ce qu'il me semblait
Il fout toutes les invitations dans une liste
Et dès qu'un joueur rejoint, il regarde quelle invitation a eu un membre en plus
Et donc il conclut que cela vient de là
Bah copie/colle le code directement au pire non ?
J'ai fait exactement comme lui sauf que moi j'ai pas tout mis dans l'index.
J'ai des dossiers events donc j'utilise aussi module.exports
pour inviteCreate, inviteDelete, guildCreate, guildDelete etc .. et a chaque fois je fais le module.exports
Donc la ça serais peut etre dans l'event inviteCreate
InviteCreate.js :
invites = require('../../index.js');
module.exports = {
name: 'inviteCreate',
once: false,
execute(client, invite) {
// Mise à jour du cache sur les nouvelles invitations
invites.get(invite.guild.id).set(invite.code, invite.uses);
}
}```
InviteDelete.js :
```js
invites = require('../../index.js');
module.exports = {
name: 'inviteDelete',
once: false,
execute(client, invite) {
// Supprimer l'invitation du cache
invites.get(invite.guild.id).delete(invite.code);
}
}```
@copper pagoda ici du coup faut ajouter le parametre invite :
module.exports = {
name: 'guildMemberAdd',
once: false,
async execute(client, member)
Ouais excuse moi j'avais rdv.
Du coup ouais tu dois pouvoir récupérer invites et après get avec l'id du guild.
Dans l'index, faut bien mettre const invites ? car sur le lien il met const car il l'utilise dans l'index uniqument ... alors ici faudrais pas mettre var invites plutot
ça change rien dans ce cas là.
ah
Salut je cherche un truc pour désactiver mon anti link avec une commande comme +antilink off et +antilink on 🙂
Si quelqu'un peut m'orienter sa serait avec grand plaisir ! ( DISCORD JS V13 )
j'ai réussi un truc je crois
avec un console.log('oldInvites') maintenant j'ai ça
Oki.
Collection(2) [Map] { 'RTScrZMyew' => 10, 'VssApEgK' => 0 }```
Ok maintenant tu peux get du coup comme sur le lien avec i.code
Perso j'y ai fait avec des Collection.
context.fillText(${member.invite.inviter.id}, canvas.width / 2.5, canvas.height / 1.8)
^
TypeError: Cannot read properties of undefined (reading 'inviter')
Faut enlever le parametre member ici ?
ah bah oui, il a pas besoin de member
bon bah ok j'ai réussi, enfaite dans l'index, il fallait tout mettre dans la fonction ready
Merci pour toute votre aide 
Désolé de pas t'avoir répondu mais visiblement tu as trouvé tout seul bien 😉 et de rien;
Bonsoir, je débute dans le code donc je ne m'y connais pas du tout.
Mais je ne trouve pas le bouton exécuter, je suis donc allé dans l'onglet exécuter et déboguer mais je n'ai toujours rien trouvé. Je vous mets un petit screen de mon écran. (Le token est déjà reset parce que je sais qu'il ne faut pas le montrer.
Désolé si ça peut paraître bête comme question mais je suis vraiment débutant.
Salut, si tu fais node index.js ou node . ça ne marche pas ?
Bonsoir tout le monde ! Je suis face à un problème, en gros je suis en pleine création d'un système d'exploitation pour m'entrainer au BackEnd mais là je suis bloqué, en gros pour les fenêtres, en gros je voudrais que seulement le banner de la page qui s'ouvre puissent être drag&drop et que la page entière suive la banner, une idée de comment je pourrais faire ? C'est du JQuery
Quand j'indique Brave banner il n'y a qu'elle qui bouge
Et quand j'indique .brave en entier, je peux drag&drop toute la page :/
Dans le terminal ? si c'est dans le terminal comme sur le screen ça ne fait rien pour le node index.js et pour node non plus ça ne marche pas.
Tu as installé node.js ?
Il faut que tu sauvegarde ton fichier, (si tu veux éviter ce problème va dans Fichier > Sauvegarde Automatique ou AutoSave) et après refais node index.js
J'ai essayé de faire qlq chose et ça m'a mis ça comme erreur
Ah d'accord merci
Ce rond blanc signifie que ton fichier n'est pas sauvegardé
Et pour ceci il faut que tu reviennes sur la ligne de la définition de ton client const client = new Discord.Client()
J'ai pas bien compris 😅 je l'ai déjà fait non
Att, je vais voir un truc sur la doc pour te montrer
D'accord, merci
C'est plus Intents avec la V14 c'est GatewayIntentsBits
Ça a changé ?
Ouais y a la V14 qui est sortit y a 4 jours après si tu préfères faire de la V13 va dans ton package.json et dans discord.js au lieu d'avoir ^14.0.3 tu mets 13.9.0 et tu fais npm i dans ta console.
Ah je dois faire comment ?
Soit tu changes de version comme j'ai dit juste au-dessus soit tu fais en V14 en remplaçant
- Intents.FLAGS.GUILDS
+ GatewayIntentsBits.Guilds
Ca me met cela
Faut pas y mettre entre guillemet.
dans ta toute première ligne, tu importes Intents qui ne te sers plus à rien. À la place tu dois importer GatewayIntentBits pour qu’ensuite il soit reconnu dans ton code (sinon tu le sors de nulle part vu que tu ne l’as pas défini)
ça vient de ton .catch il faut que tu mettes un .then avant
Salut je cherche quelqu'un qui a déjà utilisé MATTER.JS svp c'est pour une question
Comment utiliser un svg avec matter.js ?
Effectivement c'est le passage en v14, j'ai pas le lien sous la main sur tél, mais regarde la doc du passage vers la v14, tout y est
Je ne comprend pas pourquoi ça ne fonction pas: var path = $("#svg").find("path");
var svg1 = Matter.Svg.pathToVertices(path, 30);
World.add(svg1);
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="225.000000pt" height="225.000000pt" viewBox="0 0 225.000000 225.000000"
preserveAspectRatio="xMidYMid meet" id="svg">
<g transform="translate(0.000000,225.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M911 2233 c-21 -18 -841 -2138 -841 -2175 0 -10 9 -27 20 -38 18 -18
33 -20 188 -20 119 0 173 4 185 13 10 7 67 148 130 322 l112 310 401 3 401 2
118 -307 c68 -178 126 -315 137 -325 18 -16 43 -18 199 -18 166 0 180 1 199
20 11 11 20 28 20 38 0 32 -878 2166 -897 2179 -12 9 -66 13 -184 13 -144 0
-170 -2 -188 -17z m323 -861 c71 -191 131 -353 134 -359 3 -10 -54 -13 -265
-13 l-269 0 103 278 c57 152 116 314 131 360 14 45 29 82 32 82 3 0 63 -156
134 -348z" />
</g>
</svg>
Pas obligatoirement si tu veux juste prévenir de toute erreur tu peux sans forcément faire mettre un then
Quand tu veux importer discord.js complètement (ici sous le nom de Discord), tu dois faire comme ceci: const Discord = require('discord.js');.
Par contre si tu ne veux pas tout importer, comme tu l’as fait en partie ici, tu dois faire const { Client, ActionRowBuilder, ButtonBuilder } = require('discord.js');. Après dans ces importations ici tu as besoin des intents. En v14, le nom a changé et n’est plus Intents mais GatewayIntentBits. Donc tu as juste à importer ça de la librairie discord.js, et à remplacer tes deux Discord.Intents.FLAGS… par GatewayIntentBits…
Aussi, si je ne me trompe pas, tu peux importer IntentsBitField de discord.js à la place de GatewayIntentBits, pour ensuite pouvoir reprendre ce que tu avais mit en remplaçant Discord.Intents.FLAGS par IntentsBitField.Flags
super merci beaucoup !
je vais tester ça de suite
j'ai essayé les deux mais ça me met le même message d'erreur
Pourquoi utiliser discord-button ?
Le problème vient du module discord-button
tu crois que c'est ça qui fait défaut ?
j'avais oublié que je l'avais mis
Oui, utilises les boutons de discord.js
j'ai récupéré mon ancien code
discord-buttons n’est plus mis à jour et ne marche plus il me semble
Montre le code que tu as maintenant
Ton erreur vient du fichier help.js, montre ce fichier stp
Pourquoi tu recréer un client dans chaque fichier ?
En gros ce qu’il te faut, c’est un fichier principale, ton index.js avec dedans ce qu’il faut pour allumer ton bot (création du Client + login)
aaah mais j'ai même pas vu
et le login je n'ai pas besoin non plus de le remettre dans cahque fichier ?
Non, sinon ça veut dire que tu relances ton bot à chaque fois
et après je crée une const client à partir du fichier index ?
Et donc après tu as chaque fichier qui correspond à une commande / event. Cherche event handler et command handler sur internet ça t’aidera beaucoup
merci beaucoup !
le bot est bien allumé, il fonctionne
mais lorsque je marque bouton dans le chat rien ne se passe
je lui ai bien accordé les gateway intents sur le dev portal
Pour le style des boutons faut importer mtn
const { ButtonStyle } = require('discord.js');
@naive ivy
merci !

c'est super simple les slash commands en fait
T'es pas obligé tu peux direct importer le numéro pour.
En l'occurrence là c'est 1 puisque c'est Primary.
