Estoy tratando de obtener las invitaciones del autor del comando para un servidor [no varios servidores, solo uno]. He probado muchas soluciones, pero muchas parecen obsoletas o incorrectas. Esto es lo que se me ocurrió
exports.run = async (client, message, args) => { var user = message.author; message.guild.invites.fetch() .then(invites => { const userInvites = invites.filter(o => o.inviter.id === user.id); var userInviteCount = 0; console.log(userInvites['uses']); for (var i=0; i < userInvites.length; i++) { var invite = userInvites[i]; userInviteCount += invite['uses']; } message.reply(`You have ${userInviteCount} invites.`); } ) }Esto está en un archivo invite.js, por lo que cuando un usuario ejecuta !invites, ejecuta este comando después de export.run
Aquí hay una implementación funcional de lo que desea lograr, algunas notas:
| Respondiendo a un comando de barra | Ejecutar en Fusebit |
|---|
// Respond to a Slash command integration.event.on('/:componentName/webhook/:eventType', async (ctx) => { const { data: { application_id, token, member }, } = ctx.req.body; // Store the user id that triggered the bot command. const commandTriggeredByUser = member.user.id; const discordClient = await integration.service.getSdk(ctx, connectorName, ctx.req.body.installIds[0]); const guildInvites = await discordClient.bot.get(`guilds/${DISCORD_DEMO_GUILD_ID}/invites`); // Filter the user created invites only const userCreatedInvites = guildInvites.filter(invite => invite.inviter.id === commandTriggeredByUser); // Reply to the slash command with the number of created invites await superagent.post(`https://discord.com/api/v8/webhooks/${application_id}/${token}`).send({ content: `You have created ${userCreatedInvites.length} invites`, }); });