Skip to content

Commit

Permalink
Update to Minecraft 1.20.2
Browse files Browse the repository at this point in the history
  • Loading branch information
ZockerAxel committed Oct 8, 2023
1 parent e160b56 commit 90b9913
Show file tree
Hide file tree
Showing 9 changed files with 56 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import java.util.List;

import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer;
import org.bukkit.entity.Player;

import eu.endercentral.crazy_advancements.event.AdvancementScreenCloseEvent;
Expand Down Expand Up @@ -115,8 +115,8 @@ public void initPlayer(Player p) {
@Override
public boolean handle(Player p, PacketPlayInAdvancements packet) {

if(packet.c() == Status.a) {
NameKey name = new NameKey(packet.d());
if(packet.d() == Status.a) {
NameKey name = new NameKey(packet.e());
AdvancementTabChangeEvent event = new AdvancementTabChangeEvent(p, name);
Bukkit.getPluginManager().callEvent(event);

Expand Down
21 changes: 5 additions & 16 deletions src/eu/endercentral/crazy_advancements/CrazyAdvancementsAPI.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
Expand All @@ -34,7 +34,6 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

import eu.endercentral.crazy_advancements.advancement.Advancement;
Expand All @@ -54,10 +53,8 @@
import eu.endercentral.crazy_advancements.manager.AdvancementManager;
import eu.endercentral.crazy_advancements.packet.AdvancementsPacket;
import net.minecraft.advancements.Criterion;
import net.minecraft.advancements.CriterionInstance;
import net.minecraft.advancements.critereon.LootSerializationContext;
import net.minecraft.advancements.critereon.CriterionTriggerImpossible;
import net.minecraft.network.protocol.game.PacketPlayOutSelectAdvancementTab;
import net.minecraft.resources.MinecraftKey;

/**
* Represents the API's Plugin
Expand All @@ -80,17 +77,9 @@ public class CrazyAdvancementsAPI extends JavaPlugin implements Listener {
/**
* Criterion Instance for Internal Use
*/
public static final Criterion CRITERION = new Criterion(new CriterionInstance() {
@Override
public JsonObject a(LootSerializationContext arg0) {
return null;
}

@Override
public MinecraftKey a() {
return new MinecraftKey("", "");
}
});
public static final Criterion<?> CRITERION = new Criterion<>(new CriterionTriggerImpossible(), new CriterionTriggerImpossible.a());



private static AdvancementPacketReceiver packetReciever;
private static HashMap<String, NameKey> activeTabs = new HashMap<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@ public AdvancementProgress getProgress(Player player) {
*/
public AdvancementProgress getProgress(UUID uuid) {
if(!progressMap.containsKey(uuid.toString())) {
progressMap.put(uuid.toString(), new AdvancementProgress(getCriteria().getCriteria(), getCriteria().getRequirements()));
progressMap.put(uuid.toString(), new AdvancementProgress(getCriteria().getRequirements()));
}
return progressMap.get(uuid.toString());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public class ToastNotification {

public static final NameKey NOTIFICATION_NAME = new NameKey(CrazyAdvancementsAPI.API_NAMESPACE, "notification");
public static final Criteria NOTIFICATION_CRITERIA = new Criteria(1);
public static final AdvancementProgress NOTIFICATION_PROGRESS = new AdvancementProgress(NOTIFICATION_CRITERIA.getCriteria(), NOTIFICATION_CRITERIA.getRequirements());
public static final AdvancementProgress NOTIFICATION_PROGRESS = new AdvancementProgress(NOTIFICATION_CRITERIA.getRequirements());

static {
NOTIFICATION_PROGRESS.setCriteriaProgress(1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.HashMap;

import eu.endercentral.crazy_advancements.CrazyAdvancementsAPI;
import net.minecraft.advancements.AdvancementRequirements;
import net.minecraft.advancements.Criterion;

/**
Expand All @@ -22,7 +23,7 @@ public class Criteria {
private final String[] actionNames;
private final String[][] requirements;

private final HashMap<String, Criterion> criteria = new HashMap<>();
private final HashMap<String, Criterion<?>> criteria = new HashMap<>();

/**
* Constructor for creating {@link CriteriaType} NUMBER which will require a certain number
Expand Down Expand Up @@ -94,19 +95,28 @@ public String[] getActionNames() {
/**
* Gets the Requirements (auto-generated when using {@link CriteriaType} NUMBER)
*
* @return The Requirementsn
* @return The Requirements
*/
public String[][] getRequirements() {
return requirements;
}

/**
* Gets the Requirements (auto-generated when using {@link CriteriaType} NUMBER)
*
* @return The Requirements
*/
public AdvancementRequirements getAdvancementRequirements() {
return new AdvancementRequirements(requirements);
}

/**
* Gets the generated Criteria
*
* @return The generated Criteria
*/
public HashMap<String, Criterion> getCriteria() {
return new HashMap<String, Criterion>(criteria);
public HashMap<String, Criterion<?>> getCriteria() {
return new HashMap<String, Criterion<?>>(criteria);
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import com.google.common.collect.Iterables;

import net.minecraft.advancements.AdvancementRequirements;
import net.minecraft.advancements.Criterion;
import net.minecraft.advancements.CriterionProgress;

Expand All @@ -25,9 +26,21 @@ public class AdvancementProgress {
*
* @param criteria The Criteria
* @param requirements The Requirements
* @deprecated Use AdvancementProgress(String[][] requirements) instead
*/
public AdvancementProgress(Map<String, Criterion> criteria, String[][] requirements) {
nmsProgress.a(criteria, requirements);
@Deprecated(forRemoval = true, since = "2.1.15")
public AdvancementProgress(Map<String, Criterion<?>> criteria, String[][] requirements) {
nmsProgress.a(new AdvancementRequirements(requirements));
}

/**
* Constructor for Creating a Progress Instance
*
* @param criteria The Criteria
* @param requirements The Requirements
*/
public AdvancementProgress(String[][] requirements) {
nmsProgress.a(new AdvancementRequirements(requirements));
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,12 @@
import java.util.Map;
import java.util.Set;

import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer;
import org.bukkit.entity.Player;

import eu.endercentral.crazy_advancements.NameKey;
import eu.endercentral.crazy_advancements.advancement.Advancement;
import net.minecraft.advancements.AdvancementHolder;
import net.minecraft.advancements.AdvancementProgress;
import net.minecraft.network.protocol.game.PacketPlayOutAdvancements;
import net.minecraft.resources.MinecraftKey;
Expand Down Expand Up @@ -87,14 +88,14 @@ public List<NameKey> getRemovedAdvancements() {
*/
public PacketPlayOutAdvancements build() {
//Create Lists
List<net.minecraft.advancements.Advancement> advancements = new ArrayList<>();
List<net.minecraft.advancements.AdvancementHolder> advancements = new ArrayList<>();
Set<MinecraftKey> removedAdvancements = new HashSet<>();
Map<MinecraftKey, AdvancementProgress> progress = new HashMap<>();

//Populate Lists
for(Advancement advancement : this.advancements) {
net.minecraft.advancements.Advancement nmsAdvancement = convertAdvancement(advancement);
advancements.add(nmsAdvancement);
advancements.add(new AdvancementHolder(advancement.getName().getMinecraftKey(), nmsAdvancement));
progress.put(advancement.getName().getMinecraftKey(), advancement.getProgress(getPlayer()).getNmsProgress());
}
for(NameKey removed : this.removedAdvancements) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package eu.endercentral.crazy_advancements.packet;

import java.util.HashMap;
import java.util.Optional;

import org.bukkit.craftbukkit.v1_20_R1.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_20_R2.inventory.CraftItemStack;

import eu.endercentral.crazy_advancements.JSONMessage;
import eu.endercentral.crazy_advancements.NameKey;
Expand All @@ -11,6 +12,7 @@
import eu.endercentral.crazy_advancements.advancement.AdvancementFlag;
import eu.endercentral.crazy_advancements.advancement.ToastNotification;
import net.md_5.bungee.api.chat.TextComponent;
import net.minecraft.advancements.AdvancementRequirements;
import net.minecraft.advancements.AdvancementRewards;
import net.minecraft.resources.MinecraftKey;
import net.minecraft.world.item.ItemStack;
Expand Down Expand Up @@ -70,8 +72,8 @@ public static net.minecraft.advancements.Advancement toNmsAdvancement(Advancemen
net.minecraft.advancements.AdvancementDisplay advDisplay = new net.minecraft.advancements.AdvancementDisplay(icon, display.getTitle().getBaseComponent(), display.getDescription().getBaseComponent(), backgroundTexture, display.getFrame().getNMS(), false, false, advancement.hasFlag(AdvancementFlag.SEND_WITH_HIDDEN_BOOLEAN));
advDisplay.a(x, y);

net.minecraft.advancements.Advancement parent = advancement.getParent() == null ? null : createDummy(advancement.getParent().getName());
net.minecraft.advancements.Advancement adv = new net.minecraft.advancements.Advancement(advancement.getName().getMinecraftKey(), parent, advDisplay, advancementRewards, advancement.getCriteria().getCriteria(), advancement.getCriteria().getRequirements(), false);
Optional<MinecraftKey> parent = advancement.getParent() == null ? Optional.empty() : Optional.of(advancement.getParent().getName().getMinecraftKey());
net.minecraft.advancements.Advancement adv = new net.minecraft.advancements.Advancement(parent, Optional.of(advDisplay), advancementRewards, advancement.getCriteria().getCriteria(), advancement.getCriteria().getAdvancementRequirements(), false);

return adv;
}
Expand All @@ -89,7 +91,7 @@ public static net.minecraft.advancements.Advancement toNmsToastAdvancement(Toast

net.minecraft.advancements.AdvancementDisplay advDisplay = new net.minecraft.advancements.AdvancementDisplay(icon, notification.getMessage().getBaseComponent(), new JSONMessage(new TextComponent("Toast Notification")).getBaseComponent(), backgroundTexture, notification.getFrame().getNMS(), true, false, true);

net.minecraft.advancements.Advancement adv = new net.minecraft.advancements.Advancement(ToastNotification.NOTIFICATION_NAME.getMinecraftKey(), null, advDisplay, advancementRewards, ToastNotification.NOTIFICATION_CRITERIA.getCriteria(), ToastNotification.NOTIFICATION_CRITERIA.getRequirements(), false);
net.minecraft.advancements.Advancement adv = new net.minecraft.advancements.Advancement(Optional.empty(), Optional.of(advDisplay), advancementRewards, ToastNotification.NOTIFICATION_CRITERIA.getCriteria(), ToastNotification.NOTIFICATION_CRITERIA.getAdvancementRequirements(), false);

return adv;
}
Expand All @@ -99,10 +101,11 @@ public static net.minecraft.advancements.Advancement toNmsToastAdvancement(Toast
*
* @param name The name of the Advancement
* @return the Dummy Advancement
* @deprecated No longer required for parent dummies. Might be removed in a future version.
*/
@Deprecated(forRemoval = true, since = "2.1.15")
public static net.minecraft.advancements.Advancement createDummy(NameKey name) {
// net.minecraft.advancements.AdvancementDisplay advDisplay = new net.minecraft.advancements.AdvancementDisplay(null, null, null, null, AdvancementFrameType.a, false, false, false);
net.minecraft.advancements.Advancement adv = new net.minecraft.advancements.Advancement(name.getMinecraftKey(), null, null, null, new HashMap<>(), new String[0][0], false);
net.minecraft.advancements.Advancement adv = new net.minecraft.advancements.Advancement(Optional.empty(), Optional.empty(), null, new HashMap<>(), new AdvancementRequirements(new String[0][0]), false);
return adv;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@
import java.util.Map;
import java.util.Set;

import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer;
import org.bukkit.entity.Player;

import eu.endercentral.crazy_advancements.advancement.ToastNotification;
import net.minecraft.advancements.AdvancementHolder;
import net.minecraft.advancements.AdvancementProgress;
import net.minecraft.network.protocol.game.PacketPlayOutAdvancements;
import net.minecraft.resources.MinecraftKey;
Expand Down Expand Up @@ -74,13 +75,13 @@ public ToastNotification getNotification() {
*/
public PacketPlayOutAdvancements build() {
//Create Lists
List<net.minecraft.advancements.Advancement> advancements = new ArrayList<>();
List<AdvancementHolder> advancements = new ArrayList<>();
Set<MinecraftKey> removedAdvancements = new HashSet<>();
Map<MinecraftKey, AdvancementProgress> progress = new HashMap<>();

//Populate Lists
if(add) {
advancements.add(PacketConverter.toNmsToastAdvancement(getNotification()));
advancements.add(new AdvancementHolder(ToastNotification.NOTIFICATION_NAME.getMinecraftKey(), PacketConverter.toNmsToastAdvancement(getNotification())));
progress.put(ToastNotification.NOTIFICATION_NAME.getMinecraftKey(), ToastNotification.NOTIFICATION_PROGRESS.getNmsProgress());
} else {
removedAdvancements.add(ToastNotification.NOTIFICATION_NAME.getMinecraftKey());
Expand Down

0 comments on commit 90b9913

Please sign in to comment.