package tv.mineinthebox.essentials.events.customevents; import java.util.ArrayList; import java.util.List; import java.util.Set; import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerEvent; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.instances.xEssentialsOfflinePlayer; import tv.mineinthebox.essentials.interfaces.XOfflinePlayer; @SuppressWarnings("deprecation") public class PlayerChatHighLightEvent extends PlayerEvent implements Cancellable { private PlayerChatEvent e; private String[] CalledPlayerNames; private static final HandlerList handlers = new HandlerList(); private final xEssentials pl; public PlayerChatHighLightEvent(PlayerChatEvent e, String[] CalledPlayerNames, xEssentials pl) { super(e.getPlayer()); this.e = e; this.CalledPlayerNames = CalledPlayerNames; this.pl = pl; } /** * @author xize * @param get all players called within this chat, this also count for players being offline. * @return xEssentialsOfflinePlayer[] */ public xEssentialsOfflinePlayer[] getCalledPlayers() { List<XOfflinePlayer> offPlayers = new ArrayList<XOfflinePlayer>(); for(int i = 0; i < CalledPlayerNames.length; i++) { if(!pl.getManagers().getPlayerManager().getOfflinePlayer(CalledPlayerNames[i]).equals(null) || pl.getManagers().getPlayerManager().getOfflinePlayer(CalledPlayerNames[i]) != null) { offPlayers.add(pl.getManagers().getPlayerManager().getOfflinePlayer(CalledPlayerNames[i])); } } xEssentialsOfflinePlayer[] offs = offPlayers.toArray(new xEssentialsOfflinePlayer[offPlayers.size()]); return offs; } /** * @author xize * @param get a unmodified array of player names * @return String[] */ public String[] getCalledPlayersAsStringArray() { return CalledPlayerNames; } /** * @author xize * @param gets all the Recipients receiving the chat. * @return Set<Player> */ public Set<Player> getRecipients() { return e.getRecipients(); } /** * @author xize * @param gets the message of the chat * @return String */ public String getMessage() { return e.getMessage(); } /** * @author xize * @param gets the HashTag * @return String */ public String getHashTag() { return pl.getConfiguration().getChatConfig().getHashTag(); } /** * @author xize * @param replace the chat message. * @return void */ public void setMessage(String message) { e.setMessage(message); } /** * @author xize * @param gets the suffix of the begin of the chat, works with bPermissions, Groupmanager, * @return */ public String getSuffix() { return pl.getConfiguration().getChatConfig().getSuffixByPlayer(player); } @Override public boolean isCancelled() { if(e.isCancelled()) { return true; } return false; } @Override public void setCancelled(boolean bol) { e.setCancelled(bol); } public HandlerList getHandlers() { return handlers; } public static HandlerList getHandlerList() { return handlers; } }