From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 31 May 2019 21:24:33 -0500 Subject: [PATCH] Advancement API diff --git a/src/main/java/net/minecraft/advancements/Advancement.java b/src/main/java/net/minecraft/advancements/Advancement.java index 2f3d9e5b849093027d3c2ef434494cd600f52a31..23567430901284ab9d4d4873e53a1c8a06da6862 100644 --- a/src/main/java/net/minecraft/advancements/Advancement.java +++ b/src/main/java/net/minecraft/advancements/Advancement.java @@ -78,7 +78,7 @@ public class Advancement { public final @Nullable AdvancementDisplay getAdvancementDisplay() { return this.c(); } // Paper - OBFHELPER @Nullable - public AdvancementDisplay c() { + public AdvancementDisplay c() { return getDisplay(); } public AdvancementDisplay getDisplay() { // Purpur return this.display; } diff --git a/src/main/java/net/minecraft/advancements/AdvancementDisplay.java b/src/main/java/net/minecraft/advancements/AdvancementDisplay.java index adc6779e53e7b2ee04a80e2ea714e3378b8e6f39..3335c96ec15eb8d8f0b67f51846038f728f6f9fc 100644 --- a/src/main/java/net/minecraft/advancements/AdvancementDisplay.java +++ b/src/main/java/net/minecraft/advancements/AdvancementDisplay.java @@ -25,10 +25,11 @@ public class AdvancementDisplay { private final MinecraftKey d; private final AdvancementFrameType e; private final boolean f; - private final boolean g; - private final boolean h; + private boolean g; // Purpur - un-finalize + private boolean h; // Purpur - un-finalize 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; @@ -46,10 +47,12 @@ 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; } @@ -59,11 +62,14 @@ public class AdvancementDisplay { return this.e; } + public final void setShouldAnnounceToChat(boolean announce) { this.g = announce; } // Purpur - OBFHELPER public final boolean shouldAnnounceToChat() { return this.i(); } // Paper - OBFHELPER public boolean i() { return this.g; } + public void setHidden(boolean hidden) { this.h = hidden; } // Purpur - OBFHELPER + public boolean isHidden() { return j(); } // Purpur - OBFHELPER public boolean j() { return this.h; } diff --git a/src/main/java/net/minecraft/advancements/AdvancementFrameType.java b/src/main/java/net/minecraft/advancements/AdvancementFrameType.java index 32380346555e194227423999a79f1ebcbbe38d3b..173266c81be66f85db06dd28d9c9d720e21f8bc4 100644 --- a/src/main/java/net/minecraft/advancements/AdvancementFrameType.java +++ b/src/main/java/net/minecraft/advancements/AdvancementFrameType.java @@ -4,16 +4,27 @@ import net.minecraft.EnumChatFormat; import net.minecraft.network.chat.ChatMessage; import net.minecraft.network.chat.IChatBaseComponent; +import org.bukkit.advancement.FrameType; // Purpur + 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, FrameType.TASK), + CHALLENGE("challenge", 26, EnumChatFormat.DARK_PURPLE, FrameType.CHALLENGE), + GOAL("goal", 52, EnumChatFormat.GREEN, FrameType.GOAL); + // Purpur end private final String d; private final int e; private final EnumChatFormat f; private final IChatBaseComponent g; - private AdvancementFrameType(String s, int i, EnumChatFormat enumchatformat) { + // Purpur start + public final FrameType bukkit; + + AdvancementFrameType(String s, int i, EnumChatFormat enumchatformat, FrameType bukkit) { + this.bukkit = bukkit; + // Purpur end this.d = s; this.e = i; this.f = enumchatformat; diff --git a/src/main/java/net/minecraft/advancements/CriterionTrigger.java b/src/main/java/net/minecraft/advancements/CriterionTrigger.java index f2d74473caf96ca6e871311ef87afa128cd4d0bf..851e69a2f5155d9fa2e5652abdea9aee59e4b20a 100644 --- a/src/main/java/net/minecraft/advancements/CriterionTrigger.java +++ b/src/main/java/net/minecraft/advancements/CriterionTrigger.java @@ -29,6 +29,7 @@ public interface CriterionTrigger { this.c = s; } + public T getInstance() { return a(); } // Purpur - OBFHELPER public T a() { return this.a; } diff --git a/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java index 77abcd6de43302985cdbb2085abece4f621068d4..c859fc16c263e0c50cb01fc722b6f6723d682481 100644 --- a/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java +++ b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java @@ -27,4 +27,11 @@ public class CraftAdvancement implements org.bukkit.advancement.Advancement { public Collection getCriteria() { return Collections.unmodifiableCollection(handle.getCriteria().keySet()); } + + // Purpur start + @Override + public org.bukkit.advancement.AdvancementDisplay getDisplay() { + return getHandle().getDisplay() == null ? null : getHandle().getDisplay().bukkit; + } + // Purpur end } 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 0000000000000000000000000000000000000000..0b4ff544e04ec314e78a7a48b5bf90ee699b2ad6 --- /dev/null +++ b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancementDisplay.java @@ -0,0 +1,47 @@ +package org.bukkit.craftbukkit.advancement; + +import net.minecraft.advancements.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(); + } +}