Files
Purpur/patches/server/0021-Advancement-API-Additions.patch
William Blake Galbreath 8ad9357437 Updated Upstream (Paper)
Upstream has released updates that appears to apply and compile correctly

Paper Changes:
19ff55ef Update upstream B/CB
79710332 Update upstream CB
19de9af6 1.15.2 update (#2887)
d4ae43fc Updated Upstream (Bukkit/CraftBukkit)
9c2d9a5f [CI-SKIP] Rebuild patches
86a4b752 Fix items not falling correctly (Resolves #2835) (#2872)
35472de2 Port activation range improvement patch (#2763)
617f6033 Add effect to block break naturally (#2819)
f63cfe00 Updated Upstream (Bukkit/CraftBukkit)
00860e4e [CI-SKIP] rebuild patches
3d519668 Prevent sync chunk loads when villagers try to find beds (#2855)
2020-01-21 22:17:22 -06:00

184 lines
7.1 KiB
Diff

From 507d771b4b5a27cf3dc9232f4af6b62001b760d9 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 | 4 +-
.../minecraft/server/AdvancementDisplay.java | 8 +++-
.../server/AdvancementFrameType.java | 14 ++++--
.../advancement/CraftAdvancement.java | 6 +++
.../advancement/CraftAdvancementDisplay.java | 48 +++++++++++++++++++
5 files changed, 74 insertions(+), 6 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 4b85551fa..c9df67464 100644
--- a/src/main/java/net/minecraft/server/Advancement.java
+++ b/src/main/java/net/minecraft/server/Advancement.java
@@ -64,8 +64,8 @@ public class Advancement {
return this.parent;
}
- @Nullable
- public AdvancementDisplay c() {
+ @Nullable public AdvancementDisplay getDisplay() { return c(); } // Purpur - OBFHELPER
+ @Nullable public AdvancementDisplay c() {
return this.display;
}
diff --git a/src/main/java/net/minecraft/server/AdvancementDisplay.java b/src/main/java/net/minecraft/server/AdvancementDisplay.java
index e8172d56f..edfd7f84a 100644
--- a/src/main/java/net/minecraft/server/AdvancementDisplay.java
+++ b/src/main/java/net/minecraft/server/AdvancementDisplay.java
@@ -16,10 +16,11 @@ public class AdvancementDisplay {
private final MinecraftKey d;
private final AdvancementFrameType e;
private final boolean f;
- private final boolean g;
+ private boolean g; public void setShouldAnnounceToChat(boolean announce) { this.g = announce; } // Purpur - OBFHELPER - un-finalize
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..dae18cd80
--- /dev/null
+++ b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancementDisplay.java
@@ -0,0 +1,48 @@
+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 void setShouldAnnounceToChat(boolean announce) {
+ handle.setShouldAnnounceToChat(announce);
+ }
+
+ @Override
+ public boolean isHidden() {
+ return handle.isHidden();
+ }
+}
--
2.24.0