mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@4a903d81 Readd dropped diff PaperMC/Paper@4fe0ac24 Some more comments PaperMC/Paper@19a36413 Last per file patches PaperMC/Paper@e49b5e88 Fix compile issues: PaperMC/Paper@1b30919a Fix PaperMC/Paper@df964545 Fixup whatever happened here PaperMC/Paper@5933bd5b TrialSpawner compile fixes PaperMC/Paper@20136f71 Some initial adoption of ValueInput/Output PaperMC/Paper@a1bfc19a Some more compilation issues PaperMC/Paper@d16b93e6 Generator PaperMC/Paper@c34fb5f8 Test fixes PaperMC/Paper@f3bad8c8 Prepare work on feature patches PaperMC/Paper@ed3b39e9 14 first feature patches PaperMC/Paper@ff05a2df Hacky EAR 2.0 fixes
This commit is contained in:
@@ -2,7 +2,7 @@ group = org.purpurmc.purpur
|
|||||||
version = 1.21.6-R0.1-SNAPSHOT
|
version = 1.21.6-R0.1-SNAPSHOT
|
||||||
|
|
||||||
mcVersion = 1.21.6-pre1
|
mcVersion = 1.21.6-pre1
|
||||||
paperCommit = 8c9747458e8544bc28296025d03ec10a429c26b0
|
paperCommit = ff05a2df6313f422f22c7f640294641a59559250
|
||||||
|
|
||||||
org.gradle.configuration-cache = true
|
org.gradle.configuration-cache = true
|
||||||
org.gradle.caching = true
|
org.gradle.caching = true
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
|
--- a/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
|
||||||
+++ b/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
|
+++ b/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
|
||||||
@@ -441,6 +_,26 @@
|
@@ -446,6 +_,26 @@
|
||||||
|
|
||||||
GoalKey<Zombie> ZOMBIE_ATTACK_TURTLE_EGG = create("zombie_attack_turtle_egg", Zombie.class);
|
GoalKey<Zombie> ZOMBIE_ATTACK_TURTLE_EGG = create("zombie_attack_turtle_egg", Zombie.class);
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/main/java/org/bukkit/Material.java
|
--- a/src/main/java/org/bukkit/Material.java
|
||||||
+++ b/src/main/java/org/bukkit/Material.java
|
+++ b/src/main/java/org/bukkit/Material.java
|
||||||
@@ -3616,4 +_,40 @@
|
@@ -3636,4 +_,40 @@
|
||||||
return this.asItemType().getDefaultDataTypes();
|
return this.asItemType().getDefaultDataTypes();
|
||||||
}
|
}
|
||||||
// Paper end - data component API
|
// Paper end - data component API
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
From 10208bcef5c949e133092f588296ebb6e22f36d8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: File <noreply+automated@papermc.io>
|
|
||||||
Date: Sun, 20 Apr 1997 06:37:42 -0700
|
|
||||||
Subject: [PATCH] purpur File Patches
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/io/papermc/paper/entity/activation/ActivationRange.java b/io/papermc/paper/entity/activation/ActivationRange.java
|
|
||||||
index 2ebee223085fe7926c7f3e555df19ae69f36157e..265f20fd771df850a0bb0029e699d3146d883837 100644
|
|
||||||
--- a/io/papermc/paper/entity/activation/ActivationRange.java
|
--- a/io/papermc/paper/entity/activation/ActivationRange.java
|
||||||
+++ b/io/papermc/paper/entity/activation/ActivationRange.java
|
+++ b/io/papermc/paper/entity/activation/ActivationRange.java
|
||||||
@@ -141,6 +141,8 @@ public final class ActivationRange {
|
@@ -147,6 +_,8 @@
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -17,7 +9,7 @@ index 2ebee223085fe7926c7f3e555df19ae69f36157e..265f20fd771df850a0bb0029e699d314
|
|||||||
final int worldHeight = world.getHeight();
|
final int worldHeight = world.getHeight();
|
||||||
ActivationRange.maxBB = player.getBoundingBox().inflate(maxRange, worldHeight, maxRange);
|
ActivationRange.maxBB = player.getBoundingBox().inflate(maxRange, worldHeight, maxRange);
|
||||||
ActivationType.MISC.boundingBox = player.getBoundingBox().inflate(miscActivationRange, worldHeight, miscActivationRange);
|
ActivationType.MISC.boundingBox = player.getBoundingBox().inflate(miscActivationRange, worldHeight, miscActivationRange);
|
||||||
@@ -282,6 +284,7 @@ public final class ActivationRange {
|
@@ -288,6 +_,7 @@
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static boolean checkIfActive(final Entity entity) {
|
public static boolean checkIfActive(final Entity entity) {
|
||||||
@@ -1,14 +1,6 @@
|
|||||||
From 10208bcef5c949e133092f588296ebb6e22f36d8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: File <noreply+automated@papermc.io>
|
|
||||||
Date: Sun, 20 Apr 1997 06:37:42 -0700
|
|
||||||
Subject: [PATCH] purpur File Patches
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/commands/CommandSourceStack.java b/net/minecraft/commands/CommandSourceStack.java
|
|
||||||
index cb63e4c264a31788cd1405428af70f7a018910e9..4d06587cd55af988eecdda5186577ab72ca3d533 100644
|
|
||||||
--- a/net/minecraft/commands/CommandSourceStack.java
|
--- a/net/minecraft/commands/CommandSourceStack.java
|
||||||
+++ b/net/minecraft/commands/CommandSourceStack.java
|
+++ b/net/minecraft/commands/CommandSourceStack.java
|
||||||
@@ -455,6 +455,19 @@ public class CommandSourceStack implements ExecutionCommandSource<CommandSourceS
|
@@ -457,6 +_,19 @@
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
|
||||||
@@ -28,10 +20,11 @@ index cb63e4c264a31788cd1405428af70f7a018910e9..4d06587cd55af988eecdda5186577ab7
|
|||||||
public Vec3 getPosition() {
|
public Vec3 getPosition() {
|
||||||
return this.worldPosition;
|
return this.worldPosition;
|
||||||
}
|
}
|
||||||
@@ -540,6 +553,30 @@ public class CommandSourceStack implements ExecutionCommandSource<CommandSourceS
|
@@ -541,6 +_,30 @@
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
+
|
||||||
+ // Purpur start - Purpur config files
|
+ // Purpur start - Purpur config files
|
||||||
+ public void sendSuccess(@Nullable String message) {
|
+ public void sendSuccess(@Nullable String message) {
|
||||||
+ sendSuccess(message, false);
|
+ sendSuccess(message, false);
|
||||||
@@ -55,7 +48,6 @@ index cb63e4c264a31788cd1405428af70f7a018910e9..4d06587cd55af988eecdda5186577ab7
|
|||||||
+ sendSuccess(() -> io.papermc.paper.adventure.PaperAdventure.asVanilla(message), broadcastToOps);
|
+ sendSuccess(() -> io.papermc.paper.adventure.PaperAdventure.asVanilla(message), broadcastToOps);
|
||||||
+ }
|
+ }
|
||||||
+ // Purpur end - Purpur config files
|
+ // Purpur end - Purpur config files
|
||||||
+
|
|
||||||
public void sendSuccess(Supplier<Component> messageSupplier, boolean allowLogging) {
|
public void sendSuccess(Supplier<Component> messageSupplier, boolean allowLogging) {
|
||||||
boolean flag = this.source.acceptsSuccess() && !this.silent;
|
boolean flag = this.source.acceptsSuccess() && !this.silent;
|
||||||
boolean flag1 = allowLogging && this.source.shouldInformAdmins() && !this.silent;
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
--- a/net/minecraft/core/BlockPos.java
|
--- a/net/minecraft/core/BlockPos.java
|
||||||
+++ b/net/minecraft/core/BlockPos.java
|
+++ b/net/minecraft/core/BlockPos.java
|
||||||
@@ -61,6 +_,12 @@
|
@@ -63,6 +_,12 @@
|
||||||
private static final int X_OFFSET = PACKED_Y_LENGTH + PACKED_HORIZONTAL_LENGTH;
|
public static final int MAX_HORIZONTAL_COORDINATE = 33554431;
|
||||||
public static final int MAX_HORIZONTAL_COORDINATE = (1 << PACKED_HORIZONTAL_LENGTH) / 2 - 1;
|
// Paper end - Optimize Bit Operations by inlining
|
||||||
|
|
||||||
+ // Purpur start - Ridables
|
+ // Purpur start - Ridables
|
||||||
+ public BlockPos(net.minecraft.world.entity.Entity entity) {
|
+ public BlockPos(net.minecraft.world.entity.Entity entity) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/net/minecraft/network/Connection.java
|
--- a/net/minecraft/network/Connection.java
|
||||||
+++ b/net/minecraft/network/Connection.java
|
+++ b/net/minecraft/network/Connection.java
|
||||||
@@ -486,11 +_,20 @@
|
@@ -578,11 +_,20 @@
|
||||||
private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper - Buffer joins to world
|
private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper - Buffer joins to world
|
||||||
private static int joinAttemptsThisTick; // Paper - Buffer joins to world
|
private static int joinAttemptsThisTick; // Paper - Buffer joins to world
|
||||||
private static int currTick; // Paper - Buffer joins to world
|
private static int currTick; // Paper - Buffer joins to world
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
From 10208bcef5c949e133092f588296ebb6e22f36d8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: File <noreply+automated@papermc.io>
|
|
||||||
Date: Sun, 20 Apr 1997 06:37:42 -0700
|
|
||||||
Subject: [PATCH] purpur File Patches
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/Main.java b/net/minecraft/server/Main.java
|
|
||||||
index 9c9b601a3f903bebb0dd1bda0e24745587229727..29dd9a980bb7dc8457dd9ad6eeaa2c5067e3b954 100644
|
|
||||||
--- a/net/minecraft/server/Main.java
|
--- a/net/minecraft/server/Main.java
|
||||||
+++ b/net/minecraft/server/Main.java
|
+++ b/net/minecraft/server/Main.java
|
||||||
@@ -108,6 +108,12 @@ public class Main {
|
@@ -109,6 +_,12 @@
|
||||||
JvmProfiler.INSTANCE.start(Environment.SERVER);
|
JvmProfiler.INSTANCE.start(Environment.SERVER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
From 10208bcef5c949e133092f588296ebb6e22f36d8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: File <noreply+automated@papermc.io>
|
|
||||||
Date: Sun, 20 Apr 1997 06:37:42 -0700
|
|
||||||
Subject: [PATCH] purpur File Patches
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
|
||||||
index 31e02f50edd46220dac81500dbb273f1ccdbe0b9..6a296adcd9d5289dd86840fdc58dce3accbe9ce5 100644
|
|
||||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
@@ -105,6 +105,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -105,6 +_,7 @@
|
||||||
public void run() {
|
public void run() {
|
||||||
if (!org.bukkit.craftbukkit.Main.useConsole) return; // CraftBukkit
|
if (!org.bukkit.craftbukkit.Main.useConsole) return; // CraftBukkit
|
||||||
// Paper start - Use TerminalConsoleAppender
|
// Paper start - Use TerminalConsoleAppender
|
||||||
@@ -16,7 +8,7 @@ index 31e02f50edd46220dac81500dbb273f1ccdbe0b9..6a296adcd9d5289dd86840fdc58dce3a
|
|||||||
new com.destroystokyo.paper.console.PaperConsole(DedicatedServer.this).start();
|
new com.destroystokyo.paper.console.PaperConsole(DedicatedServer.this).start();
|
||||||
/*
|
/*
|
||||||
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8));
|
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8));
|
||||||
@@ -183,6 +184,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -183,6 +_,15 @@
|
||||||
io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command
|
io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command
|
||||||
this.server.spark.registerCommandBeforePlugins(this.server); // Paper - spark
|
this.server.spark.registerCommandBeforePlugins(this.server); // Paper - spark
|
||||||
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics
|
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics
|
||||||
@@ -32,7 +24,7 @@ index 31e02f50edd46220dac81500dbb273f1ccdbe0b9..6a296adcd9d5289dd86840fdc58dce3a
|
|||||||
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now
|
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now
|
||||||
|
|
||||||
this.setPvpAllowed(properties.pvp);
|
this.setPvpAllowed(properties.pvp);
|
||||||
@@ -230,6 +240,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -230,6 +_,30 @@
|
||||||
if (true) throw new IllegalStateException("Failed to bind to port", var10); // Paper - Propagate failed to bind to port error
|
if (true) throw new IllegalStateException("Failed to bind to port", var10); // Paper - Propagate failed to bind to port error
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -63,7 +55,7 @@ index 31e02f50edd46220dac81500dbb273f1ccdbe0b9..6a296adcd9d5289dd86840fdc58dce3a
|
|||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
this.server.loadPlugins();
|
this.server.loadPlugins();
|
||||||
@@ -308,6 +342,8 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -308,6 +_,8 @@
|
||||||
LOGGER.info("JMX monitoring enabled");
|
LOGGER.info("JMX monitoring enabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
From 10208bcef5c949e133092f588296ebb6e22f36d8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: File <noreply+automated@papermc.io>
|
|
||||||
Date: Sun, 20 Apr 1997 06:37:42 -0700
|
|
||||||
Subject: [PATCH] purpur File Patches
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
|
||||||
index bfbfbaa9660d21071c420b60b10be0a02a1bc87e..f3f53791d4c5532434abc281a5798ee0e2653da2 100644
|
|
||||||
--- a/net/minecraft/server/level/ServerLevel.java
|
--- a/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -203,6 +203,8 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -206,6 +_,8 @@
|
||||||
private final StructureManager structureManager;
|
private final StructureManager structureManager;
|
||||||
private final StructureCheck structureCheck;
|
private final StructureCheck structureCheck;
|
||||||
private final boolean tickTime;
|
private final boolean tickTime;
|
||||||
@@ -17,7 +9,7 @@ index bfbfbaa9660d21071c420b60b10be0a02a1bc87e..f3f53791d4c5532434abc281a5798ee0
|
|||||||
private final RandomSequences randomSequences;
|
private final RandomSequences randomSequences;
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
@@ -587,7 +589,24 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -353,7 +_,24 @@
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
this.tickTime = tickTime;
|
this.tickTime = tickTime;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
@@ -43,15 +35,15 @@ index bfbfbaa9660d21071c420b60b10be0a02a1bc87e..f3f53791d4c5532434abc281a5798ee0
|
|||||||
this.serverLevelData = serverLevelData;
|
this.serverLevelData = serverLevelData;
|
||||||
ChunkGenerator chunkGenerator = levelStem.generator();
|
ChunkGenerator chunkGenerator = levelStem.generator();
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
@@ -671,6 +690,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -435,6 +_,7 @@
|
||||||
this.chunkDataController = new ca.spottedleaf.moonrise.patches.chunk_system.io.datacontroller.ChunkDataController((ServerLevel)(Object)this, this.chunkTaskScheduler);
|
this.randomSequences = Objects.requireNonNullElseGet(randomSequences, () -> this.getDataStorage().computeIfAbsent(RandomSequences.TYPE));
|
||||||
// Paper end - rewrite chunk system
|
this.waypointManager = new ServerWaypointManager();
|
||||||
this.getCraftServer().addWorld(this.getWorld()); // CraftBukkit
|
this.getCraftServer().addWorld(this.getWorld()); // CraftBukkit
|
||||||
+ this.preciseTime = this.serverLevelData.getDayTime(); // Purpur - Configurable daylight cycle
|
+ this.preciseTime = this.serverLevelData.getDayTime(); // Purpur - Configurable daylight cycle
|
||||||
}
|
}
|
||||||
|
|
||||||
// Paper start
|
// Paper start
|
||||||
@@ -717,7 +737,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -481,7 +_,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
int _int = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
|
int _int = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
|
||||||
@@ -60,7 +52,7 @@ index bfbfbaa9660d21071c420b60b10be0a02a1bc87e..f3f53791d4c5532434abc281a5798ee0
|
|||||||
// Paper start - create time skip event - move up calculations
|
// Paper start - create time skip event - move up calculations
|
||||||
final long newDayTime = this.levelData.getDayTime() + 24000L;
|
final long newDayTime = this.levelData.getDayTime() + 24000L;
|
||||||
org.bukkit.event.world.TimeSkipEvent event = new org.bukkit.event.world.TimeSkipEvent(
|
org.bukkit.event.world.TimeSkipEvent event = new org.bukkit.event.world.TimeSkipEvent(
|
||||||
@@ -836,6 +856,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -598,6 +_,13 @@
|
||||||
this.serverLevelData.getScheduledEvents().tick(this.server, l);
|
this.serverLevelData.getScheduledEvents().tick(this.server, l);
|
||||||
Profiler.get().pop();
|
Profiler.get().pop();
|
||||||
if (this.serverLevelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) {
|
if (this.serverLevelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) {
|
||||||
@@ -74,10 +66,11 @@ index bfbfbaa9660d21071c420b60b10be0a02a1bc87e..f3f53791d4c5532434abc281a5798ee0
|
|||||||
this.setDayTime(this.levelData.getDayTime() + 1L);
|
this.setDayTime(this.levelData.getDayTime() + 1L);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -843,7 +870,21 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -605,7 +_,21 @@
|
||||||
|
|
||||||
public void setDayTime(long time) {
|
public void setDayTime(long time) {
|
||||||
this.serverLevelData.setDayTime(time);
|
this.serverLevelData.setDayTime(time);
|
||||||
|
- }
|
||||||
+ // Purpur start - Configurable daylight cycle
|
+ // Purpur start - Configurable daylight cycle
|
||||||
+ this.preciseTime = time;
|
+ this.preciseTime = time;
|
||||||
+ this.forceTime = false;
|
+ this.forceTime = false;
|
||||||
@@ -91,12 +84,12 @@ index bfbfbaa9660d21071c420b60b10be0a02a1bc87e..f3f53791d4c5532434abc281a5798ee0
|
|||||||
+ // Purpur start - Configurable daylight cycle
|
+ // Purpur start - Configurable daylight cycle
|
||||||
+ public boolean isForceTime() {
|
+ public boolean isForceTime() {
|
||||||
+ return this.forceTime;
|
+ return this.forceTime;
|
||||||
}
|
+ }
|
||||||
+ // Purpur end - Configurable daylight cycle
|
+ // Purpur end - Configurable daylight cycle
|
||||||
|
|
||||||
public void tickCustomSpawners(boolean spawnEnemies, boolean spawnFriendlies) {
|
public void tickCustomSpawners(boolean spawnEnemies, boolean spawnFriendlies) {
|
||||||
for (CustomSpawner customSpawner : this.customSpawners) {
|
for (CustomSpawner customSpawner : this.customSpawners) {
|
||||||
@@ -947,9 +988,17 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -682,9 +_,17 @@
|
||||||
&& this.random.nextDouble() < currentDifficultyAt.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01) // Paper - Configurable spawn chances for skeleton horses
|
&& this.random.nextDouble() < currentDifficultyAt.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01) // Paper - Configurable spawn chances for skeleton horses
|
||||||
&& !this.getBlockState(blockPos.below()).is(Blocks.LIGHTNING_ROD);
|
&& !this.getBlockState(blockPos.below()).is(Blocks.LIGHTNING_ROD);
|
||||||
if (flag) {
|
if (flag) {
|
||||||
@@ -116,7 +109,7 @@ index bfbfbaa9660d21071c420b60b10be0a02a1bc87e..f3f53791d4c5532434abc281a5798ee0
|
|||||||
skeletonHorse.setAge(0);
|
skeletonHorse.setAge(0);
|
||||||
skeletonHorse.setPos(blockPos.getX(), blockPos.getY(), blockPos.getZ());
|
skeletonHorse.setPos(blockPos.getX(), blockPos.getY(), blockPos.getZ());
|
||||||
this.addFreshEntity(skeletonHorse, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit
|
this.addFreshEntity(skeletonHorse, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit
|
||||||
@@ -984,9 +1033,35 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -719,9 +_,35 @@
|
||||||
if (blockState.is(Blocks.SNOW)) {
|
if (blockState.is(Blocks.SNOW)) {
|
||||||
int layersValue = blockState.getValue(SnowLayerBlock.LAYERS);
|
int layersValue = blockState.getValue(SnowLayerBlock.LAYERS);
|
||||||
if (layersValue < Math.min(_int, 8)) {
|
if (layersValue < Math.min(_int, 8)) {
|
||||||
@@ -152,7 +145,7 @@ index bfbfbaa9660d21071c420b60b10be0a02a1bc87e..f3f53791d4c5532434abc281a5798ee0
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFormEvent(this, heightmapPos, Blocks.SNOW.defaultBlockState(), 3, null); // CraftBukkit
|
org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFormEvent(this, heightmapPos, Blocks.SNOW.defaultBlockState(), 3, null); // CraftBukkit
|
||||||
@@ -1007,7 +1082,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -742,7 +_,7 @@
|
||||||
pointOfInterestType -> pointOfInterestType.is(PoiTypes.LIGHTNING_ROD),
|
pointOfInterestType -> pointOfInterestType.is(PoiTypes.LIGHTNING_ROD),
|
||||||
blockPos -> blockPos.getY() == this.getHeight(Heightmap.Types.WORLD_SURFACE, blockPos.getX(), blockPos.getZ()) - 1,
|
blockPos -> blockPos.getY() == this.getHeight(Heightmap.Types.WORLD_SURFACE, blockPos.getX(), blockPos.getZ()) - 1,
|
||||||
pos,
|
pos,
|
||||||
@@ -161,7 +154,7 @@ index bfbfbaa9660d21071c420b60b10be0a02a1bc87e..f3f53791d4c5532434abc281a5798ee0
|
|||||||
PoiManager.Occupancy.ANY
|
PoiManager.Occupancy.ANY
|
||||||
);
|
);
|
||||||
return optional.map(blockPos -> blockPos.above(1));
|
return optional.map(blockPos -> blockPos.above(1));
|
||||||
@@ -1056,8 +1131,26 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -791,8 +_,26 @@
|
||||||
int _int = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
|
int _int = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
|
||||||
Component component;
|
Component component;
|
||||||
if (this.sleepStatus.areEnoughSleeping(_int)) {
|
if (this.sleepStatus.areEnoughSleeping(_int)) {
|
||||||
@@ -188,7 +181,7 @@ index bfbfbaa9660d21071c420b60b10be0a02a1bc87e..f3f53791d4c5532434abc281a5798ee0
|
|||||||
component = Component.translatable("sleep.players_sleeping", this.sleepStatus.amountSleeping(), this.sleepStatus.sleepersNeeded(_int));
|
component = Component.translatable("sleep.players_sleeping", this.sleepStatus.amountSleeping(), this.sleepStatus.sleepersNeeded(_int));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1190,6 +1283,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -929,6 +_,7 @@
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public void resetWeatherCycle() {
|
public void resetWeatherCycle() {
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
@@ -196,7 +189,7 @@ index bfbfbaa9660d21071c420b60b10be0a02a1bc87e..f3f53791d4c5532434abc281a5798ee0
|
|||||||
this.serverLevelData.setRaining(false, org.bukkit.event.weather.WeatherChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents
|
this.serverLevelData.setRaining(false, org.bukkit.event.weather.WeatherChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents
|
||||||
// If we stop due to everyone sleeping we should reset the weather duration to some other random value.
|
// If we stop due to everyone sleeping we should reset the weather duration to some other random value.
|
||||||
// Not that everyone ever manages to get the whole server to sleep at the same time....
|
// Not that everyone ever manages to get the whole server to sleep at the same time....
|
||||||
@@ -1197,6 +1291,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -936,6 +_,7 @@
|
||||||
this.serverLevelData.setRainTime(0);
|
this.serverLevelData.setRainTime(0);
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
@@ -204,7 +197,7 @@ index bfbfbaa9660d21071c420b60b10be0a02a1bc87e..f3f53791d4c5532434abc281a5798ee0
|
|||||||
this.serverLevelData.setThundering(false, org.bukkit.event.weather.ThunderChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents
|
this.serverLevelData.setThundering(false, org.bukkit.event.weather.ThunderChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
// If we stop due to everyone sleeping we should reset the weather duration to some other random value.
|
// If we stop due to everyone sleeping we should reset the weather duration to some other random value.
|
||||||
@@ -2674,7 +2769,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -2384,7 +_,7 @@
|
||||||
// Spigot start
|
// Spigot start
|
||||||
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
|
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
|
||||||
// Paper start - Fix merchant inventory not closing on entity removal
|
// Paper start - Fix merchant inventory not closing on entity removal
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/net/minecraft/server/level/ServerPlayerGameMode.java
|
--- a/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||||
+++ b/net/minecraft/server/level/ServerPlayerGameMode.java
|
+++ b/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||||
@@ -347,6 +_,7 @@
|
@@ -348,6 +_,7 @@
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
|
||||||
@@ -460,6 +_,7 @@
|
@@ -461,6 +_,7 @@
|
||||||
public InteractionHand interactHand;
|
public InteractionHand interactHand;
|
||||||
public ItemStack interactItemStack;
|
public ItemStack interactItemStack;
|
||||||
public InteractionResult useItemOn(ServerPlayer player, Level level, ItemStack stack, InteractionHand hand, BlockHitResult hitResult) {
|
public InteractionResult useItemOn(ServerPlayer player, Level level, ItemStack stack, InteractionHand hand, BlockHitResult hitResult) {
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
BlockPos blockPos = hitResult.getBlockPos();
|
BlockPos blockPos = hitResult.getBlockPos();
|
||||||
BlockState blockState = level.getBlockState(blockPos);
|
BlockState blockState = level.getBlockState(blockPos);
|
||||||
boolean cancelledBlock = false;
|
boolean cancelledBlock = false;
|
||||||
@@ -502,7 +_,7 @@
|
@@ -503,7 +_,7 @@
|
||||||
boolean flag = !player.getMainHandItem().isEmpty() || !player.getOffhandItem().isEmpty();
|
boolean flag = !player.getMainHandItem().isEmpty() || !player.getOffhandItem().isEmpty();
|
||||||
boolean flag1 = player.isSecondaryUseActive() && flag;
|
boolean flag1 = player.isSecondaryUseActive() && flag;
|
||||||
ItemStack itemStack = stack.copy();
|
ItemStack itemStack = stack.copy();
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
InteractionResult interactionResult = blockState.useItemOn(player.getItemInHand(hand), level, player, hand, hitResult);
|
InteractionResult interactionResult = blockState.useItemOn(player.getItemInHand(hand), level, player, hand, hitResult);
|
||||||
if (interactionResult.consumesAction()) {
|
if (interactionResult.consumesAction()) {
|
||||||
CriteriaTriggers.ITEM_USED_ON_BLOCK.trigger(player, blockPos, itemStack);
|
CriteriaTriggers.ITEM_USED_ON_BLOCK.trigger(player, blockPos, itemStack);
|
||||||
@@ -548,4 +_,18 @@
|
@@ -549,4 +_,18 @@
|
||||||
public void setLevel(ServerLevel serverLevel) {
|
public void setLevel(ServerLevel serverLevel) {
|
||||||
this.level = serverLevel;
|
this.level = serverLevel;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
From 10208bcef5c949e133092f588296ebb6e22f36d8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: File <noreply+automated@papermc.io>
|
|
||||||
Date: Sun, 20 Apr 1997 06:37:42 -0700
|
|
||||||
Subject: [PATCH] purpur File Patches
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
|
||||||
index 186393485396cfe9b1baef29586198356e2d2600..66d70c330fd70009018d8d0a7441b93fcef96c97 100644
|
|
||||||
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||||
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||||
@@ -41,6 +41,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
@@ -43,6 +_,7 @@
|
||||||
private long keepAliveChallenge;
|
private long keepAliveChallenge;
|
||||||
private long closedListenerTime;
|
private long closedListenerTime;
|
||||||
private boolean closed = false;
|
private boolean closed = false;
|
||||||
@@ -16,7 +8,7 @@ index 186393485396cfe9b1baef29586198356e2d2600..66d70c330fd70009018d8d0a7441b93f
|
|||||||
private int latency;
|
private int latency;
|
||||||
private volatile boolean suspendFlushingOnServerThread = false;
|
private volatile boolean suspendFlushingOnServerThread = false;
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
@@ -51,6 +52,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
@@ -53,6 +_,7 @@
|
||||||
public final java.util.Map<java.util.UUID, net.kyori.adventure.resource.ResourcePackCallback> packCallbacks = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - adventure resource pack callbacks
|
public final java.util.Map<java.util.UUID, net.kyori.adventure.resource.ResourcePackCallback> packCallbacks = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - adventure resource pack callbacks
|
||||||
private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit
|
private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit
|
||||||
protected static final net.minecraft.resources.ResourceLocation MINECRAFT_BRAND = net.minecraft.resources.ResourceLocation.withDefaultNamespace("brand"); // Paper - Brand support
|
protected static final net.minecraft.resources.ResourceLocation MINECRAFT_BRAND = net.minecraft.resources.ResourceLocation.withDefaultNamespace("brand"); // Paper - Brand support
|
||||||
@@ -24,7 +16,7 @@ index 186393485396cfe9b1baef29586198356e2d2600..66d70c330fd70009018d8d0a7441b93f
|
|||||||
|
|
||||||
public ServerCommonPacketListenerImpl(MinecraftServer server, Connection connection, CommonListenerCookie cookie, net.minecraft.server.level.ServerPlayer player) { // CraftBukkit
|
public ServerCommonPacketListenerImpl(MinecraftServer server, Connection connection, CommonListenerCookie cookie, net.minecraft.server.level.ServerPlayer player) { // CraftBukkit
|
||||||
this.server = server;
|
this.server = server;
|
||||||
@@ -118,6 +120,16 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
@@ -120,6 +_,16 @@
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleKeepAlive(ServerboundKeepAlivePacket packet) {
|
public void handleKeepAlive(ServerboundKeepAlivePacket packet) {
|
||||||
@@ -41,7 +33,7 @@ index 186393485396cfe9b1baef29586198356e2d2600..66d70c330fd70009018d8d0a7441b93f
|
|||||||
if (this.keepAlivePending && packet.getId() == this.keepAliveChallenge) {
|
if (this.keepAlivePending && packet.getId() == this.keepAliveChallenge) {
|
||||||
int i = (int)(Util.getMillis() - this.keepAliveTime);
|
int i = (int)(Util.getMillis() - this.keepAliveTime);
|
||||||
this.latency = (this.latency * 3 + i) / 4;
|
this.latency = (this.latency * 3 + i) / 4;
|
||||||
@@ -169,6 +181,12 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
@@ -171,6 +_,12 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,7 +46,7 @@ index 186393485396cfe9b1baef29586198356e2d2600..66d70c330fd70009018d8d0a7441b93f
|
|||||||
if (identifier.equals(MINECRAFT_BRAND)) {
|
if (identifier.equals(MINECRAFT_BRAND)) {
|
||||||
this.player.clientBrandName = new net.minecraft.network.FriendlyByteBuf(io.netty.buffer.Unpooled.wrappedBuffer(data)).readUtf(256);
|
this.player.clientBrandName = new net.minecraft.network.FriendlyByteBuf(io.netty.buffer.Unpooled.wrappedBuffer(data)).readUtf(256);
|
||||||
}
|
}
|
||||||
@@ -242,6 +260,22 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
@@ -250,6 +_,22 @@
|
||||||
// Paper start - give clients a longer time to respond to pings as per pre 1.12.2 timings
|
// Paper start - give clients a longer time to respond to pings as per pre 1.12.2 timings
|
||||||
// This should effectively place the keepalive handling back to "as it was" before 1.12.2
|
// This should effectively place the keepalive handling back to "as it was" before 1.12.2
|
||||||
final long elapsedTime = millis - this.keepAliveTime;
|
final long elapsedTime = millis - this.keepAliveTime;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
--- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||||
+++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
+++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||||
@@ -308,7 +_,7 @@
|
@@ -306,7 +_,7 @@
|
||||||
ServerLoginPacketListenerImpl.LOGGER.warn("Failed to verify username but will let them in anyway!");
|
ServerLoginPacketListenerImpl.LOGGER.warn("Failed to verify username but will let them in anyway!");
|
||||||
ServerLoginPacketListenerImpl.this.startClientVerification(ServerLoginPacketListenerImpl.this.createOfflineProfile(string1)); // Spigot
|
ServerLoginPacketListenerImpl.this.startClientVerification(ServerLoginPacketListenerImpl.this.createOfflineProfile(string1)); // Spigot
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
From 10208bcef5c949e133092f588296ebb6e22f36d8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: File <noreply+automated@papermc.io>
|
|
||||||
Date: Sun, 20 Apr 1997 06:37:42 -0700
|
|
||||||
Subject: [PATCH] purpur File Patches
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/ExperienceOrb.java b/net/minecraft/world/entity/ExperienceOrb.java
|
|
||||||
index c97a0e500e889b406cb2d679a3870715775f5393..81aa1a91a2ecda3053b22c2eb9e59f0ea2faf7b5 100644
|
|
||||||
--- a/net/minecraft/world/entity/ExperienceOrb.java
|
--- a/net/minecraft/world/entity/ExperienceOrb.java
|
||||||
+++ b/net/minecraft/world/entity/ExperienceOrb.java
|
+++ b/net/minecraft/world/entity/ExperienceOrb.java
|
||||||
@@ -328,7 +328,7 @@ public class ExperienceOrb extends Entity {
|
@@ -358,7 +_,7 @@
|
||||||
public void playerTouch(Player entity) {
|
public void playerTouch(Player entity) {
|
||||||
if (entity instanceof ServerPlayer serverPlayer) {
|
if (entity instanceof ServerPlayer serverPlayer) {
|
||||||
if (entity.takeXpDelay == 0 && new com.destroystokyo.paper.event.player.PlayerPickupExperienceEvent(serverPlayer.getBukkitEntity(), (org.bukkit.entity.ExperienceOrb) this.getBukkitEntity()).callEvent()) { // Paper - PlayerPickupExperienceEvent
|
if (entity.takeXpDelay == 0 && new com.destroystokyo.paper.event.player.PlayerPickupExperienceEvent(serverPlayer.getBukkitEntity(), (org.bukkit.entity.ExperienceOrb) this.getBukkitEntity()).callEvent()) { // Paper - PlayerPickupExperienceEvent
|
||||||
@@ -17,7 +9,7 @@ index c97a0e500e889b406cb2d679a3870715775f5393..81aa1a91a2ecda3053b22c2eb9e59f0e
|
|||||||
entity.take(this, 1);
|
entity.take(this, 1);
|
||||||
int i = this.repairPlayerItems(serverPlayer, this.getValue());
|
int i = this.repairPlayerItems(serverPlayer, this.getValue());
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
@@ -344,7 +344,7 @@ public class ExperienceOrb extends Entity {
|
@@ -374,7 +_,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
private int repairPlayerItems(ServerPlayer player, int value) {
|
private int repairPlayerItems(ServerPlayer player, int value) {
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
From 10208bcef5c949e133092f588296ebb6e22f36d8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: File <noreply+automated@papermc.io>
|
|
||||||
Date: Sun, 20 Apr 1997 06:37:42 -0700
|
|
||||||
Subject: [PATCH] purpur File Patches
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
|
||||||
index ef92dc4384f698cc6b5c4e67fe052a3d4af98f4c..20d9856daa5ef4c42010381091c2a85e0755fa77 100644
|
|
||||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -430,6 +430,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -444,6 +_,12 @@
|
||||||
if (d < 0.0) {
|
if (d < 0.0) {
|
||||||
double damagePerBlock = serverLevel1.getWorldBorder().getDamagePerBlock();
|
double damagePerBlock = serverLevel1.getWorldBorder().getDamagePerBlock();
|
||||||
if (damagePerBlock > 0.0) {
|
if (damagePerBlock > 0.0) {
|
||||||
@@ -21,7 +13,7 @@ index ef92dc4384f698cc6b5c4e67fe052a3d4af98f4c..20d9856daa5ef4c42010381091c2a85e
|
|||||||
this.hurtServer(serverLevel1, this.damageSources().outOfBorder(), Math.max(1, Mth.floor(-d * damagePerBlock)));
|
this.hurtServer(serverLevel1, this.damageSources().outOfBorder(), Math.max(1, Mth.floor(-d * damagePerBlock)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -442,10 +448,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -456,10 +_,10 @@
|
||||||
&& (!flag || !((Player)this).getAbilities().invulnerable);
|
&& (!flag || !((Player)this).getAbilities().invulnerable);
|
||||||
if (flag1) {
|
if (flag1) {
|
||||||
this.setAirSupply(this.decreaseAirSupply(this.getAirSupply()));
|
this.setAirSupply(this.decreaseAirSupply(this.getAirSupply()));
|
||||||
@@ -34,7 +26,7 @@ index ef92dc4384f698cc6b5c4e67fe052a3d4af98f4c..20d9856daa5ef4c42010381091c2a85e
|
|||||||
}
|
}
|
||||||
} else if (this.getAirSupply() < this.getMaxAirSupply()) {
|
} else if (this.getAirSupply() < this.getMaxAirSupply()) {
|
||||||
this.setAirSupply(this.increaseAirSupply(this.getAirSupply()));
|
this.setAirSupply(this.increaseAirSupply(this.getAirSupply()));
|
||||||
@@ -1014,15 +1020,33 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -1039,14 +_,32 @@
|
||||||
if (lookingEntity != null) {
|
if (lookingEntity != null) {
|
||||||
ItemStack itemBySlot = this.getItemBySlot(EquipmentSlot.HEAD);
|
ItemStack itemBySlot = this.getItemBySlot(EquipmentSlot.HEAD);
|
||||||
EntityType<?> type = lookingEntity.getType();
|
EntityType<?> type = lookingEntity.getType();
|
||||||
@@ -44,13 +36,15 @@ index ef92dc4384f698cc6b5c4e67fe052a3d4af98f4c..20d9856daa5ef4c42010381091c2a85e
|
|||||||
- || type == EntityType.PIGLIN_BRUTE && itemBySlot.is(Items.PIGLIN_HEAD)
|
- || type == EntityType.PIGLIN_BRUTE && itemBySlot.is(Items.PIGLIN_HEAD)
|
||||||
- || type == EntityType.CREEPER && itemBySlot.is(Items.CREEPER_HEAD)) {
|
- || type == EntityType.CREEPER && itemBySlot.is(Items.CREEPER_HEAD)) {
|
||||||
- d *= 0.5;
|
- d *= 0.5;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
+ // Purpur start - Mob head visibility percent
|
+ // Purpur start - Mob head visibility percent
|
||||||
+ if (type == EntityType.SKELETON && itemBySlot.is(Items.SKELETON_SKULL)) {
|
+ if (type == EntityType.SKELETON && itemBySlot.is(Items.SKELETON_SKULL)) {
|
||||||
+ d *= lookingEntity.level().purpurConfig.skeletonHeadVisibilityPercent;
|
+ d *= lookingEntity.level().purpurConfig.skeletonHeadVisibilityPercent;
|
||||||
+ }
|
+ }
|
||||||
+ else if (type == EntityType.ZOMBIE && itemBySlot.is(Items.ZOMBIE_HEAD)) {
|
+ else if (type == EntityType.ZOMBIE && itemBySlot.is(Items.ZOMBIE_HEAD)) {
|
||||||
+ d *= lookingEntity.level().purpurConfig.zombieHeadVisibilityPercent;
|
+ d *= lookingEntity.level().purpurConfig.zombieHeadVisibilityPercent;
|
||||||
}
|
+ }
|
||||||
+ else if ((type == EntityType.PIGLIN || type == EntityType.PIGLIN_BRUTE) && itemBySlot.is(Items.PIGLIN_HEAD)) {
|
+ else if ((type == EntityType.PIGLIN || type == EntityType.PIGLIN_BRUTE) && itemBySlot.is(Items.PIGLIN_HEAD)) {
|
||||||
+ d *= lookingEntity.level().purpurConfig.piglinHeadVisibilityPercent;
|
+ d *= lookingEntity.level().purpurConfig.piglinHeadVisibilityPercent;
|
||||||
+ }
|
+ }
|
||||||
@@ -58,8 +52,8 @@ index ef92dc4384f698cc6b5c4e67fe052a3d4af98f4c..20d9856daa5ef4c42010381091c2a85e
|
|||||||
+ d *= lookingEntity.level().purpurConfig.creeperHeadVisibilityPercent;
|
+ d *= lookingEntity.level().purpurConfig.creeperHeadVisibilityPercent;
|
||||||
+ }
|
+ }
|
||||||
+ // Purpur end - Mob head visibility percent
|
+ // Purpur end - Mob head visibility percent
|
||||||
}
|
+ }
|
||||||
|
+
|
||||||
+ // Purpur start - Configurable mob blindness
|
+ // Purpur start - Configurable mob blindness
|
||||||
+ if (lookingEntity instanceof LivingEntity entityliving) {
|
+ if (lookingEntity instanceof LivingEntity entityliving) {
|
||||||
+ if (entityliving.hasEffect(MobEffects.BLINDNESS)) {
|
+ if (entityliving.hasEffect(MobEffects.BLINDNESS)) {
|
||||||
@@ -70,11 +64,10 @@ index ef92dc4384f698cc6b5c4e67fe052a3d4af98f4c..20d9856daa5ef4c42010381091c2a85e
|
|||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ // Purpur end - Configurable mob blindness
|
+ // Purpur end - Configurable mob blindness
|
||||||
+
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
@@ -1093,6 +_,7 @@
|
||||||
@@ -1068,6 +1092,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
|
||||||
Iterator<MobEffectInstance> iterator = this.activeEffects.values().iterator();
|
Iterator<MobEffectInstance> iterator = this.activeEffects.values().iterator();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
MobEffectInstance effect = iterator.next();
|
MobEffectInstance effect = iterator.next();
|
||||||
@@ -82,7 +75,7 @@ index ef92dc4384f698cc6b5c4e67fe052a3d4af98f4c..20d9856daa5ef4c42010381091c2a85e
|
|||||||
EntityPotionEffectEvent event = CraftEventFactory.callEntityPotionEffectChangeEvent(this, effect, null, cause, EntityPotionEffectEvent.Action.CLEARED);
|
EntityPotionEffectEvent event = CraftEventFactory.callEntityPotionEffectChangeEvent(this, effect, null, cause, EntityPotionEffectEvent.Action.CLEARED);
|
||||||
if (event.isCancelled()) {
|
if (event.isCancelled()) {
|
||||||
continue;
|
continue;
|
||||||
@@ -1385,6 +1410,24 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -1417,6 +_,24 @@
|
||||||
this.stopSleeping();
|
this.stopSleeping();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,7 +100,7 @@ index ef92dc4384f698cc6b5c4e67fe052a3d4af98f4c..20d9856daa5ef4c42010381091c2a85e
|
|||||||
this.noActionTime = 0;
|
this.noActionTime = 0;
|
||||||
if (amount < 0.0F) {
|
if (amount < 0.0F) {
|
||||||
amount = 0.0F;
|
amount = 0.0F;
|
||||||
@@ -1646,10 +1689,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -1678,10 +_,10 @@
|
||||||
protected Player resolvePlayerResponsibleForDamage(DamageSource damageSource) {
|
protected Player resolvePlayerResponsibleForDamage(DamageSource damageSource) {
|
||||||
Entity entity = damageSource.getEntity();
|
Entity entity = damageSource.getEntity();
|
||||||
if (entity instanceof Player player) {
|
if (entity instanceof Player player) {
|
||||||
@@ -120,7 +113,7 @@ index ef92dc4384f698cc6b5c4e67fe052a3d4af98f4c..20d9856daa5ef4c42010381091c2a85e
|
|||||||
} else {
|
} else {
|
||||||
this.lastHurtByPlayer = null;
|
this.lastHurtByPlayer = null;
|
||||||
this.lastHurtByPlayerMemoryTime = 0;
|
this.lastHurtByPlayerMemoryTime = 0;
|
||||||
@@ -1700,6 +1743,18 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -1732,6 +_,18 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,7 +132,7 @@ index ef92dc4384f698cc6b5c4e67fe052a3d4af98f4c..20d9856daa5ef4c42010381091c2a85e
|
|||||||
final org.bukkit.inventory.EquipmentSlot handSlot = (hand != null) ? org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand) : null;
|
final org.bukkit.inventory.EquipmentSlot handSlot = (hand != null) ? org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand) : null;
|
||||||
final EntityResurrectEvent event = new EntityResurrectEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity(), handSlot);
|
final EntityResurrectEvent event = new EntityResurrectEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity(), handSlot);
|
||||||
event.setCancelled(itemStack == null);
|
event.setCancelled(itemStack == null);
|
||||||
@@ -1875,6 +1930,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -1907,6 +_,7 @@
|
||||||
boolean flag = this.lastHurtByPlayerMemoryTime > 0;
|
boolean flag = this.lastHurtByPlayerMemoryTime > 0;
|
||||||
this.dropEquipment(level); // CraftBukkit - from below
|
this.dropEquipment(level); // CraftBukkit - from below
|
||||||
if (this.shouldDropLoot() && level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) {
|
if (this.shouldDropLoot() && level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) {
|
||||||
@@ -147,7 +140,7 @@ index ef92dc4384f698cc6b5c4e67fe052a3d4af98f4c..20d9856daa5ef4c42010381091c2a85e
|
|||||||
this.dropFromLootTable(level, damageSource, flag);
|
this.dropFromLootTable(level, damageSource, flag);
|
||||||
// Paper start
|
// Paper start
|
||||||
final boolean prev = this.clearEquipmentSlots;
|
final boolean prev = this.clearEquipmentSlots;
|
||||||
@@ -1883,6 +1939,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -1915,6 +_,7 @@
|
||||||
// Paper end
|
// Paper end
|
||||||
this.dropCustomDeathLoot(level, damageSource, flag);
|
this.dropCustomDeathLoot(level, damageSource, flag);
|
||||||
this.clearEquipmentSlots = prev; // Paper
|
this.clearEquipmentSlots = prev; // Paper
|
||||||
@@ -155,7 +148,7 @@ index ef92dc4384f698cc6b5c4e67fe052a3d4af98f4c..20d9856daa5ef4c42010381091c2a85e
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment
|
// CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment
|
||||||
@@ -3057,6 +3114,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -3109,6 +_,7 @@
|
||||||
float f = (float)(d * 10.0 - 3.0);
|
float f = (float)(d * 10.0 - 3.0);
|
||||||
if (f > 0.0F) {
|
if (f > 0.0F) {
|
||||||
this.playSound(this.getFallDamageSound((int)f), 1.0F, 1.0F);
|
this.playSound(this.getFallDamageSound((int)f), 1.0F, 1.0F);
|
||||||
@@ -163,16 +156,16 @@ index ef92dc4384f698cc6b5c4e67fe052a3d4af98f4c..20d9856daa5ef4c42010381091c2a85e
|
|||||||
this.hurt(this.damageSources().flyIntoWall(), f);
|
this.hurt(this.damageSources().flyIntoWall(), f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4452,6 +4510,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -4507,6 +_,12 @@
|
||||||
|
? slot == EquipmentSlot.MAINHAND && this.canUseSlot(EquipmentSlot.MAINHAND)
|
||||||
: slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.getType());
|
: slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.getType());
|
||||||
}
|
}
|
||||||
|
+
|
||||||
+ // Purpur start - Dispenser curse of binding protection
|
+ // Purpur start - Dispenser curse of binding protection
|
||||||
+ public @Nullable EquipmentSlot getEquipmentSlotForDispenserItem(ItemStack itemstack) {
|
+ public @Nullable EquipmentSlot getEquipmentSlotForDispenserItem(ItemStack itemstack) {
|
||||||
+ return EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.BINDING_CURSE, itemstack) > 0 ? null : this.getEquipmentSlotForItem(itemstack);
|
+ return EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.BINDING_CURSE, itemstack) > 0 ? null : this.getEquipmentSlotForItem(itemstack);
|
||||||
+ }
|
+ }
|
||||||
+ // Purpur end - Dispenser curse of binding protection
|
+ // Purpur end - Dispenser curse of binding protection
|
||||||
+
|
|
||||||
private static SlotAccess createEquipmentSlotAccess(LivingEntity entity, EquipmentSlot slot) {
|
private static SlotAccess createEquipmentSlotAccess(LivingEntity entity, EquipmentSlot slot) {
|
||||||
return slot != EquipmentSlot.HEAD && slot != EquipmentSlot.MAINHAND && slot != EquipmentSlot.OFFHAND
|
return slot != EquipmentSlot.HEAD && slot != EquipmentSlot.MAINHAND && slot != EquipmentSlot.OFFHAND
|
||||||
? SlotAccess.forEquipmentSlot(entity, slot, itemStack -> itemStack.isEmpty() || entity.getEquipmentSlotForItem(itemStack) == slot)
|
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
From 10208bcef5c949e133092f588296ebb6e22f36d8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: File <noreply+automated@papermc.io>
|
|
||||||
Date: Sun, 20 Apr 1997 06:37:42 -0700
|
|
||||||
Subject: [PATCH] purpur File Patches
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/item/ItemEntity.java b/net/minecraft/world/entity/item/ItemEntity.java
|
|
||||||
index 6c0ebfb2be4e8b884456a2aa3d5fdc87e45a0e3c..4ddf1cdf7a47bf06f95c5bfce8f3c4d035e87cfc 100644
|
|
||||||
--- a/net/minecraft/world/entity/item/ItemEntity.java
|
--- a/net/minecraft/world/entity/item/ItemEntity.java
|
||||||
+++ b/net/minecraft/world/entity/item/ItemEntity.java
|
+++ b/net/minecraft/world/entity/item/ItemEntity.java
|
||||||
@@ -59,6 +59,12 @@ public class ItemEntity extends Entity implements TraceableEntity {
|
@@ -56,6 +_,12 @@
|
||||||
public boolean canMobPickup = true; // Paper - Item#canEntityPickup
|
public boolean canMobPickup = true; // Paper - Item#canEntityPickup
|
||||||
private int despawnRate = -1; // Paper - Alternative item-despawn-rate
|
private int despawnRate = -1; // Paper - Alternative item-despawn-rate
|
||||||
public net.kyori.adventure.util.TriState frictionState = net.kyori.adventure.util.TriState.NOT_SET; // Paper - Friction API
|
public net.kyori.adventure.util.TriState frictionState = net.kyori.adventure.util.TriState.NOT_SET; // Paper - Friction API
|
||||||
@@ -21,7 +13,7 @@ index 6c0ebfb2be4e8b884456a2aa3d5fdc87e45a0e3c..4ddf1cdf7a47bf06f95c5bfce8f3c4d0
|
|||||||
|
|
||||||
public ItemEntity(EntityType<? extends ItemEntity> entityType, Level level) {
|
public ItemEntity(EntityType<? extends ItemEntity> entityType, Level level) {
|
||||||
super(entityType, level);
|
super(entityType, level);
|
||||||
@@ -344,7 +350,16 @@ public class ItemEntity extends Entity implements TraceableEntity {
|
@@ -334,7 +_,16 @@
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final boolean hurtServer(ServerLevel level, DamageSource damageSource, float amount) {
|
public final boolean hurtServer(ServerLevel level, DamageSource damageSource, float amount) {
|
||||||
@@ -39,7 +31,7 @@ index 6c0ebfb2be4e8b884456a2aa3d5fdc87e45a0e3c..4ddf1cdf7a47bf06f95c5bfce8f3c4d0
|
|||||||
return false;
|
return false;
|
||||||
} else if (!level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) && damageSource.getEntity() instanceof Mob) {
|
} else if (!level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) && damageSource.getEntity() instanceof Mob) {
|
||||||
return false;
|
return false;
|
||||||
@@ -528,6 +543,12 @@ public class ItemEntity extends Entity implements TraceableEntity {
|
@@ -513,6 +_,12 @@
|
||||||
public void setItem(ItemStack stack) {
|
public void setItem(ItemStack stack) {
|
||||||
this.getEntityData().set(DATA_ITEM, stack);
|
this.getEntityData().set(DATA_ITEM, stack);
|
||||||
this.despawnRate = this.level().paperConfig().entities.spawning.altItemDespawnRate.enabled ? this.level().paperConfig().entities.spawning.altItemDespawnRate.items.getOrDefault(stack.getItem(), this.level().spigotConfig.itemDespawnRate) : this.level().spigotConfig.itemDespawnRate; // Paper - Alternative item-despawn-rate
|
this.despawnRate = this.level().paperConfig().entities.spawning.altItemDespawnRate.enabled ? this.level().paperConfig().entities.spawning.altItemDespawnRate.items.getOrDefault(stack.getItem(), this.level().spigotConfig.itemDespawnRate) : this.level().spigotConfig.itemDespawnRate; // Paper - Alternative item-despawn-rate
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/net/minecraft/world/entity/monster/Phantom.java
|
--- a/net/minecraft/world/entity/monster/Phantom.java
|
||||||
+++ b/net/minecraft/world/entity/monster/Phantom.java
|
+++ b/net/minecraft/world/entity/monster/Phantom.java
|
||||||
@@ -169,7 +_,11 @@
|
@@ -174,7 +_,11 @@
|
||||||
ServerLevelAccessor level, DifficultyInstance difficulty, EntitySpawnReason spawnReason, @Nullable SpawnGroupData spawnGroupData
|
ServerLevelAccessor level, DifficultyInstance difficulty, EntitySpawnReason spawnReason, @Nullable SpawnGroupData spawnGroupData
|
||||||
) {
|
) {
|
||||||
this.anchorPoint = this.blockPosition().above(5);
|
this.anchorPoint = this.blockPosition().above(5);
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
From 10208bcef5c949e133092f588296ebb6e22f36d8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: File <noreply+automated@papermc.io>
|
|
||||||
Date: Sun, 20 Apr 1997 06:37:42 -0700
|
|
||||||
Subject: [PATCH] purpur File Patches
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
|
||||||
index e0e0d2ea7fc60e3142c675404d152eca60263240..49d43837b88d8f278baa5062aed83a297fe20ed8 100644
|
|
||||||
--- a/net/minecraft/world/entity/npc/Villager.java
|
--- a/net/minecraft/world/entity/npc/Villager.java
|
||||||
+++ b/net/minecraft/world/entity/npc/Villager.java
|
+++ b/net/minecraft/world/entity/npc/Villager.java
|
||||||
@@ -178,6 +178,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -179,6 +_,8 @@
|
||||||
MemoryModuleType.MEETING_POINT,
|
MemoryModuleType.MEETING_POINT,
|
||||||
(villager, poiType) -> poiType.is(PoiTypes.MEETING)
|
(villager, poiType) -> poiType.is(PoiTypes.MEETING)
|
||||||
);
|
);
|
||||||
@@ -17,7 +9,7 @@ index e0e0d2ea7fc60e3142c675404d152eca60263240..49d43837b88d8f278baa5062aed83a29
|
|||||||
|
|
||||||
public Villager(EntityType<? extends Villager> entityType, Level level) {
|
public Villager(EntityType<? extends Villager> entityType, Level level) {
|
||||||
this(entityType, level, VillagerType.PLAINS);
|
this(entityType, level, VillagerType.PLAINS);
|
||||||
@@ -196,6 +198,57 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -197,6 +_,57 @@
|
||||||
this.setVillagerData(this.getVillagerData().withType(villagerType).withProfession(level.registryAccess(), VillagerProfession.NONE));
|
this.setVillagerData(this.getVillagerData().withType(villagerType).withProfession(level.registryAccess(), VillagerProfession.NONE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,7 +67,7 @@ index e0e0d2ea7fc60e3142c675404d152eca60263240..49d43837b88d8f278baa5062aed83a29
|
|||||||
@Override
|
@Override
|
||||||
public Brain<Villager> getBrain() {
|
public Brain<Villager> getBrain() {
|
||||||
return (Brain<Villager>)super.getBrain();
|
return (Brain<Villager>)super.getBrain();
|
||||||
@@ -292,11 +345,24 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -293,11 +_,24 @@
|
||||||
// Paper start - EAR 2
|
// Paper start - EAR 2
|
||||||
this.customServerAiStep(level, false);
|
this.customServerAiStep(level, false);
|
||||||
}
|
}
|
||||||
@@ -102,7 +94,7 @@ index e0e0d2ea7fc60e3142c675404d152eca60263240..49d43837b88d8f278baa5062aed83a29
|
|||||||
profilerFiller.pop();
|
profilerFiller.pop();
|
||||||
if (this.assignProfessionWhenSpawned) {
|
if (this.assignProfessionWhenSpawned) {
|
||||||
this.assignProfessionWhenSpawned = false;
|
this.assignProfessionWhenSpawned = false;
|
||||||
@@ -368,6 +434,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -369,6 +_,7 @@
|
||||||
return InteractionResult.CONSUME;
|
return InteractionResult.CONSUME;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,7 +102,7 @@ index e0e0d2ea7fc60e3142c675404d152eca60263240..49d43837b88d8f278baa5062aed83a29
|
|||||||
this.startTrading(player);
|
this.startTrading(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -504,7 +571,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -505,7 +_,7 @@
|
||||||
|
|
||||||
private void updateDemand() {
|
private void updateDemand() {
|
||||||
for (MerchantOffer merchantOffer : this.getOffers()) {
|
for (MerchantOffer merchantOffer : this.getOffers()) {
|
||||||
@@ -119,7 +111,7 @@ index e0e0d2ea7fc60e3142c675404d152eca60263240..49d43837b88d8f278baa5062aed83a29
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -697,7 +764,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -698,7 +_,7 @@
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canBreed() {
|
public boolean canBreed() {
|
||||||
@@ -128,7 +120,7 @@ index e0e0d2ea7fc60e3142c675404d152eca60263240..49d43837b88d8f278baa5062aed83a29
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean hungry() {
|
private boolean hungry() {
|
||||||
@@ -919,6 +986,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -920,6 +_,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public void spawnGolemIfNeeded(ServerLevel serverLevel, long gameTime, int minVillagerAmount) {
|
public void spawnGolemIfNeeded(ServerLevel serverLevel, long gameTime, int minVillagerAmount) {
|
||||||
@@ -136,7 +128,7 @@ index e0e0d2ea7fc60e3142c675404d152eca60263240..49d43837b88d8f278baa5062aed83a29
|
|||||||
if (this.wantsToSpawnGolem(gameTime)) {
|
if (this.wantsToSpawnGolem(gameTime)) {
|
||||||
AABB aabb = this.getBoundingBox().inflate(10.0, 10.0, 10.0);
|
AABB aabb = this.getBoundingBox().inflate(10.0, 10.0, 10.0);
|
||||||
List<Villager> entitiesOfClass = serverLevel.getEntitiesOfClass(Villager.class, aabb);
|
List<Villager> entitiesOfClass = serverLevel.getEntitiesOfClass(Villager.class, aabb);
|
||||||
@@ -992,6 +1060,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -993,6 +_,12 @@
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void startSleeping(BlockPos pos) {
|
public void startSleeping(BlockPos pos) {
|
||||||
@@ -1,14 +1,6 @@
|
|||||||
From 10208bcef5c949e133092f588296ebb6e22f36d8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: File <noreply+automated@papermc.io>
|
|
||||||
Date: Sun, 20 Apr 1997 06:37:42 -0700
|
|
||||||
Subject: [PATCH] purpur File Patches
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
|
|
||||||
index 248ee263a853d1d3148746a63ba422115853f6a1..bd4d3a920e015db49436336cc180bc0b937750a0 100644
|
|
||||||
--- a/net/minecraft/world/entity/player/Player.java
|
--- a/net/minecraft/world/entity/player/Player.java
|
||||||
+++ b/net/minecraft/world/entity/player/Player.java
|
+++ b/net/minecraft/world/entity/player/Player.java
|
||||||
@@ -210,11 +210,20 @@ public abstract class Player extends LivingEntity {
|
@@ -219,11 +_,20 @@
|
||||||
private int currentImpulseContextResetGraceTime = 0;
|
private int currentImpulseContextResetGraceTime = 0;
|
||||||
public boolean affectsSpawning = true; // Paper - Affects Spawning API
|
public boolean affectsSpawning = true; // Paper - Affects Spawning API
|
||||||
public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage
|
public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage
|
||||||
@@ -29,7 +21,7 @@ index 248ee263a853d1d3148746a63ba422115853f6a1..bd4d3a920e015db49436336cc180bc0b
|
|||||||
@Override
|
@Override
|
||||||
public org.bukkit.craftbukkit.entity.CraftHumanEntity getBukkitEntity() {
|
public org.bukkit.craftbukkit.entity.CraftHumanEntity getBukkitEntity() {
|
||||||
return (org.bukkit.craftbukkit.entity.CraftHumanEntity) super.getBukkitEntity();
|
return (org.bukkit.craftbukkit.entity.CraftHumanEntity) super.getBukkitEntity();
|
||||||
@@ -277,6 +286,12 @@ public abstract class Player extends LivingEntity {
|
@@ -287,6 +_,12 @@
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tick() {
|
||||||
@@ -42,7 +34,7 @@ index 248ee263a853d1d3148746a63ba422115853f6a1..bd4d3a920e015db49436336cc180bc0b
|
|||||||
this.noPhysics = this.isSpectator();
|
this.noPhysics = this.isSpectator();
|
||||||
if (this.isSpectator() || this.isPassenger()) {
|
if (this.isSpectator() || this.isPassenger()) {
|
||||||
this.setOnGround(false);
|
this.setOnGround(false);
|
||||||
@@ -355,6 +370,17 @@ public abstract class Player extends LivingEntity {
|
@@ -365,6 +_,17 @@
|
||||||
this.turtleHelmetTick();
|
this.turtleHelmetTick();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,7 +52,7 @@ index 248ee263a853d1d3148746a63ba422115853f6a1..bd4d3a920e015db49436336cc180bc0b
|
|||||||
this.cooldowns.tick();
|
this.cooldowns.tick();
|
||||||
this.updatePlayerPose();
|
this.updatePlayerPose();
|
||||||
if (this.currentImpulseContextResetGraceTime > 0) {
|
if (this.currentImpulseContextResetGraceTime > 0) {
|
||||||
@@ -620,7 +646,7 @@ public abstract class Player extends LivingEntity {
|
@@ -630,7 +_,7 @@
|
||||||
List<Entity> list = Lists.newArrayList();
|
List<Entity> list = Lists.newArrayList();
|
||||||
|
|
||||||
for (Entity entity : entities) {
|
for (Entity entity : entities) {
|
||||||
@@ -69,7 +61,7 @@ index 248ee263a853d1d3148746a63ba422115853f6a1..bd4d3a920e015db49436336cc180bc0b
|
|||||||
list.add(entity);
|
list.add(entity);
|
||||||
} else if (!entity.isRemoved()) {
|
} else if (!entity.isRemoved()) {
|
||||||
this.touch(entity);
|
this.touch(entity);
|
||||||
@@ -1214,7 +1240,7 @@ public abstract class Player extends LivingEntity {
|
@@ -1226,7 +_,7 @@
|
||||||
flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper - Toggleable player crits
|
flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper - Toggleable player crits
|
||||||
if (flag2) {
|
if (flag2) {
|
||||||
damageSource = damageSource.critical(); // Paper - critical damage API
|
damageSource = damageSource.critical(); // Paper - critical damage API
|
||||||
@@ -78,7 +70,7 @@ index 248ee263a853d1d3148746a63ba422115853f6a1..bd4d3a920e015db49436336cc180bc0b
|
|||||||
}
|
}
|
||||||
|
|
||||||
float f2 = f + f1;
|
float f2 = f + f1;
|
||||||
@@ -1811,7 +1837,23 @@ public abstract class Player extends LivingEntity {
|
@@ -1823,7 +_,23 @@
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getBaseExperienceReward(ServerLevel level) {
|
protected int getBaseExperienceReward(ServerLevel level) {
|
||||||
@@ -103,17 +95,17 @@ index 248ee263a853d1d3148746a63ba422115853f6a1..bd4d3a920e015db49436336cc180bc0b
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1850,6 +1892,13 @@ public abstract class Player extends LivingEntity {
|
@@ -1861,6 +_,13 @@
|
||||||
|
public boolean addItem(ItemStack stack) {
|
||||||
return this.inventory.add(stack);
|
return this.inventory.add(stack);
|
||||||
}
|
}
|
||||||
|
+
|
||||||
+ // Purpur start - Player ridable in water option
|
+ // Purpur start - Player ridable in water option
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public boolean dismountsUnderwater() {
|
+ public boolean dismountsUnderwater() {
|
||||||
+ return !level().purpurConfig.playerRidableInWater;
|
+ return !level().purpurConfig.playerRidableInWater;
|
||||||
+ }
|
+ }
|
||||||
+ // Purpur end - Player ridable in water option
|
+ // Purpur end - Player ridable in water option
|
||||||
+
|
|
||||||
public boolean setEntityOnShoulder(CompoundTag entityCompound) {
|
public boolean setEntityOnShoulder(CompoundTag entityCompound) {
|
||||||
if (this.isPassenger() || !this.onGround() || this.isInWater() || this.isInPowderSnow) {
|
if (this.isPassenger() || !this.onGround() || this.isInWater() || this.isInPowderSnow) {
|
||||||
return false;
|
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
From 10208bcef5c949e133092f588296ebb6e22f36d8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: File <noreply+automated@papermc.io>
|
|
||||||
Date: Sun, 20 Apr 1997 06:37:42 -0700
|
|
||||||
Subject: [PATCH] purpur File Patches
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/inventory/AnvilMenu.java b/net/minecraft/world/inventory/AnvilMenu.java
|
|
||||||
index 65c400444314049d5529f1f76d65fbd6b1ea7af2..bcffac9f7781ea489e8e4d778181b9ae2392590f 100644
|
|
||||||
--- a/net/minecraft/world/inventory/AnvilMenu.java
|
--- a/net/minecraft/world/inventory/AnvilMenu.java
|
||||||
+++ b/net/minecraft/world/inventory/AnvilMenu.java
|
+++ b/net/minecraft/world/inventory/AnvilMenu.java
|
||||||
@@ -20,6 +20,12 @@ import net.minecraft.world.level.block.AnvilBlock;
|
@@ -21,6 +_,12 @@
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
@@ -21,7 +13,7 @@ index 65c400444314049d5529f1f76d65fbd6b1ea7af2..bcffac9f7781ea489e8e4d778181b9ae
|
|||||||
public class AnvilMenu extends ItemCombinerMenu {
|
public class AnvilMenu extends ItemCombinerMenu {
|
||||||
public static final int INPUT_SLOT = 0;
|
public static final int INPUT_SLOT = 0;
|
||||||
public static final int ADDITIONAL_SLOT = 1;
|
public static final int ADDITIONAL_SLOT = 1;
|
||||||
@@ -49,6 +55,10 @@ public class AnvilMenu extends ItemCombinerMenu {
|
@@ -50,6 +_,10 @@
|
||||||
private org.bukkit.craftbukkit.inventory.view.CraftAnvilView bukkitEntity;
|
private org.bukkit.craftbukkit.inventory.view.CraftAnvilView bukkitEntity;
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
public boolean bypassEnchantmentLevelRestriction = false; // Paper - bypass anvil level restrictions
|
public boolean bypassEnchantmentLevelRestriction = false; // Paper - bypass anvil level restrictions
|
||||||
@@ -32,7 +24,7 @@ index 65c400444314049d5529f1f76d65fbd6b1ea7af2..bcffac9f7781ea489e8e4d778181b9ae
|
|||||||
|
|
||||||
public AnvilMenu(int containerId, Inventory playerInventory) {
|
public AnvilMenu(int containerId, Inventory playerInventory) {
|
||||||
this(containerId, playerInventory, ContainerLevelAccess.NULL);
|
this(containerId, playerInventory, ContainerLevelAccess.NULL);
|
||||||
@@ -74,12 +84,17 @@ public class AnvilMenu extends ItemCombinerMenu {
|
@@ -75,12 +_,17 @@
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean mayPickup(Player player, boolean hasStack) {
|
protected boolean mayPickup(Player player, boolean hasStack) {
|
||||||
@@ -51,7 +43,7 @@ index 65c400444314049d5529f1f76d65fbd6b1ea7af2..bcffac9f7781ea489e8e4d778181b9ae
|
|||||||
player.giveExperienceLevels(-this.cost.get());
|
player.giveExperienceLevels(-this.cost.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,13 +141,19 @@ public class AnvilMenu extends ItemCombinerMenu {
|
@@ -133,13 +_,19 @@
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createResult() {
|
public void createResult() {
|
||||||
@@ -72,7 +64,7 @@ index 65c400444314049d5529f1f76d65fbd6b1ea7af2..bcffac9f7781ea489e8e4d778181b9ae
|
|||||||
ItemStack itemStack = item.copy();
|
ItemStack itemStack = item.copy();
|
||||||
ItemStack item1 = this.inputSlots.getItem(1);
|
ItemStack item1 = this.inputSlots.getItem(1);
|
||||||
ItemEnchantments.Mutable mutable = new ItemEnchantments.Mutable(EnchantmentHelper.getEnchantmentsForCrafting(itemStack));
|
ItemEnchantments.Mutable mutable = new ItemEnchantments.Mutable(EnchantmentHelper.getEnchantmentsForCrafting(itemStack));
|
||||||
@@ -190,23 +211,34 @@ public class AnvilMenu extends ItemCombinerMenu {
|
@@ -197,23 +_,34 @@
|
||||||
int intValue = entry.getIntValue();
|
int intValue = entry.getIntValue();
|
||||||
intValue = level == intValue ? intValue + 1 : Math.max(intValue, level);
|
intValue = level == intValue ? intValue + 1 : Math.max(intValue, level);
|
||||||
Enchantment enchantment = holder.value();
|
Enchantment enchantment = holder.value();
|
||||||
@@ -111,7 +103,7 @@ index 65c400444314049d5529f1f76d65fbd6b1ea7af2..bcffac9f7781ea489e8e4d778181b9ae
|
|||||||
intValue = enchantment.getMaxLevel();
|
intValue = enchantment.getMaxLevel();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -235,6 +267,54 @@ public class AnvilMenu extends ItemCombinerMenu {
|
@@ -242,6 +_,54 @@
|
||||||
if (!this.itemName.equals(item.getHoverName().getString())) {
|
if (!this.itemName.equals(item.getHoverName().getString())) {
|
||||||
i1 = 1;
|
i1 = 1;
|
||||||
i += i1;
|
i += i1;
|
||||||
@@ -166,7 +158,7 @@ index 65c400444314049d5529f1f76d65fbd6b1ea7af2..bcffac9f7781ea489e8e4d778181b9ae
|
|||||||
itemStack.set(DataComponents.CUSTOM_NAME, Component.literal(this.itemName));
|
itemStack.set(DataComponents.CUSTOM_NAME, Component.literal(this.itemName));
|
||||||
}
|
}
|
||||||
} else if (item.has(DataComponents.CUSTOM_NAME)) {
|
} else if (item.has(DataComponents.CUSTOM_NAME)) {
|
||||||
@@ -259,6 +339,12 @@ public class AnvilMenu extends ItemCombinerMenu {
|
@@ -266,6 +_,12 @@
|
||||||
this.onlyRenaming = true;
|
this.onlyRenaming = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -179,7 +171,7 @@ index 65c400444314049d5529f1f76d65fbd6b1ea7af2..bcffac9f7781ea489e8e4d778181b9ae
|
|||||||
if (this.cost.get() >= this.maximumRepairCost && !this.player.hasInfiniteMaterials()) { // CraftBukkit
|
if (this.cost.get() >= this.maximumRepairCost && !this.player.hasInfiniteMaterials()) { // CraftBukkit
|
||||||
itemStack = ItemStack.EMPTY;
|
itemStack = ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
@@ -279,6 +365,13 @@ public class AnvilMenu extends ItemCombinerMenu {
|
@@ -286,6 +_,13 @@
|
||||||
|
|
||||||
org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareAnvilEvent(this.getBukkitView(), itemStack); // CraftBukkit
|
org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareAnvilEvent(this.getBukkitView(), itemStack); // CraftBukkit
|
||||||
this.broadcastChanges();
|
this.broadcastChanges();
|
||||||
@@ -193,7 +185,7 @@ index 65c400444314049d5529f1f76d65fbd6b1ea7af2..bcffac9f7781ea489e8e4d778181b9ae
|
|||||||
} else {
|
} else {
|
||||||
org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareAnvilEvent(this.getBukkitView(), ItemStack.EMPTY); // CraftBukkit
|
org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareAnvilEvent(this.getBukkitView(), ItemStack.EMPTY); // CraftBukkit
|
||||||
this.cost.set(AnvilMenu.DEFAULT_DENIED_COST); // CraftBukkit - use a variable for set a cost for denied item
|
this.cost.set(AnvilMenu.DEFAULT_DENIED_COST); // CraftBukkit - use a variable for set a cost for denied item
|
||||||
@@ -287,7 +380,7 @@ public class AnvilMenu extends ItemCombinerMenu {
|
@@ -294,7 +_,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int calculateIncreasedRepairCost(int oldRepairCost) {
|
public static int calculateIncreasedRepairCost(int oldRepairCost) {
|
||||||
|
|||||||
@@ -9,9 +9,9 @@
|
|||||||
// Paper start - Fire BlockExpEvent on grindstone use
|
// Paper start - Fire BlockExpEvent on grindstone use
|
||||||
org.bukkit.event.block.BlockExpEvent event = new org.bukkit.event.block.BlockExpEvent(org.bukkit.craftbukkit.block.CraftBlock.at(level, blockPos), this.getExperienceAmount(level));
|
org.bukkit.event.block.BlockExpEvent event = new org.bukkit.event.block.BlockExpEvent(org.bukkit.craftbukkit.block.CraftBlock.at(level, blockPos), this.getExperienceAmount(level));
|
||||||
event.callEvent();
|
event.callEvent();
|
||||||
- ExperienceOrb.award((ServerLevel) level, Vec3.atCenterOf(blockPos), event.getExpToDrop(), org.bukkit.entity.ExperienceOrb.SpawnReason.GRINDSTONE, player);
|
- ExperienceOrb.awardWithDirection((ServerLevel) level, Vec3.atCenterOf(blockPos), Vec3.ZERO, event.getExpToDrop(), org.bukkit.entity.ExperienceOrb.SpawnReason.GRINDSTONE, player, null);
|
||||||
+ org.purpurmc.purpur.event.inventory.GrindstoneTakeResultEvent grindstoneTakeResultEvent = new org.purpurmc.purpur.event.inventory.GrindstoneTakeResultEvent(player.getBukkitEntity(), getBukkitView(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), event.getExpToDrop()); grindstoneTakeResultEvent.callEvent(); // Purpur - Grindstone API
|
+ org.purpurmc.purpur.event.inventory.GrindstoneTakeResultEvent grindstoneTakeResultEvent = new org.purpurmc.purpur.event.inventory.GrindstoneTakeResultEvent(player.getBukkitEntity(), getBukkitView(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), event.getExpToDrop()); grindstoneTakeResultEvent.callEvent(); // Purpur - Grindstone API
|
||||||
+ ExperienceOrb.award((ServerLevel) level, Vec3.atCenterOf(blockPos), grindstoneTakeResultEvent.getExperienceAmount(), org.bukkit.entity.ExperienceOrb.SpawnReason.GRINDSTONE, player); // Purpur - Grindstone API
|
+ ExperienceOrb.awardWithDirection((ServerLevel) level, Vec3.atCenterOf(blockPos), Vec3.ZERO, grindstoneTakeResultEvent.getExperienceAmount(), org.bukkit.entity.ExperienceOrb.SpawnReason.GRINDSTONE, player, null); // Purpur - Grindstone API
|
||||||
// Paper end - Fire BlockExpEvent on grindstone use
|
// Paper end - Fire BlockExpEvent on grindstone use
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
From 10208bcef5c949e133092f588296ebb6e22f36d8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: File <noreply+automated@papermc.io>
|
|
||||||
Date: Sun, 20 Apr 1997 06:37:42 -0700
|
|
||||||
Subject: [PATCH] purpur File Patches
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/level/BaseSpawner.java b/net/minecraft/world/level/BaseSpawner.java
|
|
||||||
index 650ebce14d618076cec2066d134d2ae51a87076a..0babc951d9fed6d32d3dba549cc5ced4dc6b0588 100644
|
|
||||||
--- a/net/minecraft/world/level/BaseSpawner.java
|
--- a/net/minecraft/world/level/BaseSpawner.java
|
||||||
+++ b/net/minecraft/world/level/BaseSpawner.java
|
+++ b/net/minecraft/world/level/BaseSpawner.java
|
||||||
@@ -54,6 +54,7 @@ public abstract class BaseSpawner {
|
@@ -61,6 +_,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isNearPlayer(Level level, BlockPos pos) {
|
public boolean isNearPlayer(Level level, BlockPos pos) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/net/minecraft/world/level/Level.java
|
--- a/net/minecraft/world/level/Level.java
|
||||||
+++ b/net/minecraft/world/level/Level.java
|
+++ b/net/minecraft/world/level/Level.java
|
||||||
@@ -152,11 +_,55 @@
|
@@ -159,11 +_,55 @@
|
||||||
}
|
}
|
||||||
// Paper end - add paper world config
|
// Paper end - add paper world config
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
public CraftWorld getWorld() {
|
public CraftWorld getWorld() {
|
||||||
return this.world;
|
return this.world;
|
||||||
}
|
}
|
||||||
@@ -199,6 +_,8 @@
|
@@ -207,6 +_,8 @@
|
||||||
) {
|
) {
|
||||||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) levelData).getLevelName()); // Spigot
|
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) levelData).getLevelName()); // Spigot
|
||||||
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
|
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
this.generator = generator;
|
this.generator = generator;
|
||||||
this.world = new CraftWorld((ServerLevel) this, generator, biomeProvider, environment);
|
this.world = new CraftWorld((ServerLevel) this, generator, biomeProvider, environment);
|
||||||
|
|
||||||
@@ -1407,4 +_,14 @@
|
@@ -1417,4 +_,14 @@
|
||||||
return this.id;
|
return this.id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
From 10208bcef5c949e133092f588296ebb6e22f36d8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: File <noreply+automated@papermc.io>
|
|
||||||
Date: Sun, 20 Apr 1997 06:37:42 -0700
|
|
||||||
Subject: [PATCH] purpur File Patches
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
|
||||||
index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..77db68349aa73d33b86a867099c9395c96d5a02d 100644
|
|
||||||
--- a/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
--- a/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
||||||
+++ b/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
+++ b/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
||||||
@@ -308,7 +308,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
|
@@ -49,7 +_,7 @@
|
||||||
|
|
||||||
// Paper start
|
// Paper start
|
||||||
private static void printOversizedLog(String msg, Path file, int x, int z) {
|
private static void printOversizedLog(String msg, Path file, int x, int z) {
|
||||||
@@ -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/>.
|
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
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
index 041fc1d4182834bda5de9b2172601a2a59b5514b..2c87953a3b99c5e776fe06271d5cba5cc355bf53 100644
|
index 771bd838bdda98f0cb626e58be893ee82140f81e..1e153eb974be9d1fde9d3a0ad2d8fbd2c3c44803 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
@@ -301,6 +301,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
@@ -304,6 +304,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||||
boolean retainPassengers = flagSet.contains(io.papermc.paper.entity.TeleportFlag.EntityState.RETAIN_PASSENGERS);
|
boolean retainPassengers = flagSet.contains(io.papermc.paper.entity.TeleportFlag.EntityState.RETAIN_PASSENGERS);
|
||||||
// Don't allow teleporting between worlds while keeping passengers
|
// Don't allow teleporting between worlds while keeping passengers
|
||||||
if (flagSet.contains(io.papermc.paper.entity.TeleportFlag.EntityState.RETAIN_PASSENGERS) && this.entity.isVehicle() && location.getWorld() != this.getWorld()) {
|
if (flagSet.contains(io.papermc.paper.entity.TeleportFlag.EntityState.RETAIN_PASSENGERS) && this.entity.isVehicle() && location.getWorld() != this.getWorld()) {
|
||||||
@@ -29,10 +29,10 @@ index 041fc1d4182834bda5de9b2172601a2a59b5514b..2c87953a3b99c5e776fe06271d5cba5c
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
index 3c8e98218e4bc63a9260ea31af10981e033fe81b..fcc7bc9098e2544588d8b36dd0cff59e6a2563bd 100644
|
index e48849bff8e64a16f04d75ad3f0ff769ef3a813e..0d303c3c614142b4183e76f9347e613d7e6db211 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
@@ -1436,6 +1436,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -1439,6 +1439,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
// Paper start - Teleport passenger API
|
// Paper start - Teleport passenger API
|
||||||
// Don't allow teleporting between worlds while keeping passengers
|
// Don't allow teleporting between worlds while keeping passengers
|
||||||
if (ignorePassengers && entity.isVehicle() && location.getWorld() != this.getWorld()) {
|
if (ignorePassengers && entity.isVehicle() && location.getWorld() != this.getWorld()) {
|
||||||
@@ -40,7 +40,7 @@ index 3c8e98218e4bc63a9260ea31af10981e033fe81b..fcc7bc9098e2544588d8b36dd0cff59e
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1457,6 +1458,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -1460,6 +1461,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API
|
if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight
|
|||||||
Co-authored by: Encode42 <me@encode42.dev>
|
Co-authored by: Encode42 <me@encode42.dev>
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
index 2c87953a3b99c5e776fe06271d5cba5cc355bf53..395951c968e95adffa97e1851d104faf192744fd 100644
|
index 1e153eb974be9d1fde9d3a0ad2d8fbd2c3c44803..86a9adcb98281396b7447aac20b87cb8c15557dd 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
@@ -112,6 +112,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
@@ -115,6 +115,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||||
}
|
}
|
||||||
// Purpur end - Fire Immunity API
|
// Purpur end - Fire Immunity API
|
||||||
|
|
||||||
|
|||||||
@@ -13,12 +13,12 @@
|
|||||||
getManifestAttribute(manifest, ATTRIBUTE_BRAND_ID)
|
getManifestAttribute(manifest, ATTRIBUTE_BRAND_ID)
|
||||||
.map(Key::key)
|
.map(Key::key)
|
||||||
- .orElse(BRAND_PAPER_ID),
|
- .orElse(BRAND_PAPER_ID),
|
||||||
+ .orElse(BRAND_PURPUR_ID), // Purpur - Fix pufferfish issues // Purpur - Rebrand
|
+ .orElse(BRAND_PURPUR_ID), // Purpur - Rebrand
|
||||||
getManifestAttribute(manifest, ATTRIBUTE_BRAND_NAME)
|
getManifestAttribute(manifest, ATTRIBUTE_BRAND_NAME)
|
||||||
- .orElse(BRAND_PAPER_NAME),
|
- .orElse(BRAND_PAPER_NAME),
|
||||||
+ .orElse(BRAND_PURPUR_NAME), // Purpur - Fix pufferfish issues // Purpur - Rebrand
|
+ .orElse(BRAND_PURPUR_NAME), // Purpur - Rebrand
|
||||||
SharedConstants.getCurrentVersion().getId(),
|
SharedConstants.getCurrentVersion().id(),
|
||||||
SharedConstants.getCurrentVersion().getName(),
|
SharedConstants.getCurrentVersion().name(),
|
||||||
getManifestAttribute(manifest, ATTRIBUTE_BUILD_NUMBER)
|
getManifestAttribute(manifest, ATTRIBUTE_BUILD_NUMBER)
|
||||||
@@ -61,7 +_,7 @@
|
@@ -61,7 +_,7 @@
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
|
||||||
@@ -336,6 +_,12 @@
|
@@ -340,6 +_,12 @@
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
CompoundTag data = this.getData();
|
CompoundTag data = this.getData();
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
return null;
|
return null;
|
||||||
@@ -573,4 +_,183 @@
|
@@ -577,4 +_,183 @@
|
||||||
manager.save();
|
manager.save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftConduit.java
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftConduit.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftConduit.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftConduit.java
|
||||||
@@ -73,7 +_,7 @@
|
@@ -75,7 +_,7 @@
|
||||||
public int getRange() {
|
public int getRange() {
|
||||||
this.ensureNoWorldGeneration();
|
this.ensureNoWorldGeneration();
|
||||||
ConduitBlockEntity conduit = (ConduitBlockEntity) this.getBlockEntityFromWorld();
|
ConduitBlockEntity conduit = (ConduitBlockEntity) this.getBlockEntityFromWorld();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
@@ -100,6 +_,18 @@
|
@@ -103,6 +_,18 @@
|
||||||
this.entityType = CraftEntityType.minecraftToBukkit(entity.getType());
|
this.entityType = CraftEntityType.minecraftToBukkit(entity.getType());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
||||||
@@ -295,6 +_,7 @@
|
@@ -301,6 +_,7 @@
|
||||||
@Override
|
@Override
|
||||||
public void recalculatePermissions() {
|
public void recalculatePermissions() {
|
||||||
this.perm.recalculatePermissions();
|
this.perm.recalculatePermissions();
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
|
||||||
@@ -143,4 +_,53 @@
|
@@ -145,4 +_,53 @@
|
||||||
public UUID getThrower() {
|
public UUID getThrower() {
|
||||||
return this.getHandle().thrower;
|
return Optionull.map(this.getHandle().thrower, EntityReference::getUUID);
|
||||||
}
|
}
|
||||||
+
|
+
|
||||||
+ // Purpur start - Item entity immunities
|
+ // Purpur start - Item entity immunities
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
@@ -614,10 +_,15 @@
|
@@ -617,10 +_,15 @@
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setPlayerListName(String name) {
|
public void setPlayerListName(String name) {
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined
|
if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined
|
||||||
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
|
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
|
||||||
if (player.getBukkitEntity().canSee(this)) {
|
if (player.getBukkitEntity().canSee(this)) {
|
||||||
@@ -2723,6 +_,28 @@
|
@@ -2718,6 +_,28 @@
|
||||||
return this.getHandle().getAbilities().walkingSpeed * 2f;
|
return this.getHandle().getAbilities().walkingSpeed * 2f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
private void validateSpeed(float value) {
|
private void validateSpeed(float value) {
|
||||||
Preconditions.checkArgument(value <= 1f && value >= -1f, "Speed value (%s) need to be between -1f and 1f", value);
|
Preconditions.checkArgument(value <= 1f && value >= -1f, "Speed value (%s) need to be between -1f and 1f", value);
|
||||||
}
|
}
|
||||||
@@ -3576,4 +_,76 @@
|
@@ -3571,4 +_,76 @@
|
||||||
public void setDeathScreenScore(final int score) {
|
public void setDeathScreenScore(final int score) {
|
||||||
getHandle().setScore(score);
|
getHandle().setScore(score);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
@@ -485,7 +_,7 @@
|
@@ -487,7 +_,7 @@
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {
|
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {
|
||||||
|
|||||||
Reference in New Issue
Block a user