From ffdf5a2f1858a315f7b7c4e717059e7a7a39ef83 Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Mon, 17 Feb 2020 13:02:15 +0100 Subject: [PATCH] Fix custom chat PL update NPE (#124) --- README.md | 2 +- pom.xml | 6 ------ .../discordplugin/DiscordPlugin.java | 3 +-- .../discordplugin/mcchat/MCChatUtils.java | 15 +++++++++------ 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 1ad64c6..f523f0c 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# DiscordPlugin +# Chroma-Discord A plugin that provides Minecraft chat functionality and other features. ## Setup diff --git a/pom.xml b/pom.xml index 6082237..ebec9ef 100755 --- a/pom.xml +++ b/pom.xml @@ -170,12 +170,6 @@ 1.12.2-R0.1-SNAPSHOT provided - - org.spigotmc. - spigot - 1.14.4-R0.1-SNAPSHOT - provided - com.discord4j diff --git a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java index 8f8a257..31082f7 100755 --- a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java @@ -109,7 +109,7 @@ public class DiscordPlugin extends ButtonPlugin { getLogger().info("Initializing..."); plugin = this; manager = new Command2DC(); - getCommand2MC().registerCommand(new DiscordMCCommand()); //Register so that the reset command works + registerCommand(new DiscordMCCommand()); //Register so that the reset command works String token; File tokenFile = new File("TBMC", "Token.txt"); if (tokenFile.exists()) //Legacy support @@ -214,7 +214,6 @@ public class DiscordPlugin extends ButtonPlugin { TBMCCoreAPI.RegisterUserClass(DiscordPlayer.class); ChromaGamerBase.addConverter(sender -> Optional.ofNullable(sender instanceof DiscordSenderBase ? ((DiscordSenderBase) sender).getChromaUser() : null)); - setupProviders(); IHaveConfig.pregenConfig(this, null); if (!TBMCCoreAPI.IsTestServer()) { diff --git a/src/main/java/buttondevteam/discordplugin/mcchat/MCChatUtils.java b/src/main/java/buttondevteam/discordplugin/mcchat/MCChatUtils.java index 6b1c61d..3e1410a 100644 --- a/src/main/java/buttondevteam/discordplugin/mcchat/MCChatUtils.java +++ b/src/main/java/buttondevteam/discordplugin/mcchat/MCChatUtils.java @@ -49,7 +49,8 @@ public class MCChatUtils { * May contain P<DiscordID> as key for public chat */ public static final HashMap> OnlineSenders = new HashMap<>(); - static @Nullable LastMsgData lastmsgdata; + static @Nullable + LastMsgData lastmsgdata; static LongObjectHashMap lastmsgfromd = new LongObjectHashMap<>(); // Last message sent by a Discord user, used for clearing checkmarks private static MinecraftChatModule module; private static HashMap, HashSet> staticExcludedPlugins = new HashMap<>(); @@ -91,7 +92,9 @@ public class MCChatUtils { gid = buttondevteam.core.component.channel.Channel.GROUP_EVERYONE; // (Though it's a public chat then rn) AtomicInteger C = new AtomicInteger(); s[s.length - 1] = "Players: " + Bukkit.getOnlinePlayers().stream() - .filter(p -> gid.equals(lmd.mcchannel.getGroupID(p))) //If they can see it + .filter(p -> (lmd.mcchannel == null + ? gid.equals(buttondevteam.core.component.channel.Channel.GROUP_EVERYONE) //If null, allow if public (custom chats will have their channel stored anyway) + : gid.equals(lmd.mcchannel.getGroupID(p)))) //If they can see it .filter(MCChatUtils::checkEssentials) .filter(p -> C.incrementAndGet() > 0) //Always true .map(p -> DPUtils.sanitizeString(p.getDisplayName())).collect(Collectors.joining(", ")); @@ -106,12 +109,12 @@ public class MCChatUtils { } public static T addSender(HashMap> senders, - User user, T sender) { + User user, T sender) { return addSender(senders, user.getId().asString(), sender); } public static T addSender(HashMap> senders, - String did, T sender) { + String did, T sender) { var map = senders.get(did); if (map == null) map = new HashMap<>(); @@ -121,7 +124,7 @@ public class MCChatUtils { } public static T getSender(HashMap> senders, - Snowflake channel, User user) { + Snowflake channel, User user) { var map = senders.get(user.getId().asString()); if (map != null) return map.get(channel); @@ -129,7 +132,7 @@ public class MCChatUtils { } public static T removeSender(HashMap> senders, - Snowflake channel, User user) { + Snowflake channel, User user) { var map = senders.get(user.getId().asString()); if (map != null) return map.remove(channel);