package com.sijobe.spc.command; import com.sijobe.spc.util.FontColour; import com.sijobe.spc.validation.Parameter; import com.sijobe.spc.validation.ParameterString; import com.sijobe.spc.validation.Parameters; import com.sijobe.spc.wrapper.CommandSender; import com.sijobe.spc.wrapper.Minecraft; import com.sijobe.spc.wrapper.Player; import com.sijobe.spc.wrapper.Stats; import java.util.List; /** * Gives achievements to the player * * TODO: Achievement isn't triggered correctly for some reason * * @author simo_415 * @version 1.0 */ @Command ( name = "achievement", description = "Allows you to list or unlock all achievements", videoURL = "http://www.youtube.com/watch?v=aLS0OmVt0ac", version = "1.4.6", enabled = false ) public class Achievement extends StandardCommand { /** * Parameters of the command */ private static final Parameters PARAMETERS = new Parameters ( new Parameter[] { new ParameterString("<list|unlock [NAME]>", false, new String[] {"list", "unlock"}), new ParameterString("", true) } ); @Override public void execute(CommandSender sender, List<?> params) { if (((String)params.get(0)).equalsIgnoreCase("list")) { String achievements = ""; for (String name : Stats.getAchievementNames()) { achievements += name + ", "; } achievements = achievements.substring(0, achievements.length() - 2); sender.sendMessageToPlayer(achievements); } else if (((String)params.get(0)).equalsIgnoreCase("unlock")) { Player player = Minecraft.getPlayer(); if (params.size() == 2) { if (player.addAchievement((String)params.get(1))) { player.sendChatMessage("The " + FontColour.AQUA + (String)params.get(1) + FontColour.WHITE + " achievement was unlocked."); } } else { for (String name : Stats.getAchievementNames()) { player.addAchievement(name); } } } else { assert false : "Unknown achievement argument provided."; } } @Override public Parameters getParameters() { return PARAMETERS; } @Override public boolean isEnabled() { return Minecraft.isSinglePlayer(); } }