Potential NBT fix

This commit is contained in:
Jesse Boyd 2019-04-13 00:56:10 +10:00
parent a31dd987a5
commit 361a4e3dce
No known key found for this signature in database
GPG Key ID: 59F1DE6293AF6E1F
2 changed files with 206 additions and 64 deletions

View File

@ -907,12 +907,9 @@ public class FaweCache {
case 250:
case 251:
case 252:
case 253:
case 254:
case 256:
return false;
default:
return id > 256;
return id > 252;
}
}

View File

@ -154,77 +154,24 @@ public class FastWorldEditExtent extends AbstractDelegateExtent implements HasFa
public boolean setBlock(int x, int y, int z, final BaseBlock block) throws WorldEditException {
int id = block.getId();
switch (id) {
case 63:
case 63: {
// Fix for signs
CompoundTag nbt = block.getNbtData();
return queue.setBlock(x, y, z, id, block.getData(), nbt != null && !MainUtil.isValidSign(nbt) ? null : nbt);
case 65:
}
case 65: // Fix rotation
case 68:
case 54:
case 146:
case 61:
case 61: {
// Fix for default block rotation
byte data = (byte) block.getData();
if (data == 0) {
data = 2;
}
return queue.setBlock(x, y, z, id, data, block.getNbtData());
case 26:
case 218:
case 130:
case 142:
case 27:
case 137:
case 52:
case 154:
case 84:
case 25:
case 144:
case 138:
case 176:
case 177:
case 119:
case 323:
case 117:
case 116:
case 28:
case 66:
case 157:
case 62:
case 140:
case 149:
case 150:
case 158:
case 23:
case 123:
case 124:
case 29:
case 33:
case 151:
case 178:
case 209:
case 210:
case 211:
case 255:
case 219:
case 220:
case 221:
case 222:
case 223:
case 224:
case 225:
case 226:
case 227:
case 228:
case 229:
case 230:
case 231:
case 232:
case 233:
case 234:
// Tile
return queue.setBlock(x, y, z, id, block.getData(), block.getNbtData());
case 0:
}
case 0: // No data
case 2:
case 4:
case 13:
@ -283,9 +230,207 @@ public class FastWorldEditExtent extends AbstractDelegateExtent implements HasFa
case 192:
// No data
return queue.setBlock(x, y, z, id);
default: {
case 1: // No tiles
case 3:
case 5:
case 6:
case 8:
case 9:
case 10:
case 11:
case 12:
case 16:
case 17:
case 18:
case 19:
case 24:
case 31:
case 34:
case 35:
case 36:
case 38:
case 43:
case 44:
case 50:
case 53:
case 55:
case 59:
case 60:
case 64:
case 67:
case 69:
case 70:
case 71:
case 72:
case 75:
case 76:
case 77:
case 78:
case 89:
case 90:
case 91:
case 92:
case 93:
case 94:
case 95:
case 96:
case 97:
case 98:
case 99:
case 100:
case 104:
case 105:
case 106:
case 107:
case 108:
case 109:
case 111:
case 114:
case 115:
case 118:
case 120:
case 125:
case 126:
case 127:
case 128:
case 131:
case 132:
case 134:
case 135:
case 136:
case 139:
case 141:
case 143:
case 145:
case 147:
case 148:
case 152:
case 153:
case 155:
case 156:
case 159:
case 160:
case 161:
case 162:
case 163:
case 164:
case 167:
case 168:
case 170:
case 171:
case 175:
case 179:
case 180:
case 181:
case 182:
case 183:
case 184:
case 185:
case 186:
case 187:
case 193:
case 194:
case 195:
case 196:
case 197:
case 198:
case 199:
case 200:
case 201:
case 202:
case 203:
case 204:
case 205:
case 206:
case 207:
case 208:
case 212:
case 213:
case 214:
case 215:
case 216:
case 217:
case 235:
case 236:
case 237:
case 238:
case 239:
case 240:
case 241:
case 242:
case 243:
case 244:
case 245:
case 246:
case 247:
case 248:
case 249:
case 250:
case 251:
case 252: {
return queue.setBlock(x, y, z, id, block.getData());
}
case 26: // Tiles
case 218:
case 130:
case 142:
case 27:
case 137:
case 52:
case 154:
case 84:
case 25:
case 144:
case 138:
case 176:
case 177:
case 119:
case 323:
case 117:
case 116:
case 28:
case 66:
case 157:
case 62:
case 140:
case 149:
case 150:
case 158:
case 23:
case 123:
case 124:
case 29:
case 33:
case 151:
case 178:
case 209:
case 210:
case 211:
case 255:
case 219:
case 220:
case 221:
case 222:
case 223:
case 224:
case 225:
case 226:
case 227:
case 228:
case 229:
case 230:
case 231:
case 232:
case 233:
case 234:
default: {
CompoundTag nbt = block.getNbtData();
if (nbt != null) {
return queue.setBlock(x, y, z, id, block.getData(), nbt);
} else {
return queue.setBlock(x, y, z, id, block.getData());
}
}
}
}
}