forked from Fascinated/Bat
move lookup to a sub command and add mem usage to the bot stats command
This commit is contained in:
parent
843bb34fb4
commit
217b284f14
@ -37,4 +37,18 @@ public class StringUtils {
|
|||||||
}
|
}
|
||||||
return inputString;
|
return inputString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Formats bytes into a human-readable format
|
||||||
|
*
|
||||||
|
* @param bytes the bytes
|
||||||
|
* @return the formatted bytes
|
||||||
|
*/
|
||||||
|
public static String formatBytes(long bytes) {
|
||||||
|
int unit = 1024;
|
||||||
|
if (bytes < unit) return bytes + " B";
|
||||||
|
int exp = (int) (Math.log(bytes) / Math.log(unit));
|
||||||
|
char pre = "KMGTPE".charAt(exp-1);
|
||||||
|
return String.format("%.1f %sB", bytes / Math.pow(unit, exp), pre);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,8 @@ import cc.fascinated.bat.features.base.commands.fun.image.ImageCommand;
|
|||||||
import cc.fascinated.bat.features.base.commands.general.*;
|
import cc.fascinated.bat.features.base.commands.general.*;
|
||||||
import cc.fascinated.bat.features.base.commands.general.avatar.AvatarCommand;
|
import cc.fascinated.bat.features.base.commands.general.avatar.AvatarCommand;
|
||||||
import cc.fascinated.bat.features.base.commands.general.banner.BannerCommand;
|
import cc.fascinated.bat.features.base.commands.general.banner.BannerCommand;
|
||||||
|
import cc.fascinated.bat.features.base.commands.utility.lookup.LookupCommand;
|
||||||
|
import cc.fascinated.bat.features.base.commands.utility.lookup.UserSubCommand;
|
||||||
import cc.fascinated.bat.features.base.commands.server.MemberCountCommand;
|
import cc.fascinated.bat.features.base.commands.server.MemberCountCommand;
|
||||||
import cc.fascinated.bat.features.base.commands.server.PremiumCommand;
|
import cc.fascinated.bat.features.base.commands.server.PremiumCommand;
|
||||||
import cc.fascinated.bat.features.base.commands.server.channel.ChannelCommand;
|
import cc.fascinated.bat.features.base.commands.server.channel.ChannelCommand;
|
||||||
@ -43,7 +45,7 @@ public class BaseFeature extends Feature {
|
|||||||
super.registerCommand(commandService, context.getBean(ImageCommand.class));
|
super.registerCommand(commandService, context.getBean(ImageCommand.class));
|
||||||
super.registerCommand(commandService, context.getBean(FeatureCommand.class));
|
super.registerCommand(commandService, context.getBean(FeatureCommand.class));
|
||||||
super.registerCommand(commandService, context.getBean(EightBallCommand.class));
|
super.registerCommand(commandService, context.getBean(EightBallCommand.class));
|
||||||
super.registerCommand(commandService, context.getBean(LookupUserCommand.class));
|
super.registerCommand(commandService, context.getBean(LookupCommand.class));
|
||||||
super.registerCommand(commandService, context.getBean(PPSizeCommand.class));
|
super.registerCommand(commandService, context.getBean(PPSizeCommand.class));
|
||||||
super.registerCommand(commandService, context.getBean(PastebinCommand.class));
|
super.registerCommand(commandService, context.getBean(PastebinCommand.class));
|
||||||
}
|
}
|
||||||
|
@ -3,10 +3,7 @@ package cc.fascinated.bat.features.base.commands.general;
|
|||||||
import cc.fascinated.bat.command.BatCommand;
|
import cc.fascinated.bat.command.BatCommand;
|
||||||
import cc.fascinated.bat.command.Category;
|
import cc.fascinated.bat.command.Category;
|
||||||
import cc.fascinated.bat.command.CommandInfo;
|
import cc.fascinated.bat.command.CommandInfo;
|
||||||
import cc.fascinated.bat.common.EmbedDescriptionBuilder;
|
import cc.fascinated.bat.common.*;
|
||||||
import cc.fascinated.bat.common.EmbedUtils;
|
|
||||||
import cc.fascinated.bat.common.NumberFormatter;
|
|
||||||
import cc.fascinated.bat.common.TimeUtils;
|
|
||||||
import cc.fascinated.bat.model.BatGuild;
|
import cc.fascinated.bat.model.BatGuild;
|
||||||
import cc.fascinated.bat.model.BatUser;
|
import cc.fascinated.bat.model.BatUser;
|
||||||
import cc.fascinated.bat.service.DiscordService;
|
import cc.fascinated.bat.service.DiscordService;
|
||||||
@ -32,6 +29,7 @@ public class BotStatsCommand extends BatCommand {
|
|||||||
private final GuildService guildService;
|
private final GuildService guildService;
|
||||||
private final UserService userService;
|
private final UserService userService;
|
||||||
private final RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
|
private final RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
|
||||||
|
private final Runtime runtime = Runtime.getRuntime();
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public BotStatsCommand(@NonNull GuildService guildService, @NonNull UserService userService) {
|
public BotStatsCommand(@NonNull GuildService guildService, @NonNull UserService userService) {
|
||||||
@ -42,12 +40,14 @@ public class BotStatsCommand extends BatCommand {
|
|||||||
@Override
|
@Override
|
||||||
public void execute(BatGuild guild, @NonNull BatUser user, @NonNull MessageChannel channel, Member member, @NonNull SlashCommandInteraction event) {
|
public void execute(BatGuild guild, @NonNull BatUser user, @NonNull MessageChannel channel, Member member, @NonNull SlashCommandInteraction event) {
|
||||||
JDA jda = DiscordService.JDA;
|
JDA jda = DiscordService.JDA;
|
||||||
|
long memoryUsed = (runtime.totalMemory() - runtime.freeMemory());
|
||||||
|
|
||||||
event.replyEmbeds(EmbedUtils.genericEmbed().setDescription(
|
event.replyEmbeds(EmbedUtils.genericEmbed().setDescription(
|
||||||
new EmbedDescriptionBuilder("Bat Statistics")
|
new EmbedDescriptionBuilder("Bat Statistics")
|
||||||
.appendLine("Guilds: **%s**".formatted(NumberFormatter.format(jda.getGuilds().size())), true)
|
.appendLine("Guilds: **%s**".formatted(NumberFormatter.format(jda.getGuilds().size())), true)
|
||||||
.appendLine("Users: **%s**".formatted(NumberFormatter.format(jda.getUsers().size())), true)
|
.appendLine("Users: **%s**".formatted(NumberFormatter.format(jda.getUsers().size())), true)
|
||||||
.appendLine("Gateway Ping: **%sms**".formatted(jda.getGatewayPing()), true)
|
.appendLine("Gateway Ping: **%sms**".formatted(jda.getGatewayPing()), true)
|
||||||
|
.appendLine("Memory Usage: **%s**".formatted(StringUtils.formatBytes(memoryUsed)), true)
|
||||||
.emptyLine()
|
.emptyLine()
|
||||||
.appendSubtitle("Bot Statistics")
|
.appendSubtitle("Bot Statistics")
|
||||||
.appendLine("Uptime: **%s**".formatted(TimeUtils.format(bean.getUptime())), true)
|
.appendLine("Uptime: **%s**".formatted(TimeUtils.format(bean.getUptime())), true)
|
||||||
|
28
src/main/java/cc/fascinated/bat/features/base/commands/utility/lookup/LookupCommand.java
Normal file
28
src/main/java/cc/fascinated/bat/features/base/commands/utility/lookup/LookupCommand.java
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package cc.fascinated.bat.features.base.commands.utility.lookup;
|
||||||
|
|
||||||
|
import cc.fascinated.bat.command.BatCommand;
|
||||||
|
import cc.fascinated.bat.command.Category;
|
||||||
|
import cc.fascinated.bat.command.CommandInfo;
|
||||||
|
import lombok.NonNull;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.ApplicationContext;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Nick (okNick)
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@CommandInfo(
|
||||||
|
name = "lookup",
|
||||||
|
description = "View the banner of the guild or a user",
|
||||||
|
userInstall = true,
|
||||||
|
category = Category.UTILITY
|
||||||
|
)
|
||||||
|
public class LookupCommand extends BatCommand {
|
||||||
|
@Autowired
|
||||||
|
public LookupCommand(@NonNull ApplicationContext context) {
|
||||||
|
super.addSubCommands(
|
||||||
|
context.getBean(UserSubCommand.class)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package cc.fascinated.bat.features.base.commands.general;
|
package cc.fascinated.bat.features.base.commands.utility.lookup;
|
||||||
|
|
||||||
import cc.fascinated.bat.command.BatCommand;
|
import cc.fascinated.bat.command.BatCommand;
|
||||||
import cc.fascinated.bat.command.Category;
|
import cc.fascinated.bat.command.Category;
|
||||||
@ -22,10 +22,10 @@ import org.springframework.stereotype.Component;
|
|||||||
/**
|
/**
|
||||||
* @author Fascinated (fascinated7)
|
* @author Fascinated (fascinated7)
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component("lookup.user:sub")
|
||||||
@CommandInfo(name = "lookupuser", description = "Lookup a user", userInstall = true, category = Category.GENERAL)
|
@CommandInfo(name = "user", description = "Lookup a user")
|
||||||
public class LookupUserCommand extends BatCommand {
|
public class UserSubCommand extends BatCommand {
|
||||||
public LookupUserCommand() {
|
public UserSubCommand() {
|
||||||
super.addOptions(new OptionData(OptionType.STRING, "id", "The id of the user", true));
|
super.addOptions(new OptionData(OptionType.STRING, "id", "The id of the user", true));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user