Skip to content

Commit 09eda34

Browse files
Use VVs IdAndData class for block id conversions (#719)
1 parent 9cf5f98 commit 09eda34

File tree

5 files changed

+28
-105
lines changed

5 files changed

+28
-105
lines changed

common/src/main/java/com/viaversion/viabackwards/api/data/MappedLegacyBlockItem.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,23 @@
1717
*/
1818
package com.viaversion.viabackwards.api.data;
1919

20-
import com.viaversion.viabackwards.utils.Block;
2120
import com.viaversion.viaversion.libs.opennbt.tag.builtin.CompoundTag;
21+
import com.viaversion.viaversion.util.IdAndData;
2222
import org.checkerframework.checker.nullness.qual.Nullable;
2323

2424
public class MappedLegacyBlockItem {
2525

2626
private final int id;
2727
private final short data;
2828
private final String name;
29-
private final Block block;
29+
private final IdAndData block;
3030
private BlockEntityHandler blockEntityHandler;
3131

3232
public MappedLegacyBlockItem(int id, short data, @Nullable String name, boolean block) {
3333
this.id = id;
3434
this.data = data;
3535
this.name = name != null ? "§f" + name : null;
36-
this.block = block ? new Block(id, data) : null;
36+
this.block = block ? new IdAndData(id, data) : null;
3737
}
3838

3939
public int getId() {
@@ -52,7 +52,7 @@ public boolean isBlock() {
5252
return block != null;
5353
}
5454

55-
public Block getBlock() {
55+
public IdAndData getBlock() {
5656
return block;
5757
}
5858

common/src/main/java/com/viaversion/viabackwards/api/rewriters/LegacyBlockItemRewriter.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import com.viaversion.viabackwards.api.data.MappedLegacyBlockItem;
2323
import com.viaversion.viabackwards.api.data.BackwardsMappingDataLoader;
2424
import com.viaversion.viabackwards.protocol.protocol1_11_1to1_12.data.BlockColors;
25-
import com.viaversion.viabackwards.utils.Block;
2625
import com.viaversion.viaversion.api.minecraft.BlockChangeRecord;
2726
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
2827
import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection;
@@ -51,6 +50,7 @@
5150
import java.util.HashMap;
5251
import java.util.Map;
5352
import java.util.Optional;
53+
import com.viaversion.viaversion.util.IdAndData;
5454
import org.checkerframework.checker.nullness.qual.Nullable;
5555

5656
public abstract class LegacyBlockItemRewriter<C extends ClientboundPacketType, S extends ServerboundPacketType,
@@ -81,9 +81,9 @@ private void addMapping(String key, JsonObject object, Int2ObjectMap<MappedLegac
8181
// Include data
8282
short unmappedData = Short.parseShort(key.substring(dataSeparatorIndex + 1));
8383
unmappedId = Integer.parseInt(key.substring(0, dataSeparatorIndex));
84-
unmappedId = Block.toRawId(unmappedId, unmappedData);
84+
unmappedId = IdAndData.toRawData(unmappedId, unmappedData);
8585
} else {
86-
unmappedId = Block.rawById(Integer.parseInt(key));
86+
unmappedId = IdAndData.toRawData(Integer.parseInt(key));
8787
}
8888

8989
mappings.put(unmappedId, new MappedLegacyBlockItem(id, data, name, block));
@@ -98,12 +98,12 @@ private void addMapping(String key, JsonObject object, Int2ObjectMap<MappedLegac
9898
// Special block color handling
9999
if (name.contains("%color%")) {
100100
for (int i = from; i <= to; i++) {
101-
mappings.put(Block.rawById(i), new MappedLegacyBlockItem(id, data, name.replace("%color%", BlockColors.get(i - from)), block));
101+
mappings.put(IdAndData.toRawData(i), new MappedLegacyBlockItem(id, data, name.replace("%color%", BlockColors.get(i - from)), block));
102102
}
103103
} else {
104104
MappedLegacyBlockItem mappedBlockItem = new MappedLegacyBlockItem(id, data, name, block);
105105
for (int i = from; i <= to; i++) {
106-
mappings.put(Block.rawById(i), mappedBlockItem);
106+
mappings.put(IdAndData.toRawData(i), mappedBlockItem);
107107
}
108108
}
109109
}
@@ -208,19 +208,19 @@ public PacketHandler getFallingBlockHandler() {
208208
if (type.isPresent() && type.get() == EntityTypes1_12.ObjectType.FALLING_BLOCK) {
209209
final int objectData = wrapper.get(Type.INT, 0);
210210

211-
final Block block = handleBlock(objectData & 4095, objectData >> 12 & 15);
211+
final IdAndData block = handleBlock(objectData & 4095, objectData >> 12 & 15);
212212
if (block == null) return;
213213

214214
wrapper.set(Type.INT, 0, block.getId() | block.getData() << 12);
215215
}
216216
};
217217
}
218218

219-
public @Nullable Block handleBlock(int blockId, int data) {
219+
public @Nullable IdAndData handleBlock(int blockId, int data) {
220220
MappedLegacyBlockItem settings = getMappedBlockItem(blockId, data);
221221
if (settings == null || !settings.isBlock()) return null;
222222

223-
Block block = settings.getBlock();
223+
IdAndData block = settings.getBlock();
224224
// For some blocks, the data can still be useful (:
225225
if (block.getData() == -1) {
226226
return block.withData(data);
@@ -229,13 +229,13 @@ public PacketHandler getFallingBlockHandler() {
229229
}
230230

231231
public int handleBlockId(final int rawId) {
232-
final int id = Block.getId(rawId);
233-
final int data = Block.getData(rawId);
232+
final int id = IdAndData.getId(rawId);
233+
final int data = IdAndData.getData(rawId);
234234

235-
final Block mappedBlock = handleBlock(id, data);
235+
final IdAndData mappedBlock = handleBlock(id, data);
236236
if (mappedBlock == null) return rawId;
237237

238-
return Block.toRawId(mappedBlock.getId(), mappedBlock.getData());
238+
return IdAndData.toRawData(mappedBlock.getId(), mappedBlock.getData());
239239
}
240240

241241
public void handleChunk(Chunk chunk) {
@@ -283,9 +283,9 @@ public void handleChunk(Chunk chunk) {
283283
int btype = block >> 4;
284284
int meta = block & 0xF;
285285

286-
Block b = handleBlock(btype, meta);
286+
IdAndData b = handleBlock(btype, meta);
287287
if (b != null) {
288-
palette.setIdByIndex(j, Block.toRawId(b.getId(), b.getData()));
288+
palette.setIdByIndex(j, IdAndData.toRawData(b.getId(), b.getData()));
289289
}
290290

291291
// We already know that is has a handler
@@ -336,13 +336,13 @@ protected CompoundTag getNamedTag(String text) {
336336
}
337337

338338
private @Nullable MappedLegacyBlockItem getMappedBlockItem(int id, int data) {
339-
MappedLegacyBlockItem mapping = replacementData.get(Block.toRawId(id, data));
340-
return mapping != null || data == 0 ? mapping : replacementData.get(Block.rawById(id));
339+
MappedLegacyBlockItem mapping = replacementData.get(IdAndData.toRawData(id, data));
340+
return mapping != null || data == 0 ? mapping : replacementData.get(IdAndData.toRawData(id));
341341
}
342342

343343
private @Nullable MappedLegacyBlockItem getMappedBlockItem(int rawId) {
344344
MappedLegacyBlockItem mapping = replacementData.get(rawId);
345-
return mapping != null ? mapping : replacementData.get(Block.rawByData(rawId));
345+
return mapping != null ? mapping : replacementData.get(IdAndData.removeData(rawId));
346346
}
347347

348348
protected JsonObject readMappingsFile(final String name) {

common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_10to1_11/packets/BlockItemPackets1_11.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.viaversion.viabackwards.protocol.protocol1_10to1_11.Protocol1_10To1_11;
2525
import com.viaversion.viabackwards.protocol.protocol1_10to1_11.storage.ChestedHorseStorage;
2626
import com.viaversion.viabackwards.protocol.protocol1_10to1_11.storage.WindowTracker;
27-
import com.viaversion.viabackwards.utils.Block;
2827
import com.viaversion.viaversion.api.connection.UserConnection;
2928
import com.viaversion.viaversion.api.data.entity.EntityTracker;
3029
import com.viaversion.viaversion.api.data.entity.StoredEntityData;
@@ -41,6 +40,7 @@
4140
import com.viaversion.viaversion.protocols.protocol1_11to1_10.rewriter.EntityIdRewriter;
4241
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.ClientboundPackets1_9_3;
4342
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.ServerboundPackets1_9_3;
43+
import com.viaversion.viaversion.util.IdAndData;
4444
import java.util.Arrays;
4545
import java.util.Optional;
4646

@@ -274,7 +274,7 @@ public void register() {
274274
@Override
275275
protected void registerRewrites() {
276276
// Handle spawner block entity (map to itself with custom handler)
277-
MappedLegacyBlockItem data = replacementData.computeIfAbsent(Block.rawById(52), s -> new MappedLegacyBlockItem(52, (short) -1, null, false));
277+
MappedLegacyBlockItem data = replacementData.computeIfAbsent(IdAndData.toRawData(52), s -> new MappedLegacyBlockItem(52, (short) -1, null, false));
278278
data.setBlockEntityHandler((b, tag) -> {
279279
EntityIdRewriter.toClientSpawner(tag, true);
280280
return tag;

common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import com.viaversion.viabackwards.protocol.protocol1_12_2to1_13.providers.BackwardsBlockEntityProvider;
2727
import com.viaversion.viabackwards.protocol.protocol1_12_2to1_13.storage.BackwardsBlockStorage;
2828
import com.viaversion.viabackwards.protocol.protocol1_12_2to1_13.storage.NoteBlockStorage;
29-
import com.viaversion.viabackwards.utils.Block;
3029
import com.viaversion.viaversion.api.Via;
3130
import com.viaversion.viaversion.api.connection.UserConnection;
3231
import com.viaversion.viaversion.api.minecraft.BlockChangeRecord;
@@ -56,6 +55,7 @@
5655
import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.data.BlockIdData;
5756
import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.data.SpawnEggRewriter;
5857
import com.viaversion.viaversion.util.ComponentUtil;
58+
import com.viaversion.viaversion.util.IdAndData;
5959
import com.viaversion.viaversion.util.Key;
6060
import com.viaversion.viaversion.util.Pair;
6161
import java.util.ArrayList;
@@ -100,11 +100,11 @@ protected void registerPackets() {
100100
}
101101

102102
if (SpawnEggRewriter.getEntityId(oldId).isPresent()) {
103-
wrapper.write(Type.VAR_INT, Block.rawById(383));
103+
wrapper.write(Type.VAR_INT, IdAndData.toRawData(383));
104104
return;
105105
}
106106

107-
wrapper.write(Type.VAR_INT, Block.getId(oldId));
107+
wrapper.write(Type.VAR_INT, IdAndData.getId(oldId));
108108
});
109109

110110
protocol.registerClientbound(ClientboundPackets1_13.BLOCK_ACTION, new PacketHandlers() {
@@ -751,7 +751,7 @@ public Item handleItemToServer(Item item) {
751751
// Save original id
752752
int originalId = (item.identifier() << 16 | item.data() & 0xFFFF);
753753

754-
int rawId = Block.toRawId(item.identifier(), item.data());
754+
int rawId = IdAndData.toRawData(item.identifier(), item.data());
755755

756756
// NBT Additions
757757
if (isDamageable(item.identifier())) {
@@ -832,7 +832,7 @@ public Item handleItemToServer(Item item) {
832832
if (item.identifier() == 229) { // purple shulker box
833833
newId = 362; // directly set the new id -> base/colorless shulker box
834834
} else if (item.identifier() == 31 && item.data() == 0) { // Shrub was removed
835-
rawId = Block.rawById(32); // Dead Bush
835+
rawId = IdAndData.toRawData(32); // Dead Bush
836836
} else if (protocol.getMappingData().getItemMappings().inverse().getNewId(rawId & ~0xF) != -1) {
837837
rawId &= ~0xF; // Remove data
838838
} else {

common/src/main/java/com/viaversion/viabackwards/utils/Block.java

Lines changed: 0 additions & 77 deletions
This file was deleted.

0 commit comments

Comments
 (0)