Skip to content

Commit

Permalink
(Experimental) update to Discord4J 3.1.0.M1 (rewrite)
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Apr 18, 2020
1 parent dfb4717 commit cfa9fd2
Show file tree
Hide file tree
Showing 11 changed files with 47 additions and 40 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Expand Up @@ -53,7 +53,7 @@
<dependency>
<groupId>com.discord4j</groupId>
<artifactId>discord4j-core</artifactId>
<version>3.0.12</version>
<version>3.1.0.M1</version>
</dependency>

</dependencies>
Expand Down
22 changes: 12 additions & 10 deletions src/main/java/com/denizenscript/ddiscordbot/DiscordCommand.java
Expand Up @@ -7,12 +7,12 @@
import com.denizenscript.denizencore.objects.Argument;
import discord4j.core.DiscordClient;
import discord4j.core.DiscordClientBuilder;
import discord4j.core.GatewayDiscordClient;
import discord4j.core.object.entity.Message;
import discord4j.core.object.entity.TextChannel;
import discord4j.core.object.entity.User;
import discord4j.core.object.entity.channel.TextChannel;
import discord4j.core.object.presence.Activity;
import discord4j.core.object.presence.Presence;
import discord4j.core.object.util.Snowflake;
import com.denizenscript.denizencore.utilities.debugging.Debug;
import com.denizenscript.denizencore.exceptions.InvalidArgumentsException;
import com.denizenscript.denizencore.objects.core.ElementTag;
Expand All @@ -21,6 +21,9 @@
import com.denizenscript.denizencore.scripts.commands.Holdable;
import com.denizenscript.denizencore.scripts.queues.ScriptQueue;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import discord4j.discordjson.json.ActivityUpdateRequest;
import discord4j.discordjson.json.gateway.StatusUpdate;
import discord4j.rest.util.Snowflake;
import org.bukkit.Bukkit;
import reactor.core.publisher.Mono;

Expand Down Expand Up @@ -204,10 +207,9 @@ public static class DiscordConnectThread extends Thread {
@Override
public void run() {
try {
DiscordClient client = new DiscordClientBuilder(code).build();
conn.client = client;
DiscordClient client = DiscordClientBuilder.create(code).build();
conn.registerHandlers();
client.login().block();
conn.client = client.login().block();
}
catch (Exception ex) {
Bukkit.getScheduler().runTask(DenizenDiscordBot.instance, () -> {
Expand Down Expand Up @@ -257,7 +259,7 @@ public void execute(ScriptEntry scriptEntry) {
+ (messageId != null ? messageId.debug() : ""));
}

DiscordClient client;
GatewayDiscordClient client;

Supplier<Boolean> requireClientID = () -> {
if (!DenizenDiscordBot.instance.connections.containsKey(id.asString())) {
Expand All @@ -266,7 +268,7 @@ public void execute(ScriptEntry scriptEntry) {
}
return false;
};
Function<DiscordClient, Boolean> requireClientObject = (_client) -> {
Function<GatewayDiscordClient, Boolean> requireClientObject = (_client) -> {
if (_client == null) {
Debug.echoError(scriptEntry.getResidingQueue(), "The Discord bot '" + id.asString() + "'is not yet loaded.");
return true;
Expand Down Expand Up @@ -454,7 +456,7 @@ public void execute(ScriptEntry scriptEntry) {
}
long userId;
if (user == null) {
userId = client.getSelfId().get().asLong();
userId = client.getSelfId().block().asLong();
}
else {
userId = user.user_id;
Expand All @@ -474,7 +476,7 @@ public void execute(ScriptEntry scriptEntry) {
return;
}
Activity.Type at = activity == null ? Activity.Type.PLAYING : Activity.Type.valueOf(activity.asString().toUpperCase());
Activity activityObject;
ActivityUpdateRequest activityObject;
if (at == Activity.Type.WATCHING) {
activityObject = Activity.watching(message.asString());
}
Expand All @@ -488,7 +490,7 @@ else if (at == Activity.Type.LISTENING) {
activityObject = Activity.playing(message.asString());
}
String statusLower = status == null ? "online" : CoreUtilities.toLowerCase(status.asString());
Presence presence;
StatusUpdate presence;
if (statusLower.equals("idle")) {
presence = Presence.idle(activityObject);
}
Expand Down
@@ -1,7 +1,7 @@
package com.denizenscript.ddiscordbot;

import com.denizenscript.ddiscordbot.events.*;
import discord4j.core.DiscordClient;
import discord4j.core.GatewayDiscordClient;
import discord4j.core.event.EventDispatcher;
import discord4j.core.event.domain.Event;
import discord4j.core.event.domain.UserUpdateEvent;
Expand All @@ -11,7 +11,9 @@
import discord4j.core.event.domain.message.MessageDeleteEvent;
import discord4j.core.event.domain.message.MessageUpdateEvent;
import discord4j.core.object.entity.*;
import discord4j.core.object.util.Snowflake;
import discord4j.core.object.entity.channel.Channel;
import discord4j.core.object.entity.channel.GuildChannel;
import discord4j.rest.util.Snowflake;
import org.bukkit.Bukkit;

import java.util.ArrayList;
Expand All @@ -20,7 +22,7 @@ public class DiscordConnection {

public String botID;

public DiscordClient client;
public GatewayDiscordClient client;

public void registerHandlers() {
EventDispatcher events = client.getEventDispatcher();
Expand Down
Expand Up @@ -6,13 +6,13 @@
import com.denizenscript.ddiscordbot.objects.DiscordGroupTag;
import com.denizenscript.ddiscordbot.objects.DiscordUserTag;
import discord4j.core.event.domain.message.MessageDeleteEvent;
import discord4j.core.object.entity.GuildChannel;
import discord4j.core.object.entity.MessageChannel;
import discord4j.core.object.entity.User;
import discord4j.core.object.util.Snowflake;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.objects.ObjectTag;
import discord4j.core.object.entity.channel.GuildChannel;
import discord4j.core.object.entity.channel.MessageChannel;
import discord4j.rest.util.Snowflake;

public class DiscordMessageDeletedScriptEvent extends DiscordScriptEvent {

Expand Down Expand Up @@ -83,21 +83,21 @@ else if (name.equals("old_message_valid")) {
}
else if (name.equals("message")) {
if (getEvent().getMessage().isPresent()) {
return new ElementTag(getEvent().getMessage().get().getContent().get());
return new ElementTag(getEvent().getMessage().get().getContent());
}
}
else if (name.equals("message_id")) {
return new ElementTag(getEvent().getMessageId().asString());
}
else if (name.equals("no_mention_message")) {
if (getEvent().getMessage().isPresent()) {
return new ElementTag(stripMentions(getEvent().getMessage().get().getContent().get(),
return new ElementTag(stripMentions(getEvent().getMessage().get().getContent(),
getEvent().getMessage().get().getUserMentions()));
}
}
else if (name.equals("formatted_message")) {
if (getEvent().getMessage().isPresent()) {
return new ElementTag(getEvent().getMessage().get().getContent().get());
return new ElementTag(getEvent().getMessage().get().getContent());
}
}
else if (name.equals("author")) {
Expand Down
Expand Up @@ -6,13 +6,13 @@
import com.denizenscript.ddiscordbot.objects.DiscordGroupTag;
import com.denizenscript.ddiscordbot.objects.DiscordUserTag;
import discord4j.core.event.domain.message.MessageUpdateEvent;
import discord4j.core.object.entity.GuildChannel;
import discord4j.core.object.entity.MessageChannel;
import discord4j.core.object.entity.User;
import discord4j.core.object.util.Snowflake;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.objects.ObjectTag;
import discord4j.core.object.entity.channel.GuildChannel;
import discord4j.core.object.entity.channel.MessageChannel;
import discord4j.rest.util.Snowflake;

public class DiscordMessageModifiedScriptEvent extends DiscordScriptEvent {
public static DiscordMessageModifiedScriptEvent instance;
Expand Down Expand Up @@ -84,32 +84,32 @@ else if (name.equals("old_message_valid")) {
}
else if (name.equals("old_message")) {
if (getEvent().getOld().isPresent()) {
return new ElementTag(getEvent().getOld().get().getContent().get());
return new ElementTag(getEvent().getOld().get().getContent());
}
}
else if (name.equals("old_no_mention_message")) {
if (getEvent().getOld().isPresent()) {
return new ElementTag(stripMentions(getEvent().getOld().get().getContent().get(),
return new ElementTag(stripMentions(getEvent().getOld().get().getContent(),
getEvent().getOld().get().getUserMentions()));
}
}
else if (name.equals("old_formatted_message")) {
if (getEvent().getOld().isPresent()) {
return new ElementTag(getEvent().getOld().get().getContent().get());
return new ElementTag(getEvent().getOld().get().getContent());
}
}
else if (name.equals("message")) {
return new ElementTag(getEvent().getMessage().block().getContent().orElse(""));
return new ElementTag(getEvent().getMessage().block().getContent());
}
else if (name.equals("message_id")) {
return new ElementTag(getEvent().getMessageId().asString());
}
else if (name.equals("no_mention_message")) {
return new ElementTag(stripMentions(getEvent().getMessage().block().getContent().orElse(""),
return new ElementTag(stripMentions(getEvent().getMessage().block().getContent(),
getEvent().getMessage().block().getUserMentions()));
}
else if (name.equals("formatted_message")) {
return new ElementTag(getEvent().getMessage().block().getContent().orElse(""));
return new ElementTag(getEvent().getMessage().block().getContent());
}
else if (name.equals("author")) {
return new DiscordUserTag(botID, getEvent().getMessage().block().getAuthor().get());
Expand Down
Expand Up @@ -6,13 +6,13 @@
import com.denizenscript.ddiscordbot.objects.DiscordGroupTag;
import com.denizenscript.ddiscordbot.objects.DiscordUserTag;
import discord4j.core.event.domain.message.MessageCreateEvent;
import discord4j.core.object.entity.GuildChannel;
import discord4j.core.object.entity.MessageChannel;
import discord4j.core.object.entity.User;
import discord4j.core.object.util.Snowflake;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.objects.ObjectTag;
import discord4j.core.object.entity.channel.GuildChannel;
import discord4j.core.object.entity.channel.MessageChannel;
import discord4j.rest.util.Snowflake;

public class DiscordMessageReceivedScriptEvent extends DiscordScriptEvent {

Expand Down Expand Up @@ -77,17 +77,17 @@ else if (name.equals("group")) {
}
}
else if (name.equals("message")) {
return new ElementTag(getEvent().getMessage().getContent().orElse(""));
return new ElementTag(getEvent().getMessage().getContent());
}
else if (name.equals("message_id")) {
return new ElementTag(getEvent().getMessage().getId().asString());
}
else if (name.equals("no_mention_message")) {
return new ElementTag(stripMentions(getEvent().getMessage().getContent().orElse(""),
return new ElementTag(stripMentions(getEvent().getMessage().getContent(),
getEvent().getMessage().getUserMentions()));
}
else if (name.equals("formatted_message")) {
return new ElementTag(getEvent().getMessage().getContent().orElse(""));
return new ElementTag(getEvent().getMessage().getContent());
}
else if (name.equals("author")) {
if (!getEvent().getMessage().getAuthor().isPresent()) {
Expand Down
Expand Up @@ -6,10 +6,10 @@
import com.denizenscript.ddiscordbot.objects.DiscordRoleTag;
import com.denizenscript.ddiscordbot.objects.DiscordUserTag;
import discord4j.core.event.domain.guild.MemberUpdateEvent;
import discord4j.core.object.util.Snowflake;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.objects.ObjectTag;
import discord4j.rest.util.Snowflake;

import java.util.ArrayList;

Expand Down
Expand Up @@ -11,7 +11,10 @@
import com.denizenscript.denizencore.tags.Attribute;
import com.denizenscript.denizencore.tags.TagContext;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import discord4j.core.object.util.Snowflake;
import discord4j.core.object.entity.channel.Channel;
import discord4j.core.object.entity.channel.GuildChannel;
import discord4j.core.object.entity.channel.PrivateChannel;
import discord4j.rest.util.Snowflake;

public class DiscordChannelTag implements ObjectTag {

Expand Down
Expand Up @@ -12,7 +12,7 @@
import com.denizenscript.denizencore.tags.Attribute;
import com.denizenscript.denizencore.tags.TagContext;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import discord4j.core.object.util.Snowflake;
import discord4j.rest.util.Snowflake;

public class DiscordGroupTag implements ObjectTag {

Expand Down
Expand Up @@ -8,10 +8,10 @@
import com.denizenscript.denizencore.tags.ObjectTagProcessor;
import com.denizenscript.denizencore.tags.TagRunnable;
import discord4j.core.object.entity.Role;
import discord4j.core.object.util.Snowflake;
import com.denizenscript.denizencore.tags.Attribute;
import com.denizenscript.denizencore.tags.TagContext;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import discord4j.rest.util.Snowflake;

import java.util.List;

Expand Down
Expand Up @@ -12,10 +12,10 @@
import discord4j.core.object.entity.Role;
import discord4j.core.object.entity.User;
import discord4j.core.object.presence.Activity;
import discord4j.core.object.util.Snowflake;
import com.denizenscript.denizencore.tags.Attribute;
import com.denizenscript.denizencore.tags.TagContext;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import discord4j.rest.util.Snowflake;

import java.util.Optional;

Expand Down

0 comments on commit cfa9fd2

Please sign in to comment.