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
version=1.17-R0.1-SNAPSHOT
packageVersion=1_17_R1
paperCommit=e31ad11127e9971958ceb2d236a92b12f9892b25
paperCommit=47605b8e6035260be98c8650a736306a0a39258d
org.gradle.parallel=true
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
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
+++ 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;
}
+ // Purpur start
+ String permissionMessage = this.permissionMessage;
if (permissionMessage == null) {
- target.sendMessage(Bukkit.getPermissionMessage()); // Paper
- if (permissionMessage == null) {
- // Paper start
- String bukkitPermissionMessage = Bukkit.getPermissionMessage();
- if (org.apache.commons.lang.StringUtils.isNotBlank(bukkitPermissionMessage)) {
- target.sendMessage(bukkitPermissionMessage);
- }
- // Paper end
- } else if (permissionMessage.length() != 0) {
+ permissionMessage = Bukkit.getPermissionMessage();
+ }
+ if (permissionMessage.length() != 0) {
+ // Purpur end
for (String line : permissionMessage.replace("<permission>", permission).split("\n")) {
target.sendMessage(line);
}
- for (String line : permissionMessage.replace("<permission>", permission).split("\n")) {
- target.sendMessage(line);
- }
+ // Purpur start
+ String msg = this.permissionMessage != null ? this.permissionMessage : Bukkit.getPermissionMessage();
+ 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
index 04938bb10c35d2e424043adb7ed8fec2e42bb816..4bcd8f006c94a82970be91cc58583b2261270567 100644
index f427c6f5adf20f9e1b1fa4ab56041506d8240c92..008c1a4af01a981bab96e5cf12d25fab3640d2ce 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -18,8 +18,8 @@ repositories {
@@ -30,8 +30,8 @@ repositories {
}
dependencies {
@@ -19,7 +19,7 @@ index 04938bb10c35d2e424043adb7ed8fec2e42bb816..4bcd8f006c94a82970be91cc58583b22
// Paper start
implementation("org.jline:jline-terminal-jansi:3.12.1")
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("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
@@ -66,7 +67,7 @@ tasks.jar {
@@ -80,7 +81,7 @@ tasks.jar {
attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main",
"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
"Specification-Title" to "Bukkit",
"Specification-Version" to project.version,
@@ -122,7 +123,7 @@ tasks.test {
@@ -174,7 +175,7 @@ tasks.test {
fun TaskContainer.registerRunTask(
name: String, block: JavaExec.() -> Unit
): 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
index 8a98bd1018afd934696fedbed24e271ab6b75f51..fccb85a34b799fd8ac85707e8fd43a08ae2b5fc4 100644
index 0bcb3b4f156221521e4a2289196a7bee0767f494..84370d90593d9fa75bb4ed0bf02b84b22ea439e9 100644
--- a/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

View File

@@ -29,7 +29,7 @@ index 218f5bafeed8551b55b91c7fccaf6935c8b631ca..4d8740678049aa749b42618470e9cc83
metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> {
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
index 7acf077bc131af718c7548cc29deef558c04e463..10126cb1c3efa2e6c84f20c0da701a131a5dd4cb 100644
index 73652e403eaa419fb5b4b54bd506f246c0aa4e99..90c8ec385f972ffea4ddb7a1b80e41db3be7c248 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -118,6 +118,11 @@ public class PaperConfig {
@@ -100,10 +100,10 @@ index 674eccb7db4982adc28d6878ed8d5b28282b80b1..5fa2723c9899c69ac326f95acf49cd47
io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider
// Paper end
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
+++ 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;
}
@@ -142,7 +142,7 @@ index af90013d48e2dd827e045e2fc0f7f5be0dbaa33f..a10df746ada5b8cdee6f5ccf90724142
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
index 870ff060e34de4ec49ad5496e79c2bd543297c41..de649d73a636920f8b5e92820a8a618f188789e3 100644
index 9da5b7b54c91894b379d41fb8d2b24f7c1c9d96f..c664bd4ab5eb976fd9cdd241436c5c4c947fca08 100644
--- a/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 {
@@ -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
index 92eb2dd977fbe00f7f2785e77f6d98c026bcbe2e..337bd4b47eab7c8b1d23c9bdeb7324f074191790 100644
index 84370d90593d9fa75bb4ed0bf02b84b22ea439e9..072d79be3e03d4563c6d67199f91e4fdcf4fcb17 100644
--- a/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 {

View File

@@ -46,7 +46,7 @@ index b3312fa2fd218ffcfaa61d98584003c97fbda4ce..f0b9ff60b6122473bc2f87f56a6d1909
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
index 181ab56448796a617f30f1b9e0fec8917b5d8e07..952b6103fd417251e8a030bb574f79e69cfbbe10 100644
index 935b22199ebdf84db591f8442e0506d8fcc92e02..4ed4ca8e623784f12e2c7850e1c055f30a16e5ec 100644
--- a/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 {
@@ -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
index 7d2ac8aa97805e8b022d3982b1332c5055fc8b90..b98263dc5dcba1a5a8518c2f0acd2c9d3a8b6087 100644
index 0c295854f31422cf3ad699d229805c5881a65eed..359f8a37e625af463f898f72b8c30ff41f84c672 100644
--- a/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
@@ -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)) {
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
index a10df746ada5b8cdee6f5ccf90724142609841c6..d59ec735b15b02c075f357ee616b821d2760f412 100644
index 9ec55832877773131333f45899af42ac9411f0cd..a79485e95a09c8f14b2de53d3904376c45ae0a5c 100644
--- a/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
@@ -107,7 +107,7 @@ index a10df746ada5b8cdee6f5ccf90724142609841c6..d59ec735b15b02c075f357ee616b821d
private float eyeHeight;
public boolean isInPowderSnow;
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);
}
@@ -120,7 +120,7 @@ index a10df746ada5b8cdee6f5ccf90724142609841c6..d59ec735b15b02c075f357ee616b821d
}
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;
}
// Spigot end
@@ -135,7 +135,7 @@ index a10df746ada5b8cdee6f5ccf90724142609841c6..d59ec735b15b02c075f357ee616b821d
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
this.passengers = ImmutableList.of();
} 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);
}
// Paper end
@@ -4463,7 +4463,7 @@ index c4f7c94255e4631a3c0355f9260132ba28296f50..d6c31596e21041a124a263054ccb6447
this.setTradingPlayer(player);
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
index d286d88a3c3f93dbfa92de9421e320c92cd96350..c458710a2af40848d617149d97f51e7ae1165637 100644
index 1bccd932851045c374e3092d33dc77fab680d0db..deaf12324f740b5523179adfd5b9a437d263cb28 100644
--- a/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 {

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
index 721767812c765ac70c66f5445950c39167f344de..3fd54f7d0f3372d83ccd135db44870fbe926c026 100644
index ff5ce25e4207ce6d87a553c340d79c14c5750c25..d1a6e3f3538f1a09a5448011e7e02722e1252708 100644
--- a/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 {
@@ -17,7 +17,7 @@ index 721767812c765ac70c66f5445950c39167f344de..3fd54f7d0f3372d83ccd135db44870fb
public abstract void resetLastActionTime();
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
protected int getExperienceReward(Player player) {
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
index a663de350f315596806253c961544d1ebb682751..f226ea02e83246d8763e9b0587f986a6c148035b 100644
index aa3a7ffe65b5fef1977b42918a3b8e7a6f2a55ec..f3a979712e89cb11968a3f25f8001e6d1ceba4f0 100644
--- a/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) {
return false;
}

View File

@@ -27,10 +27,10 @@ index 4fdb99240e6ebda946fd2e0a847654d92b7c56a1..e6dbe6e2d65aa4432f469910fd060649
return true;
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
+++ 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
index 88233e6bb9d3c690d12aa3adf7b5a4ea33ad1db2..3146734c26aa6e6834cfc91fdd143c01a9c96dc5 100644
index 461e80185d25529c367ede7df571fbff172f0384..b9cbbd3c69ef9e14905873f9e4ce3104026e5390 100644
--- a/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
@@ -58,7 +58,7 @@ index 88233e6bb9d3c690d12aa3adf7b5a4ea33ad1db2..3146734c26aa6e6834cfc91fdd143c01
if (!s.equals(s1)) {
nbttagcompound.putString(String.valueOf(i), (String) unaryoperator.apply(s1));
@@ -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

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
index f226ea02e83246d8763e9b0587f986a6c148035b..238acdec48ee5524ecb7645252bec7613e286cf7 100644
index f3a979712e89cb11968a3f25f8001e6d1ceba4f0..a2c060948f99739664f4c3c4657ca628378fa5c6 100644
--- a/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();
}

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
index 238acdec48ee5524ecb7645252bec7613e286cf7..98609a741b9a47417e7de1be4b972e2a398952e5 100644
index a2c060948f99739664f4c3c4657ca628378fa5c6..c443b850a512eae94d451521c5e9e0342aca2171 100644
--- a/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) {
if (this.isOnPortalCooldown()) {
this.setPortalCooldown();
@@ -17,7 +17,7 @@ index 238acdec48ee5524ecb7645252bec7613e286cf7..98609a741b9a47417e7de1be4b972e2a
if (!this.level.isClientSide && !pos.equals(this.portalEntrancePos)) {
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() {

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
index 3fd54f7d0f3372d83ccd135db44870fbe926c026..62540f8af27709976e109bd79975a9a5cd11c8d3 100644
index d1a6e3f3538f1a09a5448011e7e02722e1252708..328a9849bb601e1cc9fd31066c2313f9bdfa07b8 100644
--- a/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 {
@@ -16,7 +16,7 @@ index 3fd54f7d0f3372d83ccd135db44870fbe926c026..62540f8af27709976e109bd79975a9a5
// CraftBukkit start
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 && !this.isSprinting();
if (flag2) {
@@ -24,7 +24,7 @@ index 3fd54f7d0f3372d83ccd135db44870fbe926c026..62540f8af27709976e109bd79975a9a5
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();
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
index 4717b3292bbbc5c1ee7246668b30e515caf48a80..6460b84214fc517d05e655001f4ef92943a8ca90 100644
index ff5b7c5f6cea71d541abf8a518aee347f2e00e85..e6d8a421b0e5496df9ea3fc01f88c2f3c6c527b4 100644
--- a/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) {
// Paper start - fix MC-4
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
index c4ff2e17d032f20395bb8a42152d16de6287eff8..0ea925a190ec2400559bbdec9bccbaa850f2b83d 100644
index 820e1b059fedcc5fe4ccbec772594dddce71fecb..baefaa7bd81ef1fdec6f1b2a03c1a8bff42ce84c 100644
--- a/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 {
@@ -17,10 +17,10 @@ index c4ff2e17d032f20395bb8a42152d16de6287eff8..0ea925a190ec2400559bbdec9bccbaa8
// CraftBukkit end
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
index 98f0728733e0bce5fe5a0e7b4ce1a42afd7c653e..bdd6bd6ddad0ead1f0887f83f0e47a03d0201575 100644
index e879f7bdee9c58533a549f22286ebb8a22a30442..92a1c059b248e14b16efbca7824d9a1a474b9f85 100644
--- a/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());
}