mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 15:00:13 +01:00
[ci skip] Move some disruptive patches back
This commit is contained in:
parent
5dec86e71c
commit
e433c8696b
16 changed files with 55 additions and 87 deletions
|
@ -40,9 +40,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
this.worldData.setDataConfiguration(worlddataconfiguration);
|
this.worldData.setDataConfiguration(worlddataconfiguration);
|
||||||
this.resources.managers.updateRegistryTags(this.registryAccess());
|
this.resources.managers.updateRegistryTags(this.registryAccess());
|
||||||
+ net.minecraft.world.item.alchemy.PotionBrewing.reload(); // Paper - Custom Potion Mixes
|
+ net.minecraft.world.item.alchemy.PotionBrewing.reload(); // Paper - Custom Potion Mixes
|
||||||
// Paper start
|
this.getPlayerList().saveAll();
|
||||||
if (Thread.currentThread() != this.serverThread) {
|
this.getPlayerList().reloadResources();
|
||||||
return;
|
this.functionManager.replaceLibrary(this.resources.managers.getFunctionLibrary());
|
||||||
diff --git a/src/main/java/net/minecraft/world/inventory/BrewingStandMenu.java b/src/main/java/net/minecraft/world/inventory/BrewingStandMenu.java
|
diff --git a/src/main/java/net/minecraft/world/inventory/BrewingStandMenu.java b/src/main/java/net/minecraft/world/inventory/BrewingStandMenu.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/net/minecraft/world/inventory/BrewingStandMenu.java
|
--- a/src/main/java/net/minecraft/world/inventory/BrewingStandMenu.java
|
||||||
|
|
|
@ -15,9 +15,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -0,0 +0,0 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
|
|
||||||
|
public boolean updatingSectionStatus = false;
|
||||||
// Paper end
|
// Paper end
|
||||||
// Paper start - optimise entity tracking
|
|
||||||
final org.spigotmc.TrackingRange.TrackingRangeType trackingRangeType = org.spigotmc.TrackingRange.getTrackingRangeType(this);
|
|
||||||
+ // Paper start - make end portalling safe
|
+ // Paper start - make end portalling safe
|
||||||
+ public BlockPos portalBlock;
|
+ public BlockPos portalBlock;
|
||||||
+ public ServerLevel portalWorld;
|
+ public ServerLevel portalWorld;
|
||||||
|
@ -42,15 +42,15 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ event.callEvent();
|
+ event.callEvent();
|
||||||
+
|
+
|
||||||
+ if (this instanceof ServerPlayer) {
|
+ if (this instanceof ServerPlayer) {
|
||||||
+ ((ServerPlayer)this).changeDimension(worldserver, PlayerTeleportEvent.TeleportCause.END_PORTAL);
|
+ ((ServerPlayer) this).changeDimension(worldserver, PlayerTeleportEvent.TeleportCause.END_PORTAL);
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
+ this.teleportTo(worldserver, null);
|
+ this.teleportTo(worldserver, null);
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end - make end portalling safe
|
+ // Paper end - make end portalling safe
|
||||||
|
|
||||||
public boolean isLegacyTrackingEntity = false;
|
public Entity(EntityType<?> type, Level world) {
|
||||||
|
this.id = Entity.ENTITY_COUNTER.incrementAndGet();
|
||||||
@@ -0,0 +0,0 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -0,0 +0,0 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,13 +41,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
net.minecrell.terminalconsole.TerminalConsoleAppender.close(); // Paper - Use TerminalConsoleAppender
|
} catch (Exception ignored) {
|
||||||
} catch (Exception e) {
|
}
|
||||||
}
|
// CraftBukkit end
|
||||||
+ io.papermc.paper.log.CustomLogManager.forceReset(); // Paper - Reset loggers after shutdown
|
+ io.papermc.paper.log.CustomLogManager.forceReset(); // Paper - Reset loggers after shutdown
|
||||||
this.onServerExit();
|
this.onServerExit();
|
||||||
// Paper end - move final shutdown items here
|
}
|
||||||
}
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
|
|
|
@ -67,7 +67,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end - Fix sticky pistons and BlockPistonRetractEvent
|
+ // Paper end - Fix sticky pistons and BlockPistonRetractEvent
|
||||||
world.setBlock(pos, iblockdata2, 20);
|
world.setBlock(pos, iblockdata2, 20);
|
||||||
world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true)); // Paper - Protect Bedrock and End Portal/Frames from being destroyed; diff on change
|
world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true));
|
||||||
world.blockUpdated(pos, iblockdata2.getBlock());
|
world.blockUpdated(pos, iblockdata2.getBlock());
|
||||||
@@ -0,0 +0,0 @@ public class PistonBaseBlock extends DirectionalBlock {
|
@@ -0,0 +0,0 @@ public class PistonBaseBlock extends DirectionalBlock {
|
||||||
if (type == 1 && !iblockdata3.isAir() && PistonBaseBlock.isPushable(iblockdata3, world, blockposition1, enumdirection.getOpposite(), false, enumdirection) && (iblockdata3.getPistonPushReaction() == PushReaction.NORMAL || iblockdata3.is(Blocks.PISTON) || iblockdata3.is(Blocks.STICKY_PISTON))) {
|
if (type == 1 && !iblockdata3.isAir() && PistonBaseBlock.isPushable(iblockdata3, world, blockposition1, enumdirection.getOpposite(), false, enumdirection) && (iblockdata3.getPistonPushReaction() == PushReaction.NORMAL || iblockdata3.is(Blocks.PISTON) || iblockdata3.is(Blocks.STICKY_PISTON))) {
|
||||||
|
|
|
@ -747,38 +747,12 @@ diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java b/src/ma
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java
|
--- a/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java
|
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class Goal {
|
|
||||||
private final EnumSet<Goal.Flag> flags = EnumSet.noneOf(Goal.Flag.class); // Paper unused, but dummy to prevent plugins from crashing as hard. Theyll need to support paper in a special case if this is super important, but really doesn't seem like it would be.
|
|
||||||
private final com.destroystokyo.paper.util.set.OptimizedSmallEnumSet<net.minecraft.world.entity.ai.goal.Goal.Flag> goalTypes = new com.destroystokyo.paper.util.set.OptimizedSmallEnumSet<>(Goal.Flag.class); // Paper - remove streams from pathfindergoalselector
|
|
||||||
|
|
||||||
+ // Paper start - Mob goal API; make sure goaltypes is never empty
|
|
||||||
+ public Goal() {
|
|
||||||
+ if (this.goalTypes.size() == 0) {
|
|
||||||
+ this.goalTypes.addUnchecked(Flag.UNKNOWN_BEHAVIOR);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ // Paper end - Mob goal API
|
|
||||||
+
|
|
||||||
public abstract boolean canUse();
|
|
||||||
|
|
||||||
public boolean canContinueToUse() {
|
|
||||||
@@ -0,0 +0,0 @@ public abstract class Goal {
|
|
||||||
// Paper start - remove streams from pathfindergoalselector
|
|
||||||
this.goalTypes.clear();
|
|
||||||
this.goalTypes.addAllUnchecked(controls);
|
|
||||||
+ // make sure its never empty
|
|
||||||
+ if (this.goalTypes.size() == 0) {
|
|
||||||
+ this.goalTypes.addUnchecked(Flag.UNKNOWN_BEHAVIOR);
|
|
||||||
+ }
|
|
||||||
// Paper end - remove streams from pathfindergoalselector
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public abstract class Goal {
|
@@ -0,0 +0,0 @@ public abstract class Goal {
|
||||||
return Mth.positiveCeilDiv(serverTicks, 2);
|
return Mth.positiveCeilDiv(serverTicks, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
+ // Paper start - Mob goal api
|
+ // Paper start - Mob goal api
|
||||||
+ private com.destroystokyo.paper.entity.ai.PaperVanillaGoal<?> vanillaGoal = null;
|
+ private com.destroystokyo.paper.entity.ai.PaperVanillaGoal<?> vanillaGoal;
|
||||||
+ public <T extends org.bukkit.entity.Mob> com.destroystokyo.paper.entity.ai.Goal<T> asPaperVanillaGoal() {
|
+ public <T extends org.bukkit.entity.Mob> com.destroystokyo.paper.entity.ai.Goal<T> asPaperVanillaGoal() {
|
||||||
+ if(this.vanillaGoal == null) {
|
+ if(this.vanillaGoal == null) {
|
||||||
+ this.vanillaGoal = new com.destroystokyo.paper.entity.ai.PaperVanillaGoal<>(this);
|
+ this.vanillaGoal = new com.destroystokyo.paper.entity.ai.PaperVanillaGoal<>(this);
|
||||||
|
|
|
@ -84,8 +84,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
// Spigot start
|
// Spigot start
|
||||||
public static final int TPS = 20;
|
public static final int TPS = 20;
|
||||||
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; // Paper - add paper configuration files
|
|
||||||
public static long currentTickLong = 0L; // Paper - track current tick as a long
|
public static long currentTickLong = 0L; // Paper - track current tick as a long
|
||||||
|
public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
||||||
|
|
||||||
+ public volatile Thread shutdownThread; // Paper
|
+ public volatile Thread shutdownThread; // Paper
|
||||||
+ public volatile boolean abnormalExit = false; // Paper
|
+ public volatile boolean abnormalExit = false; // Paper
|
||||||
|
@ -94,17 +94,17 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
AtomicReference<S> atomicreference = new AtomicReference();
|
AtomicReference<S> atomicreference = new AtomicReference();
|
||||||
Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system
|
Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system
|
||||||
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
private boolean hasStopped = false;
|
private boolean hasStopped = false;
|
||||||
|
private boolean hasLoggedStop = false; // Paper - Debugging
|
||||||
+ public volatile boolean hasFullyShutdown = false; // Paper
|
+ public volatile boolean hasFullyShutdown = false; // Paper
|
||||||
private final Object stopLock = new Object();
|
private final Object stopLock = new Object();
|
||||||
public final boolean hasStopped() {
|
public final boolean hasStopped() {
|
||||||
synchronized (this.stopLock) {
|
synchronized (this.stopLock) {
|
||||||
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
if (this.hasStopped) return;
|
|
||||||
this.hasStopped = true;
|
this.hasStopped = true;
|
||||||
}
|
}
|
||||||
|
if (!hasLoggedStop && isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
|
||||||
+ // Paper start - kill main thread, and kill it hard
|
+ // Paper start - kill main thread, and kill it hard
|
||||||
+ shutdownThread = Thread.currentThread();
|
+ shutdownThread = Thread.currentThread();
|
||||||
+ org.spigotmc.WatchdogThread.doStop(); // Paper
|
+ org.spigotmc.WatchdogThread.doStop(); // Paper
|
||||||
|
@ -137,6 +137,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ net.minecrell.terminalconsole.TerminalConsoleAppender.close(); // Paper - Use TerminalConsoleAppender
|
+ net.minecrell.terminalconsole.TerminalConsoleAppender.close(); // Paper - Use TerminalConsoleAppender
|
||||||
+ } catch (Exception e) {
|
+ } catch (Exception e) {
|
||||||
+ }
|
+ }
|
||||||
|
+ io.papermc.paper.log.CustomLogManager.forceReset(); // Paper - Reset loggers after shutdown
|
||||||
+ this.onServerExit();
|
+ this.onServerExit();
|
||||||
+ // Paper end - move final shutdown items here
|
+ // Paper end - move final shutdown items here
|
||||||
}
|
}
|
||||||
|
@ -195,7 +196,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
- io.papermc.paper.log.CustomLogManager.forceReset(); // Paper - Reset loggers after shutdown
|
||||||
- this.onServerExit();
|
- this.onServerExit();
|
||||||
|
+ //io.papermc.paper.log.CustomLogManager.forceReset(); // Paper - Reset loggers after shutdown
|
||||||
+ //this.onServerExit(); // Paper - moved into stop
|
+ //this.onServerExit(); // Paper - moved into stop
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -214,9 +217,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
|
||||||
this.worldData.setDataConfiguration(worlddataconfiguration);
|
this.worldData.setDataConfiguration(worlddataconfiguration);
|
||||||
this.resources.managers.updateRegistryTags(this.registryAccess());
|
this.resources.managers.updateRegistryTags(this.registryAccess());
|
||||||
|
net.minecraft.world.item.alchemy.PotionBrewing.reload(); // Paper - Custom Potion Mixes
|
||||||
- this.getPlayerList().saveAll();
|
- this.getPlayerList().saveAll();
|
||||||
+ // Paper start
|
+ // Paper start
|
||||||
+ if (Thread.currentThread() != this.serverThread) {
|
+ if (Thread.currentThread() != this.serverThread) {
|
||||||
|
@ -241,7 +244,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
- DedicatedServer.LOGGER.info("Done ({})! For help, type \"help\"", s);
|
- DedicatedServer.LOGGER.info("Done ({})! For help, type \"help\"", s);
|
||||||
+ //DedicatedServer.LOGGER.info("Done ({})! For help, type \"help\"", s); // Paper moved to after init
|
+ //DedicatedServer.LOGGER.info("Done ({})! For help, type \"help\"", s); // Paper moved to after init
|
||||||
if (dedicatedserverproperties.announcePlayerAchievements != null) {
|
if (dedicatedserverproperties.announcePlayerAchievements != null) {
|
||||||
((GameRules.BooleanValue) this.getGameRules().getRule(GameRules.RULE_ANNOUNCE_ADVANCEMENTS)).set(dedicatedserverproperties.announcePlayerAchievements, this);
|
((GameRules.BooleanValue) this.getGameRules().getRule(GameRules.RULE_ANNOUNCE_ADVANCEMENTS)).set(dedicatedserverproperties.announcePlayerAchievements, null); // Paper - Pass ServerLevel for gamerule callbacks
|
||||||
}
|
}
|
||||||
@@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
// this.remoteStatusListener.stop(); // Paper - don't wait for remote connections
|
// this.remoteStatusListener.stop(); // Paper - don't wait for remote connections
|
||||||
|
@ -398,6 +401,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ tryPreloadClass(net.minecraft.world.level.lighting.LayerLightEventListener.DummyLightLayerEventListener.class.getName());
|
+ tryPreloadClass(net.minecraft.world.level.lighting.LayerLightEventListener.DummyLightLayerEventListener.class.getName());
|
||||||
+ tryPreloadClass(net.minecraft.world.level.lighting.LayerLightEventListener.class.getName());
|
+ tryPreloadClass(net.minecraft.world.level.lighting.LayerLightEventListener.class.getName());
|
||||||
+ tryPreloadClass(net.minecraft.util.ExceptionCollector.class.getName());
|
+ tryPreloadClass(net.minecraft.util.ExceptionCollector.class.getName());
|
||||||
|
+ tryPreloadClass(io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.PlayerChunkLoaderData.class.getName());
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
|
|
|
@ -12,12 +12,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
|
||||||
public volatile Thread shutdownThread; // Paper
|
public volatile Thread shutdownThread; // Paper
|
||||||
public volatile boolean abnormalExit = false; // Paper
|
public volatile boolean abnormalExit = false; // Paper
|
||||||
public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
+ public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
|
||||||
+ // Paper start - lag compensation
|
|
||||||
+ public static final long SERVER_INIT = System.nanoTime();
|
|
||||||
+ // Paper end - lag compensation
|
|
||||||
|
|
||||||
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
|
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
|
||||||
AtomicReference<S> atomicreference = new AtomicReference();
|
AtomicReference<S> atomicreference = new AtomicReference();
|
||||||
|
|
|
@ -17,6 +17,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
- private final EnumSet<Goal.Flag> flags = EnumSet.noneOf(Goal.Flag.class);
|
- private final EnumSet<Goal.Flag> flags = EnumSet.noneOf(Goal.Flag.class);
|
||||||
+ private final EnumSet<Goal.Flag> flags = EnumSet.noneOf(Goal.Flag.class); // Paper unused, but dummy to prevent plugins from crashing as hard. Theyll need to support paper in a special case if this is super important, but really doesn't seem like it would be.
|
+ private final EnumSet<Goal.Flag> flags = EnumSet.noneOf(Goal.Flag.class); // Paper unused, but dummy to prevent plugins from crashing as hard. Theyll need to support paper in a special case if this is super important, but really doesn't seem like it would be.
|
||||||
+ private final com.destroystokyo.paper.util.set.OptimizedSmallEnumSet<net.minecraft.world.entity.ai.goal.Goal.Flag> goalTypes = new com.destroystokyo.paper.util.set.OptimizedSmallEnumSet<>(Goal.Flag.class); // Paper - remove streams from pathfindergoalselector
|
+ private final com.destroystokyo.paper.util.set.OptimizedSmallEnumSet<net.minecraft.world.entity.ai.goal.Goal.Flag> goalTypes = new com.destroystokyo.paper.util.set.OptimizedSmallEnumSet<>(Goal.Flag.class); // Paper - remove streams from pathfindergoalselector
|
||||||
|
+
|
||||||
|
+ // Paper start - remove streams from pathfindergoalselector; make sure types are not empty
|
||||||
|
+ public Goal() {
|
||||||
|
+ if (this.goalTypes.size() == 0) {
|
||||||
|
+ this.goalTypes.addUnchecked(Flag.UNKNOWN_BEHAVIOR);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ // Paper end - remove streams from pathfindergoalselector
|
||||||
|
|
||||||
public abstract boolean canUse();
|
public abstract boolean canUse();
|
||||||
|
|
||||||
|
@ -29,6 +37,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ // Paper start - remove streams from pathfindergoalselector
|
+ // Paper start - remove streams from pathfindergoalselector
|
||||||
+ this.goalTypes.clear();
|
+ this.goalTypes.clear();
|
||||||
+ this.goalTypes.addAllUnchecked(controls);
|
+ this.goalTypes.addAllUnchecked(controls);
|
||||||
|
+ if (this.goalTypes.size() == 0) {
|
||||||
|
+ this.goalTypes.addUnchecked(Flag.UNKNOWN_BEHAVIOR);
|
||||||
|
+ }
|
||||||
+ // Paper end - remove streams from pathfindergoalselector
|
+ // Paper end - remove streams from pathfindergoalselector
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
@@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
|
|
||||||
//DedicatedServer.LOGGER.info("Done ({})! For help, type \"help\"", s); // Paper moved to after init
|
DedicatedServer.LOGGER.info("Done ({})! For help, type \"help\"", s);
|
||||||
if (dedicatedserverproperties.announcePlayerAchievements != null) {
|
if (dedicatedserverproperties.announcePlayerAchievements != null) {
|
||||||
- ((GameRules.BooleanValue) this.getGameRules().getRule(GameRules.RULE_ANNOUNCE_ADVANCEMENTS)).set(dedicatedserverproperties.announcePlayerAchievements, this);
|
- ((GameRules.BooleanValue) this.getGameRules().getRule(GameRules.RULE_ANNOUNCE_ADVANCEMENTS)).set(dedicatedserverproperties.announcePlayerAchievements, this);
|
||||||
+ ((GameRules.BooleanValue) this.getGameRules().getRule(GameRules.RULE_ANNOUNCE_ADVANCEMENTS)).set(dedicatedserverproperties.announcePlayerAchievements, null); // Paper - Pass ServerLevel for gamerule callbacks
|
+ ((GameRules.BooleanValue) this.getGameRules().getRule(GameRules.RULE_ANNOUNCE_ADVANCEMENTS)).set(dedicatedserverproperties.announcePlayerAchievements, null); // Paper - Pass ServerLevel for gamerule callbacks
|
||||||
|
|
|
@ -81,8 +81,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
|
|
||||||
if (!world.isClientSide) {
|
if (!world.isClientSide) {
|
||||||
@@ -0,0 +0,0 @@ public class PistonBaseBlock extends DirectionalBlock {
|
@@ -0,0 +0,0 @@ public class PistonBaseBlock extends DirectionalBlock {
|
||||||
BlockState iblockdata2 = (BlockState) ((BlockState) Blocks.MOVING_PISTON.defaultBlockState().setValue(MovingPistonBlock.FACING, enumdirection)).setValue(MovingPistonBlock.TYPE, this.isSticky ? PistonType.STICKY : PistonType.DEFAULT);
|
}
|
||||||
|
// Paper end - Fix sticky pistons and BlockPistonRetractEvent
|
||||||
world.setBlock(pos, iblockdata2, 20);
|
world.setBlock(pos, iblockdata2, 20);
|
||||||
- world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true));
|
- world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true));
|
||||||
+ world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true)); // Paper - Protect Bedrock and End Portal/Frames from being destroyed; diff on change
|
+ world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true)); // Paper - Protect Bedrock and End Portal/Frames from being destroyed; diff on change
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Shane Freeder <theboyetronic@gmail.com>
|
|
||||||
Date: Sun, 18 Jun 2023 13:48:11 +0100
|
|
||||||
Subject: [PATCH] Temp: Pre-init PlayerChunkLoaderData in order to prepopulate
|
|
||||||
the BFS lookup cache because potatos
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
||||||
@@ -0,0 +0,0 @@ public class Main {
|
|
||||||
tryPreloadClass(net.minecraft.world.level.lighting.LayerLightEventListener.DummyLightLayerEventListener.class.getName());
|
|
||||||
tryPreloadClass(net.minecraft.world.level.lighting.LayerLightEventListener.class.getName());
|
|
||||||
tryPreloadClass(net.minecraft.util.ExceptionCollector.class.getName());
|
|
||||||
+ tryPreloadClass(io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.PlayerChunkLoaderData.class.getName()); // Paper - Prepopulate BFS lookup for potatos
|
|
||||||
// Paper end
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -11,9 +11,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
// Spigot end
|
||||||
public volatile Thread shutdownThread; // Paper
|
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; // Paper - add paper configuration files
|
||||||
public volatile boolean abnormalExit = false; // Paper
|
public static long currentTickLong = 0L; // Paper - track current tick as a long
|
||||||
+ public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
+ public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
||||||
|
|
||||||
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
|
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
|
||||||
|
|
|
@ -248,9 +248,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
@@ -0,0 +0,0 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -0,0 +0,0 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
|
this.teleportTo(worldserver, null);
|
||||||
public boolean updatingSectionStatus = false;
|
}
|
||||||
// Paper end
|
// Paper end - make end portalling safe
|
||||||
+ // Paper start - optimise entity tracking
|
+ // Paper start - optimise entity tracking
|
||||||
+ final org.spigotmc.TrackingRange.TrackingRangeType trackingRangeType = org.spigotmc.TrackingRange.getTrackingRangeType(this);
|
+ final org.spigotmc.TrackingRange.TrackingRangeType trackingRangeType = org.spigotmc.TrackingRange.getTrackingRangeType(this);
|
||||||
+
|
+
|
||||||
|
|
|
@ -34,7 +34,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ int playerSaveInterval = io.papermc.paper.configuration.GlobalConfiguration.get().playerAutoSave.rate;
|
+ int playerSaveInterval = io.papermc.paper.configuration.GlobalConfiguration.get().playerAutoSave.rate;
|
||||||
+ if (playerSaveInterval < 0) {
|
+ if (playerSaveInterval < 0) {
|
||||||
+ playerSaveInterval = autosavePeriod;
|
+ playerSaveInterval = autosavePeriod;
|
||||||
+ }
|
}
|
||||||
+ this.profiler.push("save");
|
+ this.profiler.push("save");
|
||||||
+ final boolean fullSave = autosavePeriod > 0 && this.tickCount % autosavePeriod == 0;
|
+ final boolean fullSave = autosavePeriod > 0 && this.tickCount % autosavePeriod == 0;
|
||||||
+ try {
|
+ try {
|
||||||
|
@ -49,7 +49,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ }
|
+ }
|
||||||
+ } finally {
|
+ } finally {
|
||||||
+ this.isSaving = false;
|
+ this.isSaving = false;
|
||||||
}
|
+ }
|
||||||
+ this.profiler.pop();
|
+ this.profiler.pop();
|
||||||
+ // Paper end - Incremental chunk and player saving
|
+ // Paper end - Incremental chunk and player saving
|
||||||
io.papermc.paper.util.CachedLists.reset(); // Paper
|
io.papermc.paper.util.CachedLists.reset(); // Paper
|
||||||
|
|
|
@ -46,9 +46,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
private boolean hasStopped = false;
|
private boolean hasStopped = false;
|
||||||
public volatile boolean hasFullyShutdown = false; // Paper
|
|
||||||
+ private boolean hasLoggedStop = false; // Paper - Debugging
|
+ private boolean hasLoggedStop = false; // Paper - Debugging
|
||||||
private final Object stopLock = new Object();
|
private final Object stopLock = new Object();
|
||||||
public final boolean hasStopped() {
|
public final boolean hasStopped() {
|
||||||
|
@ -58,9 +58,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
this.hasStopped = true;
|
this.hasStopped = true;
|
||||||
}
|
}
|
||||||
+ if (!hasLoggedStop && isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
|
+ if (!hasLoggedStop && isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
|
||||||
// Paper start - kill main thread, and kill it hard
|
// CraftBukkit end
|
||||||
shutdownThread = Thread.currentThread();
|
if (this.metricsRecorder.isRecording()) {
|
||||||
org.spigotmc.WatchdogThread.doStop(); // Paper
|
this.cancelRecordingMetrics();
|
||||||
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
}
|
}
|
||||||
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {
|
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {
|
||||||
|
|
|
@ -3,7 +3,7 @@ import sys
|
||||||
|
|
||||||
# Use inside of server patch dir
|
# Use inside of server patch dir
|
||||||
# py ../../scripts/moveback.py ''
|
# py ../../scripts/moveback.py ''
|
||||||
patch_target = 1038 # TODO: Update this
|
patch_target = 1009 # TODO: Update this
|
||||||
|
|
||||||
|
|
||||||
def increment_number(filename):
|
def increment_number(filename):
|
||||||
|
|
Loading…
Reference in a new issue