package me.DDoS.MCCasino.message; import me.DDoS.MCCasino.MCCasino; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; /** * * @author DDoS */ public class MessageSender { private final String mainString; private final MessageProperty msgProp; private final boolean excludeWinner; private final int radius; public MessageSender(String mainString, MessageProperty msgProp, boolean excludeWinner, int radius) { this.mainString = colorize(mainString); this.msgProp = msgProp; this.excludeWinner = excludeWinner; this.radius = radius; } public void sendAlert(Player player, int amount, Material item) { final String msg = getString(player.getDisplayName(), amount, item); switch (msgProp) { case PLAYER: player.sendMessage(msg); break; case PLAYERS_NEARBY: for (Player p : player.getWorld().getPlayers()) { if (p.getLocation().distanceSquared(player.getLocation()) <= radius) { if (excludeWinner && p.equals(player)) { continue; } p.sendMessage(msg); } } break; case WORLD: for (Player p : player.getWorld().getPlayers()) { if (excludeWinner && p.equals(player)) { continue; } p.sendMessage(msg); } break; case SERVER: Bukkit.broadcastMessage(msg); break; case CONSOLE_ONLY: break; } MCCasino.log.info(msg); } private String getString(String playerName, int amount, Material item) { String finalString; finalString = mainString.replaceAll("\\Q$name$\\E", colorize(playerName)); finalString = finalString.replaceAll("\\Q$amount$\\E", amount + ""); if (item != null) { finalString = finalString.replaceAll("\\Q$item$\\E", item.name().toLowerCase()); } return finalString; } private String colorize(String txt) { return txt.replaceAll("\\Q$\\E([0-9[a-fA-F]])\\Q$\\E", "\u00A7$1"); } }