mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-21 02:17:42 +01:00
update paper
This commit is contained in:
@@ -1,39 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Encode42 <me@encode42.dev>
|
||||
Date: Mon, 8 Mar 2021 16:46:54 -0500
|
||||
Subject: [PATCH] Config to ignore nearby mobs when sleeping
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
index 6abc6cfa4e6fd4de03752526269db162503bf7b9..8b957fe6c88ae4eded4a89846cae2df4456c04bf 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
@@ -1285,7 +1285,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
return entitymonster.f((EntityHuman) this);
|
||||
});
|
||||
|
||||
- if (!list.isEmpty()) {
|
||||
+ if (!this.world.purpurConfig.playerSleepNearMonsters && !list.isEmpty()) { // Purpur
|
||||
return Either.left(EntityHuman.EnumBedResult.NOT_SAFE);
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 129fef2e4da94bcd80153379a7246590e4ea9cdd..eaaaf9e5490095cd70ca892fa927017e6ea9de9d 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -328,6 +328,7 @@ public class PurpurWorldConfig {
|
||||
public int raidCooldownSeconds = 0;
|
||||
public int animalBreedingCooldownSeconds = 0;
|
||||
public boolean creativeOnePunch = false;
|
||||
+ public boolean playerSleepNearMonsters = false;
|
||||
private void miscGameplayMechanicsSettings() {
|
||||
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
|
||||
alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative);
|
||||
@@ -347,6 +348,7 @@ public class PurpurWorldConfig {
|
||||
raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds);
|
||||
animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds);
|
||||
creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch);
|
||||
+ playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters);
|
||||
}
|
||||
|
||||
public boolean catSpawning;
|
||||
@@ -1,40 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Encode42 <me@encode42.dev>
|
||||
Date: Tue, 9 Mar 2021 16:10:39 -0500
|
||||
Subject: [PATCH] Config for Enderman to aggro spawned Endermites
|
||||
|
||||
By default, Enderman do not attack Endermites unless spawned by an Ender Pearl.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java
|
||||
index a2e0fed960f6dffb0f00c9d6ce91359e3597231c..25c49f6ded334ffb2d0c3155692879521ec58c09 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java
|
||||
@@ -71,7 +71,7 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable {
|
||||
private static final DataWatcherObject<Boolean> bo = DataWatcher.a(EntityEnderman.class, DataWatcherRegistry.i);
|
||||
private static final DataWatcherObject<Boolean> bp = DataWatcher.a(EntityEnderman.class, DataWatcherRegistry.i);
|
||||
private static final Predicate<EntityLiving> bq = (entityliving) -> {
|
||||
- return entityliving instanceof EntityEndermite && ((EntityEndermite) entityliving).isPlayerSpawned();
|
||||
+ return entityliving instanceof EntityEndermite && (((EntityEndermite) entityliving).isPlayerSpawned() || entityliving.world.purpurConfig.endermanAggroSpawnedEndermites); // Purpur
|
||||
};
|
||||
private int br = Integer.MIN_VALUE;
|
||||
private int bs;
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index eaaaf9e5490095cd70ca892fa927017e6ea9de9d..bb8ad6a4ac87c4c34d12c5fc1dd92f3d63b84bc1 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -881,6 +881,7 @@ public class PurpurWorldConfig {
|
||||
public boolean endermanDespawnEvenWithBlock = false;
|
||||
public double endermanMaxHealth = 40.0D;
|
||||
public boolean endermanTakeDamageFromWater = true;
|
||||
+ public boolean endermanAggroSpawnedEndermites = false;
|
||||
private void endermanSettings() {
|
||||
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
|
||||
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
|
||||
@@ -894,6 +895,7 @@ public class PurpurWorldConfig {
|
||||
}
|
||||
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
|
||||
endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater);
|
||||
+ endermanAggroSpawnedEndermites = getBoolean("mobs.enderman.aggressive-towards-spawned-endermites", endermanAggroSpawnedEndermites);
|
||||
}
|
||||
|
||||
public boolean endermiteRidable = false;
|
||||
@@ -1,51 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Encode42 <me@encode42.dev>
|
||||
Date: Tue, 9 Mar 2021 16:16:01 -0500
|
||||
Subject: [PATCH] Config to ignore Dragon Head wearers and stare aggro
|
||||
|
||||
Prevents Enderman from becoming aggresive towards players that are wearing a Dragon Head.
|
||||
Adds functionality to a useless item!
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java
|
||||
index 25c49f6ded334ffb2d0c3155692879521ec58c09..3bb5b360be98ac2f20793c0eb126e39eb2201331 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java
|
||||
@@ -50,6 +50,7 @@ import net.minecraft.world.entity.ai.goal.target.PathfinderGoalUniversalAngerRes
|
||||
import net.minecraft.world.entity.ai.targeting.PathfinderTargetCondition;
|
||||
import net.minecraft.world.entity.player.EntityHuman;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
+import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.GameRules;
|
||||
import net.minecraft.world.level.GeneratorAccess;
|
||||
import net.minecraft.world.level.IMaterial;
|
||||
@@ -252,7 +253,7 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable {
|
||||
// Paper end
|
||||
ItemStack itemstack = (ItemStack) entityhuman.inventory.armor.get(3);
|
||||
|
||||
- if (itemstack.getItem() == Blocks.CARVED_PUMPKIN.getItem()) {
|
||||
+ if (world.purpurConfig.endermanDisableStareAggro || itemstack.getItem() == Blocks.CARVED_PUMPKIN.getItem() || (world.purpurConfig.endermanIgnorePlayerDragonHead && itemstack.getItem() == Items.DRAGON_HEAD)) { // Purpur
|
||||
return false;
|
||||
} else {
|
||||
Vec3D vec3d = entityhuman.f(1.0F).d();
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index bb8ad6a4ac87c4c34d12c5fc1dd92f3d63b84bc1..838f97829dcb2926a56e3c34c4cbcdb9a13d6d84 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -882,6 +882,8 @@ public class PurpurWorldConfig {
|
||||
public double endermanMaxHealth = 40.0D;
|
||||
public boolean endermanTakeDamageFromWater = true;
|
||||
public boolean endermanAggroSpawnedEndermites = false;
|
||||
+ public boolean endermanIgnorePlayerDragonHead = false;
|
||||
+ public boolean endermanDisableStareAggro = false;
|
||||
private void endermanSettings() {
|
||||
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
|
||||
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
|
||||
@@ -896,6 +898,8 @@ public class PurpurWorldConfig {
|
||||
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
|
||||
endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater);
|
||||
endermanAggroSpawnedEndermites = getBoolean("mobs.enderman.aggressive-towards-spawned-endermites", endermanAggroSpawnedEndermites);
|
||||
+ endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead);
|
||||
+ endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro);
|
||||
}
|
||||
|
||||
public boolean endermiteRidable = false;
|
||||
@@ -1,53 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Mon, 15 Mar 2021 03:52:17 -0500
|
||||
Subject: [PATCH] Tick fluids config
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/BlockFluids.java b/src/main/java/net/minecraft/world/level/block/BlockFluids.java
|
||||
index 0ed8d938b8fafdb03e01a00a201ba3f8597ac6e9..0eff89bf9e114271c34c37cad1b98691902529ac 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/BlockFluids.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/BlockFluids.java
|
||||
@@ -100,7 +100,7 @@ public class BlockFluids extends Block implements IFluidSource {
|
||||
|
||||
@Override
|
||||
public void onPlace(IBlockData iblockdata, World world, BlockPosition blockposition, IBlockData iblockdata1, boolean flag) {
|
||||
- if (this.a(world, blockposition, iblockdata)) {
|
||||
+ if (world.purpurConfig.tickFluids && this.a(world, blockposition, iblockdata)) { // Purpur
|
||||
world.getFluidTickList().a(blockposition, iblockdata.getFluid().getType(), this.getFlowSpeed(world, blockposition)); // Paper
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ public class BlockFluids extends Block implements IFluidSource {
|
||||
|
||||
@Override
|
||||
public IBlockData updateState(IBlockData iblockdata, EnumDirection enumdirection, IBlockData iblockdata1, GeneratorAccess generatoraccess, BlockPosition blockposition, BlockPosition blockposition1) {
|
||||
- if (iblockdata.getFluid().isSource() || iblockdata1.getFluid().isSource()) {
|
||||
+ if (generatoraccess.getMinecraftWorld().purpurConfig.tickFluids && iblockdata.getFluid().isSource() || iblockdata1.getFluid().isSource()) { // Purpur
|
||||
generatoraccess.getFluidTickList().a(blockposition, iblockdata.getFluid().getType(), this.b.a((IWorldReader) generatoraccess));
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ public class BlockFluids extends Block implements IFluidSource {
|
||||
|
||||
@Override
|
||||
public void doPhysics(IBlockData iblockdata, World world, BlockPosition blockposition, Block block, BlockPosition blockposition1, boolean flag) {
|
||||
- if (this.a(world, blockposition, iblockdata)) {
|
||||
+ if (world.purpurConfig.tickFluids && this.a(world, blockposition, iblockdata)) { // Purpur
|
||||
world.getFluidTickList().a(blockposition, iblockdata.getFluid().getType(), this.getFlowSpeed(world, blockposition)); // Paper
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 838f97829dcb2926a56e3c34c4cbcdb9a13d6d84..d9fee278a2a5c04cc1a1796df2a6a77b432f47cc 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -305,6 +305,11 @@ public class PurpurWorldConfig {
|
||||
witherSkullDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.wither_skull", witherSkullDespawnRate);
|
||||
}
|
||||
|
||||
+ public boolean tickFluids = true;
|
||||
+ private void fluidSettings() {
|
||||
+ tickFluids = getBoolean("gameplay-mechanics.tick-fluids", tickFluids);
|
||||
+ }
|
||||
+
|
||||
public int snowballDamage = -1;
|
||||
private void snowballSettings() {
|
||||
snowballDamage = getInt("gameplay-mechanics.projectile-damage.snowball", snowballDamage);
|
||||
@@ -1,53 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Encode42 <me@encode42.dev>
|
||||
Date: Wed, 17 Mar 2021 10:12:53 -0400
|
||||
Subject: [PATCH] Config to disable Llama caravans
|
||||
|
||||
Disables the mechanic where llamas follow leashed llamas.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalLlamaFollow.java b/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalLlamaFollow.java
|
||||
index 34a854131dd939693a6df4d52103714ebe373dc3..ea02a78c31ed43220a2b83be4bd2a896500a70b8 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalLlamaFollow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalLlamaFollow.java
|
||||
@@ -23,7 +23,7 @@ public class PathfinderGoalLlamaFollow extends PathfinderGoal {
|
||||
|
||||
@Override
|
||||
public boolean a() {
|
||||
- if (!getLlama().shouldJoinCaravan) return false; // Purpur
|
||||
+ if (!getLlama().world.purpurConfig.llamaCaravans || !getLlama().shouldJoinCaravan) return false; // Purpur
|
||||
if (!this.a.isLeashed() && !this.a.fC()) {
|
||||
List<Entity> list = this.a.world.getEntities(this.a, this.a.getBoundingBox().grow(9.0D, 4.0D, 9.0D), (entity) -> {
|
||||
EntityTypes<?> entitytypes = entity.getEntityType();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java b/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java
|
||||
index 4bea68fa35177d84a35dc5ced3e501a87e2a5391..f91e9dc5ae635329257f6b78b88c9c7c89e2f43d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/EntityLlama.java
|
||||
@@ -518,7 +518,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
|
||||
|
||||
public void joinCaravan(EntityLlama entitiyllama) { a(entitiyllama); } // Purpur - OBFHELPER
|
||||
public void a(EntityLlama entityllama) {
|
||||
- if (!shouldJoinCaravan || !new net.pl3x.purpur.event.entity.LlamaJoinCaravanEvent((org.bukkit.entity.Llama) getBukkitEntity(), (org.bukkit.entity.Llama) entityllama.getBukkitEntity()).callEvent()) return; // Purpur
|
||||
+ if (!this.world.purpurConfig.llamaCaravans || !shouldJoinCaravan || !new net.pl3x.purpur.event.entity.LlamaJoinCaravanEvent((org.bukkit.entity.Llama) getBukkitEntity(), (org.bukkit.entity.Llama) entityllama.getBukkitEntity()).callEvent()) return; // Purpur
|
||||
this.bB = entityllama;
|
||||
this.bB.bC = this;
|
||||
}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index d9fee278a2a5c04cc1a1796df2a6a77b432f47cc..c58a64f8ff38cde2de70ef9e06c1a6ca9e263669 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -1121,6 +1121,7 @@ public class PurpurWorldConfig {
|
||||
|
||||
public boolean llamaRidable = false;
|
||||
public boolean llamaRidableInWater = false;
|
||||
+ public boolean llamaCaravans = true;
|
||||
public int llamaBreedingTicks = 6000;
|
||||
public double llamaMaxHealthMin = 15.0D;
|
||||
public double llamaMaxHealthMax = 30.0D;
|
||||
@@ -1131,6 +1132,7 @@ public class PurpurWorldConfig {
|
||||
private void llamaSettings() {
|
||||
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
|
||||
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
|
||||
+ llamaCaravans = getBoolean("mobs.llama.join-caravans", llamaCaravans);
|
||||
llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);
|
||||
if (PurpurConfig.version < 10) {
|
||||
double oldMin = getDouble("mobs.llama.attributes.max-health.min", llamaMaxHealthMin);
|
||||
@@ -1,77 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Encode42 <me@encode42.dev>
|
||||
Date: Tue, 16 Mar 2021 19:50:58 -0400
|
||||
Subject: [PATCH] Config to make Creepers explode on death
|
||||
|
||||
Creepers exploded after being killed in the alpha days. This brings that back.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java
|
||||
index d049aac0208386198d1da4e9470e64898d27b1c9..27d5e9fc5ec1396e95180fc14e8a61b030cfd1e6 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java
|
||||
@@ -7,6 +7,7 @@ import net.minecraft.network.syncher.DataWatcher;
|
||||
import net.minecraft.network.syncher.DataWatcherObject;
|
||||
import net.minecraft.network.syncher.DataWatcherRegistry;
|
||||
import net.minecraft.server.PathfinderGoalHasRider;
|
||||
+import net.minecraft.server.level.EntityPlayer;
|
||||
import net.minecraft.server.level.WorldServer;
|
||||
import net.minecraft.sounds.SoundEffect;
|
||||
import net.minecraft.sounds.SoundEffects;
|
||||
@@ -63,6 +64,7 @@ public class EntityCreeper extends EntityMonster {
|
||||
private int spacebarCharge = 0;
|
||||
private int prevSpacebarCharge = 0;
|
||||
private int powerToggleDelay = 0;
|
||||
+ private boolean exploding = false;
|
||||
// Purpur end
|
||||
|
||||
public EntityCreeper(EntityTypes<? extends EntityCreeper> entitytypes, World world) {
|
||||
@@ -142,6 +144,14 @@ public class EntityCreeper extends EntityMonster {
|
||||
public void initAttributes() {
|
||||
this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue(this.world.purpurConfig.creeperMaxHealth);
|
||||
}
|
||||
+
|
||||
+ protected org.bukkit.event.entity.EntityDeathEvent d(DamageSource damagesource) {
|
||||
+ if (!exploding && this.world.purpurConfig.creeperExplodeWhenKilled && damagesource.getEntity() instanceof EntityPlayer) {
|
||||
+ this.explode();
|
||||
+ }
|
||||
+
|
||||
+ return super.d(damagesource);
|
||||
+ }
|
||||
// Purpur end
|
||||
|
||||
@Override
|
||||
@@ -327,6 +337,7 @@ public class EntityCreeper extends EntityMonster {
|
||||
}
|
||||
|
||||
public void explode() {
|
||||
+ this.exploding = true; // Purpur
|
||||
if (!this.world.isClientSide) {
|
||||
Explosion.Effect explosion_effect = this.world.getGameRules().getBoolean(GameRules.MOB_GRIEFING) && world.purpurConfig.creeperAllowGriefing ? Explosion.Effect.DESTROY : Explosion.Effect.NONE; // Purpur
|
||||
float f = this.isPowered() ? 2.0F : 1.0F;
|
||||
@@ -346,6 +357,7 @@ public class EntityCreeper extends EntityMonster {
|
||||
// CraftBukkit end
|
||||
}
|
||||
|
||||
+ this.exploding = false; // Purpur
|
||||
}
|
||||
|
||||
private void createEffectCloud() {
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index c58a64f8ff38cde2de70ef9e06c1a6ca9e263669..1fcd11d5f14458cd42e8ff54d4f244067ab0736e 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -757,12 +757,14 @@ public class PurpurWorldConfig {
|
||||
|
||||
public boolean creeperRidable = false;
|
||||
public boolean creeperRidableInWater = false;
|
||||
+ public boolean creeperExplodeWhenKilled = false;
|
||||
public boolean creeperAllowGriefing = true;
|
||||
public double creeperChargedChance = 0.0D;
|
||||
public double creeperMaxHealth = 20.0D;
|
||||
private void creeperSettings() {
|
||||
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
|
||||
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
|
||||
+ creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);
|
||||
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
|
||||
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
|
||||
if (PurpurConfig.version < 10) {
|
||||
@@ -1,68 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Wed, 17 Mar 2021 14:54:43 -0500
|
||||
Subject: [PATCH] Configurable ravager griefable blocks list
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java b/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java
|
||||
index 16da85620c067b005ce029c8b9c5ea1642a794f0..c2a6f1cb399c2cd659e2b2191edbc2a687a40eeb 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/EntityRavager.java
|
||||
@@ -188,7 +188,7 @@ public class EntityRavager extends EntityRaider {
|
||||
IBlockData iblockdata = this.world.getType(blockposition);
|
||||
Block block = iblockdata.getBlock();
|
||||
|
||||
- if (block instanceof BlockLeaves && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, net.minecraft.world.level.block.Blocks.AIR.getBlockData()).isCancelled()) { // CraftBukkit
|
||||
+ if (world.purpurConfig.ravagerGriefableBlocks.contains(block) && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, net.minecraft.world.level.block.Blocks.AIR.getBlockData()).isCancelled()) { // CraftBukkit // Purpur
|
||||
flag = this.world.a(blockposition, true, this) || flag;
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/BlockCrops.java b/src/main/java/net/minecraft/world/level/block/BlockCrops.java
|
||||
index 55ad7693ced8bab5bc8b36a375c85370e84ccb77..99df890883165c39e0c8190c4729b952af03e1c8 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/BlockCrops.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/BlockCrops.java
|
||||
@@ -161,7 +161,7 @@ public class BlockCrops extends BlockPlant implements IBlockFragilePlantElement
|
||||
@Override
|
||||
public void a(IBlockData iblockdata, World world, BlockPosition blockposition, Entity entity) {
|
||||
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, blockposition)).callEvent()) { return; } // Paper
|
||||
- if (entity instanceof EntityRavager && !CraftEventFactory.callEntityChangeBlockEvent(entity, blockposition, Blocks.AIR.getBlockData(), (!world.purpurConfig.ravagerBypassMobGriefing && !world.getGameRules().getBoolean(GameRules.MOB_GRIEFING))).isCancelled()) { // CraftBukkit // Purpur
|
||||
+ if (entity instanceof EntityRavager && world.purpurConfig.ravagerGriefableBlocks.contains(world.getType(blockposition).getBlock()) && !CraftEventFactory.callEntityChangeBlockEvent(entity, blockposition, Blocks.AIR.getBlockData(), (!world.purpurConfig.ravagerBypassMobGriefing && !world.getGameRules().getBoolean(GameRules.MOB_GRIEFING))).isCancelled()) { // CraftBukkit // Purpur
|
||||
world.a(blockposition, true, entity);
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 1fcd11d5f14458cd42e8ff54d4f244067ab0736e..e360409a15feeb793bd3b4be82f9eda89b5660d7 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -1462,6 +1462,7 @@ public class PurpurWorldConfig {
|
||||
public boolean ravagerRidableInWater = false;
|
||||
public boolean ravagerBypassMobGriefing = false;
|
||||
public double ravagerMaxHealth = 100.0D;
|
||||
+ public List<Block> ravagerGriefableBlocks = new ArrayList<>();
|
||||
private void ravagerSettings() {
|
||||
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
|
||||
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
|
||||
@@ -1472,6 +1473,23 @@ public class PurpurWorldConfig {
|
||||
set("mobs.ravager.attributes.max_health", oldValue);
|
||||
}
|
||||
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
|
||||
+ getList("mobs.ravager.griefable-blocks", new ArrayList<String>(){{
|
||||
+ add("minecraft:oak_leaves");
|
||||
+ add("minecraft:spruce_leaves");
|
||||
+ add("minecraft:birch_leaves");
|
||||
+ add("minecraft:jungle_leaves");
|
||||
+ add("minecraft:acacia_leaves");
|
||||
+ add("minecraft:dark_oak_leaves");
|
||||
+ add("minecraft:beetroots");
|
||||
+ add("minecraft:carrots");
|
||||
+ add("minecraft:potatoes");
|
||||
+ add("minecraft:wheat");
|
||||
+ }}).forEach(key -> {
|
||||
+ Block block = IRegistry.BLOCK.get(new MinecraftKey(key.toString()));
|
||||
+ if (!block.getBlockData().isAir()) {
|
||||
+ ravagerGriefableBlocks.add(block);
|
||||
+ }
|
||||
+ });
|
||||
}
|
||||
|
||||
public boolean salmonRidable = false;
|
||||
@@ -1,61 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sun, 21 Mar 2021 15:49:15 -0500
|
||||
Subject: [PATCH] Sneak to bulk process composter
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/BlockComposter.java b/src/main/java/net/minecraft/world/level/block/BlockComposter.java
|
||||
index e4e519ba773388b8d26a8f794a6eff51e3d8f72e..c0b235d5edf3cd14021696d1b4f76ce3de41f5d5 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/BlockComposter.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/BlockComposter.java
|
||||
@@ -44,7 +44,7 @@ import org.bukkit.craftbukkit.util.DummyGeneratorAccess;
|
||||
|
||||
public class BlockComposter extends Block implements IInventoryHolder {
|
||||
|
||||
- public static final BlockStateInteger a = BlockProperties.as;
|
||||
+ public static final BlockStateInteger a = BlockProperties.as; public static BlockStateInteger level() { return BlockComposter.a; } // Purpur - OBFHELPER
|
||||
public static final Object2FloatMap<IMaterial> b = new Object2FloatOpenHashMap();
|
||||
private static final VoxelShape c = VoxelShapes.b();
|
||||
private static final VoxelShape[] d = (VoxelShape[]) SystemUtils.a((new VoxelShape[9]), (avoxelshape) -> { // CraftBukkit - decompile error
|
||||
@@ -203,6 +203,25 @@ public class BlockComposter extends Block implements IInventoryHolder {
|
||||
public static IBlockData a(IBlockData iblockdata, WorldServer worldserver, ItemStack itemstack, BlockPosition blockposition, Entity entity) { // CraftBukkit
|
||||
int i = (Integer) iblockdata.get(BlockComposter.a);
|
||||
|
||||
+ // Purpur start
|
||||
+ IBlockData newState = process(i, iblockdata, worldserver, itemstack, blockposition, entity);
|
||||
+
|
||||
+ if (worldserver.purpurConfig.composterBulkProcess && entity.isSneaking()) {
|
||||
+ IBlockData oldState;
|
||||
+ int oldCount, newCount, oldLevel, newLevel;
|
||||
+ do {
|
||||
+ oldState = newState;
|
||||
+ oldCount = itemstack.getCount();
|
||||
+ oldLevel = oldState.get(BlockComposter.level());
|
||||
+ newState = process(oldLevel, oldState, worldserver, itemstack, blockposition, entity);
|
||||
+ newCount = itemstack.getCount();
|
||||
+ newLevel = newState.get(BlockComposter.level());
|
||||
+ } while (newCount > 0 && (newCount != oldCount || newLevel != oldLevel || newState != oldState));
|
||||
+ }
|
||||
+ return newState;
|
||||
+ }
|
||||
+ private static IBlockData process(int i, IBlockData iblockdata, WorldServer worldserver, ItemStack itemstack, BlockPosition blockposition, Entity entity) {
|
||||
+ // Purpur end
|
||||
if (i < 7 && BlockComposter.b.containsKey(itemstack.getItem())) {
|
||||
// CraftBukkit start
|
||||
double rand = worldserver.getRandom().nextDouble();
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index e360409a15feeb793bd3b4be82f9eda89b5660d7..bb3c5d34b58ccf9bbaa1102e36b82a56f0dda7e3 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -502,6 +502,11 @@ public class PurpurWorldConfig {
|
||||
chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop);
|
||||
}
|
||||
|
||||
+ public boolean composterBulkProcess = false;
|
||||
+ private void composterSettings() {
|
||||
+ composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess);
|
||||
+ }
|
||||
+
|
||||
public boolean dispenserApplyCursedArmor = true;
|
||||
public boolean dispenserPlaceAnvils = false;
|
||||
private void dispenserSettings() {
|
||||
Reference in New Issue
Block a user