Skip to content
This repository was archived by the owner on Dec 15, 2023. It is now read-only.

Commit 6aa5bd1

Browse files
committed
Updated MCDR to work and cleaned up some stuff.
- Fixed the system so it, should, work now. - Cleaned up some messages
1 parent 098f94c commit 6aa5bd1

21 files changed

Lines changed: 383 additions & 18 deletions

File tree

MinecraftDiscordRelay.iml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@
2929
<orderEntry type="library" scope="PROVIDED" name="Maven: org.yaml:snakeyaml:1.25" level="project" />
3030
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.13.2" level="project" />
3131
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.2" level="project" />
32-
<orderEntry type="library" name="Maven: net.dv8tion:JDA:4.1.1_105" level="project" />
32+
<orderEntry type="library" name="Maven: net.dv8tion:JDA:4.2.0_212" level="project" />
3333
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
3434
<orderEntry type="library" name="Maven: org.jetbrains:annotations:16.0.1" level="project" />
3535
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
36-
<orderEntry type="library" name="Maven: com.neovisionaries:nv-websocket-client:2.9" level="project" />
36+
<orderEntry type="library" name="Maven: com.neovisionaries:nv-websocket-client:2.10" level="project" />
3737
<orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.13.0" level="project" />
3838
<orderEntry type="library" name="Maven: com.squareup.okio:okio:1.17.2" level="project" />
3939
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.1" level="project" />

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>me.jaskowicz</groupId>
88
<artifactId>minecraftdiscordrelay</artifactId>
9-
<version>1.1.6</version>
9+
<version>1.2</version>
1010
<packaging>jar</packaging>
1111

1212
<name>MinecraftDiscordRelay</name>
@@ -85,7 +85,7 @@
8585
<dependency>
8686
<groupId>net.dv8tion</groupId>
8787
<artifactId>JDA</artifactId>
88-
<version>4.1.1_105</version>
88+
<version>4.2.0_212</version>
8989
<exclusions>
9090
<exclusion>
9191
<groupId>club.minnced</groupId>
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package me.jaskowicz.minecraftdiscordrelay.Commands;
2+
3+
import me.jaskowicz.minecraftdiscordrelay.Minecraftdiscordrelay;
4+
import me.jaskowicz.minecraftdiscordrelay.Utils.CommandExec;
5+
import me.jaskowicz.minecraftdiscordrelay.Utils.SimpleEmbedCreation;
6+
import org.bukkit.ChatColor;
7+
import org.bukkit.command.Command;
8+
import org.bukkit.command.CommandExecutor;
9+
import org.bukkit.command.CommandSender;
10+
import org.jetbrains.annotations.NotNull;
11+
12+
import java.awt.*;
13+
14+
public class TestChannelsCommand implements CommandExec {
15+
16+
@Override
17+
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
18+
19+
boolean sentChat = false;
20+
boolean sentConsole = false;
21+
22+
// -----------------------------------------------
23+
24+
SimpleEmbedCreation simpleEmbedCreation = new SimpleEmbedCreation();
25+
26+
simpleEmbedCreation.setChannelToSendTo(Minecraftdiscordrelay.chatChannelID);
27+
simpleEmbedCreation.setEmbedTitle("This is a test message.");
28+
simpleEmbedCreation.setEmbedDescription("This message has been forcefully sent by " + sender.getName() + ".\n\nIf this message can be seen, it means this channel is working as intended.");
29+
30+
sentChat = simpleEmbedCreation.sendMessage();
31+
32+
// -----------------------------------------------
33+
34+
SimpleEmbedCreation simpleEmbedCreation2 = new SimpleEmbedCreation();
35+
36+
simpleEmbedCreation2.setChannelToSendTo(Minecraftdiscordrelay.consoleChannelID);
37+
simpleEmbedCreation2.setEmbedTitle("This is a test message.");
38+
simpleEmbedCreation2.setEmbedDescription("This message has been forcefully sent by " + sender.getName() + ".\n\nIf this message can be seen, it means this channel is working as intended.");
39+
40+
sentConsole = simpleEmbedCreation2.sendMessage();
41+
42+
// -----------------------------------------------
43+
44+
StringBuilder testResult = new StringBuilder();
45+
testResult.append("Test Results: \n");
46+
testResult.append(ChatColor.GRAY).append("------------------------------------\n");
47+
48+
if(sentChat) {
49+
testResult.append(ChatColor.GREEN).append("Message sent successfully to the Chat Channel.\n");
50+
} else {
51+
testResult.append(ChatColor.RED).append("Message failed to send to the Chat Channel.\n");
52+
}
53+
54+
if(sentConsole) {
55+
testResult.append(ChatColor.GREEN).append("Message sent successfully to the Console Channel.\n");
56+
} else {
57+
testResult.append(ChatColor.RED).append("Message failed to send to the Console Channel.\n");
58+
}
59+
60+
testResult.append(ChatColor.GRAY).append("------------------------------------");
61+
62+
sender.sendMessage(testResult.toString());
63+
64+
return true;
65+
}
66+
67+
@Override
68+
public String name() {
69+
return "testchannels";
70+
}
71+
72+
@Override
73+
public String[] otherNames() {
74+
return null;
75+
}
76+
}

src/main/java/me/jaskowicz/minecraftdiscordrelay/Listeners/CommandEvent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public void onCommand(PlayerCommandPreprocessEvent event) {
2424

2525
if(!Minecraftdiscordrelay.advancedConsole) {
2626
Objects.requireNonNull(Objects.requireNonNull(Minecraftdiscordrelay.jda.getGuildById(Minecraftdiscordrelay.guildID)).getTextChannelById(Minecraftdiscordrelay.consoleChannelID))
27-
.sendMessage(":exclamation: " + event.getPlayer().getName() + " tried to execute the command: '" + event.getMessage().split(" ")[0] + "'!").queue();
27+
.sendMessage(":exclamation: " + event.getPlayer().getName() + " executed the command: '" + event.getMessage().split(" ")[0] + "'!").queue();
2828
}
2929

3030
}

src/main/java/me/jaskowicz/minecraftdiscordrelay/Listeners/MessageListener.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ public void onMessageReceived(MessageReceivedEvent event) {
3434
if(event.getGuild().getId().equals(Minecraftdiscordrelay.guildID)) {
3535
if(event.getChannel().getId().equals(Minecraftdiscordrelay.consoleChannelID)) {
3636
plugin.getLogger().info("Command executed in console channel - " + event.getMessage().getContentRaw());
37-
try {
3837

38+
try {
3939
if(event.getMessage().getContentRaw().equals("stop")) {
4040
Objects.requireNonNull(Objects.requireNonNull(Minecraftdiscordrelay.jda.getGuildById(Minecraftdiscordrelay.guildID)).getTextChannelById(Minecraftdiscordrelay.consoleChannelID))
4141
.sendMessage(":x: Server closing.").queue();
@@ -48,7 +48,19 @@ public void onMessageReceived(MessageReceivedEvent event) {
4848
return;
4949
}
5050

51-
boolean success = Bukkit.getScheduler().callSyncMethod( plugin, () -> Bukkit.dispatchCommand( Bukkit.getConsoleSender(), event.getMessage().getContentRaw() ) ).get();
51+
boolean success = Bukkit.getScheduler().callSyncMethod(plugin, () ->
52+
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), event.getMessage().getContentRaw())
53+
).get();
54+
55+
if(success) {
56+
Minecraftdiscordrelay.jda.getGuildById(Minecraftdiscordrelay.guildID)
57+
.getTextChannelById(Minecraftdiscordrelay.consoleChannelID)
58+
.sendMessage("Command executed successfully.").queue();
59+
} else {
60+
Minecraftdiscordrelay.jda.getGuildById(Minecraftdiscordrelay.guildID)
61+
.getTextChannelById(Minecraftdiscordrelay.consoleChannelID)
62+
.sendMessage("Command executed un-successfully.").queue();
63+
}
5264
} catch (ExecutionException | InterruptedException e) {
5365
e.printStackTrace();
5466
}

src/main/java/me/jaskowicz/minecraftdiscordrelay/Listeners/OnDeathEvent.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ public class OnDeathEvent implements Listener {
1313
@EventHandler
1414
public void onPlayerDeathEvent(PlayerDeathEvent event) {
1515
if(!Minecraftdiscordrelay.advancedConsole) {
16-
Objects.requireNonNull(Objects.requireNonNull(Minecraftdiscordrelay.jda.getGuildById(Minecraftdiscordrelay.guildID)).getTextChannelById(Minecraftdiscordrelay.chatChannelID))
16+
Minecraftdiscordrelay.jda.getGuildById(Minecraftdiscordrelay.guildID)
17+
.getTextChannelById(Minecraftdiscordrelay.chatChannelID)
1718
.sendMessage(":skull_crossbones: " + event.getDeathMessage()).queue();
1819

1920
}

src/main/java/me/jaskowicz/minecraftdiscordrelay/Listeners/PlayerConnections.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,13 @@ public void onPlayerJoin(PlayerJoinEvent event) {
1919
Minecraftdiscordrelay.jda.getPresence().setActivity(Activity.playing(Minecraftdiscordrelay.playersOnline + " players | " + Bukkit.getServer().getVersion()));
2020

2121
if(!Minecraftdiscordrelay.advancedConsole) {
22-
Objects.requireNonNull(Objects.requireNonNull(Minecraftdiscordrelay.jda.getGuildById(Minecraftdiscordrelay.guildID)).getTextChannelById(Minecraftdiscordrelay.chatChannelID))
22+
23+
// Just to make sure this isn't null.
24+
// Turned out it was the bot API out-of-date.
25+
// System.out.println(Minecraftdiscordrelay.jda.getGuildById(Minecraftdiscordrelay.guildID));
26+
27+
Minecraftdiscordrelay.jda.getGuildById(Minecraftdiscordrelay.guildID)
28+
.getTextChannelById(Minecraftdiscordrelay.chatChannelID)
2329
.sendMessage(":green_circle: " + event.getPlayer().getName() + " joined the game!").queue();
2430

2531
}
@@ -31,7 +37,8 @@ public void onPlayerLeave(PlayerQuitEvent event) {
3137
Minecraftdiscordrelay.jda.getPresence().setActivity(Activity.playing(Minecraftdiscordrelay.playersOnline + " players | " + Bukkit.getServer().getVersion()));
3238

3339
if(!Minecraftdiscordrelay.advancedConsole) {
34-
Objects.requireNonNull(Objects.requireNonNull(Minecraftdiscordrelay.jda.getGuildById(Minecraftdiscordrelay.guildID)).getTextChannelById(Minecraftdiscordrelay.chatChannelID))
40+
Minecraftdiscordrelay.jda.getGuildById(Minecraftdiscordrelay.guildID)
41+
.getTextChannelById(Minecraftdiscordrelay.chatChannelID)
3542
.sendMessage(":red_circle: " + event.getPlayer().getName() + " left the game!").queue();
3643

3744
}
@@ -43,7 +50,8 @@ public void onPlayerLeave(PlayerKickEvent event) {
4350
Minecraftdiscordrelay.jda.getPresence().setActivity(Activity.playing(Minecraftdiscordrelay.playersOnline + " players | " + Bukkit.getServer().getVersion()));
4451

4552
if(!Minecraftdiscordrelay.advancedConsole) {
46-
Objects.requireNonNull(Objects.requireNonNull(Minecraftdiscordrelay.jda.getGuildById(Minecraftdiscordrelay.guildID)).getTextChannelById(Minecraftdiscordrelay.chatChannelID))
53+
Minecraftdiscordrelay.jda.getGuildById(Minecraftdiscordrelay.guildID)
54+
.getTextChannelById(Minecraftdiscordrelay.chatChannelID)
4755
.sendMessage(":red_circle: " + event.getPlayer().getName() + " was kicked from the game!").queue();
4856

4957
}

src/main/java/me/jaskowicz/minecraftdiscordrelay/Minecraftdiscordrelay.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,12 @@ public void onEnable() {
8080

8181
getLogger().info("Loading bot...");
8282

83-
JDABuilder builder = new JDABuilder(AccountType.BOT);
83+
JDABuilder builder = JDABuilder.createDefault(discordBotToken);
8484

8585
for(Player ignored : Bukkit.getOnlinePlayers()) {
8686
playersOnline += 1;
8787
}
8888

89-
builder.setToken(discordBotToken);
9089
builder.addEventListeners(new MessageListener());
9190
builder.addEventListeners(new ListenerAdapter() {
9291
@Override
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package me.jaskowicz.minecraftdiscordrelay.Utils;
2+
3+
import com.google.common.reflect.ClassPath;
4+
import me.jaskowicz.minecraftdiscordrelay.Minecraftdiscordrelay;
5+
import org.bukkit.Bukkit;
6+
7+
import java.io.IOException;
8+
9+
public class ClassUtils {
10+
11+
public static void registerAllCommands() throws IOException {
12+
13+
ClassPath cp = ClassPath.from(ClassUtils.class.getClassLoader());
14+
cp.getTopLevelClassesRecursive("me.jaskowicz.minecraftdiscordrelay.Commands").forEach(classInfo -> {
15+
try {
16+
Class c = Class.forName(classInfo.getName());
17+
Object obj = c.newInstance();
18+
if(obj instanceof CommandExec) {
19+
CommandExec commandExecutor = (CommandExec) obj;
20+
Minecraftdiscordrelay.getPlugin(Minecraftdiscordrelay.class).getCommand(commandExecutor.name()).setExecutor(commandExecutor);
21+
if(commandExecutor.otherNames() != null) {
22+
for (String name : commandExecutor.otherNames()) {
23+
Minecraftdiscordrelay.getPlugin(Minecraftdiscordrelay.class).getCommand(name).setExecutor(commandExecutor);
24+
}
25+
}
26+
}
27+
} catch (ClassNotFoundException | IllegalAccessException | InstantiationException e) {
28+
e.printStackTrace();
29+
}
30+
});
31+
}
32+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package me.jaskowicz.minecraftdiscordrelay.Utils;
2+
3+
import org.bukkit.command.CommandExecutor;
4+
5+
public interface CommandExec extends CommandExecutor {
6+
7+
String name();
8+
9+
String[] otherNames();
10+
11+
}

0 commit comments

Comments
 (0)