From b4e9d86d1dcf5b1101b20807124c816d2cdd6fbf Mon Sep 17 00:00:00 2001 From: Electroblob77 <35599699+Electroblob77@users.noreply.github.com> Date: Thu, 24 Sep 2020 18:46:43 +0100 Subject: [PATCH] Make replaceVanillaFallDamae a synchronised setting, should fix the problems people were having on servers where turning the option off seemed to do nothing --- src/main/java/electroblob/wizardry/Settings.java | 11 ++++++----- .../wizardry/packet/PacketSyncSettings.java | 3 +++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/electroblob/wizardry/Settings.java b/src/main/java/electroblob/wizardry/Settings.java index 40ac4109..37bacf1c 100644 --- a/src/main/java/electroblob/wizardry/Settings.java +++ b/src/main/java/electroblob/wizardry/Settings.java @@ -192,11 +192,6 @@ public final class Settings { public boolean dispenserBlockDamage = true; /** [Server-only] Whether to revert to the old wand upgrade system, which only requires tomes of arcana. */ public boolean legacyWandLevelling = false; - /** - * [Server-only] Whether to replace Minecraft's distance-based fall damage calculation with an equivalent, - * velocity-based one. - */ - public boolean replaceVanillaFallDamage = true; // TODO: This should be synced /** [Server-only] Whether to tweak the blindness effect to reduce follow distance when used on non-players. */ public boolean blindnessTweak = true; /** [Server-only] Whether using bonemeal on grass blocks has a chance to grow crystal flowers. */ @@ -308,6 +303,11 @@ public final class Settings { public boolean passiveMobsAreAllies = false; /** [Synchronised] Whether to replace Minecraft's own fireballs with wizardry fireballs. */ public boolean replaceVanillaFireballs = true; + /** + * [Synchronised] Whether to replace Minecraft's distance-based fall damage calculation with an equivalent, + * velocity-based one. + */ + public boolean replaceVanillaFallDamage = true; /** [Synchronised] Chance of 'misreading' an undiscovered spell and triggering a forfeit instead. */ public double forfeitChance = 0.2; /** @@ -745,6 +745,7 @@ public final class Settings { "Whether to replace Minecraft's distance-based fall damage calculation with an equivalent, velocity-based one. This is done such that mobs in freefall will take exactly the same damage as normal, so it will not break falling-based mob farms. Disable this if you experience falling-related weirdness! If this is disabled, some spells will use a more simplistic method of resetting the player's fall damage in certain cases."); property.setLanguageKey("config." + Wizardry.MODID + ".replace_vanilla_fall_damage"); Wizardry.proxy.setToNamedBooleanEntry(property); + property.setRequiresWorldRestart(true); replaceVanillaFallDamage = property.getBoolean(); propOrder.add(property.getName()); diff --git a/src/main/java/electroblob/wizardry/packet/PacketSyncSettings.java b/src/main/java/electroblob/wizardry/packet/PacketSyncSettings.java index 92743f7c..16659524 100644 --- a/src/main/java/electroblob/wizardry/packet/PacketSyncSettings.java +++ b/src/main/java/electroblob/wizardry/packet/PacketSyncSettings.java @@ -38,6 +38,7 @@ public class PacketSyncSettings implements IMessageHandler { Wizardry.settings.creativeBypassesArcaneLock = message.settings.creativeBypassesArcaneLock; Wizardry.settings.slowTimeAffectsPlayers = message.settings.slowTimeAffectsPlayers; Wizardry.settings.replaceVanillaFireballs = message.settings.replaceVanillaFireballs; + Wizardry.settings.replaceVanillaFallDamage = message.settings.replaceVanillaFallDamage; Wizardry.settings.forfeitChance = message.settings.forfeitChance; Wizardry.settings.bookshelfSearchRadius = message.settings.bookshelfSearchRadius; Wizardry.settings.bookshelfBlocks = message.settings.bookshelfBlocks; @@ -68,6 +69,7 @@ public class PacketSyncSettings implements IMessageHandler { settings.creativeBypassesArcaneLock = buf.readBoolean(); settings.slowTimeAffectsPlayers = buf.readBoolean(); settings.replaceVanillaFireballs = buf.readBoolean(); + settings.replaceVanillaFallDamage = buf.readBoolean(); settings.forfeitChance = buf.readFloat(); settings.bookshelfSearchRadius = buf.readInt(); settings.bookshelfBlocks = readMetaItems(buf); @@ -81,6 +83,7 @@ public class PacketSyncSettings implements IMessageHandler { buf.writeBoolean(settings.creativeBypassesArcaneLock); buf.writeBoolean(settings.slowTimeAffectsPlayers); buf.writeBoolean(settings.replaceVanillaFireballs); + buf.writeBoolean(settings.replaceVanillaFallDamage); buf.writeFloat((float)settings.forfeitChance); // Configs don't have floats but this can only be 0-1 anyway buf.writeInt(settings.bookshelfSearchRadius); writeMetaItems(buf, settings.bookshelfBlocks);