mirror of
https://github.com/ViaVersion/ViaNBT.git
synced 2024-11-26 12:15:19 +01:00
Added get, size, values, keyset, iterator, etc methods to ListTag and CompoundTag.
This commit is contained in:
parent
e426b3d8e1
commit
e9a259edd9
@ -4,7 +4,6 @@ import java.io.Closeable;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.List;
|
||||
import java.util.zip.GZIPOutputStream;
|
||||
|
||||
import ch.spacebase.opennbt.NBTConstants;
|
||||
@ -182,7 +181,7 @@ public final class NBTOutputStream implements Closeable {
|
||||
* @throws IOException if an I/O error occurs.
|
||||
*/
|
||||
private void writeCompoundTagPayload(CompoundTag tag) throws IOException {
|
||||
for(Tag childTag : tag.getValue().values()) {
|
||||
for(Tag childTag : tag.values()) {
|
||||
writeTag(childTag);
|
||||
}
|
||||
os.writeByte((byte) 0); // end tag - better way?
|
||||
@ -193,16 +192,14 @@ public final class NBTOutputStream implements Closeable {
|
||||
* @param tag The tag.
|
||||
* @throws IOException if an I/O error occurs.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
private void writeListTagPayload(ListTag<?> tag) throws IOException {
|
||||
Class<? extends Tag> clazz = tag.getType();
|
||||
List<Tag> tags = (List<Tag>) tag.getValue();
|
||||
int size = tags.size();
|
||||
int size = tag.size();
|
||||
|
||||
os.writeByte(NBTUtils.getTypeCode(clazz));
|
||||
os.writeInt(size);
|
||||
for(int i = 0; i < size; i++) {
|
||||
writeTagPayload(tags.get(i));
|
||||
for(Tag t : tag.getValue()) {
|
||||
this.writeTagPayload(t);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -34,14 +34,13 @@ package ch.spacebase.opennbt.tag;
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import ch.spacebase.opennbt.NBTUtils;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The <code>TAG_Compound</code> tag.
|
||||
*/
|
||||
@ -67,6 +66,22 @@ public final class CompoundTag extends Tag {
|
||||
return value;
|
||||
}
|
||||
|
||||
public Tag get(String tagName) {
|
||||
return this.value.get(tagName);
|
||||
}
|
||||
|
||||
public Set<String> keySet() {
|
||||
return this.value.keySet();
|
||||
}
|
||||
|
||||
public Collection<Tag> values() {
|
||||
return this.value.values();
|
||||
}
|
||||
|
||||
public int size() {
|
||||
return this.value.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
String name = getName();
|
||||
|
@ -36,6 +36,7 @@ package ch.spacebase.opennbt.tag;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import ch.spacebase.opennbt.NBTUtils;
|
||||
@ -46,7 +47,7 @@ import ch.spacebase.opennbt.NBTUtils;
|
||||
/**
|
||||
* The <code>TAG_List</code> tag.
|
||||
*/
|
||||
public final class ListTag<T extends Tag> extends Tag {
|
||||
public final class ListTag<T extends Tag> extends Tag implements Iterable<T> {
|
||||
|
||||
/**
|
||||
* The type.
|
||||
@ -83,6 +84,18 @@ public final class ListTag<T extends Tag> extends Tag {
|
||||
return value;
|
||||
}
|
||||
|
||||
public T get(int index) {
|
||||
return this.value.get(index);
|
||||
}
|
||||
|
||||
public Iterator<T> iterator() {
|
||||
return this.value.iterator();
|
||||
}
|
||||
|
||||
public int size() {
|
||||
return this.value.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
String name = getName();
|
||||
|
Loading…
Reference in New Issue
Block a user