diff --git a/src/main/java/buttondevteam/discordplugin/commands/MCChatCommand.java b/src/main/java/buttondevteam/discordplugin/commands/MCChatCommand.java index f2c9b52..878b4ea 100644 --- a/src/main/java/buttondevteam/discordplugin/commands/MCChatCommand.java +++ b/src/main/java/buttondevteam/discordplugin/commands/MCChatCommand.java @@ -1,6 +1,7 @@ package buttondevteam.discordplugin.commands; import buttondevteam.discordplugin.DiscordPlayer; +import buttondevteam.lib.TBMCCoreAPI; import buttondevteam.lib.player.PlayerData; import sx.blah.discord.handle.obj.IMessage; @@ -17,10 +18,13 @@ public class MCChatCommand extends DiscordCommandBase { message.reply("This command can only be issued while DMing the bot."); return; } - PlayerData mcchat = DiscordPlayer.getUser(message.getAuthor().getStringID(), DiscordPlayer.class) - .minecraftChat(); - mcchat.set(!mcchat.getOrDefault(false)); - message.reply("Minecraft chat " + (mcchat.get() ? "enabled." : "disabled.")); + try (final DiscordPlayer user = DiscordPlayer.getUser(message.getAuthor().getStringID(), DiscordPlayer.class)) { + PlayerData mcchat = user.minecraftChat(); + mcchat.set(!mcchat.getOrDefault(false)); + message.reply("Minecraft chat " + (mcchat.get() ? "enabled." : "disabled.")); + } catch (Exception e) { + TBMCCoreAPI.SendException("Error while setting mcchat for user" + message.getAuthor().getName(), e); + } } @Override diff --git a/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java b/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java index 5b07f2e..e4332f4 100644 --- a/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java +++ b/src/main/java/buttondevteam/discordplugin/listeners/MCChatListener.java @@ -147,11 +147,15 @@ public class MCChatListener implements Listener, IListener } if (dmessage.startsWith("/")) { + DiscordPlugin.perform(() -> { + if (!event.getMessage().isDeleted()) + event.getMessage().delete(); + }); final String cmd = dmessage.substring(1).toLowerCase(); if (dsender instanceof DiscordSender && !Arrays.stream(UnconnectedCmds) .anyMatch(s -> cmd.equals(s) || cmd.startsWith(s + " "))) { // Command not whitelisted - DiscordPlugin.sendMessageToChannel(event.getMessage().getChannel(), // TODO + dsender.sendMessage( // TODO "Sorry, you need to be online on the server and have your accounts connected, you can only access these commands:\n" + Arrays.stream(UnconnectedCmds).map(uc -> "/" + uc) .collect(Collectors.joining(", ")) @@ -170,8 +174,6 @@ public class MCChatListener implements Listener, IListener } else Bukkit.dispatchCommand(dsender, cmd); lastlistp = (short) Bukkit.getOnlinePlayers().size(); - if (!event.getMessage().isDeleted()) - event.getMessage().delete(); } else { TBMCChatAPI.SendChatMessage(Channel.GlobalChat, dsender, dmessage + (event.getMessage().getAttachments().size() > 0 ? "\n" + event.getMessage()