소스 검색

Super Secret Anniversary Easter Egg! Also, update build files for RB

TheYeti 13 년 전
부모
커밋
173c2c19c8
4개의 변경된 파일82개의 추가작업 그리고 4개의 파일을 삭제
  1. 2 1
      Changelog.txt
  2. 1 1
      pom.xml
  3. 36 1
      src/main/java/com/gmail/nossr50/commands/mc/McmmoCommand.java
  4. 43 1
      src/main/java/com/gmail/nossr50/mcMMO.java

+ 2 - 1
Changelog.txt

@@ -1,7 +1,7 @@
 Changelog:
 #Versions without changelogs probably had very small misc fixes, like tweaks to the source code
 
-Version 1.2.09-dev
+Version 1.2.09
  - Fixed issue with Repair Mastery (Issue #47)
  - Made Arcane Forging fully configurable (Pull Request #52)
  - Made Fishing configurable (Pull Request #60)
@@ -19,6 +19,7 @@ Version 1.2.09-dev
  - Initial command alias framework added
  - Fixed abilities not handling Unbreaking items
  - Fix for treefeller glitch
+ - Super secret anniversary easter egg!
 
 Version 1.2.08
  - Changed Bukkit events to new event system

+ 1 - 1
pom.xml

@@ -2,7 +2,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.gmail.nossr50.mcMMO</groupId>
     <artifactId>mcMMO</artifactId>
-    <version>1.2.09-dev</version>
+    <version>1.2.09</version>
     <name>mcMMO</name>
     <url>https://github.com/TheYeti/mcMMO</url>
     <issueManagement>

+ 36 - 1
src/main/java/com/gmail/nossr50/commands/mc/McmmoCommand.java

@@ -6,12 +6,20 @@ import org.bukkit.command.Command;
 import org.bukkit.command.CommandExecutor;
 import org.bukkit.command.CommandSender;
 import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
 import org.getspout.spoutapi.player.SpoutPlayer;
 
 import com.gmail.nossr50.config.LoadProperties;
 import com.gmail.nossr50.locale.mcLocale;
+import com.gmail.nossr50.mcMMO;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
 
 public class McmmoCommand implements CommandExecutor {
+
 	@Override
 	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
 		if (!LoadProperties.mcmmoEnable) {
@@ -37,12 +45,39 @@ public class McmmoCommand implements CommandExecutor {
 		if (LoadProperties.spoutEnabled && player instanceof SpoutPlayer) {
 			SpoutPlayer sPlayer = (SpoutPlayer) player;
 			if (LoadProperties.donateMessage)
-				sPlayer.sendNotification("[mcMMO] Donate!", "Paypal theno1yeti@gmail.com", Material.CAKE);
+				player.sendMessage(ChatColor.GREEN + "[mcMMO] Donate! Paypal theno1yeti@gmail.com");
 		} else {
 			if (LoadProperties.donateMessage)
 				player.sendMessage(ChatColor.GREEN + "If you like my work you can donate via Paypal: theno1yeti@gmail.com");
 		}
 
+        GregorianCalendar cakedayStart =  new GregorianCalendar(2012, Calendar.FEBRUARY, 3);
+        GregorianCalendar cakedayEnd = new GregorianCalendar(2012, Calendar.FEBRUARY, 6);
+        GregorianCalendar day = new GregorianCalendar();
+        int cakeCheck = 0;
+
+        for (String cake : mcMMO.gotCake)
+        {
+            if (player.getName().equalsIgnoreCase(cake)) {
+                cakeCheck = 1;
+            }
+        }
+
+        if (cakeCheck == 0) {
+             if (getDateRange(day.getTime(), cakedayStart.getTime(), cakedayEnd.getTime()))
+            {
+                player.sendMessage(ChatColor.BLUE + "Happy 1 Year Anniversary!  In honor of all of");
+                player.sendMessage(ChatColor.BLUE + "nossr50's work and all the devs, have some cake!");
+            }
+            mcMMO.gotCake.add(player.getName());
+            player.getInventory().addItem(new ItemStack(Material.CAKE_BLOCK, 1));
+        }
+
 		return true;
 	}
+
+    private boolean getDateRange(Date date, Date start, Date end)
+    {
+        return !(date.before(start) || date.after(end));
+    }
 }

+ 43 - 1
src/main/java/com/gmail/nossr50/mcMMO.java

@@ -96,6 +96,8 @@ public class mcMMO extends JavaPlugin
 	public static Database database = null;
 	public Misc misc = new Misc(this);
 
+    public static ArrayList<String> gotCake;
+
 	//Config file stuff
 	LoadProperties config;
 	//Jar stuff
@@ -124,7 +126,35 @@ public class mcMMO extends JavaPlugin
 			//Catch all for versions not matching and no specific code being needed
 			else if(!vnum.equalsIgnoreCase(this.getDescription().getVersion())) updateFrom(-1);
 		}
-		
+		File cakeFile = new File(getDataFolder().getAbsolutePath() + File.separator + "cake");
+
+        if (!cakeFile.exists()) {
+            try {
+                cakeFile.createNewFile();
+            }
+            catch (IOException ex) {
+                System.out.println(ex);
+            }
+        }
+
+        gotCake = new ArrayList<String>();
+
+        try {
+			gotCake.clear();
+			BufferedReader reader = new BufferedReader(new FileReader(getDataFolder().getAbsolutePath() + File.separator + "players"));
+			String line = reader.readLine();
+
+			while(line != null) {
+				gotCake.add(line);
+				line = reader.readLine();
+			}
+
+			reader.close();
+			}
+		catch (Exception ex) {
+			System.out.println(ex);
+		}
+
 		mcPermissions.initialize(getServer());
 		
 		this.config = new LoadProperties(this);
@@ -255,6 +285,18 @@ public class mcMMO extends JavaPlugin
 		return permissions;
 	}
 	public void onDisable() {
+        try {
+			BufferedWriter writer = new BufferedWriter(new FileWriter(getDataFolder().getAbsolutePath() + File.separator + "cake"));
+			for (String player : gotCake) {
+				writer.write(player);
+				writer.newLine();
+			}
+			writer.close();
+		}
+		catch (Exception ex) {
+			System.out.println(ex);
+		}
+
 		Bukkit.getServer().getScheduler().cancelTasks(this);
 		System.out.println("mcMMO was disabled."); 
 	}