mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-23 08:59:23 +00:00
367 lines
19 KiB
Diff
367 lines
19 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: AlphaKR93 <dev@alpha93.kr>
|
|
Date: Sat, 25 Mar 2023 00:52:11 +0900
|
|
Subject: [PATCH] Plazma: Add missing purpur configuration options
|
|
|
|
Original license: MIT
|
|
Original project: https://github.com/PlazmaMC/PlazmaBukkit
|
|
|
|
Add more Purpur configurable options for entities
|
|
|
|
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 b9f39d873e243da34aafa9f285978d2d9f6b0100..349c444b0c8acc509616de6bc809e2bad9c8e115 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
|
|
@@ -160,6 +160,18 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS
|
|
}
|
|
// Purpur end
|
|
|
|
+ // Leaf start - Plazma
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return level().purpurConfig.allayTakeDamageFromWater;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isAlwaysExperienceDropper() {
|
|
+ return level().purpurConfig.allayAlwaysDropExp;
|
|
+ }
|
|
+ // Leaf end - Plazma
|
|
+
|
|
@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 c0595b595905e4f876e013a16e75204d9ceeead9..4b54783c004bbf2e6fab3fa65eb64444d009c5bc 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
|
|
@@ -96,6 +96,18 @@ public class Camel extends AbstractHorse {
|
|
}
|
|
// Purpur end
|
|
|
|
+ // Leaf start - Plazma
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return level().purpurConfig.camelTakeDamageFromWater;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isAlwaysExperienceDropper() {
|
|
+ return level().purpurConfig.camelAlwaysDropExp;
|
|
+ }
|
|
+ // Leaf start - Plazma
|
|
+
|
|
@Override
|
|
public void addAdditionalSaveData(CompoundTag nbt) {
|
|
super.addAdditionalSaveData(nbt);
|
|
@@ -155,7 +167,7 @@ public class Camel extends AbstractHorse {
|
|
protected void customServerAiStep(ServerLevel world) {
|
|
Brain<Camel> behaviorcontroller = (Brain<Camel>) this.getBrain(); // CraftBukkit - decompile error
|
|
|
|
- if (this.behaviorTick++ % this.activatedPriority == 0) // Leaf - Plazma - Add missing Pufferfish configurations
|
|
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Leaf - Plazma - Add missing Pufferfish configurations // Leaf - Plazma - Add missing purpur configurations
|
|
behaviorcontroller.tick(world, this);
|
|
CamelAi.updateActivity(this);
|
|
super.customServerAiStep(world);
|
|
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 d8fe42996c8ba3d44e31197b24294b86b845e2a8..6575e5f5e574db5bb4243a9bed426f3316e3e2ec 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
|
|
@@ -163,6 +163,23 @@ public class Frog extends Animal implements VariantHolder<Holder<FrogVariant>> {
|
|
}
|
|
// Purpur end
|
|
|
|
+ // Leaf start - Plazma
|
|
+ @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);
|
|
+ }
|
|
+ // Leaf end - Plazma
|
|
+
|
|
public int getPurpurBreedTime() {
|
|
return this.level().purpurConfig.frogBreedingTicks;
|
|
}
|
|
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 72a858ac4ebcfa7520a74bd52501521af64ffcab..d20d7eb89ead872ab90a5b43d6298d45b657c902 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
|
|
@@ -93,6 +93,23 @@ public class Tadpole extends AbstractFish {
|
|
}
|
|
// Purpur end
|
|
|
|
+ // Leaf start - Plazma
|
|
+ @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);
|
|
+ }
|
|
+ // Leaf end - Plazma
|
|
+
|
|
@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 dc0f8bf73170f5012a5d4af3a7e823352d684bd9..47bbb60edcca9840f1bc70b90bd8f2a4dee45a21 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
|
|
@@ -116,6 +116,18 @@ public class Sniffer extends Animal {
|
|
}
|
|
// Purpur end
|
|
|
|
+ // Leaf start - Plazma
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return level().purpurConfig.snifferTakeDamageFromWater;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isAlwaysExperienceDropper() {
|
|
+ return level().purpurConfig.snifferAlwaysDropExp;
|
|
+ }
|
|
+ // Leaf end - Plazma
|
|
+
|
|
@Override
|
|
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
|
super.defineSynchedData(builder);
|
|
@@ -494,7 +506,7 @@ public class Sniffer extends Animal {
|
|
private int behaviorTick; // Leaf - Plazma - Add missing Pufferfish configurations
|
|
@Override
|
|
protected void customServerAiStep(ServerLevel world) {
|
|
- if (this.behaviorTick++ % this.activatedPriority == 0) // Leaf - Plazma - Add missing Pufferfish configurations
|
|
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Leaf - Plazma - Add missing Pufferfish configurations // Leaf - Plazma - Add missing purpur configurations
|
|
this.getBrain().tick(world, this);
|
|
SnifferAi.updateActivity(this);
|
|
super.customServerAiStep(world);
|
|
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 a429de1fdb4823b1f1df42dfe213853cc06ef1c2..ef1bbd47d22a808b3f5bfc715eda3f4d13bd80aa 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
|
|
@@ -151,6 +151,23 @@ public class Warden extends Monster implements VibrationSystem {
|
|
}
|
|
// Purpur end
|
|
|
|
+ // Leaf start - Plazma
|
|
+ @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);
|
|
+ }
|
|
+ // Leaf end - Plazma
|
|
+
|
|
@Override
|
|
public Packet<ClientGamePacketListener> getAddEntityPacket(ServerEntity entityTrackerEntry) {
|
|
return new ClientboundAddEntityPacket(this, entityTrackerEntry, this.hasPose(Pose.EMERGING) ? 1 : 0);
|
|
@@ -300,7 +317,7 @@ public class Warden extends Monster implements VibrationSystem {
|
|
private int behaviorTick = 0; // Pufferfish
|
|
@Override
|
|
protected void customServerAiStep(ServerLevel world) {
|
|
- if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
|
|
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Leaf - Plazma - Add missing purpur configurations
|
|
this.getBrain().tick(world, this);
|
|
super.customServerAiStep(world);
|
|
if ((this.tickCount + this.getId()) % 120 == 0) {
|
|
diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractChestBoat.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractChestBoat.java
|
|
index 1f4cc08e84a23213bb9786ea09ad77caeec2d336..06d45906924d6470d75445dea23c9b90dac6545f 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractChestBoat.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractChestBoat.java
|
|
@@ -46,7 +46,7 @@ public abstract class AbstractChestBoat extends AbstractBoat implements HasCusto
|
|
|
|
public AbstractChestBoat(EntityType<? extends AbstractChestBoat> type, Level world, Supplier<Item> itemSupplier) {
|
|
super(type, world, itemSupplier);
|
|
- this.itemStacks = NonNullList.withSize(27, ItemStack.EMPTY);
|
|
+ this.itemStacks = NonNullList.withSize(org.purpurmc.purpur.PurpurConfig.chestBoatRows * 9, ItemStack.EMPTY); // Leaf - Plazma
|
|
}
|
|
|
|
@Override
|
|
@@ -142,7 +142,7 @@ public abstract class AbstractChestBoat extends AbstractBoat implements HasCusto
|
|
|
|
@Override
|
|
public int getContainerSize() {
|
|
- return 27;
|
|
+ return org.purpurmc.purpur.PurpurConfig.chestBoatRows * 9; // Leaf - Plazma
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
|
index 4401cd919951e92f613e0899f243b0105dd852b7..05d77ccd9bf8ce0534fbac7d4354536e3187229f 100644
|
|
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
|
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
|
@@ -321,6 +321,7 @@ public class PurpurConfig {
|
|
}
|
|
|
|
public static int barrelRows = 3;
|
|
+ public static int chestBoatRows = 3; // Leaf - Plazma
|
|
public static boolean enderChestSixRows = false;
|
|
public static boolean enderChestPermissionRows = false;
|
|
public static boolean cryingObsidianValidForPortalFrame = false;
|
|
@@ -363,6 +364,7 @@ public class PurpurConfig {
|
|
case 1 -> 9;
|
|
default -> 27;
|
|
});
|
|
+ chestBoatRows = getInt("settings.blocks.chest_boat.rows", chestBoatRows); // Leaf - Plazma
|
|
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 8c9a6084f09f644bf22ac98edac797eea753277f..0ff935f36f65d2274156e134684696ebcc404614 100644
|
|
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
@@ -1128,12 +1128,20 @@ public class PurpurWorldConfig {
|
|
public boolean allayControllable = true;
|
|
public double allayMaxHealth = 20.0D;
|
|
public double allayScale = 1.0D;
|
|
+ // Leaf start - Plazma - Add missing purpur config options
|
|
+ public boolean allayTakeDamageFromWater = false;
|
|
+ public boolean allayAlwaysDropExp = false;
|
|
+ // Leaf end - Plazma - Add missing purpur config options
|
|
private void allaySettings() {
|
|
allayRidable = getBoolean("mobs.allay.ridable", allayRidable);
|
|
allayRidableInWater = getBoolean("mobs.allay.ridable-in-water", allayRidableInWater);
|
|
allayControllable = getBoolean("mobs.allay.controllable", allayControllable);
|
|
allayMaxHealth = getDouble("mobs.allay.attributes.max_health", allayMaxHealth);
|
|
allayScale = Mth.clamp(getDouble("mobs.allay.attributes.scale", allayScale), 0.0625D, 16.0D);
|
|
+ // Leaf start - Plazma - Add missing purpur config options
|
|
+ allayTakeDamageFromWater = getBoolean("mobs.allay.take-damage-from-water", allayTakeDamageFromWater);
|
|
+ allayAlwaysDropExp = getBoolean("mobs.allay.always-drop-exp", allayAlwaysDropExp);
|
|
+ // Leaf end - Plazma - Add missing purpur config options
|
|
}
|
|
|
|
public boolean armadilloRidable = false;
|
|
@@ -1283,6 +1291,10 @@ public class PurpurWorldConfig {
|
|
public double camelMovementSpeedMin = 0.09D;
|
|
public double camelMovementSpeedMax = 0.09D;
|
|
public int camelBreedingTicks = 6000;
|
|
+ // Leaf start - Plazma - Add missing purpur config options
|
|
+ public boolean camelTakeDamageFromWater = false;
|
|
+ public boolean camelAlwaysDropExp = false;
|
|
+ // Leaf end - Plazma - Add missing purpur config options
|
|
private void camelSettings() {
|
|
camelRidableInWater = getBoolean("mobs.camel.ridable-in-water", camelRidableInWater);
|
|
camelMaxHealthMin = getDouble("mobs.camel.attributes.max_health.min", camelMaxHealthMin);
|
|
@@ -1292,6 +1304,10 @@ public class PurpurWorldConfig {
|
|
camelMovementSpeedMin = getDouble("mobs.camel.attributes.movement_speed.min", camelMovementSpeedMin);
|
|
camelMovementSpeedMax = getDouble("mobs.camel.attributes.movement_speed.max", camelMovementSpeedMax);
|
|
camelBreedingTicks = getInt("mobs.camel.breeding-delay-ticks", camelBreedingTicks);
|
|
+ // Leaf start - Plazma - Add missing purpur config options
|
|
+ camelTakeDamageFromWater = getBoolean("mobs.camel.takes-damage-from-water", camelTakeDamageFromWater);
|
|
+ camelAlwaysDropExp = getBoolean("mobs.camel.always-drop-exp", camelAlwaysDropExp);
|
|
+ // Leaf end - Plazma - Add missing purpur config options
|
|
}
|
|
|
|
public boolean catRidable = false;
|
|
@@ -1750,12 +1766,22 @@ public class PurpurWorldConfig {
|
|
public boolean frogControllable = true;
|
|
public float frogRidableJumpHeight = 0.65F;
|
|
public int frogBreedingTicks = 6000;
|
|
+ // Leaf start - Plazma - Add missing purpur config options
|
|
+ public double frogMaxHealth = 10.0D;
|
|
+ public boolean frogTakeDamageFromWater = false;
|
|
+ public boolean frogAlwaysDropExp = false;
|
|
+ // Leaf end - Plazma - Add missing purpur config options
|
|
private void frogSettings() {
|
|
frogRidable = getBoolean("mobs.frog.ridable", frogRidable);
|
|
frogRidableInWater = getBoolean("mobs.frog.ridable-in-water", frogRidableInWater);
|
|
frogControllable = getBoolean("mobs.frog.controllable", frogControllable);
|
|
frogRidableJumpHeight = (float) getDouble("mobs.frog.ridable-jump-height", frogRidableJumpHeight);
|
|
frogBreedingTicks = getInt("mobs.frog.breeding-delay-ticks", frogBreedingTicks);
|
|
+ // Leaf start - Plazma - 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);
|
|
+ // Leaf end - Plazma - Add missing purpur config options
|
|
}
|
|
|
|
public boolean ghastRidable = false;
|
|
@@ -2764,6 +2790,10 @@ public class PurpurWorldConfig {
|
|
public double snifferMaxHealth = 14.0D;
|
|
public double snifferScale = 1.0D;
|
|
public int snifferBreedingTicks = 6000;
|
|
+ // Leaf start - Plazma - Add missing purpur config options
|
|
+ public boolean snifferTakeDamageFromWater = false;
|
|
+ public boolean snifferAlwaysDropExp = false;
|
|
+ // Leaf end - Plazma - Add missing purpur config options
|
|
private void snifferSettings() {
|
|
snifferRidable = getBoolean("mobs.sniffer.ridable", snifferRidable);
|
|
snifferRidableInWater = getBoolean("mobs.sniffer.ridable-in-water", snifferRidableInWater);
|
|
@@ -2771,6 +2801,10 @@ public class PurpurWorldConfig {
|
|
snifferMaxHealth = getDouble("mobs.sniffer.attributes.max_health", snifferMaxHealth);
|
|
snifferScale = Mth.clamp(getDouble("mobs.sniffer.attributes.scale", snifferScale), 0.0625D, 16.0D);
|
|
snifferBreedingTicks = getInt("mobs.sniffer.breeding-delay-ticks", snifferBreedingTicks);
|
|
+ // Leaf start - Plazma - Add missing purpur config options
|
|
+ snifferTakeDamageFromWater = getBoolean("mobs.sniffer.takes-damage-from-water", snifferTakeDamageFromWater);
|
|
+ snifferAlwaysDropExp = getBoolean("mobs.sniffer.always-drop-exp", snifferAlwaysDropExp);
|
|
+ // Leaf end - Plazma - Add missing purpur config options
|
|
}
|
|
|
|
public boolean squidRidable = false;
|
|
@@ -2872,10 +2906,20 @@ public class PurpurWorldConfig {
|
|
public boolean tadpoleRidable = false;
|
|
public boolean tadpoleRidableInWater = true;
|
|
public boolean tadpoleControllable = true;
|
|
+ // Leaf start - Plazma - Add missing purpur config options
|
|
+ public double tadpoleMaxHealth = 6.0D; // Leaf - Tadpole health should be 6
|
|
+ public boolean tadpoleTakeDamageFromWater = false;
|
|
+ public boolean tadpoleAlwaysDropExp = false;
|
|
+ // Leaf end - Plazma - Add missing purpur config options
|
|
private void tadpoleSettings() {
|
|
tadpoleRidable = getBoolean("mobs.tadpole.ridable", tadpoleRidable);
|
|
tadpoleRidableInWater = getBoolean("mobs.tadpole.ridable-in-water", tadpoleRidableInWater);
|
|
tadpoleControllable = getBoolean("mobs.tadpole.controllable", tadpoleControllable);
|
|
+ // Leaf start - Plazma - 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);
|
|
+ // Leaf end - Plazma - Add missing purpur config options
|
|
}
|
|
|
|
public boolean traderLlamaRidable = false;
|
|
@@ -3104,10 +3148,20 @@ public class PurpurWorldConfig {
|
|
public boolean wardenRidable = false;
|
|
public boolean wardenRidableInWater = true;
|
|
public boolean wardenControllable = true;
|
|
+ // Leaf start - Plazma - Add missing purpur config options
|
|
+ public double wardenMaxHealth = 500.0D;
|
|
+ public boolean wardenTakeDamageFromWater = false;
|
|
+ public boolean wardenAlwaysDropExp = false;
|
|
+ // Leaf end - Plazma - Add missing purpur config options
|
|
private void wardenSettings() {
|
|
wardenRidable = getBoolean("mobs.warden.ridable", wardenRidable);
|
|
wardenRidableInWater = getBoolean("mobs.warden.ridable-in-water", wardenRidableInWater);
|
|
wardenControllable = getBoolean("mobs.warden.controllable", wardenControllable);
|
|
+ // Leaf start - Plazma - 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);
|
|
+ // Leaf end - Plazma - Add missing purpur config options
|
|
}
|
|
|
|
public boolean witchRidable = false;
|