diff --git a/all/pom.xml b/all/pom.xml
index 90ac4d87..f578e90e 100644
--- a/all/pom.xml
+++ b/all/pom.xml
@@ -16,7 +16,7 @@
viabackwards-parent
nl.matsv
- 3.2.1-SNAPSHOT
+ 3.3.0-20w45a
viabackwards-all
diff --git a/bukkit/pom.xml b/bukkit/pom.xml
index 72095d93..2a79f6c1 100644
--- a/bukkit/pom.xml
+++ b/bukkit/pom.xml
@@ -16,7 +16,7 @@
viabackwards-parent
nl.matsv
- 3.2.1-SNAPSHOT
+ 3.3.0-20w45a
viabackwards-bukkit
diff --git a/bungee/pom.xml b/bungee/pom.xml
index 55265d0d..124490dd 100644
--- a/bungee/pom.xml
+++ b/bungee/pom.xml
@@ -16,7 +16,7 @@
viabackwards-parent
nl.matsv
- 3.2.1-SNAPSHOT
+ 3.3.0-20w45a
viabackwards-bungee
diff --git a/core/pom.xml b/core/pom.xml
index ae4223b3..7ba0e852 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -16,7 +16,7 @@
viabackwards-parent
nl.matsv
- 3.2.1-SNAPSHOT
+ 3.3.0-20w45a
viabackwards-core
diff --git a/core/src/main/java/nl/matsv/viabackwards/api/ViaBackwardsPlatform.java b/core/src/main/java/nl/matsv/viabackwards/api/ViaBackwardsPlatform.java
index 81637340..255ba9c6 100644
--- a/core/src/main/java/nl/matsv/viabackwards/api/ViaBackwardsPlatform.java
+++ b/core/src/main/java/nl/matsv/viabackwards/api/ViaBackwardsPlatform.java
@@ -32,6 +32,7 @@ import nl.matsv.viabackwards.protocol.protocol1_15_2to1_16.Protocol1_15_2To1_16;
import nl.matsv.viabackwards.protocol.protocol1_15to1_15_1.Protocol1_15To1_15_1;
import nl.matsv.viabackwards.protocol.protocol1_16_2to1_16_3.Protocol1_16_2To1_16_3;
import nl.matsv.viabackwards.protocol.protocol1_16_3to1_16_4.Protocol1_16_3To1_16_4;
+import nl.matsv.viabackwards.protocol.protocol1_16_4to1_17.Protocol1_16_4To1_17;
import nl.matsv.viabackwards.protocol.protocol1_16to1_16_1.Protocol1_16To1_16_1;
import nl.matsv.viabackwards.protocol.protocol1_16_1to1_16_2.Protocol1_16_1To1_16_2;
import nl.matsv.viabackwards.protocol.protocol1_9_4to1_10.Protocol1_9_4To1_10;
@@ -46,7 +47,7 @@ import static us.myles.ViaVersion.api.protocol.ProtocolRegistry.registerProtocol
public interface ViaBackwardsPlatform {
- String MINIMUM_VV_VERSION = "3.2.0";
+ String MINIMUM_VV_VERSION = "3.3.0";
/**
* Initialize ViaBackwards.
@@ -94,6 +95,8 @@ public interface ViaBackwardsPlatform {
registerProtocol(new Protocol1_16_1To1_16_2(), ProtocolVersion.v1_16_1, ProtocolVersion.v1_16_2);
registerProtocol(new Protocol1_16_2To1_16_3(), ProtocolVersion.v1_16_2, ProtocolVersion.v1_16_3);
registerProtocol(new Protocol1_16_3To1_16_4(), ProtocolVersion.v1_16_3, ProtocolVersion.v1_16_4);
+
+ registerProtocol(new Protocol1_16_4To1_17(), ProtocolVersion.v1_16_4, ProtocolVersion.v1_17);
}
/**
diff --git a/core/src/main/java/nl/matsv/viabackwards/api/data/VBMappingDataLoader.java b/core/src/main/java/nl/matsv/viabackwards/api/data/VBMappingDataLoader.java
index 0f4ebeb4..21864762 100644
--- a/core/src/main/java/nl/matsv/viabackwards/api/data/VBMappingDataLoader.java
+++ b/core/src/main/java/nl/matsv/viabackwards/api/data/VBMappingDataLoader.java
@@ -114,8 +114,8 @@ public class VBMappingDataLoader {
public static Int2ObjectMap loadItemMappings(JsonObject oldMapping, JsonObject newMapping, JsonObject diffMapping) {
Int2ObjectMap itemMapping = new Int2ObjectOpenHashMap<>(diffMapping.size(), 1F);
- Object2IntMap newIdenfierMap = MappingDataLoader.indexedObjectToMap(newMapping);
- Object2IntMap oldIdenfierMap = MappingDataLoader.indexedObjectToMap(oldMapping);
+ Object2IntMap newIdenfierMap = MappingDataLoader.indexedObjectToMap(newMapping);
+ Object2IntMap oldIdenfierMap = MappingDataLoader.indexedObjectToMap(oldMapping);
for (Map.Entry entry : diffMapping.entrySet()) {
JsonObject object = entry.getValue().getAsJsonObject();
String mappedIdName = object.getAsJsonPrimitive("id").getAsString();
@@ -139,6 +139,15 @@ public class VBMappingDataLoader {
itemMapping.put(oldId, new MappedItem(mappedId, name));
}
+ // Look for missing keys
+ if (!Via.getConfig().isSuppressConversionWarnings()) {
+ for (Object2IntMap.Entry entry : oldIdenfierMap.object2IntEntrySet()) {
+ if (!newIdenfierMap.containsKey(entry.getKey()) && !itemMapping.containsKey(entry.getIntValue())) {
+ ViaBackwards.getPlatform().getLogger().warning("No item mapping for " + entry.getKey() + " :( ");
+ }
+ }
+ }
+
return itemMapping;
}
}
diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_16_4to1_17/Protocol1_16_4To1_17.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_16_4to1_17/Protocol1_16_4To1_17.java
new file mode 100644
index 00000000..e63008ac
--- /dev/null
+++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_16_4to1_17/Protocol1_16_4To1_17.java
@@ -0,0 +1,54 @@
+package nl.matsv.viabackwards.protocol.protocol1_16_4to1_17;
+
+import nl.matsv.viabackwards.api.BackwardsProtocol;
+import nl.matsv.viabackwards.api.data.BackwardsMappings;
+import nl.matsv.viabackwards.api.rewriters.SoundRewriter;
+import nl.matsv.viabackwards.protocol.protocol1_16_4to1_17.packets.BlockItemPackets1_17;
+import us.myles.ViaVersion.api.remapper.PacketRemapper;
+import us.myles.ViaVersion.api.rewriters.StatisticsRewriter;
+import us.myles.ViaVersion.api.rewriters.TagRewriter;
+import us.myles.ViaVersion.api.type.Type;
+import us.myles.ViaVersion.protocols.protocol1_16_2to1_16_1.ClientboundPackets1_16_2;
+import us.myles.ViaVersion.protocols.protocol1_16_2to1_16_1.ServerboundPackets1_16_2;
+import us.myles.ViaVersion.protocols.protocol1_17to1_16_4.Protocol1_17To1_16_4;
+
+public class Protocol1_16_4To1_17 extends BackwardsProtocol {
+
+ public static final BackwardsMappings MAPPINGS = new BackwardsMappings("1.17", "1.16.2", Protocol1_17To1_16_4.class, false);
+
+ public Protocol1_16_4To1_17() {
+ super(ClientboundPackets1_16_2.class, ClientboundPackets1_16_2.class, ServerboundPackets1_16_2.class, ServerboundPackets1_16_2.class);
+ }
+
+ @Override
+ protected void registerPackets() {
+ executeAsyncAfterLoaded(Protocol1_17To1_16_4.class, MAPPINGS::load);
+
+ new BlockItemPackets1_17(this, null).register();
+
+ SoundRewriter soundRewriter = new SoundRewriter(this);
+ soundRewriter.registerSound(ClientboundPackets1_16_2.SOUND);
+ soundRewriter.registerSound(ClientboundPackets1_16_2.ENTITY_SOUND);
+ soundRewriter.registerNamedSound(ClientboundPackets1_16_2.NAMED_SOUND);
+ soundRewriter.registerStopSound(ClientboundPackets1_16_2.STOP_SOUND);
+
+ new TagRewriter(this, null).register(ClientboundPackets1_16_2.TAGS);
+ new StatisticsRewriter(this, null).register(ClientboundPackets1_16_2.STATISTICS);
+
+ registerOutgoing(ClientboundPackets1_16_2.RESOURCE_PACK, new PacketRemapper() {
+ @Override
+ public void registerMap() {
+ handler(wrapper -> {
+ wrapper.passthrough(Type.STRING);
+ wrapper.passthrough(Type.STRING);
+ wrapper.read(Type.BOOLEAN); // Required
+ });
+ }
+ });
+ }
+
+ @Override
+ public BackwardsMappings getMappingData() {
+ return MAPPINGS;
+ }
+}
diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_16_4to1_17/packets/BlockItemPackets1_17.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_16_4to1_17/packets/BlockItemPackets1_17.java
new file mode 100644
index 00000000..c8bbb76b
--- /dev/null
+++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_16_4to1_17/packets/BlockItemPackets1_17.java
@@ -0,0 +1,89 @@
+package nl.matsv.viabackwards.protocol.protocol1_16_4to1_17.packets;
+
+import nl.matsv.viabackwards.api.rewriters.TranslatableRewriter;
+import nl.matsv.viabackwards.protocol.protocol1_16_4to1_17.Protocol1_16_4To1_17;
+import us.myles.ViaVersion.api.minecraft.chunks.Chunk;
+import us.myles.ViaVersion.api.minecraft.chunks.ChunkSection;
+import us.myles.ViaVersion.api.remapper.PacketRemapper;
+import us.myles.ViaVersion.api.rewriters.BlockRewriter;
+import us.myles.ViaVersion.api.rewriters.ItemRewriter;
+import us.myles.ViaVersion.api.type.Type;
+import us.myles.ViaVersion.protocols.protocol1_16_2to1_16_1.ClientboundPackets1_16_2;
+import us.myles.ViaVersion.protocols.protocol1_16_2to1_16_1.ServerboundPackets1_16_2;
+import us.myles.ViaVersion.protocols.protocol1_16_2to1_16_1.types.Chunk1_16_2Type;
+import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.data.RecipeRewriter1_16;
+import us.myles.ViaVersion.protocols.protocol1_17to1_16_4.types.Chunk1_17Type;
+
+public class BlockItemPackets1_17 extends nl.matsv.viabackwards.api.rewriters.ItemRewriter {
+
+ public BlockItemPackets1_17(Protocol1_16_4To1_17 protocol, TranslatableRewriter translatableRewriter) {
+ super(protocol, translatableRewriter);
+ }
+
+ @Override
+ protected void registerPackets() {
+ ItemRewriter itemRewriter = new ItemRewriter(protocol, this::handleItemToClient, this::handleItemToServer);
+ BlockRewriter blockRewriter = new BlockRewriter(protocol, Type.POSITION1_14);
+
+ new RecipeRewriter1_16(protocol, this::handleItemToClient).registerDefaultHandler(ClientboundPackets1_16_2.DECLARE_RECIPES);
+
+ itemRewriter.registerSetCooldown(ClientboundPackets1_16_2.COOLDOWN);
+ itemRewriter.registerWindowItems(ClientboundPackets1_16_2.WINDOW_ITEMS, Type.FLAT_VAR_INT_ITEM_ARRAY);
+ itemRewriter.registerSetSlot(ClientboundPackets1_16_2.SET_SLOT, Type.FLAT_VAR_INT_ITEM);
+ itemRewriter.registerEntityEquipmentArray(ClientboundPackets1_16_2.ENTITY_EQUIPMENT, Type.FLAT_VAR_INT_ITEM);
+ itemRewriter.registerTradeList(ClientboundPackets1_16_2.TRADE_LIST, Type.FLAT_VAR_INT_ITEM);
+ itemRewriter.registerAdvancements(ClientboundPackets1_16_2.ADVANCEMENTS, Type.FLAT_VAR_INT_ITEM);
+ itemRewriter.registerSpawnParticle(ClientboundPackets1_16_2.SPAWN_PARTICLE, Type.FLAT_VAR_INT_ITEM, Type.DOUBLE);
+
+ blockRewriter.registerAcknowledgePlayerDigging(ClientboundPackets1_16_2.ACKNOWLEDGE_PLAYER_DIGGING);
+ blockRewriter.registerBlockAction(ClientboundPackets1_16_2.BLOCK_ACTION);
+ blockRewriter.registerBlockChange(ClientboundPackets1_16_2.BLOCK_CHANGE);
+ blockRewriter.registerVarLongMultiBlockChange(ClientboundPackets1_16_2.MULTI_BLOCK_CHANGE);
+ blockRewriter.registerEffect(ClientboundPackets1_16_2.EFFECT, 1010, 2001);
+
+ // Some chunk sections will be lost ¯\_(ツ)_/¯
+ protocol.registerOutgoing(ClientboundPackets1_16_2.UPDATE_LIGHT, new PacketRemapper() {
+ @Override
+ public void registerMap() {
+ handler(wrapper -> {
+ wrapper.passthrough(Type.VAR_INT);
+ wrapper.passthrough(Type.VAR_INT);
+ wrapper.passthrough(Type.BOOLEAN);
+
+ wrapper.write(Type.VAR_INT, wrapper.read(Type.VAR_LONG).intValue()); // Sky mask
+ wrapper.write(Type.VAR_INT, wrapper.read(Type.VAR_LONG).intValue()); // Block mask
+ wrapper.write(Type.VAR_INT, wrapper.read(Type.VAR_LONG).intValue()); // Empty sky mask
+ wrapper.write(Type.VAR_INT, wrapper.read(Type.VAR_LONG).intValue()); // Empty block mask
+ });
+ }
+ });
+
+ protocol.registerOutgoing(ClientboundPackets1_16_2.CHUNK_DATA, new PacketRemapper() {
+ @Override
+ public void registerMap() {
+ handler(wrapper -> {
+ Chunk chunk = wrapper.read(new Chunk1_17Type());
+ wrapper.write(new Chunk1_16_2Type(), chunk);
+
+ for (int i = 0; i < chunk.getSections().length; i++) {
+ ChunkSection section = chunk.getSections()[i];
+ if (section == null) continue;
+ for (int j = 0; j < section.getPaletteSize(); j++) {
+ int old = section.getPaletteEntry(j);
+ section.setPaletteEntry(j, protocol.getMappingData().getNewBlockStateId(old));
+ }
+ }
+ });
+ }
+ });
+
+ itemRewriter.registerClickWindow(ServerboundPackets1_16_2.CLICK_WINDOW, Type.FLAT_VAR_INT_ITEM);
+ itemRewriter.registerCreativeInvAction(ServerboundPackets1_16_2.CREATIVE_INVENTORY_ACTION, Type.FLAT_VAR_INT_ITEM);
+ protocol.registerIncoming(ServerboundPackets1_16_2.EDIT_BOOK, new PacketRemapper() {
+ @Override
+ public void registerMap() {
+ handler(wrapper -> handleItemToServer(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM)));
+ }
+ });
+ }
+}
diff --git a/core/src/main/resources/assets/viabackwards/data/mapping-1.16.2to1.17.json b/core/src/main/resources/assets/viabackwards/data/mapping-1.16.2to1.17.json
new file mode 100644
index 00000000..7ad4e7aa
--- /dev/null
+++ b/core/src/main/resources/assets/viabackwards/data/mapping-1.16.2to1.17.json
@@ -0,0 +1,169 @@
+{
+ "blockstates": {
+ "minecraft:dirt_path": "minecraft:grass_path",
+ "minecraft:cauldron": "minecraft:cauldron[level=0]",
+ "minecraft:water_cauldron[level=1]": "minecraft:cauldron[level=1]",
+ "minecraft:water_cauldron[level=2]": "minecraft:cauldron[level=2]",
+ "minecraft:water_cauldron[level=3]": "minecraft:cauldron[level=3]",
+ "minecraft:lava_cauldron": "minecraft:cauldron[level=3]",
+ "minecraft:lightning_rod[facing=north,powered=true]": "minecraft:end_rod[facing=north]",
+ "minecraft:lightning_rod[facing=north,powered=false]": "minecraft:end_rod[facing=north]",
+ "minecraft:lightning_rod[facing=east,powered=true]": "minecraft:end_rod[facing=east]",
+ "minecraft:lightning_rod[facing=east,powered=false]": "minecraft:end_rod[facing=east]",
+ "minecraft:lightning_rod[facing=south,powered=true]": "minecraft:end_rod[facing=south]",
+ "minecraft:lightning_rod[facing=south,powered=false]": "minecraft:end_rod[facing=south]",
+ "minecraft:lightning_rod[facing=west,powered=true]": "minecraft:end_rod[facing=west]",
+ "minecraft:lightning_rod[facing=west,powered=false]": "minecraft:end_rod[facing=west]",
+ "minecraft:lightning_rod[facing=up,powered=true]": "minecraft:end_rod[facing=up]",
+ "minecraft:lightning_rod[facing=up,powered=false]": "minecraft:end_rod[facing=up]",
+ "minecraft:lightning_rod[facing=down,powered=true]": "minecraft:end_rod[facing=down]",
+ "minecraft:lightning_rod[facing=down,powered=false]": "minecraft:end_rod[facing=down]",
+ "minecraft:tuff": "minecraft:cobblestone",
+ "minecraft:calcite": "minecraft:polished_diorite",
+ "minecraft:tinted_glass": "minecraft:black_stained_glass",
+ "minecraft:powered_rail[powered=true,shape=north_south,waterlogged=true]": "minecraft:powered_rail[powered=true,shape=north_south]",
+ "minecraft:powered_rail[powered=true,shape=north_south,waterlogged=false]": "minecraft:powered_rail[powered=true,shape=north_south]",
+ "minecraft:powered_rail[powered=true,shape=east_west,waterlogged=true]": "minecraft:powered_rail[powered=true,shape=east_west]",
+ "minecraft:powered_rail[powered=true,shape=east_west,waterlogged=false]": "minecraft:powered_rail[powered=true,shape=east_west]",
+ "minecraft:powered_rail[powered=true,shape=ascending_east,waterlogged=true]": "minecraft:powered_rail[powered=true,shape=ascending_east]",
+ "minecraft:powered_rail[powered=true,shape=ascending_east,waterlogged=false]": "minecraft:powered_rail[powered=true,shape=ascending_east]",
+ "minecraft:powered_rail[powered=true,shape=ascending_west,waterlogged=true]": "minecraft:powered_rail[powered=true,shape=ascending_west]",
+ "minecraft:powered_rail[powered=true,shape=ascending_west,waterlogged=false]": "minecraft:powered_rail[powered=true,shape=ascending_west]",
+ "minecraft:powered_rail[powered=true,shape=ascending_north,waterlogged=true]": "minecraft:powered_rail[powered=true,shape=ascending_north]",
+ "minecraft:powered_rail[powered=true,shape=ascending_north,waterlogged=false]": "minecraft:powered_rail[powered=true,shape=ascending_north]",
+ "minecraft:powered_rail[powered=true,shape=ascending_south,waterlogged=true]": "minecraft:powered_rail[powered=true,shape=ascending_south]",
+ "minecraft:powered_rail[powered=true,shape=ascending_south,waterlogged=false]": "minecraft:powered_rail[powered=true,shape=ascending_south]",
+ "minecraft:powered_rail[powered=false,shape=north_south,waterlogged=true]": "minecraft:powered_rail[powered=false,shape=north_south]",
+ "minecraft:powered_rail[powered=false,shape=north_south,waterlogged=false]": "minecraft:powered_rail[powered=false,shape=north_south]",
+ "minecraft:powered_rail[powered=false,shape=east_west,waterlogged=true]": "minecraft:powered_rail[powered=false,shape=east_west]",
+ "minecraft:powered_rail[powered=false,shape=east_west,waterlogged=false]": "minecraft:powered_rail[powered=false,shape=east_west]",
+ "minecraft:powered_rail[powered=false,shape=ascending_east,waterlogged=true]": "minecraft:powered_rail[powered=false,shape=ascending_east]",
+ "minecraft:powered_rail[powered=false,shape=ascending_east,waterlogged=false]": "minecraft:powered_rail[powered=false,shape=ascending_east]",
+ "minecraft:powered_rail[powered=false,shape=ascending_west,waterlogged=true]": "minecraft:powered_rail[powered=false,shape=ascending_west]",
+ "minecraft:powered_rail[powered=false,shape=ascending_west,waterlogged=false]": "minecraft:powered_rail[powered=false,shape=ascending_west]",
+ "minecraft:powered_rail[powered=false,shape=ascending_north,waterlogged=true]": "minecraft:powered_rail[powered=false,shape=ascending_north]",
+ "minecraft:powered_rail[powered=false,shape=ascending_north,waterlogged=false]": "minecraft:powered_rail[powered=false,shape=ascending_north]",
+ "minecraft:powered_rail[powered=false,shape=ascending_south,waterlogged=true]": "minecraft:powered_rail[powered=false,shape=ascending_south]",
+ "minecraft:powered_rail[powered=false,shape=ascending_south,waterlogged=false]": "minecraft:powered_rail[powered=false,shape=ascending_south]",
+ "minecraft:detector_rail[powered=true,shape=north_south,waterlogged=true]": "minecraft:detector_rail[powered=true,shape=north_south]",
+ "minecraft:detector_rail[powered=true,shape=north_south,waterlogged=false]": "minecraft:detector_rail[powered=true,shape=north_south]",
+ "minecraft:detector_rail[powered=true,shape=east_west,waterlogged=true]": "minecraft:detector_rail[powered=true,shape=east_west]",
+ "minecraft:detector_rail[powered=true,shape=east_west,waterlogged=false]": "minecraft:detector_rail[powered=true,shape=east_west]",
+ "minecraft:detector_rail[powered=true,shape=ascending_east,waterlogged=true]": "minecraft:detector_rail[powered=true,shape=ascending_east]",
+ "minecraft:detector_rail[powered=true,shape=ascending_east,waterlogged=false]": "minecraft:detector_rail[powered=true,shape=ascending_east]",
+ "minecraft:detector_rail[powered=true,shape=ascending_west,waterlogged=true]": "minecraft:detector_rail[powered=true,shape=ascending_west]",
+ "minecraft:detector_rail[powered=true,shape=ascending_west,waterlogged=false]": "minecraft:detector_rail[powered=true,shape=ascending_west]",
+ "minecraft:detector_rail[powered=true,shape=ascending_north,waterlogged=true]": "minecraft:detector_rail[powered=true,shape=ascending_north]",
+ "minecraft:detector_rail[powered=true,shape=ascending_north,waterlogged=false]": "minecraft:detector_rail[powered=true,shape=ascending_north]",
+ "minecraft:detector_rail[powered=true,shape=ascending_south,waterlogged=true]": "minecraft:detector_rail[powered=true,shape=ascending_south]",
+ "minecraft:detector_rail[powered=true,shape=ascending_south,waterlogged=false]": "minecraft:detector_rail[powered=true,shape=ascending_south]",
+ "minecraft:detector_rail[powered=false,shape=north_south,waterlogged=true]": "minecraft:detector_rail[powered=false,shape=north_south]",
+ "minecraft:detector_rail[powered=false,shape=north_south,waterlogged=false]": "minecraft:detector_rail[powered=false,shape=north_south]",
+ "minecraft:detector_rail[powered=false,shape=east_west,waterlogged=true]": "minecraft:detector_rail[powered=false,shape=east_west]",
+ "minecraft:detector_rail[powered=false,shape=east_west,waterlogged=false]": "minecraft:detector_rail[powered=false,shape=east_west]",
+ "minecraft:detector_rail[powered=false,shape=ascending_east,waterlogged=true]": "minecraft:detector_rail[powered=false,shape=ascending_east]",
+ "minecraft:detector_rail[powered=false,shape=ascending_east,waterlogged=false]": "minecraft:detector_rail[powered=false,shape=ascending_east]",
+ "minecraft:detector_rail[powered=false,shape=ascending_west,waterlogged=true]": "minecraft:detector_rail[powered=false,shape=ascending_west]",
+ "minecraft:detector_rail[powered=false,shape=ascending_west,waterlogged=false]": "minecraft:detector_rail[powered=false,shape=ascending_west]",
+ "minecraft:detector_rail[powered=false,shape=ascending_north,waterlogged=true]": "minecraft:detector_rail[powered=false,shape=ascending_north]",
+ "minecraft:detector_rail[powered=false,shape=ascending_north,waterlogged=false]": "minecraft:detector_rail[powered=false,shape=ascending_north]",
+ "minecraft:detector_rail[powered=false,shape=ascending_south,waterlogged=true]": "minecraft:detector_rail[powered=false,shape=ascending_south]",
+ "minecraft:detector_rail[powered=false,shape=ascending_south,waterlogged=false]": "minecraft:detector_rail[powered=false,shape=ascending_south]",
+ "minecraft:rail[shape=north_south,waterlogged=true]": "minecraft:rail[shape=north_south]",
+ "minecraft:rail[shape=north_south,waterlogged=false]": "minecraft:rail[shape=north_south]",
+ "minecraft:rail[shape=east_west,waterlogged=true]": "minecraft:rail[shape=east_west]",
+ "minecraft:rail[shape=east_west,waterlogged=false]": "minecraft:rail[shape=east_west]",
+ "minecraft:rail[shape=ascending_east,waterlogged=true]": "minecraft:rail[shape=ascending_east]",
+ "minecraft:rail[shape=ascending_east,waterlogged=false]": "minecraft:rail[shape=ascending_east]",
+ "minecraft:rail[shape=ascending_west,waterlogged=true]": "minecraft:rail[shape=ascending_west]",
+ "minecraft:rail[shape=ascending_west,waterlogged=false]": "minecraft:rail[shape=ascending_west]",
+ "minecraft:rail[shape=ascending_north,waterlogged=true]": "minecraft:rail[shape=ascending_north]",
+ "minecraft:rail[shape=ascending_north,waterlogged=false]": "minecraft:rail[shape=ascending_north]",
+ "minecraft:rail[shape=ascending_south,waterlogged=true]": "minecraft:rail[shape=ascending_south]",
+ "minecraft:rail[shape=ascending_south,waterlogged=false]": "minecraft:rail[shape=ascending_south]",
+ "minecraft:rail[shape=south_east,waterlogged=true]": "minecraft:rail[shape=south_east]",
+ "minecraft:rail[shape=south_east,waterlogged=false]": "minecraft:rail[shape=south_east]",
+ "minecraft:rail[shape=south_west,waterlogged=true]": "minecraft:rail[shape=south_west]",
+ "minecraft:rail[shape=south_west,waterlogged=false]": "minecraft:rail[shape=south_west]",
+ "minecraft:rail[shape=north_west,waterlogged=true]": "minecraft:rail[shape=north_west]",
+ "minecraft:rail[shape=north_west,waterlogged=false]": "minecraft:rail[shape=north_west]",
+ "minecraft:rail[shape=north_east,waterlogged=true]": "minecraft:rail[shape=north_east]",
+ "minecraft:rail[shape=north_east,waterlogged=false]": "minecraft:rail[shape=north_east]",
+ "minecraft:activator_rail[powered=true,shape=north_south,waterlogged=true]": "minecraft:activator_rail[powered=true,shape=north_south]",
+ "minecraft:activator_rail[powered=true,shape=north_south,waterlogged=false]": "minecraft:activator_rail[powered=true,shape=north_south]",
+ "minecraft:activator_rail[powered=true,shape=east_west,waterlogged=true]": "minecraft:activator_rail[powered=true,shape=east_west]",
+ "minecraft:activator_rail[powered=true,shape=east_west,waterlogged=false]": "minecraft:activator_rail[powered=true,shape=east_west]",
+ "minecraft:activator_rail[powered=true,shape=ascending_east,waterlogged=true]": "minecraft:activator_rail[powered=true,shape=ascending_east]",
+ "minecraft:activator_rail[powered=true,shape=ascending_east,waterlogged=false]": "minecraft:activator_rail[powered=true,shape=ascending_east]",
+ "minecraft:activator_rail[powered=true,shape=ascending_west,waterlogged=true]": "minecraft:activator_rail[powered=true,shape=ascending_west]",
+ "minecraft:activator_rail[powered=true,shape=ascending_west,waterlogged=false]": "minecraft:activator_rail[powered=true,shape=ascending_west]",
+ "minecraft:activator_rail[powered=true,shape=ascending_north,waterlogged=true]": "minecraft:activator_rail[powered=true,shape=ascending_north]",
+ "minecraft:activator_rail[powered=true,shape=ascending_north,waterlogged=false]": "minecraft:activator_rail[powered=true,shape=ascending_north]",
+ "minecraft:activator_rail[powered=true,shape=ascending_south,waterlogged=true]": "minecraft:activator_rail[powered=true,shape=ascending_south]",
+ "minecraft:activator_rail[powered=true,shape=ascending_south,waterlogged=false]": "minecraft:activator_rail[powered=true,shape=ascending_south]",
+ "minecraft:activator_rail[powered=false,shape=north_south,waterlogged=true]": "minecraft:activator_rail[powered=false,shape=north_south]",
+ "minecraft:activator_rail[powered=false,shape=north_south,waterlogged=false]": "minecraft:activator_rail[powered=false,shape=north_south]",
+ "minecraft:activator_rail[powered=false,shape=east_west,waterlogged=true]": "minecraft:activator_rail[powered=false,shape=east_west]",
+ "minecraft:activator_rail[powered=false,shape=east_west,waterlogged=false]": "minecraft:activator_rail[powered=false,shape=east_west]",
+ "minecraft:activator_rail[powered=false,shape=ascending_east,waterlogged=true]": "minecraft:activator_rail[powered=false,shape=ascending_east]",
+ "minecraft:activator_rail[powered=false,shape=ascending_east,waterlogged=false]": "minecraft:activator_rail[powered=false,shape=ascending_east]",
+ "minecraft:activator_rail[powered=false,shape=ascending_west,waterlogged=true]": "minecraft:activator_rail[powered=false,shape=ascending_west]",
+ "minecraft:activator_rail[powered=false,shape=ascending_west,waterlogged=false]": "minecraft:activator_rail[powered=false,shape=ascending_west]",
+ "minecraft:activator_rail[powered=false,shape=ascending_north,waterlogged=true]": "minecraft:activator_rail[powered=false,shape=ascending_north]",
+ "minecraft:activator_rail[powered=false,shape=ascending_north,waterlogged=false]": "minecraft:activator_rail[powered=false,shape=ascending_north]",
+ "minecraft:activator_rail[powered=false,shape=ascending_south,waterlogged=true]": "minecraft:activator_rail[powered=false,shape=ascending_south]",
+ "minecraft:activator_rail[powered=false,shape=ascending_south,waterlogged=false]": "minecraft:activator_rail[powered=false,shape=ascending_south]",
+ },
+ "items": {
+ "minecraft:dirt_path": {
+ "id": "minecraft:grass_path",
+ "name": "1.17 Dirt Path"
+ }
+ },
+ "sounds": {
+ "block.amethyst_block.break": "",
+ "block.amethyst_block.chime": "",
+ "block.amethyst_block.fall": "",
+ "block.amethyst_block.hit": "",
+ "block.amethyst_block.place": "",
+ "block.amethyst_block.step": "",
+ "block.amethyst_cluster.break": "",
+ "block.amethyst_cluster.fall": "",
+ "block.amethyst_cluster.hit": "",
+ "block.amethyst_cluster.place": "",
+ "block.amethyst_cluster.step": "",
+ "block.cake.add_candle": "",
+ "block.calcite.break": "",
+ "block.calcite.step": "",
+ "block.calcite.place": "",
+ "block.calcite.hit": "",
+ "block.calcite.fall": "",
+ "block.candle.ambient": "",
+ "block.candle.break": "",
+ "block.candle.extinguish": "",
+ "block.candle.fall": "",
+ "block.candle.hit": "",
+ "block.candle.place": "",
+ "block.candle.step": "",
+ "block.copper.break": "",
+ "block.copper.step": "",
+ "block.copper.place": "",
+ "block.copper.hit": "",
+ "block.copper.fall": "",
+ "block.large_amethyst_bud.break": "",
+ "block.large_amethyst_bud.place": "",
+ "block.medium_amethyst_bud.break": "",
+ "block.medium_amethyst_bud.place": "",
+ "entity.minecart.inside.underwater": "",
+ "block.small_amethyst_bud.break": "",
+ "block.small_amethyst_bud.place": "",
+ "item.spyglass.use": "",
+ "item.spyglass.stop_using": "",
+ "block.tuff.break": "",
+ "block.tuff.step": "",
+ "block.tuff.place": "",
+ "block.tuff.hit": "",
+ "block.tuff.fall": "",
+ "small_flame": ""
+ }
+}
\ No newline at end of file
diff --git a/fabric/pom.xml b/fabric/pom.xml
index 8fc47f41..8ed5e90b 100644
--- a/fabric/pom.xml
+++ b/fabric/pom.xml
@@ -16,7 +16,7 @@
viabackwards-parent
nl.matsv
- 3.2.1-SNAPSHOT
+ 3.3.0-20w45a
viabackwards-fabric
diff --git a/pom.xml b/pom.xml
index 67742c3e..dfee87ce 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,7 @@
nl.matsv
viabackwards-parent
- 3.2.1-SNAPSHOT
+ 3.3.0-20w45a
pom
Allow older clients to join newer server versions.
@@ -65,7 +65,7 @@
us.myles
viaversion
- 3.2.1-SNAPSHOT
+ 3.3.0-20w45a
provided
diff --git a/sponge/pom.xml b/sponge/pom.xml
index 308310c5..a992b2b5 100644
--- a/sponge/pom.xml
+++ b/sponge/pom.xml
@@ -16,7 +16,7 @@
viabackwards-parent
nl.matsv
- 3.2.1-SNAPSHOT
+ 3.3.0-20w45a
viabackwards-sponge
diff --git a/velocity/pom.xml b/velocity/pom.xml
index 82e9fe43..20213bf4 100644
--- a/velocity/pom.xml
+++ b/velocity/pom.xml
@@ -16,7 +16,7 @@
viabackwards-parent
nl.matsv
- 3.2.1-SNAPSHOT
+ 3.3.0-20w45a
viabackwards-velocity