From c65db504cbfde1595c4665f0118f9362ec5a2bb9 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath 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 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 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