mirror of
https://github.com/cnaude/PurpleIRC-spigot.git
synced 2025-02-09 08:01:38 +01:00
IRCMessageEvent is now modifiable.
This commit is contained in:
parent
efe102ddaa
commit
8dff546768
@ -16,19 +16,22 @@
|
||||
*/
|
||||
package com.cnaude.purpleirc.Events;
|
||||
|
||||
import com.cnaude.purpleirc.PurpleIRC;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Chris Naude Event listener for plugins that want to catch irc message events
|
||||
* from PurpleIRC
|
||||
* @author Chris Naude Event listener for plugins that want to catch irc message
|
||||
* events from PurpleIRC
|
||||
*/
|
||||
public class IRCMessageEvent extends Event {
|
||||
|
||||
private static final HandlerList HANDLERS = new HandlerList();
|
||||
private String message;
|
||||
private final String permission;
|
||||
private final Player player;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -38,6 +41,27 @@ public class IRCMessageEvent extends Event {
|
||||
public IRCMessageEvent(String message, String permission) {
|
||||
this.message = message;
|
||||
this.permission = permission;
|
||||
this.player = null;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param message
|
||||
* @param permission
|
||||
* @param player
|
||||
*/
|
||||
public IRCMessageEvent(String message, String permission, Player player) {
|
||||
this.message = message;
|
||||
this.permission = permission;
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Player getPlayer() {
|
||||
return this.player;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -47,7 +71,7 @@ public class IRCMessageEvent extends Event {
|
||||
public String getMessage() {
|
||||
return this.message;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
@ -72,7 +96,7 @@ public class IRCMessageEvent extends Event {
|
||||
public static HandlerList getHandlerList() {
|
||||
return HANDLERS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Change the IRC message being sent to the game
|
||||
*
|
||||
|
@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright (C) 2014 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.GameListeners;
|
||||
|
||||
import com.cnaude.purpleirc.Events.IRCMessageEvent;
|
||||
import com.cnaude.purpleirc.Message;
|
||||
import com.cnaude.purpleirc.PurpleIRC;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Chris Naude
|
||||
*/
|
||||
public class IRCMessageListener implements Listener {
|
||||
|
||||
private final PurpleIRC plugin;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param plugin the PurpleIRC plugin
|
||||
*/
|
||||
public IRCMessageListener(PurpleIRC plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param event
|
||||
*/
|
||||
@EventHandler
|
||||
public void onIRCMessageEvent(IRCMessageEvent event) {
|
||||
String permission = event.getPermission();
|
||||
String message = event.getMessage();
|
||||
Player player = event.getPlayer();
|
||||
String fixedMessage = message.replace("\u200B", "");
|
||||
|
||||
if (player != null) {
|
||||
if (player.hasPermission(permission)) {
|
||||
plugin.logDebug("Broadcast player [" + player.getName() + "] [" + permission + "]: " + fixedMessage);
|
||||
player.sendMessage(fixedMessage);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (plugin.broadcastChatToConsole) {
|
||||
plugin.logDebug("Broadcast All [" + permission + "]: " + fixedMessage);
|
||||
plugin.messageQueue.add(new Message(fixedMessage, permission));
|
||||
} else {
|
||||
plugin.logDebug("Broadcast Players [" + permission + "]: " + fixedMessage);
|
||||
for (Player p : plugin.getServer().getOnlinePlayers()) {
|
||||
if (p.hasPermission(permission)) {
|
||||
p.sendMessage(fixedMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -20,7 +20,6 @@ import com.cnaude.purpleirc.Events.IRCMessageEvent;
|
||||
import com.cnaude.purpleirc.GameListeners.AdminChatListener;
|
||||
import com.cnaude.purpleirc.GameListeners.CleverNotchListener;
|
||||
import com.cnaude.purpleirc.GameListeners.DeathMessagesListener;
|
||||
import com.cnaude.purpleirc.GameListeners.DiscordListener;
|
||||
import com.cnaude.purpleirc.GameListeners.DynmapListener;
|
||||
import com.cnaude.purpleirc.GameListeners.EssentialsListener;
|
||||
import com.cnaude.purpleirc.GameListeners.GamePlayerChatListener;
|
||||
@ -33,6 +32,7 @@ import com.cnaude.purpleirc.GameListeners.GamePlayerPlayerAchievementAwardedList
|
||||
import com.cnaude.purpleirc.GameListeners.GamePlayerQuitListener;
|
||||
import com.cnaude.purpleirc.GameListeners.GameServerCommandListener;
|
||||
import com.cnaude.purpleirc.GameListeners.HeroChatListener;
|
||||
import com.cnaude.purpleirc.GameListeners.IRCMessageListener;
|
||||
import com.cnaude.purpleirc.GameListeners.McMMOChatListener;
|
||||
import com.cnaude.purpleirc.GameListeners.VentureChatListener;
|
||||
import com.cnaude.purpleirc.GameListeners.NTheEndAgainListener;
|
||||
@ -70,7 +70,6 @@ import com.cnaude.purpleirc.Utilities.UpdateChecker;
|
||||
import com.google.common.base.Joiner;
|
||||
import com.onarandombox.MultiverseCore.api.MVPlugin;
|
||||
import com.onarandombox.MultiverseCore.api.MultiverseWorld;
|
||||
import com.scarsz.discordsrv.api.DiscordSRVAPI;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
@ -176,7 +175,7 @@ public class PurpleIRC extends JavaPlugin {
|
||||
private boolean stripIRCColors;
|
||||
private boolean stripIRCBackgroundColors;
|
||||
protected boolean stripGameColorsFromIrc;
|
||||
private boolean broadcastChatToConsole;
|
||||
public boolean broadcastChatToConsole;
|
||||
public boolean customTabList;
|
||||
public String customTabGamemode;
|
||||
private boolean listSortByName;
|
||||
@ -258,7 +257,6 @@ public class PurpleIRC extends JavaPlugin {
|
||||
public String smsgAlias = "/m";
|
||||
public String smsgReplyAlias = "/r";
|
||||
public CaseInsensitiveMap<String> privateMsgReply;
|
||||
|
||||
|
||||
public PurpleIRC() {
|
||||
this.MAINCONFIG = "MAIN-CONFIG";
|
||||
@ -309,6 +307,7 @@ public class PurpleIRC extends JavaPlugin {
|
||||
logError(ex.getMessage());
|
||||
}
|
||||
}
|
||||
getServer().getPluginManager().registerEvents(new IRCMessageListener(this), this);
|
||||
getServer().getPluginManager().registerEvents(new GamePlayerPlayerAchievementAwardedListener(this), this);
|
||||
getServer().getPluginManager().registerEvents(new GamePlayerGameModeChangeListener(this), this);
|
||||
getServer().getPluginManager().registerEvents(new GamePlayerChatListener(this), this);
|
||||
@ -355,7 +354,7 @@ public class PurpleIRC extends JavaPlugin {
|
||||
* Called when plugin is told to stop.
|
||||
*/
|
||||
@Override
|
||||
public void onDisable() {
|
||||
public void onDisable() {
|
||||
if (discHook != null) {
|
||||
logDebug("Disabling discHook ...");
|
||||
discHook.removeListener();
|
||||
@ -1004,7 +1003,7 @@ public class PurpleIRC extends JavaPlugin {
|
||||
m = "Players on " + host + "("
|
||||
+ players.length
|
||||
+ "): " + Joiner.on(", ")
|
||||
.join(players);
|
||||
.join(players);
|
||||
}
|
||||
return m;
|
||||
} else {
|
||||
@ -1755,14 +1754,13 @@ public class PurpleIRC extends JavaPlugin {
|
||||
} else {
|
||||
hookList.add(hookFormat(PL_PLACEHOLDERAPI, false));
|
||||
}
|
||||
|
||||
|
||||
if (isPluginEnabled(PL_DISCORDSRV)) {
|
||||
discHook = new DiscordSRVHook(this);
|
||||
} else {
|
||||
hookList.add(hookFormat(PL_DISCORDSRV, false));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void getPurpleHooks(CommandSender sender, boolean colors) {
|
||||
@ -1791,26 +1789,10 @@ public class PurpleIRC extends JavaPlugin {
|
||||
|
||||
public void broadcastToGame(final String message, final String permission) {
|
||||
getServer().getPluginManager().callEvent(new IRCMessageEvent(message, permission));
|
||||
String fixedMessage = message.replace("\u200B", "");
|
||||
if (broadcastChatToConsole) {
|
||||
logDebug("Broadcast All [" + permission + "]: " + fixedMessage);
|
||||
messageQueue.add(new Message(fixedMessage, permission));
|
||||
} else {
|
||||
logDebug("Broadcast Players [" + permission + "]: " + fixedMessage);
|
||||
for (Player player : getServer().getOnlinePlayers()) {
|
||||
if (player.hasPermission(permission)) {
|
||||
player.sendMessage(fixedMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void broadcastToPlayer(final Player player, final String message, final String permission) {
|
||||
getServer().getPluginManager().callEvent(new IRCMessageEvent(message, permission));
|
||||
String fixedMessage = message.replace("\u200B", "");
|
||||
if (player.hasPermission(permission)) {
|
||||
player.sendMessage(fixedMessage);
|
||||
}
|
||||
getServer().getPluginManager().callEvent(new IRCMessageEvent(message, permission, player));
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user