All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 44s
56 lines
2.4 KiB
Java
56 lines
2.4 KiB
Java
package cc.fascinated.bat.command.impl;
|
|
|
|
import cc.fascinated.bat.command.BatCommand;
|
|
import cc.fascinated.bat.command.CommandInfo;
|
|
import cc.fascinated.bat.common.EmbedUtils;
|
|
import cc.fascinated.bat.common.TimeUtils;
|
|
import cc.fascinated.bat.model.BatGuild;
|
|
import cc.fascinated.bat.model.BatUser;
|
|
import cc.fascinated.bat.service.DiscordService;
|
|
import cc.fascinated.bat.service.GuildService;
|
|
import cc.fascinated.bat.service.UserService;
|
|
import lombok.NonNull;
|
|
import net.dv8tion.jda.api.JDA;
|
|
import net.dv8tion.jda.api.entities.Member;
|
|
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
|
import net.dv8tion.jda.api.interactions.commands.SlashCommandInteraction;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import java.lang.management.ManagementFactory;
|
|
import java.lang.management.RuntimeMXBean;
|
|
|
|
/**
|
|
* @author Fascinated (fascinated7)
|
|
*/
|
|
@Component
|
|
@CommandInfo(name = "botstats", description = "Shows the bot statistics", guildOnly = false)
|
|
public class BotStatsCommand extends BatCommand {
|
|
private final GuildService guildService;
|
|
private final UserService userService;
|
|
private final RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
|
|
|
|
@Autowired
|
|
public BotStatsCommand(@NonNull GuildService guildService, @NonNull UserService userService) {
|
|
this.guildService = guildService;
|
|
this.userService = userService;
|
|
}
|
|
|
|
@Override
|
|
public void execute(BatGuild guild, @NonNull BatUser user, @NonNull MessageChannel channel, Member member, @NonNull SlashCommandInteraction interaction) {
|
|
JDA jda = DiscordService.JDA;
|
|
|
|
interaction.replyEmbeds(EmbedUtils.genericEmbed().setDescription(
|
|
"**Bot Statistics**\n" +
|
|
"➜ Guilds: **%s**\n".formatted(jda.getGuilds().size()) +
|
|
"➜ Users: **%s**\n".formatted(jda.getUsers().size()) +
|
|
"➜ Gateway Ping: **%sms**\n".formatted(jda.getGatewayPing()) +
|
|
"\n" +
|
|
"**Bat Statistics**\n" +
|
|
"➜ Uptime: **%s**\n".formatted(TimeUtils.format(bean.getUptime())) +
|
|
"➜ Cached Guilds: **%s**\n".formatted(guildService.getGuilds().size()) +
|
|
"➜ Cached Users: **%s**".formatted(userService.getUsers().size())
|
|
).build()).queue();
|
|
}
|
|
}
|