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);