mirror of https://github.com/YatopiaMC/Yatopia.git
124 lines
3.5 KiB
Diff
124 lines
3.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
|
Date: Fri, 31 May 2019 21:24:21 -0500
|
|
Subject: [PATCH] Advancement API
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/advancement/Advancement.java b/src/main/java/org/bukkit/advancement/Advancement.java
|
|
index 7c5009974ac8d64d0e738e60cec45acb0d4ca89a..432caadba1b08bb94cdb4ccf552e42400e0db338 100644
|
|
--- a/src/main/java/org/bukkit/advancement/Advancement.java
|
|
+++ b/src/main/java/org/bukkit/advancement/Advancement.java
|
|
@@ -3,6 +3,7 @@ package org.bukkit.advancement;
|
|
import java.util.Collection;
|
|
import org.bukkit.Keyed;
|
|
import org.jetbrains.annotations.NotNull;
|
|
+import org.jetbrains.annotations.Nullable;
|
|
|
|
/**
|
|
* Represents an advancement that may be awarded to a player. This class is not
|
|
@@ -17,4 +18,12 @@ public interface Advancement extends Keyed {
|
|
*/
|
|
@NotNull
|
|
Collection<String> getCriteria();
|
|
+
|
|
+ /**
|
|
+ * Gets the display properties of this advancement
|
|
+ *
|
|
+ * @return The display properties
|
|
+ */
|
|
+ @Nullable
|
|
+ AdvancementDisplay getDisplay();
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/advancement/AdvancementDisplay.java b/src/main/java/org/bukkit/advancement/AdvancementDisplay.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..bca3d112e2397b26ba6ccb6cd41e406caae27c5c
|
|
--- /dev/null
|
|
+++ b/src/main/java/org/bukkit/advancement/AdvancementDisplay.java
|
|
@@ -0,0 +1,53 @@
|
|
+package org.bukkit.advancement;
|
|
+
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+public interface AdvancementDisplay {
|
|
+ /**
|
|
+ * Get the title of this advancement
|
|
+ *
|
|
+ * @return Title text
|
|
+ */
|
|
+ @NotNull
|
|
+ String getTitle();
|
|
+
|
|
+ /**
|
|
+ * Get the description of this advancement
|
|
+ *
|
|
+ * @return Description text
|
|
+ */
|
|
+ @NotNull
|
|
+ String getDescription();
|
|
+
|
|
+ /**
|
|
+ * Get the frame type of this advancement
|
|
+ *
|
|
+ * @return Frame type
|
|
+ */
|
|
+ @NotNull
|
|
+ FrameType getFrameType();
|
|
+
|
|
+ /**
|
|
+ * Get if this advancement should be announced in chat when completed
|
|
+ *
|
|
+ * @return True if should announce when completed
|
|
+ */
|
|
+ boolean shouldAnnounceToChat();
|
|
+
|
|
+ /**
|
|
+ * Set if this advancement should be announced in chat when completed
|
|
+ *
|
|
+ * @param announce True or false
|
|
+ *
|
|
+ */
|
|
+ void setShouldAnnounceToChat(boolean announce);
|
|
+
|
|
+ /**
|
|
+ * Get if this advancement (and all it's children) is hidden from the advancement screen until it has been completed
|
|
+ * <p>
|
|
+ * This has no effect on root advancements themselves, but will alter their children
|
|
+ *
|
|
+ * @return True if hidden until completed
|
|
+ */
|
|
+ boolean isHidden();
|
|
+}
|
|
diff --git a/src/main/java/org/bukkit/advancement/FrameType.java b/src/main/java/org/bukkit/advancement/FrameType.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..d1757f3d456ff9efce26ce8baa1d16d896908cc2
|
|
--- /dev/null
|
|
+++ b/src/main/java/org/bukkit/advancement/FrameType.java
|
|
@@ -0,0 +1,27 @@
|
|
+package org.bukkit.advancement;
|
|
+
|
|
+import org.bukkit.ChatColor;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+public enum FrameType {
|
|
+ TASK(ChatColor.GREEN),
|
|
+ CHALLENGE(ChatColor.DARK_PURPLE),
|
|
+ GOAL(ChatColor.GREEN);
|
|
+
|
|
+ private final ChatColor color;
|
|
+
|
|
+ FrameType(ChatColor color) {
|
|
+ this.color = color;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public ChatColor getColor() {
|
|
+ return color;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public String toString() {
|
|
+ return "FrameType[name=" + name() + ",color=" + color + "]";
|
|
+ }
|
|
+}
|