package mock.util; import java.sql.Timestamp; import java.util.*; import java.util.Map.Entry; import java.util.logging.Logger; import org.bukkit.ChatColor; import org.bukkit.entity.Player; import com.garbagemule.MobArena.Msg; public class MockLogger extends Logger { private static Map loggers = new TreeMap(); private TreeMap entries = new TreeMap(); /** * Private constructor to ensure that all MockLoggers exist within this class as singletons. */ /*private MockLogger() { this.entries = new TreeMap(); }*/ protected MockLogger(String name, String resourceBundleName) { super(name, resourceBundleName); } /** * All MockLogger objects are singletons. * @param name the name of a MockLogger * @return the MockLogger with the input name, or a new MockLogger if it didn't already exist. */ public static MockLogger getLogger(String name) { if (!loggers.containsKey(name)) loggers.put(name, new MockLogger(name, null)); return loggers.get(name); } public void log(String msg) { Timestamp time = new Timestamp(new Date().getTime()); this.entries.put(time, msg); } public int size() { return entries.size(); } public Entry getLastEntry() { if (entries.isEmpty()) return null; return entries.lastEntry(); } public Entry findEntry(String msg) { for (Entry entry : entries.entrySet()) { if (entry.getValue().equals(msg)) return entry; } return null; } public Entry findEntryAfterTime(String msg, Timestamp time) { for (Entry entry : entries.entrySet()) { if (entry.getKey().compareTo(time) >= 0 && entry.getValue().equals(msg)) return entry; } return null; } public static String compileMsgToPlayer(Player p, String msg) { return ChatColor.GREEN + "[MobArena] " + ChatColor.WHITE + msg; } public static String compileMsgToPlayer(Player p, Msg msg) { return compileMsgToPlayer(p, msg.toString()); } }