diff --git a/common/src/main/java/com/viaversion/viabackwards/api/ViaBackwardsPlatform.java b/common/src/main/java/com/viaversion/viabackwards/api/ViaBackwardsPlatform.java index 456a386b..5105fe69 100644 --- a/common/src/main/java/com/viaversion/viabackwards/api/ViaBackwardsPlatform.java +++ b/common/src/main/java/com/viaversion/viabackwards/api/ViaBackwardsPlatform.java @@ -58,7 +58,7 @@ import java.util.logging.Logger; public interface ViaBackwardsPlatform { - String MINIMUM_VV_VERSION = "4.2.0"; + String MINIMUM_VV_VERSION = "4.3.0"; String IMPL_VERSION = "$IMPL_VERSION"; /** @@ -111,9 +111,9 @@ public interface ViaBackwardsPlatform { protocolManager.registerProtocol(new Protocol1_17To1_17_1(), ProtocolVersion.v1_17, ProtocolVersion.v1_17_1); protocolManager.registerProtocol(new Protocol1_17_1To1_18(), ProtocolVersion.v1_17_1, ProtocolVersion.v1_18); - //protocolManager.registerProtocol(new Protocol1_18To1_18_2(), ProtocolVersion.v1_18, ProtocolVersion.v1_18_2); //TODO + protocolManager.registerProtocol(new Protocol1_18To1_18_2(), ProtocolVersion.v1_18, ProtocolVersion.v1_18_2); - protocolManager.registerProtocol(new Protocol1_18_2To1_19(), ProtocolVersion.v1_18, ProtocolVersion.v1_19); + protocolManager.registerProtocol(new Protocol1_18_2To1_19(), ProtocolVersion.v1_18_2, ProtocolVersion.v1_19); } /** diff --git a/common/src/main/java/com/viaversion/viabackwards/api/data/BackwardsMappings.java b/common/src/main/java/com/viaversion/viabackwards/api/data/BackwardsMappings.java index e51a9780..63732bbe 100644 --- a/common/src/main/java/com/viaversion/viabackwards/api/data/BackwardsMappings.java +++ b/common/src/main/java/com/viaversion/viabackwards/api/data/BackwardsMappings.java @@ -154,6 +154,11 @@ public class BackwardsMappings extends MappingDataBase { } public @Nullable String mappedEntityName(String entityName) { + if (entityNames == null) { + ViaBackwards.getPlatform().getLogger().severe("No entity mappings found when requesting them for " + entityName); + new Exception().printStackTrace(); + return null; + } return entityNames.get(entityName); } diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/Protocol1_18_2To1_19.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/Protocol1_18_2To1_19.java index 9185874b..45941c11 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/Protocol1_18_2To1_19.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/Protocol1_18_2To1_19.java @@ -17,27 +17,32 @@ */ package com.viaversion.viabackwards.protocol.protocol1_18_2to1_19; +import com.viaversion.viabackwards.ViaBackwards; import com.viaversion.viabackwards.api.BackwardsProtocol; -import com.viaversion.viabackwards.api.data.BackwardsMappings; import com.viaversion.viabackwards.api.rewriters.SoundRewriter; import com.viaversion.viabackwards.api.rewriters.TranslatableRewriter; +import com.viaversion.viabackwards.protocol.protocol1_18_2to1_19.data.BackwardsMappings; import com.viaversion.viabackwards.protocol.protocol1_18_2to1_19.packets.BlockItemPackets1_19; import com.viaversion.viabackwards.protocol.protocol1_18_2to1_19.packets.EntityPackets1_19; +import com.viaversion.viabackwards.protocol.protocol1_18_2to1_19.storage.BlockAckStorage; import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.minecraft.entities.Entity1_19Types; +import com.viaversion.viaversion.api.protocol.remapper.PacketRemapper; import com.viaversion.viaversion.api.rewriter.EntityRewriter; import com.viaversion.viaversion.api.rewriter.ItemRewriter; +import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.data.entity.EntityTrackerBase; import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.ServerboundPackets1_17; import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.ClientboundPackets1_18; import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.ClientboundPackets1_19; import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.Protocol1_19To1_18_2; +import com.viaversion.viaversion.rewriter.CommandRewriter; import com.viaversion.viaversion.rewriter.StatisticsRewriter; import com.viaversion.viaversion.rewriter.TagRewriter; public final class Protocol1_18_2To1_19 extends BackwardsProtocol { - public static final BackwardsMappings MAPPINGS = new BackwardsMappings("1.19", "1.18", Protocol1_19To1_18_2.class, true); + public static final BackwardsMappings MAPPINGS = new BackwardsMappings(); private final EntityPackets1_19 entityRewriter = new EntityPackets1_19(this); private final BlockItemPackets1_19 blockItemPackets = new BlockItemPackets1_19(this); private final TranslatableRewriter translatableRewriter = new TranslatableRewriter(this); @@ -51,6 +56,7 @@ public final class Protocol1_18_2To1_19 extends BackwardsProtocol { + final int size = wrapper.passthrough(Type.VAR_INT); + for (int i = 0; i < size; i++) { + final byte flags = wrapper.passthrough(Type.BYTE); + wrapper.passthrough(Type.VAR_INT_ARRAY_PRIMITIVE); // Children indices + if ((flags & 0x08) != 0) { + wrapper.passthrough(Type.VAR_INT); // Redirect node index + } + + final int nodeType = flags & 0x03; + if (nodeType == 1 || nodeType == 2) { // Literal/argument node + wrapper.passthrough(Type.STRING); // Name + } + + if (nodeType == 2) { // Argument node + final int argumentTypeId = wrapper.read(Type.VAR_INT); + String argumentType = MAPPINGS.argumentType(argumentTypeId); + if (argumentType == null) { + ViaBackwards.getPlatform().getLogger().warning("Unknown command argument type id: " + argumentTypeId); + argumentType = "minecraft:no"; + } + + wrapper.write(Type.STRING, argumentType); + commandRewriter.handleArgument(wrapper, argumentType); + + if ((flags & 0x10) != 0) { + wrapper.passthrough(Type.STRING); // Suggestion type + } + } + } + + wrapper.passthrough(Type.VAR_INT); // Root node index + }); + } + }); } @Override public void init(final UserConnection user) { + user.put(new BlockAckStorage()); addEntityTracker(user, new EntityTrackerBase(user, Entity1_19Types.PLAYER)); } diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/data/BackwardsMappings.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/data/BackwardsMappings.java new file mode 100644 index 00000000..7f985265 --- /dev/null +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/data/BackwardsMappings.java @@ -0,0 +1,49 @@ +/* + * This file is part of ViaBackwards - https://github.com/ViaVersion/ViaBackwards + * Copyright (C) 2016-2022 ViaVersion and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.viaversion.viabackwards.protocol.protocol1_18_2to1_19.data; + +import com.viaversion.viaversion.libs.gson.JsonArray; +import com.viaversion.viaversion.libs.gson.JsonElement; +import com.viaversion.viaversion.libs.gson.JsonObject; +import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.Protocol1_19To1_18_2; +import org.checkerframework.checker.nullness.qual.Nullable; + +public final class BackwardsMappings extends com.viaversion.viabackwards.api.data.BackwardsMappings { + + private String[] argumentTypes; + + public BackwardsMappings() { + super("1.19", "1.18", Protocol1_19To1_18_2.class, true); + } + + @Override + protected void loadExtras(final JsonObject oldMappings, final JsonObject newMappings, @Nullable final JsonObject diffMappings) { + super.loadExtras(oldMappings, newMappings, diffMappings); + int i = 0; + final JsonArray types = oldMappings.getAsJsonArray("argumenttypes"); + this.argumentTypes = new String[types.size()]; + for (final JsonElement element : types) { + final String id = element.getAsString(); + this.argumentTypes[i++] = id; + } + } + + public @Nullable String argumentType(final int argumentTypeId) { + return argumentTypeId >= 0 && argumentTypeId < argumentTypes.length ? argumentTypes[argumentTypeId] : null; + } +} \ No newline at end of file diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/packets/BlockItemPackets1_19.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/packets/BlockItemPackets1_19.java index 20e75693..e229126a 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/packets/BlockItemPackets1_19.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/packets/BlockItemPackets1_19.java @@ -19,16 +19,19 @@ package com.viaversion.viabackwards.protocol.protocol1_18_2to1_19.packets; import com.viaversion.viabackwards.api.rewriters.ItemRewriter; import com.viaversion.viabackwards.protocol.protocol1_18_2to1_19.Protocol1_18_2To1_19; +import com.viaversion.viabackwards.protocol.protocol1_18_2to1_19.storage.BlockAckStorage; import com.viaversion.viaversion.api.data.ParticleMappings; import com.viaversion.viaversion.api.data.entity.EntityTracker; import com.viaversion.viaversion.api.minecraft.chunks.Chunk; import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection; import com.viaversion.viaversion.api.minecraft.chunks.DataPalette; import com.viaversion.viaversion.api.minecraft.chunks.PaletteType; +import com.viaversion.viaversion.api.protocol.packet.PacketWrapper; import com.viaversion.viaversion.api.protocol.remapper.PacketRemapper; import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.data.RecipeRewriter1_16; import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.ServerboundPackets1_17; +import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.ClientboundPackets1_18; import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.types.Chunk1_18Type; import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.ClientboundPackets1_19; import com.viaversion.viaversion.rewriter.BlockRewriter; @@ -54,7 +57,6 @@ public final class BlockItemPackets1_19 extends ItemRewriter { + wrapper.read(Type.VAR_INT); // Sequence + + // The server only sends one a tick + /*final BlockAckStorage storage = wrapper.user().get(BlockAckStorage.class); + BlockAckStorage.BlockAction action; + while ((action = storage.poll()) != null) { + final PacketWrapper ackPacket = wrapper.create(ClientboundPackets1_18.ACKNOWLEDGE_PLAYER_DIGGING); + ackPacket.write(Type.POSITION1_14, blockPosition); + ackPacket.write(Type.VAR_INT, action.action()); + ackPacket.write(Type.VAR_INT, (int) action.action()); + ackPacket.write(Type.BOOLEAN, true); // Approved + ackPacket.send(Protocol1_18_2To1_19.class); + }*/ + + wrapper.cancel(); + }); + } + }); + protocol.registerClientbound(ClientboundPackets1_19.SPAWN_PARTICLE, new PacketRemapper() { @Override public void registerMap() { - map(Type.INT); // Particle id + map(Type.VAR_INT, Type.INT); // Particle id map(Type.BOOLEAN); // Override limiter map(Type.DOUBLE); // X map(Type.DOUBLE); // Y @@ -142,5 +167,43 @@ public final class BlockItemPackets1_19 extends ItemRewriter { + final int action = wrapper.get(Type.VAR_INT, 0); + if (action < 3) { + final BlockAckStorage storage = wrapper.user().get(BlockAckStorage.class); + storage.add(wrapper.get(Type.POSITION1_14, 0), action, wrapper.get(Type.UNSIGNED_BYTE, 0)); + } + }); + } + }); + protocol.registerServerbound(ServerboundPackets1_17.PLAYER_BLOCK_PLACEMENT, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.VAR_INT); // Hand + map(Type.POSITION1_14); // Block position + map(Type.VAR_INT); // Direction + map(Type.FLOAT); // X + map(Type.FLOAT); // Y + map(Type.FLOAT); // Z + map(Type.BOOLEAN); // Inside + create(Type.VAR_INT, 0); // Sequence + } + }); + protocol.registerServerbound(ServerboundPackets1_17.USE_ITEM, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.VAR_INT); // Hand + create(Type.VAR_INT, 0); // Sequence + } + }); } } diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/packets/EntityPackets1_19.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/packets/EntityPackets1_19.java index fd6a9e51..61677354 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/packets/EntityPackets1_19.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/packets/EntityPackets1_19.java @@ -24,11 +24,17 @@ import com.viaversion.viaversion.api.minecraft.entities.Entity1_17Types; import com.viaversion.viaversion.api.minecraft.entities.Entity1_19Types; import com.viaversion.viaversion.api.minecraft.entities.EntityType; import com.viaversion.viaversion.api.minecraft.metadata.MetaType; +import com.viaversion.viaversion.api.minecraft.metadata.Metadata; import com.viaversion.viaversion.api.protocol.remapper.PacketRemapper; import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.api.type.types.Particle; +import com.viaversion.viaversion.api.type.types.version.Types1_14; import com.viaversion.viaversion.api.type.types.version.Types1_18; import com.viaversion.viaversion.api.type.types.version.Types1_19; +import com.viaversion.viaversion.libs.opennbt.tag.builtin.CompoundTag; +import com.viaversion.viaversion.libs.opennbt.tag.builtin.ListTag; +import com.viaversion.viaversion.libs.opennbt.tag.builtin.StringTag; +import com.viaversion.viaversion.libs.opennbt.tag.builtin.Tag; import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.ClientboundPackets1_19; public final class EntityPackets1_19 extends EntityRewriter { @@ -80,6 +86,18 @@ public final class EntityPackets1_19 extends EntityRewriter { + final CompoundTag registry = wrapper.get(Type.NBT, 0); + final CompoundTag biomeRegistry = registry.get("minecraft:worldgen/biome"); + final ListTag biomes = biomeRegistry.get("value"); + for (final Tag biome : biomes.getValue()) { + final CompoundTag biomeCompound = ((CompoundTag) biome).get("element"); + biomeCompound.put("category", new StringTag("none")); + } + + // Track amount of biomes sent + tracker(wrapper.user()).setBiomesSent(biomes.size()); + }); } }); @@ -120,7 +138,7 @@ public final class EntityPackets1_19 extends EntityRewriter= 8) { - // Roaring, sniffing, emerging, digging -> standing + // Croaking, using_tongue, roaring, sniffing, emerging, digging -> standing -> standing meta.setValue(0); } } @@ -129,9 +147,23 @@ public final class EntityPackets1_19 extends EntityRewriter { + final int data = (int) meta.getValue(); + meta.setValue(protocol.getMappingData().getNewBlockStateId(data)); + }); + + filter().type(Entity1_19Types.FROG).cancel(16); // Age + filter().type(Entity1_19Types.FROG).cancel(17); // Anger + mapEntityTypeWithData(Entity1_19Types.FROG, Entity1_19Types.PUFFERFISH).jsonName().spawnMetadata(storage -> { + storage.add(new Metadata(17, Types1_14.META_TYPES.varIntType, 2)); // Puff state + }).jsonName(); + + mapEntityTypeWithData(Entity1_19Types.TADPOLE, Entity1_19Types.PUFFERFISH).jsonName(); + + //TODO experimental snapshot + /*filter().type(Entity1_19Types.WARDEN).cancel(16); // Anger + mapEntityTypeWithData(Entity1_19Types.WARDEN, Entity1_19Types.IRON_GOLEM).jsonName();*/ } @Override diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/storage/BlockAckStorage.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/storage/BlockAckStorage.java new file mode 100644 index 00000000..ffa5a95d --- /dev/null +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/storage/BlockAckStorage.java @@ -0,0 +1,67 @@ +/* + * This file is part of ViaBackwards - https://github.com/ViaVersion/ViaBackwards + * Copyright (C) 2016-2022 ViaVersion and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.viaversion.viabackwards.protocol.protocol1_18_2to1_19.storage; + +import com.viaversion.viaversion.api.connection.StorableObject; +import com.viaversion.viaversion.api.minecraft.Position; +import org.checkerframework.checker.nullness.qual.Nullable; + +import java.util.LinkedList; +import java.util.Queue; + +public final class BlockAckStorage implements StorableObject { + + private final Queue actions = new LinkedList<>(); + + public void add(final Position position, final int action, final short direction) { + actions.add(new BlockAction(position, (byte) action, direction)); + + // Some actions may be left unacknowledged by modded servers + if (actions.size() > 100) { + actions.poll(); + } + } + + public @Nullable BlockAction poll() { + return actions.poll(); + } + + public static final class BlockAction { + private final Position position; + private final byte action; + private final short direction; + + public BlockAction(final Position position, final byte action, final short direction) { + this.position = position; + this.action = action; + this.direction = direction; + } + + public Position position() { + return position; + } + + public byte action() { + return action; + } + + public short direction() { + return direction; + } + } +} diff --git a/common/src/main/resources/assets/viabackwards/data/mapping-1.18to1.19.json b/common/src/main/resources/assets/viabackwards/data/mapping-1.18to1.19.json index 23090f79..c285c881 100644 --- a/common/src/main/resources/assets/viabackwards/data/mapping-1.18to1.19.json +++ b/common/src/main/resources/assets/viabackwards/data/mapping-1.18to1.19.json @@ -2,11 +2,42 @@ "blockstates": { "minecraft:sculk": "minecraft:black_concrete_powder", "minecraft:sculk_vein": "minecraft:glow_lichen[", - "minecraft:sculk_catalyst[bloom=true]": "minecraft:end_stone", - "minecraft:sculk_catalyst[bloom=false]": "minecraft:end_stone", - "minecraft:sculk_shrieker[shrieking=true]": "minecraft:end_portal_frame[eye=true,facing=north]", - "minecraft:sculk_shrieker[shrieking=false]": "minecraft:end_portal_frame[eye=false,facing=north]", - "minecraft:reinforced_deepslate": "minecraft:obsidian" + "minecraft:sculk_catalyst": "minecraft:end_stone", + "minecraft:sculk_shrieker[shrieking=true,waterlogged=true]": "minecraft:end_portal_frame[eye=true,facing=north]", + "minecraft:sculk_shrieker[shrieking=true,waterlogged=false]": "minecraft:end_portal_frame[eye=true,facing=north]", + "minecraft:sculk_shrieker[shrieking=false,waterlogged=true]": "minecraft:end_portal_frame[eye=false,facing=north]", + "minecraft:sculk_shrieker[shrieking=false,waterlogged=false]": "minecraft:end_portal_frame[eye=false,facing=north]", + "minecraft:reinforced_deepslate": "minecraft:obsidian", + "minecraft:mangrove_planks": "minecraft:acacia_planks", + "minecraft:stripped_mangrove_log": "minecraft:stripped_acacia_log[", + "minecraft:stripped_mangrove_wood": "minecraft:stripped_acacia_wood[", + "minecraft:mangrove_wood": "minecraft:acacia_wood[", + "minecraft:mangrove_log": "minecraft:acacia_log[", + "minecraft:mangrove_leaves": "minecraft:acacia_leaves[", + "minecraft:mangrove_sign": "minecraft:acacia_sign[", + "minecraft:mangrove_wall_sign": "minecraft:acacia_wall_sign[", + "minecraft:mangrove_pressure_plate": "minecraft:acacia_pressure_plate[", + "minecraft:mangrove_trapdoor": "minecraft:acacia_trapdoor[", + "minecraft:mangrove_button": "minecraft:acacia_button[", + "minecraft:mangrove_stairs": "minecraft:acacia_stairs[", + "minecraft:mangrove_slab": "minecraft:acacia_slab[", + "minecraft:mangrove_fence_gate": "minecraft:acacia_fence_gate[", + "minecraft:mangrove_fence": "minecraft:acacia_fence[", + "minecraft:mangrove_door": "minecraft:acacia_door[", + "minecraft:mud_bricks": "minecraft:bricks", + "minecraft:packed_mud": "minecraft:bricks", + "minecraft:mud_brick_stairs": "minecraft:brick_stairs[", + "minecraft:mud_brick_slab": "minecraft:brick_slab[", + "minecraft:mud_brick_wall": "minecraft:brick_wall[", + "minecraft:muddy_mangrove_roots": "minecraft:coarse_dirt", + "minecraft:mud": "minecraft:coarse_dirt", + "minecraft:mangrove_propagule": "minecraft:fern", + "minecraft:mangrove_roots": "minecraft:oak_wood[axis=y]", + "minecraft:ochre_froglight": "minecraft:sea_lantern", + "minecraft:verdant_froglight": "minecraft:sea_lantern", + "minecraft:pearlescent_froglight": "minecraft:sea_lantern", + "minecraft:potted_mangrove_propagule": "minecraft:potted_acacia_sapling", + "minecraft:frogspawn": "minecraft:air" }, "sounds": { "music.overworld.deep_dark": "", @@ -52,7 +83,59 @@ "entity.warden.dig": "", "entity.warden.nearby_closest": "", "entity.warden.nearby_closer": "", - "entity.warden.nearby_close": "" + "entity.warden.nearby_close": "", + "item.bucket.empty_tadpole": "", + "item.bucket.fill_tadpole": "", + "block.froglight.break": "", + "block.froglight.fall": "", + "block.froglight.hit": "", + "block.froglight.place": "", + "block.froglight.step": "", + "block.frogspawn.step": "", + "block.frogspawn.break": "", + "block.frogspawn.fall": "", + "block.frogspawn.hatch": "", + "block.frogspawn.hit": "", + "block.frogspawn.place": "", + "entity.frog.ambient": "", + "entity.frog.death": "", + "entity.frog.eat": "", + "entity.frog.hurt": "", + "entity.frog.lay_spawn": "", + "entity.frog.long_jump": "", + "entity.frog.step": "", + "entity.frog.tounge": "", + "block.mangrove_roots.break": "", + "block.mangrove_roots.fall": "", + "block.mangrove_roots.hit": "", + "block.mangrove_roots.place": "", + "block.mangrove_roots.step": "", + "block.mud.break": "", + "block.mud.fall": "", + "block.mud.hit": "", + "block.mud.place": "", + "block.mud.step": "", + "block.mud_bricks.break": "", + "block.mud_bricks.fall": "", + "block.mud_bricks.hit": "", + "block.mud_bricks.place": "", + "block.mud_bricks.step": "", + "block.muddy_mangrove_roots.break": "", + "block.muddy_mangrove_roots.fall": "", + "block.muddy_mangrove_roots.hit": "", + "block.muddy_mangrove_roots.place": "", + "block.muddy_mangrove_roots.step": "", + "block.packed_mud.break": "", + "block.packed_mud.fall": "", + "block.packed_mud.hit": "", + "block.packed_mud.place": "", + "block.packed_mud.step": "", + "entity.tadpole.death": "", + "entity.tadpole.eat": "", + "entity.tadpole.flop": "", + "entity.tadpole.grow_up": "", + "entity.tadpole.hurt": "", + "entity.tadpole.step": "" }, "items": { "minecraft:warden_spawn_egg": { @@ -86,7 +169,13 @@ "sculk_charge_pop": "bubble_pop", "shriek": "" }, + "blockentities": { + "sculk_catalyst": "", + "sculk_shrieker": "" + }, "entitynames": { - "warden": "Warden" + "warden": "Warden", + "frog": "Frog", + "tadpole": "Tadpole" } } \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 6e8b8f5b..3efa520c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -4,7 +4,6 @@ rootProject.name = "viabackwards-parent" dependencyResolutionManagement { repositories { - mavenLocal() maven("https://repo.viaversion.com") maven("https://papermc.io/repo/repository/maven-public/") maven("https://oss.sonatype.org/content/repositories/snapshots/")