Skip to content

Commit d82c612

Browse files
committed
Print NBT data for BaseBlock and BaseItem
1 parent ed27447 commit d82c612

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java

+18
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,14 @@
1919

2020
package com.sk89q.worldedit.blocks;
2121

22+
import com.sk89q.jnbt.AdventureNBTConverter;
2223
import com.sk89q.jnbt.CompoundTag;
24+
import com.sk89q.worldedit.WorldEdit;
2325
import com.sk89q.worldedit.world.NbtValued;
2426
import com.sk89q.worldedit.world.item.ItemType;
27+
import net.kyori.adventure.nbt.TagStringIO;
2528

29+
import java.io.IOException;
2630
import javax.annotation.Nullable;
2731

2832
import static com.google.common.base.Preconditions.checkNotNull;
@@ -94,4 +98,18 @@ public CompoundTag getNbtData() {
9498
public void setNbtData(@Nullable CompoundTag nbtData) {
9599
this.nbtData = nbtData;
96100
}
101+
102+
@Override
103+
public String toString() {
104+
String nbtString = "";
105+
if (hasNbtData()) {
106+
try {
107+
nbtString = TagStringIO.get().asString(AdventureNBTConverter.toAdventure(getNbtData()));
108+
} catch (IOException e) {
109+
WorldEdit.logger.error("Failed to parse NBT of Item", e);
110+
}
111+
}
112+
113+
return getType().getId() + nbtString;
114+
}
97115
}

worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java

+14-2
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,16 @@
1919

2020
package com.sk89q.worldedit.world.block;
2121

22+
import com.sk89q.jnbt.AdventureNBTConverter;
2223
import com.sk89q.jnbt.CompoundTag;
2324
import com.sk89q.jnbt.StringTag;
2425
import com.sk89q.jnbt.Tag;
26+
import com.sk89q.worldedit.WorldEdit;
2527
import com.sk89q.worldedit.blocks.TileEntityBlock;
2628
import com.sk89q.worldedit.registry.state.Property;
29+
import net.kyori.adventure.nbt.TagStringIO;
2730

31+
import java.io.IOException;
2832
import java.util.Map;
2933
import java.util.Objects;
3034
import javax.annotation.Nullable;
@@ -189,8 +193,16 @@ public int hashCode() {
189193

190194
@Override
191195
public String toString() {
192-
// TODO use a json serializer for the NBT data
193-
return blockState.getAsString() + (hasNbtData() ? "{hasNbt}" : "");
196+
String nbtString = "";
197+
if (hasNbtData()) {
198+
try {
199+
nbtString = TagStringIO.get().asString(AdventureNBTConverter.toAdventure(getNbtData()));
200+
} catch (IOException e) {
201+
WorldEdit.logger.error("Failed to parse NBT of Block", e);
202+
}
203+
}
204+
205+
return blockState.getAsString() + nbtString;
194206
}
195207

196208
}

0 commit comments

Comments
 (0)