mirror of
https://github.com/BX-Team/DivineMC.git
synced 2025-12-19 14:59:25 +00:00
332 lines
16 KiB
Diff
332 lines
16 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
|
Date: Sat, 10 Jun 2023 14:06:58 +0300
|
|
Subject: [PATCH] Add missing purpur config options
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
|
|
index 379d168eb4ba958622398efa79fa43d5340ca0f2..05b2470b22cc4fab4f331890c53ed3dd6b871241 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
|
|
@@ -153,6 +153,23 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS
|
|
}
|
|
// Purpur end
|
|
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return level().purpurConfig.allayTakeDamageFromWater;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isAlwaysExperienceDropper() {
|
|
+ return level().purpurConfig.allayAlwaysDropExp;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(level().purpurConfig.allayMaxHealth);
|
|
+ }
|
|
+ // DivineMC end
|
|
+
|
|
@Override
|
|
protected Brain.Provider<Allay> brainProvider() {
|
|
return Brain.provider(Allay.MEMORY_TYPES, Allay.SENSOR_TYPES);
|
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
|
index 42c571c154ebdd24fabc5354618e6be064d17f05..f17691a3d697b4979c00d17bbc75f93f3584b906 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
|
@@ -91,6 +91,23 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
|
|
}
|
|
// Purpur end
|
|
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ @Override
|
|
+ public boolean dismountsUnderwater() {
|
|
+ return level().purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level().purpurConfig.camelRidableInWater;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return level().purpurConfig.camelTakeDamageFromWater;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isAlwaysExperienceDropper() {
|
|
+ return level().purpurConfig.camelAlwaysDropExp;
|
|
+ }
|
|
+ // DivineMC end
|
|
+
|
|
@Override
|
|
public void addAdditionalSaveData(CompoundTag nbt) {
|
|
super.addAdditionalSaveData(nbt);
|
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
|
index 21f0554ae9281ddd088cf36c79bb005e18473a7f..0f3a62eb63ef647eeccf5377d7478a50f09deaca 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
|
@@ -140,6 +140,23 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
|
|
return this.level().purpurConfig.frogBreedingTicks;
|
|
}
|
|
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return level().purpurConfig.frogTakeDamageFromWater;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isAlwaysExperienceDropper() {
|
|
+ return level().purpurConfig.frogAlwaysDropExp;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(level().purpurConfig.frogMaxHealth);
|
|
+ }
|
|
+ // DivineMC end
|
|
+
|
|
@Override
|
|
protected Brain.Provider<Frog> brainProvider() {
|
|
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
|
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
|
|
index 9db4817cf503c361a6bcb9a4174d8c4319c664b2..dc4b4614bb10fb5020273ee3ea79dd31a075db19 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
|
|
@@ -89,6 +89,23 @@ public class Tadpole extends AbstractFish {
|
|
}
|
|
// Purpur end
|
|
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return level().purpurConfig.tadpoleTakeDamageFromWater;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isAlwaysExperienceDropper() {
|
|
+ return level().purpurConfig.tadpoleAlwaysDropExp;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(level().purpurConfig.tadpoleMaxHealth);
|
|
+ }
|
|
+ // DivineMC end
|
|
+
|
|
@Override
|
|
protected PathNavigation createNavigation(Level world) {
|
|
return new WaterBoundPathNavigation(this, world);
|
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
|
index 14df8a4e0c1a1dcfbbd2f4fdfd865bd77bb02325..2b565804c447a49e37544afb7ed297da927cdad6 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
|
@@ -117,6 +117,18 @@ public class Sniffer extends Animal {
|
|
return this.level().purpurConfig.snifferBreedingTicks;
|
|
}
|
|
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return level().purpurConfig.snifferTakeDamageFromWater;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isAlwaysExperienceDropper() {
|
|
+ return level().purpurConfig.snifferAlwaysDropExp;
|
|
+ }
|
|
+ // DivineMC end
|
|
+
|
|
// CraftBukkit start - SPIGOT-7295: moved from constructor to appropriate location
|
|
@Override
|
|
protected void defineSynchedData() {
|
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
|
index 22553da189370405f6f97ceff5e66596e1e12f5f..5734c201d73bec9e500edf3e1b60428c68602335 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
|
@@ -147,6 +147,23 @@ public class Warden extends Monster implements VibrationSystem {
|
|
}
|
|
// Purpur end
|
|
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return level().purpurConfig.wardenTakeDamageFromWater;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isAlwaysExperienceDropper() {
|
|
+ return level().purpurConfig.wardenAlwaysDropExp;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void initAttributes() {
|
|
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(level().purpurConfig.wardenMaxHealth);
|
|
+ }
|
|
+ // DivineMC end
|
|
+
|
|
@Override
|
|
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
|
return new ClientboundAddEntityPacket(this, this.hasPose(Pose.EMERGING) ? 1 : 0);
|
|
diff --git a/src/main/java/net/minecraft/world/entity/vehicle/ChestBoat.java b/src/main/java/net/minecraft/world/entity/vehicle/ChestBoat.java
|
|
index e88c39d405fc7068db64ad34a03dec8d559e749e..35f0677a31be938a87314c534d63bc24faec7416 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/vehicle/ChestBoat.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/vehicle/ChestBoat.java
|
|
@@ -30,6 +30,9 @@ import org.bukkit.craftbukkit.entity.CraftHumanEntity;
|
|
import org.bukkit.entity.HumanEntity;
|
|
import org.bukkit.inventory.InventoryHolder;
|
|
// CraftBukkit end
|
|
+// DivineMC start
|
|
+import org.purpurmc.purpur.PurpurConfig;
|
|
+// DivineMC end
|
|
|
|
public class ChestBoat extends Boat implements HasCustomInventoryScreen, ContainerEntity {
|
|
|
|
@@ -41,7 +44,7 @@ public class ChestBoat extends Boat implements HasCustomInventoryScreen, Contain
|
|
|
|
public ChestBoat(EntityType<? extends Boat> type, Level world) {
|
|
super(type, world);
|
|
- this.itemStacks = NonNullList.withSize(27, ItemStack.EMPTY);
|
|
+ this.itemStacks = NonNullList.withSize(PurpurConfig.chestBoatRows * 9, ItemStack.EMPTY); // DivineMC start - Add missing purpur config options
|
|
}
|
|
|
|
public ChestBoat(Level world, double d0, double d1, double d2) {
|
|
@@ -160,7 +163,7 @@ public class ChestBoat extends Boat implements HasCustomInventoryScreen, Contain
|
|
|
|
@Override
|
|
public int getContainerSize() {
|
|
- return 27;
|
|
+ return PurpurConfig.chestBoatRows * 9; // DivineMC - Add missing purpur config options
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
|
index 0b2a5dc43ccba7d223cbdfd3f1dc539a6dab0444..01e10034ad8cd91d30c4c3dc7b372617ad6b785e 100644
|
|
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
|
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
|
@@ -326,6 +326,7 @@ public class PurpurConfig {
|
|
}
|
|
|
|
public static int barrelRows = 3;
|
|
+ public static int chestBoatRows = 3; // DivineMC - Add missing purpur config options
|
|
public static boolean enderChestSixRows = false;
|
|
public static boolean enderChestPermissionRows = false;
|
|
public static boolean cryingObsidianValidForPortalFrame = false;
|
|
@@ -366,6 +367,7 @@ public class PurpurConfig {
|
|
case 1 -> 9;
|
|
default -> 27;
|
|
});
|
|
+ chestBoatRows = getInt("settings.blocks.chest_boat.rows", chestBoatRows); // DivineMC - Add missing purpur config options
|
|
enderChestSixRows = getBoolean("settings.blocks.ender_chest.six-rows", enderChestSixRows);
|
|
org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27);
|
|
enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows);
|
|
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
index f9c46c7a840dd73f4736dff4b34f4bd1c6e4c7ac..4fc0c0e8394e46404a46cde745e871fdc8d808bd 100644
|
|
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
@@ -1096,7 +1096,17 @@ public class PurpurWorldConfig {
|
|
public boolean allayRidableInWater = true;
|
|
public boolean allayControllable = true;
|
|
public List<String> allayRespectNBT = new ArrayList<>();
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ public double allayMaxHealth = 20.0D;
|
|
+ public boolean allayTakeDamageFromWater = false;
|
|
+ public boolean allayAlwaysDropExp = false;
|
|
+ // DivineMC end
|
|
private void allaySettings() {
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ allayMaxHealth = getDouble("mobs.allay.max-health", allayMaxHealth);
|
|
+ allayTakeDamageFromWater = getBoolean("mobs.allay.take-damage-from-water", allayTakeDamageFromWater);
|
|
+ allayAlwaysDropExp = getBoolean("mobs.allay.always-drop-exp", allayAlwaysDropExp);
|
|
+ // DivineMC end
|
|
allayRidable = getBoolean("mobs.allay.ridable", allayRidable);
|
|
allayRidableInWater = getBoolean("mobs.allay.ridable-in-water", allayRidableInWater);
|
|
allayControllable = getBoolean("mobs.allay.controllable", allayControllable);
|
|
@@ -1214,7 +1224,17 @@ public class PurpurWorldConfig {
|
|
public double camelJumpStrengthMax = 0.42D;
|
|
public double camelMovementSpeedMin = 0.09D;
|
|
public double camelMovementSpeedMax = 0.09D;
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ public boolean camelRidableInWater = false;
|
|
+ public boolean camelTakeDamageFromWater = false;
|
|
+ public boolean camelAlwaysDropExp = false;
|
|
+ // DivineMC end
|
|
private void camelSettings() {
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ camelRidableInWater = getBoolean("mobs.camel.ridable-in-water", camelRidableInWater);
|
|
+ camelTakeDamageFromWater = getBoolean("mobs.camel.takes-damage-from-water", camelTakeDamageFromWater);
|
|
+ camelAlwaysDropExp = getBoolean("mobs.camel.always-drop-exp", camelAlwaysDropExp);
|
|
+ // DivineMC end
|
|
camelMaxHealthMin = getDouble("mobs.camel.attributes.max_health.min", camelMaxHealthMin);
|
|
camelMaxHealthMax = getDouble("mobs.camel.attributes.max_health.max", camelMaxHealthMax);
|
|
camelJumpStrengthMin = getDouble("mobs.camel.attributes.jump_strength.min", camelJumpStrengthMin);
|
|
@@ -1641,7 +1661,17 @@ public class PurpurWorldConfig {
|
|
public boolean frogControllable = true;
|
|
public float frogRidableJumpHeight = 0.65F;
|
|
public int frogBreedingTicks = 6000;
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ public double frogMaxHealth = 10.0D;
|
|
+ public boolean frogTakeDamageFromWater = false;
|
|
+ public boolean frogAlwaysDropExp = false;
|
|
+ // DivineMC end
|
|
private void frogSettings() {
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ frogMaxHealth = getDouble("mobs.frog.attributes.max_health", frogMaxHealth);
|
|
+ frogTakeDamageFromWater = getBoolean("mobs.frog.takes-damage-from-water", frogTakeDamageFromWater);
|
|
+ frogAlwaysDropExp = getBoolean("mobs.frog.always-drop-exp", frogAlwaysDropExp);
|
|
+ // DivineMC end
|
|
frogRidable = getBoolean("mobs.frog.ridable", frogRidable);
|
|
frogRidableInWater = getBoolean("mobs.frog.ridable-in-water", frogRidableInWater);
|
|
frogControllable = getBoolean("mobs.frog.controllable", frogControllable);
|
|
@@ -2592,7 +2622,15 @@ public class PurpurWorldConfig {
|
|
public boolean snifferControllable = true;
|
|
public double snifferMaxHealth = 14.0D;
|
|
public int snifferBreedingTicks = 6000;
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ public boolean snifferTakeDamageFromWater = false;
|
|
+ public boolean snifferAlwaysDropExp = false;
|
|
+ // DivineMC end
|
|
private void snifferSettings() {
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ snifferTakeDamageFromWater = getBoolean("mobs.sniffer.takes-damage-from-water", snifferTakeDamageFromWater);
|
|
+ snifferAlwaysDropExp = getBoolean("mobs.sniffer.always-drop-exp", snifferAlwaysDropExp);
|
|
+ // DivineMC end
|
|
snifferRidable = getBoolean("mobs.sniffer.ridable", snifferRidable);
|
|
snifferRidableInWater = getBoolean("mobs.sniffer.ridable-in-water", snifferRidableInWater);
|
|
snifferControllable = getBoolean("mobs.sniffer.controllable", snifferControllable);
|
|
@@ -2691,7 +2729,17 @@ public class PurpurWorldConfig {
|
|
public boolean tadpoleRidable = false;
|
|
public boolean tadpoleRidableInWater = true;
|
|
public boolean tadpoleControllable = true;
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ public double tadpoleMaxHealth = 10.0D;
|
|
+ public boolean tadpoleTakeDamageFromWater = false;
|
|
+ public boolean tadpoleAlwaysDropExp = false;
|
|
+ // DivineMC end
|
|
private void tadpoleSettings() {
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ tadpoleMaxHealth = getDouble("mobs.tadpole.attributes.max_health", tadpoleMaxHealth);
|
|
+ tadpoleTakeDamageFromWater = getBoolean("mobs.tadpole.takes-damage-from-water", tadpoleTakeDamageFromWater);
|
|
+ tadpoleAlwaysDropExp = getBoolean("mobs.tadpole.always-drop-exp", tadpoleAlwaysDropExp);
|
|
+ // DivineMC end
|
|
tadpoleRidable = getBoolean("mobs.tadpole.ridable", tadpoleRidable);
|
|
tadpoleRidableInWater = getBoolean("mobs.tadpole.ridable-in-water", tadpoleRidableInWater);
|
|
tadpoleControllable = getBoolean("mobs.tadpole.controllable", tadpoleControllable);
|
|
@@ -2901,7 +2949,17 @@ public class PurpurWorldConfig {
|
|
public boolean wardenRidable = false;
|
|
public boolean wardenRidableInWater = true;
|
|
public boolean wardenControllable = true;
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ public double wardenMaxHealth = 500.0D;
|
|
+ public boolean wardenTakeDamageFromWater = false;
|
|
+ public boolean wardenAlwaysDropExp = false;
|
|
+ // DivineMC end
|
|
private void wardenSettings() {
|
|
+ // DivineMC start - Add missing purpur config options
|
|
+ wardenMaxHealth = getDouble("mobs.warden.attributes.max_health", wardenMaxHealth);
|
|
+ wardenTakeDamageFromWater = getBoolean("mobs.warden.takes-damage-from-water", wardenTakeDamageFromWater);
|
|
+ wardenAlwaysDropExp = getBoolean("mobs.warden.always-drop-exp", wardenAlwaysDropExp);
|
|
+ // DivineMC end
|
|
wardenRidable = getBoolean("mobs.warden.ridable", wardenRidable);
|
|
wardenRidableInWater = getBoolean("mobs.warden.ridable-in-water", wardenRidableInWater);
|
|
wardenControllable = getBoolean("mobs.warden.controllable", wardenControllable);
|