Ignore players muted via EssentialsX.

This commit is contained in:
cnaude 2017-02-03 18:33:13 -07:00
parent 449cc3f049
commit 01e0a93e81
4 changed files with 65 additions and 4 deletions

View File

@ -190,7 +190,7 @@
<version>2.0.1</version> <version>2.0.1</version>
<type>jar</type> <type>jar</type>
</dependency> </dependency>
<!-- ReportRTS --> <!-- ReportRTS -->
<dependency> <dependency>
<groupId>com.nyancraft.reportrts</groupId> <groupId>com.nyancraft.reportrts</groupId>

View File

@ -48,6 +48,12 @@ public class GamePlayerChatListener implements Listener {
*/ */
@EventHandler(priority = EventPriority.HIGHEST) @EventHandler(priority = EventPriority.HIGHEST)
public void onAsyncPlayerChat(AsyncPlayerChatEvent event) { public void onAsyncPlayerChat(AsyncPlayerChatEvent event) {
if (plugin.essentialsChatHook != null) {
if (plugin.essentialsChatHook.isMuted(event.getPlayer())) {
plugin.logDebug("Ignore chat message due to Essentials mute: " + event.getMessage());
return;
}
}
String message = event.getMessage(); String message = event.getMessage();
plugin.logDebug("ChatFormat [" + event.isCancelled() + "]: " + event.getFormat()); plugin.logDebug("ChatFormat [" + event.isCancelled() + "]: " + event.getFormat());
if (message.startsWith(PurpleIRC.TOWNYTAG)) { if (message.startsWith(PurpleIRC.TOWNYTAG)) {

View File

@ -0,0 +1,52 @@
/*
* Copyright (C) 2017 cnaude
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.cnaude.purpleirc.Hooks;
import com.cnaude.purpleirc.PurpleIRC;
import com.earth2me.essentials.Essentials;
import com.earth2me.essentials.User;
import org.bukkit.entity.Player;
/**
*
* @author cnaude
*/
public class EssentialsHook {
private final PurpleIRC plugin;
private final Essentials essentials;
/**
*
* @param plugin the PurpleIRC plugin
*/
public EssentialsHook(PurpleIRC plugin) {
this.plugin = plugin;
this.essentials = (Essentials) plugin.getServer().getPluginManager().getPlugin(plugin.PL_ESSENTIALS);
}
public boolean isMuted(Player player) {
if (essentials != null) {
User user = essentials.getUser(player);
if (user != null) {
return user.isMuted();
}
}
return false;
}
}

View File

@ -50,6 +50,7 @@ import com.cnaude.purpleirc.Hooks.AdminPrivateChatHook;
import com.cnaude.purpleirc.Hooks.CommandBookHook; import com.cnaude.purpleirc.Hooks.CommandBookHook;
import com.cnaude.purpleirc.Hooks.DiscordSRVHook; import com.cnaude.purpleirc.Hooks.DiscordSRVHook;
import com.cnaude.purpleirc.Hooks.DynmapHook; import com.cnaude.purpleirc.Hooks.DynmapHook;
import com.cnaude.purpleirc.Hooks.EssentialsHook;
import com.cnaude.purpleirc.Hooks.FactionChatHook; import com.cnaude.purpleirc.Hooks.FactionChatHook;
import com.cnaude.purpleirc.Hooks.GriefPreventionHook; import com.cnaude.purpleirc.Hooks.GriefPreventionHook;
import com.cnaude.purpleirc.Hooks.JobsHook; import com.cnaude.purpleirc.Hooks.JobsHook;
@ -206,6 +207,7 @@ public class PurpleIRC extends JavaPlugin {
public CommandBookHook commandBookHook; public CommandBookHook commandBookHook;
public McMMOChatHook mcMMOChatHook; public McMMOChatHook mcMMOChatHook;
public PlaceholderApiHook placeholderApiHook; public PlaceholderApiHook placeholderApiHook;
public EssentialsHook essentialsChatHook;
public NetPackets netPackets; public NetPackets netPackets;
public CommandHandlers commandHandlers; public CommandHandlers commandHandlers;
public PurpleTabCompleter ircTabCompleter; public PurpleTabCompleter ircTabCompleter;
@ -225,7 +227,7 @@ public class PurpleIRC extends JavaPlugin {
private final File uuidCacheFile; private final File uuidCacheFile;
public int reconnectSuppression; public int reconnectSuppression;
final String PL_ESSENTIALS = "Essentials"; public final String PL_ESSENTIALS = "Essentials";
final String PL_REPORTRTS = "ReportRTS"; final String PL_REPORTRTS = "ReportRTS";
final String PL_SIMPLETICKET = "SimpleTicketManager"; final String PL_SIMPLETICKET = "SimpleTicketManager";
final String PL_NTHE_END_AGAIN = "NTheEndAgain"; final String PL_NTHE_END_AGAIN = "NTheEndAgain";
@ -1007,7 +1009,7 @@ public class PurpleIRC extends JavaPlugin {
m = "Players on " + host + "(" m = "Players on " + host + "("
+ players.length + players.length
+ "): " + Joiner.on(", ") + "): " + Joiner.on(", ")
.join(players); .join(players);
} }
return m; return m;
} else { } else {
@ -1755,6 +1757,7 @@ public class PurpleIRC extends JavaPlugin {
if (isPluginEnabled(PL_ESSENTIALS)) { if (isPluginEnabled(PL_ESSENTIALS)) {
hookList.add(hookFormat(PL_ESSENTIALS, true)); hookList.add(hookFormat(PL_ESSENTIALS, true));
getServer().getPluginManager().registerEvents(new EssentialsListener(this), this); getServer().getPluginManager().registerEvents(new EssentialsListener(this), this);
essentialsChatHook = new EssentialsHook(this);
} else { } else {
hookList.add(hookFormat(PL_ESSENTIALS, false)); hookList.add(hookFormat(PL_ESSENTIALS, false));
} }
@ -1770,7 +1773,7 @@ public class PurpleIRC extends JavaPlugin {
} else { } else {
hookList.add(hookFormat(PL_DISCORDSRV, false)); hookList.add(hookFormat(PL_DISCORDSRV, false));
} }
if (isPluginEnabled(PL_UCHAT)) { if (isPluginEnabled(PL_UCHAT)) {
getServer().getPluginManager().registerEvents(new UltimateChatListener(this), this); getServer().getPluginManager().registerEvents(new UltimateChatListener(this), this);
} else { } else {