Skip to content

Commit 6be67d0

Browse files
authored
Fixed advancement background texture not shown due to invalid path parsing (#2744)
1 parent 273e256 commit 6be67d0

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

v1_21/src/main/java/com/denizenscript/denizen/nms/v1_21/helpers/AdvancementHelperImpl.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,15 @@ private static AdvancementHolder asNMSCopy(com.denizenscript.denizen.nms.util.Ad
147147
AdvancementHolder parent = advancement.parent != null
148148
? getNMSAdvancementManager().advancements.get(CraftNamespacedKey.toMinecraft(advancement.parent))
149149
: null;
150+
ClientAsset clientAsset = Optional.ofNullable(advancement.background).map(Object::toString).map(ResourceLocation::parse)
151+
.filter(rl -> rl.getPath().startsWith("textures/") && rl.getPath().endsWith(".png"))
152+
.map(rl -> new ClientAsset(
153+
rl.withPath(p -> p.substring("textures/".length(), p.length() - ".png".length())),
154+
rl))
155+
.orElse(null); // converts the background into a ClientAsset if it's a valid png texture path under "textures/", otherwise returns null
150156
DisplayInfo display = new DisplayInfo(CraftItemStack.asNMSCopy(advancement.icon),
151157
Handler.componentToNMS(FormattedTextHelper.parse(advancement.title, ChatColor.WHITE)), Handler.componentToNMS(FormattedTextHelper.parse(advancement.description, ChatColor.WHITE)),
152-
Optional.ofNullable(advancement.background).map(CraftNamespacedKey::toMinecraft).map(ClientAsset::new), AdvancementType.valueOf(advancement.frame.name()),
158+
Optional.ofNullable(clientAsset), AdvancementType.valueOf(advancement.frame.name()),
153159
advancement.toast, advancement.announceToChat, advancement.hidden);
154160
display.setLocation(advancement.xOffset, advancement.yOffset);
155161
Map<String, Criterion<?>> criteria = IMPOSSIBLE_CRITERIA;

0 commit comments

Comments
 (0)