update paper

This commit is contained in:
William Blake Galbreath
2021-06-21 07:53:48 -05:00
parent df9b73cf73
commit 8ee573806f
22 changed files with 60 additions and 495 deletions

View File

@@ -1,7 +1,7 @@
group=net.pl3x.purpur group=net.pl3x.purpur
version=1.17-R0.1-SNAPSHOT version=1.17-R0.1-SNAPSHOT
packageVersion=1_17_R1 packageVersion=1_17_R1
paperCommit=e31ad11127e9971958ceb2d236a92b12f9892b25 paperCommit=47605b8e6035260be98c8650a736306a0a39258d
org.gradle.parallel=true org.gradle.parallel=true
org.gradle.jvmargs=-Xmx3G org.gradle.jvmargs=-Xmx3G

View File

@@ -6,22 +6,29 @@ Subject: [PATCH] Configurable permission message upgrades
This allows the configurable permission message in paper.yml to be blank and also support newlines This allows the configurable permission message in paper.yml to be blank and also support newlines
diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java
index c10fc8d2386301bc2caddcdb1cd18566bcaa8689..882c565ac2be3df976e7bbeb4dc80c9ac474a8b1 100644 index 1994f15831de1ca1bb7b4f52c23567825766d3f9..514efc8c79756a4ce7bc854586f9593af1d0180c 100644
--- a/src/main/java/org/bukkit/command/Command.java --- a/src/main/java/org/bukkit/command/Command.java
+++ b/src/main/java/org/bukkit/command/Command.java +++ b/src/main/java/org/bukkit/command/Command.java
@@ -184,9 +184,13 @@ public abstract class Command { @@ -184,17 +184,11 @@ public abstract class Command {
return true; return true;
} }
+ // Purpur start - if (permissionMessage == null) {
+ String permissionMessage = this.permissionMessage; - // Paper start
if (permissionMessage == null) { - String bukkitPermissionMessage = Bukkit.getPermissionMessage();
- target.sendMessage(Bukkit.getPermissionMessage()); // Paper - if (org.apache.commons.lang.StringUtils.isNotBlank(bukkitPermissionMessage)) {
- target.sendMessage(bukkitPermissionMessage);
- }
- // Paper end
- } else if (permissionMessage.length() != 0) { - } else if (permissionMessage.length() != 0) {
+ permissionMessage = Bukkit.getPermissionMessage(); - for (String line : permissionMessage.replace("<permission>", permission).split("\n")) {
+ } - target.sendMessage(line);
+ if (permissionMessage.length() != 0) { - }
+ // Purpur end + // Purpur start
for (String line : permissionMessage.replace("<permission>", permission).split("\n")) { + String msg = this.permissionMessage != null ? this.permissionMessage : Bukkit.getPermissionMessage();
target.sendMessage(line); + for (String line : msg.replace("<permission>", permission).split("\n")) {
} + if (org.apache.commons.lang.StringUtils.isNotBlank(line)) target.sendMessage(line);
+ //Purpur end
}
return false;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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) {

View File

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

View File

@@ -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() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Rebrand
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index 04938bb10c35d2e424043adb7ed8fec2e42bb816..4bcd8f006c94a82970be91cc58583b2261270567 100644 index f427c6f5adf20f9e1b1fa4ab56041506d8240c92..008c1a4af01a981bab96e5cf12d25fab3640d2ce 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -18,8 +18,8 @@ repositories { @@ -30,8 +30,8 @@ repositories {
} }
dependencies { dependencies {
@@ -19,7 +19,7 @@ index 04938bb10c35d2e424043adb7ed8fec2e42bb816..4bcd8f006c94a82970be91cc58583b22
// Paper start // Paper start
implementation("org.jline:jline-terminal-jansi:3.12.1") implementation("org.jline:jline-terminal-jansi:3.12.1")
implementation("net.minecrell:terminalconsoleappender:1.2.0") implementation("net.minecrell:terminalconsoleappender:1.2.0")
@@ -49,6 +49,7 @@ dependencies { @@ -61,6 +61,7 @@ dependencies {
implementation("co.aikar:cleaner:1.0-SNAPSHOT") // Paper implementation("co.aikar:cleaner:1.0-SNAPSHOT") // Paper
implementation("io.netty:netty-all:4.1.65.Final") // Paper implementation("io.netty:netty-all:4.1.65.Final") // Paper
@@ -27,7 +27,7 @@ index 04938bb10c35d2e424043adb7ed8fec2e42bb816..4bcd8f006c94a82970be91cc58583b22
implementation("com.github.oshi:oshi-core:5.7.5") // Paper - fix startup delay and warning implementation("com.github.oshi:oshi-core:5.7.5") // Paper - fix startup delay and warning
@@ -66,7 +67,7 @@ tasks.jar { @@ -80,7 +81,7 @@ tasks.jar {
attributes( attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main", "Main-Class" to "org.bukkit.craftbukkit.Main",
"Implementation-Title" to "CraftBukkit", "Implementation-Title" to "CraftBukkit",
@@ -36,7 +36,7 @@ index 04938bb10c35d2e424043adb7ed8fec2e42bb816..4bcd8f006c94a82970be91cc58583b22
"Implementation-Vendor" to SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(Date()), // Paper "Implementation-Vendor" to SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(Date()), // Paper
"Specification-Title" to "Bukkit", "Specification-Title" to "Bukkit",
"Specification-Version" to project.version, "Specification-Version" to project.version,
@@ -122,7 +123,7 @@ tasks.test { @@ -174,7 +175,7 @@ tasks.test {
fun TaskContainer.registerRunTask( fun TaskContainer.registerRunTask(
name: String, block: JavaExec.() -> Unit name: String, block: JavaExec.() -> Unit
): TaskProvider<JavaExec> = register<JavaExec>(name) { ): TaskProvider<JavaExec> = register<JavaExec>(name) {
@@ -229,7 +229,7 @@ index 0000000000000000000000000000000000000000..cabfcebf9f944f7a2a2a1cffc7401435
+ } + }
+} +}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 8a98bd1018afd934696fedbed24e271ab6b75f51..fccb85a34b799fd8ac85707e8fd43a08ae2b5fc4 100644 index 0bcb3b4f156221521e4a2289196a7bee0767f494..84370d90593d9fa75bb4ed0bf02b84b22ea439e9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -230,7 +230,7 @@ import javax.annotation.Nullable; // Paper @@ -230,7 +230,7 @@ import javax.annotation.Nullable; // Paper

View File

@@ -29,7 +29,7 @@ index 218f5bafeed8551b55b91c7fccaf6935c8b631ca..4d8740678049aa749b42618470e9cc83
metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> { metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> {
Map<String, Map<String, Integer>> map = new HashMap<>(); Map<String, Map<String, Integer>> map = new HashMap<>();
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index 7acf077bc131af718c7548cc29deef558c04e463..10126cb1c3efa2e6c84f20c0da701a131a5dd4cb 100644 index 73652e403eaa419fb5b4b54bd506f246c0aa4e99..90c8ec385f972ffea4ddb7a1b80e41db3be7c248 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -118,6 +118,11 @@ public class PaperConfig { @@ -118,6 +118,11 @@ public class PaperConfig {
@@ -100,10 +100,10 @@ index 674eccb7db4982adc28d6878ed8d5b28282b80b1..5fa2723c9899c69ac326f95acf49cd47
io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider
// Paper end // Paper end
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index af90013d48e2dd827e045e2fc0f7f5be0dbaa33f..a10df746ada5b8cdee6f5ccf90724142609841c6 100644 index 7e8c3073993cd4b143049882779427d4d104c6f3..9ec55832877773131333f45899af42ac9411f0cd 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3371,6 +3371,37 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n @@ -3373,6 +3373,37 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
return SlotAccess.NULL; return SlotAccess.NULL;
} }
@@ -142,7 +142,7 @@ index af90013d48e2dd827e045e2fc0f7f5be0dbaa33f..a10df746ada5b8cdee6f5ccf90724142
public void sendMessage(Component message, UUID sender) {} public void sendMessage(Component message, UUID sender) {}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 870ff060e34de4ec49ad5496e79c2bd543297c41..de649d73a636920f8b5e92820a8a618f188789e3 100644 index 9da5b7b54c91894b379d41fb8d2b24f7c1c9d96f..c664bd4ab5eb976fd9cdd241436c5c4c947fca08 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -166,6 +166,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -166,6 +166,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -435,7 +435,7 @@ index 0000000000000000000000000000000000000000..6e7f56fe2b78d7a09d5d130f2c88338f
+ } + }
+} +}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 92eb2dd977fbe00f7f2785e77f6d98c026bcbe2e..337bd4b47eab7c8b1d23c9bdeb7324f074191790 100644 index 84370d90593d9fa75bb4ed0bf02b84b22ea439e9..072d79be3e03d4563c6d67199f91e4fdcf4fcb17 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -875,6 +875,7 @@ public final class CraftServer implements Server { @@ -875,6 +875,7 @@ public final class CraftServer implements Server {

View File

@@ -46,7 +46,7 @@ index b3312fa2fd218ffcfaa61d98584003c97fbda4ce..f0b9ff60b6122473bc2f87f56a6d1909
return new Throwable(entity + " Added to world at " + new java.util.Date()); return new Throwable(entity + " Added to world at " + new java.util.Date());
} }
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 181ab56448796a617f30f1b9e0fec8917b5d8e07..952b6103fd417251e8a030bb574f79e69cfbbe10 100644 index 935b22199ebdf84db591f8442e0506d8fcc92e02..4ed4ca8e623784f12e2c7850e1c055f30a16e5ec 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -663,6 +663,15 @@ public class ServerPlayer extends Player { @@ -663,6 +663,15 @@ public class ServerPlayer extends Player {
@@ -73,7 +73,7 @@ index 181ab56448796a617f30f1b9e0fec8917b5d8e07..952b6103fd417251e8a030bb574f79e6
+ +
} }
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 7d2ac8aa97805e8b022d3982b1332c5055fc8b90..b98263dc5dcba1a5a8518c2f0acd2c9d3a8b6087 100644 index 0c295854f31422cf3ad699d229805c5881a65eed..359f8a37e625af463f898f72b8c30ff41f84c672 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2349,6 +2349,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -2349,6 +2349,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -86,7 +86,7 @@ index 7d2ac8aa97805e8b022d3982b1332c5055fc8b90..b98263dc5dcba1a5a8518c2f0acd2c9d
if ((entity instanceof AbstractFish && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { if ((entity instanceof AbstractFish && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
ServerGamePacketListenerImpl.this.send(new ClientboundAddMobPacket((AbstractFish) entity)); ServerGamePacketListenerImpl.this.send(new ClientboundAddMobPacket((AbstractFish) entity));
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index a10df746ada5b8cdee6f5ccf90724142609841c6..d59ec735b15b02c075f357ee616b821d2760f412 100644 index 9ec55832877773131333f45899af42ac9411f0cd..a79485e95a09c8f14b2de53d3904376c45ae0a5c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -230,7 +230,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n @@ -230,7 +230,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
@@ -107,7 +107,7 @@ index a10df746ada5b8cdee6f5ccf90724142609841c6..d59ec735b15b02c075f357ee616b821d
private float eyeHeight; private float eyeHeight;
public boolean isInPowderSnow; public boolean isInPowderSnow;
public boolean wasInPowderSnow; public boolean wasInPowderSnow;
@@ -2407,6 +2407,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n @@ -2409,6 +2409,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
this.passengers = ImmutableList.copyOf(list); this.passengers = ImmutableList.copyOf(list);
} }
@@ -120,7 +120,7 @@ index a10df746ada5b8cdee6f5ccf90724142609841c6..d59ec735b15b02c075f357ee616b821d
} }
return true; // CraftBukkit return true; // CraftBukkit
} }
@@ -2447,6 +2453,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n @@ -2449,6 +2455,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
return false; return false;
} }
// Spigot end // Spigot end
@@ -135,7 +135,7 @@ index a10df746ada5b8cdee6f5ccf90724142609841c6..d59ec735b15b02c075f357ee616b821d
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
this.passengers = ImmutableList.of(); this.passengers = ImmutableList.of();
} else { } else {
@@ -4013,4 +4027,41 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n @@ -4015,4 +4029,41 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
return ((ServerChunkCache) level.getChunkSource()).isPositionTicking(this); return ((ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
} }
// Paper end // Paper end
@@ -4463,7 +4463,7 @@ index c4f7c94255e4631a3c0355f9260132ba28296f50..d6c31596e21041a124a263054ccb6447
this.setTradingPlayer(player); this.setTradingPlayer(player);
this.openTradingScreen(player, this.getDisplayName(), 1); this.openTradingScreen(player, this.getDisplayName(), 1);
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index d286d88a3c3f93dbfa92de9421e320c92cd96350..c458710a2af40848d617149d97f51e7ae1165637 100644 index 1bccd932851045c374e3092d33dc77fab680d0db..deaf12324f740b5523179adfd5b9a437d263cb28 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -193,6 +193,19 @@ public abstract class Player extends LivingEntity { @@ -193,6 +193,19 @@ public abstract class Player extends LivingEntity {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add player death exp control options
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 721767812c765ac70c66f5445950c39167f344de..3fd54f7d0f3372d83ccd135db44870fbe926c026 100644 index ff5ce25e4207ce6d87a553c340d79c14c5750c25..d1a6e3f3538f1a09a5448011e7e02722e1252708 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -194,6 +194,8 @@ public abstract class Player extends LivingEntity { @@ -194,6 +194,8 @@ public abstract class Player extends LivingEntity {
@@ -17,7 +17,7 @@ index 721767812c765ac70c66f5445950c39167f344de..3fd54f7d0f3372d83ccd135db44870fb
public abstract void resetLastActionTime(); public abstract void resetLastActionTime();
public void setAfk(boolean afk) { public void setAfk(boolean afk) {
@@ -1899,9 +1901,18 @@ public abstract class Player extends LivingEntity { @@ -1904,9 +1906,18 @@ public abstract class Player extends LivingEntity {
@Override @Override
protected int getExperienceReward(Player player) { protected int getExperienceReward(Player player) {
if (!this.level.getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY) && !this.isSpectator()) { if (!this.level.getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY) && !this.isSpectator()) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index a663de350f315596806253c961544d1ebb682751..f226ea02e83246d8763e9b0587f986a6c148035b 100644 index aa3a7ffe65b5fef1977b42918a3b8e7a6f2a55ec..f3a979712e89cb11968a3f25f8001e6d1ceba4f0 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4064,5 +4064,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n @@ -4066,5 +4066,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
public boolean processClick(InteractionHand hand) { public boolean processClick(InteractionHand hand) {
return false; return false;
} }

View File

@@ -27,10 +27,10 @@ index 4fdb99240e6ebda946fd2e0a847654d92b7c56a1..e6dbe6e2d65aa4432f469910fd060649
return true; return true;
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index de649d73a636920f8b5e92820a8a618f188789e3..1f9129180badb6df786b080edf926d04ef95125c 100644 index c664bd4ab5eb976fd9cdd241436c5c4c947fca08..1fa4773cd86630ffb68be99a49f6ede49205cf59 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1381,4 +1381,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1380,4 +1380,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
} }
} }

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Allow color codes in books
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 88233e6bb9d3c690d12aa3adf7b5a4ea33ad1db2..3146734c26aa6e6834cfc91fdd143c01a9c96dc5 100644 index 461e80185d25529c367ede7df571fbff172f0384..b9cbbd3c69ef9e14905873f9e4ce3104026e5390 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1181,13 +1181,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -1181,13 +1181,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -58,7 +58,7 @@ index 88233e6bb9d3c690d12aa3adf7b5a4ea33ad1db2..3146734c26aa6e6834cfc91fdd143c01
if (!s.equals(s1)) { if (!s.equals(s1)) {
nbttagcompound.putString(String.valueOf(i), (String) unaryoperator.apply(s1)); nbttagcompound.putString(String.valueOf(i), (String) unaryoperator.apply(s1));
@@ -1231,6 +1237,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -1231,6 +1237,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
this.player.containerMenu.setItem(slot, CraftEventFactory.handleEditBookEvent(player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent)
} }
+ // Purpur start + // Purpur start

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index f226ea02e83246d8763e9b0587f986a6c148035b..238acdec48ee5524ecb7645252bec7613e286cf7 100644 index f3a979712e89cb11968a3f25f8001e6d1ceba4f0..a2c060948f99739664f4c3c4657ca628378fa5c6 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3638,11 +3638,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n @@ -3640,11 +3640,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
this.yRotO = this.getYRot(); this.yRotO = this.getYRot();
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Entities can use portals configuration
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 238acdec48ee5524ecb7645252bec7613e286cf7..98609a741b9a47417e7de1be4b972e2a398952e5 100644 index a2c060948f99739664f4c3c4657ca628378fa5c6..c443b850a512eae94d451521c5e9e0342aca2171 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2507,7 +2507,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n @@ -2509,7 +2509,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
public void handleInsidePortal(BlockPos pos) { public void handleInsidePortal(BlockPos pos) {
if (this.isOnPortalCooldown()) { if (this.isOnPortalCooldown()) {
this.setPortalCooldown(); this.setPortalCooldown();
@@ -17,7 +17,7 @@ index 238acdec48ee5524ecb7645252bec7613e286cf7..98609a741b9a47417e7de1be4b972e2a
if (!this.level.isClientSide && !pos.equals(this.portalEntrancePos)) { if (!this.level.isClientSide && !pos.equals(this.portalEntrancePos)) {
this.portalEntrancePos = pos.immutable(); this.portalEntrancePos = pos.immutable();
} }
@@ -3139,7 +3139,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n @@ -3141,7 +3141,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
} }
public boolean canChangeDimensions() { public boolean canChangeDimensions() {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add critical hit check to EntityDamagedByEntityEvent
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 3fd54f7d0f3372d83ccd135db44870fbe926c026..62540f8af27709976e109bd79975a9a5cd11c8d3 100644 index d1a6e3f3538f1a09a5448011e7e02722e1252708..328a9849bb601e1cc9fd31066c2313f9bdfa07b8 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -182,6 +182,7 @@ public abstract class Player extends LivingEntity { @@ -182,6 +182,7 @@ public abstract class Player extends LivingEntity {
@@ -16,7 +16,7 @@ index 3fd54f7d0f3372d83ccd135db44870fbe926c026..62540f8af27709976e109bd79975a9a5
// CraftBukkit start // CraftBukkit start
public boolean fauxSleeping; public boolean fauxSleeping;
@@ -1237,6 +1238,7 @@ public abstract class Player extends LivingEntity { @@ -1242,6 +1243,7 @@ public abstract class Player extends LivingEntity {
flag2 = flag2 && !level.paperConfig.disablePlayerCrits; // Paper flag2 = flag2 && !level.paperConfig.disablePlayerCrits; // Paper
flag2 = flag2 && !this.isSprinting(); flag2 = flag2 && !this.isSprinting();
if (flag2) { if (flag2) {
@@ -24,7 +24,7 @@ index 3fd54f7d0f3372d83ccd135db44870fbe926c026..62540f8af27709976e109bd79975a9a5
f *= 1.5F; f *= 1.5F;
} }
@@ -1273,6 +1275,7 @@ public abstract class Player extends LivingEntity { @@ -1278,6 +1280,7 @@ public abstract class Player extends LivingEntity {
Vec3 vec3d = target.getDeltaMovement(); Vec3 vec3d = target.getDeltaMovement();
boolean flag5 = target.hurt(DamageSource.playerAttack(this), f); boolean flag5 = target.hurt(DamageSource.playerAttack(this), f);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add MC-4 fix back
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 4717b3292bbbc5c1ee7246668b30e515caf48a80..6460b84214fc517d05e655001f4ef92943a8ca90 100644 index ff5b7c5f6cea71d541abf8a518aee347f2e00e85..e6d8a421b0e5496df9ea3fc01f88c2f3c6c527b4 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3836,7 +3836,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n @@ -3838,7 +3838,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
public final void setPosRaw(double x, double y, double z) { public final void setPosRaw(double x, double y, double z) {
// Paper start - fix MC-4 // Paper start - fix MC-4
if (this instanceof ItemEntity) { if (this instanceof ItemEntity) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Fix stuck in portals
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index c4ff2e17d032f20395bb8a42152d16de6287eff8..0ea925a190ec2400559bbdec9bccbaa850f2b83d 100644 index 820e1b059fedcc5fe4ccbec772594dddce71fecb..baefaa7bd81ef1fdec6f1b2a03c1a8bff42ce84c 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1136,6 +1136,7 @@ public class ServerPlayer extends Player { @@ -1136,6 +1136,7 @@ public class ServerPlayer extends Player {
@@ -17,10 +17,10 @@ index c4ff2e17d032f20395bb8a42152d16de6287eff8..0ea925a190ec2400559bbdec9bccbaa8
// CraftBukkit end // CraftBukkit end
this.setLevel(worldserver); this.setLevel(worldserver);
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 98f0728733e0bce5fe5a0e7b4ce1a42afd7c653e..bdd6bd6ddad0ead1f0887f83f0e47a03d0201575 100644 index e879f7bdee9c58533a549f22286ebb8a22a30442..92a1c059b248e14b16efbca7824d9a1a474b9f85 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2504,12 +2504,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n @@ -2506,12 +2506,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
return Vec3.directionFromRotation(this.getRotationVector()); return Vec3.directionFromRotation(this.getRotationVector());
} }