master-customAdvancements #4
@ -30,11 +30,12 @@ public class CustomAdvancements extends Appliance {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
NamespacedKey namespacedKey = Objects.requireNonNull(NamespacedKey.fromString("custom_advancements:craftattack/" + advancementName));
|
NamespacedKey namespacedKey = Objects.requireNonNull(NamespacedKey.fromString("custom_advancements:craftattack/" + advancementName), "NamespacedKey is invalid!");
|
||||||
Advancement advancement = Objects.requireNonNull(Bukkit.getAdvancement(namespacedKey));
|
Advancement advancement = Objects.requireNonNull(Bukkit.getAdvancement(namespacedKey), "The advancement does not exist!");
|
||||||
player.getAdvancementProgress(advancement).awardCriteria("criteria");
|
player.getAdvancementProgress(advancement).awardCriteria("criteria");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Main.logger().info("Custom Advancements Datapack not found!");
|
Main.logger().info("Advancement " + advancementName + " not found! (is Custom Advancements data pack loaded?)");
|
||||||
Pupsi marked this conversation as resolved
Outdated
|
|||||||
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,7 +47,7 @@ public class CustomAdvancements extends Appliance {
|
|||||||
grantedAdvancements.forEach(pendingAdvancement -> grantAdvancement(pendingAdvancement.advancement(), player.getUniqueId()));
|
grantedAdvancements.forEach(pendingAdvancement -> grantAdvancement(pendingAdvancement.advancement(), player.getUniqueId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
Pupsi marked this conversation as resolved
MineTec
commented
sollte private sein, wenn grantAdvancement entscheidet ob es pending ist oder nicht sollte private sein, wenn grantAdvancement entscheidet ob es pending ist oder nicht
|
|||||||
public void addPendingAdvancement(UUID receiver, String advancement) {
|
private void addPendingAdvancement(UUID receiver, String advancement) {
|
||||||
pendingAdvancements.add(new PendingAdvancement(receiver, advancement));
|
pendingAdvancements.add(new PendingAdvancement(receiver, advancement));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,12 +30,11 @@ public class CustomAdvancementsListener extends ApplianceListener<CustomAdvancem
|
|||||||
if(!(event.getView().getPlayer() instanceof Player player)) return;
|
if(!(event.getView().getPlayer() instanceof Player player)) return;
|
||||||
|
|
||||||
if(result.getType() == Material.RED_SHULKER_BOX) {
|
if(result.getType() == Material.RED_SHULKER_BOX) {
|
||||||
// getAppliance().grantAdvancement(Advancements.fleischerchest, player.getUniqueId());
|
getAppliance().grantAdvancement(Advancements.fleischerchest, player.getUniqueId());
|
||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
? ?
|
|||||||
getAppliance().addPendingAdvancement(player.getUniqueId(), Advancements.fleischerchest);
|
return;
|
||||||
} else if(
|
}
|
||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
das else if konstrukt ist nicht schön... ich tendiere sogar für jeweils einen eigenen handler pro advancement... vielleicht einfach zwei einzelstehnede ifs mit quasi early return? das else if konstrukt ist nicht schön...
ich tendiere sogar für jeweils einen eigenen handler pro advancement...
vielleicht einfach zwei einzelstehnede ifs mit quasi early return?
|
|||||||
result.getItemMeta().itemName().equals(Component.text("98fdf0ae-c3ab-4ef7-ae25-efd518d600de"))
|
|
||||||
&& result.getItemMeta().getEnchantmentGlintOverride()
|
if(result.getItemMeta().itemName().equals(Component.text("98fdf0ae-c3ab-4ef7-ae25-efd518d600de"))) {
|
||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
der check nach enchantmentGlintOverride raus, itemName reicht aus (ggf kommt das glint raus, da zurzeit ein bugs mit overrideGlint auf köpfen besteht) der check nach enchantmentGlintOverride raus, itemName reicht aus
(ggf kommt das glint raus, da zurzeit ein bugs mit overrideGlint auf köpfen besteht)
|
|||||||
) {
|
|
||||||
getAppliance().grantAdvancement(Advancements.craftPixelblock, player.getUniqueId());
|
getAppliance().grantAdvancement(Advancements.craftPixelblock, player.getUniqueId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user
die Fehlermeldung kann irreführend sein. Es sollte zumindest im Fehler ersichtlich sein welches advancement fehlt.
mein Vorschlag hier wäre du throwst nach dem custom fehler einfach nochmal die exception
throw e
und packst in die Objects.requireNonNull das angefragte rein. Dann ist alles immer ersichtlich.