Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
a4880d8 Fix NPE from using wrong ProtoChunk ctor (#6147)
55d5c16 Updated Upstream (Bukkit/CraftBukkit/Spigot) (#6149)
70ea1b2 Fix command signs (#6139)
This commit is contained in:
William Blake Galbreath
2021-07-11 18:49:40 -05:00
parent 162d05fa3c
commit 4addfd51ac
15 changed files with 110 additions and 150 deletions

View File

@@ -4,7 +4,7 @@ version = 1.17.1-R0.1-SNAPSHOT
mcVersion = 1.17.1
packageVersion = 1_17_R1
paperCommit = d985976b3e152f21f5b11b8edbc265a80c07c202
paperCommit = 70ea1b2e2bdbe535751f614eaa0847c424e6711c
org.gradle.parallel = true
org.gradle.vfs.watch = false

View File

@@ -13110,26 +13110,26 @@ index 2f3e69ad809199ffc2661d524bb627ec8dbc2e80..0fcd6a9162f5bddb3c4fc42b3a64efde
if (flag2) {
packet1 = new ClientboundMoveEntityPacket.Pos(this.entity.getId(), (short) ((int) k), (short) ((int) l), (short) ((int) i1), this.entity.isOnGround());
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e1ff20a20 100644
index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b1ae84e16 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -115,6 +115,7 @@ import net.minecraft.world.level.block.EntityBlock;
import net.minecraft.world.level.block.entity.BlockEntity;
@@ -114,6 +114,7 @@ import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.entity.TickingBlockEntity;
import net.minecraft.world.level.block.state.BlockState;
+import net.minecraft.world.level.chunk.ChunkAccess;
import net.minecraft.world.level.chunk.ChunkGenerator;
import net.minecraft.world.level.chunk.LevelChunk;
import net.minecraft.world.level.chunk.LevelChunkSection;
@@ -165,6 +166,7 @@ import org.bukkit.event.server.MapInitializeEvent;
@@ -161,6 +162,7 @@ import org.bukkit.event.server.MapInitializeEvent;
import org.bukkit.event.weather.LightningStrikeEvent;
import org.bukkit.event.world.TimeSkipEvent;
// CraftBukkit end
+import it.unimi.dsi.fastutil.ints.IntArrayList; // Tuinity
public class ServerLevel extends net.minecraft.world.level.Level implements WorldGenLevel {
public class ServerLevel extends Level implements WorldGenLevel {
@@ -193,7 +195,9 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -189,7 +191,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
final Int2ObjectMap<EnderDragonPart> dragonParts;
private final StructureFeatureManager structureFeatureManager;
private final boolean tickTime;
@@ -13140,7 +13140,7 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
// CraftBukkit start
private int tickPosition;
@@ -304,6 +308,172 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -300,6 +304,172 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
}
// Paper end - rewrite ticklistserver
@@ -13312,8 +13312,8 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
+ // Tuinity end - optimise get nearest players for entity AI
// Add env and gen to constructor, WorldData -> WorldDataServer
public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, ServerLevelData iworlddataserver, ResourceKey<net.minecraft.world.level.Level> resourcekey, DimensionType dimensionmanager, ChunkProgressListener worldloadlistener, ChunkGenerator chunkgenerator, boolean flag, long i, List<CustomSpawner> list, boolean flag1, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen) {
@@ -351,7 +521,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, ServerLevelData iworlddataserver, ResourceKey<Level> resourcekey, DimensionType dimensionmanager, ChunkProgressListener worldloadlistener, ChunkGenerator chunkgenerator, boolean flag, long i, List<CustomSpawner> list, boolean flag1, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen) {
@@ -347,7 +517,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
DataFixer datafixer = minecraftserver.getFixerUpper();
EntityPersistentStorage<Entity> entitypersistentstorage = new EntityStorage(this, new File(convertable_conversionsession.getDimensionPath(resourcekey), "entities"), datafixer, flag2, minecraftserver);
@@ -13322,7 +13322,7 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
StructureManager definedstructuremanager = minecraftserver.getStructureManager();
int j = this.spigotConfig.viewDistance; // Spigot
PersistentEntitySectionManager persistententitysectionmanager = this.entityManager;
@@ -386,6 +556,10 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -382,6 +552,10 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.asyncChunkTaskManager = new com.destroystokyo.paper.io.chunk.ChunkTaskManager(this); // Paper
}
@@ -13330,10 +13330,10 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
+
+ // Tuinity end - optimise collision
+
// CraftBukkit start
@Override
public BlockEntity getTileEntity(BlockPos pos, boolean validate) {
@@ -439,6 +613,14 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
public void setWeatherParameters(int clearDuration, int rainDuration, boolean raining, boolean thundering) {
this.serverLevelData.setClearWeatherTime(clearDuration);
this.serverLevelData.setRainTime(rainDuration);
@@ -400,6 +574,14 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
public void tick(BooleanSupplier shouldKeepTicking) {
@@ -13348,7 +13348,7 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
ProfilerFiller gameprofilerfiller = this.getProfiler();
this.handlingTick = true;
@@ -584,7 +766,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -545,7 +727,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
timings.scheduledBlocks.stopTiming(); // Paper
@@ -13357,7 +13357,7 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
gameprofilerfiller.popPush("raid");
this.timings.raids.startTiming(); // Paper - timings
this.raids.tick();
@@ -597,7 +779,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -558,7 +740,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
timings.doSounds.startTiming(); // Spigot
this.runBlockEvents();
timings.doSounds.stopTiming(); // Spigot
@@ -13366,7 +13366,7 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
this.handlingTick = false;
gameprofilerfiller.pop();
boolean flag3 = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players
@@ -644,12 +826,12 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -605,12 +787,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
timings.entityTick.stopTiming(); // Spigot
timings.tickEntities.stopTiming(); // Spigot
gameprofilerfiller.pop();
@@ -13381,7 +13381,7 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
this.entityManager.tick();
gameprofilerfiller.pop();
}
@@ -694,6 +876,10 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -655,6 +837,10 @@ public class ServerLevel extends Level implements WorldGenLevel {
entityplayer.stopSleepInBed(false, false);
});
}
@@ -13392,7 +13392,7 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
public void tickChunk(LevelChunk chunk, int randomTickSpeed) {
ChunkPos chunkcoordintpair = chunk.getPos();
@@ -703,10 +889,10 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -664,10 +850,10 @@ public class ServerLevel extends Level implements WorldGenLevel {
ProfilerFiller gameprofilerfiller = this.getProfiler();
gameprofilerfiller.push("thunder");
@@ -13405,7 +13405,7 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
if (this.isRainingAt(blockposition)) {
DifficultyInstance difficultydamagescaler = this.getCurrentDifficultyAt(blockposition);
boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * paperConfig.skeleHorseSpawnChance && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper
@@ -729,64 +915,78 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -690,64 +876,78 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
gameprofilerfiller.popPush("iceandsnow");
@@ -13448,8 +13448,8 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
biomebase_precipitation = Biome.Precipitation.SNOW;
}
- iblockdata.getBlock().handlePrecipitation(iblockdata, (net.minecraft.world.level.Level) this, blockposition1, biomebase_precipitation);
+ iblockdata.getBlock().handlePrecipitation(iblockdata, (net.minecraft.world.level.Level) this, blockposition, biomebase_precipitation); // Paper
- iblockdata.getBlock().handlePrecipitation(iblockdata, (Level) this, blockposition1, biomebase_precipitation);
+ iblockdata.getBlock().handlePrecipitation(iblockdata, (Level) this, blockposition, biomebase_precipitation); // Paper
}
}
@@ -13516,7 +13516,7 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
timings.chunkTicksBlocks.stopTiming(); // Paper
gameprofilerfiller.pop();
}
@@ -912,7 +1112,27 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -873,7 +1073,27 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
@@ -13544,7 +13544,7 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
++TimingHistory.entityTicks; // Paper - timings
// Spigot start
co.aikar.timings.Timing timer; // Paper
@@ -953,7 +1173,13 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -914,7 +1134,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
// } finally { timer.stopTiming(); } // Paper - timings - move up
@@ -13559,9 +13559,9 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
}
private void tickPassenger(Entity vehicle, Entity passenger) {
@@ -1245,9 +1471,13 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -1206,9 +1432,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Spigot Start
for (BlockEntity tileentity : chunk.getBlockEntities().values()) {
for (net.minecraft.world.level.block.entity.BlockEntity tileentity : chunk.getBlockEntities().values()) {
if (tileentity instanceof net.minecraft.world.Container) {
+ // Tuinity start - this area looks like it can load chunks, change the behavior
+ // chests for example can apply physics to the world
@@ -13574,7 +13574,7 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
}
}
// Spigot End
@@ -1344,9 +1574,19 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -1305,9 +1535,19 @@ public class ServerLevel extends Level implements WorldGenLevel {
VoxelShape voxelshape1 = newState.getCollisionShape(this, pos);
if (Shapes.joinIsNotEmpty(voxelshape, voxelshape1, BooleanOp.NOT_SAME)) {
@@ -13596,7 +13596,7 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
// CraftBukkit start - fix SPIGOT-6362
Mob entityinsentient;
try {
@@ -1365,6 +1605,11 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -1326,6 +1566,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
navigationabstract.recomputePath(pos);
}
}
@@ -13608,7 +13608,7 @@ index 6ecf60c69a27f8db1c245db15449bba581c3dbf5..7642170bf5a0eaa11110238fa5cf1a7e
}
} // Paper
@@ -2146,10 +2391,12 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -2107,10 +2352,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
public void onTickingStart(Entity entity) {
ServerLevel.this.entityTickList.add(entity);
@@ -16242,7 +16242,7 @@ index 81b43e0b0146729a8a1c6ade82634c86cde67857..9d5e76877bc06b3318c817c40821a453
this.clazz = type;
this.name = name;
diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java
index 63203172a127d812fd59cea0546b67e855ce3ad5..498988b70617f086f047d8d293e525377971e66e 100644
index 8393950a0b38ec7897d7643803d5accdb1f983f3..c8d88bbf7e765ce69101c0b04b919c9cfb99a4e2 100644
--- a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java
+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java
@@ -1,5 +1,6 @@
@@ -16252,8 +16252,8 @@ index 63203172a127d812fd59cea0546b67e855ce3ad5..498988b70617f086f047d8d293e52537
import it.unimi.dsi.fastutil.shorts.ShortArrayList;
import it.unimi.dsi.fastutil.shorts.ShortList;
import java.util.Collection;
@@ -42,6 +43,36 @@ public interface ChunkAccess extends BlockGetter, FeatureAccess {
}
@@ -41,6 +42,36 @@ public interface ChunkAccess extends BlockGetter, FeatureAccess {
net.minecraft.world.level.Level getLevel();
// Paper end
+ // Tuinity start
@@ -16782,7 +16782,7 @@ index 554474d4b2e57d8a005b3c3b9b23f32a62243058..ebeb3e3b0619b034a9681da999e9ac33
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java
index 78bd3274866fed3d627a3eda7b96b92716507d38..ccdadf5d7c07d74f5bea94fc21784114b6d520da 100644
index 7dc3d806a680150c6a2fffa1436fd63bbdc31eb3..f6d05372f592a3b7619ad6989630c140ffd4f03b 100644
--- a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java
@@ -1,5 +1,7 @@
@@ -16793,9 +16793,9 @@ index 78bd3274866fed3d627a3eda7b96b92716507d38..ccdadf5d7c07d74f5bea94fc21784114
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
@@ -65,6 +67,53 @@ public class ProtoChunk implements ChunkAccess {
private volatile boolean isLightCorrect;
final net.minecraft.world.level.Level level; // Paper - Add level
@@ -72,6 +74,53 @@ public class ProtoChunk implements ChunkAccess {
// Paper end
private static boolean PRINTED_OUTDATED_CTOR_MSG = false; // Paper - Add level
+ // Tuinity start - rewrite light engine
+ protected volatile SWMRNibbleArray[] blockNibbles;
@@ -16844,12 +16844,12 @@ index 78bd3274866fed3d627a3eda7b96b92716507d38..ccdadf5d7c07d74f5bea94fc21784114
+ }
+ // Tuinity end - rewrite light engine
+
// Paper start - add level
@Deprecated public ProtoChunk(ChunkPos pos, UpgradeData upgradeData, LevelHeightAccessor world) { this(pos, upgradeData, world, null); }
public ProtoChunk(ChunkPos pos, UpgradeData upgradeData, LevelHeightAccessor world, net.minecraft.server.level.ServerLevel level) {
@@ -79,6 +128,10 @@ public class ProtoChunk implements ChunkAccess {
// Paper start - add level
@Deprecated public ProtoChunk(ChunkPos pos, UpgradeData upgradeData, @Nullable LevelChunkSection[] levelChunkSections, ProtoTickList<Block> blockTickScheduler, ProtoTickList<Fluid> fluidTickScheduler, LevelHeightAccessor world) { this(pos, upgradeData, levelChunkSections, blockTickScheduler, fluidTickScheduler, world, null); }
@Deprecated // Paper start - add level
public ProtoChunk(ChunkPos pos, UpgradeData upgradeData, LevelHeightAccessor world) {
// Paper start
@@ -100,6 +149,10 @@ public class ProtoChunk implements ChunkAccess {
}
}
public ProtoChunk(ChunkPos pos, UpgradeData upgradeData, @Nullable LevelChunkSection[] levelChunkSections, ProtoTickList<Block> blockTickScheduler, ProtoTickList<Fluid> fluidTickScheduler, LevelHeightAccessor world, net.minecraft.server.level.ServerLevel level) {
+ // Tuinity start
+ this.blockNibbles = StarLightEngine.getFilledEmptyLight(world);
@@ -16858,7 +16858,7 @@ index 78bd3274866fed3d627a3eda7b96b92716507d38..ccdadf5d7c07d74f5bea94fc21784114
this.level = level;
// Paper end
this.chunkPos = pos;
@@ -176,7 +229,7 @@ public class ProtoChunk implements ChunkAccess {
@@ -197,7 +250,7 @@ public class ProtoChunk implements ChunkAccess {
LevelChunkSection levelChunkSection = this.getOrCreateSection(l);
BlockState blockState = levelChunkSection.setBlockState(i & 15, j & 15, k & 15, state);
@@ -18602,7 +18602,7 @@ index 40d6dfe30e8f388fb2014ba81f9ea4a986354b88..9de4b1c9402e78c661b4d2dc7d70439e
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index c79b193ad822b8c246f24a87cd418892bc18ff5a..4342bc5aad49fe372d561296a6b63818a443d089 100644
index dd435909ad16a7f732fd0a2056f986dd9b24c0d5..f243dbdf7673c06b0e2d36fe9af43234a5304ed6 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
@@ -18808,10 +18808,10 @@ index c3c7b34ceb1b8f0ed042b29924c633fa7519dc30..c59deadcfbfd5afbf951a167979a4ece
//Thread.sleep(TimeUnit.SECONDS.toMillis(20));
// Paper End
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 8246ad7ebecdfc0b7519fe4412fef7b07407e850..c0a508295d2e68d92ec8d24e14f9b7626911f548 100644
index 3acb5f8a1f863b5ba47eac4190be8228324fc8e7..68cacecde84a592839b738723fb0b73fcb958080 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -517,27 +517,36 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -519,27 +519,36 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
this.entity.setYHeadRot(yaw);
}

View File

@@ -34,10 +34,10 @@ index be1bc7fda4104d61f91c2815c6ba3c612a019bed..2ede76a55c72840d915ed282609b1ca1
this.profiler.push(() -> {
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 7642170bf5a0eaa11110238fa5cf1a7e1ff20a20..d575fcc1aae45c810c21fd8c112e3e63cdaf7d71 100644
index 8207f0fd2c0b5cd60d02714108eab47b1ae84e16..e1b1e88cc383c99e701f5a661a98d29db031aba7 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -205,6 +205,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -201,6 +201,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
public final UUID uuid;
public boolean hasPhysicsEvent = true; // Paper
public boolean hasEntityMoveEvent = false; // Paper
@@ -201,7 +201,7 @@ index d28cecd9bea7c82fa675d333810e2e63a91c615e..8f8bc29d847801938e251904b8334b4b
protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 027898e97667081840562547653d4adaeae01dda..31c5ac568042150d89572daecd1e22ceb6dc69aa 100644
index 24c629d5f26bc5aadebcf39a63930b3448525242..28139fd78e7dfb703e941a46bd18e0236d58fe22 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -220,9 +220,9 @@ public abstract class LivingEntity extends Entity {
@@ -2517,7 +2517,7 @@ index 29aa428e019681af8d6b0020c12b18660ff6af6c..5df112f87fba042f13f615a22a5c6f85
this.dragonFight.updateDragon(this);
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 6e3bd5146c687922e7b4680d59a1ae2d1480ad40..9d879d85d6ca7d1163b05f15bb13baeeb59eea5b 100644
index bb329e9c1a2295e6433d3728692a1e716c89dcc0..fdc9068de403e98e18af11d4d6c5b708d2cc3c52 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -83,6 +83,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -3710,10 +3710,10 @@ index 2459ae800a5f6b234a4f4bb1cd3738e4e9cac67d..e66cc79dc61721b31ffb743f68f4388c
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
index fcec4120113de6c403892b38f077593b3b90d10c..55c09358766b2e7e871d9922b42e6e6b4157dab6 100644
index abb64887fdcfac824e3d0868c3d473e028354766..1451aeab8e9046f9620214ed74369a8bb1cd6d59 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
@@ -23,6 +23,18 @@ public class Skeleton extends AbstractSkeleton {
@@ -25,6 +25,18 @@ public class Skeleton extends AbstractSkeleton {
super(type, world);
}
@@ -3857,7 +3857,7 @@ index e1a593b464c35f68b22e84a09f99ee72af73da32..25ce1910a03947ce070b318f57379f0d
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java
index e5679823786f2579f93a93a5ae08ab7ae42b390c..49e91abc7b78f88125f558f869f7619d36efdd04 100644
index a8162116eb888106e6f48ee836d0cc5d33b72399..5874d86ca34200e9ce7d41cf7a80eb0f1f13410c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
@@ -51,14 +51,28 @@ public class Spider extends Monster {
@@ -4128,7 +4128,7 @@ index 8c3e8c12d7405ad388342e304430834a5fad12a9..e70fb661c62add74cdbe9fc9ef1e3143
this.targetSelector.addGoal(2, this.healRaidersGoal);
this.targetSelector.addGoal(3, this.attackPlayersGoal);
diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
index 033d6389e4b7d986fc63abd67e325b68a6132824..dd32e62de68243cf40f6df882922fd71bd1f4d67 100644
index f9bc07be70fae9aced51a69bccb5eda309187a47..4cea4ba127dc036ce5d585323a25bbcf06bd46a6 100644
--- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -34,6 +34,18 @@ public class WitherSkeleton extends AbstractSkeleton {
@@ -5718,10 +5718,10 @@ index 0000000000000000000000000000000000000000..8eefb7b7eb33aecf48ac206d3f0139e0
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index c0a508295d2e68d92ec8d24e14f9b7626911f548..edc08af4ec2ce6e90c30da286c0ba5ac16efd3fc 100644
index 68cacecde84a592839b738723fb0b73fcb958080..52760eabb45c8d2a3db4056ef219e7ea5cf8d954 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1216,4 +1216,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -1234,4 +1234,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return getHandle().isTicking();
}
// Paper end

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 081506649de3929becd448664e2c5b0d7b4859fc..a43c95abc8f6d0226ca097495ed9aeab0649d02b 100644
index e47673d410936068ceff8b757050cc6c8a15816c..1d6e063e1cf5435b123d5789d7fcf03503cc0821 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -150,7 +150,7 @@ import org.bukkit.plugin.PluginManager;
@@ -34,7 +34,7 @@ index 8f8bc29d847801938e251904b8334b4b31bd21c5..87d01bebbb179eec53323e9e23db011a
@Override
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 911a6f63e8ffeacc95fa49cdf99140c1ce3d06b1..ecc06c084625c24b9ac8045b1d53e75dfffbdea5 100644
index 28139fd78e7dfb703e941a46bd18e0236d58fe22..cecffa5879f386e99ccd27386f90074aef0b72fe 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -288,6 +288,7 @@ public abstract class LivingEntity extends Entity {
@@ -427,7 +427,7 @@ index 5f61fcffebf4d853711a38d1f315f3def25e31a7..fcd3166a7c818ef089ccf2a687596bef
public static String getPredefinedName(int variant) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
index c86f13d190b41cb18dd833af39c7b4916068fd69..31568adcf4a89b11e61f455a15326c7f72bf487e 100644
index 631539a752a038926355c23aeb160af64f363a61..66c01b8300bc09ace27e4d1a30ee9274c69fcc9a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -100,6 +100,11 @@ public class Turtle extends Animal {
@@ -735,7 +735,7 @@ index 5df112f87fba042f13f615a22a5c6f850b779bf7..d3caa18f5de2d96eae691655dd13e83f
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 9d879d85d6ca7d1163b05f15bb13baeeb59eea5b..2f33897a74ff2bd629b4ffacc4a1e1e0cd6b7987 100644
index fdc9068de403e98e18af11d4d6c5b708d2cc3c52..f52420f27f51d9dbf214f96a0530c0f17f2bc5fc 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -196,6 +196,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -1083,10 +1083,10 @@ index e66cc79dc61721b31ffb743f68f4388cc499a92d..0d60d6352294fadc1a26579a712b01cf
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
index 55c09358766b2e7e871d9922b42e6e6b4157dab6..a36c78054cb70d310d9bb21c849e05b588aca8de 100644
index 1451aeab8e9046f9620214ed74369a8bb1cd6d59..864bb800499c6b1b47b4e556350615cfab7253dd 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
@@ -33,6 +33,11 @@ public class Skeleton extends AbstractSkeleton {
@@ -35,6 +35,11 @@ public class Skeleton extends AbstractSkeleton {
public boolean rideableUnderWater() {
return level.purpurConfig.skeletonRidableInWater;
}
@@ -1143,7 +1143,7 @@ index 25ce1910a03947ce070b318f57379f0da5ac5db8..7a9654a365a968592d706a13fb46615e
this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue((double) j);
if (heal) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java
index 49e91abc7b78f88125f558f869f7619d36efdd04..653486b09c67988a0047e5e19647919bc503acc8 100644
index 5874d86ca34200e9ce7d41cf7a80eb0f1f13410c..7ed31ccc9fbb3960f9de24d5893f7fa1f86ab4b8 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
@@ -61,6 +61,11 @@ public class Spider extends Monster {
@@ -1239,7 +1239,7 @@ index e70fb661c62add74cdbe9fc9ef1e3143e96333b2..0876224d15b7b08954ab4348f942d2aa
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
index dd32e62de68243cf40f6df882922fd71bd1f4d67..8212ee2cc1242c0a3626f3643c455f3be0de18c2 100644
index 4cea4ba127dc036ce5d585323a25bbcf06bd46a6..16d7266c32f5aa5cb980bf07d9d92c41c6405a2f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -44,6 +44,11 @@ public class WitherSkeleton extends AbstractSkeleton {
@@ -1390,7 +1390,7 @@ index d01a8fe6dd5c84ea5b7370a90c0d57130b27e447..9e66f8f2a92cb7b32cdb2cf749ca2737
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 32ae046d573d5625fdb44b690d1e7e229f8aff08..b7b25813aa00a49fd83edfbade27fa03d7fcd7c5 100644
index f0f1f16971e9a0678afdccf6dcd92d8967c35346..1b70179dfd085c0d8ec3ee18af6d0528673ca4df 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -170,6 +170,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler

View File

@@ -5,42 +5,28 @@ Subject: [PATCH] Zombie horse naturally spawn
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index d575fcc1aae45c810c21fd8c112e3e63cdaf7d71..50639af3813578669ce039dc44d827df1196d723 100644
index e1b1e88cc383c99e701f5a661a98d29db031aba7..f3a6b6713843e4b600440c8845fe10938920869b 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -87,6 +87,7 @@ import net.minecraft.world.entity.ai.village.poi.PoiManager;
import net.minecraft.world.entity.ai.village.poi.PoiType;
import net.minecraft.world.entity.animal.Animal;
import net.minecraft.world.entity.animal.WaterAnimal;
+import net.minecraft.world.entity.animal.horse.AbstractHorse;
import net.minecraft.world.entity.animal.horse.SkeletonHorse;
import net.minecraft.world.entity.boss.EnderDragonPart;
import net.minecraft.world.entity.boss.enderdragon.EnderDragon;
@@ -899,12 +900,18 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -860,9 +860,15 @@ public class ServerLevel extends Level implements WorldGenLevel {
boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * paperConfig.skeleHorseSpawnChance && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper
if (flag1) {
- SkeletonHorse entityhorseskeleton = (SkeletonHorse) EntityType.SKELETON_HORSE.create((net.minecraft.world.level.Level) this);
- SkeletonHorse entityhorseskeleton = (SkeletonHorse) EntityType.SKELETON_HORSE.create((Level) this);
-
- entityhorseskeleton.setTrap(true);
- entityhorseskeleton.setAge(0);
- entityhorseskeleton.setPos((double) blockposition.getX(), (double) blockposition.getY(), (double) blockposition.getZ());
- this.addEntity(entityhorseskeleton, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit
+ // Purpur start
+ AbstractHorse horse;
+ net.minecraft.world.entity.animal.horse.AbstractHorse entityhorseskeleton = EntityType.SKELETON_HORSE.create(this);
+ if (purpurConfig.zombieHorseSpawnChance > 0D && random.nextDouble() <= purpurConfig.zombieHorseSpawnChance) {
+ horse = EntityType.ZOMBIE_HORSE.create(this);
+ entityhorseskeleton = EntityType.ZOMBIE_HORSE.create(this);
+ } else {
+ horse = EntityType.SKELETON_HORSE.create(this);
+ ((SkeletonHorse) horse).setTrap(true);
+ entityhorseskeleton = EntityType.SKELETON_HORSE.create(this);
+ ((SkeletonHorse) entityhorseskeleton).setTrap(true);
+ }
+ horse.setAge(0);
+ horse.setPos(blockposition.getX(), blockposition.getY(), blockposition.getZ());
+ this.addEntity(horse, CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit
+ // Purpur end
}
LightningBolt entitylightning = (LightningBolt) EntityType.LIGHTNING_BOLT.create((net.minecraft.world.level.Level) this);
entityhorseskeleton.setAge(0);
entityhorseskeleton.setPos((double) blockposition.getX(), (double) blockposition.getY(), (double) blockposition.getZ());
this.addEntity(entityhorseskeleton, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index ce9aff038bf3f2451923a456c47998876fd3a8c8..4c45a692a62fd451718c72ce031552bcd0261048 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java

View File

@@ -43,10 +43,10 @@ index f4e4ca801a585b8c0335cc3c59f1278d1c108f2b..0be0d27e2534fccf0f8ff828476e2a06
SignChangeEvent event = new SignChangeEvent((org.bukkit.craftbukkit.block.CraftBlock) player.getWorld().getBlockAt(x, y, z), this.player.getBukkitEntity(), lines);
this.cserver.getPluginManager().callEvent(event);
diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
index 171fea79d3a7c282e473b0fbb46254e3cd9c7aa9..ccbfed191a59e839fb5eae2c338de3b2fd70005e 100644
index 344d3a8c1162f1a4ab5fc2b7676680ddace46649..156a153abe59f86db7f942155d8a21de2fd83ce2 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
@@ -180,6 +180,22 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C
@@ -181,6 +181,22 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C
return filtered ? this.filteredMessages : this.messages;
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add no-random-tick block list
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 50639af3813578669ce039dc44d827df1196d723..db54cb97296d6c2b2d893dca87cea5bd35eeb0db 100644
index f3a6b6713843e4b600440c8845fe10938920869b..f0c4a16d9b95bc64c1c43154b2bff9a36885ec77 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -488,7 +488,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -483,7 +483,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.players = Lists.newArrayList();
this.entityTickList = new EntityTickList();
Predicate<Block> predicate = (block) -> { // CraftBukkit - decompile eror

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Allow toggling special MobSpawners per world
In vanilla, these are all hardcoded on for world type 0 (overworld) and hardcoded off for every other world type. Default config behaviour matches this.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index db54cb97296d6c2b2d893dca87cea5bd35eeb0db..98af132fd4a03afb016a05fd004ffe3e1d5cd957 100644
index f0c4a16d9b95bc64c1c43154b2bff9a36885ec77..bfbcdaa117fd8860aa3e287a7e311f2f3bb42281 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -83,6 +83,7 @@ import net.minecraft.world.entity.MobCategory;
@@ -17,7 +17,7 @@ index db54cb97296d6c2b2d893dca87cea5bd35eeb0db..98af132fd4a03afb016a05fd004ffe3e
import net.minecraft.world.entity.ai.village.poi.PoiManager;
import net.minecraft.world.entity.ai.village.poi.PoiType;
import net.minecraft.world.entity.animal.Animal;
@@ -91,7 +92,9 @@ import net.minecraft.world.entity.animal.horse.AbstractHorse;
@@ -90,7 +91,9 @@ import net.minecraft.world.entity.animal.WaterAnimal;
import net.minecraft.world.entity.animal.horse.SkeletonHorse;
import net.minecraft.world.entity.boss.EnderDragonPart;
import net.minecraft.world.entity.boss.enderdragon.EnderDragon;
@@ -27,7 +27,7 @@ index db54cb97296d6c2b2d893dca87cea5bd35eeb0db..98af132fd4a03afb016a05fd004ffe3e
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.raid.Raid;
import net.minecraft.world.entity.raid.Raids;
@@ -133,6 +136,8 @@ import net.minecraft.world.level.gameevent.GameEvent;
@@ -131,6 +134,8 @@ import net.minecraft.world.level.gameevent.GameEvent;
import net.minecraft.world.level.gameevent.GameEventListenerRegistrar;
import net.minecraft.world.level.gameevent.vibrations.VibrationPath;
import net.minecraft.world.level.levelgen.Heightmap;
@@ -36,7 +36,7 @@ index db54cb97296d6c2b2d893dca87cea5bd35eeb0db..98af132fd4a03afb016a05fd004ffe3e
import net.minecraft.world.level.levelgen.feature.StructureFeature;
import net.minecraft.world.level.levelgen.structure.BoundingBox;
import net.minecraft.world.level.levelgen.structure.StructureStart;
@@ -511,7 +516,24 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -506,7 +511,24 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.dragonParts = new Int2ObjectOpenHashMap();
this.tickTime = flag1;
this.server = minecraftserver;

View File

@@ -18,10 +18,10 @@ index 689ad22925b2561f7c8db961743eb1f821dbb25f..fa3c960992cc240161817e54659d83fe
public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) {
this.gameTime = time % 192000; // Paper - fix guardian beam
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 98af132fd4a03afb016a05fd004ffe3e1d5cd957..f15da84c0e5f9ab67c4d9ec59ee37de35df76f5c 100644
index bfbcdaa117fd8860aa3e287a7e311f2f3bb42281..6a5d2cb99cb4793ef165bfdaf521eb468c447834 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -201,6 +201,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -196,6 +196,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
final Int2ObjectMap<EnderDragonPart> dragonParts;
private final StructureFeatureManager structureFeatureManager;
private final boolean tickTime;
@@ -29,7 +29,7 @@ index 98af132fd4a03afb016a05fd004ffe3e1d5cd957..f15da84c0e5f9ab67c4d9ec59ee37de3
// Tuinity start - execute chunk tasks mid tick
public long lastMidTickExecuteFailure;
// Tuinity end - execute chunk tasks mid tick
@@ -578,6 +579,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -573,6 +574,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.getCraftServer().addWorld(this.getWorld()); // CraftBukkit
this.asyncChunkTaskManager = new com.destroystokyo.paper.io.chunk.ChunkTaskManager(this); // Paper
@@ -37,7 +37,7 @@ index 98af132fd4a03afb016a05fd004ffe3e1d5cd957..f15da84c0e5f9ab67c4d9ec59ee37de3
}
// Tuinity start - optimise collision
@@ -869,6 +871,18 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -829,6 +831,18 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.liquidTicks.nextTick(); // Paper
this.serverLevelData.getScheduledEvents().tick(this.server, i);
if (this.levelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) {
@@ -56,7 +56,7 @@ index 98af132fd4a03afb016a05fd004ffe3e1d5cd957..f15da84c0e5f9ab67c4d9ec59ee37de3
this.setDayTime(this.levelData.getDayTime() + 1L);
}
@@ -877,6 +891,12 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -837,6 +851,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
public void setDayTime(long timeOfDay) {
this.serverLevelData.setDayTime(timeOfDay);

View File

@@ -98,10 +98,10 @@ index d1ad1f384ae289dd516cbe27e611c66d70ba4853..e1b8d150f952d2b80ad37caeb273f60c
noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove);
persistentTileEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-tileentity-display-names-and-lore", persistentTileEntityDisplayNames);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index edc08af4ec2ce6e90c30da286c0ba5ac16efd3fc..3a92c0112befe51e795f81b1fce52e1f083f6373 100644
index 52760eabb45c8d2a3db4056ef219e7ea5cf8d954..53fc3c278624d8c1d2f8bee6df27315d08875300 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -559,6 +559,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -561,6 +561,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
location.checkFinite();
if (this.entity.isVehicle() || this.entity.isRemoved()) {

View File

@@ -17,10 +17,10 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 3a92c0112befe51e795f81b1fce52e1f083f6373..1035e023003521574a09fdea3fd08e5fca66d8fc 100644
index 53fc3c278624d8c1d2f8bee6df27315d08875300..d79de006a0e636a23419b5be86911d16447f8891 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1242,5 +1242,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -1260,5 +1260,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public boolean isRidableInWater() {
return getHandle().rideableUnderWater();
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Config for skipping night
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index f15da84c0e5f9ab67c4d9ec59ee37de35df76f5c..bd32872ef404f90a078e02ec434cac547c5eef75 100644
index 6a5d2cb99cb4793ef165bfdaf521eb468c447834..d682f0b69757b0f4e3120066e25170264ba1f289 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -761,7 +761,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -721,7 +721,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// CraftBukkit end
i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);

View File

@@ -333,10 +333,10 @@ index 7eed6c176345c766a99d4304d61d28354291960f..40f2fd62b1d36843c5539932d2fb2496
// Paper end
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 1035e023003521574a09fdea3fd08e5fca66d8fc..7484f9c13e41f9be305134595b7052dfff4d72c3 100644
index d79de006a0e636a23419b5be86911d16447f8891..f2ffdb1f515546243dcd388e1bbc43158520d3eb 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1249,5 +1249,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -1267,5 +1267,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
entity.absMoveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
return !entity.valid && entity.level.addEntity(entity, spawnReason);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Make lightning rod range configurable
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index bd32872ef404f90a078e02ec434cac547c5eef75..bfcd0def5ed81c8579f7fbbbb580797439c4cfc5 100644
index d682f0b69757b0f4e3120066e25170264ba1f289..cee1f74edf069da54d15b7fc7d10c437afa47b2a 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1046,7 +1046,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -1006,7 +1006,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
return villageplacetype == PoiType.LIGHTNING_ROD;
}, (blockposition1) -> {
return blockposition1.getY() == this.getLevel().getHeight(Heightmap.Types.WORLD_SURFACE, blockposition1.getX(), blockposition1.getZ()) - 1;

View File

@@ -5,36 +5,10 @@ Subject: [PATCH] Customizable sleeping actionbar messages
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index bfcd0def5ed81c8579f7fbbbb580797439c4cfc5..4d921ac4d064b02416e43bba93b70406ff0417eb 100644
index cee1f74edf069da54d15b7fc7d10c437afa47b2a..92b1709b96fe1e8d71e4de675e4c11f5c3f1469e 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -4,6 +4,7 @@ import com.google.common.annotations.VisibleForTesting;
import co.aikar.timings.TimingHistory; // Paper
import com.google.common.collect.Lists;
import com.mojang.datafixers.DataFixer;
+import io.papermc.paper.adventure.PaperAdventure;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import it.unimi.dsi.fastutil.longs.LongSet;
@@ -34,6 +35,9 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+
+import net.kyori.adventure.text.minimessage.MiniMessage;
+import net.kyori.adventure.text.minimessage.Template;
import net.minecraft.CrashReport;
import net.minecraft.core.BlockPos;
import net.minecraft.core.DefaultedRegistry;
@@ -158,6 +162,7 @@ import net.minecraft.world.phys.Vec3;
import net.minecraft.world.phys.shapes.BooleanOp;
import net.minecraft.world.phys.shapes.Shapes;
import net.minecraft.world.phys.shapes.VoxelShape;
+import net.pl3x.purpur.PurpurConfig;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -1089,11 +1094,29 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
@@ -1049,11 +1049,29 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (this.canSleepThroughNights()) {
if (!this.getServer().isSingleplayer() || this.getServer().isPublished()) {
int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
@@ -43,23 +17,23 @@ index bfcd0def5ed81c8579f7fbbbb580797439c4cfc5..4d921ac4d064b02416e43bba93b70406
if (this.sleepStatus.areEnoughSleeping(i)) {
+ // Purpur start
+ if (PurpurConfig.sleepSkippingNight.isBlank()) {
+ if (net.pl3x.purpur.PurpurConfig.sleepSkippingNight.isBlank()) {
+ return;
+ }
+ if (!PurpurConfig.sleepSkippingNight.equalsIgnoreCase("default")) {
+ chatmessage = PaperAdventure.asVanilla(MiniMessage.get().parse(PurpurConfig.sleepSkippingNight));
+ if (!net.pl3x.purpur.PurpurConfig.sleepSkippingNight.equalsIgnoreCase("default")) {
+ chatmessage = io.papermc.paper.adventure.PaperAdventure.asVanilla(net.kyori.adventure.text.minimessage.MiniMessage.get().parse(net.pl3x.purpur.PurpurConfig.sleepSkippingNight));
+ } else
+ // Purpur
+ // Purpur end
chatmessage = new TranslatableComponent("sleep.skipping_night");
} else {
+ // Purpur start
+ if (PurpurConfig.sleepingPlayersPercent.isBlank()) {
+ if (net.pl3x.purpur.PurpurConfig.sleepingPlayersPercent.isBlank()) {
+ return;
+ }
+ if (!PurpurConfig.sleepingPlayersPercent.equalsIgnoreCase("default")) {
+ chatmessage = PaperAdventure.asVanilla(MiniMessage.get().parse(PurpurConfig.sleepingPlayersPercent,
+ Template.of("count", Integer.toString(this.sleepStatus.amountSleeping())),
+ Template.of("total", Integer.toString(this.sleepStatus.sleepersNeeded(i)))));
+ if (!net.pl3x.purpur.PurpurConfig.sleepingPlayersPercent.equalsIgnoreCase("default")) {
+ chatmessage = io.papermc.paper.adventure.PaperAdventure.asVanilla(net.kyori.adventure.text.minimessage.MiniMessage.get().parse(net.pl3x.purpur.PurpurConfig.sleepingPlayersPercent,
+ net.kyori.adventure.text.minimessage.Template.of("count", Integer.toString(this.sleepStatus.amountSleeping())),
+ net.kyori.adventure.text.minimessage.Template.of("total", Integer.toString(this.sleepStatus.sleepersNeeded(i)))));
+ } else
+ // Purpur end
chatmessage = new TranslatableComponent("sleep.players_sleeping", new Object[]{this.sleepStatus.amountSleeping(), this.sleepStatus.sleepersNeeded(i)});