RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
DiscordDispatcher.java
1package com.osroyale.net.discord;
2
3import com.osroyale.game.world.World;
4import com.osroyale.game.world.entity.mob.player.Player;
5import com.osroyale.util.Utility;
6import discord4j.core.event.domain.message.MessageCreateEvent;
7import discord4j.core.object.entity.Message;
8import discord4j.core.object.entity.channel.MessageChannel;
9
10import java.util.List;
11import java.util.Objects;
12import java.util.function.Consumer;
13
44
45public final class DiscordDispatcher implements Consumer<MessageCreateEvent> {
46
47 public static final String COMMAND_PREFIX = "::";
48
49 @Override
50 public void accept(final MessageCreateEvent event) {
51 final Message message = event.getMessage();
52 final String content = message.getContent();
53 if (!content.startsWith(COMMAND_PREFIX)) {
54 return;
55 }
56 final String command = content.substring(COMMAND_PREFIX.length());
57 final MessageChannel channel = Objects.requireNonNull(message.getChannel().block());
58
59 switch (command) {
60 case "commands": {
61 String builder = ":uptime - displays the current server uptime | "
62 + "::players - displays the server's current player count | "
63 + "::staffonline - displays the server's current staff count | ";
64 channel.createMessage(builder).block();
65 break;
66 }
67 case "uptime":
68 channel.createMessage("OS Royale has been up for " + Utility.getUptime() + "!").block();
69 break;
70 case "players":
71 channel.createMessage("There are currently " + World.getPlayerCount() + " players online!").block();
72 break;
73 case "staffonline": {
74 List<Player> staffs = World.getStaff();
75 if (staffs.isEmpty()) {
76 channel.createMessage("There are no staff members online! Don't get any ideas, I am always watching :)").block();
77 return;
78 }
79
80 StringBuilder builder = new StringBuilder();
81
82 for (int index = 0; index < staffs.size(); index++) {
83 Player staff = staffs.get(index);
84 String string = staff.getName() + " (" + staff.right.getName() + ")" + (index == (staffs.size() - 1) ? "" : ", ");
85 builder.append(string);
86 }
87
88 channel.createMessage(builder.toString()).block();
89 break;
90 }
91 }
92 }
93
94}
static List< Player > getStaff()
Definition World.java:556
static String getUptime()
Definition Utility.java:192