package tv.mineinthebox.essentials.events.chat; import org.bukkit.ChatColor; import org.bukkit.Effect; import org.bukkit.Sound; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerChatTabCompleteEvent; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.events.customevents.PlayerChatHighLightEvent; import tv.mineinthebox.essentials.interfaces.XOfflinePlayer; import tv.mineinthebox.essentials.interfaces.XPlayer; public class ChatHighLightEvent implements Listener { private final xEssentials pl; public ChatHighLightEvent(xEssentials pl) { this.pl = pl; } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = false) public void OnHighLight(PlayerChatHighLightEvent e) { for(String name : e.getCalledPlayersAsStringArray()) { if(!e.getMessage().contains(pl.getConfiguration().getChatConfig().getHashTag()+name)) { if(pl.getManagers().getPlayerManager().isOnline(name)) { XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(name); if(xp.isVanished()) { e.setMessage(e.getMessage().replaceAll(name, ChatColor.GRAY+"[offline]"+e.getHashTag()+name+e.getSuffix())); } else { xp.getBukkitPlayer().getWorld().playEffect(xp.getBukkitPlayer().getLocation(), Effect.MOBSPAWNER_FLAMES, 100); xp.getBukkitPlayer().playSound(xp.getBukkitPlayer().getLocation(), Sound.BLOCK_NOTE_HARP, 10, 100); xp.getBukkitPlayer().playSound(xp.getBukkitPlayer().getLocation(), Sound.BLOCK_NOTE_BASEDRUM, 10, 100); xp.getBukkitPlayer().playSound(xp.getBukkitPlayer().getLocation(), Sound.BLOCK_NOTE_SNARE, 10, 100); e.setMessage(e.getMessage().replaceAll(name, e.getHashTag()+name+e.getSuffix())); } } else { if(name.startsWith("town-")) { e.setMessage(e.getMessage().replaceAll(name, ChatColor.DARK_GREEN+"[Town]"+e.getHashTag()+name+e.getSuffix())); } else { e.setMessage(e.getMessage().replaceAll(name, ChatColor.GRAY+"[offline]"+e.getHashTag()+name+e.getSuffix())); } } } } } @EventHandler public void onTabComplete(PlayerChatTabCompleteEvent e) { e.getTabCompletions().clear(); for(XOfflinePlayer off : pl.getManagers().getPlayerManager().getOfflinePlayers()) { if(off.getName().toUpperCase().startsWith(e.getLastToken().toUpperCase())) { e.getTabCompletions().add(off.getName()); } } } }