| 
					
				 | 
			
			
				@@ -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<String> hasCelebrated; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static final List<Color> ALL_COLORS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static final List<ChatColor> ALL_CHAT_COLORS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static final List<ChatColor> CHAT_FORMATS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    static { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Color> colors = new ArrayList<Color>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<ChatColor> chatColors = new ArrayList<ChatColor>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<ChatColor> chatFormats = new ArrayList<ChatColor>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        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<Color> colorChoose() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Collections.shuffle(ALL_COLORS, Misc.getRandom()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        int numberOfColors = Misc.getRandom().nextInt(ALL_COLORS.size() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (numberOfColors == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            numberOfColors = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<Color> chosenColors = ALL_COLORS.subList(0, numberOfColors); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return new ArrayList<Color>(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<Color> ALL_COLORS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private static final List<ChatColor> 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<ChatColor>(16); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (ChatColor c : ChatColor.values()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (c.isColor()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ALL_CHAT_COLORS.add(c); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Collections.shuffle(ALL_CHAT_COLORS, Misc.getRandom()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |