mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Advancement API Additions
This commit is contained in:
125
patches/api/0011-Advancement-API-Additions.patch
Normal file
125
patches/api/0011-Advancement-API-Additions.patch
Normal file
@@ -0,0 +1,125 @@
|
||||
From 6c32c9076b079fe824e24327006e5d1b6982fed1 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 Additions
|
||||
|
||||
---
|
||||
.../org/bukkit/advancement/Advancement.java | 9 ++++
|
||||
.../advancement/AdvancementDisplay.java | 45 +++++++++++++++++++
|
||||
.../org/bukkit/advancement/FrameType.java | 27 +++++++++++
|
||||
3 files changed, 81 insertions(+)
|
||||
create mode 100644 src/main/java/org/bukkit/advancement/AdvancementDisplay.java
|
||||
create mode 100644 src/main/java/org/bukkit/advancement/FrameType.java
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/advancement/Advancement.java b/src/main/java/org/bukkit/advancement/Advancement.java
|
||||
index 7c500997..432caadb 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 00000000..09b9f77d
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/org/bukkit/advancement/AdvancementDisplay.java
|
||||
@@ -0,0 +1,45 @@
|
||||
+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();
|
||||
+
|
||||
+ /**
|
||||
+ * 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 00000000..d1757f3d
|
||||
--- /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 + "]";
|
||||
+ }
|
||||
+}
|
||||
--
|
||||
2.20.1
|
||||
|
||||
171
patches/server/0025-Advancement-API-Additions.patch
Normal file
171
patches/server/0025-Advancement-API-Additions.patch
Normal file
@@ -0,0 +1,171 @@
|
||||
From cd22f7d586a7e9e4f86be9b3c4c2148584ba32a8 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||
Date: Fri, 31 May 2019 21:24:33 -0500
|
||||
Subject: [PATCH] Advancement API Additions
|
||||
|
||||
---
|
||||
.../net/minecraft/server/Advancement.java | 2 +-
|
||||
.../minecraft/server/AdvancementDisplay.java | 6 +++
|
||||
.../server/AdvancementFrameType.java | 14 ++++--
|
||||
.../advancement/CraftAdvancement.java | 6 +++
|
||||
.../advancement/CraftAdvancementDisplay.java | 43 +++++++++++++++++++
|
||||
5 files changed, 67 insertions(+), 4 deletions(-)
|
||||
create mode 100644 src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancementDisplay.java
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/Advancement.java b/src/main/java/net/minecraft/server/Advancement.java
|
||||
index 3ef2f4d2a..ac4c29f2b 100644
|
||||
--- a/src/main/java/net/minecraft/server/Advancement.java
|
||||
+++ b/src/main/java/net/minecraft/server/Advancement.java
|
||||
@@ -20,7 +20,7 @@ import org.apache.commons.lang3.ArrayUtils;
|
||||
public class Advancement {
|
||||
|
||||
private final Advancement a;
|
||||
- private final AdvancementDisplay b;
|
||||
+ private final AdvancementDisplay b; public AdvancementDisplay getDisplay() { return b; } // Purpur - OBFHELPER
|
||||
private final AdvancementRewards c;
|
||||
private final MinecraftKey d;
|
||||
private final Map<String, Criterion> e;
|
||||
diff --git a/src/main/java/net/minecraft/server/AdvancementDisplay.java b/src/main/java/net/minecraft/server/AdvancementDisplay.java
|
||||
index e8172d56f..dc6a0448d 100644
|
||||
--- a/src/main/java/net/minecraft/server/AdvancementDisplay.java
|
||||
+++ b/src/main/java/net/minecraft/server/AdvancementDisplay.java
|
||||
@@ -20,6 +20,7 @@ public class AdvancementDisplay {
|
||||
private final boolean h;
|
||||
private float i;
|
||||
private float j;
|
||||
+ public final org.bukkit.advancement.AdvancementDisplay bukkit = new org.bukkit.craftbukkit.advancement.CraftAdvancementDisplay(this); // Purpur
|
||||
|
||||
public AdvancementDisplay(ItemStack itemstack, IChatBaseComponent ichatbasecomponent, IChatBaseComponent ichatbasecomponent1, @Nullable MinecraftKey minecraftkey, AdvancementFrameType advancementframetype, boolean flag, boolean flag1, boolean flag2) {
|
||||
this.a = ichatbasecomponent;
|
||||
@@ -37,22 +38,27 @@ public class AdvancementDisplay {
|
||||
this.j = f1;
|
||||
}
|
||||
|
||||
+ public IChatBaseComponent getTitle() { return a(); } // Purpur - OBFHELPER
|
||||
public IChatBaseComponent a() {
|
||||
return this.a;
|
||||
}
|
||||
|
||||
+ public IChatBaseComponent getDescription() { return b(); } // Purpur - OBFHELPER
|
||||
public IChatBaseComponent b() {
|
||||
return this.b;
|
||||
}
|
||||
|
||||
+ public AdvancementFrameType getFrameType() { return e(); } // Purpur - OBFHELPER
|
||||
public AdvancementFrameType e() {
|
||||
return this.e;
|
||||
}
|
||||
|
||||
+ public boolean shouldAnnounceToChat() { return i(); } // Purpur - OBFHELPER
|
||||
public boolean i() {
|
||||
return this.g;
|
||||
}
|
||||
|
||||
+ public boolean isHidden() { return j(); } // Purpur - OBFHELPER
|
||||
public boolean j() {
|
||||
return this.h;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/AdvancementFrameType.java b/src/main/java/net/minecraft/server/AdvancementFrameType.java
|
||||
index a9c49a434..14a35ba4c 100644
|
||||
--- a/src/main/java/net/minecraft/server/AdvancementFrameType.java
|
||||
+++ b/src/main/java/net/minecraft/server/AdvancementFrameType.java
|
||||
@@ -1,14 +1,22 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
public enum AdvancementFrameType {
|
||||
-
|
||||
- TASK("task", 0, EnumChatFormat.GREEN), CHALLENGE("challenge", 26, EnumChatFormat.DARK_PURPLE), GOAL("goal", 52, EnumChatFormat.GREEN);
|
||||
+ // Purpur start
|
||||
+ TASK("task", 0, EnumChatFormat.GREEN, org.bukkit.advancement.FrameType.TASK),
|
||||
+ CHALLENGE("challenge", 26, EnumChatFormat.DARK_PURPLE, org.bukkit.advancement.FrameType.CHALLENGE),
|
||||
+ GOAL("goal", 52, EnumChatFormat.GREEN, org.bukkit.advancement.FrameType.GOAL);
|
||||
+ // Purpur end
|
||||
|
||||
private final String d;
|
||||
private final int e;
|
||||
private final EnumChatFormat f;
|
||||
|
||||
- private AdvancementFrameType(String s, int i, EnumChatFormat enumchatformat) {
|
||||
+ // Purpur start
|
||||
+ public final org.bukkit.advancement.FrameType bukkit;
|
||||
+
|
||||
+ AdvancementFrameType(String s, int i, EnumChatFormat enumchatformat, org.bukkit.advancement.FrameType bukkit) {
|
||||
+ this.bukkit = bukkit;
|
||||
+ // Purpur end
|
||||
this.d = s;
|
||||
this.e = i;
|
||||
this.f = enumchatformat;
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java
|
||||
index a5aadf285..36da44414 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java
|
||||
@@ -4,6 +4,7 @@ import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import net.minecraft.server.Advancement;
|
||||
import org.bukkit.NamespacedKey;
|
||||
+import org.bukkit.advancement.AdvancementDisplay;
|
||||
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
|
||||
|
||||
public class CraftAdvancement implements org.bukkit.advancement.Advancement {
|
||||
@@ -27,4 +28,9 @@ public class CraftAdvancement implements org.bukkit.advancement.Advancement {
|
||||
public Collection<String> getCriteria() {
|
||||
return Collections.unmodifiableCollection(handle.getCriteria().keySet());
|
||||
}
|
||||
+
|
||||
+ @Override
|
||||
+ public AdvancementDisplay getDisplay() {
|
||||
+ return getHandle().getDisplay() == null ? null : getHandle().getDisplay().bukkit;
|
||||
+ }
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancementDisplay.java b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancementDisplay.java
|
||||
new file mode 100644
|
||||
index 000000000..aed74fb18
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancementDisplay.java
|
||||
@@ -0,0 +1,43 @@
|
||||
+package org.bukkit.craftbukkit.advancement;
|
||||
+
|
||||
+import net.minecraft.server.AdvancementDisplay;
|
||||
+import org.bukkit.advancement.FrameType;
|
||||
+import org.bukkit.craftbukkit.util.CraftChatMessage;
|
||||
+
|
||||
+public class CraftAdvancementDisplay implements org.bukkit.advancement.AdvancementDisplay {
|
||||
+
|
||||
+ private final AdvancementDisplay handle;
|
||||
+
|
||||
+ public CraftAdvancementDisplay(AdvancementDisplay handle) {
|
||||
+ this.handle = handle;
|
||||
+ }
|
||||
+
|
||||
+ public AdvancementDisplay getHandle() {
|
||||
+ return handle;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public String getTitle() {
|
||||
+ return CraftChatMessage.fromComponent(handle.getTitle());
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public String getDescription() {
|
||||
+ return CraftChatMessage.fromComponent(handle.getDescription());
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public FrameType getFrameType() {
|
||||
+ return handle.getFrameType().bukkit;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean shouldAnnounceToChat() {
|
||||
+ return handle.shouldAnnounceToChat();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isHidden() {
|
||||
+ return handle.isHidden();
|
||||
+ }
|
||||
+}
|
||||
--
|
||||
2.20.1
|
||||
|
||||
Reference in New Issue
Block a user