From 116706c09fce3905ab21330c64bcfa91fff44ce0 Mon Sep 17 00:00:00 2001 From: KennyTV Date: Tue, 28 Jan 2020 12:36:27 +0100 Subject: [PATCH] Option to (not) remap infested blocks to their normal variants Fixes #1642 --- .../bukkit/platform/BukkitViaConfig.java | 5 +++++ .../bungee/platform/BungeeViaConfig.java | 5 +++++ .../us/myles/ViaVersion/api/ViaVersionConfig.java | 7 +++++++ .../protocol1_13to1_12_2/data/MappingData.java | 14 ++++++++------ .../main/resources/assets/viaversion/config.yml | 2 ++ .../sponge/platform/SpongeViaConfig.java | 5 +++++ .../velocity/platform/VelocityViaConfig.java | 5 +++++ 7 files changed, 37 insertions(+), 6 deletions(-) diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaConfig.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaConfig.java index fa486666b..4ebe06601 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaConfig.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaConfig.java @@ -245,6 +245,11 @@ public class BukkitViaConfig extends Config implements ViaVersionConfig { return getBoolean("fix-low-snow-collision", false); } + @Override + public boolean isInfestedBlocksFix() { + return getBoolean("fix-infested-block-breaking", true); + } + @Override public int get1_13TabCompleteDelay() { return getInt("1_13-tab-complete-delay", 0); diff --git a/bungee/src/main/java/us/myles/ViaVersion/bungee/platform/BungeeViaConfig.java b/bungee/src/main/java/us/myles/ViaVersion/bungee/platform/BungeeViaConfig.java index 99f37deab..3ae2b9049 100644 --- a/bungee/src/main/java/us/myles/ViaVersion/bungee/platform/BungeeViaConfig.java +++ b/bungee/src/main/java/us/myles/ViaVersion/bungee/platform/BungeeViaConfig.java @@ -298,6 +298,11 @@ public class BungeeViaConfig extends Config implements ViaVersionConfig { return getBoolean("fix-low-snow-collision", false); } + @Override + public boolean isInfestedBlocksFix() { + return getBoolean("fix-infested-block-breaking", true); + } + @Override public int get1_13TabCompleteDelay() { return getInt("1_13-tab-complete-delay", 0); diff --git a/common/src/main/java/us/myles/ViaVersion/api/ViaVersionConfig.java b/common/src/main/java/us/myles/ViaVersion/api/ViaVersionConfig.java index 48f0514b7..6e8f449e1 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/ViaVersionConfig.java +++ b/common/src/main/java/us/myles/ViaVersion/api/ViaVersionConfig.java @@ -303,6 +303,13 @@ public interface ViaVersionConfig { */ boolean isSnowCollisionFix(); + /** + * When activated, infested blocks will be mapped to their normal stone variants for 1.13+ clients. + * + * @return True if enabled + */ + boolean isInfestedBlocksFix(); + /** * When greater than 0, enables tab complete request delaying by x ticks * diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/data/MappingData.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/data/MappingData.java index a9d3636bf..ac1199f2e 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/data/MappingData.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/data/MappingData.java @@ -202,12 +202,14 @@ public class MappingData { } // Remap infested blocks, as they are instantly breakabale in 1.13+ and can't be broken by those clients on older servers - oldToNew[1552] = 1; // stone - oldToNew[1553] = 14; // cobblestone - oldToNew[1554] = 3983; // stone bricks - oldToNew[1555] = 3984; // mossy stone bricks - oldToNew[1556] = 3985; // cracked stone bricks - oldToNew[1557] = 3986; // chiseled stone bricks + if (Via.getConfig().isInfestedBlocksFix()) { + oldToNew[1552] = 1; // stone + oldToNew[1553] = 14; // cobblestone + oldToNew[1554] = 3983; // stone bricks + oldToNew[1555] = 3984; // mossy stone bricks + oldToNew[1556] = 3985; // cracked stone bricks + oldToNew[1557] = 3986; // chiseled stone bricks + } } @Override diff --git a/common/src/main/resources/assets/viaversion/config.yml b/common/src/main/resources/assets/viaversion/config.yml index 5394a40f7..660c9c57d 100644 --- a/common/src/main/resources/assets/viaversion/config.yml +++ b/common/src/main/resources/assets/viaversion/config.yml @@ -118,6 +118,8 @@ disable-1_13-auto-complete: false 1_13-tab-complete-delay: 0 # For 1.13 clients the smallest (1 layer) snow doesn't have collision, this will send these as 2 snowlayers for 1.13+ clients to prevent them bugging through them fix-low-snow-collision: false +# Infested blocks are instantly breakable for 1.13+ clients, resulting in them being unable to break them on sub 1.13 servers. This remaps them to their normal stone variants +fix-infested-block-breaking: true # In 1.14 the client page limit has been upped to 100 (from 50). Some anti-exploit plugins ban when clients go higher than 50. This option cuts edited books to 50 pages. truncate-1_14-books: false # This prevents clients using 1.9-1.13 on 1.8 servers from receiving no knockback/having velocity bugs whilst sneaking under a block. diff --git a/sponge/src/main/java/us/myles/ViaVersion/sponge/platform/SpongeViaConfig.java b/sponge/src/main/java/us/myles/ViaVersion/sponge/platform/SpongeViaConfig.java index c6b2be549..287322974 100644 --- a/sponge/src/main/java/us/myles/ViaVersion/sponge/platform/SpongeViaConfig.java +++ b/sponge/src/main/java/us/myles/ViaVersion/sponge/platform/SpongeViaConfig.java @@ -251,6 +251,11 @@ public class SpongeViaConfig extends Config implements ViaVersionConfig { return getBoolean("fix-low-snow-collision", false); } + @Override + public boolean isInfestedBlocksFix() { + return getBoolean("fix-infested-block-breaking", true); + } + @Override public int get1_13TabCompleteDelay() { return getInt("1_13-tab-complete-delay", 0); diff --git a/velocity/src/main/java/us/myles/ViaVersion/velocity/platform/VelocityViaConfig.java b/velocity/src/main/java/us/myles/ViaVersion/velocity/platform/VelocityViaConfig.java index ccffda7cb..4930f8e77 100644 --- a/velocity/src/main/java/us/myles/ViaVersion/velocity/platform/VelocityViaConfig.java +++ b/velocity/src/main/java/us/myles/ViaVersion/velocity/platform/VelocityViaConfig.java @@ -303,6 +303,11 @@ public class VelocityViaConfig extends Config implements ViaVersionConfig { return getBoolean("fix-low-snow-collision", false); } + @Override + public boolean isInfestedBlocksFix() { + return getBoolean("fix-infested-block-breaking", true); + } + @Override public int get1_13TabCompleteDelay() { return getInt("1_13-tab-complete-delay", 0);