summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/bukkit/craftbukkit/CraftAchievement.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/bukkit/craftbukkit/CraftAchievement.java')
-rw-r--r--src/main/java/org/bukkit/craftbukkit/CraftAchievement.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftAchievement.java b/src/main/java/org/bukkit/craftbukkit/CraftAchievement.java
new file mode 100644
index 00000000..f5897e58
--- /dev/null
+++ b/src/main/java/org/bukkit/craftbukkit/CraftAchievement.java
@@ -0,0 +1,44 @@
+package org.bukkit.craftbukkit;
+
+import org.bukkit.Achievement;
+
+import com.google.common.base.CaseFormat;
+import com.google.common.collect.BiMap;
+import com.google.common.collect.ImmutableBiMap;
+import com.google.common.collect.ImmutableMap;
+
+public class CraftAchievement {
+ private static final BiMap<String, Achievement> achievements;
+ static {
+ ImmutableMap<String, Achievement> specialCases = ImmutableMap.<String, Achievement>builder()
+ .put("achievement.buildWorkBench", Achievement.BUILD_WORKBENCH)
+ .put("achievement.diamonds", Achievement.GET_DIAMONDS)
+ .put("achievement.portal", Achievement.NETHER_PORTAL)
+ .put("achievement.ghast", Achievement.GHAST_RETURN)
+ .put("achievement.theEnd", Achievement.END_PORTAL)
+ .put("achievement.theEnd2", Achievement.THE_END)
+ .put("achievement.blazeRod", Achievement.GET_BLAZE_ROD)
+ .put("achievement.potion", Achievement.BREW_POTION)
+ .build();
+
+ ImmutableBiMap.Builder<String, Achievement> builder = ImmutableBiMap.<String, Achievement>builder();
+ for (Achievement achievement : Achievement.values()) {
+ if (specialCases.values().contains(achievement)) {
+ continue;
+ }
+ builder.put("achievement."+CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, achievement.name()), achievement);
+ }
+
+ builder.putAll(specialCases);
+
+ achievements = builder.build();
+ }
+
+ public static String getAchievementName(Achievement material) {
+ return achievements.inverse().get(material);
+ }
+
+ public static Achievement getAchievement(String name) {
+ return achievements.get(name);
+ }
+}