AI works here
This commit is contained in:
@@ -345,20 +345,29 @@ class Scanner {
|
||||
|
||||
try {
|
||||
// Navigate the NBT structure to find Items array
|
||||
// Structure is: nbt.value.BlockEntityTag.value.Items.value.value (array)
|
||||
// Structure varies between:
|
||||
// - Placed+opened shulker: nbt.value.BlockEntityTag.value.Items.value.value
|
||||
// - Trade window / freshly-crafted: nbt.value.tag.value.BlockEntityTag.value.Items.value.value
|
||||
// - Simple forms: nbt.Items, nbt.BlockEntityTag.Items, etc.
|
||||
let nbtItems = null;
|
||||
const nbt = shulkerItem.nbt;
|
||||
|
||||
// Try multiple paths to find the items array
|
||||
const paths = [
|
||||
() => nbt.value?.BlockEntityTag?.value?.Items?.value?.value, // Full nested path
|
||||
() => nbt.value?.BlockEntityTag?.value?.Items?.value, // One less nesting
|
||||
() => nbt.BlockEntityTag?.Items?.value?.value, // Without top value
|
||||
() => nbt.BlockEntityTag?.Items?.value, // Simpler
|
||||
() => nbt.BlockEntityTag?.Items, // Direct
|
||||
() => nbt.value?.BlockEntityTag?.value?.Items?.value?.value, // Full nested path (standard placed shulker)
|
||||
() => nbt.value?.BlockEntityTag?.value?.Items?.value, // One less nesting level
|
||||
() => nbt.BlockEntityTag?.Items?.value?.value, // Without top-level value wrapper
|
||||
() => nbt.BlockEntityTag?.Items?.value, // Simpler BlockEntityTag path
|
||||
() => nbt.BlockEntityTag?.Items, // Direct BlockEntityTag
|
||||
() => nbt.value?.tag?.value?.BlockEntityTag?.value?.Items?.value?.value, // Trade window shulker (has extra tag wrapper)
|
||||
() => nbt.value?.tag?.value?.Items?.value?.value, // Trade window with Items directly under tag
|
||||
() => nbt.value?.tag?.value?.Items?.value, // Trade window simpler
|
||||
() => nbt.value?.Items?.value?.value, // No BlockEntityTag
|
||||
() => nbt.Items?.value?.value, // Even simpler
|
||||
() => nbt.Items, // Direct Items
|
||||
() => nbt.tag?.value?.BlockEntityTag?.value?.Items?.value?.value, // Tag wrapper path
|
||||
() => nbt.tag?.BlockEntityTag?.Items?.value?.value, // Tag without value
|
||||
() => nbt.tag?.Items?.value?.value, // Tag with Items direct
|
||||
];
|
||||
|
||||
for (const pathFn of paths) {
|
||||
@@ -483,6 +492,11 @@ class Scanner {
|
||||
result.repairCost = nbt.RepairCost;
|
||||
}
|
||||
|
||||
// Map ID for filled_map items
|
||||
if (nbt.map !== undefined) {
|
||||
result.map = nbt.map;
|
||||
}
|
||||
|
||||
return Object.keys(result).length > 0 ? result : null;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user