improve nbt toString function

This commit is contained in:
Bixilon 2020-10-05 22:52:18 +02:00
parent 767462170e
commit 6aaec0bcaf
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
7 changed files with 39 additions and 45 deletions

View File

@ -45,14 +45,16 @@ public class ByteArrayTag implements NBTTag {
@Override @Override
public String toString() { public String toString() {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append("["); builder.append('[');
for (byte b : value) { for (int i = 0; i < value.length; i++) {
builder.append(b); builder.append(value[i]);
builder.append("b, "); builder.append("b");
if (i == value.length - 1) {
break;
}
builder.append(", ");
} }
builder.delete(builder.length() - 2, builder.length()); // delete last comma
builder.append("]"); builder.append("]");
return builder.toString(); return builder.toString();
} }
} }

View File

@ -19,6 +19,7 @@ import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
public class CompoundTag implements NBTTag { public class CompoundTag implements NBTTag {
final String name; final String name;
@ -148,17 +149,21 @@ public class CompoundTag implements NBTTag {
@Override @Override
public String toString() { public String toString() {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
if (name != null) {
builder.append(name); builder.append(name);
builder.append("{");
for (Map.Entry<String, NBTTag> set : data.entrySet()) {
builder.append(set.getKey());
builder.append(": ");
builder.append(set.getValue());
builder.append(", ");
} }
builder.delete(builder.length() - 2, builder.length()); // delete last comma builder.append('{');
AtomicInteger i = new AtomicInteger();
data.forEach((key, value) -> {
builder.append(key);
builder.append(": ");
builder.append(value);
if (i.get() == data.size() - 1) {
return;
}
builder.append(", ");
i.getAndIncrement();
});
builder.append("}"); builder.append("}");
return builder.toString(); return builder.toString();
} }

View File

@ -16,6 +16,8 @@ package de.bixilon.minosoft.util.nbt.tag;
import de.bixilon.minosoft.protocol.protocol.InByteBuffer; import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer; import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
import java.util.Arrays;
public class IntArrayTag implements NBTTag { public class IntArrayTag implements NBTTag {
final int[] value; final int[] value;
@ -44,15 +46,6 @@ public class IntArrayTag implements NBTTag {
@Override @Override
public String toString() { public String toString() {
StringBuilder builder = new StringBuilder(); return Arrays.toString(value);
builder.append("[");
for (int i : value) {
builder.append(i);
builder.append(", ");
}
builder.delete(builder.length() - 1, builder.length()); // delete last comma
builder.append("]");
return builder.toString();
} }
} }

View File

@ -63,20 +63,12 @@ public class ListTag implements NBTTag {
} }
} }
public ArrayList<NBTTag> getValue() { public <K> ArrayList<K> getValue() {
return list; return (ArrayList<K>) list;
} }
@Override @Override
public String toString() { public String toString() {
StringBuilder builder = new StringBuilder(); return list.toString();
builder.append("[");
for (NBTTag NBTTag : list) {
builder.append(NBTTag);
}
builder.delete(builder.length() - 1, builder.length()); // delete last comma
builder.append("]");
return builder.toString();
} }
} }

View File

@ -45,14 +45,16 @@ public class LongArrayTag implements NBTTag {
@Override @Override
public String toString() { public String toString() {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append("["); builder.append('[');
for (long l : value) { for (int i = 0; i < value.length; i++) {
builder.append(l); builder.append(value[i]);
builder.append("L, "); builder.append("l");
if (i == value.length - 1) {
break;
}
builder.append(", ");
} }
builder.delete(builder.length() - 2, builder.length()); // delete last comma
builder.append("]"); builder.append("]");
return builder.toString(); return builder.toString();
} }
} }

View File

@ -43,6 +43,6 @@ public class LongTag implements NBTTag {
@Override @Override
public String toString() { public String toString() {
return value + "L"; return value + "l";
} }
} }