Skip to content

Commit

Permalink
Implement Changes and Additions for Update 1.14
Browse files Browse the repository at this point in the history
  • Loading branch information
ZockerAxel committed Jan 19, 2021
1 parent 3b979bd commit 046ff02
Show file tree
Hide file tree
Showing 6 changed files with 629 additions and 305 deletions.
2 changes: 1 addition & 1 deletion CrazyAdvancementAPI/plugin.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
main: eu.endercentral.crazy_advancements.CrazyAdvancements
name: CrazyAdvancementsAPI
version: 1.13.11
version: 1.14
api-version: 1.13
load: startup
author: ZockerAxel
Expand Down
2 changes: 1 addition & 1 deletion CrazyAdvancementAPI/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<groupId>eu.endercentral.crazy_advancements</groupId>
<artifactId>CrazyAdvancementsAPI</artifactId>
<version>1.13.11</version>
<version>1.14</version>
<packaging>jar</packaging>

<name>CrazyAdvancementsAPI</name>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ public class Advancement {
private String nameKey;

private AdvancementDisplay display;
private SaveMethod saveMethod = SaveMethod.DEFAULT;

private transient Advancement parent;
@SerializedName("parent")
Expand Down Expand Up @@ -146,30 +147,9 @@ public Advancement getParent() {
*/
public void setCriteria(int criteria) {
this.criteria = criteria;
Map<String, Criterion> advCriteria = new HashMap<>();
String[][] advRequirements = new String[][] {};

for(int i = 0; i < getCriteria(); i++) {
advCriteria.put("criterion." + i, new Criterion(new CriterionInstance() {
@Override
public JsonObject a(LootSerializationContext arg0) {
return null;
}

@Override
public MinecraftKey a() {
return new MinecraftKey("minecraft", "impossible");
}
}));
}
saveCriteria(advCriteria);

ArrayList<String[]> fixedRequirements = new ArrayList<>();
for(String name : advCriteria.keySet()) {
fixedRequirements.add(new String[] {name});
}
advRequirements = Arrays.stream(fixedRequirements.toArray()).toArray(String[][]::new);
saveCriteriaRequirements(advRequirements);
savedCriteria = null;
savedCriterionNames = null;
savedCriteriaRequirements = null;
}

/**
Expand All @@ -188,10 +168,33 @@ public NameKey getName() {
return name;
}

/**
* Get the Display
*
* @return The display
*/
public AdvancementDisplay getDisplay() {
return display;
}

/**
* Set the Save/Load method<br>{@link SaveMethod.DEFAULT} - Criteria Values will be saved and loaded<br>{@link SaveMethod.NUMBER} - Criteria Number will be saved and loaded
*
* @param saveMethod The Save/Load Method
*/
public void setSaveMethod(SaveMethod saveMethod) {
this.saveMethod = saveMethod;
}

/**
* Get the Save/Load Method that is currently in use
*
* @return The Save/Load Method
*/
public SaveMethod getSaveMethod() {
return saveMethod;
}

/**
* Sets the Reward for completing the Advancement
*
Expand Down Expand Up @@ -507,6 +510,12 @@ public void setAwardedCriteria(Map<String, HashSet<String>> awardedCriteria) {
this.awardedCriteria = awardedCriteria;
}

@Warning(reason = "Only use if you know what you are doing!")
public void unsetAwardedCriteria(UUID uuid) {
if(this.awardedCriteria == null) this.awardedCriteria = new HashMap<>();
if(this.awardedCriteria.containsKey(uuid.toString())) this.awardedCriteria.remove(uuid.toString());
}

public AdvancementProgress getProgress(Player player) {
if(this.progress == null) progress = new HashMap<>();
return this.progress.containsKey(player.getUniqueId().toString()) ? this.progress.get(player.getUniqueId().toString()) : new AdvancementProgress();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

public class NameKey {

private String namespace = "minecraft";
private String key = "???";
private final String namespace;
private final String key;

private transient MinecraftKey mcKey;

Expand All @@ -21,11 +21,12 @@ public NameKey(String namespace, String key) {

/**
*
* @param key The key inside the default namespace "minecraft" or a NameSpacedKey seperated by :
* @param key The key inside the default namespace "minecraft" or a NameSpacedKey seperated by a colon
*/
public NameKey(String key) {
String[] split = key.split(":");
if(split.length < 2) {
this.namespace = "minecraft";
this.key = key.toLowerCase();
} else {
this.namespace = split[0].toLowerCase();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package eu.endercentral.crazy_advancements;

public enum SaveMethod {

DEFAULT, NUMBER;

}
Loading

0 comments on commit 046ff02

Please sign in to comment.