use of net.minecraft.nbt.LongNBT in project dynmap by webbukkit.
the class ForgeMapChunkCache method getNBTValue.
private Object getNBTValue(INBT v) {
Object val = null;
switch(v.getId()) {
case // Byte
1:
val = Byte.valueOf(((ByteNBT) v).getByte());
break;
case // Short
2:
val = Short.valueOf(((ShortNBT) v).getShort());
break;
case // Int
3:
val = Integer.valueOf(((IntNBT) v).getInt());
break;
case // Long
4:
val = Long.valueOf(((LongNBT) v).getLong());
break;
case // Float
5:
val = Float.valueOf(((FloatNBT) v).getFloat());
break;
case // Double
6:
val = Double.valueOf(((DoubleNBT) v).getDouble());
break;
case // Byte[]
7:
val = ((ByteArrayNBT) v).getByteArray();
break;
case // String
8:
val = ((StringNBT) v).getString();
break;
case // List
9:
ListNBT tl = (ListNBT) v;
ArrayList<Object> vlist = new ArrayList<Object>();
int type = tl.getTagType();
for (int i = 0; i < tl.size(); i++) {
switch(type) {
case 5:
float fv = tl.getFloat(i);
vlist.add(fv);
break;
case 6:
double dv = tl.getDouble(i);
vlist.add(dv);
break;
case 8:
String sv = tl.getString(i);
vlist.add(sv);
break;
case 10:
CompoundNBT tc = tl.getCompound(i);
vlist.add(getNBTValue(tc));
break;
case 11:
int[] ia = tl.getIntArray(i);
vlist.add(ia);
break;
}
}
val = vlist;
break;
case // Map
10:
CompoundNBT tc = (CompoundNBT) v;
HashMap<String, Object> vmap = new HashMap<String, Object>();
for (Object t : tc.keySet()) {
String st = (String) t;
INBT tg = tc.get(st);
vmap.put(st, getNBTValue(tg));
}
val = vmap;
break;
case // Int[]
11:
val = ((IntArrayNBT) v).getIntArray();
break;
}
return val;
}
use of net.minecraft.nbt.LongNBT in project Mekanism by mekanism.
the class CCArgumentWrapperPropertyTest method checkSameLong.
private boolean checkSameLong(long value, @Nullable Class<? extends INBT> targetClass) {
LongNBT nbt = LongNBT.valueOf(value);
Object sanitized = CCArgumentWrapperTestHelper.wrapAndSanitize(nbt, targetClass, false);
if (value < Integer.MIN_VALUE || value > Integer.MAX_VALUE) {
return getExpected(value).equals(sanitized);
} else if (value < Short.MIN_VALUE || value > Short.MAX_VALUE) {
return IntNBT.valueOf((int) value).equals(sanitized);
} else if (value < Byte.MIN_VALUE || value > Byte.MAX_VALUE) {
return ShortNBT.valueOf((short) value).equals(sanitized);
}
return ByteNBT.valueOf((byte) value).equals(sanitized);
}
Aggregations