package com.nyancraft.reportrts.util; import java.text.MessageFormat; import org.bukkit.ChatColor; import com.nyancraft.reportrts.RTSFunctions; import com.nyancraft.reportrts.ReportRTS; public class Message { private static String parse(String key, Object ... params ){ Object prop = ReportRTS.getMessageHandler().messageMap.get(key); if(prop == null) { if(!ReportRTS.getMessageHandler().getMessageConfig().getDefaults().contains(key)) return "Missing message <" + key + "> in ReportRTS/messages.yml, no default found."; ReportRTS.getMessageHandler().messageMap.put(key, ReportRTS.getMessageHandler().getMessageConfig().getDefaults().getString(key)); ReportRTS.getMessageHandler().getMessageConfig().set(key, ReportRTS.getMessageHandler().getMessageConfig().getDefaults().getString(key)); prop = ReportRTS.getMessageHandler().getMessageConfig().getDefaults().getString(key); ReportRTS.getMessageHandler().saveMessageConfig(); } return MessageFormat.format(parseColors((String) prop), params); } public static String parseColors(String msg){ String message = msg; for(ChatColor color : ChatColor.values()){ String colorKey = "%" + color.name().toLowerCase() + "%"; if(message.contains(colorKey)){ message = message.replaceAll(colorKey, color.toString()); } } return message; } public static void debug(String name, String className, double start, String cmd, String[] args){ String arguments = RTSFunctions.implode(args, " "); ReportRTS.getPlugin().getLogger().info(name + " " + className + " took " + RTSFunctions.getTimeSpent(start) + "ms: " + cmd + " " + arguments); } /** Easy access messages below. **/ public static String broadcast(Object ... params) { return parse("broadcast", params); } public static String banUser(String sender, String player) { return parse("ban-user", sender, player); } public static String banRemove(String sender, String player) { return parse("ban-remove", sender, player); } public static String error(Object ... params) { return parse("error", params); } public static String errorBanned() { return parse("error-banned"); } public static String errorBanUser(String player) { return parse("error-ban-user", player); } public static String errorUnbanUser(String player) { return parse("error-unban-user", player); } public static String errorPermission(String ... params) { return parse("error-permission", params); } public static String errorTicketStatus() { return parse("error-ticket-status"); } public static String errorTicketNotClosed(String ticketId) { return parse("error-ticket-not-closed",ticketId); } public static String errorTicketNaN(String param) { return parse("error-ticket-nan", param); } public static String errorTicketClaim(int ticketId, String player) { return parse("error-ticket-claim", ticketId, player); } public static String errorTicketOwner() { return parse("error-ticket-owner"); } public static String errorUserNotExists(String player) { return parse("error-user-not-exists", player); } public static String errorUserNotSpecified() { return parse("error-user-not-specified"); } public static String teleport(String ticketId) { return parse("teleport", ticketId); } public static String teleportXServer(String cmd) { return parse("teleport-x-server", cmd); } public static String ticketAssign(String player, int ticketId) { return parse("ticket-assign", player, ticketId); } public static String ticketAssignUser(String player) { return parse("ticket-assign-user", player); } public static String ticketUnresolved(Object ... params) { return parse("ticket-unresolved", params); } public static String ticketUnresolvedHeld(Object ... params) { return parse("ticket-unresolved-held", params); } public static String ticketUnclaim(String player, String ticketId) { return parse("ticket-unclaim", player, ticketId); } public static String ticketUnclaimUser(String player, int ticketId) { return parse("ticket-unclaim-user", player, ticketId); } public static String ticketComment(String ticketId, String player) { return parse("ticket-comment", ticketId, player); } public static String ticketCommentText(String player, String comment) { return parse("ticket-comment-text", player, comment); } public static String ticketCommentUser(String ticketId) { return parse("ticket-comment-user", ticketId); } public static String ticketClaim(String player, String ticketId) { return parse("ticket-claim", player, ticketId); } public static String ticketClaimUser(String player) { return parse("ticket-claim-user", player); } public static String ticketHold(String ticketId, String player) { return parse("ticket-hold", ticketId, player); } public static String ticketHoldText(String ... params) { return parse("ticket-hold-text", params); } public static String ticketHoldUser(String player, int ticketId) { return parse("ticket-hold-user", player, ticketId); } public static String ticketClose(String ticketId, String player) { return parse("ticket-close", ticketId, player); } public static String ticketCloseUser(String ticketId, String player) { return parse("ticket-close-user", ticketId, player); } public static String ticketCloseOffline() { return parse("ticket-close-offline"); } public static String ticketCloseOfflineMulti(int amount, String cmd) { return parse("ticket-close-offline-multi", amount, cmd); } public static String ticketCloseText(String ... params) { return parse("ticket-close-text", params); } public static String ticketDuplicate() { return parse("ticket-duplicate"); } public static String ticketNotExists(int ticketId) { return parse("ticket-not-exists", ticketId); } public static String ticketNotClaimed(int ticketId) { return parse("ticket-not-claimed", ticketId); } public static String ticketNotOpen(int ticketId) { return parse("ticket-not-open", ticketId); } public static String ticketText(String message) { return parse("ticket-text", message); } public static String ticketOpen(String player, String ticketId) { return parse("ticket-open", player, ticketId); } public static String ticketOpenUser(String ticketId) { return parse("ticket-open-user", ticketId); } public static String ticketReopen(String player, String ticketId) { return parse("ticket-reopen", player, ticketId); } public static String ticketReadNone() { return parse("ticket-read-none"); } public static String ticketReadNoneSelf() { return parse("ticket-read-none-self"); } public static String ticketReadNoneHeld() { return parse("ticket-read-none-held"); } public static String ticketReadNoneClosed() { return parse("ticket-read-none-closed"); } public static String ticketTooShort(int words) { return parse("ticket-too-short", words); } public static String ticketTooMany() { return parse("ticket-too-many"); } public static String ticketTooFast(long ticketId) { return parse("ticket-too-fast", ticketId); } public static String staffListSeparator(String ... params) { return parse("staff-list-separator", params); } public static String staffListEmpty(String ... params) { return parse("staff-list-empty", params); } public static String staffListOnline(String ... params) { return parse("staff-list-online", params); } public static String outdated(String version) { return parse("plugin-outdated", version); } public static String setup() { return parse("plugin-not-setup"); } }