Everything seems to work
Removed double handling of certain events in MCListeners Removed MentionEvent handling completely Some mcchat fixes
This commit is contained in:
parent
7a6b79365f
commit
040373280e
8 changed files with 59 additions and 89 deletions
|
@ -3,6 +3,7 @@ package buttondevteam.discordplugin.commands;
|
||||||
import buttondevteam.discordplugin.ChannelconBroadcast;
|
import buttondevteam.discordplugin.ChannelconBroadcast;
|
||||||
import buttondevteam.discordplugin.DiscordConnectedPlayer;
|
import buttondevteam.discordplugin.DiscordConnectedPlayer;
|
||||||
import buttondevteam.discordplugin.DiscordPlayer;
|
import buttondevteam.discordplugin.DiscordPlayer;
|
||||||
|
import buttondevteam.discordplugin.DiscordPlugin;
|
||||||
import buttondevteam.discordplugin.mcchat.MCChatCustom;
|
import buttondevteam.discordplugin.mcchat.MCChatCustom;
|
||||||
import buttondevteam.lib.chat.Channel;
|
import buttondevteam.lib.chat.Channel;
|
||||||
import buttondevteam.lib.player.TBMCPlayer;
|
import buttondevteam.lib.player.TBMCPlayer;
|
||||||
|
@ -99,10 +100,12 @@ public class ChannelconCommand extends DiscordCommandBase {
|
||||||
"---- Channel connect ---", //
|
"---- Channel connect ---", //
|
||||||
"This command allows you to connect a Minecraft channel to a Discord channel (just like how the global chat is connected to #minecraft-chat).", //
|
"This command allows you to connect a Minecraft channel to a Discord channel (just like how the global chat is connected to #minecraft-chat).", //
|
||||||
"You need to have access to the MC channel and have manage permissions on the Discord channel.", //
|
"You need to have access to the MC channel and have manage permissions on the Discord channel.", //
|
||||||
"You also need to have your Minecraft account connected. In #bot use /connect <mcname>.", //
|
"You also need to have your Minecraft account connected. In #bot use " + DiscordPlugin.getPrefix() + "connect <mcname>.", //
|
||||||
"Call this command from the channel you want to use. Usage: @ChromaBot channelcon <mcchannel>", //
|
"Call this command from the channel you want to use.", //
|
||||||
|
"Usage: @" + DiscordPlugin.dc.getOurUser().getName() + " channelcon <mcchannel>", //
|
||||||
|
"Use the ID (command) of the channel, for example `g` for the global chat.", //
|
||||||
"To remove a connection use @ChromaBot channelcon remove in the channel.", //
|
"To remove a connection use @ChromaBot channelcon remove in the channel.", //
|
||||||
"Mentioning the bot is needed in this case because the / prefix only works in #bot.", //
|
"Mentioning the bot is needed in this case because the " + DiscordPlugin.getPrefix() + " prefix only works in #bot.", //
|
||||||
"Invite link: <https://discordapp.com/oauth2/authorize?client_id=226443037893591041&scope=bot&permissions=268509264>" //
|
"Invite link: <https://discordapp.com/oauth2/authorize?client_id=226443037893591041&scope=bot&permissions=268509264>" //
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,17 +15,13 @@ public class CommandListener {
|
||||||
*/
|
*/
|
||||||
public static boolean runCommand(IMessage message, boolean mentionedonly) {
|
public static boolean runCommand(IMessage message, boolean mentionedonly) {
|
||||||
final IChannel channel = message.getChannel();
|
final IChannel channel = message.getChannel();
|
||||||
if (mentionedonly) {
|
if (!mentionedonly) { //mentionedonly conditions are in CommonListeners
|
||||||
if (!channel.getStringID().equals(DiscordPlugin.botchannel.getStringID())
|
|
||||||
&& !message.getContent().contains("channelcon")) //Allow channelcon in other servers
|
|
||||||
return false; //Private chat is handled without mentions
|
|
||||||
} else {
|
|
||||||
if (!message.getChannel().isPrivate()
|
if (!message.getChannel().isPrivate()
|
||||||
&& !(message.getContent().startsWith("/")
|
&& !(message.getContent().charAt(0) == DiscordPlugin.getPrefix()
|
||||||
&& channel.getStringID().equals(DiscordPlugin.botchannel.getStringID()))) //
|
&& channel.getStringID().equals(DiscordPlugin.botchannel.getStringID()))) //
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
message.getChannel().setTypingStatus(true); // Fun
|
message.getChannel().setTypingStatus(true); // Fun
|
||||||
|
}
|
||||||
final StringBuilder cmdwithargs = new StringBuilder(message.getContent());
|
final StringBuilder cmdwithargs = new StringBuilder(message.getContent());
|
||||||
final String mention = DiscordPlugin.dc.getOurUser().mention(false);
|
final String mention = DiscordPlugin.dc.getOurUser().mention(false);
|
||||||
final String mentionNick = DiscordPlugin.dc.getOurUser().mention(true);
|
final String mentionNick = DiscordPlugin.dc.getOurUser().mention(true);
|
||||||
|
|
|
@ -7,7 +7,6 @@ import buttondevteam.lib.architecture.Component;
|
||||||
import lombok.val;
|
import lombok.val;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import sx.blah.discord.api.events.IListener;
|
import sx.blah.discord.api.events.IListener;
|
||||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MentionEvent;
|
|
||||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||||
import sx.blah.discord.handle.impl.events.guild.role.RoleCreateEvent;
|
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.RoleDeleteEvent;
|
||||||
|
@ -41,23 +40,15 @@ public class CommonListeners {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
MentionEvent:
|
MentionEvent:
|
||||||
- CommandListener (starts with mention, in #bot unless 'channelcon')
|
- CommandListener (starts with mention, only 'channelcon' and not in #bot)
|
||||||
|
|
||||||
MessageReceivedEvent:
|
MessageReceivedEvent:
|
||||||
|
- v CommandListener (starts with mention, in #bot or a connected chat)
|
||||||
- Minecraft chat (is enabled in the channel and message isn't [/]mcchat)
|
- Minecraft chat (is enabled in the channel and message isn't [/]mcchat)
|
||||||
- CommandListener (with the correct prefix in #bot, or in private)
|
- CommandListener (with the correct prefix in #bot, or in private)
|
||||||
*/
|
*/
|
||||||
public static IListener<?>[] getListeners() {
|
public static IListener<?>[] getListeners() {
|
||||||
return new IListener[]{new IListener<MentionEvent>() {
|
return new IListener[]{new IListener<MessageReceivedEvent>() {
|
||||||
@Override
|
|
||||||
public void handle(MentionEvent event) {
|
|
||||||
if (DiscordPlugin.SafeMode)
|
|
||||||
return;
|
|
||||||
if (event.getMessage().getAuthor().isBot())
|
|
||||||
return;
|
|
||||||
CommandListener.runCommand(event.getMessage(), true);
|
|
||||||
}
|
|
||||||
}, new IListener<MessageReceivedEvent>() {
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(MessageReceivedEvent event) {
|
public void handle(MessageReceivedEvent event) {
|
||||||
if (DiscordPlugin.SafeMode)
|
if (DiscordPlugin.SafeMode)
|
||||||
|
@ -65,9 +56,13 @@ public class CommonListeners {
|
||||||
if (event.getMessage().getAuthor().isBot())
|
if (event.getMessage().getAuthor().isBot())
|
||||||
return;
|
return;
|
||||||
boolean handled = false;
|
boolean handled = false;
|
||||||
|
if (event.getChannel().getLongID() == DiscordPlugin.botchannel.getLongID() //If mentioned, that's higher than chat
|
||||||
|
|| event.getMessage().getContent().contains("channelcon")) //Only 'channelcon' is allowed in other channels
|
||||||
|
handled = CommandListener.runCommand(event.getMessage(), true); //#bot is handled here
|
||||||
|
if (handled) return;
|
||||||
val mcchat = Component.getComponents().get(MinecraftChatModule.class);
|
val mcchat = Component.getComponents().get(MinecraftChatModule.class);
|
||||||
if (mcchat != null && mcchat.isEnabled())
|
if (mcchat != null && mcchat.isEnabled()) //ComponentManager.isEnabled() searches the component again
|
||||||
handled = ((MinecraftChatModule) mcchat).getListener().handleDiscord(event);
|
handled = ((MinecraftChatModule) mcchat).getListener().handleDiscord(event); //Also runs Discord commands in chat channels
|
||||||
if (!handled)
|
if (!handled)
|
||||||
handled = CommandListener.runCommand(event.getMessage(), false);
|
handled = CommandListener.runCommand(event.getMessage(), false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,34 +1,19 @@
|
||||||
package buttondevteam.discordplugin.listeners;
|
package buttondevteam.discordplugin.listeners;
|
||||||
|
|
||||||
import buttondevteam.discordplugin.ChannelconBroadcast;
|
|
||||||
import buttondevteam.discordplugin.DPUtils;
|
|
||||||
import buttondevteam.discordplugin.DiscordPlayer;
|
import buttondevteam.discordplugin.DiscordPlayer;
|
||||||
import buttondevteam.discordplugin.DiscordPlugin;
|
import buttondevteam.discordplugin.DiscordPlugin;
|
||||||
import buttondevteam.discordplugin.mcchat.MCChatUtils;
|
|
||||||
import buttondevteam.lib.TBMCCoreAPI;
|
|
||||||
import buttondevteam.lib.TBMCSystemChatEvent;
|
|
||||||
import buttondevteam.lib.player.TBMCPlayer;
|
|
||||||
import buttondevteam.lib.player.TBMCPlayerBase;
|
|
||||||
import buttondevteam.lib.player.TBMCPlayerGetInfoEvent;
|
import buttondevteam.lib.player.TBMCPlayerGetInfoEvent;
|
||||||
import buttondevteam.lib.player.TBMCYEEHAWEvent;
|
|
||||||
import com.earth2me.essentials.CommandSource;
|
|
||||||
import lombok.val;
|
import lombok.val;
|
||||||
import net.ess3.api.events.MuteStatusChangeEvent;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.server.BroadcastMessageEvent;
|
|
||||||
import org.bukkit.event.server.ServerCommandEvent;
|
import org.bukkit.event.server.ServerCommandEvent;
|
||||||
import org.bukkit.plugin.AuthorNagException;
|
import org.bukkit.plugin.AuthorNagException;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.plugin.RegisteredListener;
|
import org.bukkit.plugin.RegisteredListener;
|
||||||
import sx.blah.discord.handle.obj.IRole;
|
|
||||||
import sx.blah.discord.handle.obj.IUser;
|
import sx.blah.discord.handle.obj.IUser;
|
||||||
import sx.blah.discord.util.DiscordException;
|
|
||||||
import sx.blah.discord.util.MissingPermissionsException;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
@ -53,49 +38,6 @@ public class MCListener implements Listener {
|
||||||
DiscordPlugin.Restart = !e.getCommand().equalsIgnoreCase("stop"); // The variable is always true except if stopped
|
DiscordPlugin.Restart = !e.getCommand().equalsIgnoreCase("stop"); // The variable is always true except if stopped
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void onPlayerMute(MuteStatusChangeEvent e) {
|
|
||||||
try {
|
|
||||||
DPUtils.performNoWait(() -> {
|
|
||||||
final IRole role = DiscordPlugin.dc.getRoleByID(164090010461667328L);
|
|
||||||
final CommandSource source = e.getAffected().getSource();
|
|
||||||
if (!source.isPlayer())
|
|
||||||
return;
|
|
||||||
final DiscordPlayer p = TBMCPlayerBase.getPlayer(source.getPlayer().getUniqueId(), TBMCPlayer.class)
|
|
||||||
.getAs(DiscordPlayer.class);
|
|
||||||
if (p == null) return;
|
|
||||||
final IUser user = DiscordPlugin.dc.getUserByID(
|
|
||||||
Long.parseLong(p.getDiscordID()));
|
|
||||||
if (e.getValue())
|
|
||||||
user.addRole(role);
|
|
||||||
else
|
|
||||||
user.removeRole(role);
|
|
||||||
DiscordPlugin.sendMessageToChannel(DiscordPlugin.modlogchannel, (e.getValue() ? "M" : "Unm") + "uted user: " + user.getName());
|
|
||||||
});
|
|
||||||
} catch (DiscordException | MissingPermissionsException ex) {
|
|
||||||
TBMCCoreAPI.SendException("Failed to give/take Muted role to player " + e.getAffected().getName() + "!",
|
|
||||||
ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void onChatSystemMessage(TBMCSystemChatEvent event) {
|
|
||||||
MCChatUtils.forAllowedMCChat(MCChatUtils.send(event.getMessage()), event);
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void onBroadcastMessage(BroadcastMessageEvent event) {
|
|
||||||
MCChatUtils.forCustomAndAllMCChat(MCChatUtils.send(event.getMessage()), ChannelconBroadcast.BROADCAST, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void onYEEHAW(TBMCYEEHAWEvent event) { //TODO: Inherit from the chat event base to have channel support
|
|
||||||
String name = event.getSender() instanceof Player ? ((Player) event.getSender()).getDisplayName()
|
|
||||||
: event.getSender().getName();
|
|
||||||
//Channel channel = ChromaGamerBase.getFromSender(event.getSender()).channel().get(); - TODO
|
|
||||||
MCChatUtils.forAllMCChat(MCChatUtils.send(name + " <:YEEHAW:" + DiscordPlugin.mainServer.getEmojiByName("YEEHAW").getStringID() + ">s"));
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final String[] EXCLUDED_PLUGINS = {"ProtocolLib", "LibsDisguises"};
|
private static final String[] EXCLUDED_PLUGINS = {"ProtocolLib", "LibsDisguises"};
|
||||||
|
|
||||||
public static void callEventExcludingSome(Event event) {
|
public static void callEventExcludingSome(Event event) {
|
||||||
|
|
|
@ -5,6 +5,7 @@ import buttondevteam.discordplugin.DPUtils;
|
||||||
import buttondevteam.discordplugin.DiscordPlugin;
|
import buttondevteam.discordplugin.DiscordPlugin;
|
||||||
import buttondevteam.discordplugin.DiscordSender;
|
import buttondevteam.discordplugin.DiscordSender;
|
||||||
import buttondevteam.discordplugin.DiscordSenderBase;
|
import buttondevteam.discordplugin.DiscordSenderBase;
|
||||||
|
import buttondevteam.discordplugin.listeners.CommandListener;
|
||||||
import buttondevteam.discordplugin.playerfaker.VanillaCommandListener;
|
import buttondevteam.discordplugin.playerfaker.VanillaCommandListener;
|
||||||
import buttondevteam.lib.TBMCChatEvent;
|
import buttondevteam.lib.TBMCChatEvent;
|
||||||
import buttondevteam.lib.TBMCChatPreprocessEvent;
|
import buttondevteam.lib.TBMCChatPreprocessEvent;
|
||||||
|
@ -243,6 +244,8 @@ public class MCChatListener implements Listener {
|
||||||
&& ev.getMessage().getContent().replace("/", "")
|
&& ev.getMessage().getContent().replace("/", "")
|
||||||
.equalsIgnoreCase("mcchat")) //Either mcchat or /mcchat
|
.equalsIgnoreCase("mcchat")) //Either mcchat or /mcchat
|
||||||
return false; //Allow disabling the chat if needed
|
return false; //Allow disabling the chat if needed
|
||||||
|
if (CommandListener.runCommand(ev.getMessage(), true))
|
||||||
|
return true; //Allow running commands in chat channels
|
||||||
MCChatUtils.resetLastMessage(ev.getChannel());
|
MCChatUtils.resetLastMessage(ev.getChannel());
|
||||||
lastlist++;
|
lastlist++;
|
||||||
recevents.add(ev);
|
recevents.add(ev);
|
||||||
|
|
|
@ -13,6 +13,8 @@ import sx.blah.discord.handle.obj.IUser;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import static buttondevteam.discordplugin.listeners.MCListener.callEventExcludingSome;
|
||||||
|
|
||||||
public class MCChatPrivate {
|
public class MCChatPrivate {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -29,11 +31,11 @@ public class MCChatPrivate {
|
||||||
val sender = new DiscordConnectedPlayer(user, channel, mcp.getUUID(), op.getName());
|
val sender = new DiscordConnectedPlayer(user, channel, mcp.getUUID(), op.getName());
|
||||||
MCChatUtils.addSender(MCChatUtils.ConnectedSenders, user, sender);
|
MCChatUtils.addSender(MCChatUtils.ConnectedSenders, user, sender);
|
||||||
if (p == null)// Player is offline - If the player is online, that takes precedence
|
if (p == null)// Player is offline - If the player is online, that takes precedence
|
||||||
MCListener.callEventExcludingSome(new PlayerJoinEvent(sender, ""));
|
callEventExcludingSome(new PlayerJoinEvent(sender, ""));
|
||||||
} else {
|
} else {
|
||||||
val sender = MCChatUtils.removeSender(MCChatUtils.ConnectedSenders, channel, user);
|
val sender = MCChatUtils.removeSender(MCChatUtils.ConnectedSenders, channel, user);
|
||||||
if (p == null)// Player is offline - If the player is online, that takes precedence
|
if (p == null)// Player is offline - If the player is online, that takes precedence
|
||||||
MCListener.callEventExcludingSome(new PlayerQuitEvent(sender, ""));
|
callEventExcludingSome(new PlayerQuitEvent(sender, ""));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!start)
|
if (!start)
|
||||||
|
@ -55,7 +57,7 @@ public class MCChatPrivate {
|
||||||
public static void logoutAll() {
|
public static void logoutAll() {
|
||||||
for (val entry : MCChatUtils.ConnectedSenders.entrySet())
|
for (val entry : MCChatUtils.ConnectedSenders.entrySet())
|
||||||
for (val valueEntry : entry.getValue().entrySet())
|
for (val valueEntry : entry.getValue().entrySet())
|
||||||
MCListener.callEventExcludingSome(new PlayerQuitEvent(valueEntry.getValue(), ""));
|
callEventExcludingSome(new PlayerQuitEvent(valueEntry.getValue(), ""));
|
||||||
MCChatUtils.ConnectedSenders.clear();
|
MCChatUtils.ConnectedSenders.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ public class MCChatUtils {
|
||||||
|
|
||||||
private static void updatePL(LastMsgData lmd) {
|
private static void updatePL(LastMsgData lmd) {
|
||||||
String topic = lmd.channel.getTopic();
|
String topic = lmd.channel.getTopic();
|
||||||
if (topic.length() == 0)
|
if (topic == null || topic.length() == 0)
|
||||||
topic = ".\n----\nMinecraft chat\n----\n.";
|
topic = ".\n----\nMinecraft chat\n----\n.";
|
||||||
String[] s = topic.split("\\n----\\n");
|
String[] s = topic.split("\\n----\\n");
|
||||||
if (s.length < 3)
|
if (s.length < 3)
|
||||||
|
|
|
@ -2,12 +2,13 @@ package buttondevteam.discordplugin.mcchat;
|
||||||
|
|
||||||
import buttondevteam.discordplugin.*;
|
import buttondevteam.discordplugin.*;
|
||||||
import buttondevteam.discordplugin.commands.ConnectCommand;
|
import buttondevteam.discordplugin.commands.ConnectCommand;
|
||||||
|
import buttondevteam.lib.TBMCCoreAPI;
|
||||||
import buttondevteam.lib.TBMCSystemChatEvent;
|
import buttondevteam.lib.TBMCSystemChatEvent;
|
||||||
import buttondevteam.lib.player.TBMCPlayerJoinEvent;
|
import buttondevteam.lib.player.*;
|
||||||
import buttondevteam.lib.player.TBMCPlayerQuitEvent;
|
import com.earth2me.essentials.CommandSource;
|
||||||
import buttondevteam.lib.player.TBMCYEEHAWEvent;
|
|
||||||
import lombok.val;
|
import lombok.val;
|
||||||
import net.ess3.api.events.AfkStatusChangeEvent;
|
import net.ess3.api.events.AfkStatusChangeEvent;
|
||||||
|
import net.ess3.api.events.MuteStatusChangeEvent;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
@ -20,7 +21,10 @@ import org.bukkit.event.player.PlayerLoginEvent;
|
||||||
import org.bukkit.event.player.PlayerLoginEvent.Result;
|
import org.bukkit.event.player.PlayerLoginEvent.Result;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.event.server.BroadcastMessageEvent;
|
import org.bukkit.event.server.BroadcastMessageEvent;
|
||||||
|
import sx.blah.discord.handle.obj.IRole;
|
||||||
import sx.blah.discord.handle.obj.IUser;
|
import sx.blah.discord.handle.obj.IUser;
|
||||||
|
import sx.blah.discord.util.DiscordException;
|
||||||
|
import sx.blah.discord.util.MissingPermissionsException;
|
||||||
|
|
||||||
class MCListener implements Listener {
|
class MCListener implements Listener {
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
|
@ -98,6 +102,31 @@ class MCListener implements Listener {
|
||||||
MCChatUtils.forAllowedCustomAndAllMCChat(MCChatUtils.send(msg), base, ChannelconBroadcast.AFK, false);
|
MCChatUtils.forAllowedCustomAndAllMCChat(MCChatUtils.send(msg), base, ChannelconBroadcast.AFK, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerMute(MuteStatusChangeEvent e) {
|
||||||
|
try {
|
||||||
|
DPUtils.performNoWait(() -> {
|
||||||
|
final IRole role = DiscordPlugin.dc.getRoleByID(164090010461667328L);
|
||||||
|
final CommandSource source = e.getAffected().getSource();
|
||||||
|
if (!source.isPlayer())
|
||||||
|
return;
|
||||||
|
final DiscordPlayer p = TBMCPlayerBase.getPlayer(source.getPlayer().getUniqueId(), TBMCPlayer.class)
|
||||||
|
.getAs(DiscordPlayer.class);
|
||||||
|
if (p == null) return;
|
||||||
|
final IUser user = DiscordPlugin.dc.getUserByID(
|
||||||
|
Long.parseLong(p.getDiscordID()));
|
||||||
|
if (e.getValue())
|
||||||
|
user.addRole(role);
|
||||||
|
else
|
||||||
|
user.removeRole(role);
|
||||||
|
DiscordPlugin.sendMessageToChannel(DiscordPlugin.modlogchannel, (e.getValue() ? "M" : "Unm") + "uted user: " + user.getName());
|
||||||
|
});
|
||||||
|
} catch (DiscordException | MissingPermissionsException ex) {
|
||||||
|
TBMCCoreAPI.SendException("Failed to give/take Muted role to player " + e.getAffected().getName() + "!",
|
||||||
|
ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onChatSystemMessage(TBMCSystemChatEvent event) {
|
public void onChatSystemMessage(TBMCSystemChatEvent event) {
|
||||||
MCChatUtils.forAllowedMCChat(MCChatUtils.send(event.getMessage()), event);
|
MCChatUtils.forAllowedMCChat(MCChatUtils.send(event.getMessage()), event);
|
||||||
|
|
Loading…
Reference in a new issue