Skip to content

Commit

Permalink
Update to Minecraft 1.18
Browse files Browse the repository at this point in the history
  • Loading branch information
ZockerAxel committed Dec 4, 2021
1 parent fd1ac0c commit 0b55188
Show file tree
Hide file tree
Showing 10 changed files with 95 additions and 62 deletions.
6 changes: 3 additions & 3 deletions plugin.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
main: eu.endercentral.crazy_advancements.CrazyAdvancementsAPI
name: CrazyAdvancementsAPI
version: 2.0
version: 2.0.1
api-version: 1.13
load: startup
author: ZockerAxel
commands:
grant:
usage: /cagrant <Player> <Manager> <Advancement> [Criteria...]
usage: /grant <Player> <Manager> <Advancement> [Criteria...]
description: Grants <Advancement>-[Criteria...] to <Player> in <Manager>
aliases: [cagrant]
revoke:
usage: /carevoke <Player> <Manager> <Advancement> [Criteria...]
usage: /revoke <Player> <Manager> <Advancement> [Criteria...]
description: Revokes <Advancement>-[Criteria...] from <Player> in <Manager>
aliases: [carevoke]
setprogress:
Expand Down
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_17_R1.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;

import eu.endercentral.crazy_advancements.event.AdvancementScreenCloseEvent;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.craftbukkit.v1_17_R1.command.ProxiedNativeCommandSender;
import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_18_R1.command.ProxiedNativeCommandSender;
import org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
Expand Down Expand Up @@ -128,7 +128,7 @@ public static void setActiveTab(Player player, @Nullable NameKey rootAdvancement
static void setActiveTab(Player player, NameKey rootAdvancement, boolean update) {
if(update) {
PacketPlayOutSelectAdvancementTab packet = new PacketPlayOutSelectAdvancementTab(rootAdvancement == null ? null : rootAdvancement.getMinecraftKey());
((CraftPlayer)player).getHandle().b.sendPacket(packet);
((CraftPlayer)player).getHandle().b.a(packet);
}
activeTabs.put(player.getUniqueId().toString(), rootAdvancement);
}
Expand Down
4 changes: 2 additions & 2 deletions src/eu/endercentral/crazy_advancements/NameKey.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ public NameKey(String key) {
* @param from
*/
public NameKey(MinecraftKey from) {
this.namespace = from.getNamespace().toLowerCase();
this.key = from.getKey().toLowerCase();
this.namespace = from.b().toLowerCase();
this.key = from.a().toLowerCase();
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ public void unloadProgress(UUID uuid) {
* @return true if advancement is granted
*/
public boolean isGranted(Player player) {
return getProgress(player).getNmsProgress().isDone();
return getProgress(player).getNmsProgress().a();//TODO Use AdvancementProgress
}

/**
Expand All @@ -379,7 +379,7 @@ public boolean isGranted(Player player) {
* @return true if advancement is granted
*/
public boolean isGranted(UUID uuid) {
return getProgress(uuid).getNmsProgress().isDone();
return getProgress(uuid).getNmsProgress().a();//TODO Use AdvancementProgress
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
package eu.endercentral.crazy_advancements.advancement.progress;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.stream.StreamSupport;

import com.google.common.collect.Iterables;

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

public class AdvancementProgress {

private HashSet<String> awardedCriteria = new HashSet<>();
private net.minecraft.advancements.AdvancementProgress nmsProgress = new net.minecraft.advancements.AdvancementProgress();
private long lastUpdate = -1;

Expand All @@ -26,12 +26,12 @@ public AdvancementProgress(Map<String, Criterion> criteria, String[][] requireme
public GenericResult grant() {
GenericResult result = GenericResult.UNCHANGED;

Iterable<String> missing = getNmsProgress().getRemainingCriteria();
Iterable<String> missing = getRemainingCriteria();
Iterator<String> missingIterator = missing.iterator();

while(missingIterator.hasNext()) {
String next = missingIterator.next();
CriterionProgress criterionProgress = getNmsProgress().getCriterionProgress(next);
CriterionProgress criterionProgress = getNmsProgress().c(next);
setGranted(criterionProgress);
result = GenericResult.CHANGED;
setLastUpdate();
Expand All @@ -48,13 +48,13 @@ public GenericResult grant() {
public GenericResult revoke() {
GenericResult result = GenericResult.UNCHANGED;

Iterable<String> awarded = getNmsProgress().getAwardedCriteria();
Iterable<String> awarded = getAwardedCriteria();
Iterator<String> awardedIterator = awarded.iterator();
long current = StreamSupport.stream(awarded.spliterator(), false).count();

while(current > 0 && awardedIterator.hasNext()) {
String next = awardedIterator.next();
CriterionProgress criterionProgress = getNmsProgress().getCriterionProgress(next);
CriterionProgress criterionProgress = getCriterionProgress(next);
setUngranted(criterionProgress);
current--;
result = GenericResult.CHANGED;
Expand All @@ -72,22 +72,19 @@ public GenericResult revoke() {
*/
public GrantCriteriaResult grantCriteria(String... criteria) {
GrantCriteriaResult result = GrantCriteriaResult.UNCHANGED;
boolean doneBefore = getNmsProgress().isDone();
boolean doneBefore = isDone();

if(!doneBefore) {//Only grant criteria if the advancement is not already granted
for(String criterion : criteria) {
if(!awardedCriteria.contains(criterion)) {
CriterionProgress criterionProgress = getNmsProgress().getCriterionProgress(criterion);
if(criterionProgress != null) {
setGranted(criterionProgress);
awardedCriteria.add(criterion);
result = GrantCriteriaResult.CHANGED;
setLastUpdate();
}
CriterionProgress criterionProgress = getCriterionProgress(criterion);
if(criterionProgress != null && !isGranted(criterionProgress)) {
setGranted(criterionProgress);
result = GrantCriteriaResult.CHANGED;
setLastUpdate();
}
}

if(getNmsProgress().isDone()) {
if(isDone()) {
return GrantCriteriaResult.COMPLETED;
}
}
Expand All @@ -104,14 +101,11 @@ public GenericResult revokeCriteria(String... criteria) {
GenericResult result = GenericResult.UNCHANGED;

for(String criterion : criteria) {
if(awardedCriteria.contains(criterion)) {
CriterionProgress criterionProgress = getNmsProgress().getCriterionProgress(criterion);
if(criterionProgress != null) {
setUngranted(criterionProgress);
awardedCriteria.remove(criterion);
result = GenericResult.CHANGED;
setLastUpdate();
}
CriterionProgress criterionProgress = getCriterionProgress(criterion);
if(criterionProgress != null && isGranted(criterionProgress)) {
setUngranted(criterionProgress);
result = GenericResult.CHANGED;
setLastUpdate();
}
}

Expand All @@ -126,18 +120,18 @@ public GenericResult revokeCriteria(String... criteria) {
*/
public SetCriteriaResult setCriteriaProgress(int number) {
SetCriteriaResult result = SetCriteriaResult.UNCHANGED;
boolean doneBefore = getNmsProgress().isDone();
boolean doneBefore = isDone();

Iterable<String> awarded = getNmsProgress().getAwardedCriteria();
Iterable<String> awarded = getAwardedCriteria();
Iterator<String> awardedIterator = awarded.iterator();
long current = StreamSupport.stream(awarded.spliterator(), false).count();

Iterable<String> missing = getNmsProgress().getRemainingCriteria();
Iterable<String> missing = getRemainingCriteria();
Iterator<String> missingIterator = missing.iterator();

while(current < number && missingIterator.hasNext()) {
String next = missingIterator.next();
CriterionProgress criterionProgress = getNmsProgress().getCriterionProgress(next);
CriterionProgress criterionProgress = getCriterionProgress(next);
setGranted(criterionProgress);
current++;
result = SetCriteriaResult.CHANGED;
Expand All @@ -146,35 +140,76 @@ public SetCriteriaResult setCriteriaProgress(int number) {

while(current > number && awardedIterator.hasNext()) {
String next = awardedIterator.next();
CriterionProgress criterionProgress = getNmsProgress().getCriterionProgress(next);
CriterionProgress criterionProgress = getCriterionProgress(next);
setUngranted(criterionProgress);
current--;
result = SetCriteriaResult.CHANGED;
setLastUpdate();
}

if(!doneBefore && getNmsProgress().isDone()) {
if(!doneBefore && isDone()) {
result = SetCriteriaResult.COMPLETED;
}

return result;
}

private void setGranted(CriterionProgress criterionProgress) {
private static void setGranted(CriterionProgress criterionProgress) {
criterionProgress.b();
}

private void setUngranted(CriterionProgress criterionProgress) {
private static void setUngranted(CriterionProgress criterionProgress) {
criterionProgress.c();
}

private static boolean isGranted(CriterionProgress criterionProgress) {
return criterionProgress.a();
}

/**
* Gets the remaining Criteria
*
* @return The remaining Criteria
*/
public Iterable<String> getRemainingCriteria() {
return getNmsProgress().e();
}

/**
* Gets the awarded Criteria
*
* @return The awarded Criteria
*/
public Iterable<String> getAwardedCriteria() {
return getNmsProgress().f();
}

/**
* Gets the Criteria Progress
*
* @return The Criteria Progress
*/
public int getCriteriaProgress() {
return Iterables.size(getAwardedCriteria());
}

/**
* Gets the Criterion Progress Instance by it's name
*
* @param name The Criterion Name
* @return The CriterionProgress
*/
public CriterionProgress getCriterionProgress(String name) {
return getNmsProgress().c(name);
}

/**
* Gets a list of awarded Criteria
* Checks whether the Progress is Done
*
* @return The list of awarded Criteria Names
* @return Whether the Progress is Done
*/
public HashSet<String> getAwardedCriteria() {
return new HashSet<>(awardedCriteria);
public boolean isDone() {
return getNmsProgress().a();
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;

import com.google.common.collect.Iterables;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;

Expand Down Expand Up @@ -652,7 +653,7 @@ public SetCriteriaResult setCriteriaProgress(UUID uuid, Advancement advancement,
* @return The criteria progress
*/
public int getCriteriaProgress(Player player, Advancement advancement) {
return advancement.getProgress(player).getAwardedCriteria().size();
return advancement.getProgress(player).getCriteriaProgress();
}

/**
Expand All @@ -663,7 +664,7 @@ public int getCriteriaProgress(Player player, Advancement advancement) {
* @return The criteria progress
*/
public int getCriteriaProgress(UUID uuid, Advancement advancement) {
return advancement.getProgress(uuid).getAwardedCriteria().size();
return advancement.getProgress(uuid).getCriteriaProgress();
}

private String getSavePath(UUID uuid) {
Expand Down Expand Up @@ -809,11 +810,11 @@ public void loadProgress(UUID uuid, SaveFile saveFile, Advancement... advancemen

for(CriteriaData progressData : saveFile.getCriteriaData()) {
NameKey name = progressData.getName();
Set<String> criteria = progressData.getCriteria();
Iterable<String> criteria = progressData.getCriteria();

for(Advancement advancement: advancementsList) {
if(advancement.hasName(name)) {
advancement.getProgress(uuid).grantCriteria(criteria.toArray(String[]::new));
advancement.getProgress(uuid).grantCriteria(Iterables.toArray(criteria, String.class));
break;
}
}
Expand Down Expand Up @@ -877,13 +878,12 @@ private static boolean isOnline(UUID uuid) {
return player != null && player.isOnline();
}

private SaveFile generateSaveFile(File file) {
private static SaveFile generateSaveFile(File file) {
if(file.exists() && file.isFile()) {
try {
FileReader os = new FileReader(file);

JsonParser parser = new JsonParser();
JsonElement element = parser.parse(os);
JsonElement element = JsonParser.parseReader(os);
os.close();

SaveFile saveFile = SaveFile.fromJSON(element);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import java.util.Map;
import java.util.Set;

import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;

import eu.endercentral.crazy_advancements.NameKey;
Expand Down Expand Up @@ -110,7 +110,7 @@ protected net.minecraft.advancements.Advancement convertAdvancement(Advancement
*/
public void send() {
PacketPlayOutAdvancements packet = build();
((CraftPlayer) getPlayer()).getHandle().b.sendPacket(packet);
((CraftPlayer) getPlayer()).getHandle().b.a(packet);
}


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

import java.util.HashMap;

import org.bukkit.craftbukkit.v1_17_R1.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_18_R1.inventory.CraftItemStack;

import eu.endercentral.crazy_advancements.NameKey;
import eu.endercentral.crazy_advancements.advancement.Advancement;
Expand Down
8 changes: 3 additions & 5 deletions src/eu/endercentral/crazy_advancements/save/CriteriaData.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
package eu.endercentral.crazy_advancements.save;

import java.util.Set;

import eu.endercentral.crazy_advancements.NameKey;

public class CriteriaData {

private final NameKey name;
private final Set<String> criteria;
private final Iterable<String> criteria;

public CriteriaData(NameKey name, Set<String> criteria) {
public CriteriaData(NameKey name, Iterable<String> criteria) {
this.name = name;
this.criteria = criteria;
}
Expand All @@ -18,7 +16,7 @@ public NameKey getName() {
return name;
}

public Set<String> getCriteria() {
public Iterable<String> getCriteria() {
return criteria;
}

Expand Down

0 comments on commit 0b55188

Please sign in to comment.