Skip to content

Commit 48697b2

Browse files
updated BotInfo.java & extracted Uptime String
1 parent bf4f7fb commit 48697b2

File tree

3 files changed

+29
-35
lines changed

3 files changed

+29
-35
lines changed

src/main/java/com/javadiscord/javabot/commands/user_commands/BotInfo.java

Lines changed: 16 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.javadiscord.javabot.other.Constants;
66
import net.dv8tion.jda.api.EmbedBuilder;
77
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent;
8+
import net.dv8tion.jda.api.interactions.components.Button;
89
import net.dv8tion.jda.api.requests.restaction.interactions.ReplyAction;
910

1011
import java.lang.management.ManagementFactory;
@@ -13,43 +14,28 @@
1314
import java.util.concurrent.TimeUnit;
1415

1516
public class BotInfo implements SlashCommandHandler {
17+
1618
@Override
1719
public ReplyAction handle(SlashCommandEvent event) {
20+
1821
long ping = event.getJDA().getGatewayPing();
1922
var bot = event.getJDA().getSelfUser();
20-
String botImage = bot.getAvatarUrl();
21-
String botTag = bot.getAsTag();
22-
String botName = bot.getName();
23-
String botOS = System.getProperty("os.name");
24-
25-
RuntimeMXBean rb = ManagementFactory.getRuntimeMXBean();
26-
long uptimeMS = rb.getUptime();
27-
28-
long uptimeDAYS = TimeUnit.MILLISECONDS.toDays(uptimeMS);
29-
uptimeMS -= TimeUnit.DAYS.toMillis(uptimeDAYS);
30-
long uptimeHRS = TimeUnit.MILLISECONDS.toHours(uptimeMS);
31-
uptimeMS -= TimeUnit.HOURS.toMillis(uptimeHRS);
32-
long uptimeMIN = TimeUnit.MILLISECONDS.toMinutes(uptimeMS);
33-
uptimeMS -= TimeUnit.MINUTES.toMillis(uptimeMIN);
34-
long uptimeSEC = TimeUnit.MILLISECONDS.toSeconds(uptimeMS);
35-
36-
long botMemTotal = Runtime.getRuntime().totalMemory() / 1048576;
37-
long botMemFree = Runtime.getRuntime().freeMemory() / 1048576;
38-
long botMemUsed = botMemTotal - botMemFree;
3923

40-
EmbedBuilder eb = new EmbedBuilder()
24+
var e = new EmbedBuilder()
4125
.setColor(Constants.GRAY)
42-
.setDescription("**" + botName + "** - currently running version `" + new Version().getVersion(event.getJDA()) + "`")
43-
.setThumbnail(botImage)
44-
.setAuthor(botName + " | Info", null, botImage)
45-
.addField("Name", "```" + botTag + "```", true)
46-
.addField("OS", "```" + botOS + "```", true)
47-
.addField("Library", "```JDA (Java)```", true)
26+
.setThumbnail(bot.getEffectiveAvatarUrl())
27+
.setAuthor(bot.getName() + " | Info", null, bot.getEffectiveAvatarUrl())
28+
.setDescription("**" + bot.getName() + "** - currently running Version `" + new Version().getVersion(event.getJDA()) + "`")
29+
.addField("OS", "```" + System.getProperty("os.name") + "```", true)
30+
.addField("Library", "```JDA```", true)
31+
.addField("JDK", "```" + System.getProperty("java.version") + "```", true)
4832
.addField("Ping", "```" + ping + "ms```", true)
49-
.addField("Uptime", "```" + uptimeDAYS + "d " + uptimeHRS + "h " + uptimeMIN + "min " + uptimeSEC + "s```", true)
50-
.addField("Memory (current Runtime)", "```" + botMemUsed + "MB / " + botMemTotal + "MB```", false)
51-
.setTimestamp(new Date().toInstant());
33+
.addField("Uptime", "```" + new Uptime().getUptime() + "```", true)
34+
.setTimestamp(new Date().toInstant())
35+
.build();
5236

53-
return event.replyEmbeds(eb.build());
37+
return event.replyEmbeds(e).addActionRow(
38+
Button.link(Constants.GITHUB_LINK, "View on GitHub")
39+
);
5440
}
5541
}

src/main/java/com/javadiscord/javabot/commands/user_commands/Uptime.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212

1313
public class Uptime implements SlashCommandHandler {
1414

15-
@Override
16-
public ReplyAction handle(SlashCommandEvent event) {
15+
public String getUptime() {
16+
1717
RuntimeMXBean rb = ManagementFactory.getRuntimeMXBean();
1818
long uptimeMS = rb.getUptime();
1919

@@ -25,12 +25,19 @@ public ReplyAction handle(SlashCommandEvent event) {
2525
uptimeMS -= TimeUnit.MINUTES.toMillis(uptimeMIN);
2626
long uptimeSEC = TimeUnit.MILLISECONDS.toSeconds(uptimeMS);
2727

28+
return String.format("%sd %sh %smin %ss",
29+
uptimeDAYS, uptimeHRS, uptimeMIN, uptimeSEC);
30+
}
31+
32+
@Override
33+
public ReplyAction handle(SlashCommandEvent event) {
34+
2835
String botImage = event.getJDA().getSelfUser().getAvatarUrl();
2936

30-
EmbedBuilder eb = new EmbedBuilder()
37+
var e = new EmbedBuilder()
3138
.setColor(Constants.GRAY)
32-
.setAuthor(uptimeDAYS + "d " + uptimeHRS + "h " + uptimeMIN + "min " + uptimeSEC + "s", null, botImage);
39+
.setAuthor(getUptime(), null, botImage);
3340

34-
return event.replyEmbeds(eb.build());
41+
return event.replyEmbeds(e.build());
3542
}
3643
}

src/main/java/com/javadiscord/javabot/other/Constants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public class Constants {
1414
public static final String WEBSITE = "https://javadiscord.net";
1515
public static final String HELP_LINK = "https://pages.javadiscord.net/archived/commands"; //Archived, /help is unnecessary due to slash-commands
1616
public static final String QOTW_LINK = "https://pages.javadiscord.net/qotw/qotw";
17+
public static final String GITHUB_LINK = "https://github.com/Java-Discord/JavaBot/";
1718

1819
// EMOTES
1920

0 commit comments

Comments
 (0)