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@e3aca921 Replace ConcurrentUtil's Validate with Objects PaperMC/Paper@9a626dd7 Rewrite ticket counter system PaperMC/Paper@65250cbe Drop "Optimize Collision to not load chunks" PaperMC/Paper@55d56d91 Apply "Flush regionfiles on save configuration option" PaperMC/Paper@920e8d35 Apply "Optimise collision checking in player move packet handling" PaperMC/Paper@ec492d3f Apply "Improve keepalive ping system" PaperMC/Paper@8f659478 Apply "Optimise EntityScheduler ticking" PaperMC/Paper@086b4fd4 Apply "Optional per player mob spawns" PaperMC/Paper@2f4211ed Apply "Improve cancelling PreCreatureSpawnEvent with per player mob spawns" PaperMC/Paper@b6d95574 Apply "Optimize Hoppers" PaperMC/Paper@388e6936 update generator PaperMC/Paper@a3c89a8f add javadocs for new api PaperMC/Paper@fcc763ad Call BlockRedstoneEvent for the shelf PaperMC/Paper@03eb18bb replace requireNonNull by checkArgument and deprecate MCUtil#toLocation PaperMC/Paper@6b7bf014 bump built-in datapack version PaperMC/Paper@2779a538 deprecate #lanterns material tag in favour of vanilla tag PaperMC/Paper@6f9957e8 Mannequin#createDefaultProfile -> Mannequin#defaultProfile PaperMC/Paper@24874e53 Also rename Mannequin profile getter/setters for consistency PaperMC/Paper@bc2ae107 Fix default respawn dimension being null for new worlds PaperMC/Paper@eb421583 Use 0.0.4 release of ConcurrentUtil PaperMC/Paper@bb017458 1.21.9-pre2 PaperMC/Paper@02492043 1.21.9-pre2 feature patches PaperMC/Paper@9360ba42 Identifying comments for MinecraftServer PaperMC/Paper@5d3aa537 Some diff improvements in prepare spawn task PaperMC/Paper@22ad4519 Move some stuff to ATs PaperMC/Paper@0ea15c97 Drop no longer applicable ATs PaperMC/Paper@cf78f2a2 bump api-version/datapack format and add a copper torch tag PaperMC/Paper@60cb0dfc generate ClientOption enums and mark CraftBlockData impl as null marked PaperMC/Paper@40252892 Add pre2 to api version PaperMC/Paper@f2cb073a Set build channel to alpha PaperMC/Paper@90b29c4c Port most of the anti-xray patch PaperMC/Paper@4a8e88dc Disable oldPaperCommit to fix CI build PaperMC/Paper@121ac2eb Port the last Anti-XRay hunk PaperMC/Paper@f43641f8 Use ConcurrentUtil 0.0.5 PaperMC/Paper@1f79388d fix end portal teleportation PaperMC/Paper@2efb400a [ci/skip] Adjust spawn location event docs PaperMC/Paper@cb9fc05d simplify overloads PaperMC/Paper@25ecc590 Enable Anti-Xray PaperMC/Paper@4d7185f6 Add AsyncPlayerSpawnLocationEvent#isNewPlayer (#13081) PaperMC/Paper@dc474a89 Fixup vanilla code for Anti-Xray changes PaperMC/Paper@0e23b024 Add back null check for chunkPacketBlockController
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
group = org.purpurmc.purpur
|
||||
version = 1.21.9-R0.1-SNAPSHOT
|
||||
version = 1.21.9-pre2-R0.1-SNAPSHOT
|
||||
|
||||
mcVersion = 1.21.9-pre1
|
||||
paperCommit = 8bb12cbd3570dc8cfc6b0318cc2ace0a70a50784
|
||||
mcVersion = 1.21.9-pre2
|
||||
paperCommit = 0e23b0242c3a72df13f7bbb297ab024d4dc545b6
|
||||
|
||||
org.gradle.configuration-cache = true
|
||||
org.gradle.caching = true
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Purpur config files
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||
index 65c13fa74383d2a52fc4b997aa760287551df2f4..9a520f27d347726a09bfb06d22be82de3d56e00b 100644
|
||||
index afa52218722e2d7f3995f3f51be9dabb267a2d2f..bf664ec7a3974abdb7fd3266b08803a02cb05929 100644
|
||||
--- a/src/main/java/org/bukkit/Server.java
|
||||
+++ b/src/main/java/org/bukkit/Server.java
|
||||
@@ -2390,6 +2390,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
@@ -2424,6 +2424,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
}
|
||||
// Paper end
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/Material.java
|
||||
+++ b/src/main/java/org/bukkit/Material.java
|
||||
@@ -3692,4 +_,40 @@
|
||||
@@ -3690,4 +_,40 @@
|
||||
return this.asItemType().getDefaultDataTypes();
|
||||
}
|
||||
// Paper end - data component API
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/Server.java
|
||||
+++ b/src/main/java/org/bukkit/Server.java
|
||||
@@ -2726,4 +_,111 @@
|
||||
@@ -2760,4 +_,111 @@
|
||||
*/
|
||||
void allowPausing(@NotNull org.bukkit.plugin.Plugin plugin, boolean value);
|
||||
// Paper end - API to check if the server is sleeping
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/World.java
|
||||
+++ b/src/main/java/org/bukkit/World.java
|
||||
@@ -4331,6 +_,86 @@
|
||||
@@ -4488,6 +_,86 @@
|
||||
@Nullable
|
||||
public DragonBattle getEnderDragonBattle();
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
@@ -1463,4 +_,20 @@
|
||||
@@ -1467,4 +_,20 @@
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
@NotNull CombatTracker getCombatTracker();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -3932,4 +_,123 @@
|
||||
@@ -4003,4 +_,123 @@
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
PlayerGameConnection getConnection();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/entity/Villager.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Villager.java
|
||||
@@ -408,4 +_,13 @@
|
||||
@@ -406,4 +_,13 @@
|
||||
* Demand is still updated even if all events are canceled.
|
||||
*/
|
||||
public void restock();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/entity/Wolf.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Wolf.java
|
||||
@@ -163,4 +_,20 @@
|
||||
@@ -162,4 +_,20 @@
|
||||
return RegistryAccess.registryAccess().getRegistry(RegistryKey.WOLF_SOUND_VARIANT).getOrThrow(NamespacedKey.minecraft(key));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
plugins {
|
||||
`java-library`
|
||||
@@ -26,15 +_,27 @@
|
||||
@@ -26,6 +_,18 @@
|
||||
minecraftVersion = providers.gradleProperty("mcVersion")
|
||||
gitFilePatches = false
|
||||
|
||||
@@ -27,19 +27,7 @@
|
||||
spigot {
|
||||
enabled = false
|
||||
buildDataRef = "436eac9815c211be1a2a6ca0702615f995e81c44"
|
||||
packageVersion = "v1_21_R5" // also needs to be updated in MappingEnvironment
|
||||
}
|
||||
|
||||
- updatingMinecraft {
|
||||
- oldPaperCommit = "29c8822d90899c89d2689338e81a98f690bcba12" // 1.21.8 main
|
||||
- }
|
||||
+ // updatingMinecraft {
|
||||
+ // oldPaperCommit = "29c8822d90899c89d2689338e81a98f690bcba12" // 1.21.8 main
|
||||
+ // }
|
||||
|
||||
reobfPackagesToFix.addAll(
|
||||
"co.aikar.timings",
|
||||
@@ -111,7 +_,21 @@
|
||||
@@ -107,7 +_,21 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,16 +50,16 @@
|
||||
configurations.named(log4jPlugins.compileClasspathConfigurationName) {
|
||||
extendsFrom(configurations.compileClasspath.get())
|
||||
}
|
||||
@@ -133,7 +_,7 @@
|
||||
@@ -129,7 +_,7 @@
|
||||
}
|
||||
|
||||
dependencies {
|
||||
- implementation(project(":paper-api"))
|
||||
+ implementation(project(":purpur-api")) // Purpur
|
||||
implementation("ca.spottedleaf:concurrentutil:0.0.4-SNAPSHOT")
|
||||
implementation("ca.spottedleaf:concurrentutil:0.0.5")
|
||||
implementation("org.jline:jline-terminal-ffm:3.27.1") // use ffm on java 22+
|
||||
implementation("org.jline:jline-terminal-jni:3.27.1") // fall back to jni on java 21
|
||||
@@ -161,6 +_,10 @@
|
||||
@@ -157,6 +_,10 @@
|
||||
implementation("org.ow2.asm:asm-commons:9.8")
|
||||
implementation("org.spongepowered:configurate-yaml:4.2.0")
|
||||
|
||||
@@ -82,7 +70,7 @@
|
||||
// Deps that were previously in the API but have now been moved here for backwards compat, eventually to be removed
|
||||
runtimeOnly("commons-lang:commons-lang:2.6")
|
||||
runtimeOnly("org.xerial:sqlite-jdbc:3.49.1.0")
|
||||
@@ -205,14 +_,14 @@
|
||||
@@ -201,14 +_,14 @@
|
||||
val gitBranch = git.exec(providers, "rev-parse", "--abbrev-ref", "HEAD").get().trim()
|
||||
attributes(
|
||||
"Main-Class" to "org.bukkit.craftbukkit.Main",
|
||||
@@ -102,7 +90,7 @@
|
||||
"Build-Number" to (build ?: ""),
|
||||
"Build-Time" to buildTime.toString(),
|
||||
"Git-Branch" to gitBranch,
|
||||
@@ -271,7 +_,7 @@
|
||||
@@ -267,7 +_,7 @@
|
||||
jvmArgumentProviders.add(provider)
|
||||
}
|
||||
|
||||
@@ -111,10 +99,21 @@
|
||||
idea {
|
||||
module {
|
||||
generatedSourceDirs.add(generatedDir.toFile())
|
||||
@@ -374,6 +_,46 @@
|
||||
classpath(tasks.createReobfPaperclipJar.flatMap { it.outputZip })
|
||||
@@ -359,7 +_,7 @@
|
||||
mainClass.set(null as String?)
|
||||
}
|
||||
|
||||
-fill {
|
||||
+/* fill { // Purpur - we don't use fill
|
||||
project("paper")
|
||||
versionFamily(paperweight.minecraftVersion.map { it.split(".", "-").takeWhile { part -> part.toIntOrNull() != null }.take(2).joinToString(".") })
|
||||
version(paperweight.minecraftVersion)
|
||||
@@ -374,4 +_,44 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
-}
|
||||
+} */ // Purpur - we don't use fill
|
||||
+
|
||||
+// tasks.register("rebuildMinecraftSourcesWithGit") {
|
||||
+// group = "temp"
|
||||
@@ -155,6 +154,3 @@
|
||||
+//
|
||||
+// return files.size
|
||||
+// }
|
||||
|
||||
fill {
|
||||
project("paper")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -290,6 +_,7 @@
|
||||
@@ -291,6 +_,7 @@
|
||||
public joptsimple.OptionSet options;
|
||||
public org.bukkit.command.ConsoleCommandSender console;
|
||||
public static int currentTick; // Paper - improve tick loop
|
||||
@@ -8,7 +8,7 @@
|
||||
public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>();
|
||||
public int autosavePeriod;
|
||||
// Paper - don't store the vanilla dispatcher
|
||||
@@ -300,7 +_,7 @@
|
||||
@@ -301,7 +_,7 @@
|
||||
public static final int TICK_TIME = 1000000000 / MinecraftServer.TPS;
|
||||
private static final int SAMPLE_INTERVAL = 20; // Paper - improve server tick loop
|
||||
@Deprecated(forRemoval = true) // Paper
|
||||
@@ -17,7 +17,7 @@
|
||||
// Spigot end
|
||||
public volatile boolean hasFullyShutdown; // Paper - Improved watchdog support
|
||||
public volatile boolean abnormalExit; // Paper - Improved watchdog support
|
||||
@@ -309,6 +_,8 @@
|
||||
@@ -310,6 +_,8 @@
|
||||
public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
||||
private final Set<String> pluginsBlockingSleep = new java.util.HashSet<>(); // Paper - API to allow/disallow tick sleeping
|
||||
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
|
||||
AtomicReference<S> atomicReference = new AtomicReference<>();
|
||||
@@ -923,6 +_,15 @@
|
||||
@@ -927,6 +_,15 @@
|
||||
|
||||
LOGGER.info("Stopping server");
|
||||
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
|
||||
@@ -42,7 +42,7 @@
|
||||
// CraftBukkit start
|
||||
if (this.server != null) {
|
||||
this.server.spark.disable(); // Paper - spark
|
||||
@@ -1021,6 +_,8 @@
|
||||
@@ -1025,6 +_,8 @@
|
||||
this.safeShutdown(waitForServer, false);
|
||||
}
|
||||
public void safeShutdown(boolean waitForServer, boolean isRestarting) {
|
||||
@@ -51,7 +51,7 @@
|
||||
this.isRestarting = isRestarting;
|
||||
this.hasLoggedStop = true; // Paper - Debugging
|
||||
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
|
||||
@@ -1040,6 +_,7 @@
|
||||
@@ -1044,6 +_,7 @@
|
||||
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
|
||||
private long lastTick = 0;
|
||||
private long catchupTime = 0;
|
||||
@@ -59,7 +59,7 @@
|
||||
public final RollingAverage tps1 = new RollingAverage(60);
|
||||
public final RollingAverage tps5 = new RollingAverage(60 * 5);
|
||||
public final RollingAverage tps15 = new RollingAverage(60 * 15);
|
||||
@@ -1126,6 +_,16 @@
|
||||
@@ -1130,6 +_,16 @@
|
||||
}
|
||||
// Paper end - Add onboarding message for initial server start
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
while (this.running) {
|
||||
long l;
|
||||
if (!this.isPaused() && this.tickRateManager.isSprinting() && this.tickRateManager.checkShouldSprintThisTick()) {
|
||||
@@ -1150,14 +_,19 @@
|
||||
@@ -1154,14 +_,19 @@
|
||||
if (++MinecraftServer.currentTick % MinecraftServer.SAMPLE_INTERVAL == 0) {
|
||||
final long diff = currentTime - tickSection;
|
||||
final java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);
|
||||
@@ -99,7 +99,7 @@
|
||||
tickSection = currentTime;
|
||||
}
|
||||
// Paper end - further improve server tick loop
|
||||
@@ -1189,6 +_,12 @@
|
||||
@@ -1193,6 +_,12 @@
|
||||
profilerFiller.popPush("nextTickWait");
|
||||
this.mayHaveDelayedTasks = true;
|
||||
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + l, this.nextTickTimeNanos);
|
||||
@@ -112,7 +112,7 @@
|
||||
this.startMeasuringTaskExecutionTime();
|
||||
this.waitUntilNextTick();
|
||||
this.finishMeasuringTaskExecutionTime();
|
||||
@@ -1634,7 +_,7 @@
|
||||
@@ -1627,7 +_,7 @@
|
||||
long worldTime = level.getGameTime();
|
||||
final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight);
|
||||
for (Player entityhuman : level.players()) {
|
||||
@@ -121,7 +121,7 @@
|
||||
continue;
|
||||
}
|
||||
ServerPlayer entityplayer = (ServerPlayer) entityhuman;
|
||||
@@ -1805,7 +_,7 @@
|
||||
@@ -1799,7 +_,7 @@
|
||||
|
||||
@DontObfuscate
|
||||
public String getServerModName() {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
@@ -367,6 +_,7 @@
|
||||
@@ -368,6 +_,7 @@
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
@@ -484,6 +_,7 @@
|
||||
@@ -485,6 +_,7 @@
|
||||
public InteractionHand interactHand;
|
||||
public ItemStack interactItemStack;
|
||||
public InteractionResult useItemOn(ServerPlayer player, Level level, ItemStack stack, InteractionHand hand, BlockHitResult hitResult) {
|
||||
@@ -16,7 +16,7 @@
|
||||
BlockPos blockPos = hitResult.getBlockPos();
|
||||
BlockState blockState = level.getBlockState(blockPos);
|
||||
boolean cancelledBlock = false;
|
||||
@@ -526,7 +_,7 @@
|
||||
@@ -527,7 +_,7 @@
|
||||
boolean flag = !player.getMainHandItem().isEmpty() || !player.getOffhandItem().isEmpty();
|
||||
boolean flag1 = player.isSecondaryUseActive() && flag;
|
||||
ItemStack itemStack = stack.copy();
|
||||
@@ -25,7 +25,7 @@
|
||||
InteractionResult interactionResult = blockState.useItemOn(player.getItemInHand(hand), level, player, hand, hitResult);
|
||||
if (interactionResult.consumesAction()) {
|
||||
CriteriaTriggers.ITEM_USED_ON_BLOCK.trigger(player, blockPos, itemStack);
|
||||
@@ -572,4 +_,18 @@
|
||||
@@ -573,4 +_,18 @@
|
||||
public void setLevel(ServerLevel serverLevel) {
|
||||
this.level = serverLevel;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new LookAtPlayerGoal(this, Player.class, 8.0F, 0.02F, true));
|
||||
@@ -461,11 +_,21 @@
|
||||
@@ -457,11 +_,21 @@
|
||||
private void hitByShulkerBullet() {
|
||||
Vec3 vec3 = this.position();
|
||||
AABB boundingBox = this.getBoundingBox();
|
||||
@@ -48,7 +48,7 @@
|
||||
if (shulker != null) {
|
||||
shulker.setVariant(this.getVariant());
|
||||
shulker.snapTo(vec3);
|
||||
@@ -573,7 +_,7 @@
|
||||
@@ -569,7 +_,7 @@
|
||||
}
|
||||
|
||||
public Optional<DyeColor> getVariant() {
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
public int getDamageValue() {
|
||||
return Mth.clamp(this.getOrDefault(DataComponents.DAMAGE, 0), 0, this.getMaxDamage());
|
||||
}
|
||||
@@ -1203,6 +_,12 @@
|
||||
@@ -1209,6 +_,12 @@
|
||||
public boolean isEnchanted() {
|
||||
return !this.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY).isEmpty();
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/world/level/Level.java
|
||||
+++ b/net/minecraft/world/level/Level.java
|
||||
@@ -164,11 +_,55 @@
|
||||
@@ -165,11 +_,55 @@
|
||||
}
|
||||
// Paper end - add paper world config
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
public CraftWorld getWorld() {
|
||||
return this.world;
|
||||
}
|
||||
@@ -843,6 +_,8 @@
|
||||
@@ -845,6 +_,8 @@
|
||||
// Paper end - getblock optimisations - cache world height/sections
|
||||
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
|
||||
@@ -65,7 +65,7 @@
|
||||
this.generator = generator;
|
||||
this.world = new CraftWorld((ServerLevel) this, generator, biomeProvider, environment);
|
||||
|
||||
@@ -2108,4 +_,14 @@
|
||||
@@ -2112,4 +_,14 @@
|
||||
return this.id;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/world/level/NaturalSpawner.java
|
||||
+++ b/net/minecraft/world/level/NaturalSpawner.java
|
||||
@@ -208,7 +_,7 @@
|
||||
@@ -263,7 +_,7 @@
|
||||
mutableBlockPos.set(x, y, z);
|
||||
double d = x + 0.5;
|
||||
double d1 = z + 0.5;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/world/level/block/entity/BlockEntity.java
|
||||
+++ b/net/minecraft/world/level/block/entity/BlockEntity.java
|
||||
@@ -106,6 +_,10 @@
|
||||
@@ -107,6 +_,10 @@
|
||||
input.read("PublicBukkitValues", CompoundTag.CODEC)
|
||||
.ifPresent(this.persistentDataContainer::putAll);
|
||||
// Paper end - read persistent data container
|
||||
@@ -11,7 +11,7 @@
|
||||
}
|
||||
|
||||
public final void loadWithComponents(ValueInput input) {
|
||||
@@ -118,6 +_,11 @@
|
||||
@@ -119,6 +_,11 @@
|
||||
}
|
||||
|
||||
protected void saveAdditional(ValueOutput output) {
|
||||
@@ -23,7 +23,7 @@
|
||||
}
|
||||
|
||||
public final CompoundTag saveWithFullMetadata(HolderLookup.Provider registries) {
|
||||
@@ -406,4 +_,17 @@
|
||||
@@ -408,4 +_,17 @@
|
||||
return this.blockEntity.getNameForReporting() + "@" + this.blockEntity.getBlockPos();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Ridables
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
index 6f3f8f6f50437a0d0cec971c9290bc12f3824da8..b829cb03ff78a5ec252e1c7e27740ac489a4bb3d 100644
|
||||
index 60f1eba8751a0142cecbea379002ffe475107aa7..ae850c7366e438e5721f0914b48a1e36408e8917 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -1345,4 +1345,26 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
@@ -36,10 +36,10 @@ index 6f3f8f6f50437a0d0cec971c9290bc12f3824da8..b829cb03ff78a5ec252e1c7e27740ac4
|
||||
+ // Purpur end - Ridables
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
index 437d2add0b901baefee056daf4b5ed8694e8e467..1cc45ebaaac7cc503fb72531d881d7d3e59e2db3 100644
|
||||
index e16a347e673cdb431c18010e6a01eacfc674c09f..07723b1c68580c6e47a39235bd75ade560aeca5d 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
@@ -515,6 +515,15 @@ public class CraftEventFactory {
|
||||
@@ -516,6 +516,15 @@ public class CraftEventFactory {
|
||||
}
|
||||
craftServer.getPluginManager().callEvent(event);
|
||||
|
||||
@@ -55,7 +55,7 @@ index 437d2add0b901baefee056daf4b5ed8694e8e467..1cc45ebaaac7cc503fb72531d881d7d3
|
||||
return event;
|
||||
}
|
||||
|
||||
@@ -1047,6 +1056,7 @@ public class CraftEventFactory {
|
||||
@@ -1048,6 +1057,7 @@ public class CraftEventFactory {
|
||||
EntityDamageEvent event;
|
||||
if (damager != null) {
|
||||
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical);
|
||||
|
||||
@@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
index b829cb03ff78a5ec252e1c7e27740ac489a4bb3d..b1ffaeb5e4f0ac6adb600d2025b1f0cac2513dc2 100644
|
||||
index ae850c7366e438e5721f0914b48a1e36408e8917..e5d23a8d571fda492bc6dd6ee6694f175ff30ba1 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -314,6 +314,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
@@ -29,10 +29,10 @@ index b829cb03ff78a5ec252e1c7e27740ac489a4bb3d..b1ffaeb5e4f0ac6adb600d2025b1f0ca
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index acd531bf2d5c5040bf5e2ec2c8b880e3e8e2bc94..34498acf68e577c3654f46898c9f7d4eb1f9e9ef 100644
|
||||
index 33908430c27e8590b6509a1dea456b44ebb665c1..0d93eb5c28570c0d82846f3dfaeac28e94cb420c 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -1476,6 +1476,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
|
||||
@@ -1424,6 +1424,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
|
||||
// Paper start - Teleport passenger API
|
||||
// Don't allow teleporting between worlds while keeping passengers
|
||||
if (ignorePassengers && entity.isVehicle() && location.getWorld() != this.getWorld()) {
|
||||
@@ -40,7 +40,7 @@ index acd531bf2d5c5040bf5e2ec2c8b880e3e8e2bc94..34498acf68e577c3654f46898c9f7d4e
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1497,6 +1498,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
|
||||
@@ -1445,6 +1446,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
|
||||
}
|
||||
|
||||
if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] API for any mob to burn daylight
|
||||
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
|
||||
index b1ffaeb5e4f0ac6adb600d2025b1f0cac2513dc2..2d77ac2082c80b5e0d61e57ceaaddc0d57600a4b 100644
|
||||
index e5d23a8d571fda492bc6dd6ee6694f175ff30ba1..5e46428e5dd24c581c816125b52cb32de087d5f4 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -125,6 +125,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
@@ -24,10 +24,10 @@ index b1ffaeb5e4f0ac6adb600d2025b1f0cac2513dc2..2d77ac2082c80b5e0d61e57ceaaddc0d
|
||||
Preconditions.checkArgument(entity != null, "Unknown entity");
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
index c7605b0d7dc6797913067400902eb1a21df1b962..b15d68f583165ec950dfe039834f46a5491d2fcc 100644
|
||||
index 1ed274542d32a5efbf8af4d5a0f197c98902f810..1e79357a3f31efd479720e78821962e5d6ff6db4 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
@@ -1169,4 +1169,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
@@ -1142,4 +1142,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
public CombatTracker getCombatTracker() {
|
||||
return this.getHandle().getCombatTracker().paperCombatTracker;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--- a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
|
||||
@@ -144,6 +_,11 @@
|
||||
private static final Map<String, String> NESTED_CLASS_NAMES = Util.make(new HashMap<>(), map -> {
|
||||
@@ -143,6 +_,11 @@
|
||||
private static final Map<String, String> RENAMES = Util.make(new HashMap<>(), map -> {
|
||||
map.put("AbstractSkeleton$1", "AbstractSkeletonMelee");
|
||||
|
||||
+ // Purpur start - Add option to disable zombie aggressiveness towards villagers
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -417,6 +_,20 @@
|
||||
@@ -416,6 +_,20 @@
|
||||
this.paperPluginManager = new io.papermc.paper.plugin.manager.PaperPluginManagerImpl(this, this.commandMap, pluginManager);
|
||||
this.pluginManager.paperPluginManager = this.paperPluginManager;
|
||||
// Paper end
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
CraftRegistry.setMinecraftRegistry(console.registryAccess());
|
||||
|
||||
@@ -1029,6 +_,7 @@
|
||||
@@ -992,6 +_,7 @@
|
||||
|
||||
org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot
|
||||
this.console.paperConfigurations.reloadConfigs(this.console);
|
||||
@@ -29,7 +29,7 @@
|
||||
for (ServerLevel world : this.console.getAllLevels()) {
|
||||
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
|
||||
world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && world.getGameRules().getBoolean(GameRules.RULE_SPAWN_MONSTERS)); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
|
||||
@@ -1044,6 +_,7 @@
|
||||
@@ -1007,6 +_,7 @@
|
||||
}
|
||||
}
|
||||
world.spigotConfig.init(); // Spigot
|
||||
@@ -37,7 +37,7 @@
|
||||
}
|
||||
|
||||
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
|
||||
@@ -1061,6 +_,7 @@
|
||||
@@ -1024,6 +_,7 @@
|
||||
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
|
||||
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
|
||||
this.spark.registerCommandBeforePlugins(this); // Paper - spark
|
||||
@@ -45,7 +45,7 @@
|
||||
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
|
||||
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
||||
|
||||
@@ -1526,6 +_,60 @@
|
||||
@@ -1482,6 +_,60 @@
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
@Override
|
||||
public List<Recipe> getRecipesFor(ItemStack result) {
|
||||
Preconditions.checkArgument(result != null, "ItemStack cannot be null");
|
||||
@@ -2827,6 +_,18 @@
|
||||
@@ -2725,6 +_,18 @@
|
||||
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
@Override
|
||||
public void restart() {
|
||||
CraftServer.this.restart();
|
||||
@@ -2859,6 +_,7 @@
|
||||
@@ -2757,6 +_,7 @@
|
||||
@Override
|
||||
public double[] getTPS() {
|
||||
return new double[] {
|
||||
@@ -133,7 +133,7 @@
|
||||
net.minecraft.server.MinecraftServer.getServer().tps1.getAverage(),
|
||||
net.minecraft.server.MinecraftServer.getServer().tps5.getAverage(),
|
||||
net.minecraft.server.MinecraftServer.getServer().tps15.getAverage()
|
||||
@@ -3066,4 +_,18 @@
|
||||
@@ -2964,4 +_,18 @@
|
||||
public void allowPausing(final Plugin plugin, final boolean value) {
|
||||
this.console.addPluginAllowingSleep(plugin.getName(), value);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -2379,6 +_,50 @@
|
||||
@@ -1954,6 +_,50 @@
|
||||
return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight());
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
||||
@@ -294,6 +_,7 @@
|
||||
@@ -289,6 +_,7 @@
|
||||
@Override
|
||||
public void recalculatePermissions() {
|
||||
this.perm.recalculatePermissions();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
@@ -516,7 +_,7 @@
|
||||
@@ -506,7 +_,7 @@
|
||||
net.minecraft.server.level.ServerPlayer nmsKiller = killer == null ? null : ((CraftPlayer) killer).getHandle();
|
||||
this.getHandle().setLastHurtByMob(nmsKiller);
|
||||
if (nmsKiller != null) {
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
- this.getHandle().listName = name.equals(this.getName()) ? null : CraftChatMessage.fromStringOrNull(name);
|
||||
+ this.getHandle().listName = name.equals(this.getName()) ? null : useMM ? io.papermc.paper.adventure.PaperAdventure.asVanilla(net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(name)) : CraftChatMessage.fromStringOrNull(name); // Purpur - AFK API
|
||||
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 : this.server.getHandle().players) {
|
||||
if (player.getBukkitEntity().canSee(this)) {
|
||||
@@ -1025,6 +_,78 @@
|
||||
@@ -978,6 +_,78 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,9 +94,9 @@
|
||||
+ // Purpur end - Death screen API
|
||||
+
|
||||
@Override
|
||||
public void sendBlockDamage(Location loc, float progress) {
|
||||
this.sendBlockDamage(loc, progress, this.getEntityId());
|
||||
@@ -2695,6 +_,28 @@
|
||||
public void sendBlockDamage(Location loc, float progress, org.bukkit.entity.Entity source) {
|
||||
Preconditions.checkArgument(source != null, "source must not be null");
|
||||
@@ -2590,6 +_,28 @@
|
||||
public float getWalkSpeed() {
|
||||
return this.getHandle().getAbilities().walkingSpeed * 2f;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user