diff --git a/src/main/java/buttondevteam/discordplugin/DiscordConnectedPlayer.java b/src/main/java/buttondevteam/discordplugin/DiscordConnectedPlayer.java index f5b779f..ff36dcb 100755 --- a/src/main/java/buttondevteam/discordplugin/DiscordConnectedPlayer.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordConnectedPlayer.java @@ -3,8 +3,8 @@ package buttondevteam.discordplugin; import buttondevteam.discordplugin.playerfaker.DiscordFakePlayer; import buttondevteam.discordplugin.playerfaker.VanillaCommandListener; import lombok.Getter; -import sx.blah.discord.handle.obj.IChannel; import sx.blah.discord.handle.obj.IUser; +import sx.blah.discord.handle.obj.MessageChannel; import java.util.UUID; @@ -12,7 +12,7 @@ public class DiscordConnectedPlayer extends DiscordFakePlayer implements IMCPlay private static int nextEntityId = 10000; private @Getter VanillaCommandListener vanillaCmdListener; - public DiscordConnectedPlayer(IUser user, IChannel channel, UUID uuid, String mcname) { + public DiscordConnectedPlayer(IUser user, MessageChannel channel, UUID uuid, String mcname) { super(user, channel, nextEntityId++, uuid, mcname); vanillaCmdListener = new VanillaCommandListener<>(this); } diff --git a/src/main/java/buttondevteam/discordplugin/DiscordPlayer.java b/src/main/java/buttondevteam/discordplugin/DiscordPlayer.java index 0055792..bbb9a75 100755 --- a/src/main/java/buttondevteam/discordplugin/DiscordPlayer.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordPlayer.java @@ -1,28 +1,28 @@ -package buttondevteam.discordplugin; - -import buttondevteam.discordplugin.mcchat.MCChatPrivate; -import buttondevteam.lib.player.ChromaGamerBase; -import buttondevteam.lib.player.UserClass; - -@UserClass(foldername = "discord") -public class DiscordPlayer extends ChromaGamerBase { - private String did; - // private @Getter @Setter boolean minecraftChatEnabled; - - public DiscordPlayer() { - } - - public String getDiscordID() { - if (did == null) - did = plugindata.getString(getFolder() + "_id"); - return did; - } - - /** - * Returns true if player has the private Minecraft chat enabled. For setting the value, see - * {@link MCChatPrivate#privateMCChat(sx.blah.discord.handle.obj.IChannel, boolean, sx.blah.discord.handle.obj.IUser, DiscordPlayer)} - */ - public boolean isMinecraftChatEnabled() { - return MCChatPrivate.isMinecraftChatEnabled(this); - } -} +package buttondevteam.discordplugin; + +import buttondevteam.discordplugin.mcchat.MCChatPrivate; +import buttondevteam.lib.player.ChromaGamerBase; +import buttondevteam.lib.player.UserClass; + +@UserClass(foldername = "discord") +public class DiscordPlayer extends ChromaGamerBase { + private String did; + // private @Getter @Setter boolean minecraftChatEnabled; + + public DiscordPlayer() { + } + + public String getDiscordID() { + if (did == null) + did = plugindata.getString(getFolder() + "_id"); + return did; + } + + /** + * Returns true if player has the private Minecraft chat enabled. For setting the value, see + * {@link MCChatPrivate#privateMCChat(sx.blah.discord.handle.obj.MessageChannel, boolean, sx.blah.discord.handle.obj.IUser, DiscordPlayer)} + */ + public boolean isMinecraftChatEnabled() { + return MCChatPrivate.isMinecraftChatEnabled(this); + } +} diff --git a/src/main/java/buttondevteam/discordplugin/DiscordPlayerSender.java b/src/main/java/buttondevteam/discordplugin/DiscordPlayerSender.java index 2c10314..1f30113 100755 --- a/src/main/java/buttondevteam/discordplugin/DiscordPlayerSender.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordPlayerSender.java @@ -26,8 +26,8 @@ import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.bukkit.scoreboard.Scoreboard; import org.bukkit.util.Vector; -import sx.blah.discord.handle.obj.IChannel; import sx.blah.discord.handle.obj.IUser; +import sx.blah.discord.handle.obj.MessageChannel; import java.net.InetSocketAddress; import java.util.*; @@ -38,7 +38,7 @@ public class DiscordPlayerSender extends DiscordSenderBase implements IMCPlayer< protected Player player; private @Getter VanillaCommandListener vanillaCmdListener; - public DiscordPlayerSender(IUser user, IChannel channel, Player player) { + public DiscordPlayerSender(IUser user, MessageChannel channel, Player player) { super(user, channel); this.player = player; vanillaCmdListener = new VanillaCommandListener(this); diff --git a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java index ccde74e..7980e37 100755 --- a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java @@ -21,8 +21,8 @@ import com.google.common.io.Files; import discord4j.core.DiscordClient; import discord4j.core.DiscordClientBuilder; import discord4j.core.event.domain.lifecycle.ReadyEvent; -import discord4j.core.object.entity.Channel; import discord4j.core.object.entity.Guild; +import discord4j.core.object.entity.MessageChannel; import discord4j.core.object.entity.Role; import discord4j.core.object.presence.Activity; import discord4j.core.object.presence.Presence; @@ -65,7 +65,7 @@ public class DiscordPlugin extends ButtonPlugin { return getIConfig().getDataPrimDef("mainServer", 219529124321034241L, id -> dc.getGuildById(Snowflake.of((long) id)).block(), g -> g.getId().asLong()); } - public ConfigData CommandChannel() { + public ConfigData CommandChannel() { return DPUtils.channelData(getIConfig(), "commandChannel", 239519012529111040L); } @@ -100,6 +100,13 @@ public class DiscordPlugin extends ButtonPlugin { val cb = new DiscordClientBuilder(token); dc = cb.build(); dc.getEventDispatcher().on(ReadyEvent.class).subscribe(this::handleReady); + /*dc.getEventDispatcher().on(ReadyEvent.class) // Listen for ReadyEvent(s) + .map(event -> event.getGuilds().size()) // Get how many guilds the bot is in + .flatMap(size -> dc.getEventDispatcher() + .on(GuildCreateEvent.class) // Listen for GuildCreateEvent(s) + .take(size) // Take only the first `size` GuildCreateEvent(s) to be received + .collectList()) // Take all received GuildCreateEvents and make it a List + .subscribe(events -> /* All guilds have been received, client is fully connected *);*/ //TODO } catch (Exception e) { e.printStackTrace(); Bukkit.getPluginManager().disablePlugin(this); @@ -169,8 +176,8 @@ public class DiscordPlugin extends ButtonPlugin { thr.setStackTrace(new StackTraceElement[0]); TBMCCoreAPI.SendException("The server crashed!", thr); } else - ChromaBot.getInstance().sendMessageCustomAsWell("", new EmbedBuilder().withColor(Color.GREEN) - .withTitle("Server started - chat connected.").build(), ChannelconBroadcast.RESTART); + ChromaBot.getInstance().sendMessageCustomAsWell(ch -> ch.createEmbed(ecs -> ecs.setColor(Color.GREEN) + .setTitle("Server started - chat connected.")), ChannelconBroadcast.RESTART); DiscordMCCommand.resetting = false; //This is the last event handling this flag diff --git a/src/main/java/buttondevteam/discordplugin/DiscordRunnable.java b/src/main/java/buttondevteam/discordplugin/DiscordRunnable.java index fb27234..3e8094f 100755 --- a/src/main/java/buttondevteam/discordplugin/DiscordRunnable.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordRunnable.java @@ -6,5 +6,5 @@ import sx.blah.discord.util.RateLimitException; @FunctionalInterface public interface DiscordRunnable { - public abstract void run() throws DiscordException, RateLimitException, MissingPermissionsException; + void run() throws DiscordException, RateLimitException, MissingPermissionsException; } diff --git a/src/main/java/buttondevteam/discordplugin/DiscordSender.java b/src/main/java/buttondevteam/discordplugin/DiscordSender.java index 8ad7445..de1eed9 100755 --- a/src/main/java/buttondevteam/discordplugin/DiscordSender.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordSender.java @@ -8,8 +8,8 @@ import org.bukkit.permissions.Permission; import org.bukkit.permissions.PermissionAttachment; import org.bukkit.permissions.PermissionAttachmentInfo; import org.bukkit.plugin.Plugin; -import sx.blah.discord.handle.obj.IChannel; import sx.blah.discord.handle.obj.IUser; +import sx.blah.discord.handle.obj.MessageChannel; import java.util.Set; @@ -18,12 +18,12 @@ public class DiscordSender extends DiscordSenderBase implements CommandSender { private String name; - public DiscordSender(IUser user, IChannel channel) { + public DiscordSender(IUser user, MessageChannel channel) { super(user, channel); name = user == null ? "Discord user" : user.getDisplayName(DiscordPlugin.mainServer); } - public DiscordSender(IUser user, IChannel channel, String name) { + public DiscordSender(IUser user, MessageChannel channel, String name) { super(user, channel); this.name = name; } diff --git a/src/main/java/buttondevteam/discordplugin/DiscordSenderBase.java b/src/main/java/buttondevteam/discordplugin/DiscordSenderBase.java index 6d4098b..f16e92b 100755 --- a/src/main/java/buttondevteam/discordplugin/DiscordSenderBase.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordSenderBase.java @@ -4,17 +4,17 @@ import buttondevteam.lib.TBMCCoreAPI; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.scheduler.BukkitTask; -import sx.blah.discord.handle.obj.IChannel; import sx.blah.discord.handle.obj.IUser; +import sx.blah.discord.handle.obj.MessageChannel; public abstract class DiscordSenderBase implements CommandSender { /** * May be null. */ protected IUser user; - protected IChannel channel; + protected MessageChannel channel; - protected DiscordSenderBase(IUser user, IChannel channel) { + protected DiscordSenderBase(IUser user, MessageChannel channel) { this.user = user; this.channel = channel; } @@ -31,7 +31,7 @@ public abstract class DiscordSenderBase implements CommandSender { return user; } - public IChannel getChannel() { + public MessageChannel getChannel() { return channel; } diff --git a/src/main/java/buttondevteam/discordplugin/DiscordSupplier.java b/src/main/java/buttondevteam/discordplugin/DiscordSupplier.java index e2fb570..09b730a 100755 --- a/src/main/java/buttondevteam/discordplugin/DiscordSupplier.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordSupplier.java @@ -7,5 +7,5 @@ import sx.blah.discord.util.RateLimitException; @FunctionalInterface public interface DiscordSupplier> { - public abstract T get() throws DiscordException, RateLimitException, MissingPermissionsException; + T get() throws DiscordException, RateLimitException, MissingPermissionsException; } diff --git a/src/main/java/buttondevteam/discordplugin/announcer/AnnouncerModule.java b/src/main/java/buttondevteam/discordplugin/announcer/AnnouncerModule.java index a0c11a0..690a085 100644 --- a/src/main/java/buttondevteam/discordplugin/announcer/AnnouncerModule.java +++ b/src/main/java/buttondevteam/discordplugin/announcer/AnnouncerModule.java @@ -11,23 +11,24 @@ import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; +import discord4j.core.object.entity.Message; +import discord4j.core.object.entity.MessageChannel; import lombok.val; import org.bukkit.configuration.file.YamlConfiguration; -import sx.blah.discord.handle.obj.IChannel; -import sx.blah.discord.handle.obj.IMessage; +import reactor.core.publisher.Flux; import java.io.File; -import java.util.List; +import java.util.Objects; public class AnnouncerModule extends Component { /** * Channel to post new posts. */ - public ConfigData channel() { + public ConfigData channel() { return DPUtils.channelData(getConfig(), "channel", 239519012529111040L); } - public ConfigData modChannel() { + public ConfigData modChannel() { return DPUtils.channelData(getConfig(), "modChannel", 239519012529111040L); } @@ -53,19 +54,11 @@ public class AnnouncerModule extends Component { protected void enable() { if (DPUtils.disableIfConfigError(this, channel(), modChannel())) return; stop = false; //If not the first time - DPUtils.performNoWait(() -> { - try { - val keepPinned = keepPinned().get(); - if (keepPinned == 0) return; - val channel = channel().get(); - List msgs = channel.getPinnedMessages(); - for (int i = msgs.size() - 1; i >= keepPinned; i--) { // Unpin all pinned messages except the newest 10 - channel.unpin(msgs.get(i)); - Thread.sleep(10); - } - } catch (InterruptedException ignore) { - } - }); + val keepPinned = keepPinned().get(); + if (keepPinned == 0) return; + val channel = channel().get(); + Flux msgs = channel.getPinnedMessages(); + msgs.subscribe(Message::unpin); val yc = YamlConfiguration.loadConfiguration(new File("plugins/DiscordPlugin", "config.yml")); //Name change if (lastannouncementtime().get() == 0) //Load old data lastannouncementtime().set(yc.getLong("lastannouncementtime")); @@ -125,13 +118,11 @@ public class AnnouncerModule extends Component { } } if (msgsb.length() > 0) - channel().get().pin(DiscordPlugin.sendMessageToChannelWait(channel().get(), msgsb.toString())); + Objects.requireNonNull(channel().get().createMessage(msgsb.toString()).block()).pin().block(); if (modmsgsb.length() > 0) - DiscordPlugin.sendMessageToChannel(modChannel().get(), modmsgsb.toString()); - if (lastannouncementtime().get() != lastanntime) { + modChannel().get().createMessage(modmsgsb.toString()).block(); + if (lastannouncementtime().get() != lastanntime) lastannouncementtime().set(lastanntime); // If sending succeeded - getPlugin().saveConfig(); //TODO: Won't be needed if I implement auto-saving - } } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/buttondevteam/discordplugin/commands/Command2DCSender.java b/src/main/java/buttondevteam/discordplugin/commands/Command2DCSender.java index bdff52d..831cf6c 100644 --- a/src/main/java/buttondevteam/discordplugin/commands/Command2DCSender.java +++ b/src/main/java/buttondevteam/discordplugin/commands/Command2DCSender.java @@ -2,20 +2,24 @@ package buttondevteam.discordplugin.commands; import buttondevteam.discordplugin.DPUtils; import buttondevteam.lib.chat.Command2Sender; +import discord4j.core.object.entity.Message; import lombok.Getter; import lombok.RequiredArgsConstructor; -import sx.blah.discord.handle.obj.IMessage; +import lombok.val; @RequiredArgsConstructor public class Command2DCSender implements Command2Sender { - private final @Getter IMessage message; + private final @Getter + Message message; @Override public void sendMessage(String message) { if (message.length() == 0) return; message = DPUtils.sanitizeString(message); message = Character.toLowerCase(message.charAt(0)) + message.substring(1); - this.message.reply(message); + val msg = message; + this.message.getChannel().flatMap(ch -> ch.createMessage(this.message.getAuthorAsMember().a-> + a.getNicknameMention() + ", " + msg))) } @Override diff --git a/src/main/java/buttondevteam/discordplugin/commands/UserinfoCommand.java b/src/main/java/buttondevteam/discordplugin/commands/UserinfoCommand.java index 0433c81..0de8121 100755 --- a/src/main/java/buttondevteam/discordplugin/commands/UserinfoCommand.java +++ b/src/main/java/buttondevteam/discordplugin/commands/UserinfoCommand.java @@ -8,8 +8,8 @@ import buttondevteam.lib.chat.CommandClass; import buttondevteam.lib.player.ChromaGamerBase; import buttondevteam.lib.player.ChromaGamerBase.InfoTarget; import lombok.val; -import sx.blah.discord.handle.obj.IMessage; import sx.blah.discord.handle.obj.IUser; +import sx.blah.discord.handle.obj.Message; import java.util.List; import java.util.Optional; @@ -78,7 +78,7 @@ public class UserinfoCommand extends ICommand2DC { return true; } - private List getUsers(IMessage message, String args) { + private List getUsers(Message message, String args) { final List targets; if (message.getChannel().isPrivate()) targets = DiscordPlugin.dc.getUsers().stream().filter(u -> u.getName().equalsIgnoreCase(args)) diff --git a/src/main/java/buttondevteam/discordplugin/exceptions/ExceptionListenerModule.java b/src/main/java/buttondevteam/discordplugin/exceptions/ExceptionListenerModule.java index 5d21bb1..f03b67a 100755 --- a/src/main/java/buttondevteam/discordplugin/exceptions/ExceptionListenerModule.java +++ b/src/main/java/buttondevteam/discordplugin/exceptions/ExceptionListenerModule.java @@ -11,9 +11,9 @@ import org.apache.commons.lang.exception.ExceptionUtils; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import sx.blah.discord.handle.obj.IChannel; import sx.blah.discord.handle.obj.IGuild; import sx.blah.discord.handle.obj.IRole; +import sx.blah.discord.handle.obj.MessageChannel; import java.util.ArrayList; import java.util.Arrays; @@ -47,7 +47,7 @@ public class ExceptionListenerModule extends Component implements private static void SendException(Throwable e, String sourcemessage) { if (instance == null) return; try { - IChannel channel = getChannel(); + MessageChannel channel = getChannel(); assert channel != null; IRole coderRole = instance.pingRole(channel.getGuild()).get(); StringBuilder sb = TBMCCoreAPI.IsTestServer() ? new StringBuilder() @@ -69,12 +69,12 @@ public class ExceptionListenerModule extends Component implements private static ExceptionListenerModule instance; - public static IChannel getChannel() { + public static MessageChannel getChannel() { if (instance != null) return instance.channel().get(); return null; } - private ConfigData channel() { + private ConfigData channel() { return DPUtils.channelData(getConfig(), "channel", 239519012529111040L); } diff --git a/src/main/java/buttondevteam/discordplugin/fun/FunModule.java b/src/main/java/buttondevteam/discordplugin/fun/FunModule.java index e5faead..c3c21ad 100644 --- a/src/main/java/buttondevteam/discordplugin/fun/FunModule.java +++ b/src/main/java/buttondevteam/discordplugin/fun/FunModule.java @@ -80,7 +80,7 @@ public class FunModule extends Component implements Listener { private static short ListC = 0; - public static boolean executeMemes(IMessage message) { + public static boolean executeMemes(Message message) { val fm = ComponentManager.getIfEnabled(FunModule.class); if (fm == null) return false; String msglowercased = message.getContent().toLowerCase(); @@ -119,7 +119,7 @@ public class FunModule extends Component implements Listener { } - private ConfigData fullHouseChannel() { + private ConfigData fullHouseChannel() { return DPUtils.channelData(getConfig(), "fullHouseChannel", 219626707458457603L); } diff --git a/src/main/java/buttondevteam/discordplugin/listeners/CommandListener.java b/src/main/java/buttondevteam/discordplugin/listeners/CommandListener.java index 4f99d35..69c27cf 100644 --- a/src/main/java/buttondevteam/discordplugin/listeners/CommandListener.java +++ b/src/main/java/buttondevteam/discordplugin/listeners/CommandListener.java @@ -3,9 +3,9 @@ package buttondevteam.discordplugin.listeners; import buttondevteam.discordplugin.DiscordPlugin; import buttondevteam.discordplugin.commands.Command2DCSender; import buttondevteam.lib.TBMCCoreAPI; -import sx.blah.discord.handle.obj.IChannel; -import sx.blah.discord.handle.obj.IMessage; import sx.blah.discord.handle.obj.IRole; +import sx.blah.discord.handle.obj.Message; +import sx.blah.discord.handle.obj.MessageChannel; public class CommandListener { /** @@ -15,10 +15,10 @@ public class CommandListener { * @param mentionedonly Only run the command if ChromaBot is mentioned at the start of the message * @return Whether it ran the command */ - public static boolean runCommand(IMessage message, boolean mentionedonly) { + public static boolean runCommand(Message message, boolean mentionedonly) { if (message.getContent().length() == 0) return false; //Pin messages and such, let the mcchat listener deal with it - final IChannel channel = message.getChannel(); + final MessageChannel channel = message.getChannel(); if (!mentionedonly) { //mentionedonly conditions are in CommonListeners if (!message.getChannel().isPrivate() && !(message.getContent().charAt(0) == DiscordPlugin.getPrefix() @@ -49,7 +49,7 @@ public class CommandListener { return true; } - private static boolean checkanddeletemention(StringBuilder cmdwithargs, String mention, IMessage message) { + private static boolean checkanddeletemention(StringBuilder cmdwithargs, String mention, Message message) { if (message.getContent().startsWith(mention)) // TODO: Resolve mentions: Compound arguments, either a mention or text if (cmdwithargs.length() > mention.length() + 1) { int i = cmdwithargs.indexOf(" ", mention.length()); diff --git a/src/main/java/buttondevteam/discordplugin/mcchat/ChannelconCommand.java b/src/main/java/buttondevteam/discordplugin/mcchat/ChannelconCommand.java index 2bd2bb6..dba50e5 100644 --- a/src/main/java/buttondevteam/discordplugin/mcchat/ChannelconCommand.java +++ b/src/main/java/buttondevteam/discordplugin/mcchat/ChannelconCommand.java @@ -11,7 +11,7 @@ import buttondevteam.lib.chat.CommandClass; import buttondevteam.lib.player.TBMCPlayer; import lombok.val; import org.bukkit.Bukkit; -import sx.blah.discord.handle.obj.IMessage; +import sx.blah.discord.handle.obj.Message; import sx.blah.discord.handle.obj.Permissions; import sx.blah.discord.util.PermissionUtils; @@ -124,7 +124,7 @@ public class ChannelconCommand extends ICommand2DC { return true; } - private boolean checkPerms(IMessage message) { + private boolean checkPerms(Message message) { if (!PermissionUtils.hasPermissions(message.getChannel(), message.getAuthor(), Permissions.MANAGE_CHANNEL)) { message.reply("you need to have manage permissions for this channel!"); return true; diff --git a/src/main/java/buttondevteam/discordplugin/mcchat/MCChatCustom.java b/src/main/java/buttondevteam/discordplugin/mcchat/MCChatCustom.java index 3d1b52f..8c4b6c2 100644 --- a/src/main/java/buttondevteam/discordplugin/mcchat/MCChatCustom.java +++ b/src/main/java/buttondevteam/discordplugin/mcchat/MCChatCustom.java @@ -6,8 +6,8 @@ import buttondevteam.discordplugin.DiscordConnectedPlayer; import buttondevteam.lib.TBMCSystemChatEvent; import lombok.NonNull; import lombok.val; -import sx.blah.discord.handle.obj.IChannel; import sx.blah.discord.handle.obj.IUser; +import sx.blah.discord.handle.obj.MessageChannel; import javax.annotation.Nullable; import java.util.ArrayList; @@ -21,7 +21,7 @@ public class MCChatCustom { */ static ArrayList lastmsgCustom = new ArrayList<>(); - public static void addCustomChat(IChannel channel, String groupid, Channel mcchannel, IUser user, DiscordConnectedPlayer dcp, int toggles, Set brtoggles) { + public static void addCustomChat(MessageChannel channel, String groupid, Channel mcchannel, IUser user, DiscordConnectedPlayer dcp, int toggles, Set brtoggles) { if (mcchannel instanceof ChatRoom) { ((ChatRoom) mcchannel).joinRoom(dcp); if (groupid == null) groupid = mcchannel.getGroupID(dcp); @@ -30,16 +30,16 @@ public class MCChatCustom { lastmsgCustom.add(lmd); } - public static boolean hasCustomChat(IChannel channel) { + public static boolean hasCustomChat(MessageChannel channel) { return lastmsgCustom.stream().anyMatch(lmd -> lmd.channel.getLongID() == channel.getLongID()); } @Nullable - public static CustomLMD getCustomChat(IChannel channel) { + public static CustomLMD getCustomChat(MessageChannel channel) { return lastmsgCustom.stream().filter(lmd -> lmd.channel.getLongID() == channel.getLongID()).findAny().orElse(null); } - public static boolean removeCustomChat(IChannel channel) { + public static boolean removeCustomChat(MessageChannel channel) { MCChatUtils.lastmsgfromd.remove(channel.getLongID()); return lastmsgCustom.removeIf(lmd -> { if (lmd.channel.getLongID() != channel.getLongID()) @@ -61,8 +61,8 @@ public class MCChatCustom { public int toggles; public Set brtoggles; - private CustomLMD(@NonNull IChannel channel, @NonNull IUser user, - @NonNull String groupid, @NonNull Channel mcchannel, @NonNull DiscordConnectedPlayer dcp, int toggles, Set brtoggles) { + private CustomLMD(@NonNull MessageChannel channel, @NonNull IUser user, + @NonNull String groupid, @NonNull Channel mcchannel, @NonNull DiscordConnectedPlayer dcp, int toggles, Set brtoggles) { super(channel, user); groupID = groupid; this.mcchannel = mcchannel; diff --git a/src/main/java/buttondevteam/discordplugin/mcchat/MCChatListener.java b/src/main/java/buttondevteam/discordplugin/mcchat/MCChatListener.java index 5113f3c..ed52108 100755 --- a/src/main/java/buttondevteam/discordplugin/mcchat/MCChatListener.java +++ b/src/main/java/buttondevteam/discordplugin/mcchat/MCChatListener.java @@ -22,9 +22,9 @@ import org.bukkit.event.Listener; import org.bukkit.scheduler.BukkitTask; import sx.blah.discord.api.internal.json.objects.EmbedObject; import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent; -import sx.blah.discord.handle.obj.IChannel; -import sx.blah.discord.handle.obj.IMessage; import sx.blah.discord.handle.obj.IUser; +import sx.blah.discord.handle.obj.Message; +import sx.blah.discord.handle.obj.MessageChannel; import sx.blah.discord.util.DiscordException; import sx.blah.discord.util.EmbedBuilder; import sx.blah.discord.util.MissingPermissionsException; @@ -121,7 +121,7 @@ public class MCChatListener implements Listener { }; // Checks if the given channel is different than where the message was sent from // Or if it was from MC - Predicate isdifferentchannel = ch -> !(e.getSender() instanceof DiscordSenderBase) + Predicate isdifferentchannel = ch -> !(e.getSender() instanceof DiscordSenderBase) || ((DiscordSenderBase) e.getSender()).getChannel().getLongID() != ch.getLongID(); if (e.getChannel().isGlobal() @@ -276,7 +276,7 @@ public class MCChatListener implements Listener { final String nick = u.getNicknameForGuild(DiscordPlugin.mainServer); dmessage = dmessage.replace(u.mention(true), "@" + (nick != null ? nick : u.getName())); } - for (IChannel ch : event.getMessage().getChannelMentions()) { + for (MessageChannel ch : event.getMessage().getChannelMentions()) { dmessage = dmessage.replace(ch.mention(), "#" + ch.getName()); // TODO: IG Formatting } @@ -285,7 +285,7 @@ public class MCChatListener implements Listener { Function getChatMessage = msg -> // msg + (event.getMessage().getAttachments().size() > 0 ? "\n" + event.getMessage() - .getAttachments().stream().map(IMessage.Attachment::getUrl).collect(Collectors.joining("\n")) + .getAttachments().stream().map(Message.Attachment::getUrl).collect(Collectors.joining("\n")) : ""); MCChatCustom.CustomLMD clmd = MCChatCustom.getCustomChat(event.getChannel()); diff --git a/src/main/java/buttondevteam/discordplugin/mcchat/MCChatPrivate.java b/src/main/java/buttondevteam/discordplugin/mcchat/MCChatPrivate.java index 7d87376..3a2f2f2 100644 --- a/src/main/java/buttondevteam/discordplugin/mcchat/MCChatPrivate.java +++ b/src/main/java/buttondevteam/discordplugin/mcchat/MCChatPrivate.java @@ -9,9 +9,9 @@ import org.bukkit.Bukkit; import org.bukkit.event.Event; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; -import sx.blah.discord.handle.obj.IChannel; import sx.blah.discord.handle.obj.IPrivateChannel; import sx.blah.discord.handle.obj.IUser; +import sx.blah.discord.handle.obj.MessageChannel; import java.util.ArrayList; @@ -22,7 +22,7 @@ public class MCChatPrivate { */ static ArrayList lastmsgPerUser = new ArrayList<>(); - public static boolean privateMCChat(IChannel channel, boolean start, IUser user, DiscordPlayer dp) { + public static boolean privateMCChat(MessageChannel channel, boolean start, IUser user, DiscordPlayer dp) { TBMCPlayer mcp = dp.getAs(TBMCPlayer.class); if (mcp != null) { // If the accounts aren't connected, can't make a connected sender val p = Bukkit.getPlayer(mcp.getUUID()); diff --git a/src/main/java/buttondevteam/discordplugin/mcchat/MinecraftChatModule.java b/src/main/java/buttondevteam/discordplugin/mcchat/MinecraftChatModule.java index 94ef49d..9e8cfe0 100644 --- a/src/main/java/buttondevteam/discordplugin/mcchat/MinecraftChatModule.java +++ b/src/main/java/buttondevteam/discordplugin/mcchat/MinecraftChatModule.java @@ -12,7 +12,7 @@ import com.google.common.collect.Lists; import lombok.Getter; import lombok.val; import org.bukkit.Bukkit; -import sx.blah.discord.handle.obj.IChannel; +import sx.blah.discord.handle.obj.MessageChannel; import java.util.ArrayList; import java.util.Objects; @@ -40,14 +40,14 @@ public class MinecraftChatModule extends Component { /** * The channel to use as the public Minecraft chat - everything public gets broadcasted here */ - public ConfigData chatChannel() { + public ConfigData chatChannel() { return DPUtils.channelData(getConfig(), "chatChannel", 239519012529111040L); } /** * The channel where the plugin can log when it mutes a player on Discord because of a Minecraft mute */ - public ConfigData modlogChannel() { + public ConfigData modlogChannel() { return DPUtils.channelData(getConfig(), "modlogChannel", 283840717275791360L); } diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordEntity.java b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordEntity.java index 6ce85f8..61cfa5e 100755 --- a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordEntity.java +++ b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordEntity.java @@ -11,8 +11,8 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.metadata.MetadataValue; import org.bukkit.plugin.Plugin; import org.bukkit.util.Vector; -import sx.blah.discord.handle.obj.IChannel; import sx.blah.discord.handle.obj.IUser; +import sx.blah.discord.handle.obj.MessageChannel; import java.util.*; @@ -20,7 +20,7 @@ import java.util.*; @Setter @SuppressWarnings("deprecated") public abstract class DiscordEntity extends DiscordSenderBase implements Entity { - protected DiscordEntity(IUser user, IChannel channel, int entityId, UUID uuid) { + protected DiscordEntity(IUser user, MessageChannel channel, int entityId, UUID uuid) { super(user, channel); this.entityId = entityId; uniqueId = uuid; diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordFakePlayer.java b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordFakePlayer.java index a2b4a13..e7d1c74 100755 --- a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordFakePlayer.java +++ b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordFakePlayer.java @@ -16,15 +16,15 @@ import org.bukkit.map.MapView; import org.bukkit.permissions.PermissibleBase; import org.bukkit.plugin.Plugin; import org.bukkit.scoreboard.Scoreboard; -import sx.blah.discord.handle.obj.IChannel; import sx.blah.discord.handle.obj.IUser; +import sx.blah.discord.handle.obj.MessageChannel; import java.net.InetSocketAddress; import java.util.*; @SuppressWarnings("deprecation") public class DiscordFakePlayer extends DiscordHumanEntity implements Player { - protected DiscordFakePlayer(IUser user, IChannel channel, int entityId, UUID uuid, String mcname) { + protected DiscordFakePlayer(IUser user, MessageChannel channel, int entityId, UUID uuid, String mcname) { super(user, channel, entityId, uuid); perm = new PermissibleBase(Bukkit.getOfflinePlayer(uuid)); name = mcname; diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordHumanEntity.java b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordHumanEntity.java index c1522f1..f984b6c 100755 --- a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordHumanEntity.java +++ b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordHumanEntity.java @@ -8,13 +8,13 @@ import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Villager; import org.bukkit.inventory.*; import org.bukkit.inventory.InventoryView.Property; -import sx.blah.discord.handle.obj.IChannel; import sx.blah.discord.handle.obj.IUser; +import sx.blah.discord.handle.obj.MessageChannel; import java.util.UUID; public abstract class DiscordHumanEntity extends DiscordLivingEntity implements HumanEntity { - protected DiscordHumanEntity(IUser user, IChannel channel, int entityId, UUID uuid) { + protected DiscordHumanEntity(IUser user, MessageChannel channel, int entityId, UUID uuid) { super(user, channel, entityId, uuid); } diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordLivingEntity.java b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordLivingEntity.java index f261de4..876d17e 100755 --- a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordLivingEntity.java +++ b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordLivingEntity.java @@ -16,14 +16,14 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.bukkit.util.Vector; -import sx.blah.discord.handle.obj.IChannel; import sx.blah.discord.handle.obj.IUser; +import sx.blah.discord.handle.obj.MessageChannel; import java.util.*; public abstract class DiscordLivingEntity extends DiscordEntity implements LivingEntity { - protected DiscordLivingEntity(IUser user, IChannel channel, int entityId, UUID uuid) { + protected DiscordLivingEntity(IUser user, MessageChannel channel, int entityId, UUID uuid) { super(user, channel, entityId, uuid); } diff --git a/src/main/java/buttondevteam/discordplugin/role/GameRoleModule.java b/src/main/java/buttondevteam/discordplugin/role/GameRoleModule.java index 03056dd..916f116 100644 --- a/src/main/java/buttondevteam/discordplugin/role/GameRoleModule.java +++ b/src/main/java/buttondevteam/discordplugin/role/GameRoleModule.java @@ -13,12 +13,6 @@ import discord4j.core.object.entity.MessageChannel; import discord4j.core.object.entity.Role; import lombok.val; import org.bukkit.Bukkit; -import sx.blah.discord.handle.impl.events.guild.role.RoleCreateEvent; -import sx.blah.discord.handle.impl.events.guild.role.RoleDeleteEvent; -import sx.blah.discord.handle.impl.events.guild.role.RoleEvent; -import sx.blah.discord.handle.impl.events.guild.role.RoleUpdateEvent; -import sx.blah.discord.handle.obj.IChannel; -import sx.blah.discord.handle.obj.IRole; import java.awt.*; import java.util.List; @@ -60,7 +54,7 @@ public class GameRoleModule extends Component { Role role=((RoleDeleteEvent) roleEvent).getRole().orElse(null); if(role==null) return; if (GameRoles.remove(role.getName()) && logChannel != null) - logChannel, "Removed " + role.getName() + " as a game role."); + logChannel, "Removed " + role.getName() + " as a game role.") } else if (roleEvent instanceof RoleUpdateEvent) { val event = (RoleUpdateEvent) roleEvent; if(!event.getOld().isPresent()) {