add uuid and time + discord fix idk
This commit is contained in:
parent
5c3e0efef3
commit
cb34dfff90
5 changed files with 171 additions and 5 deletions
6
pom.xml
6
pom.xml
|
@ -108,6 +108,12 @@
|
||||||
<artifactId>JDA</artifactId>
|
<artifactId>JDA</artifactId>
|
||||||
<version>4.4.0_350</version>
|
<version>4.4.0_350</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>joda-time</groupId>
|
||||||
|
<artifactId>joda-time</artifactId>
|
||||||
|
<version>2.12.4</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
package me.chayapak1.chomens_bot.commands;
|
||||||
|
|
||||||
|
import me.chayapak1.chomens_bot.command.Command;
|
||||||
|
import me.chayapak1.chomens_bot.command.CommandContext;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
import org.joda.time.DateTime;
|
||||||
|
import org.joda.time.DateTimeZone;
|
||||||
|
import org.joda.time.format.DateTimeFormat;
|
||||||
|
import org.joda.time.format.DateTimeFormatter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class TimeCommand implements Command {
|
||||||
|
public String name() { return "time"; }
|
||||||
|
|
||||||
|
public String description() {
|
||||||
|
return "Shows the date and time for the specified timezone";
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> usage() {
|
||||||
|
final List<String> usages = new ArrayList<>();
|
||||||
|
usages.add("<timezone>");
|
||||||
|
|
||||||
|
return usages;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> alias() {
|
||||||
|
final List<String> aliases = new ArrayList<>();
|
||||||
|
aliases.add("dateandtime");
|
||||||
|
aliases.add("date");
|
||||||
|
|
||||||
|
return aliases;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int trustLevel() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Component execute(CommandContext context, String[] args, String[] fullArgs) {
|
||||||
|
final String timezone = args[0];
|
||||||
|
|
||||||
|
DateTimeZone zone;
|
||||||
|
try {
|
||||||
|
zone = DateTimeZone.forID(timezone);
|
||||||
|
} catch (IllegalArgumentException ignored) {
|
||||||
|
return Component.text("Invalid timezone (case-sensitive)").color(NamedTextColor.RED);
|
||||||
|
}
|
||||||
|
|
||||||
|
final DateTime dateTime = new DateTime(zone);
|
||||||
|
|
||||||
|
final DateTimeFormatter formatter = DateTimeFormat.forPattern("EEEE, MMMM d, YYYY, hh:mm:ss a");
|
||||||
|
final String formattedTime = formatter.print(dateTime);
|
||||||
|
|
||||||
|
context.sendOutput(
|
||||||
|
Component.translatable(
|
||||||
|
"The current date and time for the timezone %s is: %s",
|
||||||
|
Component.text(timezone).color(NamedTextColor.AQUA),
|
||||||
|
Component.text(formattedTime).color(NamedTextColor.GREEN)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
return Component.text("success");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,93 @@
|
||||||
|
package me.chayapak1.chomens_bot.commands;
|
||||||
|
|
||||||
|
import me.chayapak1.chomens_bot.Bot;
|
||||||
|
import me.chayapak1.chomens_bot.chatParsers.data.MutablePlayerListEntry;
|
||||||
|
import me.chayapak1.chomens_bot.command.Command;
|
||||||
|
import me.chayapak1.chomens_bot.command.CommandContext;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.event.ClickEvent;
|
||||||
|
import net.kyori.adventure.text.event.HoverEvent;
|
||||||
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class UUIDCommand implements Command {
|
||||||
|
public String name() { return "uuid"; }
|
||||||
|
|
||||||
|
public String description() {
|
||||||
|
return "Shows your UUID or other player's UUID";
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> usage() {
|
||||||
|
final List<String> usages = new ArrayList<>();
|
||||||
|
usages.add("[{username}]");
|
||||||
|
|
||||||
|
return usages;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> alias() {
|
||||||
|
final List<String> aliases = new ArrayList<>();
|
||||||
|
aliases.add("");
|
||||||
|
|
||||||
|
return aliases;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int trustLevel() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Component execute(CommandContext context, String[] args, String[] fullArgs) {
|
||||||
|
final Bot bot = context.bot();
|
||||||
|
|
||||||
|
if (args.length > 0) {
|
||||||
|
final MutablePlayerListEntry entry = bot.players().getEntry(String.join(" ", args));
|
||||||
|
|
||||||
|
if (entry == null) return Component.text("Invalid player name").color(NamedTextColor.RED);
|
||||||
|
|
||||||
|
final String name = entry.profile().getName();
|
||||||
|
final String uuid = entry.profile().getIdAsString();
|
||||||
|
|
||||||
|
context.sendOutput(
|
||||||
|
Component.translatable(
|
||||||
|
"%s's UUID: %s",
|
||||||
|
Component.text(name),
|
||||||
|
Component
|
||||||
|
.text(uuid)
|
||||||
|
.hoverEvent(
|
||||||
|
HoverEvent.showText(
|
||||||
|
Component.text("Click here to copy the UUID to your clipboard").color(NamedTextColor.GREEN)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.clickEvent(
|
||||||
|
ClickEvent.copyToClipboard(uuid)
|
||||||
|
)
|
||||||
|
.color(NamedTextColor.AQUA)
|
||||||
|
).color(NamedTextColor.GREEN)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
final MutablePlayerListEntry entry = context.sender();
|
||||||
|
|
||||||
|
final String uuid = entry.profile().getIdAsString();
|
||||||
|
|
||||||
|
context.sendOutput(
|
||||||
|
Component.translatable(
|
||||||
|
"Your UUID: %s",
|
||||||
|
Component
|
||||||
|
.text(uuid)
|
||||||
|
.hoverEvent(
|
||||||
|
HoverEvent.showText(
|
||||||
|
Component.text("Click here to copy the UUID to your clipboard").color(NamedTextColor.GREEN)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.clickEvent(
|
||||||
|
ClickEvent.copyToClipboard(uuid)
|
||||||
|
)
|
||||||
|
.color(NamedTextColor.AQUA)
|
||||||
|
).color(NamedTextColor.GREEN)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Component.text("success");
|
||||||
|
}
|
||||||
|
}
|
|
@ -40,6 +40,8 @@ public class CommandHandlerPlugin {
|
||||||
registerCommand(new ClearChatCommand());
|
registerCommand(new ClearChatCommand());
|
||||||
registerCommand(new ListCommand());
|
registerCommand(new ListCommand());
|
||||||
registerCommand(new ServerEvalCommand());
|
registerCommand(new ServerEvalCommand());
|
||||||
|
registerCommand(new UUIDCommand());
|
||||||
|
registerCommand(new TimeCommand());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void registerCommand (Command command) {
|
public void registerCommand (Command command) {
|
||||||
|
|
|
@ -70,16 +70,17 @@ public class DiscordPlugin {
|
||||||
for (Bot bot : Main.allBots) {
|
for (Bot bot : Main.allBots) {
|
||||||
String channelId = servers.get(bot.host() + ":" + bot.port());
|
String channelId = servers.get(bot.host() + ":" + bot.port());
|
||||||
|
|
||||||
boolean channelAlreadyAddedListeners = alreadyAddedListeners.getOrDefault(channelId, false);
|
|
||||||
|
|
||||||
bot.addListener(new SessionAdapter() {
|
bot.addListener(new SessionAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void connected(ConnectedEvent event) {
|
public void connected(ConnectedEvent event) {
|
||||||
boolean channelAlreadyAddedListeners = alreadyAddedListeners.getOrDefault(channelId, false);
|
boolean channelAlreadyAddedListeners = alreadyAddedListeners.getOrDefault(channelId, false);
|
||||||
if (channelAlreadyAddedListeners) return;
|
|
||||||
|
|
||||||
sendMessageInstantly("Successfully connected to: " + "`" + bot.host() + ":" + bot.port() + "`", channelId);
|
sendMessageInstantly("Successfully connected to: " + "`" + bot.host() + ":" + bot.port() + "`", channelId);
|
||||||
|
|
||||||
|
if (channelAlreadyAddedListeners) return;
|
||||||
|
|
||||||
|
alreadyAddedListeners.put(channelId, true);
|
||||||
|
|
||||||
jda.addEventListener(new ListenerAdapter() {
|
jda.addEventListener(new ListenerAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void onMessageReceived(@NotNull MessageReceivedEvent event) {
|
public void onMessageReceived(@NotNull MessageReceivedEvent event) {
|
||||||
|
@ -162,8 +163,6 @@ public class DiscordPlugin {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
alreadyAddedListeners.put(channelId, true);
|
|
||||||
|
|
||||||
bot.chat().addListener(new ChatPlugin.ChatListener() {
|
bot.chat().addListener(new ChatPlugin.ChatListener() {
|
||||||
@Override
|
@Override
|
||||||
public void systemMessageReceived (String ignoredMessage, Component component) {
|
public void systemMessageReceived (String ignoredMessage, Component component) {
|
||||||
|
|
Loading…
Reference in a new issue