mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-20 09:57:43 +01:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: 840e72091 [CI-SKIP] [Auto] Rebuild Patches a33232d4a Add beacon activation and deactivation events (#5121) bc7ea673a Add internal channel initialization listeners (#5557) b28ad17ac Check for world change in MoveEvent API methods 3095c7592 [Auto] Updated Upstream (CraftBukkit) f56989c97 Add RespawnFlags to PlayerRespawnEvent (#5533) 7579c2667 Add more API to PlayerMoveEvent (#5553)
This commit is contained in:
101
patches/server/0118-Configurable-daylight-cycle.patch
Normal file
101
patches/server/0118-Configurable-daylight-cycle.patch
Normal file
@@ -0,0 +1,101 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sat, 10 Oct 2020 14:29:55 -0500
|
||||
Subject: [PATCH] Configurable daylight cycle
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutUpdateTime.java b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutUpdateTime.java
|
||||
index 3086ee023685781d94e2fb99fc8dff5264f01165..74c1047305cac5673e274096709c757ede4605f4 100644
|
||||
--- a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutUpdateTime.java
|
||||
+++ b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutUpdateTime.java
|
||||
@@ -7,7 +7,7 @@ import net.minecraft.network.protocol.Packet;
|
||||
public class PacketPlayOutUpdateTime implements Packet<PacketListenerPlayOut> {
|
||||
|
||||
private long a; private final void setWorldAge(final long age) { this.a = age; } private final long getWorldAge() { return this.a; } // Paper - OBFHELPER
|
||||
- private long b;
|
||||
+ private long b; public void setPlayerTime(long time) { this.b = time; } // Purpur
|
||||
|
||||
public PacketPlayOutUpdateTime() {}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
index 64feabfb860ac29a7f7692bcc9972369dbdc2e02..028911ebe843751080564d90e96306524e5a2e21 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
@@ -64,6 +64,7 @@ import net.minecraft.network.protocol.game.PacketPlayOutExplosion;
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutGameStateChange;
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutNamedSoundEffect;
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutSpawnPosition;
|
||||
+import net.minecraft.network.protocol.game.PacketPlayOutUpdateTime;
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutWorldEvent;
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutWorldParticles;
|
||||
import net.minecraft.resources.MinecraftKey;
|
||||
@@ -213,6 +214,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
private final EnderDragonBattle dragonBattle;
|
||||
private final StructureManager structureManager;
|
||||
private final boolean Q;
|
||||
+ private double fakeTime; // Purpur
|
||||
|
||||
|
||||
// CraftBukkit start
|
||||
@@ -604,6 +606,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
this.getServer().addWorld(this.getWorld()); // CraftBukkit
|
||||
|
||||
this.asyncChunkTaskManager = new com.destroystokyo.paper.io.chunk.ChunkTaskManager(this); // Paper
|
||||
+ this.fakeTime = this.worldDataServer.getDayTime(); // Purpur
|
||||
}
|
||||
|
||||
// Tuinity start - optimise collision
|
||||
@@ -1211,7 +1214,21 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
this.nextTickListBlock.nextTick(); // Paper
|
||||
this.nextTickListFluid.nextTick(); // Paper
|
||||
this.worldDataServer.u().a(this.server, i);
|
||||
- if (this.worldData.q().getBoolean(GameRules.DO_DAYLIGHT_CYCLE)) {
|
||||
+ // Purpur start
|
||||
+ WorldServer world = this.worldDataServer.world;
|
||||
+ if (world.getGameRules().getBoolean(GameRules.DO_DAYLIGHT_CYCLE)) {
|
||||
+ double incrementTimeBy = 12000.0D / (double) (world.isDay() ? world.purpurConfig.daytimeTicks : world.purpurConfig.nighttimeTicks);
|
||||
+ if (incrementTimeBy != 1.0D) {
|
||||
+ this.fakeTime += incrementTimeBy;
|
||||
+ this.setDayTime(this.fakeTime);
|
||||
+ PacketPlayOutUpdateTime packet = new PacketPlayOutUpdateTime(world.getTime(), world.getDayTime(), true);
|
||||
+ for (EntityHuman entityhuman : world.players) {
|
||||
+ EntityPlayer player = (EntityPlayer) entityhuman;
|
||||
+ packet.setPlayerTime(player.getPlayerTime());
|
||||
+ player.playerConnection.sendPacket(packet);
|
||||
+ }
|
||||
+ } else
|
||||
+ // Purpur end
|
||||
this.setDayTime(this.worldData.getDayTime() + 1L);
|
||||
}
|
||||
|
||||
@@ -1220,6 +1237,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
|
||||
public void setDayTime(long i) {
|
||||
this.worldDataServer.setDayTime(i);
|
||||
+ // Purpur start
|
||||
+ this.fakeTime = i;
|
||||
+ }
|
||||
+ public void setDayTime(double i) {
|
||||
+ this.worldDataServer.setDayTime((long) i);
|
||||
+ // Purpur end
|
||||
}
|
||||
|
||||
public void doMobSpawning(boolean flag, boolean flag1) {
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index b8929df319ccb260b0f8fc841c9665c6aa2548eb..fb694fd7be60dc9ae7305b4a03a767b6ae169778 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -150,6 +150,13 @@ public class PurpurWorldConfig {
|
||||
}
|
||||
}
|
||||
|
||||
+ public int daytimeTicks = 12000;
|
||||
+ public int nighttimeTicks = 12000;
|
||||
+ private void daytimeCycleSettings() {
|
||||
+ daytimeTicks = getInt("gameplay-mechanics.daylight-cycle-ticks.daytime", daytimeTicks);
|
||||
+ nighttimeTicks = getInt("gameplay-mechanics.daylight-cycle-ticks.nighttime", nighttimeTicks);
|
||||
+ }
|
||||
+
|
||||
public int entityLifeSpan = 0;
|
||||
private void entitySettings() {
|
||||
entityLifeSpan = getInt("gameplay-mechanics.entity-lifespan", entityLifeSpan);
|
||||
Reference in New Issue
Block a user