cn.nukkit.nbt.tag.ByteTag Maven / Gradle / Ivy
package cn.nukkit.nbt.tag;
import cn.nukkit.api.PowerNukkitXOnly;
import cn.nukkit.api.Since;
import cn.nukkit.nbt.stream.NBTInputStream;
import cn.nukkit.nbt.stream.NBTOutputStream;
import java.io.IOException;
public class ByteTag extends NumberTag {
public int data;
@PowerNukkitXOnly
@Since("1.19.60-r1")
public ByteTag(int data) {
super("");
this.data = data;
}
public ByteTag(String name) {
super(name);
}
public ByteTag(String name, int data) {
super(name);
this.data = data;
}
@Override
public Integer getData() {
return data;
}
@Override
public void setData(Integer data) {
this.data = data == null ? 0 : data;
}
@Override
void write(NBTOutputStream dos) throws IOException {
dos.writeByte(data);
}
@Override
void load(NBTInputStream dis) throws IOException {
data = dis.readByte();
}
@Override
public byte getId() {
return TAG_Byte;
}
@Override
public Integer parseValue() {
return this.data;
}
@Override
public String toString() {
String hex = Integer.toHexString(this.data);
if (hex.length() < 2) {
hex = "0" + hex;
}
return "ByteTag " + this.getName() + " (data: 0x" + hex + ")";
}
@Override
public String toSNBT() {
return data + "b";
}
@Override
public String toSNBT(int space) {
return data + "b";
}
@Override
public boolean equals(Object obj) {
if (super.equals(obj)) {
ByteTag byteTag = (ByteTag) obj;
return data == byteTag.data;
}
return false;
}
@Override
public Tag copy() {
return new ByteTag(getName(), data);
}
}