mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@46c6f49 Fix Registry#getKey implementation PaperMC/Paper@4c6ea84 move junit platform dep to -server and -api PaperMC/Paper@c31d95e remove test plugin diff accidentally committed PaperMC/Paper@90d50aa update .editorconfig PaperMC/Paper@8ad15d6 Update minecraft dir references PaperMC/Paper@083c083 Fix a bunch more issues arising from mutable types (#11769) PaperMC/Paper@eb793c3 [ci skip] more cleanup from repo reorg PaperMC/Paper@f8bf600 Fix potion effect type removal (#11778) PaperMC/Paper@188124b Fix totems negating incorrect item (#11776) PaperMC/Paper@a0b3326 refactor registry entry to detach 'delayed' from other meta PaperMC/Paper@cbf630d Move missing import into feature patches to fix pre-features compile PaperMC/Paper@17f649d Fix PlayerTradeEvent visual issue when being cancelled (#11773) PaperMC/Paper@976b0a4 [ci skip] Simplify and update contribution guidelines PaperMC/Paper@63c94c9 [ci skip] Comment out update tasks, update comments PaperMC/Paper@62d4130 [ci skip] Fix Inventory#addItem javadoc mismatch with behaviour (#11782) PaperMC/Paper@bd4c235 Throw during plugin update folder process on failed rename/delete (#11784) PaperMC/Paper@793d361 Fix recipe book items order (#11787) PaperMC/Paper@c768099 Fix tripwires (#11790) PaperMC/Paper@17d76ae Correctly die when cancelling EntityResurrectEvent (#11785) PaperMC/Paper@aa2c52b Fix dropper inventory var PaperMC/Paper@d0d0efe Partially revert 083c083188 for Transformation (#11798) PaperMC/Paper@b8a0541 Fix 0 parameter in Player#applyMending (#11802) PaperMC/Paper@9e2d39c Fix double chest identification (#11812) PaperMC/Paper@321d17c [ci skip] Only build PRs on correct label (#11811) PaperMC/Paper@d568e17 Port basic lookAt methods from Player to Entity (#11775) PaperMC/Paper@25cc3d8 Fix EnchantmentView#setOffers length precondition being flipped (#11818) PaperMC/Paper@763b32d Fix framed maps looping through all players in world (#11819) PaperMC/Paper@946314f Remove disableTeleportationSuffocationCheck config (#11822) PaperMC/Paper@140577b Fix broken field rename compat for instrument "feel_goat_horn" (#11824) PaperMC/Paper@a07cec1 Add effective name to ItemStack (#11770) PaperMC/Paper@3a479ea Add Registry#getTags (#11795) PaperMC/Paper@d85d318 Fix NullPointerException in PlayerInteractEvent#getClickedPosition (#11827) PaperMC/Paper@3331805 Deprecate #furnace_materials item tag (#11823) PaperMC/Paper@c9a904e Fix keepalive logic resetting counter PaperMC/Paper@a8f850a temporarily revert OldEnum toString changes (#11829) PaperMC/Paper@a14c06b fix annotation test for null marked inner classes (#11826) PaperMC/Paper@f51aa3e Fix BlockRedstoneEvent for tripwire hooks (#11791) PaperMC/Paper@af2812f For new registry values, allow copying from existing (#11796) PaperMC/Paper@0efd301 Fix suggestions for ResourceLocation (#11830) PaperMC/Paper@aac246a Expand on entity serialization API (#11807) PaperMC/Paper@953f6f9 Banner pattern registry modification (#11803) PaperMC/Paper@a5b8df6 add tagkey file for entity type (#11832) PaperMC/Paper@c530c39 More var name fixes PaperMC/Paper@2b73d19 More var name fixes PaperMC/Paper@326c687 Fix whack diff from last commit PaperMC/Paper@13c94e4 Updated adventure to 4.18.0 (#11809) PaperMC/Paper@ca8709b Fix more incorrect array nullability annotations (#11836) PaperMC/Paper@e10dcbf [ci skip] Improve build workflow conditions (#11842) PaperMC/Paper@b4051db Handle disabled vanilla registry values correctly (#11781) PaperMC/Paper@4b89390 Fix contextual map renderer memory leak (#11841) PaperMC/Paper@5c7537c Add DamageType RegistryEvent (#11783) PaperMC/Paper@33411ec Properly remove UnsafeValues#getDamageEffect PaperMC/Paper@0629524 Directly build Art (#11813) PaperMC/Paper@e0abc5f Do not spawn fire for visual lightning (#11845) PaperMC/Paper@dac977a Correctly force particles (#11850) PaperMC/Paper@feb8756 Add datapack registration lifecycle event (#11804) PaperMC/Paper@18da1ae [ci skip] update DiscoveredDatapack javadoc PaperMC/Paper@93a3df0 Extend HumanEntity#dropItem API (#11810) PaperMC/Paper@287eb52 Use hidden classes for event executors (#11848) PaperMC/Paper@887f3f7 [ci skip] Replace FQN with import in EventExecutor PaperMC/Paper@d00344a update jb annotations to 26.0.1 (#11860) PaperMC/Paper@60edd61 [ci skip] Fix spelling of ignition's word into javadoc (#11864) PaperMC/Paper@a81990e Update mache, fixes dev bundle use with Java 23 PaperMC/Paper@1e4669e [ci skip] Clarify loot table behavior when set to null. (#11861) PaperMC/Paper@9298f59 Update paperweight to 2.0.0-beta.10 PaperMC/Paper@bdfad1c Add sendRich/PlainMessage methods to Server (#11872) PaperMC/Paper@1dd52be Use playerlist whitelist status instead of properties PaperMC/Paper@83995d7 Fix settings changes not being saved (#11881) PaperMC/Paper@daddcf6 Fix JOML javadoc URL (#11883) PaperMC/Paper@edde726 [ci skip] Add missing Nullable annotations for NMS DamageSource (#11875) PaperMC/Paper@4106da7 Fix retain passengers teleport flag (#11858) PaperMC/Paper@6ab1352 Improve performance of PoiCompetitorScan by unrolling stream (#11871) PaperMC/Paper@33a590b Fix TargetHitEvent#getSignalStrength() post-hard-fork (#11897) PaperMC/Paper@f367f10 Add rotation helpers to Location (#11908) PaperMC/Paper@9f90b4c Fix ItemDamageEvents called for 0 damage (#11900) PaperMC/Paper@486e521 Re-add droped MapLike spam fix (#11917) PaperMC/Paper@3375570 Fix MapCanvas#drawImage (#11865) PaperMC/Paper@49d15f6 Fix DiscoveredDatapack#getSource (#11928) PaperMC/Paper@b34ae4f Fix wolves ignoring result of damage event (#11932) PaperMC/Paper@efdcaa2 Fix removing the "LootTable" nbt tag from Block entities (#11929) PaperMC/Paper@55f3f28 Reimplement ItemStack Obfuscation (#11817) PaperMC/Paper@08fc33c Update CustomTimingsHandler Nag Message (#11923) PaperMC/Paper@5e14504 [ci skip] Add missing deprecated docs for isEnabledByFeature (#11938) PaperMC/Paper@4007171 Correct obfuscation of oversized items (#11944) PaperMC/Paper@1b38f28 Fix reading recipes used on furnace (#11947) PaperMC/Paper@b03d39b [ci skip] Update paperweight to 2.0.0-beta.13 PaperMC/Paper@6316a50 Make CraftServer#isPrimaryThread use TickThread check PaperMC/Paper@ea7b961 Fix MapItem incorectly fetching water biomes on treasure maps (#11936) PaperMC/Paper@b242f1e Prevent day cycle on the client when using fixed time (#11924) PaperMC/Paper@3e42518 Fix snow accumulating in custom biomes without precipitation (#11854) PaperMC/Paper@3d9ecc4 Log thread check parameters when the thread check fails PaperMC/Paper@3ad3fbc Update to Concurrentutil 0.0.3 PaperMC/Paper@79ffcd1 Fix vanilla parity on enchantable items with no targets (#11896) PaperMC/Paper@19ddbef Fix InventoryAction wrong for Bundles (#11902) PaperMC/Paper@ac3aaa2 Don't use delayed registries in impl anywhere (#11918) PaperMC/Paper@775002a [ci skip] Remove nullable from SyncedEntityData#packAll (#11949) PaperMC/Paper@c949225 MenuType API addition InventoryView Builders (#11816) PaperMC/Paper@c2f24e1 Feat: Add 'with' methods to CommandSourceStack (#11868) PaperMC/Paper@ed75b0e Disallow calling JavaPlugin#getCommand during onEnable for Paper plugins (#11914) PaperMC/Paper@08ac057 Rename getPotentialBedLocation to getPotentialRespawnLocation (#11950) PaperMC/Paper@9746d73 Add back known movement check PaperMC/Paper@e5542cf Hide unnecessary decorated pot data (#11957) PaperMC/Paper@eb4db79 Make CommandSourceStack respect hidden players (#11898) PaperMC/Paper@76617dd Add EntityEffectTickEvent (#11838) PaperMC/Paper@86c6308 Fix locate command dist overflow/underflow (#11956) PaperMC/Paper@2ea6aee Deprecate Turtle#isDigging (#11959) PaperMC/Paper@ad74b67 Fix client visual desync if cooldown events are cancelled (#11892) PaperMC/Paper@50c2c59 Fix unstable Suggestion comparison by sorting int suggestions before text ones (#11941) PaperMC/Paper@3709150 Expose all possible block data states (#11958) PaperMC/Paper@5e23d28 Remove entity tag selector tag completion fix (#11964) PaperMC/Paper@ab1b312 Call PlayerItemDamageEvent for tridents (#11899) PaperMC/Paper@1bb3677 Remove deprecation from EntityRemoveEvent (#11961) PaperMC/Paper@d69981b [ci skip] Remove redundant build configuration PaperMC/Paper@6fde26d remove .paperassetsroot PaperMC/Paper@fe75eaf split direct holder support up from ctor accepting Holder
This commit is contained in:
@@ -29,9 +29,16 @@ ij_java_names_count_to_use_import_on_demand = 999999
|
||||
ij_java_imports_layout = *,|,$*
|
||||
ij_java_generate_final_locals = true
|
||||
ij_java_generate_final_parameters = true
|
||||
|
||||
[test-plugin/**/*.java]
|
||||
ij_java_method_parameters_new_line_after_left_paren = true
|
||||
ij_java_method_parameters_right_paren_on_new_line = true
|
||||
ij_java_use_fq_class_names = false
|
||||
ij_java_class_names_in_javadoc = 1
|
||||
|
||||
[Purpur-Server/src/main/resources/data/**/*.json]
|
||||
[purpur-server/src/minecraft/java/**/*.java]
|
||||
ij_java_use_fq_class_names = true
|
||||
|
||||
[purpur-server/src/minecraft/resources/data/**/*.json]
|
||||
indent_size = 2
|
||||
|
||||
[paper-api-generator/generated/**/*.java]
|
||||
ij_java_imports_layout = $*,|,*
|
||||
|
||||
@@ -3,7 +3,7 @@ import org.gradle.api.tasks.testing.logging.TestLogEvent
|
||||
|
||||
plugins {
|
||||
java // TODO java launcher tasks
|
||||
id("io.papermc.paperweight.patcher") version "2.0.0-beta.8"
|
||||
id("io.papermc.paperweight.patcher") version "2.0.0-beta.13"
|
||||
}
|
||||
|
||||
val paperMavenPublicUrl = "https://repo.papermc.io/repository/maven-public/"
|
||||
|
||||
@@ -2,7 +2,7 @@ group = org.purpurmc.purpur
|
||||
version = 1.21.4-R0.1-SNAPSHOT
|
||||
|
||||
mcVersion = 1.21.4
|
||||
paperCommit = 54debf494f467a71c561cf8765c4f21725c99dd8
|
||||
paperCommit = fe75eaf09a22a5cc46877edb714274638d3b111f
|
||||
|
||||
org.gradle.configuration-cache = true
|
||||
#org.gradle.caching = true
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/paper-api/build.gradle.kts
|
||||
+++ b/paper-api/build.gradle.kts
|
||||
@@ -105,6 +_,18 @@
|
||||
@@ -103,6 +_,18 @@
|
||||
main {
|
||||
java {
|
||||
srcDir(generatedApiPath)
|
||||
@@ -19,7 +19,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -173,8 +_,10 @@
|
||||
@@ -168,8 +_,10 @@
|
||||
val services = objects.newInstance<Services>()
|
||||
|
||||
tasks.withType<Javadoc> {
|
||||
@@ -31,7 +31,7 @@
|
||||
options.use()
|
||||
options.isDocFilesSubDirs = true
|
||||
options.links(
|
||||
@@ -212,11 +_,11 @@
|
||||
@@ -202,11 +_,11 @@
|
||||
}
|
||||
|
||||
// workaround for https://github.com/gradle/gradle/issues/4046
|
||||
|
||||
@@ -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 ad816538b30079c62d5e1eb98c6f4b61e12e8d47..f90da51a8d1003a5cba86decbd42470f7f7e9211 100644
|
||||
index 365368983a25f7ccbd3c8b7b572a5173a4c868a0..594bcedd823acc87ed429ad8ef17b66e9dc15beb 100644
|
||||
--- a/src/main/java/org/bukkit/Server.java
|
||||
+++ b/src/main/java/org/bukkit/Server.java
|
||||
@@ -2283,6 +2283,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
@@ -2330,6 +2330,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
}
|
||||
// Paper end
|
||||
|
||||
|
||||
@@ -18,3 +18,8 @@
|
||||
warnedAboutDeprecationOnEnable = true;
|
||||
}
|
||||
}
|
||||
@@ -322,4 +_,3 @@
|
||||
return TimingsManager.getHandler(groupName, name, groupHandler);
|
||||
}
|
||||
}
|
||||
-
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/Bukkit.java
|
||||
+++ b/src/main/java/org/bukkit/Bukkit.java
|
||||
@@ -2968,4 +_,133 @@
|
||||
@@ -2980,4 +_,133 @@
|
||||
public static Server.Spigot spigot() {
|
||||
return server.spigot();
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/Material.java
|
||||
+++ b/src/main/java/org/bukkit/Material.java
|
||||
@@ -5811,4 +_,40 @@
|
||||
@@ -5812,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
|
||||
@@ -2607,4 +_,111 @@
|
||||
@@ -2654,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
|
||||
@@ -4246,6 +_,86 @@
|
||||
@@ -4244,6 +_,86 @@
|
||||
@Nullable
|
||||
public DragonBattle getEnderDragonBattle();
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/entity/Entity.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Entity.java
|
||||
@@ -1172,4 +_,59 @@
|
||||
@@ -1196,4 +_,59 @@
|
||||
*/
|
||||
void broadcastHurtAnimation(@NotNull java.util.Collection<Player> players);
|
||||
// Paper end - broadcast hurt animation
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -3911,4 +_,123 @@
|
||||
@@ -3892,4 +_,123 @@
|
||||
*/
|
||||
void sendEntityEffect(org.bukkit.@NotNull EntityEffect effect, @NotNull Entity target);
|
||||
// Paper end - entity effect API
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--- a/src/main/java/org/bukkit/entity/Wolf.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Wolf.java
|
||||
@@ -108,4 +_,20 @@
|
||||
return Registry.WOLF_VARIANT.getOrThrow(NamespacedKey.minecraft(key));
|
||||
@@ -110,4 +_,20 @@
|
||||
return RegistryAccess.registryAccess().getRegistry(RegistryKey.WOLF_VARIANT).getOrThrow(NamespacedKey.minecraft(key));
|
||||
}
|
||||
}
|
||||
+
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||
@@ -19,6 +_,13 @@
|
||||
@@ -21,6 +_,13 @@
|
||||
import org.bukkit.material.MaterialData;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
/**
|
||||
* Represents a stack of items.
|
||||
@@ -1318,4 +_,482 @@
|
||||
@@ -1329,4 +_,482 @@
|
||||
return this.craftDelegate.matchesWithoutData(item, excludeTypes, ignoreCount);
|
||||
}
|
||||
// Paper end - data component API
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/paper-server/build.gradle.kts
|
||||
+++ b/paper-server/build.gradle.kts
|
||||
@@ -20,8 +_,19 @@
|
||||
@@ -21,6 +_,20 @@
|
||||
// macheOldPath = file("F:\\Projects\\PaperTooling\\mache\\versions\\1.21.4\\src\\main\\java")
|
||||
// gitFilePatches = true
|
||||
|
||||
@@ -12,16 +12,16 @@
|
||||
+ outputDir = rootDirectory.dir("paper-server")
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ activeFork = purpur
|
||||
+
|
||||
paper {
|
||||
- reobfMappingsPatch = layout.projectDirectory.file("../build-data/reobf-mappings-patch.tiny")
|
||||
+ paper {
|
||||
+ paperServerDir = upstreamsDirectory().map { it.dir("paper/paper-server") }
|
||||
}
|
||||
|
||||
+ }
|
||||
+
|
||||
spigot {
|
||||
@@ -104,7 +_,19 @@
|
||||
buildDataRef = "3edaf46ec1eed4115ce1b18d2846cded42577e42"
|
||||
packageVersion = "v1_21_R3" // also needs to be updated in MappingEnvironment
|
||||
@@ -101,7 +_,20 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,24 +36,25 @@
|
||||
+ resources { srcDir("../paper-server/src/test/resources") }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+val log4jPlugins = sourceSets.create("log4jPlugins") {
|
||||
+ java { srcDir("../paper-server/src/log4jPlugins/java") }
|
||||
+}
|
||||
configurations.named(log4jPlugins.compileClasspathConfigurationName) {
|
||||
extendsFrom(configurations.compileClasspath.get())
|
||||
}
|
||||
@@ -123,7 +_,7 @@
|
||||
// Paper end - configure mockito agent that is needed in newer java versions
|
||||
@@ -119,7 +_,7 @@
|
||||
}
|
||||
|
||||
dependencies {
|
||||
- implementation(project(":paper-api"))
|
||||
+ implementation(project(":purpur-api"))
|
||||
implementation("ca.spottedleaf:concurrentutil:0.0.2") // Paper - Add ConcurrentUtil dependency
|
||||
// Paper start
|
||||
implementation("ca.spottedleaf:concurrentutil:0.0.3")
|
||||
implementation("org.jline:jline-terminal-ffm:3.27.1") // use ffm on java 22+
|
||||
@@ -155,6 +_,10 @@
|
||||
}
|
||||
// Paper end - Use Velocity cipher
|
||||
implementation("org.jline:jline-terminal-jni:3.27.1") // fall back to jni on java 21
|
||||
@@ -149,6 +_,10 @@
|
||||
runtimeOnly("com.mysql:mysql-connector-j:9.1.0")
|
||||
runtimeOnly("com.lmax:disruptor:3.4.4")
|
||||
|
||||
+ implementation("org.mozilla:rhino-runtime:1.7.14") // Purpur
|
||||
+ implementation("org.mozilla:rhino-engine:1.7.14") // Purpur
|
||||
@@ -62,14 +63,14 @@
|
||||
runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.6")
|
||||
runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
|
||||
runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
|
||||
@@ -193,14 +_,14 @@
|
||||
val gitBranch = git.exec(providers, "rev-parse", "--abbrev-ref", "HEAD").get().trim() // Paper
|
||||
@@ -188,14 +_,14 @@
|
||||
val gitBranch = git.exec(providers, "rev-parse", "--abbrev-ref", "HEAD").get().trim()
|
||||
attributes(
|
||||
"Main-Class" to "org.bukkit.craftbukkit.Main",
|
||||
- "Implementation-Title" to "Paper",
|
||||
+ "Implementation-Title" to "Purpur", // Purpur
|
||||
"Implementation-Version" to implementationVersion,
|
||||
"Implementation-Vendor" to date, // Paper
|
||||
"Implementation-Vendor" to date,
|
||||
- "Specification-Title" to "Paper",
|
||||
+ "Specification-Title" to "Purpur", // Purpur
|
||||
"Specification-Version" to project.version,
|
||||
@@ -81,4 +82,4 @@
|
||||
+ "Brand-Name" to "Purpur", // Purpur
|
||||
"Build-Number" to (build ?: ""),
|
||||
"Build-Time" to buildTime.toString(),
|
||||
"Git-Branch" to gitBranch, // Paper
|
||||
"Git-Branch" to gitBranch,
|
||||
|
||||
@@ -18,10 +18,10 @@ index 29d402620d2e1cbed94f941f933ae8eb5d786e7f..ec0998369158286fccb38c8e10c3cfa2
|
||||
public boolean isLocalPlayer() {
|
||||
return true;
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 6a8aa33bbfbf1cd5afcd40abede3176975e8fae9..2bd5a295be2500f198230a62f48900b51038d22b 100644
|
||||
index 121b57c7f5345f5d8884eaa1d36dac79fb7d42ef..9afbfe9bf493e09ca1963e8956ab7573964479b4 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1744,6 +1744,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1745,6 +1745,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
serverLevel.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
|
||||
serverLevel.updateLagCompensationTick(); // Paper - lag compensation
|
||||
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = serverLevel.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
|
||||
@@ -42,7 +42,7 @@ index 345e5c7aff07544e24f2e91d71585b06392d9927..fd84a5aac26bbf2de2c2fa8bb5bc76bc
|
||||
public LevelChunk getChunkIfLoaded(int x, int z) {
|
||||
return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 30f36d3beb477e3e37b4b2ca27cd84a58f1e1cc2..580818b9d2f992dd33b4831dbc612ba28c1bd725 100644
|
||||
index bb8f89d9a5f0bb69baea6ba241cc391b43f2314e..e4a27ef7c201b2f8c9fbb12a7dbcf704b9a92f2f 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -848,6 +848,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -62,7 +62,7 @@ index 30f36d3beb477e3e37b4b2ca27cd84a58f1e1cc2..580818b9d2f992dd33b4831dbc612ba2
|
||||
|
||||
private void updatePlayerAttributes() {
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 4b1c9dc3f14973f9a1403d6cc407a31017f9a468..4dc6531bca6bd91d4f04e0559d21ce6ba07c05df 100644
|
||||
index d0dc5d6f25b7514bc3c65bbef5b40703f6d0eed7..f524f1de2093e0a3bd2f3cf8806232b2211d0583 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2828,6 +2828,8 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -75,10 +75,10 @@ index 4b1c9dc3f14973f9a1403d6cc407a31017f9a468..4dc6531bca6bd91d4f04e0559d21ce6b
|
||||
if ((target instanceof Bucketable && target instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
|
||||
target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index a6fdb8bca6e8973392dc4faaed1124fc5f19e762..bc89d1401343d98381603684d5610a3b7344dcf3 100644
|
||||
index 474e5b8163e82a76aea8c4402d6acfcd366acaef..e4ee886f33ee63ae740cd89067c8ec81c12f2a62 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -3157,6 +3157,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3155,6 +3155,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
this.passengers = ImmutableList.copyOf(list);
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ index a6fdb8bca6e8973392dc4faaed1124fc5f19e762..bc89d1401343d98381603684d5610a3b
|
||||
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
|
||||
}
|
||||
}
|
||||
@@ -3198,6 +3205,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3196,6 +3203,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return false;
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -107,7 +107,7 @@ index a6fdb8bca6e8973392dc4faaed1124fc5f19e762..bc89d1401343d98381603684d5610a3b
|
||||
if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) {
|
||||
this.passengers = ImmutableList.of();
|
||||
} else {
|
||||
@@ -5121,4 +5136,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -5119,4 +5134,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return ((ServerLevel) this.level).isPositionEntityTicking(this.blockPosition());
|
||||
}
|
||||
// Paper end - Expose entity id counter
|
||||
@@ -177,7 +177,7 @@ index 95d78dcdb6777df73898694367ee17b1cb76d7a2..d0313fd5368baa53ec511c8c07fc78a1
|
||||
protected ParticleOptions getInkParticle() {
|
||||
return ParticleTypes.GLOW_SQUID_INK;
|
||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||
index b42390df47688309d8862914d2bfa763fa442d30..e2da1610ccb816acafb8abdbf82efd2e9760070c 100644
|
||||
index f41d5ffe83e3cfb4c30d150f8b66f8f2568ae20c..8c2bdb1775f7c4110c5f967b1052eba6a8fcbbfa 100644
|
||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -250,9 +250,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -210,7 +210,7 @@ index b42390df47688309d8862914d2bfa763fa442d30..e2da1610ccb816acafb8abdbf82efd2e
|
||||
|
||||
@Override
|
||||
protected void checkFallDamage(double y, boolean onGround, BlockState state, BlockPos pos) {
|
||||
@@ -3535,8 +3536,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -3537,8 +3538,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
this.pushEntities();
|
||||
profilerFiller.pop();
|
||||
// Paper start - Add EntityMoveEvent
|
||||
@@ -223,7 +223,7 @@ index b42390df47688309d8862914d2bfa763fa442d30..e2da1610ccb816acafb8abdbf82efd2e
|
||||
Location from = new Location(this.level().getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO);
|
||||
Location to = new Location(this.level().getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot());
|
||||
io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone());
|
||||
@@ -3546,6 +3549,21 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -3548,6 +3551,21 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
this.absMoveTo(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch());
|
||||
}
|
||||
}
|
||||
@@ -1931,7 +1931,7 @@ index 354ec2b987882d8f40ef4ac5257183d2fda73bb8..98cb91574c8d2bdb6d180256f657ecc6
|
||||
this.turtle.setDeltaMovement(this.turtle.getDeltaMovement().add(0.0, this.turtle.getSpeed() * d1 * 0.1, 0.0));
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/Wolf.java b/net/minecraft/world/entity/animal/Wolf.java
|
||||
index 2455164db9612c97008e4bca76bdcc2e7bf3d0b1..9c517f7afdf18f3cfa7c30da00066b3757f2dbbf 100644
|
||||
index 6cc3893742b443ec84942252910cf444cdbf0c96..90609ff3060322110ece27630de0abae1a6370a8 100644
|
||||
--- a/net/minecraft/world/entity/animal/Wolf.java
|
||||
+++ b/net/minecraft/world/entity/animal/Wolf.java
|
||||
@@ -180,9 +180,32 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
@@ -5047,7 +5047,7 @@ index fab309dc34eb88f2b9c844078f167885121675c1..0f8ec3abead11c46205cd21290c65ec2
|
||||
if (this.level().purpurConfig.wanderingTraderAllowTrading) { // Purpur - Add config for villager trading
|
||||
this.setTradingPlayer(player);
|
||||
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
|
||||
index 1b70c8b75d8bd0503e5329caa0b7c42ec7f7479f..898964b9a73950fa9e8de95f84faa74935c57ee6 100644
|
||||
index 7ce6d81b1b1dff25e8986d2c7a0c90afd2855f42..d0321875d2a2b612b438cc7973a7e9f172a61778 100644
|
||||
--- a/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/net/minecraft/world/entity/player/Player.java
|
||||
@@ -220,6 +220,19 @@ public abstract class Player extends LivingEntity {
|
||||
|
||||
@@ -37,7 +37,7 @@ index 2d09f2a2c97f29ac0d941b7a3fb941102a5d545e..94abb9d8f6381aee000dbd0720477db8
|
||||
|
||||
public boolean isWhiteListed(GameProfile profile) {
|
||||
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
|
||||
index f46593419be333ed201ff6a9b1e46042fe04daab..f850e2a8fe2e5203765ec25b9aba06411cb771ae 100644
|
||||
index d0321875d2a2b612b438cc7973a7e9f172a61778..15308ff3ed5835e3b8f41e7ddc2045f424e14660 100644
|
||||
--- a/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/net/minecraft/world/entity/player/Player.java
|
||||
@@ -202,6 +202,7 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -49,10 +49,10 @@ index f46593419be333ed201ff6a9b1e46042fe04daab..f850e2a8fe2e5203765ec25b9aba0641
|
||||
// CraftBukkit start
|
||||
public boolean fauxSleeping;
|
||||
diff --git a/net/minecraft/world/inventory/ChestMenu.java b/net/minecraft/world/inventory/ChestMenu.java
|
||||
index cf5b99c1337a7eafa9f5e8b2062c32ab4ff78968..e046d070e24c892743b241136f18c14c10f1efd9 100644
|
||||
index 280169afbd637eeb67ddf7eaeb4eecd464a128d5..ba7730a24831efa33de4c5ffce57bfa7177f89d6 100644
|
||||
--- a/net/minecraft/world/inventory/ChestMenu.java
|
||||
+++ b/net/minecraft/world/inventory/ChestMenu.java
|
||||
@@ -61,10 +61,30 @@ public class ChestMenu extends AbstractContainerMenu {
|
||||
@@ -66,10 +66,30 @@ public class ChestMenu extends AbstractContainerMenu {
|
||||
return new ChestMenu(MenuType.GENERIC_9x6, containerId, playerInventory, 6);
|
||||
}
|
||||
|
||||
@@ -108,19 +108,21 @@ index a6a359bab2a727f4631b633a8bb370dd40decc75..d2d75e5c34c97300ce5da8c7ea70958a
|
||||
this.activeChest = enderChestBlockEntity;
|
||||
}
|
||||
diff --git a/net/minecraft/world/level/block/EnderChestBlock.java b/net/minecraft/world/level/block/EnderChestBlock.java
|
||||
index 2f60681c50e3656400e84fe9a7670e0412743853..6e3d28aa6206d969815889ed327a5e343b8658d9 100644
|
||||
index f5533960708bdbaf2eacefbc7c7c3123b7d26502..17aa27885b4431bf7b98799e02d080b5a0ecbbf1 100644
|
||||
--- a/net/minecraft/world/level/block/EnderChestBlock.java
|
||||
+++ b/net/minecraft/world/level/block/EnderChestBlock.java
|
||||
@@ -84,7 +84,7 @@ public class EnderChestBlock extends AbstractChestBlock<EnderChestBlockEntity> i
|
||||
// Paper start - Fix InventoryOpenEvent cancellation - moved up;
|
||||
@@ -85,8 +85,8 @@ public class EnderChestBlock extends AbstractChestBlock<EnderChestBlockEntity> i
|
||||
enderChestInventory.setActiveChest(enderChestBlockEntity); // Needs to happen before ChestMenu.threeRows as it is required for opening animations
|
||||
if (level instanceof ServerLevel serverLevel && player.openMenu(
|
||||
- new SimpleMenuProvider((i, inventory, playerx) -> ChestMenu.threeRows(i, inventory, enderChestInventory), CONTAINER_TITLE)
|
||||
+ new SimpleMenuProvider((i, inventory, playerx) -> org.purpurmc.purpur.PurpurConfig.enderChestSixRows ? getEnderChestSixRows(i, inventory, player, enderChestInventory) : ChestMenu.threeRows(i, inventory, enderChestInventory), CONTAINER_TITLE) // Purpur - Barrels and enderchests 6 rows
|
||||
new SimpleMenuProvider(
|
||||
- (containerId, playerInventory, player1) -> ChestMenu.threeRows(containerId, playerInventory, enderChestInventory), CONTAINER_TITLE
|
||||
- )
|
||||
+ (containerId, playerInventory, player1) -> org.purpurmc.purpur.PurpurConfig.enderChestSixRows ? getEnderChestSixRows(containerId, playerInventory, player, enderChestInventory) : ChestMenu.threeRows(containerId, playerInventory, enderChestInventory), CONTAINER_TITLE
|
||||
+ ) // Purpur - Barrels and enderchests 6 rows
|
||||
).isPresent()) {
|
||||
// Paper end - Fix InventoryOpenEvent cancellation - moved up;
|
||||
player.awardStat(Stats.OPEN_ENDERCHEST);
|
||||
@@ -98,6 +98,35 @@ public class EnderChestBlock extends AbstractChestBlock<EnderChestBlockEntity> i
|
||||
@@ -100,6 +100,35 @@ public class EnderChestBlock extends AbstractChestBlock<EnderChestBlockEntity> i
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Implement elytra settings
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||
index a82b57734afdd5f470db14c8ad953b5a5d1f69bd..f70bf8f32064a8ec33367107cfcc51b7780f5870 100644
|
||||
index d1f7da0f4adc4609247c349d7ccdb0e6bba9b8f8..6de5f527c018201d874e06a45c9509fa12125766 100644
|
||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -3593,7 +3593,18 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -3595,7 +3595,18 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
if (i1 % 2 == 0) {
|
||||
List<EquipmentSlot> list = EquipmentSlot.VALUES.stream().filter(slot -> canGlideUsing(this.getItemBySlot(slot), slot)).toList();
|
||||
EquipmentSlot equipmentSlot = Util.getRandom(list, this.random);
|
||||
@@ -53,7 +53,7 @@ index 75a9bd205f32b77c5d242cb9fac0f571ce36045a..b03f182c62c699cc222e67c1ae6eadf9
|
||||
itemInHand.shrink(1); // Moved up from below
|
||||
} else {
|
||||
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
|
||||
index ef66c7b03696c2601d1fd0379fa038336ee0bb87..735ede5c5aa4b74639660fb4966101dcf63a2d75 100644
|
||||
index c5426585f53a3139dc9d188a73e3a7ff4cb2e492..264b713e8b7c3d5f7d8e1facc90a60349f2cf414 100644
|
||||
--- a/net/minecraft/world/item/ItemStack.java
|
||||
+++ b/net/minecraft/world/item/ItemStack.java
|
||||
@@ -733,6 +733,14 @@ public final class ItemStack implements DataComponentHolder {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||
index f70bf8f32064a8ec33367107cfcc51b7780f5870..bbf8dce405942b2840028d12f0d80fc0779bc14f 100644
|
||||
index 6de5f527c018201d874e06a45c9509fa12125766..2dc588e2d503c16ccd2589ce18abd2ecebbc8e74 100644
|
||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -1816,7 +1816,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -1818,7 +1818,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
if (this.level() instanceof ServerLevel serverLevel) {
|
||||
boolean var6 = false;
|
||||
if (this.dead && entitySource instanceof WitherBoss) { // Paper
|
||||
@@ -268,10 +268,10 @@ index 4a752ace041228f095af7b1b4878a03c5ed2381f..3e8b5d042eddb817dee2504ff9aa263f
|
||||
org.bukkit.event.entity.ExplosionPrimeEvent event = new org.bukkit.event.entity.ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity());
|
||||
this.level().getCraftServer().getPluginManager().callEvent(event);
|
||||
diff --git a/net/minecraft/world/entity/projectile/Projectile.java b/net/minecraft/world/entity/projectile/Projectile.java
|
||||
index af71a71ff11b418a43728fd464b1e673d593140f..a7c5896226e57c6dea1bea894c5f23fcb5481fcd 100644
|
||||
index ad0bb896d6ea669ce88bfe6490319e8ba7a29001..843f1396a6567672e5e8002d7e48fb18cf39d5de 100644
|
||||
--- a/net/minecraft/world/entity/projectile/Projectile.java
|
||||
+++ b/net/minecraft/world/entity/projectile/Projectile.java
|
||||
@@ -451,7 +451,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
|
||||
@@ -454,7 +454,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
|
||||
@Override
|
||||
public boolean mayInteract(ServerLevel level, BlockPos pos) {
|
||||
Entity owner = this.getOwner();
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] API for any mob to burn daylight
|
||||
Co-authored by: Encode42 <me@encode42.dev>
|
||||
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index 250676c904f6083edd06a2284307569cd76f0694..f11f3aa49ad40c6efd08274e30573ec19c84c23d 100644
|
||||
index e4ee886f33ee63ae740cd89067c8ec81c12f2a62..f61c29abf75443b206f37b90950d6c0e14ea59ff 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -534,6 +534,24 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -35,7 +35,7 @@ index 250676c904f6083edd06a2284307569cd76f0694..f11f3aa49ad40c6efd08274e30573ec1
|
||||
this.type = entityType;
|
||||
this.level = level;
|
||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||
index bbf8dce405942b2840028d12f0d80fc0779bc14f..19a36386efdeb135e17e13153fa5adf0e9a8c925 100644
|
||||
index 2dc588e2d503c16ccd2589ce18abd2ecebbc8e74..db5a2227009bc4d655fc781d5850221f36f2d112 100644
|
||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -301,6 +301,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -67,7 +67,7 @@ index bbf8dce405942b2840028d12f0d80fc0779bc14f..19a36386efdeb135e17e13153fa5adf0
|
||||
}
|
||||
|
||||
// CraftBukkit start
|
||||
@@ -3572,6 +3580,32 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -3574,6 +3582,32 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
if (this.level() instanceof ServerLevel serverLevel && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
|
||||
this.hurtServer(serverLevel, this.damageSources().drown(), 1.0F);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/commands/CommandSourceStack.java
|
||||
+++ b/net/minecraft/commands/CommandSourceStack.java
|
||||
@@ -431,6 +_,19 @@
|
||||
@@ -455,6 +_,19 @@
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
public Vec3 getPosition() {
|
||||
return this.worldPosition;
|
||||
}
|
||||
@@ -516,6 +_,30 @@
|
||||
@@ -540,6 +_,30 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
continue;
|
||||
}
|
||||
ServerPlayer entityplayer = (ServerPlayer) entityhuman;
|
||||
@@ -1854,7 +_,7 @@
|
||||
@@ -1855,7 +_,7 @@
|
||||
|
||||
@DontObfuscate
|
||||
public String getServerModName() {
|
||||
|
||||
@@ -217,7 +217,7 @@
|
||||
|
||||
public ServerStatsCounter getStats() {
|
||||
return this.stats;
|
||||
@@ -3077,4 +_,56 @@
|
||||
@@ -3078,4 +_,56 @@
|
||||
return (org.bukkit.craftbukkit.entity.CraftPlayer) super.getBukkitEntity();
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
@@ -68,5 +68,5 @@
|
||||
+ // Purpur end - Alternative Keepalive Handling
|
||||
+
|
||||
if (!this.isSingleplayerOwner() && elapsedTime >= 15000L) { // use vanilla's 15000L between keep alive packets
|
||||
if (this.keepAlivePending && !this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected
|
||||
// Paper end - give clients a longer time to respond to pings as per pre 1.12.2 timings
|
||||
if (this.keepAlivePending) {
|
||||
if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
// Paper start - fix DamageSource API
|
||||
@Nullable
|
||||
public Entity getCustomEventDamager() {
|
||||
@@ -116,6 +_,8 @@
|
||||
@@ -118,6 +_,8 @@
|
||||
damageSource.sweep = this.isSweep();
|
||||
damageSource.poison = this.isPoison();
|
||||
damageSource.melting = this.isMelting();
|
||||
@@ -46,7 +46,7 @@
|
||||
return damageSource;
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -182,11 +_,20 @@
|
||||
@@ -184,11 +_,20 @@
|
||||
} else {
|
||||
Component component = this.causingEntity == null ? this.directEntity.getDisplayName() : this.causingEntity.getDisplayName();
|
||||
ItemStack itemStack = this.causingEntity instanceof LivingEntity livingEntity1 ? livingEntity1.getMainHandItem() : ItemStack.EMPTY;
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
if (this.getVehicle() instanceof AbstractBoat abstractBoat && !abstractBoat.isUnderWater()) {
|
||||
this.wasTouchingWater = false;
|
||||
} else if (this.updateFluidHeightAndDoFluidPushing(FluidTags.WATER, 0.014)) {
|
||||
@@ -2532,6 +_,13 @@
|
||||
@@ -2525,6 +_,13 @@
|
||||
compound.putBoolean("Paper.FreezeLock", true);
|
||||
}
|
||||
// Paper end
|
||||
@@ -102,7 +102,7 @@
|
||||
return compound;
|
||||
} catch (Throwable var9) {
|
||||
CrashReport crashReport = CrashReport.forThrowable(var9, "Saving entity NBT");
|
||||
@@ -2681,6 +_,13 @@
|
||||
@@ -2674,6 +_,13 @@
|
||||
freezeLocked = compound.getBoolean("Paper.FreezeLock");
|
||||
}
|
||||
// Paper end
|
||||
@@ -116,7 +116,7 @@
|
||||
} catch (Throwable var17) {
|
||||
CrashReport crashReport = CrashReport.forThrowable(var17, "Loading entity NBT");
|
||||
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded");
|
||||
@@ -2922,6 +_,7 @@
|
||||
@@ -2920,6 +_,7 @@
|
||||
if (this.isAlive() && this instanceof Leashable leashable) {
|
||||
if (leashable.getLeashHolder() == player) {
|
||||
if (!this.level().isClientSide()) {
|
||||
@@ -124,7 +124,7 @@
|
||||
// CraftBukkit start - fire PlayerUnleashEntityEvent
|
||||
// Paper start - Expand EntityUnleashEvent
|
||||
org.bukkit.event.player.PlayerUnleashEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.hasInfiniteMaterials());
|
||||
@@ -3247,15 +_,18 @@
|
||||
@@ -3245,15 +_,18 @@
|
||||
return Vec3.directionFromRotation(this.getRotationVector());
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3460,7 +_,7 @@
|
||||
@@ -3458,7 +_,7 @@
|
||||
}
|
||||
|
||||
public int getMaxAirSupply() {
|
||||
@@ -153,7 +153,7 @@
|
||||
}
|
||||
|
||||
public int getAirSupply() {
|
||||
@@ -3955,7 +_,7 @@
|
||||
@@ -3953,7 +_,7 @@
|
||||
// CraftBukkit end
|
||||
|
||||
public boolean canUsePortal(boolean allowPassengers) {
|
||||
@@ -162,7 +162,7 @@
|
||||
}
|
||||
|
||||
public boolean canTeleport(Level fromLevel, Level toLevel) {
|
||||
@@ -4487,6 +_,12 @@
|
||||
@@ -4485,6 +_,12 @@
|
||||
return Mth.lerp(partialTick, this.yRotO, this.yRot);
|
||||
}
|
||||
|
||||
@@ -175,7 +175,7 @@
|
||||
// Paper start - optimise collisions
|
||||
public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) {
|
||||
if (this.touchingUnloadedChunk()) {
|
||||
@@ -4885,7 +_,7 @@
|
||||
@@ -4883,7 +_,7 @@
|
||||
}
|
||||
|
||||
public float maxUpStep() {
|
||||
|
||||
@@ -135,10 +135,10 @@
|
||||
+ }
|
||||
+ // Purpur end - Totems work in inventory
|
||||
+
|
||||
org.bukkit.inventory.EquipmentSlot handSlot = (hand != null) ? org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand) : null;
|
||||
EntityResurrectEvent event = new EntityResurrectEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity(), handSlot);
|
||||
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);
|
||||
event.setCancelled(itemStack == null);
|
||||
@@ -1788,6 +_,7 @@
|
||||
@@ -1790,6 +_,7 @@
|
||||
boolean flag = this.lastHurtByPlayerTime > 0;
|
||||
this.dropEquipment(level); // CraftBukkit - from below
|
||||
if (this.shouldDropLoot() && level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) {
|
||||
@@ -146,7 +146,7 @@
|
||||
this.dropFromLootTable(level, damageSource, flag);
|
||||
// Paper start
|
||||
final boolean prev = this.clearEquipmentSlots;
|
||||
@@ -1796,6 +_,7 @@
|
||||
@@ -1798,6 +_,7 @@
|
||||
// Paper end
|
||||
this.dropCustomDeathLoot(level, damageSource, flag);
|
||||
this.clearEquipmentSlots = prev; // Paper
|
||||
@@ -154,7 +154,7 @@
|
||||
}
|
||||
|
||||
// CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment
|
||||
@@ -2987,6 +_,7 @@
|
||||
@@ -2989,6 +_,7 @@
|
||||
float f = (float)(d * 10.0 - 3.0);
|
||||
if (f > 0.0F) {
|
||||
this.playSound(this.getFallDamageSound((int)f), 1.0F, 1.0F);
|
||||
@@ -162,7 +162,7 @@
|
||||
this.hurt(this.damageSources().flyIntoWall(), f);
|
||||
}
|
||||
}
|
||||
@@ -4396,6 +_,12 @@
|
||||
@@ -4398,6 +_,12 @@
|
||||
? slot == EquipmentSlot.MAINHAND && this.canUseSlot(EquipmentSlot.MAINHAND)
|
||||
: slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.getType());
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
list.add(entity);
|
||||
} else if (!entity.isRemoved()) {
|
||||
this.touch(entity);
|
||||
@@ -1264,7 +_,7 @@
|
||||
@@ -1269,7 +_,7 @@
|
||||
flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper - Toggleable player crits
|
||||
if (flag2) {
|
||||
damageSource = damageSource.critical(true); // Paper start - critical damage API
|
||||
@@ -70,7 +70,7 @@
|
||||
}
|
||||
|
||||
float f2 = f + f1;
|
||||
@@ -1877,7 +_,23 @@
|
||||
@@ -1882,7 +_,23 @@
|
||||
|
||||
@Override
|
||||
protected int getBaseExperienceReward(ServerLevel level) {
|
||||
@@ -95,7 +95,7 @@
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1960,6 +_,13 @@
|
||||
@@ -1965,6 +_,13 @@
|
||||
public boolean canUseSlot(EquipmentSlot slot) {
|
||||
return slot != EquipmentSlot.BODY;
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
this.addStandardInventorySlots(playerInventory, 8, 84);
|
||||
this.addDataSlot(DataSlot.shared(this.costs, 0));
|
||||
this.addDataSlot(DataSlot.shared(this.costs, 1));
|
||||
@@ -292,7 +_,7 @@
|
||||
@@ -294,7 +_,7 @@
|
||||
@Override
|
||||
public void removed(Player player) {
|
||||
super.removed(player);
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
public int getDamageValue() {
|
||||
return Mth.clamp(this.getOrDefault(DataComponents.DAMAGE, Integer.valueOf(0)), 0, this.getMaxDamage());
|
||||
}
|
||||
@@ -1232,6 +_,12 @@
|
||||
@@ -1251,6 +_,12 @@
|
||||
public boolean isEnchanted() {
|
||||
return !this.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY).isEmpty();
|
||||
}
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
return InteractionResult.SUCCESS_SERVER;
|
||||
} else if (state.getValue(OCCUPIED)) {
|
||||
if (!BedBlock.canSetSpawn(level)) return this.explodeBed(state, level, pos); // Paper - check explode first
|
||||
@@ -152,7 +_,7 @@
|
||||
|
||||
Vec3 vec3d = blockposition.getCenter();
|
||||
|
||||
- world.explode(null, world.damageSources().badRespawnPointExplosion(vec3d, blockState), null, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); // CraftBukkit - add state
|
||||
+ if (world.purpurConfig.bedExplode) world.explode(null, world.damageSources().badRespawnPointExplosion(vec3d, blockState), null, vec3d, (float) world.purpurConfig.bedExplosionPower, world.purpurConfig.bedExplosionFire, world.purpurConfig.bedExplosionEffect); // CraftBukkit - add state // Purpur - Implement bed explosion options
|
||||
return InteractionResult.SUCCESS;
|
||||
@@ -148,7 +_,7 @@
|
||||
}
|
||||
|
||||
Vec3 center = pos.getCenter();
|
||||
- level.explode(null, level.damageSources().badRespawnPointExplosion(center, blockState), null, center, 5.0F, true, Level.ExplosionInteraction.BLOCK); // CraftBukkit - add state
|
||||
+ if (level.purpurConfig.bedExplode) level.explode(null, level.damageSources().badRespawnPointExplosion(center, blockState), null, center, (float) level.purpurConfig.bedExplosionPower, level.purpurConfig.bedExplosionFire, level.purpurConfig.bedExplosionEffect); // CraftBukkit - add state // Purpur - Implement bed explosion options
|
||||
return InteractionResult.SUCCESS_SERVER;
|
||||
}
|
||||
@@ -175,7 +_,7 @@
|
||||
// CraftBukkit end
|
||||
@@ -169,7 +_,7 @@
|
||||
|
||||
@Override
|
||||
public void fallOn(Level level, BlockState state, BlockPos pos, Entity entity, float fallDistance) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/world/level/block/BushBlock.java
|
||||
+++ b/net/minecraft/world/level/block/BushBlock.java
|
||||
@@ -62,4 +_,24 @@
|
||||
@@ -61,4 +_,24 @@
|
||||
protected boolean isPathfindable(BlockState state, PathComputationType pathComputationType) {
|
||||
return pathComputationType == PathComputationType.AIR && !this.hasCollision || super.isPathfindable(state, pathComputationType);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/world/level/block/ChestBlock.java
|
||||
+++ b/net/minecraft/world/level/block/ChestBlock.java
|
||||
@@ -361,6 +_,7 @@
|
||||
@@ -357,6 +_,7 @@
|
||||
}
|
||||
|
||||
public static boolean isBlockedChestByBlock(BlockGetter level, BlockPos pos) {
|
||||
|
||||
@@ -6,6 +6,6 @@
|
||||
private void playNote(@Nullable Entity entity, BlockState state, Level level, BlockPos pos) {
|
||||
- if (state.getValue(INSTRUMENT).worksAboveNoteBlock() || level.getBlockState(pos.above()).isAir()) {
|
||||
+ if (level.purpurConfig.noteBlockIgnoreAbove || state.getValue(INSTRUMENT).worksAboveNoteBlock() || level.getBlockState(pos.above()).isAir()) { // Purpur - Config to allow Note Block sounds when blocked
|
||||
// CraftBukkit start
|
||||
// org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, pos, state.getValue(NoteBlock.INSTRUMENT), state.getValue(NoteBlock.NOTE));
|
||||
// if (event.isCancelled()) {
|
||||
level.blockEvent(pos, this, 0, 0);
|
||||
level.gameEvent(entity, GameEvent.NOTE_BLOCK_PLAY, pos);
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
}
|
||||
@@ -310,6 +_,28 @@
|
||||
// CraftBukkit - this
|
||||
return new CommandSourceStack(commandSource, Vec3.atCenterOf(pos), Vec2.ZERO, (ServerLevel) world, 2, string, component, world.getServer(), player); // Paper - Fix commands from signs not firing command events
|
||||
return new CommandSourceStack(commandSource, Vec3.atCenterOf(pos), Vec2.ZERO, (ServerLevel)level, 2, string, component, level.getServer(), player); // Paper - Fix commands from signs not firing command events
|
||||
}
|
||||
+
|
||||
+ // Purpur start - Signs allow color codes
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
--- a/net/minecraft/world/level/material/WaterFluid.java
|
||||
+++ b/net/minecraft/world/level/material/WaterFluid.java
|
||||
@@ -74,6 +_,14 @@
|
||||
@@ -74,6 +_,12 @@
|
||||
protected boolean canConvertToSource(ServerLevel level) {
|
||||
return level.getGameRules().getBoolean(GameRules.RULE_WATER_SOURCE_CONVERSION);
|
||||
}
|
||||
+
|
||||
+ // Purpur start - Implement infinite liquids
|
||||
+ @Override
|
||||
+ protected int getRequiredSources(Level level) {
|
||||
+ return level.purpurConfig.waterInfiniteRequiredSources;
|
||||
+ }
|
||||
+ // Purpur end - Implement infinite liquids
|
||||
+
|
||||
// Paper start - Add BlockBreakBlockEvent
|
||||
@Override
|
||||
protected void beforeDestroyingBlock(LevelAccessor world, BlockPos pos, BlockState state, BlockPos source) {
|
||||
protected void beforeDestroyingBlock(LevelAccessor level, BlockPos pos, BlockState state, BlockPos source) {
|
||||
|
||||
@@ -5,10 +5,10 @@ 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 de89c7c9388ba9202d075aff60a5e5d0696ae13d..48a2800004c8d5be6b672af849c7a93658e24d7a 100644
|
||||
index 03ff6e062f92d0405dcf10bd35c6ba2fa553b8c0..4e584c69e3f13e7e441dc8a69d57287fc349841d 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -1318,4 +1318,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
@@ -1344,4 +1344,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
}
|
||||
}
|
||||
// Paper end - broadcast hurt animation
|
||||
@@ -37,7 +37,7 @@ index de89c7c9388ba9202d075aff60a5e5d0696ae13d..48a2800004c8d5be6b672af849c7a936
|
||||
+ // 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 471752b8f05e9496e6b25efa8412377e937ba1c4..d52d41d8c56e017f95914da19b05c3d79f8f1640 100644
|
||||
index 1bb9a0bb4b1b898c9359d0095d9413a46b5e7630..1b7fdbecf9c28732d5196236980e87fa737a0769 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
@@ -602,6 +602,15 @@ public class CraftEventFactory {
|
||||
|
||||
@@ -7,10 +7,10 @@ temporarily migrate to paper's config
|
||||
drop patch on the next minecraft release
|
||||
|
||||
diff --git a/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java b/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java
|
||||
index 098ab351de4f84cdc943ebe855dd0022174e1e67..9f87f3da8e3f8cb16ea8f04cc233e143b174a709 100644
|
||||
index e48fa405d92fab221fa8331b65c8f324e801d439..e319d6337811051de478d584a37015c450960701 100644
|
||||
--- a/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java
|
||||
+++ b/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java
|
||||
@@ -263,6 +263,7 @@ public class PaperConfigurations extends Configurations<GlobalConfiguration, Wor
|
||||
@@ -267,6 +267,7 @@ public class PaperConfigurations extends Configurations<GlobalConfiguration, Wor
|
||||
for (final NodePath path : RemovedConfigurations.REMOVED_WORLD_PATHS) {
|
||||
builder.addAction(path, TransformAction.remove());
|
||||
}
|
||||
@@ -19,10 +19,10 @@ index 098ab351de4f84cdc943ebe855dd0022174e1e67..9f87f3da8e3f8cb16ea8f04cc233e143
|
||||
|
||||
final ConfigurationTransformation.VersionedBuilder versionedBuilder = Transformations.versionedBuilder();
|
||||
diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
|
||||
index b1c917d65076a3805e5b78cb946753f0c101e214..229404b8583adc9723e3186775f38fdb97daacbc 100644
|
||||
index d7c9acaffdcff5e35e026ae90a3e521bab13b074..a426ba82af695426952bb5e04fa721e6ccff2f89 100644
|
||||
--- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
|
||||
+++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
|
||||
@@ -409,6 +409,7 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||
@@ -398,6 +398,7 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||
public boolean useVanillaWorldScoreboardNameColoring = false;
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ index b1c917d65076a3805e5b78cb946753f0c101e214..229404b8583adc9723e3186775f38fdb
|
||||
public Environment environment;
|
||||
|
||||
public class Environment extends ConfigurationPart {
|
||||
@@ -418,7 +419,9 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||
@@ -407,7 +408,9 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||
public boolean disableExplosionKnockback = false;
|
||||
public boolean generateFlatBedrock = false;
|
||||
public FrostedIce frostedIce;
|
||||
|
||||
@@ -17,11 +17,11 @@ 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 48a2800004c8d5be6b672af849c7a93658e24d7a..f6c8a08fd4f0329357156085348d6b9141d18fdb 100644
|
||||
index 4e584c69e3f13e7e441dc8a69d57287fc349841d..762cd2f3a18bcb4039f8d232f1175aaac4ef623d 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -258,6 +258,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
boolean ignorePassengers = flagSet.contains(io.papermc.paper.entity.TeleportFlag.EntityState.RETAIN_PASSENGERS);
|
||||
@@ -260,6 +260,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
boolean retainPassengers = flagSet.contains(io.papermc.paper.entity.TeleportFlag.EntityState.RETAIN_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 (!new org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent(entity.getBukkitEntity(), org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent.Reason.IS_VEHICLE, cause).callEvent()) // Purpur - Add EntityTeleportHinderedEvent
|
||||
@@ -29,10 +29,10 @@ index 48a2800004c8d5be6b672af849c7a93658e24d7a..f6c8a08fd4f0329357156085348d6b91
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index b61e994e90f9ccc3e24cb916dd83a0af46ecf39f..614ebecdfe5838af5b2bf4a2d9f7ba26698a00f7 100644
|
||||
index da365651d67f584547217701762564d74e09ad5d..9fbbdc9664353fd2be8eae112e5cfe8880d51d08 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -1449,6 +1449,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -1431,6 +1431,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
// 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 b61e994e90f9ccc3e24cb916dd83a0af46ecf39f..614ebecdfe5838af5b2bf4a2d9f7ba26
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1470,6 +1471,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -1452,6 +1453,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
}
|
||||
|
||||
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>
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
index f6c8a08fd4f0329357156085348d6b9141d18fdb..359fb91294b3b0eb4719982ba64fcf8667533a42 100644
|
||||
index 762cd2f3a18bcb4039f8d232f1175aaac4ef623d..8755fc950af21e076858de7aafe3b562982299cf 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -99,6 +99,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
@@ -101,6 +101,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
}
|
||||
// Purpur end - Fire Immunity API
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -426,6 +_,20 @@
|
||||
@@ -427,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());
|
||||
|
||||
@@ -1086,6 +_,7 @@
|
||||
@@ -1087,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 && config.spawnMonsters); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
|
||||
@@ -1101,6 +_,7 @@
|
||||
@@ -1102,6 +_,7 @@
|
||||
}
|
||||
}
|
||||
world.spigotConfig.init(); // Spigot
|
||||
@@ -37,7 +37,7 @@
|
||||
}
|
||||
|
||||
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
|
||||
@@ -1118,6 +_,7 @@
|
||||
@@ -1119,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");
|
||||
|
||||
@@ -1645,6 +_,60 @@
|
||||
@@ -1646,6 +_,60 @@
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
@Override
|
||||
public List<Recipe> getRecipesFor(ItemStack result) {
|
||||
Preconditions.checkArgument(result != null, "ItemStack cannot be null");
|
||||
@@ -3049,6 +_,18 @@
|
||||
@@ -3055,6 +_,18 @@
|
||||
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
@Override
|
||||
public void restart() {
|
||||
org.spigotmc.RestartCommand.restart();
|
||||
@@ -3078,6 +_,7 @@
|
||||
@@ -3084,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()
|
||||
@@ -3288,4 +_,18 @@
|
||||
@@ -3294,4 +_,18 @@
|
||||
this.console.addPluginAllowingSleep(plugin.getName(), value);
|
||||
}
|
||||
// Paper end - API to check if the server is sleeping
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -2346,6 +_,50 @@
|
||||
@@ -2349,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/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -87,6 +_,18 @@
|
||||
@@ -89,6 +_,18 @@
|
||||
this.entityType = CraftEntityType.minecraftToBukkit(entity.getType());
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
||||
@@ -273,6 +_,7 @@
|
||||
@@ -281,6 +_,7 @@
|
||||
@Override
|
||||
public void recalculatePermissions() {
|
||||
this.perm.recalculatePermissions();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -584,10 +_,15 @@
|
||||
@@ -585,10 +_,15 @@
|
||||
|
||||
@Override
|
||||
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
|
||||
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
|
||||
if (player.getBukkitEntity().canSee(this)) {
|
||||
@@ -2763,6 +_,28 @@
|
||||
@@ -2745,6 +_,28 @@
|
||||
return this.getHandle().getAbilities().walkingSpeed * 2f;
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
private void validateSpeed(float value) {
|
||||
Preconditions.checkArgument(value <= 1f && value >= -1f, "Speed value (%s) need to be between -1f and 1f", value);
|
||||
}
|
||||
@@ -3559,4 +_,74 @@
|
||||
@@ -3541,4 +_,74 @@
|
||||
this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundEntityEventPacket(((CraftEntity) target).getHandle(), effect.getData()));
|
||||
}
|
||||
// Paper end - entity effect API
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
|
||||
@@ -375,4 +_,11 @@
|
||||
@@ -373,4 +_,11 @@
|
||||
getHandle().getGossips().gossips.clear();
|
||||
}
|
||||
// Paper end
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java
|
||||
@@ -146,4 +_,15 @@
|
||||
@@ -145,4 +_,15 @@
|
||||
return this.getKey().hashCode();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
||||
@@ -658,4 +_,285 @@
|
||||
@@ -666,4 +_,285 @@
|
||||
}
|
||||
|
||||
// Paper end - data component API
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
@@ -505,7 +_,7 @@
|
||||
@@ -508,7 +_,7 @@
|
||||
// Paper start
|
||||
@Override
|
||||
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
--- a/src/main/resources/data/.paperassetsroot
|
||||
+++ b/src/main/resources/data/.paperassetsroot
|
||||
@@ -1,0 +_,0 @@
|
||||
Reference in New Issue
Block a user