From b1f64fd0819451e32fd4fcb20f39d2db55a30903 Mon Sep 17 00:00:00 2001 From: RK_01 <50594595+RaphiMC@users.noreply.github.com> Date: Wed, 24 Jul 2024 14:32:36 +0200 Subject: [PATCH] Use enhanced switches in more places (#4043) --- .editorconfig | 4 +- .../viaversion/legacy/bossbar/CommonBoss.java | 24 +++--- .../v1_12_2to1_13/Protocol1_12_2To1_13.java | 11 +-- .../StairConnectionHandler.java | 23 ++---- .../rewriter/ItemPacketRewriter1_13.java | 75 ++++++++----------- .../rewriter/ItemPacketRewriter1_14.java | 45 +++-------- .../rewriter/EntityPacketRewriter1_16.java | 17 +++-- .../rewriter/ItemPacketRewriter1_19_3.java | 37 +++------ .../v1_19to1_19_1/Protocol1_19To1_19_1.java | 16 ++-- .../protocols/v1_8to1_9/Protocol1_8To1_9.java | 19 ++--- .../rewriter/EntityPacketRewriter1_9.java | 46 +++++------- .../rewriter/ComponentRewriter.java | 8 +- 12 files changed, 120 insertions(+), 205 deletions(-) diff --git a/.editorconfig b/.editorconfig index ba4484a42..c398ea30d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -2,7 +2,7 @@ charset = utf-8 indent_size = 4 indent_style = space -insert_final_newline = false +insert_final_newline = true tab_width = 4 [*.java] @@ -13,4 +13,4 @@ ij_java_generate_final_locals = true ij_java_generate_final_parameters = true [{*.json,*.yml}] -indent_size = 2 \ No newline at end of file +indent_size = 2 diff --git a/common/src/main/java/com/viaversion/viaversion/legacy/bossbar/CommonBoss.java b/common/src/main/java/com/viaversion/viaversion/legacy/bossbar/CommonBoss.java index 5152d1340..7a1934bf9 100644 --- a/common/src/main/java/com/viaversion/viaversion/legacy/bossbar/CommonBoss.java +++ b/common/src/main/java/com/viaversion/viaversion/legacy/bossbar/CommonBoss.java @@ -246,7 +246,7 @@ public class CommonBoss implements BossBar { wrapper.write(Types.UUID, uuid); wrapper.write(Types.VAR_INT, action.getId()); switch (action) { - case ADD: + case ADD -> { try { wrapper.write(Types.COMPONENT, JsonParser.parseString(this.title)); } catch (Exception e) { @@ -256,26 +256,22 @@ public class CommonBoss implements BossBar { wrapper.write(Types.VAR_INT, color.getId()); wrapper.write(Types.VAR_INT, style.getId()); wrapper.write(Types.BYTE, (byte) flagToBytes()); - break; - case REMOVE: - break; - case UPDATE_HEALTH: - wrapper.write(Types.FLOAT, health); - break; - case UPDATE_TITLE: + } + case REMOVE -> { + } + case UPDATE_HEALTH -> wrapper.write(Types.FLOAT, health); + case UPDATE_TITLE -> { try { wrapper.write(Types.COMPONENT, JsonParser.parseString(this.title)); } catch (Exception e) { wrapper.write(Types.COMPONENT, ComponentUtil.plainToJson(this.title)); } - break; - case UPDATE_STYLE: + } + case UPDATE_STYLE -> { wrapper.write(Types.VAR_INT, color.getId()); wrapper.write(Types.VAR_INT, style.getId()); - break; - case UPDATE_FLAGS: - wrapper.write(Types.BYTE, (byte) flagToBytes()); - break; + } + case UPDATE_FLAGS -> wrapper.write(Types.BYTE, (byte) flagToBytes()); } return wrapper; diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/Protocol1_12_2To1_13.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/Protocol1_12_2To1_13.java index 75fd57acc..822f2b506 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/Protocol1_12_2To1_13.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/Protocol1_12_2To1_13.java @@ -779,7 +779,7 @@ public class Protocol1_12_2To1_13 extends AbstractProtocol { recipesPacket.write(Types.STRING, recipe.group()); recipesPacket.write(Types.VAR_INT, recipe.ingredients().length); for (Item[] ingredient : recipe.ingredients()) { @@ -791,9 +791,8 @@ public class Protocol1_12_2To1_13 extends AbstractProtocol { recipesPacket.write(Types.VAR_INT, recipe.width()); recipesPacket.write(Types.VAR_INT, recipe.height()); recipesPacket.write(Types.STRING, recipe.group()); @@ -806,9 +805,8 @@ public class Protocol1_12_2To1_13 extends AbstractProtocol { recipesPacket.write(Types.STRING, recipe.group()); Item[] ingredient = new Item[recipe.ingredient().length]; for (int i = 0; i < ingredient.length; i++) { @@ -819,7 +817,6 @@ public class Protocol1_12_2To1_13 extends AbstractProtocol shape = 0; + case "inner_left" -> shape = 1; + case "inner_right" -> shape = 2; + case "outer_left" -> shape = 3; + case "outer_right" -> shape = 4; + default -> { return; + } } StairData stairData = new StairData( diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/rewriter/ItemPacketRewriter1_13.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/rewriter/ItemPacketRewriter1_13.java index d27597d51..12cff0a94 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/rewriter/ItemPacketRewriter1_13.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/rewriter/ItemPacketRewriter1_13.java @@ -453,30 +453,22 @@ public class ItemPacketRewriter1_13 extends ItemRewriter "minecraft:trader_list"; + case "MC|Brand" -> "minecraft:brand"; + case "MC|BOpen" -> "minecraft:book_open"; + case "MC|DebugPath" -> "minecraft:debug/paths"; + case "MC|DebugNeighborsUpdate" -> "minecraft:debug/neighbors_update"; + case "REGISTER" -> "minecraft:register"; + case "UNREGISTER" -> "minecraft:unregister"; + case "BungeeCord" -> "bungeecord:main"; + case "bungeecord:main" -> null; + default -> { String mappedChannel = Protocol1_12_2To1_13.MAPPINGS.getChannelMappings().get(old); - if (mappedChannel != null) return mappedChannel; - return MappingData1_13.validateNewChannel(old); - } + if (mappedChannel != null) yield mappedChannel; + yield MappingData1_13.validateNewChannel(old); + } + }; } @Override @@ -687,28 +679,21 @@ public class ItemPacketRewriter1_13 extends ItemRewriter "MC|TrList"; + case "minecraft:book_open" -> "MC|BOpen"; + case "minecraft:debug/paths" -> "MC|DebugPath"; + case "minecraft:debug/neighbors_update" -> "MC|DebugNeighborsUpdate"; + case "minecraft:register" -> "REGISTER"; + case "minecraft:unregister" -> "UNREGISTER"; + case "minecraft:brand" -> "MC|Brand"; + case "bungeecord:main" -> "BungeeCord"; + default -> { String mappedChannel = Protocol1_12_2To1_13.MAPPINGS.getChannelMappings().inverse().get(newId); - if (mappedChannel != null) return mappedChannel; - return newId.length() > 20 ? newId.substring(0, 20) : newId; - } + if (mappedChannel != null) yield mappedChannel; + yield newId.length() > 20 ? newId.substring(0, 20) : newId; + } + }; } public static boolean isDamageable(int id) { @@ -724,4 +709,4 @@ public class ItemPacketRewriter1_13 extends ItemRewriter typeId = 11; + case "minecraft:furnace" -> typeId = 13; + case "minecraft:dropper", "minecraft:dispenser" -> typeId = 6; + case "minecraft:enchanting_table" -> typeId = 12; + case "minecraft:brewing_stand" -> typeId = 10; + case "minecraft:villager" -> typeId = 18; + case "minecraft:beacon" -> typeId = 8; + case "minecraft:anvil" -> typeId = 7; + case "minecraft:hopper" -> typeId = 15; + case "minecraft:shulker_box" -> typeId = 19; + default -> { if (slots > 0 && slots <= 54) { typeId = slots / 9 - 1; } - break; + } } if (typeId == -1) { diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_15_2to1_16/rewriter/EntityPacketRewriter1_16.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_15_2to1_16/rewriter/EntityPacketRewriter1_16.java index 7fc9d6b71..f85c45f8a 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_15_2to1_16/rewriter/EntityPacketRewriter1_16.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_15_2to1_16/rewriter/EntityPacketRewriter1_16.java @@ -51,22 +51,23 @@ public class EntityPacketRewriter1_16 extends EntityRewriter { dimensionName = "minecraft:the_nether"; outputName = map.nether(); - break; - case 0: + } + case 0 -> { dimensionName = "minecraft:overworld"; outputName = map.overworld(); - break; - case 1: + } + case 1 -> { dimensionName = "minecraft:the_end"; outputName = map.end(); - break; - default: + } + default -> { protocol.getLogger().warning("Invalid dimension id: " + dimension); dimensionName = "minecraft:overworld"; outputName = map.overworld(); + } } wrapper.write(Types.STRING, dimensionName); // dimension @@ -231,4 +232,4 @@ public class EntityPacketRewriter1_16 extends EntityRewriter { wrapper.passthrough(Types.STRING); // Group wrapper.write(Types.VAR_INT, MISC_CRAFTING_BOOK_CATEGORY); final int ingredients = wrapper.passthrough(Types.VAR_INT); @@ -77,9 +76,8 @@ public final class ItemPacketRewriter1_19_3 extends ItemRewriter { final int ingredients = wrapper.passthrough(Types.VAR_INT) * wrapper.passthrough(Types.VAR_INT); wrapper.passthrough(Types.STRING); // Group wrapper.write(Types.VAR_INT, MISC_CRAFTING_BOOK_CATEGORY); @@ -90,12 +88,8 @@ public final class ItemPacketRewriter1_19_3 extends ItemRewriter { wrapper.passthrough(Types.STRING); // Group wrapper.write(Types.VAR_INT, MISC_CRAFTING_BOOK_CATEGORY); final Item[] items = wrapper.passthrough(Types.ITEM1_13_2_ARRAY); // Ingredients @@ -105,25 +99,12 @@ public final class ItemPacketRewriter1_19_3 extends ItemRewriter wrapper.write(Types.VAR_INT, MISC_CRAFTING_BOOK_CATEGORY); + default -> recipeRewriter.handleRecipeType(wrapper, type); } } }); diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_19to1_19_1/Protocol1_19To1_19_1.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_19to1_19_1/Protocol1_19To1_19_1.java index 624a8ddc5..f02ed7672 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_19to1_19_1/Protocol1_19To1_19_1.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_19to1_19_1/Protocol1_19To1_19_1.java @@ -399,19 +399,13 @@ public final class Protocol1_19To1_19_1 extends AbstractProtocol argument = senderName; + case "content" -> argument = message; + case "team_name", "target" /*So that this method can also be used in VB*/ -> { Preconditions.checkNotNull(targetName, "Team name is null"); argument = targetName; - break; - default: - LOGGER.warning("Unknown parameter for chat decoration: " + element.getValue()); + } + default -> LOGGER.warning("Unknown parameter for chat decoration: " + element.getValue()); } if (argument != null) { arguments.add(SerializerVersion.V1_18.toComponent(argument)); diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/Protocol1_8To1_9.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/Protocol1_8To1_9.java index dd4eb2a40..a28acd530 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/Protocol1_8To1_9.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/Protocol1_8To1_9.java @@ -67,15 +67,16 @@ public class Protocol1_8To1_9 extends AbstractProtocol true; - default -> false; - }; + switch (id) { + case 267: // Iron sword + case 268: // Wooden sword + case 272: // Stone sword + case 276: // Diamond sword + case 283: // Gold sword + return true; + default: + return false; + } } @Override diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/rewriter/EntityPacketRewriter1_9.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/rewriter/EntityPacketRewriter1_9.java index 9b920a444..754447ef3 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/rewriter/EntityPacketRewriter1_9.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/rewriter/EntityPacketRewriter1_9.java @@ -23,10 +23,10 @@ import com.viaversion.viaversion.api.minecraft.EulerAngle; import com.viaversion.viaversion.api.minecraft.Vector; import com.viaversion.viaversion.api.minecraft.entities.EntityType; import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_9; -import com.viaversion.viaversion.api.minecraft.item.Item; import com.viaversion.viaversion.api.minecraft.entitydata.EntityData; import com.viaversion.viaversion.api.minecraft.entitydata.EntityDataType; import com.viaversion.viaversion.api.minecraft.entitydata.types.EntityDataTypes1_8; +import com.viaversion.viaversion.api.minecraft.item.Item; import com.viaversion.viaversion.api.protocol.packet.PacketWrapper; import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers; import com.viaversion.viaversion.api.protocol.remapper.ValueTransformer; @@ -405,7 +405,7 @@ public class EntityPacketRewriter1_9 extends EntityRewriter { // convert from int, byte if (dataIndex.getOldType() == EntityDataTypes1_8.BYTE) { data.setValue(value); @@ -423,8 +423,8 @@ public class EntityPacketRewriter1_9 extends EntityRewriter { String owner = (String) value; UUID toWrite = null; if (!owner.isEmpty()) { @@ -434,8 +434,8 @@ public class EntityPacketRewriter1_9 extends EntityRewriter { // convert from int, short, byte if (dataIndex.getOldType() == EntityDataTypes1_8.BYTE) { data.setValue(((Byte) value).intValue()); @@ -446,39 +446,33 @@ public class EntityPacketRewriter1_9 extends EntityRewriter data.setValue(value); + case BOOLEAN -> { if (dataIndex == EntityDataIndex1_9.ABSTRACT_AGEABLE_AGE) data.setValue((Byte) value < 0); else data.setValue((Byte) value != 0); - break; - case ITEM: + } + case ITEM -> { data.setValue(value); protocol.getItemRewriter().handleItemToClient(event.user(), (Item) data.getValue()); - break; - case BLOCK_POSITION: + } + case BLOCK_POSITION -> { Vector vector = (Vector) value; data.setValue(vector); - break; - case ROTATIONS: + } + case ROTATIONS -> { EulerAngle angle = (EulerAngle) value; data.setValue(angle); - break; - case COMPONENT: + } + case COMPONENT -> { // Was previously also a component, so just convert it String text = (String) value; data.setValue(ComponentUtil.convertJsonOrEmpty(text, SerializerVersion.V1_8, SerializerVersion.V1_9)); - break; - case OPTIONAL_BLOCK_STATE: - // Convert from int, short, byte - data.setValue(((Number) value).intValue()); - break; - default: - throw new RuntimeException("Unhandled EntityDataType: " + dataIndex.getNewType()); + } + case OPTIONAL_BLOCK_STATE -> data.setValue(((Number) value).intValue()); // Convert from int, short, byte + default -> throw new RuntimeException("Unhandled EntityDataType: " + dataIndex.getNewType()); } } diff --git a/common/src/main/java/com/viaversion/viaversion/rewriter/ComponentRewriter.java b/common/src/main/java/com/viaversion/viaversion/rewriter/ComponentRewriter.java index faec8191c..162c63e2f 100644 --- a/common/src/main/java/com/viaversion/viaversion/rewriter/ComponentRewriter.java +++ b/common/src/main/java/com/viaversion/viaversion/rewriter/ComponentRewriter.java @@ -161,12 +161,8 @@ public class ComponentRewriter implements com.v public void passthroughAndProcess(final PacketWrapper wrapper) { switch (type) { - case JSON: - processText(wrapper.user(), wrapper.passthrough(Types.COMPONENT)); - break; - case NBT: - processTag(wrapper.user(), wrapper.passthrough(Types.TAG)); - break; + case JSON -> processText(wrapper.user(), wrapper.passthrough(Types.COMPONENT)); + case NBT -> processTag(wrapper.user(), wrapper.passthrough(Types.TAG)); } }