Start working on 1.20

This commit is contained in:
Nassim Jahnke 2023-06-07 18:24:39 +02:00
parent bc4a6647c9
commit 965cf53cd5
No known key found for this signature in database
GPG Key ID: 6BE3B555EBC5982B
1075 changed files with 509 additions and 562 deletions

View File

@ -38,7 +38,7 @@ How To (Plugin Developers)
<dependency>
<groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.19.4-R0.1-SNAPSHOT</version>
<version>1.20-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
```
@ -54,7 +54,7 @@ repositories {
}
dependencies {
compileOnly("io.papermc.paper:paper-api:1.19.4-R0.1-SNAPSHOT")
compileOnly("io.papermc.paper:paper-api:1.20-R0.1-SNAPSHOT")
}
java {

View File

@ -61,7 +61,7 @@ repositories {
}
dependencies {
paramMappings("net.fabricmc:yarn:1.19.4+build.1:mergedv2")
paramMappings("net.fabricmc:yarn:1.20+build.1:mergedv2")
remapper("net.fabricmc:tiny-remapper:0.8.6:fat")
decompiler("net.minecraftforge:forgeflower:2.0.627.2")
spigotDecompiler("io.papermc:patched-spigot-fernflower:0.1+build.6")
@ -133,7 +133,7 @@ allprojects {
tasks.collectAtsFromPatches {
// Uncomment while updating for a new Minecraft version
// extraPatchDir.set(layout.projectDirectory.dir("patches/unapplied/server"))
extraPatchDir.set(layout.projectDirectory.dir("patches/unapplied/server"))
}
tasks.register("printMinecraftVersion") {

View File

@ -1,6 +1,6 @@
group=io.papermc.paper
version=1.19.4-R0.1-SNAPSHOT
mcVersion=1.19.4
version=1.20-R0.1-SNAPSHOT
mcVersion=1.20
org.gradle.caching=true
org.gradle.parallel=true

View File

@ -27,10 +27,10 @@ index 11038da2e071699d6561a331565db0c8d7850d0e..317acfec5894101294a55abff6181943
+/.factorypath
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
index 0000000000000000000000000000000000000000..4b7f005519d8856fc35a94401636ae8d9bf41f10
index 0000000000000000000000000000000000000000..8686d850f41753923e375bd8ed9fec45e6171e05
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,83 @@
@@ -0,0 +1,85 @@
+plugins {
+ `java-library`
+ `maven-publish`
@ -41,6 +41,8 @@ index 0000000000000000000000000000000000000000..4b7f005519d8856fc35a94401636ae8d
+ withJavadocJar()
+}
+
+val annotationsVersion = "24.0.1"
+
+dependencies {
+ // api dependencies are listed transitively to API consumers
+ api("com.google.guava:guava:31.1-jre")
@ -49,11 +51,11 @@ index 0000000000000000000000000000000000000000..4b7f005519d8856fc35a94401636ae8d
+ api("org.yaml:snakeyaml:1.33")
+ api("org.joml:joml:1.10.5")
+
+ compileOnly("org.apache.maven:maven-resolver-provider:3.8.5")
+ compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3")
+ compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3")
+ compileOnly("org.apache.maven:maven-resolver-provider:3.9.2")
+ compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.10")
+ compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.10")
+
+ val annotations = "org.jetbrains:annotations-java5:23.0.0"
+ val annotations = "org.jetbrains:annotations-java5:$annotationsVersion"
+ compileOnly(annotations)
+ testCompileOnly(annotations)
+
@ -98,7 +100,7 @@ index 0000000000000000000000000000000000000000..4b7f005519d8856fc35a94401636ae8d
+ options.links(
+ "https://guava.dev/releases/31.1-jre/api/docs/",
+ "https://javadoc.io/doc/org.yaml/snakeyaml/1.33/",
+ "https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/",
+ "https://javadoc.io/doc/org.jetbrains/annotations-java5/$annotationsVersion/",
+ "https://javadoc.io/doc/net.md-5/bungeecord-chat/1.16-R0.4/",
+ )
+ options.tags("apiNote:a:API Note:")
@ -116,7 +118,7 @@ index 0000000000000000000000000000000000000000..4b7f005519d8856fc35a94401636ae8d
+}
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index e324c7b4a615d74c5c5c66ce539a28c21eab9f1e..0000000000000000000000000000000000000000
index 2ac982a8bc43604298a0788bf03b5e6314f5ab9b..0000000000000000000000000000000000000000
--- a/pom.xml
+++ /dev/null
@@ -1,270 +0,0 @@
@ -127,7 +129,7 @@ index e324c7b4a615d74c5c5c66ce539a28c21eab9f1e..00000000000000000000000000000000
-
- <groupId>org.spigotmc</groupId>
- <artifactId>spigot-api</artifactId>
- <version>1.19.4-R0.1-SNAPSHOT</version>
- <version>1.20-R0.1-SNAPSHOT</version>
- <packaging>jar</packaging>
-
- <name>Spigot-API</name>
@ -184,33 +186,33 @@ index e324c7b4a615d74c5c5c66ce539a28c21eab9f1e..00000000000000000000000000000000
- <dependency>
- <groupId>org.yaml</groupId>
- <artifactId>snakeyaml</artifactId>
- <version>1.33</version>
- <version>2.0</version>
- <scope>compile</scope>
- </dependency>
- <!-- not part of the API proper -->
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-resolver-provider</artifactId>
- <version>3.8.5</version>
- <version>3.9.2</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.maven.resolver</groupId>
- <artifactId>maven-resolver-connector-basic</artifactId>
- <version>1.7.3</version>
- <version>1.9.10</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.maven.resolver</groupId>
- <artifactId>maven-resolver-transport-http</artifactId>
- <version>1.7.3</version>
- <version>1.9.10</version>
- <scope>provided</scope>
- </dependency>
- <!-- annotations -->
- <dependency>
- <groupId>org.jetbrains</groupId>
- <artifactId>annotations-java5</artifactId>
- <version>23.0.0</version>
- <version>24.0.1</version>
- <scope>provided</scope>
- </dependency>
- <!-- testing -->
@ -229,7 +231,7 @@ index e324c7b4a615d74c5c5c66ce539a28c21eab9f1e..00000000000000000000000000000000
- <dependency>
- <groupId>org.ow2.asm</groupId>
- <artifactId>asm-tree</artifactId>
- <version>9.4</version>
- <version>9.5</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
@ -317,7 +319,7 @@ index e324c7b4a615d74c5c5c66ce539a28c21eab9f1e..00000000000000000000000000000000
- <links>
- <link>https://guava.dev/releases/31.1-jre/api/docs/</link>
- <link>https://javadoc.io/doc/org.yaml/snakeyaml/1.33/</link>
- <link>https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/</link>
- <link>https://javadoc.io/doc/org.jetbrains/annotations-java5/24.0.1/</link>
- <link>https://javadoc.io/doc/net.md-5/bungeecord-chat/1.16-R0.4/</link>
- </links>
- <tags>
@ -343,7 +345,7 @@ index e324c7b4a615d74c5c5c66ce539a28c21eab9f1e..00000000000000000000000000000000
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <version>3.2.1</version>
- <version>3.3.0</version>
- <executions>
- <execution>
- <phase>process-classes</phase>

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Build system changes
diff --git a/build.gradle.kts b/build.gradle.kts
index 4b7f005519d8856fc35a94401636ae8d9bf41f10..bb6e3afe8e8bc1a3b598b085286ffcdaf3574072 100644
index 8686d850f41753923e375bd8ed9fec45e6171e05..d72a4e039e77a0dc9a2eacb6d2e07260c206c678 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -15,15 +15,27 @@ dependencies {
@@ -17,15 +17,27 @@ dependencies {
api("net.md-5:bungeecord-chat:1.16-R0.4")
api("org.yaml:snakeyaml:1.33")
api("org.joml:joml:1.10.5")
@ -18,13 +18,13 @@ index 4b7f005519d8856fc35a94401636ae8d9bf41f10..bb6e3afe8e8bc1a3b598b085286ffcda
+ }
+ // Paper end
compileOnly("org.apache.maven:maven-resolver-provider:3.8.5")
compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3")
compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3")
compileOnly("org.apache.maven:maven-resolver-provider:3.9.2")
compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.10")
compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.10")
+ compileOnly("com.google.code.findbugs:jsr305:1.3.9") // Paper
- val annotations = "org.jetbrains:annotations-java5:23.0.0"
+ val annotations = "org.jetbrains:annotations:23.0.0" // Paper - we don't want Java 5 annotations...
- val annotations = "org.jetbrains:annotations-java5:$annotationsVersion"
+ val annotations = "org.jetbrains:annotations:$annotationsVersion" // Paper - we don't want Java 5 annotations...
compileOnly(annotations)
testCompileOnly(annotations)
@ -37,16 +37,16 @@ index 4b7f005519d8856fc35a94401636ae8d9bf41f10..bb6e3afe8e8bc1a3b598b085286ffcda
testImplementation("org.apache.commons:commons-lang3:3.12.0")
testImplementation("junit:junit:4.13.2")
testImplementation("org.hamcrest:hamcrest-library:1.3")
@@ -65,7 +77,7 @@ tasks.withType<Javadoc> {
@@ -67,7 +79,7 @@ tasks.withType<Javadoc> {
options.links(
"https://guava.dev/releases/31.1-jre/api/docs/",
"https://javadoc.io/doc/org.yaml/snakeyaml/1.33/",
- "https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/",
+ "https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/", // Paper - we don't want Java 5 annotations
- "https://javadoc.io/doc/org.jetbrains/annotations-java5/$annotationsVersion/",
+ "https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/", // Paper - we don't want Java 5 annotations
"https://javadoc.io/doc/net.md-5/bungeecord-chat/1.16-R0.4/",
)
options.tags("apiNote:a:API Note:")
@@ -81,3 +93,14 @@ tasks.withType<Javadoc> {
@@ -83,3 +95,14 @@ tasks.withType<Javadoc> {
}
}
}

View File

@ -12,10 +12,10 @@ Co-authored-by: Riley Park <rileysebastianpark@gmail.com>
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
diff --git a/build.gradle.kts b/build.gradle.kts
index 82444d3b95881702910369ec5694dd9f327ad81a..c06eda648d8626c86afb2140d6a583ddf82f295c 100644
index d72a4e039e77a0dc9a2eacb6d2e07260c206c678..cf022f431c1a9c5b40d6b71411df2dfab98cde13 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -35,6 +35,7 @@ dependencies {
@@ -37,6 +37,7 @@ dependencies {
compileOnlyApi(checkerQual)
testCompileOnly(checkerQual)
// Paper end

View File

@ -6,14 +6,14 @@ Subject: [PATCH] Add FastUtil to Bukkit
Doesn't expose to plugins, just allows Paper-API to use it for optimization
diff --git a/build.gradle.kts b/build.gradle.kts
index c06eda648d8626c86afb2140d6a583ddf82f295c..464a209dbf52ebdfa287a553778a37c382a5405c 100644
index cf022f431c1a9c5b40d6b71411df2dfab98cde13..77078078c16671b65a604afe17eaf66042afcae2 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -19,6 +19,7 @@ dependencies {
@@ -21,6 +21,7 @@ dependencies {
api("com.googlecode.json-simple:json-simple:1.1.1") {
isTransitive = false // includes junit
}
+ api("it.unimi.dsi:fastutil:8.5.6")
// Paper end
compileOnly("org.apache.maven:maven-resolver-provider:3.8.5")
compileOnly("org.apache.maven:maven-resolver-provider:3.9.2")

View File

@ -7,10 +7,10 @@ Co-authored-by: zml <zml@stellardrift.ca>
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
diff --git a/build.gradle.kts b/build.gradle.kts
index 5fccd83117c2c153951d102756acfd4862b8c51b..acf12dfbecb9360c0921f70ed31650feecd33f12 100644
index 77078078c16671b65a604afe17eaf66042afcae2..a346f0d360bacf245a8905e3ff3c4f370960e051 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -8,11 +8,24 @@ java {
@@ -8,13 +8,26 @@ java {
withJavadocJar()
}
@ -27,6 +27,8 @@ index 5fccd83117c2c153951d102756acfd4862b8c51b..acf12dfbecb9360c0921f70ed31650fe
+ extendsFrom(apiAndDocs)
+}
+
val annotationsVersion = "24.0.1"
dependencies {
// api dependencies are listed transitively to API consumers
api("com.google.guava:guava:31.1-jre")
@ -36,7 +38,7 @@ index 5fccd83117c2c153951d102756acfd4862b8c51b..acf12dfbecb9360c0921f70ed31650fe
api("org.yaml:snakeyaml:1.33")
api("org.joml:joml:1.10.5")
// Paper start
@@ -20,6 +33,13 @@ dependencies {
@@ -22,6 +35,13 @@ dependencies {
isTransitive = false // includes junit
}
api("it.unimi.dsi:fastutil:8.5.6")
@ -49,11 +51,11 @@ index 5fccd83117c2c153951d102756acfd4862b8c51b..acf12dfbecb9360c0921f70ed31650fe
+ apiAndDocs("net.kyori:adventure-text-logger-slf4j")
// Paper end
compileOnly("org.apache.maven:maven-resolver-provider:3.8.5")
@@ -80,10 +100,25 @@ tasks.withType<Javadoc> {
compileOnly("org.apache.maven:maven-resolver-provider:3.9.2")
@@ -82,10 +102,25 @@ tasks.withType<Javadoc> {
"https://guava.dev/releases/31.1-jre/api/docs/",
"https://javadoc.io/doc/org.yaml/snakeyaml/1.33/",
"https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/", // Paper - we don't want Java 5 annotations
"https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/", // Paper - we don't want Java 5 annotations
- "https://javadoc.io/doc/net.md-5/bungeecord-chat/1.16-R0.4/",
+ // Paper start
+ //"https://javadoc.io/doc/net.md-5/bungeecord-chat/1.16-R0.4/", // don't link to bungee chat
@ -1366,10 +1368,10 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
throw new UnsupportedOperationException("Not supported yet.");
}
diff --git a/src/main/java/org/bukkit/Sound.java b/src/main/java/org/bukkit/Sound.java
index 4dda5091739ece442a66d983670ad432b6042867..762b0d9ba22a1012ebe5ea77b6aef909fddc0403 100644
index 4cbc963f268753316327e38b6e1e42cffb486b54..6e8d2b35d8f33827396dbcfa817cd9c2f8ad83a6 100644
--- a/src/main/java/org/bukkit/Sound.java
+++ b/src/main/java/org/bukkit/Sound.java
@@ -11,7 +11,7 @@ import org.jetbrains.annotations.NotNull;
@@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull;
* guarantee values will not be removed from this Enum. As such, you should not
* depend on the ordinal values of this class.
*/
@ -1378,7 +1380,7 @@ index 4dda5091739ece442a66d983670ad432b6042867..762b0d9ba22a1012ebe5ea77b6aef909
AMBIENT_BASALT_DELTAS_ADDITIONS("ambient.basalt_deltas.additions"),
AMBIENT_BASALT_DELTAS_LOOP("ambient.basalt_deltas.loop"),
@@ -1640,4 +1640,11 @@ public enum Sound implements Keyed {
@@ -1498,4 +1498,11 @@ public enum Sound implements Keyed {
public NamespacedKey getKey() {
return key;
}
@ -1530,10 +1532,10 @@ index 372c0bd5a4d7800a11c24c95e39fe376a96232bf..9c88be68b4f403d0500cb607394b3a16
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/block/Sign.java b/src/main/java/org/bukkit/block/Sign.java
index 1844b7136ddcc1aa267b8fb2159244d04900da36..9a9f4af69fc8adbd0a05e2e7574f83ff9befad85 100644
index 80f6b718dba4a48130449388f147b4f12510d9f9..abefc7a96528c52434bd7d4eef3be63c5e31e770 100644
--- a/src/main/java/org/bukkit/block/Sign.java
+++ b/src/main/java/org/bukkit/block/Sign.java
@@ -11,6 +11,42 @@ import org.jetbrains.annotations.NotNull;
@@ -10,12 +10,50 @@ import org.jetbrains.annotations.NotNull;
* Represents a captured state of either a SignPost or a WallSign.
*/
public interface Sign extends TileState, Colorable {
@ -1542,7 +1544,7 @@ index 1844b7136ddcc1aa267b8fb2159244d04900da36..9a9f4af69fc8adbd0a05e2e7574f83ff
+ * Gets all the lines of text currently on the {@link Side#FRONT} of this sign.
+ *
+ * @return List of components containing each line of text
+ * @see #getSide(Side)
+ * @deprecated A sign may have multiple writable sides now. Use {@link Sign#getSide(Side)} and {@link SignSide#lines()}.
+ */
+ @NotNull
+ public java.util.List<net.kyori.adventure.text.Component> lines();
@ -1555,9 +1557,10 @@ index 1844b7136ddcc1aa267b8fb2159244d04900da36..9a9f4af69fc8adbd0a05e2e7574f83ff
+ * @param index Line number to get the text from, starting at 0
+ * @throws IndexOutOfBoundsException Thrown when the line does not exist
+ * @return Text on the given line
+ * @see #getSide(Side)
+ * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#line(int)}.
+ */
+ @NotNull
+ @Deprecated
+ public net.kyori.adventure.text.Component line(int index) throws IndexOutOfBoundsException;
+
+ /**
@ -1569,49 +1572,46 @@ index 1844b7136ddcc1aa267b8fb2159244d04900da36..9a9f4af69fc8adbd0a05e2e7574f83ff
+ * @param index Line number to set the text at, starting from 0
+ * @param line New text to set at the specified index
+ * @throws IndexOutOfBoundsException If the index is out of the range 0..3
+ * @see #getSide(Side)
+ * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#line(int, net.kyori.adventure.text.Component)}.
+ */
+ @Deprecated
+ public void line(int index, net.kyori.adventure.text.@NotNull Component line) throws IndexOutOfBoundsException;
+ // Paper end
/**
* Gets all the lines of text currently on the {@link Side#FRONT} of this sign.
@@ -19,6 +55,7 @@ public interface Sign extends TileState, Colorable {
* @see #getSide(Side)
*
* @return Array of Strings containing each line of text
- * @deprecated A sign may have multiple writable sides now. Use {@link Sign#getSide(Side)} and {@link SignSide#getLines()}.
+ * @deprecated A sign may have multiple writable sides now. Use {@link Sign#getSide(Side)} and {@link SignSide#lines()}.
*/
@Deprecated
@NotNull
+ @Deprecated // Paper
public String[] getLines();
/**
@@ -30,8 +67,10 @@ public interface Sign extends TileState, Colorable {
@@ -29,7 +67,7 @@ public interface Sign extends TileState, Colorable {
* @param index Line number to get the text from, starting at 0
* @return Text on the given line
* @throws IndexOutOfBoundsException Thrown when the line does not exist
* @see #getSide(Side)
+ * @deprecated in favour of {@link #line(int)}
- * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#getLine(int)}.
+ * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#line(int)}.
*/
@Deprecated
@NotNull
+ @Deprecated // Paper
public String getLine(int index) throws IndexOutOfBoundsException;
/**
@@ -44,7 +83,9 @@ public interface Sign extends TileState, Colorable {
@@ -44,7 +82,7 @@ public interface Sign extends TileState, Colorable {
* @param index Line number to set the text at, starting from 0
* @param line New text to set at the specified index
* @throws IndexOutOfBoundsException If the index is out of the range 0..3
* @see #getSide(Side)
+ * @deprecated in favour of {@link #line(int, net.kyori.adventure.text.Component)}
- * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#setLine(int, String)}.
+ * @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#line(int, net.kyori.adventure.text.Component)}.
*/
+ @Deprecated // Paper
@Deprecated
public void setLine(int index, @NotNull String line) throws IndexOutOfBoundsException;
/**
diff --git a/src/main/java/org/bukkit/block/sign/SignSide.java b/src/main/java/org/bukkit/block/sign/SignSide.java
index 85be6cfa9ed074073656cd0678600780eb03b47b..e6b9a1b0dbf7cdffafe4a9bb5dd1c3e8afb846e5 100644
index 0f4ae7bd2ad379b5edb40f49f93de9e18c38f415..22bfe971920b526bd1bd52cb58d6acbf0a7ef5be 100644
--- a/src/main/java/org/bukkit/block/sign/SignSide.java
+++ b/src/main/java/org/bukkit/block/sign/SignSide.java
@@ -9,6 +9,39 @@ import org.jetbrains.annotations.NotNull;
@@ -7,6 +7,39 @@ import org.jetbrains.annotations.NotNull;
* Represents a side of a sign.
*/
@Experimental
public interface SignSide extends Colorable {
+ // Paper start
+ /**
@ -2043,7 +2043,7 @@ index f3afe67f0832cb828d25be3654518ff73a80b0e1..598abaa82c634178043a29f6caa6ac52
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827cc5590e3b 100644
index ee60f96ab70f5c650b05673ad193dd912f543dec..44be86a9315d45dcbaabbbfcf2c7451ea4967173 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -42,7 +42,28 @@ import org.jetbrains.annotations.Nullable;
@ -2221,7 +2221,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
/**
* Says a message (or runs a command).
*
@@ -609,6 +695,90 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -632,6 +718,90 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void sendEquipmentChange(@NotNull LivingEntity entity, @NotNull Map<EquipmentSlot, ItemStack> items);
@ -2312,7 +2312,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
/**
* Send a sign change. This fakes a sign change packet for a user at
* a certain location. This will not actually change the world in any way.
@@ -623,7 +793,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -646,7 +816,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param lines the new text on the sign or null to clear it
* @throws IllegalArgumentException if location is null
* @throws IllegalArgumentException if lines is non-null and has a length less than 4
@ -2322,7 +2322,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
public void sendSignChange(@NotNull Location loc, @Nullable String[] lines) throws IllegalArgumentException;
/**
@@ -642,7 +814,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -665,7 +837,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException if location is null
* @throws IllegalArgumentException if dyeColor is null
* @throws IllegalArgumentException if lines is non-null and has a length less than 4
@ -2332,7 +2332,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor) throws IllegalArgumentException;
/**
@@ -662,7 +836,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -685,7 +859,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException if location is null
* @throws IllegalArgumentException if dyeColor is null
* @throws IllegalArgumentException if lines is non-null and has a length less than 4
@ -2342,7 +2342,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor, boolean hasGlowingText) throws IllegalArgumentException;
/**
@@ -1156,6 +1332,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1179,6 +1355,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* pack correctly.
* </ul>
*
@ -2350,7 +2350,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
* @param url The URL from which the client will download the resource
* pack. The string must contain only US-ASCII characters and should
* be encoded as per RFC 1738.
@@ -1212,8 +1389,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1235,8 +1412,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException Thrown if the hash is not 20 bytes
* long.
*/
@ -2361,7 +2361,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
/**
* Request that the player's client download and switch resource packs.
* <p>
@@ -1249,6 +1428,54 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1272,6 +1451,54 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param hash The sha1 hash sum of the resource pack file which is used
* to apply a cached version of the pack directly without downloading
* if it is available. Hast to be 20 bytes long!
@ -2416,7 +2416,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
* @param force If true, the client will be disconnected from the server
* when it declines to use the resource pack.
* @throws IllegalArgumentException Thrown if the URL is null.
@@ -1303,8 +1530,57 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1326,8 +1553,57 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException Thrown if the hash is not 20 bytes
* long.
*/
@ -2474,7 +2474,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
/**
* Gets the Scoreboard displayed to this player
*
@@ -1420,7 +1696,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1443,7 +1719,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*
* @param title Title text
* @param subtitle Subtitle text
@ -2483,7 +2483,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
*/
@Deprecated
public void sendTitle(@Nullable String title, @Nullable String subtitle);
@@ -1439,7 +1715,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1462,7 +1738,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param fadeIn time in ticks for titles to fade in. Defaults to 10.
* @param stay time in ticks for titles to stay. Defaults to 70.
* @param fadeOut time in ticks for titles to fade out. Defaults to 20.
@ -2493,7 +2493,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
public void sendTitle(@Nullable String title, @Nullable String subtitle, int fadeIn, int stay, int fadeOut);
/**
@@ -1666,6 +1944,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1689,6 +1967,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public int getClientViewDistance();
@ -2508,7 +2508,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
/**
* Gets the player's estimated ping in milliseconds.
*
@@ -1691,8 +1977,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1714,8 +2000,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* they wish.
*
* @return the player's locale
@ -2519,7 +2519,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
public String getLocale();
/**
@@ -1744,6 +2032,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1767,6 +2055,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public boolean isAllowingServerListings();
@ -2534,7 +2534,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
// Spigot start
public class Spigot extends Entity.Spigot {
@@ -1798,11 +2094,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1821,11 +2117,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
throw new UnsupportedOperationException("Not supported yet.");
}
@ -2548,7 +2548,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
@Override
public void sendMessage(@NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
throw new UnsupportedOperationException("Not supported yet.");
@@ -1813,7 +2111,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1836,7 +2134,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*
* @param position the screen position
* @param component the components to send
@ -2558,7 +2558,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @NotNull net.md_5.bungee.api.chat.BaseComponent component) {
throw new UnsupportedOperationException("Not supported yet.");
}
@@ -1823,7 +2123,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1846,7 +2146,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*
* @param position the screen position
* @param components the components to send
@ -2568,7 +2568,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
throw new UnsupportedOperationException("Not supported yet.");
}
@@ -1834,7 +2136,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1857,7 +2159,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param position the screen position
* @param sender the sender of the message
* @param component the components to send
@ -2578,7 +2578,7 @@ index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827c
public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @Nullable java.util.UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent component) {
throw new UnsupportedOperationException("Not supported yet.");
}
@@ -1845,7 +2149,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1868,7 +2172,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param position the screen position
* @param sender the sender of the message
* @param components the components to send

View File

@ -6,10 +6,10 @@ Subject: [PATCH] Use ASM for event executors.
Uses method handles for private or static methods.
diff --git a/build.gradle.kts b/build.gradle.kts
index 23b1e7600d2507be60cb8543773b91f4851afb4f..d95b3d504ddc9ed76fc86cd45fa922d68e597827 100644
index a346f0d360bacf245a8905e3ff3c4f370960e051..57e5d0bf373067138a53067563b82e9aa8e100c4 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -40,6 +40,9 @@ dependencies {
@@ -42,6 +42,9 @@ dependencies {
apiAndDocs("net.kyori:adventure-text-serializer-legacy")
apiAndDocs("net.kyori:adventure-text-serializer-plain")
apiAndDocs("net.kyori:adventure-text-logger-slf4j")
@ -18,7 +18,7 @@ index 23b1e7600d2507be60cb8543773b91f4851afb4f..d95b3d504ddc9ed76fc86cd45fa922d6
+ implementation("org.ow2.asm:asm-commons:9.4")
// Paper end
compileOnly("org.apache.maven:maven-resolver-provider:3.8.5")
compileOnly("org.apache.maven:maven-resolver-provider:3.9.2")
diff --git a/src/main/java/com/destroystokyo/paper/event/executor/MethodHandleEventExecutor.java b/src/main/java/com/destroystokyo/paper/event/executor/MethodHandleEventExecutor.java
new file mode 100644
index 0000000000000000000000000000000000000000..5b28e9b1daba7834af67dbc193dd656bedd9a994

View File

@ -5,17 +5,17 @@ Subject: [PATCH] Paper Plugins
diff --git a/build.gradle.kts b/build.gradle.kts
index cff3eb363b17c2a8245b3b2ceb02cbdc1efe3896..03b2fc4c6dd9cbc9f28add7da9420c816f8faa2b 100644
index 57e5d0bf373067138a53067563b82e9aa8e100c4..6c42827db10fb2fb4dede44cba84e7989c1a6fdc 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -45,7 +45,7 @@ dependencies {
@@ -47,7 +47,7 @@ dependencies {
implementation("org.ow2.asm:asm-commons:9.4")
// Paper end
- compileOnly("org.apache.maven:maven-resolver-provider:3.8.5")
+ api("org.apache.maven:maven-resolver-provider:3.8.5") // Paper, expose
compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3")
compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3")
- compileOnly("org.apache.maven:maven-resolver-provider:3.9.2")
+ api("org.apache.maven:maven-resolver-provider:3.9.2")
compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.10")
compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.10")
compileOnly("com.google.code.findbugs:jsr305:1.3.9") // Paper
diff --git a/src/main/java/io/papermc/paper/plugin/PermissionManager.java b/src/main/java/io/papermc/paper/plugin/PermissionManager.java
new file mode 100644

View File

@ -3455,10 +3455,10 @@ index 516d7fc7812aac343782861d0d567f54aa578c2a..00000000000000000000000000000000
- // Spigot end
-}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 4190d5b3b3d3eb9525ed342179cb827cc5590e3b..3fffe6844d5f113f13ae3e2636efd7a8f43940dd 100644
index 44be86a9315d45dcbaabbbfcf2c7451ea4967173..02e09dc027409b3be9e960be6f2e4c10a06819b6 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2154,7 +2154,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2177,7 +2177,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@Deprecated // Paper
public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @Nullable java.util.UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
throw new UnsupportedOperationException("Not supported yet.");

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Player affects spawning API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 3fffe6844d5f113f13ae3e2636efd7a8f43940dd..aaca12b0fd009f605ce8120f0cbe0a1049771cf5 100644
index 02e09dc027409b3be9e960be6f2e4c10a06819b6..94d9882520a6a87d936e5f7823b910a630ec5f34 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1983,6 +1983,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2006,6 +2006,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@Deprecated // Paper
public String getLocale();

View File

@ -75,10 +75,10 @@ index 5357291ff0f2f20bd87ab9f6e57f6a4f6ff65226..887aa6217583d224d66f6d238ac269c2
public class Spigot {
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index aaca12b0fd009f605ce8120f0cbe0a1049771cf5..e543a0cc1bd7e4d87038c06cad0f5bde7c64f1b9 100644
index 94d9882520a6a87d936e5f7823b910a630ec5f34..c8569243fdbb6673d7808a9cae12d08e4d81a947 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1997,6 +1997,78 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2020,6 +2020,78 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param affects Whether the player can affect mob spawning
*/
public void setAffectsSpawning(boolean affects);

View File

@ -76,10 +76,10 @@ index b6ff3a80fcb5c0e843caa1cfdb165cf2cadb8bd2..f24bb5b22975bcbdce1bf1e80cf7a1b3
* Gets the name of the update folder. The update folder is used to safely
* update plugins at the right moment on a plugin load.
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index e543a0cc1bd7e4d87038c06cad0f5bde7c64f1b9..9caacc128a53d13b049a03f78d9dea16f8ff025e 100644
index c8569243fdbb6673d7808a9cae12d08e4d81a947..a08f7f055e450b5f4d79e62bdd6d076f38703e95 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -849,6 +849,42 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -872,6 +872,42 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void sendMap(@NotNull MapView map);

View File

@ -493,7 +493,7 @@ index 4205649948a9e2a72f64c3f007112245abac6d50..b3b32ce429edbf1ed040354dbe28ab86
}
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index 3fcb73a0fc2daaeb76dd4c6757afce52c5b3118b..2b8308989fce7f8a16907f8711b362e671fdbfb6 100644
index 974ff7116b294473ec450757e8a9341540f43dcd..fc2dae69165776d08274e34a69962cc70445f411 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -515,7 +515,8 @@ public final class SimplePluginManager implements PluginManager {

View File

@ -432,10 +432,10 @@ index 0000000000000000000000000000000000000000..9e90c3df567a65b48a0b9341f784eb90
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 9caacc128a53d13b049a03f78d9dea16f8ff025e..c7d9185e2f16b77f78779403d075f31dabbc117b 100644
index a08f7f055e450b5f4d79e62bdd6d076f38703e95..6e40bc2a4e768d49d57998146e2d2cd8f0a32a95 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -883,6 +883,131 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -906,6 +906,131 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
public default void sendMessage(net.md_5.bungee.api.ChatMessageType position, net.md_5.bungee.api.chat.BaseComponent... components) {
spigot().sendMessage(position, components);
}

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Complete resource pack API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index c7d9185e2f16b77f78779403d075f31dabbc117b..29b1cceff7100cbcde7ddca0d1acbb717f3b6b1c 100644
index 6e40bc2a4e768d49d57998146e2d2cd8f0a32a95..2bac5662dc227e89ca74f8504bc30dc757618da5 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1461,7 +1461,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1484,7 +1484,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException Thrown if the URL is null.
* @throws IllegalArgumentException Thrown if the URL is too long. The
* length restriction is an implementation specific arbitrary value.
@ -18,7 +18,7 @@ index c7d9185e2f16b77f78779403d075f31dabbc117b..29b1cceff7100cbcde7ddca0d1acbb71
public void setResourcePack(@NotNull String url);
/**
@@ -2287,6 +2289,124 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2310,6 +2312,124 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
default net.kyori.adventure.text.event.HoverEvent<net.kyori.adventure.text.event.HoverEvent.ShowEntity> asHoverEvent(final @NotNull java.util.function.UnaryOperator<net.kyori.adventure.text.event.HoverEvent.ShowEntity> op) {
return net.kyori.adventure.text.event.HoverEvent.showEntity(op.apply(net.kyori.adventure.text.event.HoverEvent.ShowEntity.of(this.getType().getKey(), this.getUniqueId(), this.displayName())));
}

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add String based Action Bar API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 29b1cceff7100cbcde7ddca0d1acbb717f3b6b1c..d85ce38bcae05a643479e7f687431dced1834b93 100644
index 2bac5662dc227e89ca74f8504bc30dc757618da5..a30692c9128eca4d7a317e5fcc1c830e9cc239a7 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -850,6 +850,39 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -873,6 +873,39 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
public void sendMap(@NotNull MapView map);
// Paper start
@ -48,7 +48,7 @@ index 29b1cceff7100cbcde7ddca0d1acbb717f3b6b1c..d85ce38bcae05a643479e7f687431dce
/**
* Sends the component to the player
*
@@ -877,9 +910,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -900,9 +933,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Sends an array of components as a single message to the specified screen position of this player
*

View File

@ -414,7 +414,7 @@ index ae9eaaa8e38e1d9dfc459926c7fc51ddb89de84a..b2ec535bb1b0ce0c114ddd7638b90218
@Override
public int getConversionTime();
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index d85ce38bcae05a643479e7f687431dced1834b93..bb12eb007aeb932c2d89c6e6c4081c4802469cb6 100644
index a30692c9128eca4d7a317e5fcc1c830e9cc239a7..530315d757f330b22cf6fd41e3609608cb242b6e 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -313,15 +313,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@ -446,7 +446,7 @@ index d85ce38bcae05a643479e7f687431dced1834b93..bb12eb007aeb932c2d89c6e6c4081c48
* @param loc the location to play the effect at
* @param effect the {@link Effect}
* @param data a data bit needed for some effects
@@ -867,7 +867,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -890,7 +890,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*
* Use supplied alternative character to the section symbol to represent legacy color codes.
*
@ -455,7 +455,7 @@ index d85ce38bcae05a643479e7f687431dced1834b93..bb12eb007aeb932c2d89c6e6c4081c48
* @param message The message to send
* @deprecated use {@link #sendActionBar(net.kyori.adventure.text.Component)}
*/
@@ -1331,7 +1331,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1354,7 +1354,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Allows this player to see a player that was previously hidden. If
@ -464,7 +464,7 @@ index d85ce38bcae05a643479e7f687431dced1834b93..bb12eb007aeb932c2d89c6e6c4081c48
* remain hidden until the other plugin calls this method too.
*
* @param plugin Plugin that wants to show the player
@@ -1360,7 +1360,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1383,7 +1383,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Allows this player to see an entity that was previously hidden. If
@ -978,18 +978,18 @@ index d5b50a4a954fed35d37f03f1a277cc173ca106df..c69904f3ee7f3a41d6cebcd401abf838
/**
* Sets the entities armor to the provided array of ItemStacks
diff --git a/src/main/java/org/bukkit/inventory/ItemFlag.java b/src/main/java/org/bukkit/inventory/ItemFlag.java
index 0a1c39a2a007342f02459b3f5515dbec012b2a61..69a66073bcaa10967b8736cbf35182b912c17d11 100644
index 42fcc31147934fd4ed6484b0729e938e7ae2f8e2..4e637420b9a39b822be19367a16da93f236549b3 100644
--- a/src/main/java/org/bukkit/inventory/ItemFlag.java
+++ b/src/main/java/org/bukkit/inventory/ItemFlag.java
@@ -38,7 +38,7 @@ public enum ItemFlag {
@@ -35,7 +35,7 @@ public enum ItemFlag {
*/
HIDE_DYE,
/**
- * Setting to show/hide armor trim from leather armor.
+ * Setting to show/hide armor trim from armor.
*/
@MinecraftExperimental
@ApiStatus.Experimental
HIDE_ARMOR_TRIM;
}
diff --git a/src/main/java/org/bukkit/inventory/PlayerInventory.java b/src/main/java/org/bukkit/inventory/PlayerInventory.java
index 62fbd7f6d8195bebcab7f704a0a485a1bbeca26c..5461f7fa75f5a065bb333b4a113640b5fe1e3825 100644
--- a/src/main/java/org/bukkit/inventory/PlayerInventory.java

View File

@ -29,7 +29,7 @@ index 159e5a908b35b84b7fabc36581e093d9aa4c4b67..349da0065ddf000cacdc259fab0f2c75
// Paper end
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
index 87f7942082ad943a97058f58c09ea2fe9caf5bfe..9d32283ee612a50b8a2bfe5151f42c9f181ede4c 100644
index 09a36df6edce2a283df80c67d5ef62da7ff73555..a8faa4c1881bae4d47d901388a78b991d138b518 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -537,7 +537,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat

View File

@ -14,10 +14,10 @@ it without having to shade it in the plugin and going through
several layers of logging abstraction.
diff --git a/build.gradle.kts b/build.gradle.kts
index 9d6e604c7667985dc8107a5df9d36c53e8006326..1de2f8f345a287d93aad106dd13472a7837ec805 100644
index 6c42827db10fb2fb4dede44cba84e7989c1a6fdc..7d6239855a84502de4eb3328b0dcf12ac671dce4 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -40,6 +40,8 @@ dependencies {
@@ -42,6 +42,8 @@ dependencies {
apiAndDocs("net.kyori:adventure-text-serializer-legacy")
apiAndDocs("net.kyori:adventure-text-serializer-plain")
apiAndDocs("net.kyori:adventure-text-logger-slf4j")

View File

@ -9,7 +9,7 @@ on the real tile entity.
This is useful for where performance is needed
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
index f8e12868f2e629cdf4784f0157fdb2f8e7b01f99..61ce341daec63392f040b70cd12662379b2f1ebd 100644
index 870ad6cd930653e6248abcc0fce94ffafbe9ebde..9f4d383ea3d6b26d16b8b77ca4c29d2d839ad6dd 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
@@ -272,6 +272,16 @@ public interface Block extends Metadatable, Translatable {

View File

@ -57,7 +57,7 @@ index 0000000000000000000000000000000000000000..7b2af1bd72dfbcf4e962a982940fc49b
+
+}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index bb12eb007aeb932c2d89c6e6c4081c4802469cb6..c7c23873a09c9eb0d86a6984e3dfe3413f88d5e1 100644
index 530315d757f330b22cf6fd41e3609608cb242b6e..47cf629a4d75f9c8b8502ff9f7898eebcf4e6762 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -42,7 +42,7 @@ import org.jetbrains.annotations.Nullable;

View File

@ -10,10 +10,10 @@ of giving the player experience points.
Both an API To standalone mend, and apply mending logic to .giveExp has been added.
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index c7c23873a09c9eb0d86a6984e3dfe3413f88d5e1..e4e254c26adb15be4f60a59a0cf8a41816b9250a 100644
index 47cf629a4d75f9c8b8502ff9f7898eebcf4e6762..1323badb5073735155e38751d954a51448f8e47e 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1174,6 +1174,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1197,6 +1197,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void resetPlayerWeather();
@ -29,7 +29,7 @@ index c7c23873a09c9eb0d86a6984e3dfe3413f88d5e1..e4e254c26adb15be4f60a59a0cf8a418
/**
* Gets the player's cooldown between picking up experience orbs.
*
@@ -1199,8 +1208,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1222,8 +1231,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* Gives the player the amount of experience specified.
*
* @param amount Exp amount to give

View File

@ -16,7 +16,7 @@ See: https://github.com/PaperMC/Paper/issues/917
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/PreCreatureSpawnEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/PreCreatureSpawnEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..02e421b0bb4ce3529ef1c4d34ec8a0c0345cce57
index 0000000000000000000000000000000000000000..8b48759bf6f4fcef0847d9a2461993e3f2fdc9aa
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/entity/PreCreatureSpawnEvent.java
@@ -0,0 +1,105 @@

View File

@ -7,10 +7,10 @@ This allows you to create already filled textures on Skulls to avoid texture loo
which commonly cause rate limit issues with Mojang API
diff --git a/src/main/java/org/bukkit/block/Skull.java b/src/main/java/org/bukkit/block/Skull.java
index fab2ca9f6c7738795cfedbb6d0d2206f13e9da8a..33ae32155d12ecd58a2a6434dba229043d4e2132 100644
index b39128bb0ca2d4fe7a254193236c60fb5bfaa7da..5135b8e6028e6926e2711e2dd6ce68b76f468fd7 100644
--- a/src/main/java/org/bukkit/block/Skull.java
+++ b/src/main/java/org/bukkit/block/Skull.java
@@ -65,6 +65,20 @@ public interface Skull extends TileState {
@@ -63,6 +63,20 @@ public interface Skull extends TileState {
*/
public void setOwningPlayer(@NotNull OfflinePlayer player);
@ -31,7 +31,7 @@ index fab2ca9f6c7738795cfedbb6d0d2206f13e9da8a..33ae32155d12ecd58a2a6434dba22904
/**
* Gets the profile of the player who owns the skull. This player profile
* may appear as the texture depending on skull type.
@@ -72,6 +86,7 @@ public interface Skull extends TileState {
@@ -70,6 +84,7 @@ public interface Skull extends TileState {
* @return the profile of the owning player
*/
@Nullable
@ -39,7 +39,7 @@ index fab2ca9f6c7738795cfedbb6d0d2206f13e9da8a..33ae32155d12ecd58a2a6434dba22904
PlayerProfile getOwnerProfile();
/**
@@ -86,6 +101,7 @@ public interface Skull extends TileState {
@@ -84,6 +99,7 @@ public interface Skull extends TileState {
* @throws IllegalArgumentException if the profile does not contain the
* necessary information
*/
@ -48,10 +48,10 @@ index fab2ca9f6c7738795cfedbb6d0d2206f13e9da8a..33ae32155d12ecd58a2a6434dba22904
/**
diff --git a/src/main/java/org/bukkit/inventory/meta/SkullMeta.java b/src/main/java/org/bukkit/inventory/meta/SkullMeta.java
index 461cdecc3e8f45b63f17963031b16943309909e2..1808e1315c72f983817426420eb22434c6a65024 100644
index 5a18a66a0b7877ec0c1859f78cce659db4b8541a..862640b4611458dfbcd3be797eacd120fc8d1f9f 100644
--- a/src/main/java/org/bukkit/inventory/meta/SkullMeta.java
+++ b/src/main/java/org/bukkit/inventory/meta/SkullMeta.java
@@ -40,6 +40,20 @@ public interface SkullMeta extends ItemMeta {
@@ -38,6 +38,20 @@ public interface SkullMeta extends ItemMeta {
@Deprecated
boolean setOwner(@Nullable String owner);
@ -72,7 +72,7 @@ index 461cdecc3e8f45b63f17963031b16943309909e2..1808e1315c72f983817426420eb22434
/**
* Gets the owner of the skull.
*
@@ -66,6 +80,7 @@ public interface SkullMeta extends ItemMeta {
@@ -64,6 +78,7 @@ public interface SkullMeta extends ItemMeta {
* @return the profile of the owning player
*/
@Nullable
@ -80,7 +80,7 @@ index 461cdecc3e8f45b63f17963031b16943309909e2..1808e1315c72f983817426420eb22434
PlayerProfile getOwnerProfile();
/**
@@ -80,6 +95,7 @@ public interface SkullMeta extends ItemMeta {
@@ -78,6 +93,7 @@ public interface SkullMeta extends ItemMeta {
* @throws IllegalArgumentException if the profile does not contain the
* necessary information
*/

View File

@ -366,7 +366,7 @@ index 0000000000000000000000000000000000000000..517d15238ed117f38bbd39f570874014
+
+}
diff --git a/src/main/java/org/bukkit/util/CachedServerIcon.java b/src/main/java/org/bukkit/util/CachedServerIcon.java
index 612958a331575d1da2715531ebdf6b1168f2e860..bb4f7702ced0baf0670a7a21d48ad528b7249361 100644
index 9a7768d41270714d4a1c89b4dcb436cc66f57545..b74b21a1ac7798e847b6d34ff45026e1c9cfed14 100644
--- a/src/main/java/org/bukkit/util/CachedServerIcon.java
+++ b/src/main/java/org/bukkit/util/CachedServerIcon.java
@@ -18,4 +18,9 @@ public interface CachedServerIcon {

View File

@ -93,10 +93,10 @@ index 7f6400c58530d4827c197f3d1fbabfa34554010f..e4c85e67713c5ed4b8b1fcc3c4231327
/**
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index e4e254c26adb15be4f60a59a0cf8a41816b9250a..93129241f182e217478e61df37d6f7789954fc62 100644
index 1323badb5073735155e38751d954a51448f8e47e..bcd059b4e52443431e6445d70b9f6a13761d96ad 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2463,6 +2463,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2486,6 +2486,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* was {@link org.bukkit.event.player.PlayerResourcePackStatusEvent.Status#SUCCESSFULLY_LOADED}
*/
boolean hasResourcePack();

View File

@ -24,10 +24,10 @@ index abdca9fe5acc90f167219eb769ece66c35682bb1..9715a9d36187e2eecfeab1a05087d27c
/**
* Make the entity drop the item in their hand.
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 93129241f182e217478e61df37d6f7789954fc62..26f9b1b5773f39aad3d8fe02a53d040c4042e81d 100644
index bcd059b4e52443431e6445d70b9f6a13761d96ad..7509c7654df9f020686ee4a3d84d3380a540f9e2 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2308,7 +2308,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2331,7 +2331,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Open a Sign for editing by the Player.
*

View File

@ -74,10 +74,10 @@ index b1ded556a1ce4e1d3c873ab9d7f799b6edcc5118..6ab8f05be11f8101202d56bfebc7ec23
/**
* Checks if this player is whitelisted or not
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 26f9b1b5773f39aad3d8fe02a53d040c4042e81d..675e1fed283a90c49380f51e4e50e0e7dde9c3e4 100644
index 7509c7654df9f020686ee4a3d84d3380a540f9e2..f14212bbdc6a44509469cf985d3105041b6aafaa 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -850,6 +850,162 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -873,6 +873,162 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
public void sendMap(@NotNull MapView map);
// Paper start

View File

@ -500,10 +500,10 @@ index 0000000000000000000000000000000000000000..f45b8cfd1611345e8d81ecb8297a586f
+ }
+}
diff --git a/src/main/java/org/bukkit/Particle.java b/src/main/java/org/bukkit/Particle.java
index 7336edb91e7095cce381318220496b51962afbe9..0125890a258ee58a43990285b341f8a62a5c281b 100644
index 73b782c3975ad13159b6236976783fcfabd20493..819506712e9874c0142fc9e7d959bd7be97fc649 100644
--- a/src/main/java/org/bukkit/Particle.java
+++ b/src/main/java/org/bukkit/Particle.java
@@ -170,6 +170,17 @@ public enum Particle {
@@ -162,6 +162,17 @@ public enum Particle {
return dataType;
}

View File

@ -6,7 +6,7 @@ Subject: [PATCH] ItemStack#getMaxItemUseDuration
Allows you to determine how long it takes to use a usable/consumable item
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
index 9d32283ee612a50b8a2bfe5151f42c9f181ede4c..53d99d214652ae1636f28a179a5b66edc0f8f229 100644
index a8faa4c1881bae4d47d901388a78b991d138b518..b85eb71ff5d198d6270cbe07da0de3ed27fa72d5 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -646,5 +646,13 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat

View File

@ -5,7 +5,7 @@ Subject: [PATCH] ItemStack API additions for quantity/flags/lore
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
index 53d99d214652ae1636f28a179a5b66edc0f8f229..1907b8cfb4a78415fba8d5445ba98a6208516fd9 100644
index b85eb71ff5d198d6270cbe07da0de3ed27fa72d5..83a0631a80db156ace1d977df71d5fc653b70bb6 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -3,6 +3,7 @@ package org.bukkit.inventory;

View File

@ -169,7 +169,7 @@ index 0ebd54df0bb072df25a6ebcf137a39829cf71bf9..6618f2129e108c0a6cd15f6d0e864260
/**
* Gets whether the witch is drinking a potion
diff --git a/src/main/java/org/bukkit/entity/Wither.java b/src/main/java/org/bukkit/entity/Wither.java
index 225c65a20a3e33dfb14e108a36f2f4bc60f7920c..b86f0196e6eb8070830f63a94f732522c2a6c2f1 100644
index b3a5d7a91e483b9fd569dd3c8cec989498a50104..87a814f63c3f35be35bfa210c9248ad211c0dd8f 100644
--- a/src/main/java/org/bukkit/entity/Wither.java
+++ b/src/main/java/org/bukkit/entity/Wither.java
@@ -6,7 +6,7 @@ import org.jetbrains.annotations.Nullable;

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Ability to get Tile Entities from a chunk without snapshots
diff --git a/src/main/java/org/bukkit/Chunk.java b/src/main/java/org/bukkit/Chunk.java
index dc1a328e2202b755266b2564656f5bb60dd260cd..2f6142b6bfaa3b523478eccd6ad13ce922e81da9 100644
index 766d643f0fe79660942fdad25e39e488e9379419..4418c41f75e9a190dd77abdd6048b0a4fb2a57ed 100644
--- a/src/main/java/org/bukkit/Chunk.java
+++ b/src/main/java/org/bukkit/Chunk.java
@@ -122,7 +122,30 @@ public interface Chunk extends PersistentDataHolder {

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Expose attack cooldown methods for Player
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 675e1fed283a90c49380f51e4e50e0e7dde9c3e4..44aa4ad14818e26993c912460bd91015ded09754 100644
index f14212bbdc6a44509469cf985d3105041b6aafaa..71cd103ba699a6f7af5bdbbd2079991e4a2b4655 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2633,6 +2633,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2656,6 +2656,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param profile The new profile to use
*/
void setPlayerProfile(@NotNull com.destroystokyo.paper.profile.PlayerProfile profile);

View File

@ -179,7 +179,7 @@ index a5984ab06cce95d30e70511e125f69339b574c04..130cf9e5981f701dff4fa72e71e0b5dc
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java
index 1f1df82c9bcf18bad1187e3f24ede1901d91c06f..3b43954b428f2e5e9a718bf6d34116f25c90269f 100644
index a803bfea5400b3578bb4cf3261874e873b6467d9..27909044c0c136acde18d64f14e84de932ba1045 100644
--- a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java
+++ b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java
@@ -63,6 +63,17 @@ public class PlayerDeathEvent extends EntityDeathEvent {

View File

@ -226,7 +226,7 @@ index a42f1d53340e4073038d46b7fabf5d44248d5b32..dbc22807a33606f8fe326cc2f5f755fe
return key;
}
diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
index 64114b1a9e201df369fc794fbee984d496385420..35009498aafd1bd36c493085127135fc8a5c36ec 100644
index f78714c2a6d9da162c9802552984cbfad76ff728..55e9dc5d1d87fbc9d0dabbb7bd59584fe2c5f379 100644
--- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
+++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
@@ -444,4 +444,87 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Material API additions
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 0d04591db6e2e0b08b06904c16ef41b59decd952..fb23fce97a1930b968b76fa9ff4fbbb452768096 100644
index f52c0e25e75e890046339d605c0abf79d82864f2..64d01ce77966e895ec494719a4398577be1097a1 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -116,6 +116,7 @@ import org.jetbrains.annotations.Nullable;
@@ -118,6 +118,7 @@ import org.jetbrains.annotations.Nullable;
/**
* An enum of all material IDs accepted by the official server and client
*/
@ -16,7 +16,7 @@ index 0d04591db6e2e0b08b06904c16ef41b59decd952..fb23fce97a1930b968b76fa9ff4fbbb4
public enum Material implements Keyed, Translatable {
//<editor-fold desc="Materials" defaultstate="collapsed">
AIR(9648, 0),
@@ -4548,6 +4549,22 @@ public enum Material implements Keyed, Translatable {
@@ -4435,6 +4436,22 @@ public enum Material implements Keyed, Translatable {
}
}

View File

@ -1119,10 +1119,10 @@ index 0000000000000000000000000000000000000000..d7eb49a05c3f0cacf285f8995433c5d5
+ .ensureSize("WATER_BASED", 11).lock();
+}
diff --git a/src/main/java/org/bukkit/Tag.java b/src/main/java/org/bukkit/Tag.java
index 2d25228016fc9a9a1ba87f58865ec8ee65115461..28e5691e265b94eb9855f87d05f84e8ff963c566 100644
index 1504dca4ec3e8d21189b7534bb009521799ffdf7..82d34e9aae42dfafd900dc0e610bf1dc82a5a6f3 100644
--- a/src/main/java/org/bukkit/Tag.java
+++ b/src/main/java/org/bukkit/Tag.java
@@ -12,6 +12,10 @@ import org.jetbrains.annotations.NotNull;
@@ -11,6 +11,10 @@ import org.jetbrains.annotations.NotNull;
* Note that whilst all tags defined within this interface must be present in
* implementations, their existence is not guaranteed across future versions.
*

View File

@ -63,7 +63,7 @@ index 0000000000000000000000000000000000000000..31f34b54801f6699ce43355fa2a0a51f
+ }
+}
diff --git a/src/main/java/org/bukkit/event/player/PlayerRespawnEvent.java b/src/main/java/org/bukkit/event/player/PlayerRespawnEvent.java
index 7c2cec60cbaf199416496292f2264fa3864b499c..f5bdb5244c8d993c624f938c8fb7ccff74655d75 100644
index c3d9d95be50eacb212108a01b612756f772956aa..03225d2b4c91caa58c2995d9cf0e7fb4663749ab 100644
--- a/src/main/java/org/bukkit/event/player/PlayerRespawnEvent.java
+++ b/src/main/java/org/bukkit/event/player/PlayerRespawnEvent.java
@@ -8,6 +8,9 @@ import org.jetbrains.annotations.NotNull;

View File

@ -90,10 +90,10 @@ index 20978b269a7757a561d6b872cc77898b44bbd272..2b9a117804a8ca54b47e51e23359bd6e
if (this.world == null) {
return null;
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 2126636b646068312a49242917808f5d91bce614..96e44836b3634a53d8a9f0785d4cdcec872b95f7 100644
index 64d01ce77966e895ec494719a4398577be1097a1..7705fece7f58bd66f7d68da85f8f34e43b4bae12 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -4578,11 +4578,11 @@ public enum Material implements Keyed, Translatable {
@@ -4465,11 +4465,11 @@ public enum Material implements Keyed, Translatable {
}
/**
@ -107,7 +107,7 @@ index 2126636b646068312a49242917808f5d91bce614..96e44836b3634a53d8a9f0785d4cdcec
public boolean isLegacy() {
return legacy;
}
@@ -4653,8 +4653,10 @@ public enum Material implements Keyed, Translatable {
@@ -4540,8 +4540,10 @@ public enum Material implements Keyed, Translatable {
* Gets the MaterialData class associated with this Material
*
* @return MaterialData associated with this Material
@ -156,10 +156,10 @@ index f43209cf7b752c26718c303ca8c3e1c7d9912ad3..f0094e6fb05e526736629ad3181c8d2c
/**
diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java
index bb333b90e103e49923808b1ee0e1cd2787086cea..1976ed42f255825d1eaf2ee2c9465d22e81abdb3 100644
index 6e5e5fecdd7b76dde2e1524fe7b5faa837f491fb..5a09d288c980eefbd69471d83aabac627b0ac0b3 100644
--- a/src/main/java/org/bukkit/Registry.java
+++ b/src/main/java/org/bukkit/Registry.java
@@ -248,8 +248,11 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -246,8 +246,11 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
*
* @param input non-null input
* @return registered object or null if does not exist

View File

@ -8,7 +8,7 @@ Exposes a mutable array on items a player should keep on death
Example Usage: https://gist.github.com/aikar/5bb202de6057a051a950ce1f29feb0b4
diff --git a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java
index 3b43954b428f2e5e9a718bf6d34116f25c90269f..bfd3654c02e8ad906c620a86165a38c65a31b62b 100644
index 27909044c0c136acde18d64f14e84de932ba1045..ed7ede83507c052e05afffea78600b16439590dd 100644
--- a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java
+++ b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java
@@ -36,7 +36,6 @@ public class PlayerDeathEvent extends EntityDeathEvent {

View File

@ -76,7 +76,7 @@ index 0000000000000000000000000000000000000000..ec36942128cbacae171584c89480b4aa
+ Sound getFallSound();
+}
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
index 0be73b2f45c9aab6e73bcb7a76136ec6e2428163..3107abe94bb94b03b2e285c75ab0b7fdc7c0bc87 100644
index 78f6cc1a8a8de05aec6f551f8a5f425944f0ffa3..b0b148918eeaf10d60734def6ac84b678c0d74c7 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
@@ -607,4 +607,25 @@ public interface Block extends Metadatable, Translatable {

View File

@ -10,7 +10,7 @@ Adds bool param to trigger exp drops for blocks
Co-authored-by: William Blake Galbreath <Blake.Galbreath@GMail.com>
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
index 3107abe94bb94b03b2e285c75ab0b7fdc7c0bc87..06ef9e133125d80127e1dbd6ae0eda89fa08a1d7 100644
index b0b148918eeaf10d60734def6ac84b678c0d74c7..232662f3130ca49156ed8b71acf4495aea33c212 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
@@ -481,6 +481,52 @@ public interface Block extends Metadatable, Translatable {

View File

@ -5,7 +5,7 @@ Subject: [PATCH] PlayerDeathEvent#shouldDropExperience
diff --git a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java
index bfd3654c02e8ad906c620a86165a38c65a31b62b..d5eeb37d331e205826aa6199bd481cb0db40d721 100644
index ed7ede83507c052e05afffea78600b16439590dd..c7138d79a572a525c70b51b7c79d2c5dfb18f25c 100644
--- a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java
+++ b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java
@@ -1,6 +1,8 @@

View File

@ -229,10 +229,10 @@ index 0000000000000000000000000000000000000000..cf67dc7d465223710adbf2b798109f52
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 44aa4ad14818e26993c912460bd91015ded09754..a2dd30628458a60922a1326c88e2cbc158a28e89 100644
index 71cd103ba699a6f7af5bdbbd2079991e4a2b4655..8a011236b128fa52a0453b492eeb809f2fa77def 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2653,6 +2653,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2676,6 +2676,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* Reset the cooldown counter to 0, effectively starting the cooldown period.
*/
void resetCooldown();

View File

@ -178,10 +178,10 @@ index 4a0c43acc2714e095973eb78536041bb1a179ddc..acf2244f77133df53eb5f862c8e713c8
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/inventory/SmithingInventory.java b/src/main/java/org/bukkit/inventory/SmithingInventory.java
index 8f7749d10b68b6fe3c29f2e38dd1f7b9a6b45d8c..7808d30ae194d5ec043e630c277916a66d452a69 100644
index 96d526b7b153e56c9a97de42ce3270b6638510e4..a41ca6bd2672db2810dd70c4925b84a4f081af05 100644
--- a/src/main/java/org/bukkit/inventory/SmithingInventory.java
+++ b/src/main/java/org/bukkit/inventory/SmithingInventory.java
@@ -35,4 +35,44 @@ public interface SmithingInventory extends Inventory {
@@ -30,4 +30,44 @@ public interface SmithingInventory extends Inventory {
*/
@Nullable
Recipe getRecipe();

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Villager Restocks API
diff --git a/src/main/java/org/bukkit/entity/Villager.java b/src/main/java/org/bukkit/entity/Villager.java
index 6bf3af3ed81b66f61e53105d3591165ea74dba0e..d8cf5e5921357ce9645f5dcb5a3bffcf3c10af7e 100644
index a91400cd8bb4c72d1f3200a17f6de025540fe09d..4128b848ec739308694d54d9e859c28185f42a63 100644
--- a/src/main/java/org/bukkit/entity/Villager.java
+++ b/src/main/java/org/bukkit/entity/Villager.java
@@ -78,6 +78,20 @@ public interface Villager extends AbstractVillager {

View File

@ -110,7 +110,7 @@ index 0000000000000000000000000000000000000000..5600fcdc9795a9f49091db48d73bbd49
+ TRADING,
+}
diff --git a/src/main/java/org/bukkit/entity/Villager.java b/src/main/java/org/bukkit/entity/Villager.java
index d8cf5e5921357ce9645f5dcb5a3bffcf3c10af7e..c799ac46dbe257d470d3b236cf55b41240f5fda8 100644
index 4128b848ec739308694d54d9e859c28185f42a63..d841d94d46462e0ceb7c6b04cc8fc36792bd9201 100644
--- a/src/main/java/org/bukkit/entity/Villager.java
+++ b/src/main/java/org/bukkit/entity/Villager.java
@@ -1,6 +1,8 @@

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Spawn Reason API
diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java
index a89fff5c164881be0286ec2240e94dd5883ecc40..e55f6e2baf35dbd91c433ab9e62713eaac85435b 100644
index 05c29cbd2ae1ca0434a90f8389479bd608ca2ac1..66bc6da2a482bb207ec50beb22fd62aeda90cc34 100644
--- a/src/main/java/org/bukkit/RegionAccessor.java
+++ b/src/main/java/org/bukkit/RegionAccessor.java
@@ -10,6 +10,7 @@ import org.bukkit.block.data.BlockData;

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Support components in ItemMeta
diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
index 1beedb446a9dd554d05d1d94dba8598e4b69eba6..c6b0fd783675cd019048e445d8e959637d90be7a 100644
index 5c1ca0e47f0ac1525c3d37b55f52874878f44c28..e33ec3eaa1cd520db8224250e886e6240fefe76f 100644
--- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
+++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
@@ -5,6 +5,7 @@ import java.util.Collection;

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Brand support
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index a2dd30628458a60922a1326c88e2cbc158a28e89..2606c3edf89ca1f435aa3809d4609fe104211523 100644
index 8a011236b128fa52a0453b492eeb809f2fa77def..712d391f4ce3ac5fd6293629ecd4e74e0d049b3a 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2785,6 +2785,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2808,6 +2808,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
// Paper end
}

View File

@ -144,10 +144,10 @@ index 753bfcec441533071120d925c83789ef53afa176..c6bc84a8755b2fe5d7d8d3ec857700ec
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 96e44836b3634a53d8a9f0785d4cdcec872b95f7..fb4d98c8538e21936b256a7cbc8242e7a3b3b26c 100644
index 7705fece7f58bd66f7d68da85f8f34e43b4bae12..6a89eab53f21bc4420e616cc299864fb564e1045 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -117,7 +117,7 @@ import org.jetbrains.annotations.Nullable;
@@ -119,7 +119,7 @@ import org.jetbrains.annotations.Nullable;
* An enum of all material IDs accepted by the official server and client
*/
@SuppressWarnings({"DeprecatedIsStillUsed", "deprecation"}) // Paper
@ -156,7 +156,7 @@ index 96e44836b3634a53d8a9f0785d4cdcec872b95f7..fb4d98c8538e21936b256a7cbc8242e7
//<editor-fold desc="Materials" defaultstate="collapsed">
AIR(9648, 0),
STONE(22948),
@@ -4563,6 +4563,15 @@ public enum Material implements Keyed, Translatable {
@@ -4450,6 +4450,15 @@ public enum Material implements Keyed, Translatable {
}
return false;
}
@ -172,7 +172,7 @@ index 96e44836b3634a53d8a9f0785d4cdcec872b95f7..fb4d98c8538e21936b256a7cbc8242e7
// Paper end
/**
@@ -11046,9 +11055,11 @@ public enum Material implements Keyed, Translatable {
@@ -10949,9 +10958,11 @@ public enum Material implements Keyed, Translatable {
* material
* @see #getBlockTranslationKey()
* @see #getItemTranslationKey()
@ -232,10 +232,10 @@ index 13eac9ad2c1672051635d1c35cc49239252e7a61..107e36ef02a9481954bd770ce9a55a0b
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/block/Biome.java b/src/main/java/org/bukkit/block/Biome.java
index a5908d0a03801757d1f6184d73c3c89981afa107..d268498c779d6b2ec07812d4d1c0b168fab63c07 100644
index d3087d60378822cdd7cea25fd63d3f496e3cd2fb..5d8fa5b39a5d50cca48ba63af3a84b80f279b649 100644
--- a/src/main/java/org/bukkit/block/Biome.java
+++ b/src/main/java/org/bukkit/block/Biome.java
@@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull;
@@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Holds all accepted Biomes in the default server
*/
@ -244,7 +244,7 @@ index a5908d0a03801757d1f6184d73c3c89981afa107..d268498c779d6b2ec07812d4d1c0b168
OCEAN,
PLAINS,
DESERT,
@@ -93,4 +93,11 @@ public enum Biome implements Keyed {
@@ -89,4 +89,11 @@ public enum Biome implements Keyed {
public NamespacedKey getKey() {
return key;
}
@ -311,10 +311,10 @@ index 4d5f0837bd0e02a30c943d8969fb6b13452322e0..a39f9c078f42451bd122f3e3729d10ca
// Paper end
}
diff --git a/src/main/java/org/bukkit/entity/EntityType.java b/src/main/java/org/bukkit/entity/EntityType.java
index 16f1ed5bdad79928806b4509af03581bdbf002c5..bf3aa78cb901301571aa3fad5bd0bcebee8e6e1b 100644
index bb9ae81870a340c00d7480aff5106dc2c44dab8a..6c40a989eff1163c19106c1e6b4c8fc01ace7280 100644
--- a/src/main/java/org/bukkit/entity/EntityType.java
+++ b/src/main/java/org/bukkit/entity/EntityType.java
@@ -24,7 +24,7 @@ import org.jetbrains.annotations.Contract;
@@ -22,7 +22,7 @@ import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -323,7 +323,7 @@ index 16f1ed5bdad79928806b4509af03581bdbf002c5..bf3aa78cb901301571aa3fad5bd0bceb
// These strings MUST match the strings in nms.EntityTypes and are case sensitive.
/**
@@ -441,10 +441,22 @@ public enum EntityType implements Keyed, Translatable {
@@ -435,10 +435,22 @@ public enum EntityType implements Keyed, Translatable {
@Override
@NotNull

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Create HoverEvent from ItemStack Entity
diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java
index 50fe28b48d885c782278bdb53a0bbae303f4a32d..af36ee37290f04a629c1d6471f2a99a8bf437132 100644
index abf95d917eca248ff3f5a5caa008c1c87fa1e029..11e59068b8a8ef1128e3c75283d161c39e2a3a99 100644
--- a/src/main/java/org/bukkit/inventory/ItemFactory.java
+++ b/src/main/java/org/bukkit/inventory/ItemFactory.java
@@ -204,5 +204,64 @@ public interface ItemFactory {

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Player elytra boost API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 2606c3edf89ca1f435aa3809d4609fe104211523..8caa318f71c8fd765a583c18af72705e3864f23a 100644
index 712d391f4ce3ac5fd6293629ecd4e74e0d049b3a..6d95bc0e7409e47b17f74eef9c0e0861a8834e51 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2659,6 +2659,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2682,6 +2682,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
@NotNull
<T> T getClientOption(@NotNull com.destroystokyo.paper.ClientOption<T> option);

View File

@ -6,7 +6,7 @@ Subject: [PATCH] Add Destroy Speed API
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
index 35ed58bce2589bb097dd0f6bf2a6ebd76dc31fcd..ded1daaef53882a80e618f4ed97b50fd0ee4786c 100644
index 5ae85ddc2cff3145dcba877a7bf55abd818f6881..546c6709383edb0007b9a8a560af0b64f498dadd 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
@@ -680,5 +680,29 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr

View File

@ -9,7 +9,7 @@ process to do this in the Bukkit API
Adds API for buildable, replaceable, burnable too.
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
index ded1daaef53882a80e618f4ed97b50fd0ee4786c..4abd16a4e99ae0380b67c86b9744d71423053b5e 100644
index 546c6709383edb0007b9a8a560af0b64f498dadd..6c0249863601e8f0fc06828574315a9f0af66e5b 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
@@ -439,6 +439,42 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add API to get Material from Boats and Minecarts
diff --git a/src/main/java/org/bukkit/entity/Boat.java b/src/main/java/org/bukkit/entity/Boat.java
index 08e54aac52322aac2d033083ab4f589160386627..8715e53e6b85ebaf3d07297c838432b9e6f28c2a 100644
index 88852215d01f3fc4866449f7b826f6603b0ed9d8..f7548098bcdd033d9c530fdc584fc5538c635ca1 100644
--- a/src/main/java/org/bukkit/entity/Boat.java
+++ b/src/main/java/org/bukkit/entity/Boat.java
@@ -181,4 +181,14 @@ public interface Boat extends Vehicle {
@@ -175,4 +175,14 @@ public interface Boat extends Vehicle {
ON_LAND,
IN_AIR;
}

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add sendOpLevel API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 8caa318f71c8fd765a583c18af72705e3864f23a..f874f4342fbd1095ea4996da5d29f25ba7135e9a 100644
index 6d95bc0e7409e47b17f74eef9c0e0861a8834e51..f04ce165d18726aff8948fade18addae707fa747 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2672,6 +2672,17 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2695,6 +2695,17 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
@Nullable
Firework boostElytra(@NotNull ItemStack firework);

View File

@ -505,10 +505,10 @@ index 0000000000000000000000000000000000000000..1e7b53f9bc13dcd5a0a4a40004591e4f
+ }
+}
diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java
index 1976ed42f255825d1eaf2ee2c9465d22e81abdb3..e22233eed3eb9b6aaf835d682d13450d1ba5e8af 100644
index 5a09d288c980eefbd69471d83aabac627b0ac0b3..6e839812b6b523ddfac06d7d3921043b972c5b7f 100644
--- a/src/main/java/org/bukkit/Registry.java
+++ b/src/main/java/org/bukkit/Registry.java
@@ -230,6 +230,15 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -228,6 +228,15 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
return GameEvent.getByKey(key);
}
};

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Added missing vanilla tags
diff --git a/src/main/java/org/bukkit/Tag.java b/src/main/java/org/bukkit/Tag.java
index 28e5691e265b94eb9855f87d05f84e8ff963c566..a28d38408ff2dc9b835d737aff25196a94878a77 100644
index 82d34e9aae42dfafd900dc0e610bf1dc82a5a6f3..3e9f1ee242b8087759c98b54ebb3cc3b8f5fcbd5 100644
--- a/src/main/java/org/bukkit/Tag.java
+++ b/src/main/java/org/bukkit/Tag.java
@@ -735,6 +735,12 @@ public interface Tag<T extends Keyed> extends Keyed {
@@ -759,6 +759,12 @@ public interface Tag<T extends Keyed> extends Keyed {
* Vanilla item tag representing all chest boat items.
*/
Tag<Material> ITEMS_CHEST_BOATS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("chest_boats"), Material.class);

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Cache the result of Material#isBlock
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 3da281e454f1f242c57e0174917084557f9c85df..6ec19c038ce3c551b5207028355594f8a0c80bd2 100644
index 6a89eab53f21bc4420e616cc299864fb564e1045..37898f36f859eda945471fa9b00fcabbc3d211df 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -4507,6 +4507,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -4394,6 +4394,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
public final Class<?> data;
private final boolean legacy;
private final NamespacedKey key;
@ -16,7 +16,7 @@ index 3da281e454f1f242c57e0174917084557f9c85df..6ec19c038ce3c551b5207028355594f8
private Material(final int id) {
this(id, 64);
@@ -4705,6 +4706,11 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -4592,6 +4593,11 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
* @return true if this material is a block
*/
public boolean isBlock() {
@ -28,7 +28,7 @@ index 3da281e454f1f242c57e0174917084557f9c85df..6ec19c038ce3c551b5207028355594f8
switch (this) {
//<editor-fold defaultstate="collapsed" desc="isBlock">
case ACACIA_BUTTON:
@@ -5886,6 +5892,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -5778,6 +5784,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
static {
for (Material material : values()) {
BY_NAME.put(material.name(), material);

View File

@ -39,10 +39,10 @@ index 0000000000000000000000000000000000000000..74ef8395cc040ce488c2acaa416db202
+ }
+}
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index ac9395474e17c3a03c611c777b04a5bd18948be6..0b3b623455337c6500b9ce518ad8e6a7e5e9a17f 100644
index 37898f36f859eda945471fa9b00fcabbc3d211df..85d19b0c659c75472aa91d18fdf17f25bd6a2e04 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -4573,6 +4573,17 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -4460,6 +4460,17 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
return Bukkit.getUnsafe().getBlockTranslationKey(this);
}
}

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Attributes API for item defaults
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 0b3b623455337c6500b9ce518ad8e6a7e5e9a17f..220db091ce8b79688f82a099b5c227c86dd2c803 100644
index 85d19b0c659c75472aa91d18fdf17f25bd6a2e04..5fe8207fd9b76564b0547eec5e3db2b7abed0150 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -4584,6 +4584,21 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -4471,6 +4471,21 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
public io.papermc.paper.inventory.ItemRarity getItemRarity() {
return Bukkit.getUnsafe().getItemRarity(this);
}

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerKickEvent causes
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index f874f4342fbd1095ea4996da5d29f25ba7135e9a..44665d304b4245da3e5fe63e9d58649755259647 100644
index f04ce165d18726aff8948fade18addae707fa747..69cac7bcf53c968c00bffae7ae2a04600c9d5d18 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -252,6 +252,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM

View File

@ -10,7 +10,7 @@ Co-authored-by: SoSeDiK <mrsosedik@gmail.com>
Co-authored-by: booky10 <boooky10@gmail.com>
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
index 9dc131ac6f6990d2a9997609c1d8f104dbfb2aef..e67eac34839c7a471b85ccd09cab741a3cdae024 100644
index c9837c7c47314b5bdf6c7973e6bc962d390dc13d..b7a2cecb334ce39fa09d8ab949a29eedbdc44c36 100644
--- a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
@@ -24,7 +24,7 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Add methods to find targets for lightning strikes
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index ecf900140d0007b4e69ab8ab0e439828ee718a6b..0baf878c80ae42d7e77e3f1a57c5f3e715b163ba 100644
index 0fa6f8e99059b26861bc5bb3505ac544587e51bc..8d5b73b92b78676467c24a73332a2a8c14cd0506 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -716,6 +716,37 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient

View File

@ -32,10 +32,10 @@ index a9e7c64e1f98ff73c1804466d7c79eaf343dde7c..c2b042ced0f32b0dafc13a2933c2bd9b
// Paper end
}
diff --git a/src/main/java/org/bukkit/entity/EntityType.java b/src/main/java/org/bukkit/entity/EntityType.java
index bf3aa78cb901301571aa3fad5bd0bcebee8e6e1b..22cb13b3d63e06476581e3d92e2b7c245944cb38 100644
index 6c40a989eff1163c19106c1e6b4c8fc01ace7280..6cf14afd2c1b8018c67c6cac302ae28bb12ab5a5 100644
--- a/src/main/java/org/bukkit/entity/EntityType.java
+++ b/src/main/java/org/bukkit/entity/EntityType.java
@@ -455,6 +455,25 @@ public enum EntityType implements Keyed, Translatable, net.kyori.adventure.trans
@@ -449,6 +449,25 @@ public enum EntityType implements Keyed, Translatable, net.kyori.adventure.trans
Preconditions.checkArgument(this != UNKNOWN, "UNKNOWN entities do not have translation keys");
return org.bukkit.Bukkit.getUnsafe().getTranslationKey(this);
}

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add isCollidable methods to various places
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 220db091ce8b79688f82a099b5c227c86dd2c803..48a2fbe33a8b0522d53bd79bdd253eaed6b6357f 100644
index 5fe8207fd9b76564b0547eec5e3db2b7abed0150..03b47012447430a350e152920f754d993d4023db 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -4599,6 +4599,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -4486,6 +4486,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
public Multimap<Attribute, AttributeModifier> getItemAttributes(@NotNull EquipmentSlot equipmentSlot) {
return Bukkit.getUnsafe().getItemAttributes(this, equipmentSlot);
}

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add player health update API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 44665d304b4245da3e5fe63e9d58649755259647..195acdc1d1805caf4ef865e53280f4e8c360eb66 100644
index 69cac7bcf53c968c00bffae7ae2a04600c9d5d18..388af21e1dedbd08cb87aedb4fa9fffbbddedfaa 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2050,6 +2050,31 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2073,6 +2073,31 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public double getHealthScale();

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Multi Block Change API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 195acdc1d1805caf4ef865e53280f4e8c360eb66..a4eb5ca72061ccc593ec8f03b663aebe9b2ccb02 100644
index 388af21e1dedbd08cb87aedb4fa9fffbbddedfaa..5b2d4d394f14a1952e4da349cd091a98561cf280 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -649,6 +649,27 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -672,6 +672,27 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void sendBlockDamage(@NotNull Location loc, float progress);

View File

@ -5,10 +5,10 @@ Subject: [PATCH] More PotionEffectType API
diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java
index 39c13a459dede4992f5a3fa7309733820cfa44c5..fbd5a8fae7e72f3fb1098742c9680aeea1297fe7 100644
index 6e839812b6b523ddfac06d7d3921043b972c5b7f..3d55f1a6c71a8f9281906f034fb8af087005c8f0 100644
--- a/src/main/java/org/bukkit/Registry.java
+++ b/src/main/java/org/bukkit/Registry.java
@@ -238,6 +238,26 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -236,6 +236,26 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
*/
@Deprecated(forRemoval = true)
Registry<io.papermc.paper.world.structure.ConfiguredStructure> CONFIGURED_STRUCTURE = Bukkit.getRegistry(io.papermc.paper.world.structure.ConfiguredStructure.class);

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Implement regenerateChunk
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 0baf878c80ae42d7e77e3f1a57c5f3e715b163ba..c1827f97e9255e72c082548c8b2782e39f1ebb8c 100644
index 8d5b73b92b78676467c24a73332a2a8c14cd0506..72f1576b8ce5b55b50f053f346ce42c52db4b568 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -465,8 +465,8 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add GameEvent tags
diff --git a/src/main/java/org/bukkit/Tag.java b/src/main/java/org/bukkit/Tag.java
index a28d38408ff2dc9b835d737aff25196a94878a77..e8206aa4cb574ee629f375a85acf597ae164a1c3 100644
index 3e9f1ee242b8087759c98b54ebb3cc3b8f5fcbd5..9257a5530264195260becedf73d291488c29d176 100644
--- a/src/main/java/org/bukkit/Tag.java
+++ b/src/main/java/org/bukkit/Tag.java
@@ -942,6 +942,24 @@ public interface Tag<T extends Keyed> extends Keyed {
@@ -960,6 +960,24 @@ public interface Tag<T extends Keyed> extends Keyed {
* Vanilla tag representing entities which are dismounted when underwater.
*/
Tag<EntityType> ENTITY_TYPES_DISMOUNTS_UNDERWATER = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("dismounts_underwater"), EntityType.class);

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Add getComputedBiome API
diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java
index 3c38abfbe0391bf748702b1599d359a1180838af..96291baf8bd06ff5f7fb2fccdbb2a172f01ba8db 100644
index cd83348de3f82b3fddcf2d4bb9187ec8173b0e40..8f50eb9b902236f5e039f5d26f3ca9a044b01a75 100644
--- a/src/main/java/org/bukkit/RegionAccessor.java
+++ b/src/main/java/org/bukkit/RegionAccessor.java
@@ -26,6 +26,7 @@ public interface RegionAccessor extends Keyed { // Paper

View File

@ -165,10 +165,10 @@ index ab0ceaba9ddcbe20a8b8a1fc3ed19cb3c64ecd3d..97f0bc6573c8ba09de77061b6312b91c
* Teleports this entity to the given location. If this entity is riding a
* vehicle, it will be dismounted prior to teleportation.
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index a4eb5ca72061ccc593ec8f03b663aebe9b2ccb02..c100a2815a1ee7bd59ecbd8c12a907d8aabb0290 100644
index 5b2d4d394f14a1952e4da349cd091a98561cf280..17c2136e2b58c5f8bd45005688239f74dd474b60 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2873,6 +2873,49 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2896,6 +2896,49 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
String getClientBrandName();
// Paper end

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Custom Chat Completion Suggestions API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index c100a2815a1ee7bd59ecbd8c12a907d8aabb0290..b886e9a59272ef6c8afa65f31a42bfc47f48b43a 100644
index 17c2136e2b58c5f8bd45005688239f74dd474b60..dbd27bbb4fb6ac1b7054808159338054ff1b9a05 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2737,6 +2737,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2760,6 +2760,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException If the level is negative or greater than {@code 4} (i.e. not within {@code [0, 4]}).
*/
void sendOpLevel(byte level);

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Elder Guardian appearance API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index b886e9a59272ef6c8afa65f31a42bfc47f48b43a..a7dca9f902cd9916afd7a453288d669ab06c626c 100644
index dbd27bbb4fb6ac1b7054808159338054ff1b9a05..9f196a6cec6c03f05e06b2e148cc5417a02ec98d 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2935,6 +2935,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2958,6 +2958,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
void lookAt(@NotNull org.bukkit.entity.Entity entity, @NotNull io.papermc.paper.entity.LookAnchor playerAnchor, @NotNull io.papermc.paper.entity.LookAnchor entityAnchor);
// Paper end - Teleport API

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add Player Warden Warning API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index a7dca9f902cd9916afd7a453288d669ab06c626c..bdb63e445c1bc2e08bfa840d61cdeb2d8576bde7 100644
index 9f196a6cec6c03f05e06b2e148cc5417a02ec98d..cb601a1558189e015a0447e1265bd8261cdf1d3f 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2951,6 +2951,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2974,6 +2974,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param silent whether sound should be silenced
*/
void showElderGuardian(boolean silent);

View File

@ -7,10 +7,10 @@ upstream has inconsistent and incomplete
minecraft experimental annotations
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 7ce5ac66e6d598c9ecffc52e5c75d80f644e8895..adb2416887cc3b544ec36c552bdf7105328c24a5 100644
index 03b47012447430a350e152920f754d993d4023db..9b489cc0a7426ce80e4be27df99552354f770d04 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -471,6 +471,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -459,6 +459,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
/**
* BlockData: {@link Orientable}
*/
@ -19,7 +19,7 @@ index 7ce5ac66e6d598c9ecffc52e5c75d80f644e8895..adb2416887cc3b544ec36c552bdf7105
STRIPPED_BAMBOO_BLOCK(14799, Orientable.class),
/**
* BlockData: {@link Orientable}
@@ -893,6 +895,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -865,6 +867,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
/**
* BlockData: {@link Fence}
*/
@ -28,7 +28,7 @@ index 7ce5ac66e6d598c9ecffc52e5c75d80f644e8895..adb2416887cc3b544ec36c552bdf7105
BAMBOO_FENCE(17207, Fence.class),
/**
* BlockData: {@link Fence}
@@ -1932,6 +1936,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -1904,6 +1908,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
/**
* BlockData: {@link Switch}
*/
@ -37,7 +37,7 @@ index 7ce5ac66e6d598c9ecffc52e5c75d80f644e8895..adb2416887cc3b544ec36c552bdf7105
BAMBOO_BUTTON(21810, Switch.class),
/**
* BlockData: {@link Switch}
@@ -1994,6 +2000,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -1964,6 +1970,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
/**
* BlockData: {@link Powerable}
*/
@ -46,7 +46,7 @@ index 7ce5ac66e6d598c9ecffc52e5c75d80f644e8895..adb2416887cc3b544ec36c552bdf7105
BAMBOO_PRESSURE_PLATE(26740, Powerable.class),
/**
* BlockData: {@link Powerable}
@@ -2044,6 +2052,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -2012,6 +2020,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
/**
* BlockData: {@link Door}
*/
@ -55,7 +55,7 @@ index 7ce5ac66e6d598c9ecffc52e5c75d80f644e8895..adb2416887cc3b544ec36c552bdf7105
BAMBOO_DOOR(19971, Door.class),
/**
* BlockData: {@link Door}
@@ -2094,6 +2104,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -2060,6 +2070,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
/**
* BlockData: {@link TrapDoor}
*/
@ -64,7 +64,7 @@ index 7ce5ac66e6d598c9ecffc52e5c75d80f644e8895..adb2416887cc3b544ec36c552bdf7105
BAMBOO_TRAPDOOR(9174, TrapDoor.class),
/**
* BlockData: {@link TrapDoor}
@@ -2140,6 +2152,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -2104,6 +2116,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
/**
* BlockData: {@link Gate}
*/
@ -73,7 +73,7 @@ index 7ce5ac66e6d598c9ecffc52e5c75d80f644e8895..adb2416887cc3b544ec36c552bdf7105
BAMBOO_FENCE_GATE(14290, Gate.class),
/**
* BlockData: {@link Gate}
@@ -2194,7 +2208,11 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -2154,7 +2168,11 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
DARK_OAK_CHEST_BOAT(8733, 1),
MANGROVE_BOAT(20792, 1),
MANGROVE_CHEST_BOAT(18572, 1),
@ -85,7 +85,7 @@ index 7ce5ac66e6d598c9ecffc52e5c75d80f644e8895..adb2416887cc3b544ec36c552bdf7105
BAMBOO_CHEST_RAFT(20056, 1),
/**
* BlockData: {@link StructureBlock}
@@ -2334,6 +2352,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -2292,6 +2310,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
/**
* BlockData: {@link Sign}
*/
@ -94,7 +94,7 @@ index 7ce5ac66e6d598c9ecffc52e5c75d80f644e8895..adb2416887cc3b544ec36c552bdf7105
BAMBOO_SIGN(26139, 16, Sign.class),
/**
* BlockData: {@link Sign}
@@ -3151,6 +3171,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
@@ -3064,6 +3084,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
/**
* BlockData: {@link WallSign}
*/
@ -104,10 +104,10 @@ index 7ce5ac66e6d598c9ecffc52e5c75d80f644e8895..adb2416887cc3b544ec36c552bdf7105
/**
* BlockData: {@link WallHangingSign}
diff --git a/src/main/java/org/bukkit/Sound.java b/src/main/java/org/bukkit/Sound.java
index 762b0d9ba22a1012ebe5ea77b6aef909fddc0403..55b8d67af1f75207cac36c197150601850a3f28b 100644
index 6e8d2b35d8f33827396dbcfa817cd9c2f8ad83a6..13a53a91626d0e73a0b600ce8479304c5fbec01a 100644
--- a/src/main/java/org/bukkit/Sound.java
+++ b/src/main/java/org/bukkit/Sound.java
@@ -77,13 +77,29 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
@@ -77,25 +77,55 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
BLOCK_BAMBOO_SAPLING_HIT("block.bamboo_sapling.hit"),
BLOCK_BAMBOO_SAPLING_PLACE("block.bamboo_sapling.place"),
BLOCK_BAMBOO_STEP("block.bamboo.step"),
@ -135,11 +135,10 @@ index 762b0d9ba22a1012ebe5ea77b6aef909fddc0403..55b8d67af1f75207cac36c1971506018
+ @MinecraftExperimental // Paper
+ @ApiStatus.Experimental // Paper
BLOCK_BAMBOO_WOOD_FENCE_GATE_OPEN("block.bamboo_wood_fence_gate.open"),
@MinecraftExperimental
@ApiStatus.Experimental
@@ -100,12 +116,26 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
@MinecraftExperimental
@ApiStatus.Experimental
BLOCK_BAMBOO_WOOD_HANGING_SIGN_BREAK("block.bamboo_wood_hanging_sign.break"),
BLOCK_BAMBOO_WOOD_HANGING_SIGN_FALL("block.bamboo_wood_hanging_sign.fall"),
BLOCK_BAMBOO_WOOD_HANGING_SIGN_HIT("block.bamboo_wood_hanging_sign.hit"),
BLOCK_BAMBOO_WOOD_HANGING_SIGN_PLACE("block.bamboo_wood_hanging_sign.place"),
BLOCK_BAMBOO_WOOD_HANGING_SIGN_STEP("block.bamboo_wood_hanging_sign.step"),
+ @MinecraftExperimental // Paper
+ @ApiStatus.Experimental // Paper
@ -164,7 +163,7 @@ index 762b0d9ba22a1012ebe5ea77b6aef909fddc0403..55b8d67af1f75207cac36c1971506018
BLOCK_BAMBOO_WOOD_TRAPDOOR_OPEN("block.bamboo_wood_trapdoor.open"),
BLOCK_BARREL_CLOSE("block.barrel.close"),
BLOCK_BARREL_OPEN("block.barrel.open"),
@@ -412,10 +442,20 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
@@ -312,10 +342,20 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
BLOCK_HANGING_ROOTS_HIT("block.hanging_roots.hit"),
BLOCK_HANGING_ROOTS_PLACE("block.hanging_roots.place"),
BLOCK_HANGING_ROOTS_STEP("block.hanging_roots.step"),
@ -185,7 +184,7 @@ index 762b0d9ba22a1012ebe5ea77b6aef909fddc0403..55b8d67af1f75207cac36c1971506018
BLOCK_HANGING_SIGN_STEP("block.hanging_sign.step"),
BLOCK_HONEY_BLOCK_BREAK("block.honey_block.break"),
BLOCK_HONEY_BLOCK_FALL("block.honey_block.fall"),
@@ -551,11 +591,23 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
@@ -451,11 +491,23 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
BLOCK_NOTE_BLOCK_GUITAR("block.note_block.guitar"),
BLOCK_NOTE_BLOCK_HARP("block.note_block.harp"),
BLOCK_NOTE_BLOCK_HAT("block.note_block.hat"),
@ -209,49 +208,11 @@ index 762b0d9ba22a1012ebe5ea77b6aef909fddc0403..55b8d67af1f75207cac36c1971506018
BLOCK_NOTE_BLOCK_IMITATE_ZOMBIE("block.note_block.imitate.zombie"),
BLOCK_NOTE_BLOCK_IRON_XYLOPHONE("block.note_block.iron_xylophone"),
BLOCK_NOTE_BLOCK_PLING("block.note_block.pling"),
@@ -830,26 +882,37 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
ENTITY_BOAT_PADDLE_LAND("entity.boat.paddle_land"),
ENTITY_BOAT_PADDLE_WATER("entity.boat.paddle_water"),
@MinecraftExperimental
+ @ApiStatus.Experimental // Paper
ENTITY_CAMEL_AMBIENT("entity.camel.ambient"),
@MinecraftExperimental
+ @ApiStatus.Experimental // Paper
ENTITY_CAMEL_DASH("entity.camel.dash"),
@MinecraftExperimental
+ @ApiStatus.Experimental // Paper
ENTITY_CAMEL_DASH_READY("entity.camel.dash_ready"),
@MinecraftExperimental
+ @ApiStatus.Experimental // Paper
ENTITY_CAMEL_DEATH("entity.camel.death"),
@MinecraftExperimental
+ @ApiStatus.Experimental // Paper
ENTITY_CAMEL_EAT("entity.camel.eat"),
@MinecraftExperimental
+ @ApiStatus.Experimental // Paper
ENTITY_CAMEL_HURT("entity.camel.hurt"),
@MinecraftExperimental
+ @ApiStatus.Experimental // Paper
ENTITY_CAMEL_SADDLE("entity.camel.saddle"),
@MinecraftExperimental
+ @ApiStatus.Experimental // Paper
ENTITY_CAMEL_SIT("entity.camel.sit"),
@MinecraftExperimental
+ @ApiStatus.Experimental // Paper
ENTITY_CAMEL_STAND("entity.camel.stand"),
@MinecraftExperimental
+ @ApiStatus.Experimental // Paper
ENTITY_CAMEL_STEP("entity.camel.step"),
@MinecraftExperimental
+ @ApiStatus.Experimental // Paper
ENTITY_CAMEL_STEP_SAND("entity.camel.step_sand"),
ENTITY_CAT_AMBIENT("entity.cat.ambient"),
ENTITY_CAT_BEG_FOR_FOOD("entity.cat.beg_for_food"),
diff --git a/src/main/java/org/bukkit/Tag.java b/src/main/java/org/bukkit/Tag.java
index e8206aa4cb574ee629f375a85acf597ae164a1c3..30f9e5e28edd5c267cc1ddef4aa5eac1bdc14a36 100644
index 9257a5530264195260becedf73d291488c29d176..1024aff5bc31372256903f4f982805a95c3cb2a1 100644
--- a/src/main/java/org/bukkit/Tag.java
+++ b/src/main/java/org/bukkit/Tag.java
@@ -149,6 +149,8 @@ public interface Tag<T extends Keyed> extends Keyed {
@@ -150,6 +150,8 @@ public interface Tag<T extends Keyed> extends Keyed {
/**
* Vanilla block tag representing all bamboo blocks.
*/
@ -260,7 +221,7 @@ index e8206aa4cb574ee629f375a85acf597ae164a1c3..30f9e5e28edd5c267cc1ddef4aa5eac1
Tag<Material> BAMBOO_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bamboo_blocks"), Material.class);
/**
* Vanilla block tag representing all banner blocks.
@@ -768,6 +770,8 @@ public interface Tag<T extends Keyed> extends Keyed {
@@ -792,6 +794,8 @@ public interface Tag<T extends Keyed> extends Keyed {
/**
* Vanilla item tag representing all books that may be placed on bookshelves.
*/
@ -269,7 +230,7 @@ index e8206aa4cb574ee629f375a85acf597ae164a1c3..30f9e5e28edd5c267cc1ddef4aa5eac1
Tag<Material> ITEMS_BOOKSHELF_BOOKS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("bookshelf_books"), Material.class);
/**
* Vanilla item tag representing all items that may be placed in beacons.
@@ -788,6 +792,8 @@ public interface Tag<T extends Keyed> extends Keyed {
@@ -812,6 +816,8 @@ public interface Tag<T extends Keyed> extends Keyed {
/**
* Vanilla item tag representing all hanging signs.
*/

View File

@ -7,10 +7,10 @@ Add missing instrument enums
fix some wrong javadocs
diff --git a/src/main/java/org/bukkit/Instrument.java b/src/main/java/org/bukkit/Instrument.java
index 8f70d86a1d39351424335842c38625d42cfbdfb8..271fb4d41909654b87519edba1c1d4f418cdd3a5 100644
index de976be7132d05506fde7a839cac3954b0dd8da4..642feb8b4578e6dbd2bf78d859283d20f877051f 100644
--- a/src/main/java/org/bukkit/Instrument.java
+++ b/src/main/java/org/bukkit/Instrument.java
@@ -8,7 +8,7 @@ import org.jetbrains.annotations.Nullable;
@@ -7,7 +7,7 @@ import org.jetbrains.annotations.Nullable;
public enum Instrument {
/**
@ -19,7 +19,7 @@ index 8f70d86a1d39351424335842c38625d42cfbdfb8..271fb4d41909654b87519edba1c1d4f4
*/
PIANO(0x0),
/**
@@ -22,7 +22,7 @@ public enum Instrument {
@@ -21,7 +21,7 @@ public enum Instrument {
*/
SNARE_DRUM(0x2),
/**
@ -28,52 +28,40 @@ index 8f70d86a1d39351424335842c38625d42cfbdfb8..271fb4d41909654b87519edba1c1d4f4
* block.
*/
STICKS(0x3),
@@ -81,50 +81,48 @@ public enum Instrument {
@@ -78,38 +78,36 @@ public enum Instrument {
/**
* Zombie is normally played when a Zombie Head is on top of the note block.
*/
@MinecraftExperimental
@ApiStatus.Experimental
- ZOMBIE,
+ ZOMBIE(0x10), // Paper
/**
* Skeleton is normally played when a Skeleton Head is on top of the note block.
*/
@MinecraftExperimental
@ApiStatus.Experimental
- SKELETON,
+ SKELETON(0x11), // Paper
/**
* Creeper is normally played when a Creeper Head is on top of the note block.
*/
@MinecraftExperimental
@ApiStatus.Experimental
- CREEPER,
+ CREEPER(0x12), // Paper
/**
* Dragon is normally played when a Dragon Head is on top of the note block.
*/
@MinecraftExperimental
@ApiStatus.Experimental
- DRAGON,
+ DRAGON(0x13), // Paper
/**
* Wither Skeleton is normally played when a Wither Skeleton Head is on top of the note block.
*/
@MinecraftExperimental
@ApiStatus.Experimental
- WITHER_SKELETON,
+ WITHER_SKELETON(0x14), // Paper
/**
* Piglin is normally played when a Piglin Head is on top of the note block.
*/
@MinecraftExperimental
@ApiStatus.Experimental
- PIGLIN,
+ PIGLIN(0x15), // Paper
/**
* Custom Sound is normally played when a Player Head with the required data is on top of the note block.
*/
@MinecraftExperimental
@ApiStatus.Experimental
- CUSTOM_HEAD;
+ CUSTOM_HEAD(0x16); // Paper
@ -87,7 +75,7 @@ index 8f70d86a1d39351424335842c38625d42cfbdfb8..271fb4d41909654b87519edba1c1d4f4
private Instrument(final int type) {
this.type = (byte) type;
@@ -132,9 +130,8 @@ public enum Instrument {
@@ -117,9 +115,8 @@ public enum Instrument {
/**
* @return The type ID of this instrument.
@ -98,7 +86,7 @@ index 8f70d86a1d39351424335842c38625d42cfbdfb8..271fb4d41909654b87519edba1c1d4f4
public byte getType() {
return this.type;
}
@@ -144,9 +141,8 @@ public enum Instrument {
@@ -129,9 +126,8 @@ public enum Instrument {
*
* @param type The type ID
* @return The instrument
@ -110,7 +98,7 @@ index 8f70d86a1d39351424335842c38625d42cfbdfb8..271fb4d41909654b87519edba1c1d4f4
public static Instrument getByType(final byte type) {
return BY_DATA.get(type);
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index bdb63e445c1bc2e08bfa840d61cdeb2d8576bde7..fabe9a415c88d3669c7b09e4d7c2453c0f2edeff 100644
index cb601a1558189e015a0447e1265bd8261cdf1d3f..d29df91c63ea83ee2e26bf1ba7639927eda19318 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -393,9 +393,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM

View File

@ -35,7 +35,7 @@ index 3f3ea5bb6b3ea6f55b5cd699f1c01ac159619add..a2a423d4e4c2702ba5967223cab0432d
* Get the category of spawn to which this entity belongs.
*
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index fabe9a415c88d3669c7b09e4d7c2453c0f2edeff..7627cc0c25fc37cf914befda49ce83eeda9bfbef 100644
index d29df91c63ea83ee2e26bf1ba7639927eda19318..63558eb98a970c4a59ae78daba9d6c9a61965797 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -296,6 +296,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Flying Fall Damage API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 7627cc0c25fc37cf914befda49ce83eeda9bfbef..1c79a556c2267b5d87d5469123818e270840a684 100644
index 63558eb98a970c4a59ae78daba9d6c9a61965797..b0f863b34ba169a09df2a80beef6583b0bebe1e9 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1509,6 +1509,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1532,6 +1532,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void setAllowFlight(boolean flight);

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Replace ItemFlag.HIDE_POTION_EFFECTS
diff --git a/src/main/java/org/bukkit/inventory/ItemFlag.java b/src/main/java/org/bukkit/inventory/ItemFlag.java
index 69a66073bcaa10967b8736cbf35182b912c17d11..0d8d4154a156edd1092a7f5318d28336bbc57a9b 100644
index 4e637420b9a39b822be19367a16da93f236549b3..3df1044fd791ae19576dbfd008cfcbb4e5651b05 100644
--- a/src/main/java/org/bukkit/inventory/ItemFlag.java
+++ b/src/main/java/org/bukkit/inventory/ItemFlag.java
@@ -31,7 +31,9 @@ public enum ItemFlag {
@@ -28,7 +28,9 @@ public enum ItemFlag {
/**
* Setting to show/hide potion effects, book and firework information, map
* tooltips, patterns of banners, and enchantments of enchanted books.
@ -18,9 +18,9 @@ index 69a66073bcaa10967b8736cbf35182b912c17d11..0d8d4154a156edd1092a7f5318d28336
HIDE_POTION_EFFECTS,
/**
* Setting to show/hide dyes from colored leather armor.
@@ -43,4 +45,25 @@ public enum ItemFlag {
@MinecraftExperimental
@ApiStatus.Experimental
@@ -38,4 +40,25 @@ public enum ItemFlag {
* Setting to show/hide armor trim from armor.
*/
HIDE_ARMOR_TRIM;
+ // Paper start
+ /**

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Win Screen API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 1c79a556c2267b5d87d5469123818e270840a684..88c4885569d2b8b22fce55601d50608ac8e9388c 100644
index b0f863b34ba169a09df2a80beef6583b0bebe1e9..def31cdbe5765f5d05386753868e51c424cbfe9e 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -878,6 +878,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -901,6 +901,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void sendMap(@NotNull MapView map);

View File

@ -28,7 +28,7 @@ index 3df8c60ab5cd1454660980883f80668d535b742b..37c3a00659ce21623be07317f4f6a45b
+/.factorypath
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
index 0000000000000000000000000000000000000000..c207fd9b001dccaa71ba1615ffcdc093dd2b581c
index 0000000000000000000000000000000000000000..b663ef66dfe3f19a58f265de866d002d19517324
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,137 @@
@ -48,12 +48,12 @@ index 0000000000000000000000000000000000000000..c207fd9b001dccaa71ba1615ffcdc093
+ }
+ implementation("org.ow2.asm:asm:9.4")
+ implementation("commons-lang:commons-lang:2.6")
+ runtimeOnly("org.xerial:sqlite-jdbc:3.41.2.2")
+ runtimeOnly("com.mysql:mysql-connector-j:8.0.32")
+ runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.0")
+ runtimeOnly("com.mysql:mysql-connector-j:8.0.33")
+
+ runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.5")
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3")
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3")
+ runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.2")
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.10")
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.10")
+
+ testImplementation("junit:junit:4.13.2")
+ testImplementation("org.hamcrest:hamcrest-library:1.3")
@ -171,7 +171,7 @@ index 0000000000000000000000000000000000000000..c207fd9b001dccaa71ba1615ffcdc093
+}
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index d3490073bebae5918fe97895ead320c06c8358c7..0000000000000000000000000000000000000000
index e1dfaf1e4cbe0ad18ba41c5eb5e465de0529090a..0000000000000000000000000000000000000000
--- a/pom.xml
+++ /dev/null
@@ -1,587 +0,0 @@
@ -181,7 +181,7 @@ index d3490073bebae5918fe97895ead320c06c8358c7..00000000000000000000000000000000
- <groupId>org.spigotmc</groupId>
- <artifactId>spigot</artifactId>
- <packaging>jar</packaging>
- <version>1.19.4-R0.1-SNAPSHOT</version>
- <version>1.20-R0.1-SNAPSHOT</version>
- <name>Spigot</name>
- <url>https://www.spigotmc.org/</url>
-
@ -197,7 +197,7 @@ index d3490073bebae5918fe97895ead320c06c8358c7..00000000000000000000000000000000
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <api.version>unknown</api.version>
- <bt.name>git</bt.name>
- <minecraft_version>1_19_R3</minecraft_version>
- <minecraft_version>1_20_R1</minecraft_version>
- <maven.compiler.source>17</maven.compiler.source>
- <maven.compiler.target>17</maven.compiler.target>
- </properties>
@ -251,19 +251,19 @@ index d3490073bebae5918fe97895ead320c06c8358c7..00000000000000000000000000000000
- <dependency>
- <groupId>com.mojang</groupId>
- <artifactId>authlib</artifactId>
- <version>3.17.30</version>
- <version>4.0.43</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>com.mojang</groupId>
- <artifactId>brigadier</artifactId>
- <version>1.0.18</version>
- <version>1.1.8</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>com.mojang</groupId>
- <artifactId>datafixerupper</artifactId>
- <version>6.0.6</version>
- <version>6.0.8</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
@ -405,39 +405,39 @@ index d3490073bebae5918fe97895ead320c06c8358c7..00000000000000000000000000000000
- <dependency>
- <groupId>org.xerial</groupId>
- <artifactId>sqlite-jdbc</artifactId>
- <version>3.41.2.2</version>
- <version>3.42.0.0</version>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>com.mysql</groupId>
- <artifactId>mysql-connector-j</artifactId>
- <version>8.0.32</version>
- <version>8.0.33</version>
- <scope>runtime</scope>
- </dependency>
- <!-- add these back in as they are not exposed by the API -->
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-resolver-provider</artifactId>
- <version>3.8.5</version>
- <version>3.9.2</version>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.maven.resolver</groupId>
- <artifactId>maven-resolver-connector-basic</artifactId>
- <version>1.7.3</version>
- <version>1.9.10</version>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.maven.resolver</groupId>
- <artifactId>maven-resolver-transport-http</artifactId>
- <version>1.7.3</version>
- <version>1.9.10</version>
- <scope>runtime</scope>
- </dependency>
- <!-- annotations -->
- <dependency>
- <groupId>org.jetbrains</groupId>
- <artifactId>annotations-java5</artifactId>
- <version>23.0.0</version>
- <version>24.0.1</version>
- <scope>provided</scope>
- </dependency>
- <!-- testing -->
@ -578,7 +578,7 @@ index d3490073bebae5918fe97895ead320c06c8358c7..00000000000000000000000000000000
- <plugin>
- <groupId>net.md-5</groupId>
- <artifactId>specialsource-maven-plugin</artifactId>
- <version>1.2.4</version>
- <version>1.2.5</version>
- <executions>
- <execution>
- <phase>package</phase>
@ -623,7 +623,7 @@ index d3490073bebae5918fe97895ead320c06c8358c7..00000000000000000000000000000000
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>3.5.0</version>
- <version>3.6.0</version>
- <executions>
- <execution>
- <phase>package</phase>
@ -668,7 +668,7 @@ index d3490073bebae5918fe97895ead320c06c8358c7..00000000000000000000000000000000
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>3.0.0</version>
- <version>3.1.0</version>
- <configuration>
- <workingDirectory>${basedir}/target/test-server</workingDirectory>
- <excludes>
@ -697,7 +697,7 @@ index d3490073bebae5918fe97895ead320c06c8358c7..00000000000000000000000000000000
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <version>3.2.1</version>
- <version>3.3.0</version>
- <executions>
- <execution>
- <phase>test-compile</phase>

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Remap fixes
diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java
index 0612eef6d9a9cda81a8d761be2b5e9b094388270..77bf6865c6df829c5b5455d440cb2222a0d8f2af 100644
index ad3035da44c6af2fa7cc53926f33526a43740313..e89fa618fa20e3e843d8de81629e6dc551777823 100644
--- a/src/main/java/net/minecraft/core/BlockPos.java
+++ b/src/main/java/net/minecraft/core/BlockPos.java
@@ -265,9 +265,11 @@ public class BlockPos extends Vec3i {
@@ -278,9 +278,11 @@ public class BlockPos extends Vec3i {
public static Iterable<BlockPos> withinManhattan(BlockPos center, int rangeX, int rangeY, int rangeZ) {
int i = rangeX + rangeY + rangeZ;
@ -23,7 +23,7 @@ index 0612eef6d9a9cda81a8d761be2b5e9b094388270..77bf6865c6df829c5b5455d440cb2222
return () -> {
return new AbstractIterator<BlockPos>() {
private final BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos();
@@ -282,7 +284,7 @@ public class BlockPos extends Vec3i {
@@ -295,7 +297,7 @@ public class BlockPos extends Vec3i {
protected BlockPos computeNext() {
if (this.zMirror) {
this.zMirror = false;
@ -32,7 +32,7 @@ index 0612eef6d9a9cda81a8d761be2b5e9b094388270..77bf6865c6df829c5b5455d440cb2222
return this.cursor;
} else {
BlockPos blockPos;
@@ -308,7 +310,7 @@ public class BlockPos extends Vec3i {
@@ -321,7 +323,7 @@ public class BlockPos extends Vec3i {
int k = this.currentDepth - Math.abs(i) - Math.abs(j);
if (k <= rangeZ) {
this.zMirror = k != 0;
@ -42,13 +42,13 @@ index 0612eef6d9a9cda81a8d761be2b5e9b094388270..77bf6865c6df829c5b5455d440cb2222
}
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java b/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java
index 1206ca32cadb98573938328f611b67162c700d84..d81f7eecb8204a974da14a75d1a7a23a6c071112 100644
index 3ba785845a63e46a44fc48264d08c96bfc34ab8b..92bd58010e8c89e361e28aec59447349edbbc028 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java
@@ -173,11 +173,11 @@ public class BehaviorUtils {
return optional.map((uuid) -> {
return ((ServerLevel) entity.level).getEntity(uuid);
return ((ServerLevel) entity.level()).getEntity(uuid);
- }).map((entity) -> {
+ }).map((entity1) -> { // Paper - remap fix
LivingEntity entityliving1;

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Build system changes
diff --git a/build.gradle.kts b/build.gradle.kts
index c207fd9b001dccaa71ba1615ffcdc093dd2b581c..ac679b0a66ce9676937a9971bf3ee2a935dd9acb 100644
index b663ef66dfe3f19a58f265de866d002d19517324..2b67d93dd4d18235b28388dab3ee9bd57d2b816c 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -9,10 +9,9 @@ plugins {
@ -19,8 +19,8 @@ index c207fd9b001dccaa71ba1615ffcdc093dd2b581c..ac679b0a66ce9676937a9971bf3ee2a9
implementation("org.ow2.asm:asm:9.4")
+ implementation("org.ow2.asm:asm-commons:9.4") // Paper - ASM event executor generation
implementation("commons-lang:commons-lang:2.6")
runtimeOnly("org.xerial:sqlite-jdbc:3.41.2.2")
runtimeOnly("com.mysql:mysql-connector-j:8.0.32")
runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.0")
runtimeOnly("com.mysql:mysql-connector-j:8.0.33")
@@ -23,6 +22,8 @@ dependencies {
testImplementation("junit:junit:4.13.2")
@ -67,7 +67,7 @@ index c207fd9b001dccaa71ba1615ffcdc093dd2b581c..ac679b0a66ce9676937a9971bf3ee2a9
exclude("org/bukkit/craftbukkit/inventory/ItemStack*Test.class")
}
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 23e88fde465853629c4371d1e1a44d1af493ca3e..5a39201392fefe8da495244fdbc380e882ec938f 100644
index 58a237d85b05def8e52ca737869ee80c300d050c..f3412dbbb0f37d5625ab05cfd502189ab4a343c2 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -209,7 +209,7 @@ public class Main {
@ -78,7 +78,7 @@ index 23e88fde465853629c4371d1e1a44d1af493ca3e..5a39201392fefe8da495244fdbc380e8
+ Date buildDate = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z").parse(Main.class.getPackage().getImplementationVendor()); // Paper
Calendar deadline = Calendar.getInstance();
deadline.add(Calendar.DAY_OF_YEAR, -21);
deadline.add(Calendar.DAY_OF_YEAR, -3);
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
index 93046379d0cefd5d3236fc59e698809acdc18f80..774556a62eb240da42e84db4502e2ed43495be17 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Test changes
diff --git a/build.gradle.kts b/build.gradle.kts
index ac679b0a66ce9676937a9971bf3ee2a935dd9acb..e0724559c70b5967123010e898e66e757b2b1b58 100644
index 2b67d93dd4d18235b28388dab3ee9bd57d2b816c..69753539208112385e5057be560dc57071259b33 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -12,6 +12,7 @@ dependencies {
@ -14,11 +14,11 @@ index ac679b0a66ce9676937a9971bf3ee2a935dd9acb..e0724559c70b5967123010e898e66e75
implementation("org.ow2.asm:asm-commons:9.4") // Paper - ASM event executor generation
+ testImplementation("org.mockito:mockito-core:4.9.0") // Paper - switch to mockito
implementation("commons-lang:commons-lang:2.6")
runtimeOnly("org.xerial:sqlite-jdbc:3.41.2.2")
runtimeOnly("com.mysql:mysql-connector-j:8.0.32")
runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.0")
runtimeOnly("com.mysql:mysql-connector-j:8.0.33")
diff --git a/src/test/java/io/papermc/paper/testing/DummyServer.java b/src/test/java/io/papermc/paper/testing/DummyServer.java
new file mode 100644
index 0000000000000000000000000000000000000000..c6503ff76f56bab5f383f0ca17d137155e9be447
index 0000000000000000000000000000000000000000..e944e9dca13883c57e93e480ae5adfe51c342532
--- /dev/null
+++ b/src/test/java/io/papermc/paper/testing/DummyServer.java
@@ -0,0 +1,67 @@
@ -74,7 +74,7 @@ index 0000000000000000000000000000000000000000..c6503ff76f56bab5f383f0ca17d13715
+
+ when(dummyServer.getLootTable(any(NamespacedKey.class))).thenAnswer(invocation -> {
+ final NamespacedKey key = invocation.getArgument(0, NamespacedKey.class);
+ return new org.bukkit.craftbukkit.CraftLootTable(key, AbstractTestingBase.DATA_PACK.getLootTables().get(CraftNamespacedKey.toMinecraft(key)));
+ return new org.bukkit.craftbukkit.CraftLootTable(key, AbstractTestingBase.DATA_PACK.getLootData().getLootTable(CraftNamespacedKey.toMinecraft(key)));
+ });
+
+ when(dummyServer.getRegistry(any())).thenAnswer(invocation -> {
@ -119,7 +119,7 @@ index 0000000000000000000000000000000000000000..8dd0df8c2cc25d37a2590a0787268223
+ }
+}
diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java
index a85d3606c09717906798f0e1716755d1dae0d760..eab3834dca7cf70468390584156b9a770bfb2a32 100644
index 1b875fc4dc5550ffab21d11e0c2451a2b22250f9..c440dcf3cc2ddb8fd9094fe8495e820ae7797f5c 100644
--- a/src/test/java/org/bukkit/support/AbstractTestingBase.java
+++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java
@@ -53,6 +53,7 @@ public abstract class AbstractTestingBase {
@ -140,7 +140,7 @@ index a85d3606c09717906798f0e1716755d1dae0d760..eab3834dca7cf70468390584156b9a77
ImmutableList.Builder<Material> builder = ImmutableList.builder();
diff --git a/src/test/java/org/bukkit/support/DummyServer.java b/src/test/java/org/bukkit/support/DummyServer.java
deleted file mode 100644
index 946497353a64421592d2bae012c9a3cb874dd5b8..0000000000000000000000000000000000000000
index e3197ea88b68de8f893f3fa986507b95b789645d..0000000000000000000000000000000000000000
--- a/src/test/java/org/bukkit/support/DummyServer.java
+++ /dev/null
@@ -1,127 +0,0 @@
@ -240,7 +240,7 @@ index 946497353a64421592d2bae012c9a3cb874dd5b8..00000000000000000000000000000000
- @Override
- public Object handle(DummyServer server, Object[] args) {
- NamespacedKey key = (NamespacedKey) args[0];
- return new CraftLootTable(key, AbstractTestingBase.DATA_PACK.getLootTables().get(CraftNamespacedKey.toMinecraft(key)));
- return new CraftLootTable(key, AbstractTestingBase.DATA_PACK.getLootData().getLootTable(CraftNamespacedKey.toMinecraft(key)));
- }
- }
- );

View File

@ -14,7 +14,7 @@ public org.spigotmc.SpigotWorldConfig getString(Ljava/lang/String;Ljava/lang/Str
public net.minecraft.world.level.NaturalSpawner SPAWNING_CATEGORIES
diff --git a/build.gradle.kts b/build.gradle.kts
index e0724559c70b5967123010e898e66e757b2b1b58..b0facb2b0b86fafbfd5776eba2e5bdb69cc1cbed 100644
index 69753539208112385e5057be560dc57071259b33..bdd78d14723211bfec493126d603b99611cdf748 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -13,6 +13,7 @@ dependencies {
@ -23,8 +23,8 @@ index e0724559c70b5967123010e898e66e757b2b1b58..b0facb2b0b86fafbfd5776eba2e5bdb6
testImplementation("org.mockito:mockito-core:4.9.0") // Paper - switch to mockito
+ implementation("org.spongepowered:configurate-yaml:4.1.2") // Paper - config files
implementation("commons-lang:commons-lang:2.6")
runtimeOnly("org.xerial:sqlite-jdbc:3.41.2.2")
runtimeOnly("com.mysql:mysql-connector-j:8.0.32")
runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.0")
runtimeOnly("com.mysql:mysql-connector-j:8.0.33")
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..ef41cf3a7d1e6f2bfe81e0fb865d2f969bbc77c1
@ -4421,7 +4421,7 @@ index 0000000000000000000000000000000000000000..70cc7b45e7355f6c8476a74a070f1266
+ }
+}
diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java
index 9b93b953f0747078d25289f129f82755089f94c9..aa054369cef3da4f90ce17788dcb9ca80dc98010 100644
index e7240acad17dc9c0d93f2792cc0d90c1855ac436..35e7f8e7b19c217fa5f3f55abb0f8b9cd6b16f18 100644
--- a/src/main/java/net/minecraft/server/Main.java
+++ b/src/main/java/net/minecraft/server/Main.java
@@ -131,6 +131,10 @@ public class Main {
@ -4445,7 +4445,7 @@ index 9b93b953f0747078d25289f129f82755089f94c9..aa054369cef3da4f90ce17788dcb9ca8
String s = (String) Optional.ofNullable((String) optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName);
LevelStorageSource convertable = LevelStorageSource.createDefault(file.toPath());
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 3e1460b8331652c2f2e174ee41e3c728b2dbc753..2ed954f1fab3235a1d3fff2dd0d24c3b398b4d67 100644
index 49eaa50c5e83e47022a1d126c62f6984f2d16f46..8eb949b43e8b403f3d98e36066cabd7cb9ab0e63 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -295,6 +295,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@ -4465,19 +4465,19 @@ index 3e1460b8331652c2f2e174ee41e3c728b2dbc753..2ed954f1fab3235a1d3fff2dd0d24c3b
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/Services.java b/src/main/java/net/minecraft/server/Services.java
index 697ca7457115423a8c4d8a7d1f7a353237b56509..d7d65d0faefa5551480a4090de3a881828238ffd 100644
index 71e7beac6cf1e0f813d5ff3e9c51c13491be7139..f1cc27809c1e8612f7c4fa912f5e39c07b09d808 100644
--- a/src/main/java/net/minecraft/server/Services.java
+++ b/src/main/java/net/minecraft/server/Services.java
@@ -7,14 +7,30 @@ import java.io.File;
@@ -10,14 +10,30 @@ import javax.annotation.Nullable;
import net.minecraft.server.players.GameProfileCache;
import net.minecraft.util.SignatureValidator;
-public record Services(MinecraftSessionService sessionService, SignatureValidator serviceSignatureValidator, GameProfileRepository profileRepository, GameProfileCache profileCache) {
-public record Services(MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache) {
+// Paper start
+public record Services(MinecraftSessionService sessionService, SignatureValidator serviceSignatureValidator, GameProfileRepository profileRepository, GameProfileCache profileCache, @javax.annotation.Nullable io.papermc.paper.configuration.PaperConfigurations paperConfigurations) {
+public record Services(MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache, @javax.annotation.Nullable io.papermc.paper.configuration.PaperConfigurations paperConfigurations) {
+
+ public Services(MinecraftSessionService sessionService, SignatureValidator signatureValidator, GameProfileRepository profileRepository, GameProfileCache profileCache) {
+ this(sessionService, signatureValidator, profileRepository, profileCache, null);
+ public Services(MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache) {
+ this(sessionService, servicesKeySet, profileRepository, profileCache, null);
+ }
+
+ @Override
@ -4492,18 +4492,18 @@ index 697ca7457115423a8c4d8a7d1f7a353237b56509..d7d65d0faefa5551480a4090de3a8818
MinecraftSessionService minecraftSessionService = authenticationService.createMinecraftSessionService();
GameProfileRepository gameProfileRepository = authenticationService.createProfileRepository();
GameProfileCache gameProfileCache = new GameProfileCache(gameProfileRepository, new File(rootDirectory, "usercache.json"));
SignatureValidator signatureValidator = SignatureValidator.from(authenticationService.getServicesKey());
- return new Services(minecraftSessionService, signatureValidator, gameProfileRepository, gameProfileCache);
- return new Services(minecraftSessionService, authenticationService.getServicesKeySet(), gameProfileRepository, gameProfileCache);
+ // Paper start
+ final java.nio.file.Path legacyConfigPath = ((File) optionSet.valueOf("paper-settings")).toPath();
+ final java.nio.file.Path configDirPath = ((File) optionSet.valueOf("paper-settings-directory")).toPath();
+ io.papermc.paper.configuration.PaperConfigurations paperConfigurations = io.papermc.paper.configuration.PaperConfigurations.setup(legacyConfigPath, configDirPath, rootDirectory.toPath(), (File) optionSet.valueOf("spigot-settings"));
+ return new Services(minecraftSessionService, signatureValidator, gameProfileRepository, gameProfileCache, paperConfigurations);
+ return new Services(minecraftSessionService, authenticationService.getServicesKeySet(), gameProfileRepository, gameProfileCache, paperConfigurations);
+ // Paper end
}
}
@Nullable
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index c434bec64863cb9023917e737c9471444f23a110..1fe07773cf9664164b29164caba22800e5a6bdae 100644
index a58c0be585a2761d5b781a23934b956def221c5b..2ac30ef2dd72582f2b7f6a05b1f94b12b44fafc9 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -183,6 +183,10 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@ -4518,10 +4518,10 @@ index c434bec64863cb9023917e737c9471444f23a110..1fe07773cf9664164b29164caba22800
this.setPvpAllowed(dedicatedserverproperties.pvp);
this.setFlightAllowed(dedicatedserverproperties.allowFlight);
diff --git a/src/main/java/net/minecraft/server/dedicated/Settings.java b/src/main/java/net/minecraft/server/dedicated/Settings.java
index a02be624f7203d9465a8d62ccb734b436781f18c..5ac04182d32922dab00b81bc7f2ee1321066dcd5 100644
index 635c1164defec812af378a69d45c7ae0aed5024f..9dde5b89e6de9d470b0c0b08e3aa6c471cd075fe 100644
--- a/src/main/java/net/minecraft/server/dedicated/Settings.java
+++ b/src/main/java/net/minecraft/server/dedicated/Settings.java
@@ -75,6 +75,7 @@ public abstract class Settings<T extends Settings<T>> {
@@ -114,6 +114,7 @@ public abstract class Settings<T extends Settings<T>> {
try {
// CraftBukkit start - Don't attempt writing to file if it's read only
if (path.toFile().exists() && !path.toFile().canWrite()) {
@ -4530,10 +4530,10 @@ index a02be624f7203d9465a8d62ccb734b436781f18c..5ac04182d32922dab00b81bc7f2ee132
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 37b2696e69719e44490116e4c4f6ab86c38043ed..ad011c4f328129e2e5eb6b1b1f5e1d282d1ec04a 100644
index d40998a5330be64849a5bc2b49781b70ef149a0e..82435da47f0f7db73556310f84dc538a7c5f0809 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -230,7 +230,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -234,7 +234,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Holder holder = worlddimension.type(); // CraftBukkit - decompile error
// Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error
@ -4543,10 +4543,10 @@ index 37b2696e69719e44490116e4c4f6ab86c38043ed..ad011c4f328129e2e5eb6b1b1f5e1d28
this.convertable = convertable_conversionsession;
this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile());
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 9a86fedb7ea4932590b86ef96785141489b03528..40deaa2463876659c0579b5273b5249760e8f8c0 100644
index cda55e481ddbcc1de5478125c5db20ebba168e7d..bacd4d875642cd93c3185f788745dd73a3cfde8a 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -156,6 +156,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -155,6 +155,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public final it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<SpawnCategory> ticksPerSpawnCategory = new it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<>();
public boolean populating;
public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot
@ -4559,7 +4559,7 @@ index 9a86fedb7ea4932590b86ef96785141489b03528..40deaa2463876659c0579b5273b52497
public final SpigotTimings.WorldTimingsHandler timings; // Spigot
public static BlockPos lastPhysicsProblem; // Spigot
@@ -173,8 +179,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -172,8 +178,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public abstract ResourceKey<LevelStem> getTypeKey();
@ -4571,7 +4571,7 @@ index 9a86fedb7ea4932590b86ef96785141489b03528..40deaa2463876659c0579b5273b52497
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 0ae7df422a58df7acb8e57e21d5e8ded592192ee..6e2a1ca2a1d6cb457c1eb70ce5c25f8287f5ccb9 100644
index c1c575593b2470aeaf73ce6f9f45f4f7f9b16c04..9c82e4d2f5676808bb57c5e7dd19d0e7615ca884 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -903,6 +903,7 @@ public final class CraftServer implements Server {
@ -4583,7 +4583,7 @@ index 0ae7df422a58df7acb8e57e21d5e8ded592192ee..6e2a1ca2a1d6cb457c1eb70ce5c25f82
world.serverLevelData.setDifficulty(config.difficulty);
world.setSpawnSettings(config.spawnMonsters, config.spawnAnimals);
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 5a39201392fefe8da495244fdbc380e882ec938f..e8fb9e3454282ad328e6bc0d078142285d9cfa76 100644
index f3412dbbb0f37d5625ab05cfd502189ab4a343c2..60ca15373b489941555315bf6fb311326670e7de 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -141,6 +141,19 @@ public class Main {
@ -4667,7 +4667,7 @@ index 0000000000000000000000000000000000000000..0396589795da1f83ddf62426236dde9a
+ }
+}
diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java
index eab3834dca7cf70468390584156b9a770bfb2a32..a616624a7beb35239be0fc2bb7fe60db1c673c2d 100644
index c440dcf3cc2ddb8fd9094fe8495e820ae7797f5c..d1fd4cf65c31bc00d0bffa3123fc2223f1498a34 100644
--- a/src/test/java/org/bukkit/support/AbstractTestingBase.java
+++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java
@@ -62,6 +62,7 @@ public abstract class AbstractTestingBase {

View File

@ -5,10 +5,10 @@ Subject: [PATCH] MC Dev fixes
diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java
index c400121d4956014a376760360180e5141013d702..b3e0495e0f242c96d4348438c0257c2045b801e5 100644
index 2b7e2b7ecda6ac2b019c361163079fd747033719..90edfea7151f2ad259288545d512af7cd1b82f19 100644
--- a/src/main/java/net/minecraft/Util.java
+++ b/src/main/java/net/minecraft/Util.java
@@ -357,7 +357,7 @@ public class Util {
@@ -358,7 +358,7 @@ public class Util {
}
public static <K> Hash.Strategy<K> identityStrategy() {
@ -18,10 +18,10 @@ index c400121d4956014a376760360180e5141013d702..b3e0495e0f242c96d4348438c0257c20
public static <V> CompletableFuture<List<V>> sequence(List<? extends CompletableFuture<V>> futures) {
diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java
index 77bf6865c6df829c5b5455d440cb2222a0d8f2af..819562d2c938fa05b8e8a00d1ae1f7c1fc9b00d5 100644
index e89fa618fa20e3e843d8de81629e6dc551777823..2bb5e51f71cbf66819d198505aa4a5ecffd246c6 100644
--- a/src/main/java/net/minecraft/core/BlockPos.java
+++ b/src/main/java/net/minecraft/core/BlockPos.java
@@ -370,12 +370,12 @@ public class BlockPos extends Vec3i {
@@ -383,12 +383,12 @@ public class BlockPos extends Vec3i {
if (this.index == l) {
return this.endOfData();
} else {
@ -40,10 +40,10 @@ index 77bf6865c6df829c5b5455d440cb2222a0d8f2af..819562d2c938fa05b8e8a00d1ae1f7c1
}
};
diff --git a/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java b/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java
index 396d065805853318b0fed98b64b2e1ab0a022e51..a969cd46694ce3094b4a65cf188677d38ae72198 100644
index fe671ee23a5d364e20571dede6fc6bca7d83e98c..baa88201c4d08fb4f32f1198e187d7ca138b0f0e 100644
--- a/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java
+++ b/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java
@@ -307,7 +307,7 @@ public class BuiltInRegistries {
@@ -314,7 +314,7 @@ public class BuiltInRegistries {
LOADERS.put(resourceLocation, () -> {
return initializer.run(registry);
});
@ -94,7 +94,7 @@ index 41d6569c00db3d467f6e90d33ebd261529b89f4c..5f051cb22ae77f4d8994b07ac5b963bd
};
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 2ed954f1fab3235a1d3fff2dd0d24c3b398b4d67..41a6756144a3b826d32ecb85a71d26761e25ec11 100644
index 8eb949b43e8b403f3d98e36066cabd7cb9ab0e63..a9e30b7b3a666d83b3c595a7975693ccfcf3e8f9 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1775,7 +1775,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@ -133,23 +133,23 @@ index 2dc801061025888192c3bf2c4c38b928c16a0165..ca788f0dcec4a117b410fe8348969e05
public static <T> SortedArraySet<T> create(Comparator<T> comparator) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
index 37a01cd6f616cac741d50066aaba21911a1ed3bb..36222d2140aa1151c30e095afc557ea7db91911f 100644
index d6e25c7f5dc6c219e2590aa8b1ffd51a2120d50e..5e3c750b2ce30b4c89143c5dfbb7a90e861f169f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
@@ -150,7 +150,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
@@ -151,7 +151,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
@Override
protected void customServerAiStep() {
this.level.getProfiler().push("camelBrain");
this.level().getProfiler().push("camelBrain");
- Brain<?> brain = this.getBrain();
+ Brain<Camel> brain = (Brain<Camel>) this.getBrain(); // Paper - decompile fix
brain.tick((ServerLevel)this.level, this);
this.level.getProfiler().pop();
this.level.getProfiler().push("camelActivityUpdate");
brain.tick((ServerLevel)this.level(), this);
this.level().getProfiler().pop();
this.level().getProfiler().push("camelActivityUpdate");
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
index 872243700e982c97c8ef491684a447afc7a24bdf..c12b8831deb54deb191908ba8a769d4c78825d5b 100644
index e8da5e51449d908de492b55dfa21e8d1108514fa..22eb0a8fc35baa04b34265b62aa29a71f3cc7343 100644
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
@@ -104,7 +104,7 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
@@ -99,7 +99,7 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
@Override
public Brain<Frog> getBrain() {
@ -159,7 +159,7 @@ index 872243700e982c97c8ef491684a447afc7a24bdf..c12b8831deb54deb191908ba8a769d4c
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index 64314cf4dc53a1a0a5f676fa00503858e0120dfa..45741410a13cffe3419e34b5607b048bbcf1c3ff 100644
index 555b52e2d9a6d4db7a527cda46ba6acf711da697..98c41e87b644f79ebfd45af2e0d7b887a3f5d00b 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -123,7 +123,7 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {

View File

@ -17,10 +17,10 @@ Subject: [PATCH] CB fixes
Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com>
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index ad011c4f328129e2e5eb6b1b1f5e1d282d1ec04a..3bcbdf37ad9d76ec97ad3f20e7a683e267441ed9 100644
index 82435da47f0f7db73556310f84dc538a7c5f0809..ebae711991a3ae35e35c2cffa8d928677c205492 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -294,7 +294,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -298,7 +298,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
long l = minecraftserver.getWorldData().worldGenOptions().seed();
@ -30,7 +30,7 @@ index ad011c4f328129e2e5eb6b1b1f5e1d282d1ec04a..3bcbdf37ad9d76ec97ad3f20e7a683e2
if ((this.dimension() == Level.END && this.dimensionTypeRegistration().is(BuiltinDimensionTypes.END)) || env == org.bukkit.World.Environment.THE_END) { // CraftBukkit - Allow to create EnderDragonBattle in default and custom END
this.dragonFight = new EndDragonFight(this, this.serverLevelData.worldGenOptions().seed(), this.serverLevelData.endDragonFightData()); // CraftBukkit
diff --git a/src/main/java/net/minecraft/world/entity/Marker.java b/src/main/java/net/minecraft/world/entity/Marker.java
index 15ec0d085d09d9a70eb6cdd47f9e4587dd1402b5..9cd0f0628a3f533229d25d9ccd0d381364f4957c 100644
index 299d0755b782a26af6c6acc00e3d8ab0269348a9..70791a052c1ec8f41d7f1e65c33eee4f0b1b53b2 100644
--- a/src/main/java/net/minecraft/world/entity/Marker.java
+++ b/src/main/java/net/minecraft/world/entity/Marker.java
@@ -49,8 +49,8 @@ public class Marker extends Entity {
@ -45,16 +45,16 @@ index 15ec0d085d09d9a70eb6cdd47f9e4587dd1402b5..9cd0f0628a3f533229d25d9ccd0d3813
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
index 36222d2140aa1151c30e095afc557ea7db91911f..9d4a3041ecae2adda40134710eb1edb8571228aa 100644
index 5e3c750b2ce30b4c89143c5dfbb7a90e861f169f..1769045a053f7f4576099fb21686d84b682194f5 100644
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
@@ -441,9 +441,9 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
@@ -446,9 +446,9 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
}
@Override
- protected void actuallyHurt(DamageSource source, float amount) {
+ protected boolean damageEntity0(DamageSource source, float amount) { // Paper - fix CB method rename issue
this.standUpPanic();
this.standUpInstantly();
- super.actuallyHurt(source, amount);
+ return super.damageEntity0(source, amount); // Paper - fix CB method rename issue
}
@ -83,20 +83,20 @@ index 161ad6ab1443b2ce33a2d7d91d189c855db0453b..15a9736a870055d639d03063c7cf67fd
this.registryAccess = registryManager;
this.structureTemplateManager = structureTemplateManager;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 6e2a1ca2a1d6cb457c1eb70ce5c25f8287f5ccb9..1177d64793be0d82c99dcd9e037c3e4cef2f74d3 100644
index 9c82e4d2f5676808bb57c5e7dd19d0e7615ca884..9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2326,7 +2326,13 @@ public final class CraftServer implements Server {
@@ -2324,7 +2324,13 @@ public final class CraftServer implements Server {
Validate.notNull(key, "NamespacedKey cannot be null");
LootTables registry = this.getServer().getLootTables();
- return new CraftLootTable(key, registry.get(CraftNamespacedKey.toMinecraft(key)));
LootDataManager registry = this.getServer().getLootData();
- return new CraftLootTable(key, registry.getLootTable(CraftNamespacedKey.toMinecraft(key)));
+ // Paper start - honor method contract
+ final ResourceLocation lootTableKey = CraftNamespacedKey.toMinecraft(key);
+ if (!registry.getIds().contains(lootTableKey)) {
+ if (registry.getLootTable(lootTableKey) == net.minecraft.world.level.storage.loot.LootTable.EMPTY) {
+ return null;
+ }
+ return new CraftLootTable(key, registry.get(lootTableKey));
+ return new CraftLootTable(key, registry.getLootTable(lootTableKey));
+ // Paper end
}

View File

@ -5434,10 +5434,10 @@ index 0000000000000000000000000000000000000000..808d1449ac44ae86a650932365081fba
+ }
+}
diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java
index b3e0495e0f242c96d4348438c0257c2045b801e5..c5fb6adb353538360ef420faee41565626eea1dc 100644
index 90edfea7151f2ad259288545d512af7cd1b82f19..01eb418bde1dadbbfa30954f81281199b2fec778 100644
--- a/src/main/java/net/minecraft/Util.java
+++ b/src/main/java/net/minecraft/Util.java
@@ -116,7 +116,7 @@ public class Util {
@@ -117,7 +117,7 @@ public class Util {
}
public static long getNanos() {
@ -5447,10 +5447,10 @@ index b3e0495e0f242c96d4348438c0257c2045b801e5..c5fb6adb353538360ef420faee415656
public static long getEpochMillis() {
diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java
index 819562d2c938fa05b8e8a00d1ae1f7c1fc9b00d5..4dffce4dc3434ef6adef7dc3cfac867ad89d9a5d 100644
index 2bb5e51f71cbf66819d198505aa4a5ecffd246c6..1834f3efb05fd70c8c1c67733bff514829ae1154 100644
--- a/src/main/java/net/minecraft/core/BlockPos.java
+++ b/src/main/java/net/minecraft/core/BlockPos.java
@@ -521,6 +521,7 @@ public class BlockPos extends Vec3i {
@@ -562,6 +562,7 @@ public class BlockPos extends Vec3i {
}
}
@ -5458,7 +5458,7 @@ index 819562d2c938fa05b8e8a00d1ae1f7c1fc9b00d5..4dffce4dc3434ef6adef7dc3cfac867a
@Override
public BlockPos.MutableBlockPos setX(int i) {
super.setX(i);
@@ -538,6 +539,7 @@ public class BlockPos extends Vec3i {
@@ -579,6 +580,7 @@ public class BlockPos extends Vec3i {
super.setZ(i);
return this;
}
@ -5504,7 +5504,7 @@ index e6c4379b0fd7c1338e1713281cd9515cb54acecb..a63e7ee5c42bd51312155feab31c6ec4
throw new SkipPacketException(var10);
} else {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 41a6756144a3b826d32ecb85a71d26761e25ec11..5725631835ea68802c75934cd85d5c1b1a78d358 100644
index a9e30b7b3a666d83b3c595a7975693ccfcf3e8f9..9b34e401040a45393afbb9e984ff421a89f744a0 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -296,6 +296,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@ -5515,7 +5515,7 @@ index 41a6756144a3b826d32ecb85a71d26761e25ec11..5725631835ea68802c75934cd85d5c1b
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
AtomicReference<S> atomicreference = new AtomicReference();
@@ -931,6 +932,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -929,6 +930,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.error("Failed to unlock level {}", this.storageSource.getLevelId(), ioexception1);
}
// Spigot start
@ -5525,7 +5525,7 @@ index 41a6756144a3b826d32ecb85a71d26761e25ec11..5725631835ea68802c75934cd85d5c1b
if (org.spigotmc.SpigotConfig.saveUserCacheOnStopOnly) {
MinecraftServer.LOGGER.info("Saving usercache.json");
this.getProfileCache().save();
@@ -995,6 +999,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -993,6 +997,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.lastOverloadWarning = this.nextTickTime;
}
@ -5533,7 +5533,7 @@ index 41a6756144a3b826d32ecb85a71d26761e25ec11..5725631835ea68802c75934cd85d5c1b
if ( tickCount++ % MinecraftServer.SAMPLE_INTERVAL == 0 )
{
double currentTps = 1E3 / ( curTime - tickSection ) * MinecraftServer.SAMPLE_INTERVAL;
@@ -1212,7 +1217,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1210,7 +1215,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.debug("Autosave finished");
SpigotTimings.worldSaveTimer.stopTiming(); // Spigot
}
@ -5542,7 +5542,7 @@ index 41a6756144a3b826d32ecb85a71d26761e25ec11..5725631835ea68802c75934cd85d5c1b
this.profiler.push("tallying");
long j = this.tickTimes[this.tickCount % 100] = Util.getNanos() - i;
@@ -1302,6 +1307,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1300,6 +1305,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
try {
worldserver.timings.doTick.startTiming(); // Spigot
worldserver.tick(shouldKeepTicking);
@ -5555,11 +5555,11 @@ index 41a6756144a3b826d32ecb85a71d26761e25ec11..5725631835ea68802c75934cd85d5c1b
} catch (Throwable throwable) {
// Spigot Start
diff --git a/src/main/java/net/minecraft/server/level/ChunkHolder.java b/src/main/java/net/minecraft/server/level/ChunkHolder.java
index 68583e2f293e6e4d2f9f3345b6cf1ea050a210b6..941ca1b44c7cac656bdd76c7095887b1c3570aec 100644
index 6d4cd75b9dbddce30b92f83fef96ec0a47e1fe9d..32d186fefa5ff8afedcceacea0c6fa1cefbd5490 100644
--- a/src/main/java/net/minecraft/server/level/ChunkHolder.java
+++ b/src/main/java/net/minecraft/server/level/ChunkHolder.java
@@ -52,9 +52,9 @@ public class ChunkHolder {
private static final int BLOCKS_BEFORE_RESEND_FUDGE = 64;
@@ -50,9 +50,9 @@ public class ChunkHolder {
private static final List<ChunkStatus> CHUNK_STATUSES = ChunkStatus.getStatusList();
private final AtomicReferenceArray<CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>>> futures;
private final LevelHeightAccessor levelHeightAccessor;
- private volatile CompletableFuture<Either<LevelChunk, ChunkHolder.ChunkLoadingFailure>> fullChunkFuture;
@ -5571,8 +5571,8 @@ index 68583e2f293e6e4d2f9f3345b6cf1ea050a210b6..941ca1b44c7cac656bdd76c7095887b1
private CompletableFuture<ChunkAccess> chunkToSave;
@Nullable
private final DebugBuffer<ChunkHolder.ChunkSaveDebug> chunkToSaveHistory;
@@ -73,6 +73,18 @@ public class ChunkHolder {
private boolean resendLight;
@@ -70,6 +70,18 @@ public class ChunkHolder {
private boolean wasAccessibleSinceLastSave;
private CompletableFuture<Void> pendingFullStateConfirmation;
+ private final ChunkMap chunkMap; // Paper
@ -5590,7 +5590,7 @@ index 68583e2f293e6e4d2f9f3345b6cf1ea050a210b6..941ca1b44c7cac656bdd76c7095887b1
public ChunkHolder(ChunkPos pos, int level, LevelHeightAccessor world, LevelLightEngine lightingProvider, ChunkHolder.LevelChangeListener levelUpdateListener, ChunkHolder.PlayerProvider playersWatchingChunkProvider) {
this.futures = new AtomicReferenceArray(ChunkHolder.CHUNK_STATUSES.size());
this.fullChunkFuture = ChunkHolder.UNLOADED_LEVEL_CHUNK_FUTURE;
@@ -93,8 +105,23 @@ public class ChunkHolder {
@@ -90,8 +102,23 @@ public class ChunkHolder {
this.queueLevel = this.oldTicketLevel;
this.setTicketLevel(level);
this.changedBlocksPerSection = new ShortSet[world.getSectionsCount()];
@ -5614,8 +5614,8 @@ index 68583e2f293e6e4d2f9f3345b6cf1ea050a210b6..941ca1b44c7cac656bdd76c7095887b1
// CraftBukkit start
public LevelChunk getFullChunkNow() {
// Note: We use the oldTicketLevel for isLoaded checks.
@@ -119,20 +146,20 @@ public class ChunkHolder {
return ChunkHolder.getStatus(this.ticketLevel).isOrAfter(leastStatus) ? this.getFutureIfPresentUnchecked(leastStatus) : ChunkHolder.UNLOADED_CHUNK_FUTURE;
@@ -116,20 +143,20 @@ public class ChunkHolder {
return ChunkLevel.generationStatus(this.ticketLevel).isOrAfter(leastStatus) ? this.getFutureIfPresentUnchecked(leastStatus) : ChunkHolder.UNLOADED_CHUNK_FUTURE;
}
- public CompletableFuture<Either<LevelChunk, ChunkHolder.ChunkLoadingFailure>> getTickingChunkFuture() {
@ -5639,7 +5639,7 @@ index 68583e2f293e6e4d2f9f3345b6cf1ea050a210b6..941ca1b44c7cac656bdd76c7095887b1
CompletableFuture<Either<LevelChunk, ChunkHolder.ChunkLoadingFailure>> completablefuture = this.getTickingChunkFuture();
Either<LevelChunk, ChunkHolder.ChunkLoadingFailure> either = (Either) completablefuture.getNow(null); // CraftBukkit - decompile error
@@ -140,7 +167,7 @@ public class ChunkHolder {
@@ -137,7 +164,7 @@ public class ChunkHolder {
}
@Nullable
@ -5648,7 +5648,7 @@ index 68583e2f293e6e4d2f9f3345b6cf1ea050a210b6..941ca1b44c7cac656bdd76c7095887b1
CompletableFuture<Either<LevelChunk, ChunkHolder.ChunkLoadingFailure>> completablefuture = this.getFullChunkFuture();
Either<LevelChunk, ChunkHolder.ChunkLoadingFailure> either = (Either) completablefuture.getNow(null); // CraftBukkit - decompile error
@@ -161,6 +188,21 @@ public class ChunkHolder {
@@ -158,6 +185,21 @@ public class ChunkHolder {
return null;
}
@ -5670,7 +5670,7 @@ index 68583e2f293e6e4d2f9f3345b6cf1ea050a210b6..941ca1b44c7cac656bdd76c7095887b1
@Nullable
public ChunkAccess getLastAvailable() {
for (int i = ChunkHolder.CHUNK_STATUSES.size() - 1; i >= 0; --i) {
@@ -179,7 +221,7 @@ public class ChunkHolder {
@@ -176,7 +218,7 @@ public class ChunkHolder {
return null;
}
@ -5679,8 +5679,8 @@ index 68583e2f293e6e4d2f9f3345b6cf1ea050a210b6..941ca1b44c7cac656bdd76c7095887b1
return this.chunkToSave;
}
@@ -360,11 +402,11 @@ public class ChunkHolder {
return ChunkHolder.getFullChunkStatus(this.ticketLevel);
@@ -364,11 +406,11 @@ public class ChunkHolder {
return ChunkLevel.fullStatus(this.ticketLevel);
}
- public ChunkPos getPos() {
@ -5693,13 +5693,13 @@ index 68583e2f293e6e4d2f9f3345b6cf1ea050a210b6..941ca1b44c7cac656bdd76c7095887b1
return this.ticketLevel;
}
@@ -453,14 +495,31 @@ public class ChunkHolder {
@@ -457,14 +499,31 @@ public class ChunkHolder {
this.wasAccessibleSinceLastSave |= flag3;
if (!flag2 && flag3) {
+ int expectCreateCount = ++this.fullChunkCreateCount; // Paper
this.fullChunkFuture = chunkStorage.prepareAccessibleChunk(this);
this.scheduleFullChunkPromotion(chunkStorage, this.fullChunkFuture, executor, ChunkHolder.FullChunkStatus.BORDER);
this.scheduleFullChunkPromotion(chunkStorage, this.fullChunkFuture, executor, FullChunkStatus.FULL);
+ // Paper start - cache ticking ready status
+ this.fullChunkFuture.thenAccept(either -> {
+ final Optional<LevelChunk> left = either.left();
@ -5724,11 +5724,11 @@ index 68583e2f293e6e4d2f9f3345b6cf1ea050a210b6..941ca1b44c7cac656bdd76c7095887b1
+ this.isFullChunkReady = false; // Paper - cache ticking ready status
}
boolean flag4 = playerchunk_state.isOrAfter(ChunkHolder.FullChunkStatus.TICKING);
@@ -469,11 +528,25 @@ public class ChunkHolder {
boolean flag4 = fullchunkstatus.isOrAfter(FullChunkStatus.BLOCK_TICKING);
@@ -473,11 +532,25 @@ public class ChunkHolder {
if (!flag4 && flag5) {
this.tickingChunkFuture = chunkStorage.prepareTickingChunk(this);
this.scheduleFullChunkPromotion(chunkStorage, this.tickingChunkFuture, executor, ChunkHolder.FullChunkStatus.TICKING);
this.scheduleFullChunkPromotion(chunkStorage, this.tickingChunkFuture, executor, FullChunkStatus.BLOCK_TICKING);
+ // Paper start - cache ticking ready status
+ this.tickingChunkFuture.thenAccept(either -> {
+ either.ifLeft(chunk -> {
@ -5752,10 +5752,10 @@ index 68583e2f293e6e4d2f9f3345b6cf1ea050a210b6..941ca1b44c7cac656bdd76c7095887b1
this.tickingChunkFuture = ChunkHolder.UNLOADED_LEVEL_CHUNK_FUTURE;
}
@@ -487,11 +560,24 @@ public class ChunkHolder {
@@ -491,11 +564,24 @@ public class ChunkHolder {
this.entityTickingChunkFuture = chunkStorage.prepareEntityTickingChunk(this.pos);
this.scheduleFullChunkPromotion(chunkStorage, this.entityTickingChunkFuture, executor, ChunkHolder.FullChunkStatus.ENTITY_TICKING);
this.entityTickingChunkFuture = chunkStorage.prepareEntityTickingChunk(this);
this.scheduleFullChunkPromotion(chunkStorage, this.entityTickingChunkFuture, executor, FullChunkStatus.ENTITY_TICKING);
+ // Paper start - cache ticking ready status
+ this.entityTickingChunkFuture.thenAccept(either -> {
+ either.ifLeft(chunk -> {
@ -5778,7 +5778,7 @@ index 68583e2f293e6e4d2f9f3345b6cf1ea050a210b6..941ca1b44c7cac656bdd76c7095887b1
this.entityTickingChunkFuture = ChunkHolder.UNLOADED_LEVEL_CHUNK_FUTURE;
}
@@ -608,4 +694,18 @@ public class ChunkHolder {
@@ -593,4 +679,18 @@ public class ChunkHolder {
}
};
}
@ -5798,7 +5798,7 @@ index 68583e2f293e6e4d2f9f3345b6cf1ea050a210b6..941ca1b44c7cac656bdd76c7095887b1
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef67d3d13c 100644
index de34a02c44043b6f90806eeef94a232e6b3c845b..c943e64d70bab240f8dc733e78a185172664c5e4 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -68,6 +68,7 @@ import net.minecraft.network.protocol.game.ClientboundSetChunkCacheCenterPacket;
@ -5809,7 +5809,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
import net.minecraft.server.level.progress.ChunkProgressListener;
import net.minecraft.server.network.ServerPlayerConnection;
import net.minecraft.util.CsvOutput;
@@ -176,6 +177,56 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -175,6 +176,56 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
};
// CraftBukkit end
@ -5866,7 +5866,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
public ChunkMap(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureTemplateManager structureTemplateManager, Executor executor, BlockableEventLoop<Runnable> mainThreadExecutor, LightChunkGetter chunkProvider, ChunkGenerator chunkGenerator, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkStatusChangeListener, Supplier<DimensionDataStorage> persistentStateManagerFactory, int viewDistance, boolean dsync) {
super(session.getDimensionPath(world.dimension()).resolve("region"), dataFixer, dsync);
this.visibleChunkMap = this.updatingChunkMap.clone();
@@ -229,6 +280,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -228,6 +279,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
this.overworldDataStorage = persistentStateManagerFactory;
this.poiManager = new PoiManager(path.resolve("poi"), dataFixer, dsync, iregistrycustom, world);
this.setViewDistance(viewDistance);
@ -5877,7 +5877,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
}
protected ChunkGenerator generator() {
@@ -326,6 +381,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -324,6 +379,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
}
@ -5885,14 +5885,15 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
+ public final int getEffectiveViewDistance() {
+ // TODO this needs to be checked on update
+ // Mojang currently sets it to +1 of the configured view distance. So subtract one to get the one we really want.
+ return this.viewDistance - 1;
+ //TODO check if +0 is correct now
+ return this.viewDistance;
+ }
+ // Paper end
+
private CompletableFuture<Either<List<ChunkAccess>, ChunkHolder.ChunkLoadingFailure>> getChunkRangeFuture(ChunkPos centerChunk, int margin, IntFunction<ChunkStatus> distanceToStatus) {
List<CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>>> list = new ArrayList();
List<ChunkHolder> list1 = new ArrayList();
@@ -413,9 +476,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
private CompletableFuture<Either<List<ChunkAccess>, ChunkHolder.ChunkLoadingFailure>> getChunkRangeFuture(ChunkHolder centerChunk, int margin, IntFunction<ChunkStatus> distanceToStatus) {
if (margin == 0) {
ChunkStatus chunkstatus = (ChunkStatus) distanceToStatus.apply(0);
@@ -420,9 +484,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
};
stringbuilder.append("Updating:").append(System.lineSeparator());
@ -5904,7 +5905,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
CrashReport crashreport = CrashReport.forThrowable(exception, "Chunk loading");
CrashReportCategory crashreportsystemdetails = crashreport.addCategory("Chunk loading");
@@ -457,8 +520,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -464,8 +528,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
holder.setTicketLevel(level);
} else {
holder = new ChunkHolder(new ChunkPos(pos), level, this.level, this.lightEngine, this.queueSorter, this);
@ -5919,7 +5920,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
this.updatingChunkMap.put(pos, holder);
this.modified = true;
}
@@ -480,7 +549,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -487,7 +557,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
protected void saveAllChunks(boolean flush) {
if (flush) {
@ -5928,7 +5929,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
MutableBoolean mutableboolean = new MutableBoolean();
do {
@@ -509,7 +578,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -516,7 +586,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
});
this.flushWorker();
} else {
@ -5937,7 +5938,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
}
}
@@ -528,7 +597,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -535,7 +605,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
public boolean hasWork() {
@ -5946,7 +5947,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
}
private void processUnloads(BooleanSupplier shouldKeepTicking) {
@@ -539,6 +608,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -546,6 +616,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
ChunkHolder playerchunk = (ChunkHolder) this.updatingChunkMap.remove(j);
if (playerchunk != null) {
@ -5954,7 +5955,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
this.pendingUnloads.put(j, playerchunk);
this.modified = true;
++i;
@@ -556,7 +626,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -563,7 +634,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
int l = 0;
@ -5963,7 +5964,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
while (l < 20 && shouldKeepTicking.getAsBoolean() && objectiterator.hasNext()) {
if (this.saveChunkIfNeeded((ChunkHolder) objectiterator.next())) {
@@ -574,7 +644,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -581,7 +652,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
if (completablefuture1 != completablefuture) {
this.scheduleUnload(pos, holder);
} else {
@ -5976,7 +5977,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
if (ichunkaccess instanceof LevelChunk) {
((LevelChunk) ichunkaccess).setLoaded(false);
}
@@ -590,7 +664,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -597,7 +672,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
this.lightEngine.tryScheduleUpdate();
this.progressListener.onStatusChange(ichunkaccess.getPos(), (ChunkStatus) null);
this.chunkSaveCooldowns.remove(ichunkaccess.getPos().toLong());
@ -5987,16 +5988,16 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
}
};
@@ -971,7 +1047,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -991,7 +1068,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
this.viewDistance = j;
this.distanceManager.updatePlayerTickets(this.viewDistance + 1);
this.distanceManager.updatePlayerTickets(this.viewDistance);
- ObjectIterator objectiterator = this.updatingChunkMap.values().iterator();
+ Iterator objectiterator = io.papermc.paper.chunk.system.ChunkSystem.getUpdatingChunkHolders(this.level).iterator(); // Paper
while (objectiterator.hasNext()) {
ChunkHolder playerchunk = (ChunkHolder) objectiterator.next();
@@ -1014,7 +1090,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1034,7 +1111,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
public int size() {
@ -6005,7 +6006,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
}
public DistanceManager getDistanceManager() {
@@ -1022,19 +1098,19 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1042,19 +1119,19 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
protected Iterable<ChunkHolder> getChunks() {
@ -6030,7 +6031,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
Optional<ChunkAccess> optional = Optional.ofNullable(playerchunk.getLastAvailable());
Optional<LevelChunk> optional1 = optional.flatMap((ichunkaccess) -> {
return ichunkaccess instanceof LevelChunk ? Optional.of((LevelChunk) ichunkaccess) : Optional.empty();
@@ -1160,6 +1236,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1180,6 +1257,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
if (!flag1) {
this.distanceManager.addPlayer(SectionPos.of((EntityAccess) player), player);
}
@ -6038,7 +6039,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
} else {
SectionPos sectionposition = player.getLastSectionPos();
@@ -1167,6 +1244,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1187,6 +1265,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
if (!flag2) {
this.distanceManager.removePlayer(sectionposition, player);
}
@ -6046,7 +6047,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
}
for (int k = i - this.viewDistance - 1; k <= i + this.viewDistance + 1; ++k) {
@@ -1279,6 +1357,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1300,6 +1379,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
}
@ -6055,7 +6056,7 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
}
@Override
@@ -1515,7 +1595,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1536,7 +1617,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
private class ChunkDistanceManager extends DistanceManager {
protected ChunkDistanceManager(Executor workerExecutor, Executor mainThreadExecutor) {
@ -6065,10 +6066,10 @@ index 9fe2d44fbfb648c342daf0b8f0820090785b8bf7..714b36e4942fda9d6c8a202b9e7a34ef
@Override
diff --git a/src/main/java/net/minecraft/server/level/DistanceManager.java b/src/main/java/net/minecraft/server/level/DistanceManager.java
index 6c98676827ceb6999f340fa2b06a0b3e1cb4cae2..fbe62a31ab199d83a1db0a4e0b1a813824e6f2c2 100644
index 1bfa33253a154c66dc8b7e476c777b74cda8999f..d8b83c8c89143d78620f812c491a1950e3218eb1 100644
--- a/src/main/java/net/minecraft/server/level/DistanceManager.java
+++ b/src/main/java/net/minecraft/server/level/DistanceManager.java
@@ -60,8 +60,9 @@ public abstract class DistanceManager {
@@ -56,8 +56,9 @@ public abstract class DistanceManager {
final Executor mainThreadExecutor;
private long ticketTickCounter;
private int simulationDistance = 10;
@ -6079,7 +6080,7 @@ index 6c98676827ceb6999f340fa2b06a0b3e1cb4cae2..fbe62a31ab199d83a1db0a4e0b1a8138
Objects.requireNonNull(mainThreadExecutor);
ProcessorHandle<Runnable> mailbox = ProcessorHandle.of("player ticket throttler", mainThreadExecutor::execute);
ChunkTaskPriorityQueueSorter chunktaskqueuesorter = new ChunkTaskPriorityQueueSorter(ImmutableList.of(mailbox), workerExecutor, 4);
@@ -70,6 +71,7 @@ public abstract class DistanceManager {
@@ -66,6 +67,7 @@ public abstract class DistanceManager {
this.ticketThrottlerInput = chunktaskqueuesorter.getProcessor(mailbox, true);
this.ticketThrottlerReleaser = chunktaskqueuesorter.getReleaseProcessor(mailbox);
this.mainThreadExecutor = mainThreadExecutor;
@ -6087,7 +6088,7 @@ index 6c98676827ceb6999f340fa2b06a0b3e1cb4cae2..fbe62a31ab199d83a1db0a4e0b1a8138
}
protected void purgeStaleTickets() {
@@ -319,6 +321,12 @@ public abstract class DistanceManager {
@@ -315,6 +317,12 @@ public abstract class DistanceManager {
this.playerTicketManager.updateViewDistance(viewDistance);
}
@ -6100,7 +6101,7 @@ index 6c98676827ceb6999f340fa2b06a0b3e1cb4cae2..fbe62a31ab199d83a1db0a4e0b1a8138
public void updateSimulationDistance(int simulationDistance) {
if (simulationDistance != this.simulationDistance) {
this.simulationDistance = simulationDistance;
@@ -382,7 +390,7 @@ public abstract class DistanceManager {
@@ -378,7 +386,7 @@ public abstract class DistanceManager {
}
public void removeTicketsOnClosing() {
@ -6110,7 +6111,7 @@ index 6c98676827ceb6999f340fa2b06a0b3e1cb4cae2..fbe62a31ab199d83a1db0a4e0b1a8138
while (objectiterator.hasNext()) {
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index b323b8329f534b7020dd595b8b15197c29939590..794ad2dbaea2555d4557124e9d942d3e6919ea09 100644
index 2bc9afcd46f2d42e8bab1cf29defe53d00b2bc8b..07e1c75c0df7362ced6cffd125aec4fd553a9243 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -51,6 +51,7 @@ import net.minecraft.world.level.storage.LevelStorageSource;
@ -6403,7 +6404,7 @@ index b323b8329f534b7020dd595b8b15197c29939590..794ad2dbaea2555d4557124e9d942d3e
@Nullable
@Override
public ChunkAccess getChunk(int x, int z, ChunkStatus leastStatus, boolean create) {
@@ -328,6 +597,12 @@ public class ServerChunkCache extends ChunkSource {
@@ -329,6 +598,12 @@ public class ServerChunkCache extends ChunkSource {
}
}
@ -6417,10 +6418,10 @@ index b323b8329f534b7020dd595b8b15197c29939590..794ad2dbaea2555d4557124e9d942d3e
ChunkHolder playerchunk = this.getVisibleChunkIfPresent(pos);
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 3bcbdf37ad9d76ec97ad3f20e7a683e267441ed9..aa164a81d072d9390fa1400120e801979e5d74d0 100644
index ebae711991a3ae35e35c2cffa8d928677c205492..7be97441aed66fa3a21d13ad2211b3e0e08120c0 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -173,6 +173,7 @@ import org.bukkit.event.weather.LightningStrikeEvent;
@@ -176,6 +176,7 @@ import org.bukkit.event.weather.LightningStrikeEvent;
import org.bukkit.event.world.GenericGameEvent;
import org.bukkit.event.world.TimeSkipEvent;
// CraftBukkit end
@ -6428,7 +6429,7 @@ index 3bcbdf37ad9d76ec97ad3f20e7a683e267441ed9..aa164a81d072d9390fa1400120e80197
public class ServerLevel extends Level implements WorldGenLevel {
@@ -224,6 +225,98 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -228,6 +229,98 @@ public class ServerLevel extends Level implements WorldGenLevel {
return convertable.dimensionType;
}
@ -6525,10 +6526,10 @@ index 3bcbdf37ad9d76ec97ad3f20e7a683e267441ed9..aa164a81d072d9390fa1400120e80197
+ // Paper end
+
// Add env and gen to constructor, IWorldDataServer -> WorldDataServer
public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey<Level> resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List<CustomSpawner> list, boolean flag1, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) {
public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey<Level> resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List<CustomSpawner> list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) {
// IRegistryCustom.Dimension iregistrycustom_dimension = minecraftserver.registryAccess(); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index fcc9aaa87b4092e838b6523e15347f01b38b8943..e8f748a7af40637b6aa5e0b032de909316e1161f 100644
index e1a8dc23249c04de66289fbf157d349e7fae606d..931955a7f5b20f04350ec91b3bc95146e8e219a3 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -255,6 +255,8 @@ public class ServerPlayer extends Player {
@ -6540,7 +6541,7 @@ index fcc9aaa87b4092e838b6523e15347f01b38b8943..e8f748a7af40637b6aa5e0b032de9093
public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile) {
super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile);
@@ -320,6 +322,8 @@ public class ServerPlayer extends Player {
@@ -319,6 +321,8 @@ public class ServerPlayer extends Player {
this.setMaxUpStep(1.0F);
this.fudgeSpawnLocation(world);
@ -6593,7 +6594,7 @@ index a63d5ba706a5b8e430aedc045bdeb3a410bd0eef..e96a0ca47e4701ba187555bd92c96834
public BlockState getBlockState(BlockPos pos) {
return this.getChunk(SectionPos.blockToSectionCoord(pos.getX()), SectionPos.blockToSectionCoord(pos.getZ())).getBlockState(pos);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 5ef84d53146de440e4eb14ba33bc4fb9885045b8..9909208363443a216cf689197f103d9e79119bbf 100644
index ce4194ebecceec9a86f5f11873da41e1382646d1..c48318d9d5882dd87e423aecf27c31994af42bdb 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -185,6 +185,7 @@ public abstract class PlayerList {
@ -6603,7 +6604,7 @@ index 5ef84d53146de440e4eb14ba33bc4fb9885045b8..9909208363443a216cf689197f103d9e
+ player.isRealPlayer = true; // Paper
GameProfile gameprofile = player.getGameProfile();
GameProfileCache usercache = this.server.getProfileCache();
Optional<GameProfile> optional = usercache.get(gameprofile.getId());
String s;
diff --git a/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java b/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java
index 337e0a7b3c14e1b1a28744920e0dc0a69e0c5a87..f5829ae484d93b547a5437b85a9621346384a11b 100644
--- a/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java
@ -6623,10 +6624,10 @@ index 337e0a7b3c14e1b1a28744920e0dc0a69e0c5a87..f5829ae484d93b547a5437b85a962134
@Override
public void tell(R runnable) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 3177b3b974b6a98d41bc9e57c75b49bf9584b17b..956c39b6d0c208366508f2064f7b98270eebaedc 100644
index 10089634151125402123f75b756b5443b328362d..cde2df65bf2e33494c9e893d2c944c2e33f5419f 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -319,6 +319,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -323,6 +323,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return this.level.hasChunk((int) Math.floor(this.getX()) >> 4, (int) Math.floor(this.getZ()) >> 4);
}
// CraftBukkit end
@ -6639,10 +6640,10 @@ index 3177b3b974b6a98d41bc9e57c75b49bf9584b17b..956c39b6d0c208366508f2064f7b9827
public Entity(EntityType<?> type, Level world) {
this.id = Entity.ENTITY_COUNTER.incrementAndGet();
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index c0859f1ded9679e59b19313352fa474742653255..592e41884ffda0075ec16e5538d5004efeb80f78 100644
index 34d9f71b9d23ec60494d8567af3cc5966d6a2525..0a070ff26a1e9b2583e95adac0b2dd85b567c8d1 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -256,6 +256,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -259,6 +259,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
public boolean collides = true;
public Set<UUID> collidableExemptions = new HashSet<>();
public boolean bukkitPickUpLoot;
@ -6651,10 +6652,10 @@ index c0859f1ded9679e59b19313352fa474742653255..592e41884ffda0075ec16e5538d5004e
@Override
public float getBukkitYaw() {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 1afd00e39bc5423d8bcce37a2caa4d6401c5b5e7..a290487b153a66a3e936ed1183f3c2ce343e59b1 100644
index 7224ab24ea0e5806665ee1355b3d1ce64123fd29..c2c2c24a593f67abc1eec4a20ced1ec0b5fa8cad 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -272,6 +272,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -275,6 +275,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
return this.target;
}
@ -6663,7 +6664,7 @@ index 1afd00e39bc5423d8bcce37a2caa4d6401c5b5e7..a290487b153a66a3e936ed1183f3c2ce
// CraftBukkit start - fire event
this.setTarget(target, EntityTargetEvent.TargetReason.UNKNOWN, true);
diff --git a/src/main/java/net/minecraft/world/entity/PathfinderMob.java b/src/main/java/net/minecraft/world/entity/PathfinderMob.java
index fbe69ec9cded766c9b76ed4a1bcba6d4f49d6165..6ae3f5cd42dfd424fc3741957995f47ad5ec8941 100644
index 9aa82c1d8743076e7737d5b0d14ea36687e87723..d8ce7ea5fcb2785435ec1f530cb6e7114c01e4b7 100644
--- a/src/main/java/net/minecraft/world/entity/PathfinderMob.java
+++ b/src/main/java/net/minecraft/world/entity/PathfinderMob.java
@@ -18,6 +18,8 @@ public abstract class PathfinderMob extends Mob {
@ -6673,7 +6674,7 @@ index fbe69ec9cded766c9b76ed4a1bcba6d4f49d6165..6ae3f5cd42dfd424fc3741957995f47a
+ public org.bukkit.craftbukkit.entity.CraftCreature getBukkitCreature() { return (org.bukkit.craftbukkit.entity.CraftCreature) super.getBukkitEntity(); } // Paper
+
public float getWalkTargetValue(BlockPos pos) {
return this.getWalkTargetValue(pos, this.level);
return this.getWalkTargetValue(pos, this.level());
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Monster.java b/src/main/java/net/minecraft/world/entity/monster/Monster.java
index a0b5895abc88d297045e05f25bb09527991d43f0..6e0bd0eab0b06a4ac3042496bbb91292544e9f3c 100644
@ -6688,10 +6689,10 @@ index a0b5895abc88d297045e05f25bb09527991d43f0..6e0bd0eab0b06a4ac3042496bbb91292
super(type, world);
this.xpReward = 5;
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index fecfcd21647efa27c2fb82617070eed10574abc5..81f6b580873fdad106515c3fc619e2288d936ca3 100644
index 3aa6636aec62b031e2449db7b1b844d2ee5e9a8d..70e663baefe90c06eca2033f07e7e85c6f27c97f 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -786,6 +786,25 @@ public final class ItemStack {
@@ -788,6 +788,25 @@ public final class ItemStack {
return this.tag != null ? this.tag.getList("Enchantments", 10) : new ListTag();
}
@ -6717,7 +6718,7 @@ index fecfcd21647efa27c2fb82617070eed10574abc5..81f6b580873fdad106515c3fc619e228
public void setTag(@Nullable CompoundTag nbt) {
this.tag = nbt;
if (this.getItem().canBeDepleted()) {
@@ -1176,6 +1195,7 @@ public final class ItemStack {
@@ -1178,6 +1197,7 @@ public final class ItemStack {
// CraftBukkit start
@Deprecated
public void setItem(Item item) {
@ -6831,7 +6832,7 @@ index 3c707d6674b2594b09503b959a31c1f4ad3981e6..db61b6b0158a9bcc0e1d735e34fe3671
public BlockState getBlockState(BlockPos pos) {
return Blocks.AIR.defaultBlockState();
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 40deaa2463876659c0579b5273b5249760e8f8c0..e4ebdf81b7907e1054c356091ebcd35264b015f4 100644
index bacd4d875642cd93c3185f788745dd73a3cfde8a..003e2064f64115d1f5c48ac97e16100d4c10c5d7 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -90,6 +90,7 @@ import org.bukkit.craftbukkit.CraftServer;
@ -6842,7 +6843,7 @@ index 40deaa2463876659c0579b5273b5249760e8f8c0..e4ebdf81b7907e1054c356091ebcd352
import org.bukkit.craftbukkit.block.data.CraftBlockData;
import org.bukkit.craftbukkit.util.CraftSpawnCategory;
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
@@ -293,18 +294,52 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -292,18 +293,52 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
return y < -20000000 || y >= 20000000;
}
@ -6899,7 +6900,7 @@ index 40deaa2463876659c0579b5273b5249760e8f8c0..e4ebdf81b7907e1054c356091ebcd352
ChunkAccess ichunkaccess = this.getChunkSource().getChunk(chunkX, chunkZ, leastStatus, create);
if (ichunkaccess == null && create) {
@@ -315,7 +350,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -314,7 +349,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
@Override
@ -6908,7 +6909,7 @@ index 40deaa2463876659c0579b5273b5249760e8f8c0..e4ebdf81b7907e1054c356091ebcd352
return this.setBlock(pos, state, flags, 512);
}
@@ -559,7 +594,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -552,7 +587,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
if (this.isOutsideBuildHeight(pos)) {
return Blocks.VOID_AIR.defaultBlockState();
} else {
@ -6918,17 +6919,18 @@ index 40deaa2463876659c0579b5273b5249760e8f8c0..e4ebdf81b7907e1054c356091ebcd352
return chunk.getBlockState(pos);
}
diff --git a/src/main/java/net/minecraft/world/level/LevelReader.java b/src/main/java/net/minecraft/world/level/LevelReader.java
index f5dbac0a13d23413dbdc48cfacc247ef25ef9444..7fe1b8856bf916796fa6d2a984f0a07a2331e23b 100644
index e6aabec35f4e27623d1fbbfb285cc78531137014..fe76ec5b10242beb6d6057bd680484fc63b7eac3 100644
--- a/src/main/java/net/minecraft/world/level/LevelReader.java
+++ b/src/main/java/net/minecraft/world/level/LevelReader.java
@@ -24,6 +24,7 @@ import net.minecraft.world.level.levelgen.Heightmap;
import net.minecraft.world.phys.AABB;
public interface LevelReader extends BlockAndTintGetter, CollisionGetter, BiomeManager.NoiseBiomeSource {
+ @Nullable ChunkAccess getChunkIfLoadedImmediately(int x, int z); // Paper - ifLoaded api (we need this since current impl blocks if the chunk is loading)
@@ -26,6 +26,8 @@ public interface LevelReader extends BlockAndTintGetter, CollisionGetter, Signal
@Nullable
ChunkAccess getChunk(int chunkX, int chunkZ, ChunkStatus leastStatus, boolean create);
+ @Nullable ChunkAccess getChunkIfLoadedImmediately(int x, int z); // Paper - ifLoaded api (we need this since current impl blocks if the chunk is loading)
+
/** @deprecated */
@Deprecated
boolean hasChunk(int chunkX, int chunkZ);
diff --git a/src/main/java/net/minecraft/world/level/PathNavigationRegion.java b/src/main/java/net/minecraft/world/level/PathNavigationRegion.java
index 249b3ed33672a9a9529bd14de978722b62019314..0f1025495237aebe30132ace0832aa5718d6f9bb 100644
--- a/src/main/java/net/minecraft/world/level/PathNavigationRegion.java
@ -6982,10 +6984,10 @@ index 249b3ed33672a9a9529bd14de978722b62019314..0f1025495237aebe30132ace0832aa57
public WorldBorder getWorldBorder() {
return this.level.getWorldBorder();
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
index 9d753d0cf25150ea0e5972c657320ac8af864c57..2cb3463f3d77a32ada67a6251707d741d18910ca 100644
index ccb3ceddd8f60f59473cd24d6ca5282f6e51f630..88b1aabec2812252c54d0901ccd1eba0216cb7c3 100644
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
@@ -711,14 +711,14 @@ public abstract class BlockBehaviour implements FeatureElement {
@@ -754,8 +754,8 @@ public abstract class BlockBehaviour implements FeatureElement {
public abstract static class BlockStateBase extends StateHolder<Block, BlockState> {
@ -6994,8 +6996,10 @@ index 9d753d0cf25150ea0e5972c657320ac8af864c57..2cb3463f3d77a32ada67a6251707d741
+ private final int lightEmission; public final int getEmittedLight() { return this.lightEmission; } // Paper - OBFHELPER
+ private final boolean useShapeForLightOcclusion; public final boolean isTransparentOnSomeFaces() { return this.useShapeForLightOcclusion; } // Paper - OBFHELPER
private final boolean isAir;
private final Material material;
private final MaterialColor materialColor;
private final boolean ignitedByLava;
/** @deprecated */
@@ -768,7 +768,7 @@ public abstract class BlockBehaviour implements FeatureElement {
private final MapColor mapColor;
public final float destroySpeed;
private final boolean requiresCorrectToolForDrops;
- private final boolean canOcclude;
@ -7003,8 +7007,8 @@ index 9d753d0cf25150ea0e5972c657320ac8af864c57..2cb3463f3d77a32ada67a6251707d741
private final BlockBehaviour.StatePredicate isRedstoneConductor;
private final BlockBehaviour.StatePredicate isSuffocating;
private final BlockBehaviour.StatePredicate isViewBlocking;
@@ -753,12 +753,20 @@ public abstract class BlockBehaviour implements FeatureElement {
this.spawnParticlesOnBreak = blockbase_info.spawnParticlesOnBreak;
@@ -829,12 +829,20 @@ public abstract class BlockBehaviour implements FeatureElement {
}
}
+ // Paper start
@ -7022,9 +7026,9 @@ index 9d753d0cf25150ea0e5972c657320ac8af864c57..2cb3463f3d77a32ada67a6251707d741
}
+ this.shapeExceedsCube = this.cache == null || this.cache.largeCollisionShape; // Paper - moved from actual method to here
this.legacySolid = this.calculateSolid();
}
@@ -794,8 +802,8 @@ public abstract class BlockBehaviour implements FeatureElement {
@@ -881,8 +889,8 @@ public abstract class BlockBehaviour implements FeatureElement {
return this.getBlock().getOcclusionShape(this.asState(), world, pos);
}
@ -7036,10 +7040,10 @@ index 9d753d0cf25150ea0e5972c657320ac8af864c57..2cb3463f3d77a32ada67a6251707d741
public boolean useShapeForLightOcclusion() {
diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java
index db6a64ae4437b76c39e7ddb02adbea27c95fde78..3fdbb777d4722596cc4df79b2d4d7b9c553580fd 100644
index 532a0cae6db0d830e720a72e9021aa7a8ed0f106..e5e562f75e7d4b6a750f192842940c5e3af81e7d 100644
--- a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java
+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java
@@ -58,7 +58,7 @@ public abstract class ChunkAccess implements BlockGetter, BiomeManager.NoiseBiom
@@ -62,7 +62,7 @@ public abstract class ChunkAccess implements BlockGetter, BiomeManager.NoiseBiom
protected final ShortList[] postProcessing;
protected volatile boolean unsaved;
private volatile boolean isLightCorrect;
@ -7048,10 +7052,10 @@ index db6a64ae4437b76c39e7ddb02adbea27c95fde78..3fdbb777d4722596cc4df79b2d4d7b9c
private long inhabitedTime;
/** @deprecated */
@Nullable
@@ -83,7 +83,8 @@ public abstract class ChunkAccess implements BlockGetter, BiomeManager.NoiseBiom
@@ -88,7 +88,8 @@ public abstract class ChunkAccess implements BlockGetter, BiomeManager.NoiseBiom
// CraftBukkit end
public ChunkAccess(ChunkPos pos, UpgradeData upgradeData, LevelHeightAccessor heightLimitView, Registry<Biome> biome, long inhabitedTime, @Nullable LevelChunkSection[] sectionArrayInitializer, @Nullable BlendingData blendingData) {
public ChunkAccess(ChunkPos pos, UpgradeData upgradeData, LevelHeightAccessor heightLimitView, Registry<Biome> biomeRegistry, long inhabitedTime, @Nullable LevelChunkSection[] sectionArray, @Nullable BlendingData blendingData) {
- this.chunkPos = pos;
+ this.locX = pos.x; this.locZ = pos.z; // Paper - reduce need for field lookups
+ this.chunkPos = pos; this.coordinateKey = ChunkPos.asLong(locX, locZ); // Paper - cache long key
@ -7059,18 +7063,10 @@ index db6a64ae4437b76c39e7ddb02adbea27c95fde78..3fdbb777d4722596cc4df79b2d4d7b9c
this.levelHeightAccessor = heightLimitView;
this.sections = new LevelChunkSection[heightLimitView.getSectionsCount()];
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
index 876d52861880d405bfc718a38113cd2bdfb1d447..bedafac1c29f4b2a820822b01814b871f88528d4 100644
index 36c3a06a94177ec21cfc5c513d16f7168fe2fe2c..5aa89166e854136f366eb36ff02a37ae9ba77ab1 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -25,6 +25,7 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.protocol.game.ClientboundLevelChunkPacketData;
import net.minecraft.server.level.ChunkHolder;
+import net.minecraft.server.level.ServerChunkCache;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.util.profiling.ProfilerFiller;
import net.minecraft.world.entity.Entity;
@@ -117,6 +118,109 @@ public class LevelChunk extends ChunkAccess {
@@ -114,6 +114,109 @@ public class LevelChunk extends ChunkAccess {
public boolean needsDecoration;
// CraftBukkit end
@ -7180,7 +7176,7 @@ index 876d52861880d405bfc718a38113cd2bdfb1d447..bedafac1c29f4b2a820822b01814b871
public LevelChunk(ServerLevel world, ProtoChunk protoChunk, @Nullable LevelChunk.PostLoadProcessor entityLoader) {
this(world, protoChunk.getPos(), protoChunk.getUpgradeData(), protoChunk.unpackBlockTicks(), protoChunk.unpackFluidTicks(), protoChunk.getInhabitedTime(), protoChunk.getSections(), entityLoader, protoChunk.getBlendingData());
Iterator iterator = protoChunk.getBlockEntities().values().iterator();
@@ -226,6 +330,18 @@ public class LevelChunk extends ChunkAccess {
@@ -224,6 +327,18 @@ public class LevelChunk extends ChunkAccess {
}
}
@ -7199,7 +7195,7 @@ index 876d52861880d405bfc718a38113cd2bdfb1d447..bedafac1c29f4b2a820822b01814b871
@Override
public FluidState getFluidState(BlockPos pos) {
return this.getFluidState(pos.getX(), pos.getY(), pos.getZ());
@@ -347,6 +463,7 @@ public class LevelChunk extends ChunkAccess {
@@ -355,6 +470,7 @@ public class LevelChunk extends ChunkAccess {
return this.getBlockEntity(pos, LevelChunk.EntityCreationType.CHECK);
}
@ -7207,14 +7203,14 @@ index 876d52861880d405bfc718a38113cd2bdfb1d447..bedafac1c29f4b2a820822b01814b871
@Nullable
public BlockEntity getBlockEntity(BlockPos pos, LevelChunk.EntityCreationType creationType) {
// CraftBukkit start
@@ -528,7 +645,25 @@ public class LevelChunk extends ChunkAccess {
@@ -537,7 +653,25 @@ public class LevelChunk extends ChunkAccess {
// CraftBukkit start
public void loadCallback() {
+ // Paper start - neighbour cache
+ int chunkX = this.chunkPos.x;
+ int chunkZ = this.chunkPos.z;
+ ServerChunkCache chunkProvider = this.level.getChunkSource();
+ net.minecraft.server.level.ServerChunkCache chunkProvider = this.level.getChunkSource();
+ for (int dx = -NEIGHBOUR_CACHE_RADIUS; dx <= NEIGHBOUR_CACHE_RADIUS; ++dx) {
+ for (int dz = -NEIGHBOUR_CACHE_RADIUS; dz <= NEIGHBOUR_CACHE_RADIUS; ++dz) {
+ LevelChunk neighbour = chunkProvider.getChunkAtIfLoadedMainThreadNoCache(chunkX + dx, chunkZ + dz);
@ -7233,7 +7229,7 @@ index 876d52861880d405bfc718a38113cd2bdfb1d447..bedafac1c29f4b2a820822b01814b871
if (server != null) {
/*
* If it's a new world, the first few chunks are generated inside
@@ -569,6 +704,22 @@ public class LevelChunk extends ChunkAccess {
@@ -578,6 +712,22 @@ public class LevelChunk extends ChunkAccess {
server.getPluginManager().callEvent(unloadEvent);
// note: saving can be prevented, but not forced if no saving is actually required
this.mustNotSave = !unloadEvent.isSaveChunk();
@ -7241,7 +7237,7 @@ index 876d52861880d405bfc718a38113cd2bdfb1d447..bedafac1c29f4b2a820822b01814b871
+ // Paper start - neighbour cache
+ int chunkX = this.chunkPos.x;
+ int chunkZ = this.chunkPos.z;
+ ServerChunkCache chunkProvider = this.level.getChunkSource();
+ net.minecraft.server.level.ServerChunkCache chunkProvider = this.level.getChunkSource();
+ for (int dx = -NEIGHBOUR_CACHE_RADIUS; dx <= NEIGHBOUR_CACHE_RADIUS; ++dx) {
+ for (int dz = -NEIGHBOUR_CACHE_RADIUS; dz <= NEIGHBOUR_CACHE_RADIUS; ++dz) {
+ LevelChunk neighbour = chunkProvider.getChunkAtIfLoadedMainThreadNoCache(chunkX + dx, chunkZ + dz);
@ -7257,10 +7253,10 @@ index 876d52861880d405bfc718a38113cd2bdfb1d447..bedafac1c29f4b2a820822b01814b871
@Override
diff --git a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java
index cb4e43177a735442fa2adda8640263bca8cdcb64..92a64c49b1c7227a5b34488ea15d3d8adb0f9c80 100644
index 51a0ddcee9a9cb1040fda643a6442d2e2e15b8a0..38ec21faaa16df5485a81a581506700a5ab0a440 100644
--- a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java
@@ -74,6 +74,18 @@ public class ProtoChunk extends ChunkAccess {
@@ -72,6 +72,18 @@ public class ProtoChunk extends ChunkAccess {
return new ChunkAccess.TicksToSave(this.blockTicks, this.fluidTicks);
}
@ -7280,7 +7276,7 @@ index cb4e43177a735442fa2adda8640263bca8cdcb64..92a64c49b1c7227a5b34488ea15d3d8a
public BlockState getBlockState(BlockPos pos) {
int i = pos.getY();
diff --git a/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java b/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java
index f66369ddaeab5c5ac643c0979dac3ed21337ff71..038abf2ac104ceecaab11b10d466ea69ec86623e 100644
index 25156be63f91a1c41ef41154f675d04eb97459a8..ace46eec77b30aee6024e19fec9e50f363da162a 100644
--- a/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java
+++ b/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java
@@ -90,6 +90,18 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
@ -7303,7 +7299,7 @@ index f66369ddaeab5c5ac643c0979dac3ed21337ff71..038abf2ac104ceecaab11b10d466ea69
return false;
} else {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index fa2872042a6ee6b5e865c50b3f8eabab3e7d6a46..e75f3d6f0c14f49cb828e919e12d0f69c898d46f 100644
index e729db7818024842925dcf28cca063098a393984..c8a035d396a56e3f4c437c5524e8e67a946b1674 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -243,8 +243,8 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@ -7360,7 +7356,7 @@ index fa2872042a6ee6b5e865c50b3f8eabab3e7d6a46..e75f3d6f0c14f49cb828e919e12d0f69
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index a3d5c050ad73697573970e3a4db72845671de9c8..cf9bbc1334a151dfd96be91e6f2cf3cb9afd9384 100644
index 2c824ead41389bc7d2085536ecb8d0d2b6515ddb..6807507017bbb171657ba230223f281b083da28a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1182,4 +1182,37 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@ -7624,7 +7620,7 @@ index 0000000000000000000000000000000000000000..909b2c98e7a9117d2f737245e4661792
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index 8d8f76feea13c2daeef310a572dec8f75f0f6103..3c41b9d3d7bdb0b2657eeb337499dfcca5ec4068 100644
index 141f7c287252ae319e88d8c279e5661524baa1bf..381cfd86fc1158dc9a7c1e76c3ada962b0964373 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -104,8 +104,17 @@ public final class CraftMagicNumbers implements UnsafeValues {

Some files were not shown because too many files have changed in this diff Show More