From bc51505150c5efad491d0ca460c1d9ba74e1c4cc Mon Sep 17 00:00:00 2001 From: GJ Date: Fri, 18 Oct 2013 11:18:29 -0400 Subject: [PATCH] More cleanup. --- .../gmail/nossr50/util/HolidayManager.java | 100 +++++++----------- 1 file changed, 39 insertions(+), 61 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/util/HolidayManager.java b/src/main/java/com/gmail/nossr50/util/HolidayManager.java index d1fef1899..c94913dc4 100644 --- a/src/main/java/com/gmail/nossr50/util/HolidayManager.java +++ b/src/main/java/com/gmail/nossr50/util/HolidayManager.java @@ -7,7 +7,6 @@ import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.Calendar; import java.util.Collections; import java.util.Date; @@ -16,6 +15,7 @@ import java.util.List; import org.bukkit.ChatColor; import org.bukkit.Color; +import org.bukkit.DyeColor; import org.bukkit.FireworkEffect; import org.bukkit.FireworkEffect.Type; import org.bukkit.command.CommandSender; @@ -25,11 +25,43 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.meta.FireworkMeta; import com.gmail.nossr50.mcMMO; +import com.google.common.collect.ImmutableList; public final class HolidayManager { static String anniversaryFilePath = mcMMO.getFlatFileDirectory() + "anniversary"; private static ArrayList hasCelebrated; + private static final List ALL_COLORS; + private static final List ALL_CHAT_COLORS; + private static final List CHAT_FORMATS; + + static { + List colors = new ArrayList(); + List chatColors = new ArrayList(); + List chatFormats = new ArrayList(); + + for (ChatColor color : ChatColor.values()) { + if (color.isColor()) { + chatColors.add(color); + } + else { + chatFormats.add(color); + } + } + + for (DyeColor color : DyeColor.values()) { + colors.add(color.getFireworkColor()); + } + + Collections.shuffle(chatColors, Misc.getRandom()); + Collections.shuffle(colors, Misc.getRandom()); + Collections.shuffle(chatFormats, Misc.getRandom()); + + ALL_CHAT_COLORS = ImmutableList.copyOf(chatColors); + ALL_COLORS = ImmutableList.copyOf(colors); + CHAT_FORMATS = ImmutableList.copyOf(chatFormats); + } + private HolidayManager() {} // This gets called onEnable @@ -102,7 +134,7 @@ public final class HolidayManager { if (sender instanceof Player) { final int firework_amount = 10; for (int i = 0; i < firework_amount; i++) { - int delay = (int) (Misc.getRandom().nextDouble() * 3 * 20) + 4; + int delay = (int) (Misc.getRandom().nextDouble() * 3 * Misc.TICK_CONVERSION_FACTOR) + 4; mcMMO.p.getServer().getScheduler().runTaskLater(mcMMO.p, new Runnable() { @Override public void run() { @@ -138,18 +170,7 @@ public final class HolidayManager { * b i k * b i k */ - String colorA = chatColorChoose(); - String colorB = chatColorChoose(); - String colorC = chatColorChoose(); - String colorD = chatColorChoose(); - String colorE = chatColorChoose(); - String colorF = chatColorChoose(); - String colorG = chatColorChoose(); - String colorH = chatColorChoose(); - String colorI = chatColorChoose(); - String colorJ = chatColorChoose(); - String colorK = chatColorChoose(); - Object[] colorParams = new Object[]{colorA, colorB, colorC, colorD, colorE, colorF, colorG, colorH, colorI, colorJ, colorK}; + Object[] colorParams = new Object[]{chatColorChoose(), chatColorChoose(), chatColorChoose(), chatColorChoose(), chatColorChoose(), chatColorChoose(), chatColorChoose(), chatColorChoose(), chatColorChoose(), chatColorChoose(), chatColorChoose()}; sender.sendMessage(String.format(" %1$s.''. %4$s. %7$s*''* %10$s:_\\/_: %11$s.", colorParams)); sender.sendMessage(String.format(" %1$s:_\\/_: %4$s_\\(/_ %5$s.:.%7$s*_\\/_* %10$s: /\\ : %11$s.'.:.'.", colorParams)); sender.sendMessage(String.format(" %2$s.''.%1$s: /\\ : %4$s/)\\ %5$s':'%7$s* /\\ * %9$s: %10$s'..'. %11$s-=:o:=-", colorParams)); @@ -183,61 +204,18 @@ public final class HolidayManager { } private static List colorChoose() { - Collections.shuffle(ALL_COLORS, Misc.getRandom()); - - int numberOfColors = Misc.getRandom().nextInt(ALL_COLORS.size() + 1); - - if (numberOfColors == 0) { - numberOfColors = 1; - } - - List chosenColors = ALL_COLORS.subList(0, numberOfColors); - - return new ArrayList(chosenColors); // don't let caller modify ALL_COLORS + return ALL_COLORS.subList(0, Math.max(Misc.getRandom().nextInt(ALL_COLORS.size() + 1), 1)); } private static String chatColorChoose() { StringBuilder ret = new StringBuilder(ALL_CHAT_COLORS.get(Misc.getRandom().nextInt(ALL_CHAT_COLORS.size())).toString()); - for (ChatColor CHAT_FORMAT : CHAT_FORMATS) { - if (Misc.getRandom().nextInt(4) == 0) { - ret.append(CHAT_FORMAT); + for (ChatColor chatFormat : CHAT_FORMATS) { + if (Misc.getRandom().nextInt(CHAT_FORMATS.size()) == 0) { + ret.append(chatFormat); } } return ret.toString(); } - - private static final List ALL_COLORS; - private static final List ALL_CHAT_COLORS; - private static final ChatColor[] CHAT_FORMATS = new ChatColor[]{ChatColor.BOLD, ChatColor.ITALIC, ChatColor.UNDERLINE, ChatColor.STRIKETHROUGH}; - - static { - ALL_COLORS = Arrays.asList( - Color.AQUA, - Color.BLACK, - Color.BLUE, - Color.FUCHSIA, - Color.GRAY, - Color.GREEN, - Color.LIME, - Color.MAROON, - Color.NAVY, - Color.OLIVE, - Color.ORANGE, - Color.PURPLE, - Color.RED, - Color.SILVER, - Color.TEAL, - Color.WHITE, - Color.YELLOW - ); - ALL_CHAT_COLORS = new ArrayList(16); - for (ChatColor c : ChatColor.values()) { - if (c.isColor()) { - ALL_CHAT_COLORS.add(c); - } - } - Collections.shuffle(ALL_CHAT_COLORS, Misc.getRandom()); - } }