mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-19 15:09:25 +00:00
Update Leaf 1.21.7
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
name: Build Leaf 1.21.6
|
||||
name: Build Leaf 1.21.7
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "ver/1.21.6" ]
|
||||
branches: [ "ver/1.21.7" ]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
@@ -13,12 +13,12 @@ jobs:
|
||||
GRADLE_MEMORY: "-Xmx4g -XX:MaxMetaspaceSize=2g"
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.2.2
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Gradle Cache
|
||||
uses: useblacksmith/cache@v5.0.2
|
||||
uses: useblacksmith/cache@v5
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches/modules-2
|
||||
@@ -40,7 +40,7 @@ jobs:
|
||||
find ~/.gradle/caches -name "*.lock" -type f -delete || echo "No lock files found"
|
||||
|
||||
- name: Setup java
|
||||
uses: useblacksmith/setup-java@v5.0.1
|
||||
uses: useblacksmith/setup-java@v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: '21'
|
||||
@@ -91,17 +91,17 @@ jobs:
|
||||
BUILD_NUMBER: ${{ env.BUILD_NUMBER }}
|
||||
|
||||
- name: Upload Leaf
|
||||
uses: actions/upload-artifact@v4.6.2
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Leaf 1.21.6
|
||||
path: ./leaf-1.21.6-${{ env.BUILD_NUMBER }}.jar
|
||||
name: Leaf 1.21.7
|
||||
path: ./leaf-1.21.7-${{ env.BUILD_NUMBER }}.jar
|
||||
|
||||
- name: Release Leaf
|
||||
uses: softprops/action-gh-release@v2.3.2
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
name: "Leaf 1.21.6"
|
||||
tag_name: "ver-1.21.6"
|
||||
files: "./leaf-1.21.6-${{ env.BUILD_NUMBER }}.jar"
|
||||
name: "Leaf 1.21.7"
|
||||
tag_name: "ver-1.21.7"
|
||||
files: "./leaf-1.21.7-${{ env.BUILD_NUMBER }}.jar"
|
||||
body_path: "./release_notes.md"
|
||||
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
target_commitish: "${{ github.sha }}"
|
||||
@@ -111,21 +111,21 @@ jobs:
|
||||
- name: Calculate SHA-256
|
||||
id: hash
|
||||
run: |
|
||||
FILE_NAME="leaf-1.21.6-${{ env.BUILD_NUMBER }}.jar"
|
||||
FILE_NAME="leaf-1.21.7-${{ env.BUILD_NUMBER }}.jar"
|
||||
HASH=$(sha256sum "$FILE_NAME" | awk '{ print $1 }')
|
||||
echo "sha256=$HASH" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Upload JAR to download API
|
||||
uses: appleboy/scp-action@v1.0.0
|
||||
uses: appleboy/scp-action@v1
|
||||
with:
|
||||
host: ${{ secrets.API_HOST }}
|
||||
username: ${{ secrets.API_USER }}
|
||||
password: ${{ secrets.API_PASS }}
|
||||
source: "./leaf-1.21.6-${{ env.BUILD_NUMBER }}.jar"
|
||||
source: "./leaf-1.21.7-${{ env.BUILD_NUMBER }}.jar"
|
||||
target: "~/api/uploads/"
|
||||
|
||||
- name: Insert build to download API
|
||||
uses: appleboy/ssh-action@v1.2.2
|
||||
uses: appleboy/ssh-action@v1
|
||||
with:
|
||||
host: ${{ secrets.API_HOST }}
|
||||
username: ${{ secrets.API_USER }}
|
||||
@@ -141,11 +141,11 @@ jobs:
|
||||
node insertBuild.js \
|
||||
--projectName leaf \
|
||||
--projectFriendlyName "Leaf" \
|
||||
--version 1.21.6 \
|
||||
--versionGroupName 1.21.6 \
|
||||
--versionName 1.21.6 \
|
||||
--version 1.21.7 \
|
||||
--versionGroupName 1.21.7 \
|
||||
--versionName 1.21.7 \
|
||||
--build-number ${{ env.BUILD_NUMBER }} \
|
||||
--repositoryPath "$REPO_DIR" \
|
||||
--storagePath /root/api/storage \
|
||||
--download "primary:/root/api/uploads/leaf-1.21.6-${{ env.BUILD_NUMBER }}.jar:${{ steps.hash.outputs.sha256 }}" \
|
||||
--download "primary:/root/api/uploads/leaf-1.21.7-${{ env.BUILD_NUMBER }}.jar:${{ steps.hash.outputs.sha256 }}" \
|
||||
--buildChannel default
|
||||
12
.github/workflows/build-pr.yml
vendored
12
.github/workflows/build-pr.yml
vendored
@@ -2,7 +2,7 @@ name: Build Pull Request
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [ "ver/1.21.6" ]
|
||||
branches: [ "ver/1.21.7" ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -12,7 +12,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@main
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup java
|
||||
uses: useblacksmith/setup-java@v5
|
||||
@@ -34,9 +34,9 @@ jobs:
|
||||
|
||||
- name: Rename Paperclip JARs
|
||||
run: |
|
||||
mv leaf-server/build/libs/leaf-paperclip-1.21.6-R0.1-SNAPSHOT-mojmap.jar ./leaf-1.21.6.jar
|
||||
mv leaf-server/build/libs/leaf-paperclip-1.21.7-R0.1-SNAPSHOT-mojmap.jar ./leaf-1.21.7.jar
|
||||
- name: Upload Leaf as build artifact
|
||||
uses: actions/upload-artifact@main
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Leaf 1.21.6
|
||||
path: ./leaf-1.21.6.jar
|
||||
name: Leaf 1.21.7
|
||||
path: ./leaf-1.21.7.jar
|
||||
|
||||
7
.github/workflows/publish-api.yml
vendored
7
.github/workflows/publish-api.yml
vendored
@@ -1,7 +1,8 @@
|
||||
name: Publish API
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "ver/1.21.6" ]
|
||||
branches: [ "ver/1.21.7" ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -11,12 +12,12 @@ jobs:
|
||||
GRADLE_MEMORY: "-Xmx4g -XX:MaxMetaspaceSize=2g"
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@main
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up GraalVM JDK 21
|
||||
uses: graalvm/setup-graalvm@main
|
||||
uses: graalvm/setup-graalvm@v1
|
||||
with:
|
||||
java-version: 21
|
||||
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div align="center">
|
||||
|
||||
[](https://www.leafmc.one/download)⠀
|
||||
[](https://github.com/Winds-Studio/Leaf/actions)⠀
|
||||
[](https://github.com/Winds-Studio/Leaf/actions)⠀
|
||||
[](https://discord.gg/gfgAwdSEuM)
|
||||
[](https://www.leafmc.one/docs)
|
||||
|
||||
@@ -65,7 +65,7 @@ Building a Paperclip JAR for distribution:
|
||||
<dependency>
|
||||
<groupId>cn.dreeam.leaf</groupId>
|
||||
<artifactId>leaf-api</artifactId>
|
||||
<version>1.21.6-R0.1-SNAPSHOT</version>
|
||||
<version>1.21.7-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
```
|
||||
@@ -78,7 +78,7 @@ repositories {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("cn.dreeam.leaf:leaf-api:1.21.6-R0.1-SNAPSHOT")
|
||||
compileOnly("cn.dreeam.leaf:leaf-api:1.21.7-R0.1-SNAPSHOT")
|
||||
}
|
||||
|
||||
java {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
group=cn.dreeam.leaf
|
||||
mcVersion=1.21.6
|
||||
version=1.21.6-R0.1-SNAPSHOT
|
||||
mcVersion=1.21.7
|
||||
version=1.21.7-R0.1-SNAPSHOT
|
||||
|
||||
paperCommit=4d854e66b80dad9898d71a0f0b1f83cd39b97119
|
||||
paperCommit=51d28af8fa2c60464e2f5c84810c1744be164f00
|
||||
|
||||
org.gradle.configuration-cache=true
|
||||
org.gradle.caching=true
|
||||
|
||||
@@ -110,7 +110,7 @@ index 0000000000000000000000000000000000000000..00b16e4aacba50996b81fac81c3f78b6
|
||||
+
|
||||
+}
|
||||
diff --git a/src/main/java/org/bukkit/map/MapPalette.java b/src/main/java/org/bukkit/map/MapPalette.java
|
||||
index fd6f3bce50a66004687b08fd80568543f814747a..2d6d7bc800a7c2c0f29b2d7f2512f2d27aaa9439 100644
|
||||
index 2b9e4aa8cf35e7106e510e547954ee7e1bcf3d81..794ae24eee9a20c6db4690b527f5e005d5ca3f00 100644
|
||||
--- a/src/main/java/org/bukkit/map/MapPalette.java
|
||||
+++ b/src/main/java/org/bukkit/map/MapPalette.java
|
||||
@@ -35,7 +35,7 @@ public final class MapPalette {
|
||||
@@ -120,7 +120,7 @@ index fd6f3bce50a66004687b08fd80568543f814747a..2d6d7bc800a7c2c0f29b2d7f2512f2d2
|
||||
- static final Color[] colors = {
|
||||
+ public static final Color[] colors = { // Gale - Pufferfish - vectorized map color conversion - package -> public
|
||||
// Start generate - MapPalette#colors
|
||||
// @GeneratedFrom 1.21.6
|
||||
// @GeneratedFrom 1.21.7
|
||||
new Color(0x00000000, true),
|
||||
@@ -395,9 +395,15 @@ public final class MapPalette {
|
||||
temp.getRGB(0, 0, temp.getWidth(), temp.getHeight(), pixels, 0, temp.getWidth());
|
||||
|
||||
@@ -37,10 +37,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index d34419693fc78b3f7e8f6bbf115f17f29e5e3377..c44453789834c544b0e78b52bb9b09ffbd5958fb 100644
|
||||
index 3584ca0a89f59e391ab6d5be8f2274a6801d025f..cc663ca87a6f64ea891984c72554796f25bb308f 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -2129,6 +2129,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
@@ -2128,6 +2128,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
boolean listPlayer(Player other);
|
||||
// Paper end
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur API Changes
|
||||
Original license: MIT
|
||||
Original project: https://github.com/PurpurMC/Purpur
|
||||
|
||||
Commit: a112b6aca718e4500a6d48ca9d7158faf0f4adf9
|
||||
Commit: 591baf2648d0f75ffecc52f1d169348af35246dd
|
||||
|
||||
Patches listed below are removed in this patch, They exists in Gale or Leaf:
|
||||
* "co/aikar/timings/TimedEventExecutor.java.patch"
|
||||
@@ -21,7 +21,7 @@ Patches listed below are removed in this patch, They exists in Gale or Leaf:
|
||||
* "org/spigotmc/CustomTimingsHandler.java.patch"
|
||||
|
||||
diff --git a/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
|
||||
index e4729256f444168dc8cb7121f66cae0df054692b..0db0e11f4e18a280f699004dc660ce211b7f895f 100644
|
||||
index b7fae62ca1807031c62148505ae54c0fb7b87780..3b6580c3679e9c325dd8deb302dbfe6a062bd291 100644
|
||||
--- a/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
|
||||
+++ b/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
|
||||
@@ -446,6 +446,26 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||
@@ -290,10 +290,10 @@ index 918a045165cdcde264bc24082b7afebb407271de..f283bcabff7fe6eede6cf4344537e430
|
||||
+ // Purpur end - ChatColor conveniences
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
|
||||
index ac8d14010940d55e2d885e75ce6ff436c46e2d69..8f45823ea89c8208374115f8ed9c5a535a64c017 100644
|
||||
index 899c288e12b423b9f8fe84e113fd4d996a98de94..7f488cc432ded1ec0e99c65bea5fd9897c8efbb4 100644
|
||||
--- a/src/main/java/org/bukkit/Material.java
|
||||
+++ b/src/main/java/org/bukkit/Material.java
|
||||
@@ -3636,4 +3636,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
|
||||
@@ -3633,4 +3633,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
|
||||
return this.asItemType().getDefaultDataTypes();
|
||||
}
|
||||
// Paper end - data component API
|
||||
@@ -700,10 +700,10 @@ index 739911cda33b373f99df627a3a378b37d7d461aa..58e16c12b06fa11d30b67f5038844ff9
|
||||
* Add an entity to the block.
|
||||
*
|
||||
diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java
|
||||
index 4acda947b7d69ab4133b4cc94e76d945e4d148d5..613a0bad5c07cf14098218652eba1f4deaf77c6d 100644
|
||||
index ad1330d87223dfcf3c9da40aa5ece8c21141f0d6..e3f0605d375dcbb43ae40dac48acdeb2bd458e54 100644
|
||||
--- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
|
||||
+++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java
|
||||
@@ -146,6 +146,19 @@ public class SimpleCommandMap implements CommandMap {
|
||||
@@ -148,6 +148,19 @@ public class SimpleCommandMap implements CommandMap {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -723,7 +723,7 @@ index 4acda947b7d69ab4133b4cc94e76d945e4d148d5..613a0bad5c07cf14098218652eba1f4d
|
||||
// Paper start - Plugins do weird things to workaround normal registration
|
||||
if (target.timings == null) {
|
||||
target.timings = co.aikar.timings.TimingsManager.getCommandTiming(null, target);
|
||||
@@ -155,7 +168,7 @@ public class SimpleCommandMap implements CommandMap {
|
||||
@@ -157,7 +170,7 @@ public class SimpleCommandMap implements CommandMap {
|
||||
try {
|
||||
try (co.aikar.timings.Timing ignored = target.timings.startTiming()) { // Paper - use try with resources
|
||||
// Note: we don't return the result of target.execute as thats success / failure, we return handled (true) or not handled (false)
|
||||
@@ -1008,13 +1008,13 @@ index bc84b892cae5fe7019a3ad481e9da79956efa1fe..48eb5b00c460cccde29d327cef1d63fc
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index c44453789834c544b0e78b52bb9b09ffbd5958fb..d4082cd6dae07958ace3b9e9769ccb7da4c2a828 100644
|
||||
index cc663ca87a6f64ea891984c72554796f25bb308f..747e943d98a385346b79897a5261d41cfc9572df 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -3935,4 +3935,123 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
* @param score New death screen score of player
|
||||
@@ -3942,4 +3942,123 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
*/
|
||||
void setDeathScreenScore(int score);
|
||||
@ApiStatus.Experimental
|
||||
PlayerGameConnection getConnection();
|
||||
+
|
||||
+ // Purpur start
|
||||
+ /**
|
||||
@@ -1161,7 +1161,7 @@ index 7fbfdb07585c7b28acea1f0c1f58ada0cc744441..21fcca092e2e31baa5ece0de9e44e3fa
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/entity/Villager.java b/src/main/java/org/bukkit/entity/Villager.java
|
||||
index 1be07639143cd80bd4fb304d6f3bbced58887617..120159852cae3b1a71c6c7ce949cadb386023095 100644
|
||||
index 4048add2433ebe39d3df995296daaff4bfadce47..8da18f023f6b18f6be58e08f37c2d873bc0c97d2 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Villager.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Villager.java
|
||||
@@ -408,4 +408,13 @@ public interface Villager extends AbstractVillager {
|
||||
@@ -1204,7 +1204,7 @@ index 11ae1b3ad8c215f9245945d223c52f4a62ac47d9..7f23eb5a60ff08fb31e8ba3731a43bd7
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/entity/Wolf.java b/src/main/java/org/bukkit/entity/Wolf.java
|
||||
index d0a64457e4bf40f2a78ffe90c2d402adc154e327..ea51840e4f40733a48ca34f7a8fcf17dc963d659 100644
|
||||
index 98ed584f801a35253a9a5a2af3c73dbbc49bcb06..8708ab27e38e3906b13d103ad45224c89e239117 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Wolf.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Wolf.java
|
||||
@@ -163,4 +163,20 @@ public interface Wolf extends Tameable, Sittable, io.papermc.paper.entity.Collar
|
||||
@@ -1260,10 +1260,10 @@ index 22e14ba522510d659c191d72536cde895458d9ed..d45d781975a6026022712a217c154e31
|
||||
* When a player gets bad omen after killing a patrol captain.
|
||||
*
|
||||
diff --git a/src/main/java/org/bukkit/event/inventory/InventoryType.java b/src/main/java/org/bukkit/event/inventory/InventoryType.java
|
||||
index 81118a91c2e22e02a1f774d1cc4d3e97064087ce..6640df827e354cc32cea5fc71b9e464443202708 100644
|
||||
index 54ff294e64abd692c0f64ba2db7341c9c71436d0..49e458e453486dcf48d1ab920da176723d7ef3f4 100644
|
||||
--- a/src/main/java/org/bukkit/event/inventory/InventoryType.java
|
||||
+++ b/src/main/java/org/bukkit/event/inventory/InventoryType.java
|
||||
@@ -164,7 +164,7 @@ public enum InventoryType {
|
||||
@@ -166,7 +166,7 @@ public enum InventoryType {
|
||||
SMITHING_NEW(4, "Upgrade Gear", MenuType.SMITHING),
|
||||
;
|
||||
|
||||
|
||||
@@ -2892,18 +2892,18 @@ index 59fada9b1eb78238d280c6bbb711f52facba52c6..eb4d78c6111a530d015a0b91d14c40ad
|
||||
return i >= j && i <= k;
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java
|
||||
index 613a0bad5c07cf14098218652eba1f4deaf77c6d..25a0414cc9482925ad0426dde57e65012d62e637 100644
|
||||
index e3f0605d375dcbb43ae40dac48acdeb2bd458e54..83e7175927e8adb90208bebbd7ddc37cb186d1dc 100644
|
||||
--- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
|
||||
+++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java
|
||||
@@ -32,7 +32,6 @@ public class SimpleCommandMap implements CommandMap {
|
||||
|
||||
private void setDefaultCommands() {
|
||||
register("bukkit", new ReloadCommand("reload"));
|
||||
@@ -34,7 +34,6 @@ public class SimpleCommandMap implements CommandMap {
|
||||
final ReloadCommand reload = new ReloadCommand("reload");
|
||||
this.knownCommands.put("bukkit:reload", reload);
|
||||
this.knownCommands.put("bukkit:rl", reload);
|
||||
- register("bukkit", new co.aikar.timings.TimingsCommand("timings"));
|
||||
}
|
||||
|
||||
public void setFallbackCommands() {
|
||||
@@ -64,7 +63,6 @@ public class SimpleCommandMap implements CommandMap {
|
||||
@@ -66,7 +65,6 @@ public class SimpleCommandMap implements CommandMap {
|
||||
*/
|
||||
@Override
|
||||
public boolean register(@NotNull String label, @NotNull String fallbackPrefix, @NotNull Command command) {
|
||||
@@ -2911,7 +2911,7 @@ index 613a0bad5c07cf14098218652eba1f4deaf77c6d..25a0414cc9482925ad0426dde57e6501
|
||||
label = label.toLowerCase(Locale.ROOT).trim();
|
||||
fallbackPrefix = fallbackPrefix.toLowerCase(Locale.ROOT).trim();
|
||||
boolean registered = register(label, command, false, fallbackPrefix);
|
||||
@@ -159,23 +157,13 @@ public class SimpleCommandMap implements CommandMap {
|
||||
@@ -161,23 +159,13 @@ public class SimpleCommandMap implements CommandMap {
|
||||
parsedArgs = event.getArgs();
|
||||
// Purpur end - ExecuteCommandEvent
|
||||
|
||||
|
||||
@@ -7,10 +7,10 @@ Original license: MIT
|
||||
Original project: https://github.com/KeYiMC/KeYi
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index d4082cd6dae07958ace3b9e9769ccb7da4c2a828..d17f7881e55d61c2137f29d0b903016958b05b5d 100644
|
||||
index 747e943d98a385346b79897a5261d41cfc9572df..66fc9a061d0d5f030ecf8df94acf7357a4cf9eaa 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -4054,4 +4054,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
@@ -4061,4 +4061,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
sendDeathScreen(message);
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -9,10 +9,10 @@ Original project: https://github.com/Cryptite/Slice
|
||||
Co-authored-by: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com>
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index d17f7881e55d61c2137f29d0b903016958b05b5d..09f70aa4d206a1b7fc5f3274f34c6885a9e2d60d 100644
|
||||
index 66fc9a061d0d5f030ecf8df94acf7357a4cf9eaa..9ee5ef2ea93fdf91abf8c312ec2a39b36d096152 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -3716,6 +3716,33 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
@@ -3715,6 +3715,33 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
String getClientBrandName();
|
||||
// Paper end
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
+val leafMavenPublicUrl = "https://maven.nostal.ink/repository/maven-snapshots/" // Leaf - project setup - Add publish repo
|
||||
|
||||
dependencies {
|
||||
mache("io.papermc:mache:1.21.6+build.1")
|
||||
mache("io.papermc:mache:1.21.7+build.1")
|
||||
- paperclip("io.papermc:paperclip:3.0.3")
|
||||
+ paperclip("cn.dreeam:quantumleaper:1.0.0-SNAPSHOT") // Leaf - project setup - Use own paperclip fork
|
||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
|
||||
@@ -32,7 +32,7 @@
|
||||
+
|
||||
spigot {
|
||||
enabled = true
|
||||
buildDataRef = "281ac0de7a76d808753ede97d11b034bc801b63d"
|
||||
buildDataRef = "436eac9815c211be1a2a6ca0702615f995e81c44"
|
||||
@@ -49,6 +_,7 @@
|
||||
libraryRepositories.addAll(
|
||||
"https://repo.maven.apache.org/maven2/",
|
||||
|
||||
@@ -1079,7 +1079,7 @@ index b4c983216cd839d793a09e327bb2f15ab90cbff8..1413511500ce8ae25cc4af1d54fc33c8
|
||||
for (Entity entity : passengerEntity.getPassengers()) {
|
||||
this.tickPassenger(passengerEntity, entity, isActive); // Paper - EAR 2
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index b1fba7be059247bc4ba4e652f730e026e837b608..5a4b6005de28f62c98ac8172890689d3150fd4da 100644
|
||||
index 21ae237a94232090029539652310f7d1e4aba381..4132ebc316af92aedd3b5f21d291e7d57560e985 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -106,8 +106,6 @@ import net.minecraft.util.HashOps;
|
||||
@@ -1091,7 +1091,7 @@ index b1fba7be059247bc4ba4e652f730e026e837b608..5a4b6005de28f62c98ac8172890689d3
|
||||
import net.minecraft.world.Container;
|
||||
import net.minecraft.world.Difficulty;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
@@ -1471,14 +1469,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1405,14 +1403,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
this.unsetRemoved();
|
||||
*/
|
||||
// CraftBukkit end
|
||||
@@ -1106,7 +1106,7 @@ index b1fba7be059247bc4ba4e652f730e026e837b608..5a4b6005de28f62c98ac8172890689d3
|
||||
// CraftBukkit start
|
||||
this.isChangingDimension = true; // CraftBukkit - Set teleport invulnerability only if player changing worlds
|
||||
LevelData worlddata = level.getLevelData();
|
||||
@@ -1495,7 +1489,6 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1429,7 +1423,6 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
this.connection.internalTeleport(PositionMoveRotation.of(teleportTransition), teleportTransition.relatives()); // CraftBukkit - use internal teleport without event
|
||||
this.connection.resetPosition();
|
||||
level.addDuringTeleport(this);
|
||||
@@ -1115,7 +1115,7 @@ index b1fba7be059247bc4ba4e652f730e026e837b608..5a4b6005de28f62c98ac8172890689d3
|
||||
this.stopUsingItem();
|
||||
this.connection.send(new ClientboundPlayerAbilitiesPacket(this.getAbilities()));
|
||||
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
index 43f70a5561d6cc62aaeba6d1e39598ecb382e369..ccbf60f546974692c2c840f4bce87e2c95d1866c 100644
|
||||
index 16962ccab91d0941e428a2e53aa37e9ca975f62f..911ce7fcdb7b60880e5502b1a6c9f5bd07c04fd1 100644
|
||||
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
@@ -26,7 +26,6 @@ import net.minecraft.network.protocol.cookie.ServerboundCookieResponsePacket;
|
||||
@@ -1125,8 +1125,8 @@ index 43f70a5561d6cc62aaeba6d1e39598ecb382e369..ccbf60f546974692c2c840f4bce87e2c
|
||||
-import net.minecraft.util.profiling.Profiler;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
public abstract class ServerCommonPacketListenerImpl implements ServerCommonPacketListener, org.bukkit.craftbukkit.entity.CraftPlayer.TransferCookieConnection { // CraftBukkit
|
||||
@@ -273,7 +272,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
public abstract class ServerCommonPacketListenerImpl implements ServerCommonPacketListener {
|
||||
@@ -176,7 +175,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
}
|
||||
|
||||
protected void keepConnectionAlive() {
|
||||
@@ -1134,7 +1134,7 @@ index 43f70a5561d6cc62aaeba6d1e39598ecb382e369..ccbf60f546974692c2c840f4bce87e2c
|
||||
long millis = Util.getMillis();
|
||||
// Paper start - improve keepalives
|
||||
if (this.checkIfClosed(millis) && !this.processedDisconnect) {
|
||||
@@ -294,8 +292,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
@@ -197,8 +195,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
// Paper end - improve keepalives
|
||||
}
|
||||
}
|
||||
@@ -1664,10 +1664,10 @@ index c569074403b1d8b443aaa98ba9cf9bbd0e98bd2d..b1aa7294f9479f45fcde77c5ea46db9f
|
||||
this.seen.add(id);
|
||||
} else {
|
||||
diff --git a/net/minecraft/world/entity/animal/HappyGhast.java b/net/minecraft/world/entity/animal/HappyGhast.java
|
||||
index 24fdfda487bf5348c32707022719ec9907debc80..4e74d5b3076f50f9294553b453f5903ef32f1e8a 100644
|
||||
index 272f57aca640e045efca64dd018b221335c667ee..f07dcf7d45b1b717faeae0c4129fb00a22fb7d57 100644
|
||||
--- a/net/minecraft/world/entity/animal/HappyGhast.java
|
||||
+++ b/net/minecraft/world/entity/animal/HappyGhast.java
|
||||
@@ -13,8 +13,6 @@ import net.minecraft.sounds.SoundEvents;
|
||||
@@ -14,8 +14,6 @@ import net.minecraft.sounds.SoundEvents;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.util.Mth;
|
||||
@@ -1676,7 +1676,7 @@ index 24fdfda487bf5348c32707022719ec9907debc80..4e74d5b3076f50f9294553b453f5903e
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.damagesource.DamageSource;
|
||||
@@ -379,13 +377,8 @@ public class HappyGhast extends Animal {
|
||||
@@ -385,13 +383,8 @@ public class HappyGhast extends Animal {
|
||||
@Override
|
||||
protected void customServerAiStep(ServerLevel level) {
|
||||
if (this.isBaby()) {
|
||||
@@ -2077,7 +2077,7 @@ index 4a4cc7f9c95d4f4b6ad4948e3ed3504efbbcef15..dd6666bd8b8df4148a1557627ce2a6dd
|
||||
if ((this.tickCount + this.getId()) % 120 == 0) {
|
||||
applyDarknessAround(level, this.position(), this, 20);
|
||||
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
||||
index 43f16df230f87a43e249a58fc10ef2da517f22ee..532618ae4acd548129006a6c42c62a5b046dbd7e 100644
|
||||
index e1e2bdb35866a8f32a41f6efd24ad77cf916b2e9..6cf2af33d22d3df8374746f5926f3f2d5093431d 100644
|
||||
--- a/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -35,8 +35,6 @@ import net.minecraft.stats.Stats;
|
||||
@@ -2089,7 +2089,7 @@ index 43f16df230f87a43e249a58fc10ef2da517f22ee..532618ae4acd548129006a6c42c62a5b
|
||||
import net.minecraft.world.Difficulty;
|
||||
import net.minecraft.world.DifficultyInstance;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
@@ -295,10 +293,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -294,10 +292,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
}
|
||||
protected void customServerAiStep(ServerLevel level, final boolean inactive) {
|
||||
// Paper end - EAR 2
|
||||
|
||||
@@ -22,10 +22,10 @@ you to easily disable books, should you want to preemptively remove this
|
||||
functionality before additional exploits are found.
|
||||
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index aeb43902a09ef9c1b137964065780be3e87648f4..383652f0bd32fca3551db85fb6ac42a0e326836e 100644
|
||||
index 04c991964364a9bcf87d9f6a8d3ef0a0dd8f1deb..128fd9c5a44f05d3556f280f43151695da0665b8 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -1255,6 +1255,11 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1257,6 +1257,11 @@ public class ServerGamePacketListenerImpl
|
||||
|
||||
@Override
|
||||
public void handleEditBook(ServerboundEditBookPacket packet) {
|
||||
|
||||
@@ -13,22 +13,22 @@ As part of: EmpireCraft (https://github.com/starlis/empirecraft)
|
||||
Licensed under: MIT (https://opensource.org/licenses/MIT)
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index ffae3e45ba88e8b733e77b87a45cc27b9ecf8c19..684a15babe984c84703e2c6af7a461f75959312d 100644
|
||||
index 4132ebc316af92aedd3b5f21d291e7d57560e985..8df0dbadca1dc72ac8d267654414044eb988ee43 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -425,6 +425,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -424,6 +424,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
public boolean sentListPacket = false;
|
||||
public boolean supressTrackerForLogin = false; // Paper - Fire PlayerJoinEvent when Player is actually ready
|
||||
// CraftBukkit end
|
||||
+ public boolean didPlayerJoinEvent = false; // Gale - EMC - do not process chat/commands before player has joined
|
||||
public boolean isRealPlayer; // Paper
|
||||
public @Nullable com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent
|
||||
public @Nullable String clientBrandName = null; // Paper - Brand support
|
||||
public @Nullable org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 383652f0bd32fca3551db85fb6ac42a0e326836e..29466047936ed44f57cb4bcb8f1bff0bdad81827 100644
|
||||
index 128fd9c5a44f05d3556f280f43151695da0665b8..ab0598fffccaf1ea628ab38c68d75399d73d897e 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2433,7 +2433,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2431,7 +2431,7 @@ public class ServerGamePacketListenerImpl
|
||||
this.disconnectAsync(Component.translatable("multiplayer.disconnect.illegal_characters"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_CHARACTERS); // Paper - add proper async disconnect
|
||||
} else if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales
|
||||
this.send(new ClientboundSystemChatPacket(Component.translatable("chat.disabled.options").withStyle(ChatFormatting.RED), false));
|
||||
@@ -38,7 +38,7 @@ index 383652f0bd32fca3551db85fb6ac42a0e326836e..29466047936ed44f57cb4bcb8f1bff0b
|
||||
// CraftBukkit start
|
||||
if (sync) {
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 898d9ab963a6cf1db8edf4657a65335d15f271c4..77dbd115d99d8f8e2c01ea69ca297ced06b19c12 100644
|
||||
index b09c1735acb57b6230225f88e0fc710ad61af119..39b977927a22956634b7c31818df0544814004fc 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -335,6 +335,8 @@ public abstract class PlayerList {
|
||||
|
||||
@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
Gale - https://galemc.org
|
||||
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 29466047936ed44f57cb4bcb8f1bff0bdad81827..767dfc71ad9aafffa01ed27fdeac2c19bbba6f37 100644
|
||||
index ab0598fffccaf1ea628ab38c68d75399d73d897e..5dba2bdd91e5dc775e0727b99aff02c892eff733 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2515,7 +2515,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2513,7 +2513,7 @@ public class ServerGamePacketListenerImpl
|
||||
// CraftBukkit start
|
||||
String rawMessage = message.signedContent();
|
||||
if (rawMessage.isEmpty()) {
|
||||
|
||||
@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
Gale - https://galemc.org
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 8017266123a91e5bd46ae0d39a35cf2e6cbb390f..c5ab58c890c7c55f2ad75560269663d3fd5a6aa3 100644
|
||||
index 39b977927a22956634b7c31818df0544814004fc..d0b12d91686592149a8a3e33677eb2e26e19624e 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1274,7 +1274,7 @@ public abstract class PlayerList {
|
||||
@@ -1258,7 +1258,7 @@ public abstract class PlayerList {
|
||||
public void broadcastChatMessage(PlayerChatMessage message, Predicate<ServerPlayer> shouldFilterMessageTo, @Nullable ServerPlayer sender, ChatType.Bound boundChatType, @Nullable Function<net.kyori.adventure.audience.Audience, Component> unsignedFunction) {
|
||||
// Paper end
|
||||
boolean flag = this.verifyChatTrusted(message);
|
||||
|
||||
@@ -17,10 +17,10 @@ Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
This can help to hide annoying scanning bots from showing up in console.
|
||||
|
||||
diff --git a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
index 7950f4f88d8a83ed5610b7af4e134557d32da3f0..27fa7bbfc64dd103b7cd1c1216482af3719e3dbb 100644
|
||||
index ebf4d4516233c002b33084f1679044b23869d848..5bac1c0ba691e516f2d603583971df7fe7ac212c 100644
|
||||
--- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
@@ -145,6 +145,15 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
@@ -124,6 +124,15 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
|
||||
public void disconnect(Component reason) {
|
||||
try {
|
||||
|
||||
@@ -152,10 +152,10 @@ index a9c2f419200483673f6743ed94af110a8e875e71..617eb1b9d30d499124576c5d7cb51525
|
||||
return ret;
|
||||
}
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 45e4a7356e51e9c50d440782b55d1cbfc4b76f96..f752dceea48ed8264ae4cb60fdf2390f0e5019e1 100644
|
||||
index 8df0dbadca1dc72ac8d267654414044eb988ee43..784a08d0aed30fd0362e408aaa5772003021c0ad 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1166,7 +1166,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1100,7 +1100,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
this.getInventory().getNonEquipmentItems().set(i, net.minecraft.world.item.ItemStack.EMPTY);
|
||||
}
|
||||
}
|
||||
@@ -165,10 +165,10 @@ index 45e4a7356e51e9c50d440782b55d1cbfc4b76f96..f752dceea48ed8264ae4cb60fdf2390f
|
||||
this.getInventory().equipment.set(value, net.minecraft.world.item.ItemStack.EMPTY);
|
||||
}
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index f953fa6adb112bc9da34cfb72045975f87c5f021..a07310aebd8406af27864358e15715fcc7694329 100644
|
||||
index 5dba2bdd91e5dc775e0727b99aff02c892eff733..38376506f8b886ed66ec48b1a78dede2a7cabe99 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2784,7 +2784,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2782,7 +2782,7 @@ public class ServerGamePacketListenerImpl
|
||||
// SPIGOT-7136 - Allays
|
||||
if (target instanceof net.minecraft.world.entity.animal.allay.Allay || target instanceof net.minecraft.world.entity.animal.horse.AbstractHorse) { // Paper - Fix horse armor desync
|
||||
ServerGamePacketListenerImpl.this.send(new net.minecraft.network.protocol.game.ClientboundSetEquipmentPacket(
|
||||
|
||||
@@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 186e0a6e565d29572f5d4771a68e4a9cb2bd45de..91d4a5f7685296e397c1c341813542fd13eaf168 100644
|
||||
index edefdd4be2b3af69c416ad32e2574865fa27da34..537d433dd7c301444b15327104b0c605d5833448 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -113,6 +113,7 @@ public abstract class PlayerList {
|
||||
@@ -64,7 +64,7 @@ index 186e0a6e565d29572f5d4771a68e4a9cb2bd45de..91d4a5f7685296e397c1c341813542fd
|
||||
this.server.getCustomBossEvents().onPlayerDisconnect(player);
|
||||
UUID uuid = player.getUUID();
|
||||
ServerPlayer serverPlayer = this.playersByUUID.get(uuid);
|
||||
@@ -720,6 +723,7 @@ public abstract class PlayerList {
|
||||
@@ -687,6 +690,7 @@ public abstract class PlayerList {
|
||||
player.stopRiding(); // CraftBukkit
|
||||
this.players.remove(player);
|
||||
this.playersByName.remove(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot
|
||||
@@ -72,7 +72,7 @@ index 186e0a6e565d29572f5d4771a68e4a9cb2bd45de..91d4a5f7685296e397c1c341813542fd
|
||||
player.level().removePlayerImmediately(player, reason);
|
||||
// TeleportTransition teleportTransition = player.findRespawnPositionAndUseSpawnBlock(!keepInventory, TeleportTransition.DO_NOTHING);
|
||||
// ServerLevel level = teleportTransition.newLevel();
|
||||
@@ -798,6 +802,7 @@ public abstract class PlayerList {
|
||||
@@ -765,6 +769,7 @@ public abstract class PlayerList {
|
||||
this.players.add(serverPlayer);
|
||||
this.playersByName.put(serverPlayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT), serverPlayer); // Spigot
|
||||
this.playersByUUID.put(serverPlayer.getUUID(), serverPlayer);
|
||||
@@ -80,7 +80,7 @@ index 186e0a6e565d29572f5d4771a68e4a9cb2bd45de..91d4a5f7685296e397c1c341813542fd
|
||||
}
|
||||
// serverPlayer.initInventoryMenu();
|
||||
serverPlayer.setHealth(serverPlayer.getHealth());
|
||||
@@ -900,18 +905,58 @@ public abstract class PlayerList {
|
||||
@@ -867,18 +872,58 @@ public abstract class PlayerList {
|
||||
}
|
||||
|
||||
public void tick() {
|
||||
|
||||
@@ -37,10 +37,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 91d4a5f7685296e397c1c341813542fd13eaf168..8e7c77174750807bc0e925b100ff73a7bedd76e9 100644
|
||||
index 537d433dd7c301444b15327104b0c605d5833448..920ab7be58f9fcbc181690ef7b386b9bacfa5d5f 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -909,10 +909,19 @@ public abstract class PlayerList {
|
||||
@@ -876,10 +876,19 @@ public abstract class PlayerList {
|
||||
ServerPlayer[] sendAllPlayerInfoBucket = this.sendAllPlayerInfoBuckets[this.sendAllPlayerInfoIn];
|
||||
|
||||
if (sendAllPlayerInfoBucket != null) {
|
||||
|
||||
@@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
index ccbf60f546974692c2c840f4bce87e2c95d1866c..ddc89e8960f7dc2f75f0e03ccbe6eda96a0499e2 100644
|
||||
index 911ce7fcdb7b60880e5502b1a6c9f5bd07c04fd1..31091dd52172d447f98497097d8dabdfef720362 100644
|
||||
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
@@ -38,10 +38,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
@@ -51,8 +51,8 @@ index ccbf60f546974692c2c840f4bce87e2c95d1866c..ddc89e8960f7dc2f75f0e03ccbe6eda9
|
||||
private boolean closed = false;
|
||||
+ private it.unimi.dsi.fastutil.longs.LongList keepAlives = new it.unimi.dsi.fastutil.longs.LongArrayList(); // Gale - Purpur - send multiple keep-alive packets
|
||||
private volatile int latency; // Paper - improve keepalives - make volatile
|
||||
private final io.papermc.paper.util.KeepAlive keepAlive; // Paper - improve keepalives
|
||||
private volatile boolean suspendFlushingOnServerThread = false;
|
||||
// CraftBukkit start
|
||||
@@ -50,7 +51,10 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
public boolean processedDisconnect;
|
||||
// CraftBukkit end
|
||||
@@ -63,12 +63,12 @@ index ccbf60f546974692c2c840f4bce87e2c95d1866c..ddc89e8960f7dc2f75f0e03ccbe6eda9
|
||||
+ private static final long KEEPALIVE_LIMIT = KEEPALIVE_LIMIT_IN_SECONDS * 1000;
|
||||
+ // Gale end - Purpur - send multiple keep-alive packets
|
||||
protected static final net.minecraft.resources.ResourceLocation MINECRAFT_BRAND = net.minecraft.resources.ResourceLocation.withDefaultNamespace("brand"); // Paper - Brand support
|
||||
public @Nullable String playerBrand; // Paper
|
||||
|
||||
public ServerCommonPacketListenerImpl(MinecraftServer server, Connection connection, CommonListenerCookie cookie, net.minecraft.server.level.ServerPlayer player) { // CraftBukkit
|
||||
@@ -122,6 +126,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
@@ -93,6 +97,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
// Paper start - improve keepalives
|
||||
long now = System.nanoTime();
|
||||
net.minecraft.server.level.ServerPlayer.PendingKeepAlive pending = this.player.pendingKeepAlives.peek();
|
||||
io.papermc.paper.util.KeepAlive.PendingKeepAlive pending = this.keepAlive.pendingKeepAlives.peek();
|
||||
+ // Gale start - Purpur - send multiple keep-alive packets
|
||||
+ if (org.galemc.gale.configuration.GaleGlobalConfiguration.get().misc.keepalive.sendMultiple) {
|
||||
+ if (this.keepAlivePending && !keepAlives.isEmpty() && keepAlives.contains(packet.getId())) {
|
||||
@@ -82,17 +82,17 @@ index ccbf60f546974692c2c840f4bce87e2c95d1866c..ddc89e8960f7dc2f75f0e03ccbe6eda9
|
||||
+ } else {
|
||||
+ // Gale end - Purpur - send multiple keep-alive packets
|
||||
if (pending != null && pending.challengeId() == packet.getId()) {
|
||||
this.player.pendingKeepAlives.remove(pending);
|
||||
this.keepAlive.pendingKeepAlives.remove(pending);
|
||||
|
||||
@@ -133,6 +149,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
this.latency = this.player.pingCalculator5s.getAvgLatencyMS();
|
||||
@@ -104,6 +120,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
this.latency = this.keepAlive.pingCalculator5s.getAvgLatencyMS();
|
||||
return;
|
||||
}
|
||||
+ } // Gale - Purpur - send multiple keep-alive packets
|
||||
|
||||
for (java.util.Iterator<net.minecraft.server.level.ServerPlayer.PendingKeepAlive> itr = this.player.pendingKeepAlives.iterator(); itr.hasNext();) {
|
||||
net.minecraft.server.level.ServerPlayer.PendingKeepAlive ka = itr.next();
|
||||
@@ -274,6 +291,23 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
for (java.util.Iterator<io.papermc.paper.util.KeepAlive.PendingKeepAlive> itr = this.keepAlive.pendingKeepAlives.iterator(); itr.hasNext();) {
|
||||
io.papermc.paper.util.KeepAlive.PendingKeepAlive ka = itr.next();
|
||||
@@ -177,6 +194,23 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
protected void keepConnectionAlive() {
|
||||
long millis = Util.getMillis();
|
||||
// Paper start - improve keepalives
|
||||
@@ -100,10 +100,10 @@ index ccbf60f546974692c2c840f4bce87e2c95d1866c..ddc89e8960f7dc2f75f0e03ccbe6eda9
|
||||
+ if (org.galemc.gale.configuration.GaleGlobalConfiguration.get().misc.keepalive.sendMultiple) {
|
||||
+ if (this.checkIfClosed(millis) && !this.processedDisconnect) {
|
||||
+ long currTime = System.nanoTime();
|
||||
+ if ((currTime - this.player.lastKeepAliveTx) >= java.util.concurrent.TimeUnit.SECONDS.toNanos(1L)) { // 1 second
|
||||
+ this.player.lastKeepAliveTx = currTime;
|
||||
+ if ((currTime - this.keepAlive.lastKeepAliveTx) >= java.util.concurrent.TimeUnit.SECONDS.toNanos(1L)) { // 1 second
|
||||
+ this.keepAlive.lastKeepAliveTx = currTime;
|
||||
+ if (this.keepAlivePending && !this.processedDisconnect && keepAlives.size() * 1000L >= KEEPALIVE_LIMIT) {
|
||||
+ this.disconnect(ServerCommonPacketListenerImpl.TIMEOUT_DISCONNECTION_MESSAGE, org.bukkit.event.player.PlayerKickEvent.Cause.TIMEOUT);
|
||||
+ this.disconnect(TIMEOUT_DISCONNECTION_MESSAGE, io.papermc.paper.connection.DisconnectionReason.TIMEOUT);
|
||||
+ } else if (this.checkIfClosed(millis)) {
|
||||
+ this.keepAlivePending = true;
|
||||
+ this.keepAlives.add(millis); // currentTime is ID
|
||||
@@ -116,7 +116,7 @@ index ccbf60f546974692c2c840f4bce87e2c95d1866c..ddc89e8960f7dc2f75f0e03ccbe6eda9
|
||||
if (this.checkIfClosed(millis) && !this.processedDisconnect) {
|
||||
long currTime = System.nanoTime();
|
||||
|
||||
@@ -292,6 +326,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
@@ -195,6 +229,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
// Paper end - improve keepalives
|
||||
}
|
||||
}
|
||||
@@ -124,3 +124,10 @@ index ccbf60f546974692c2c840f4bce87e2c95d1866c..ddc89e8960f7dc2f75f0e03ccbe6eda9
|
||||
}
|
||||
|
||||
private boolean checkIfClosed(long time) {
|
||||
@@ -372,4 +407,4 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
protected CommonListenerCookie createCookie(ClientInformation clientInformation) {
|
||||
return new CommonListenerCookie(this.playerProfile(), this.latency, clientInformation, this.transferred, this.playerBrand, this.keepAlive); // Paper
|
||||
}
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
|
||||
@@ -7,17 +7,16 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
Gale - https://galemc.org
|
||||
|
||||
diff --git a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
index 27fa7bbfc64dd103b7cd1c1216482af3719e3dbb..dc225eaa0daf238e091a0cf63a42158a30ecb7f0 100644
|
||||
index 5bac1c0ba691e516f2d603583971df7fe7ac212c..f9fad100d3e5e4b44a5b0f88e288e6fac7a250f7 100644
|
||||
--- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
@@ -126,7 +126,11 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
this.finishLoginAndWaitForClient(this.authenticatedProfile);
|
||||
}
|
||||
|
||||
@@ -105,7 +105,10 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
}
|
||||
public void tickTimeout() {
|
||||
// Paper end - login cookie API
|
||||
- if (this.tick++ == 600) {
|
||||
+ // Gale start - make slow login timeout configurable
|
||||
+ int slowLoginTimeout = org.galemc.gale.configuration.GaleGlobalConfiguration.get().misc.premiumAccountSlowLoginTimeout;
|
||||
+
|
||||
+ if (this.tick++ >= (slowLoginTimeout < 1 ? MAX_TICKS_BEFORE_LOGIN : slowLoginTimeout)) {
|
||||
+ // Gale end - make slow login timeout configurable
|
||||
this.disconnect(Component.translatable("multiplayer.disconnect.slow_login"));
|
||||
|
||||
@@ -13,10 +13,10 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper)
|
||||
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index f752dceea48ed8264ae4cb60fdf2390f0e5019e1..9b715b5848b33dd023feccfa93c08924c92fbe13 100644
|
||||
index 784a08d0aed30fd0362e408aaa5772003021c0ad..bbe123fd18fe97ae93bf562f32af73cdde722f70 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -2181,12 +2181,18 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -2115,12 +2115,18 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
|
||||
@Override
|
||||
public void crit(Entity entityHit) {
|
||||
|
||||
@@ -26,10 +26,10 @@ index 92a820d48057ffe2ef35919341b6cdf605ca939e..b9b1bf351070cd2a744cdb683974fb2a
|
||||
double d1 = center.y - maxRange;
|
||||
double d2 = center.x + maxRange;
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 9b715b5848b33dd023feccfa93c08924c92fbe13..99eaa04bfcd2d37d3e49513e20bb5037119ef84d 100644
|
||||
index bbe123fd18fe97ae93bf562f32af73cdde722f70..feb4f7c70220e9c48a17a815631298bcb8366ded 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -562,7 +562,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -496,7 +496,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
long l1 = l * l;
|
||||
int i = l1 > 2147483647L ? Integer.MAX_VALUE : (int)l1;
|
||||
int coprime = this.getCoprime(i);
|
||||
|
||||
@@ -85,7 +85,7 @@ index ad114ca013e0d09d40755acbe916586868a519ed..3f70fca36f67fa421314ff92d372a971
|
||||
if (!tickRateManager.isEntityFrozen(entity)) {
|
||||
entity.checkDespawn();
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index e457dc20f76d813c32225733af0b29646d501202..57e669eeb2a05805b8ed81311344bc27292608f3 100644
|
||||
index 96341ee17591135d77d78c94814313b66eed4c3d..28e2ad1238651b8adb47b77763b0c8ae8172fe8a 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -364,6 +364,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -98,7 +98,7 @@ index e457dc20f76d813c32225733af0b29646d501202..57e669eeb2a05805b8ed81311344bc27
|
||||
// Paper start - EAR 2
|
||||
public final boolean defaultActivationState;
|
||||
diff --git a/net/minecraft/world/entity/EntityType.java b/net/minecraft/world/entity/EntityType.java
|
||||
index b87c6da5272becfa1159e8352f5be5491824f66f..9dc5a7e9fdb83d98c3554fea064b06f022da4496 100644
|
||||
index 96e1f8f40a0af4350155f192ac2126b523c9f0f5..388689c44cf63ade939e271d490051c9b3fe8034 100644
|
||||
--- a/net/minecraft/world/entity/EntityType.java
|
||||
+++ b/net/minecraft/world/entity/EntityType.java
|
||||
@@ -1085,6 +1085,7 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
|
||||
@@ -299,10 +299,10 @@ index dd6666bd8b8df4148a1557627ce2a6ddab245ed6..6a9d3b749e251d3dac6fda13318bf5a0
|
||||
super.customServerAiStep(level);
|
||||
if ((this.tickCount + this.getId()) % 120 == 0) {
|
||||
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
||||
index 73214ccad93ccd186c149e8ce8913eb0e3fa324a..9b9514362f32ab79816678ce4be25a4a87fe49aa 100644
|
||||
index 6cf2af33d22d3df8374746f5926f3f2d5093431d..f37759161b2a682612c6676cdd0d15908259776c 100644
|
||||
--- a/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -178,6 +178,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -177,6 +177,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
(villager, poiType) -> poiType.is(PoiTypes.MEETING)
|
||||
);
|
||||
|
||||
@@ -311,7 +311,7 @@ index 73214ccad93ccd186c149e8ce8913eb0e3fa324a..9b9514362f32ab79816678ce4be25a4a
|
||||
public Villager(EntityType<? extends Villager> entityType, Level level) {
|
||||
this(entityType, level, VillagerType.PLAINS);
|
||||
}
|
||||
@@ -286,6 +288,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -285,6 +287,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
}
|
||||
// Paper end - EAR 2
|
||||
|
||||
@@ -319,7 +319,7 @@ index 73214ccad93ccd186c149e8ce8913eb0e3fa324a..9b9514362f32ab79816678ce4be25a4a
|
||||
@Override
|
||||
protected void customServerAiStep(ServerLevel level) {
|
||||
// Paper start - EAR 2
|
||||
@@ -293,7 +296,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -292,7 +295,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
}
|
||||
protected void customServerAiStep(ServerLevel level, final boolean inactive) {
|
||||
// Paper end - EAR 2
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Minecraft Changes
|
||||
Original license: MIT
|
||||
Original project: https://github.com/PurpurMC/Purpur
|
||||
|
||||
Commit: a112b6aca718e4500a6d48ca9d7158faf0f4adf9
|
||||
Commit: 591baf2648d0f75ffecc52f1d169348af35246dd
|
||||
|
||||
Patches listed below are removed in this patch, They exists in Gale or Leaf:
|
||||
* "net/minecraft/CrashReport.java.patch"
|
||||
@@ -278,10 +278,10 @@ index 17f33a309ead525975a3090514a6367260f0af09..f4360d9472ba344f2e7afd6d798d313d
|
||||
Commands.literal("export")
|
||||
.then(
|
||||
diff --git a/net/minecraft/network/Connection.java b/net/minecraft/network/Connection.java
|
||||
index 34524dc5a503bebcec99ada0d9560d6f4df48cdf..1014ab2aeb5e496124c99c938538e88d75561cd5 100644
|
||||
index 8bab2c26e10e8495fd39be470bcb02917fe56f40..e72eda830644851656fae3118c513d7bd701be45 100644
|
||||
--- a/net/minecraft/network/Connection.java
|
||||
+++ b/net/minecraft/network/Connection.java
|
||||
@@ -578,11 +578,20 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
@@ -579,11 +579,20 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper - Buffer joins to world
|
||||
private static int joinAttemptsThisTick; // Paper - Buffer joins to world
|
||||
private static int currTick; // Paper - Buffer joins to world
|
||||
@@ -478,7 +478,7 @@ index 9da9ab3b835a8dcc7e1da286be1de88a3f0240fa..4b8c9aaf1d143bc38f52f646e4e73b56
|
||||
|
||||
for (ServerPlayer serverPlayer : players) {
|
||||
diff --git a/net/minecraft/server/commands/GiveCommand.java b/net/minecraft/server/commands/GiveCommand.java
|
||||
index ea9db57a1fe2f11739ceb062ea7cce15776f959a..a919d91eeaaeef0f79190cc5e78e4f8b2fb468dd 100644
|
||||
index adba92a9ebef64561147427d1339f70e2701d93c..cbe614bb66679f9bda3ecb13a034432fbac7317d 100644
|
||||
--- a/net/minecraft/server/commands/GiveCommand.java
|
||||
+++ b/net/minecraft/server/commands/GiveCommand.java
|
||||
@@ -69,6 +69,7 @@ public class GiveCommand {
|
||||
@@ -487,7 +487,7 @@ index ea9db57a1fe2f11739ceb062ea7cce15776f959a..a919d91eeaaeef0f79190cc5e78e4f8b
|
||||
boolean flag = serverPlayer.getInventory().add(itemStack1);
|
||||
+ if (org.purpurmc.purpur.PurpurConfig.disableGiveCommandDrops) continue; // Purpur - add config option for toggling give command dropping
|
||||
if (flag && itemStack1.isEmpty()) {
|
||||
ItemEntity itemEntity = serverPlayer.drop(itemStack, false);
|
||||
ItemEntity itemEntity = serverPlayer.drop(itemStack, false, false, false, null); // Paper - do not fire PlayerDropItemEvent for /give command
|
||||
if (itemEntity != null) {
|
||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index ca1406178cfb1a5a10947872585e2dcf3059b460..87fc8861948b50361ec04c5a23406d3abdec6eac 100644
|
||||
@@ -925,12 +925,12 @@ index 3f70fca36f67fa421314ff92d372a97112a19025..95c128f028c3cce7d0b37821a6e75208
|
||||
}
|
||||
// Paper end - Fix merchant inventory not closing on entity removal
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 99eaa04bfcd2d37d3e49513e20bb5037119ef84d..c6fafc3cb31d0a3dbbeaf8a9493d70de502110cc 100644
|
||||
index feb4f7c70220e9c48a17a815631298bcb8366ded..e217410145f7889ab4141947fc32d9d576a20326 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -430,6 +430,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -428,6 +428,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
public boolean isRealPlayer; // Paper
|
||||
public @Nullable com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent
|
||||
public @Nullable String clientBrandName = null; // Paper - Brand support
|
||||
public @Nullable org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
|
||||
+ public boolean purpurClient = false; // Purpur - Purpur client support
|
||||
+ private boolean tpsBar = false; // Purpur - Implement TPSBar
|
||||
@@ -939,7 +939,7 @@ index 99eaa04bfcd2d37d3e49513e20bb5037119ef84d..c6fafc3cb31d0a3dbbeaf8a9493d70de
|
||||
|
||||
// Paper start - rewrite chunk system
|
||||
private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
|
||||
@@ -627,6 +631,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -561,6 +565,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
this.respawnConfig = input.read("respawn", ServerPlayer.RespawnConfig.CODEC).orElse(null);
|
||||
this.spawnExtraParticlesOnFall = input.getBooleanOr("spawn_extra_particles_on_fall", false);
|
||||
this.raidOmenPosition = input.read("raid_omen_position", BlockPos.CODEC).orElse(null);
|
||||
@@ -950,7 +950,7 @@ index 99eaa04bfcd2d37d3e49513e20bb5037119ef84d..c6fafc3cb31d0a3dbbeaf8a9493d70de
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -644,6 +652,9 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -578,6 +586,9 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
output.storeNullable("raid_omen_position", BlockPos.CODEC, this.raidOmenPosition);
|
||||
this.saveEnderPearls(output);
|
||||
this.getBukkitEntity().setExtraData(output); // CraftBukkit
|
||||
@@ -960,7 +960,7 @@ index 99eaa04bfcd2d37d3e49513e20bb5037119ef84d..c6fafc3cb31d0a3dbbeaf8a9493d70de
|
||||
}
|
||||
|
||||
private void saveParentVehicle(ValueOutput output) {
|
||||
@@ -849,6 +860,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -783,6 +794,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
this.trackEnteredOrExitedLavaOnVehicle();
|
||||
this.updatePlayerAttributes();
|
||||
this.advancements.flushDirty(this, true);
|
||||
@@ -976,7 +976,7 @@ index 99eaa04bfcd2d37d3e49513e20bb5037119ef84d..c6fafc3cb31d0a3dbbeaf8a9493d70de
|
||||
}
|
||||
|
||||
private void updatePlayerAttributes() {
|
||||
@@ -1140,6 +1160,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1074,6 +1094,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
// Paper - moved up to sendClientboundPlayerCombatKillPacket()
|
||||
sendClientboundPlayerCombatKillPacket(event.getShowDeathMessages(), deathScreenMessage); // Paper - Expand PlayerDeathEvent
|
||||
Team team = this.getTeam();
|
||||
@@ -984,7 +984,7 @@ index 99eaa04bfcd2d37d3e49513e20bb5037119ef84d..c6fafc3cb31d0a3dbbeaf8a9493d70de
|
||||
if (team == null || team.getDeathMessageVisibility() == Team.Visibility.ALWAYS) {
|
||||
this.server.getPlayerList().broadcastSystemMessage(deathMessage, false);
|
||||
} else if (team.getDeathMessageVisibility() == Team.Visibility.HIDE_FOR_OTHER_TEAMS) {
|
||||
@@ -1246,6 +1267,18 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1180,6 +1201,18 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
if (this.isInvulnerableTo(level, damageSource)) {
|
||||
return false;
|
||||
} else {
|
||||
@@ -1003,7 +1003,7 @@ index 99eaa04bfcd2d37d3e49513e20bb5037119ef84d..c6fafc3cb31d0a3dbbeaf8a9493d70de
|
||||
Entity entity = damageSource.getEntity();
|
||||
if (!( // Paper - split the if statement. If below statement is false, hurtServer would not have been evaluated. Return false.
|
||||
!(entity instanceof Player player && !this.canHarmPlayer(player))
|
||||
@@ -1486,6 +1519,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1420,6 +1453,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
serverLevel.removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION);
|
||||
this.unsetRemoved();
|
||||
// CraftBukkit end
|
||||
@@ -1011,7 +1011,7 @@ index 99eaa04bfcd2d37d3e49513e20bb5037119ef84d..c6fafc3cb31d0a3dbbeaf8a9493d70de
|
||||
this.setServerLevel(level);
|
||||
this.connection.internalTeleport(PositionMoveRotation.of(teleportTransition), teleportTransition.relatives()); // CraftBukkit - use internal teleport without event
|
||||
this.connection.resetPosition();
|
||||
@@ -1601,7 +1635,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1535,7 +1569,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
new AABB(vec3.x() - 8.0, vec3.y() - 5.0, vec3.z() - 8.0, vec3.x() + 8.0, vec3.y() + 5.0, vec3.z() + 8.0),
|
||||
monster -> monster.isPreventingPlayerRest(this.level(), this)
|
||||
);
|
||||
@@ -1020,7 +1020,7 @@ index 99eaa04bfcd2d37d3e49513e20bb5037119ef84d..c6fafc3cb31d0a3dbbeaf8a9493d70de
|
||||
return Either.left(Player.BedSleepingProblem.NOT_SAFE);
|
||||
}
|
||||
}
|
||||
@@ -1638,7 +1672,19 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1572,7 +1606,19 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
CriteriaTriggers.SLEPT_IN_BED.trigger(this);
|
||||
});
|
||||
if (!this.level().canSleepThroughNights()) {
|
||||
@@ -1041,7 +1041,7 @@ index 99eaa04bfcd2d37d3e49513e20bb5037119ef84d..c6fafc3cb31d0a3dbbeaf8a9493d70de
|
||||
}
|
||||
|
||||
this.level().updateSleepingPlayerList();
|
||||
@@ -1730,6 +1776,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1664,6 +1710,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
|
||||
@Override
|
||||
public void openTextEdit(SignBlockEntity signEntity, boolean isFrontText) {
|
||||
@@ -1049,7 +1049,7 @@ index 99eaa04bfcd2d37d3e49513e20bb5037119ef84d..c6fafc3cb31d0a3dbbeaf8a9493d70de
|
||||
this.connection.send(new ClientboundBlockUpdatePacket(this.level(), signEntity.getBlockPos()));
|
||||
this.connection.send(new ClientboundOpenSignEditorPacket(signEntity.getBlockPos(), isFrontText));
|
||||
}
|
||||
@@ -2039,6 +2086,26 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1973,6 +2020,26 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
this.lastSentExp = -1; // CraftBukkit - Added to reset
|
||||
}
|
||||
|
||||
@@ -1076,7 +1076,7 @@ index 99eaa04bfcd2d37d3e49513e20bb5037119ef84d..c6fafc3cb31d0a3dbbeaf8a9493d70de
|
||||
@Override
|
||||
public void displayClientMessage(Component chatComponent, boolean actionBar) {
|
||||
this.sendSystemMessage(chatComponent, actionBar);
|
||||
@@ -2263,6 +2330,20 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -2197,6 +2264,20 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1097,7 +1097,7 @@ index 99eaa04bfcd2d37d3e49513e20bb5037119ef84d..c6fafc3cb31d0a3dbbeaf8a9493d70de
|
||||
public void sendSystemMessage(Component mesage) {
|
||||
this.sendSystemMessage(mesage, false);
|
||||
}
|
||||
@@ -2401,8 +2482,68 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -2335,8 +2416,68 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
|
||||
public void resetLastActionTime() {
|
||||
this.lastActionTime = Util.getMillis();
|
||||
@@ -1166,7 +1166,7 @@ index 99eaa04bfcd2d37d3e49513e20bb5037119ef84d..c6fafc3cb31d0a3dbbeaf8a9493d70de
|
||||
public ServerStatsCounter getStats() {
|
||||
return this.stats;
|
||||
}
|
||||
@@ -3029,4 +3170,56 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -2963,4 +3104,56 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
return (org.bukkit.craftbukkit.entity.CraftPlayer) super.getBukkitEntity();
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -1272,36 +1272,23 @@ index 6734756d7a51e635a50a47577f9e6b6f8111db51..c4a4f08272b34f72dea4feaaeb66d153
|
||||
+ // Purpur end - Shift right click to use exp for mending
|
||||
}
|
||||
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
index ddc89e8960f7dc2f75f0e03ccbe6eda96a0499e2..8a4c8e2fb86274b5bf95bda510029f4c5077d836 100644
|
||||
index 31091dd52172d447f98497097d8dabdfef720362..eb725c1b6da0c5ef48fa07d79070950f2b45e30e 100644
|
||||
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
@@ -56,6 +56,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
private static final long KEEPALIVE_LIMIT = KEEPALIVE_LIMIT_IN_SECONDS * 1000;
|
||||
@@ -57,6 +57,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
// Gale end - Purpur - send multiple keep-alive packets
|
||||
protected static final net.minecraft.resources.ResourceLocation MINECRAFT_BRAND = net.minecraft.resources.ResourceLocation.withDefaultNamespace("brand"); // Paper - Brand support
|
||||
public @Nullable String playerBrand; // Paper
|
||||
+ protected static final net.minecraft.resources.ResourceLocation PURPUR_CLIENT = net.minecraft.resources.ResourceLocation.fromNamespaceAndPath("purpur", "client"); // Purpur - Purpur client support
|
||||
|
||||
public ServerCommonPacketListenerImpl(MinecraftServer server, Connection connection, CommonListenerCookie cookie, net.minecraft.server.level.ServerPlayer player) { // CraftBukkit
|
||||
public ServerCommonPacketListenerImpl(MinecraftServer server, Connection connection, CommonListenerCookie cookie) {
|
||||
this.server = server;
|
||||
@@ -215,6 +216,12 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
return;
|
||||
}
|
||||
|
||||
+ // Purpur start - Purpur client support
|
||||
+ if (identifier.equals(PURPUR_CLIENT)) {
|
||||
+ this.player.purpurClient = true;
|
||||
+ }
|
||||
+ // Purpur end - Purpur client support
|
||||
+
|
||||
if (identifier.equals(MINECRAFT_BRAND)) {
|
||||
this.player.clientBrandName = new net.minecraft.network.FriendlyByteBuf(io.netty.buffer.Unpooled.wrappedBuffer(data)).readUtf(256);
|
||||
}
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77ebf11d142 100644
|
||||
index 38376506f8b886ed66ec48b1a78dede2a7cabe99..e4114d44d089f8434461f2653a787ff0d3595a04 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -324,6 +324,20 @@ public class ServerGamePacketListenerImpl
|
||||
this.tickEndEvent = new io.papermc.paper.event.packet.ClientTickEndEvent(player.getBukkitEntity()); // Paper - add client tick end event
|
||||
@@ -326,6 +326,20 @@ public class ServerGamePacketListenerImpl
|
||||
this.playerGameConnection = new io.papermc.paper.connection.PaperPlayerGameConnection(this); // Paper
|
||||
}
|
||||
|
||||
+ // Purpur start - AFK API
|
||||
@@ -1321,7 +1308,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
@Override
|
||||
public void tick() {
|
||||
if (this.ackBlockChangesUpTo > -1) {
|
||||
@@ -382,6 +396,12 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -384,6 +398,12 @@ public class ServerGamePacketListenerImpl
|
||||
if (this.player.getLastActionTime() > 0L
|
||||
&& this.server.getPlayerIdleTimeout() > 0
|
||||
&& Util.getMillis() - this.player.getLastActionTime() > this.server.getPlayerIdleTimeout() * 1000L * 60L && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits
|
||||
@@ -1334,7 +1321,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854
|
||||
this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause
|
||||
}
|
||||
@@ -651,6 +671,8 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -653,6 +673,8 @@ public class ServerGamePacketListenerImpl
|
||||
this.lastYaw = to.getYaw();
|
||||
this.lastPitch = to.getPitch();
|
||||
|
||||
@@ -1343,7 +1330,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
Location oldTo = to.clone();
|
||||
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
|
||||
this.cserver.getPluginManager().callEvent(event);
|
||||
@@ -730,6 +752,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -732,6 +754,7 @@ public class ServerGamePacketListenerImpl
|
||||
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
|
||||
if (packet.getId() == this.awaitingTeleport) {
|
||||
if (this.awaitingPositionFromClient == null) {
|
||||
@@ -1351,7 +1338,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
|
||||
return;
|
||||
}
|
||||
@@ -1268,6 +1291,10 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1270,6 +1293,10 @@ public class ServerGamePacketListenerImpl
|
||||
final int maxBookPageSize = pageMax.intValue();
|
||||
final double multiplier = Math.clamp(io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier, 0.3D, 1D);
|
||||
long byteAllowed = maxBookPageSize;
|
||||
@@ -1362,7 +1349,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
for (final String page : pageList) {
|
||||
final int byteLength = page.getBytes(java.nio.charset.StandardCharsets.UTF_8).length;
|
||||
byteTotal += byteLength;
|
||||
@@ -1292,7 +1319,8 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1294,7 +1321,8 @@ public class ServerGamePacketListenerImpl
|
||||
}
|
||||
|
||||
if (byteTotal > byteAllowed) {
|
||||
@@ -1372,7 +1359,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
this.disconnectAsync(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause // Paper - add proper async disconnect
|
||||
return;
|
||||
}
|
||||
@@ -1311,31 +1339,45 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1313,31 +1341,45 @@ public class ServerGamePacketListenerImpl
|
||||
Optional<String> optional = packet.title();
|
||||
optional.ifPresent(list::add);
|
||||
list.addAll(packet.pages());
|
||||
@@ -1422,7 +1409,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
itemStack.set(
|
||||
DataComponents.WRITTEN_BOOK_CONTENT,
|
||||
new WrittenBookContent(this.filterableFromOutgoing(title), this.player.getName().getString(), 0, list, true)
|
||||
@@ -1349,6 +1391,16 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1351,6 +1393,16 @@ public class ServerGamePacketListenerImpl
|
||||
return this.player.isTextFilteringEnabled() ? Filterable.passThrough(filteredText.filteredOrEmpty()) : Filterable.from(filteredText);
|
||||
}
|
||||
|
||||
@@ -1439,7 +1426,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
@Override
|
||||
public void handleEntityTagQuery(ServerboundEntityTagQueryPacket packet) {
|
||||
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
|
||||
@@ -1388,7 +1440,15 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1390,7 +1442,15 @@ public class ServerGamePacketListenerImpl
|
||||
@Override
|
||||
public void handleMovePlayer(ServerboundMovePlayerPacket packet) {
|
||||
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
|
||||
@@ -1456,7 +1443,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
|
||||
} else {
|
||||
ServerLevel serverLevel = this.player.level();
|
||||
@@ -1570,7 +1630,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1572,7 +1632,7 @@ public class ServerGamePacketListenerImpl
|
||||
movedWrongly = true;
|
||||
if (event.getLogWarning())
|
||||
// Paper end
|
||||
@@ -1465,7 +1452,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
} // Paper
|
||||
}
|
||||
|
||||
@@ -1635,6 +1695,8 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1637,6 +1697,8 @@ public class ServerGamePacketListenerImpl
|
||||
this.lastYaw = to.getYaw();
|
||||
this.lastPitch = to.getPitch();
|
||||
|
||||
@@ -1474,7 +1461,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
Location oldTo = to.clone();
|
||||
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
|
||||
this.cserver.getPluginManager().callEvent(event);
|
||||
@@ -1690,6 +1752,13 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1692,6 +1754,13 @@ public class ServerGamePacketListenerImpl
|
||||
this.player.tryResetCurrentImpulseContext();
|
||||
}
|
||||
|
||||
@@ -1488,7 +1475,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
this.player.checkMovementStatistics(this.player.getX() - x, this.player.getY() - y, this.player.getZ() - z);
|
||||
this.lastGoodX = this.player.getX();
|
||||
this.lastGoodY = this.player.getY();
|
||||
@@ -1707,6 +1776,17 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1709,6 +1778,17 @@ public class ServerGamePacketListenerImpl
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1506,7 +1493,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
private boolean shouldCheckPlayerMovement(boolean isElytraMovement) {
|
||||
if (this.isSingleplayerOwner()) {
|
||||
return false;
|
||||
@@ -2104,6 +2184,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2106,6 +2186,7 @@ public class ServerGamePacketListenerImpl
|
||||
|
||||
boolean cancelled;
|
||||
if (hitResult == null || hitResult.getType() != HitResult.Type.BLOCK) {
|
||||
@@ -1514,7 +1501,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemInHand, hand);
|
||||
cancelled = event.useItemInHand() == Event.Result.DENY;
|
||||
} else {
|
||||
@@ -2755,6 +2836,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2753,6 +2834,7 @@ public class ServerGamePacketListenerImpl
|
||||
|
||||
AABB boundingBox = target.getBoundingBox();
|
||||
if (this.player.canInteractWithEntity(boundingBox, io.papermc.paper.configuration.GlobalConfiguration.get().misc.clientInteractionLeniencyDistance.or(3.0))) { // Paper - configurable lenience value for interact range
|
||||
@@ -1522,7 +1509,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
packet.dispatch(
|
||||
new ServerboundInteractPacket.Handler() {
|
||||
private void performInteraction(InteractionHand hand, ServerGamePacketListenerImpl.EntityInteraction entityInteraction, PlayerInteractEntityEvent event) { // CraftBukkit
|
||||
@@ -2767,6 +2849,8 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2765,6 +2847,8 @@ public class ServerGamePacketListenerImpl
|
||||
|
||||
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
|
||||
|
||||
@@ -1531,7 +1518,7 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
// Entity in bucket - SPIGOT-4048 and SPIGOT-6859a
|
||||
if ((target instanceof net.minecraft.world.entity.animal.Bucketable && target instanceof LivingEntity && origItem != null && origItem == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelectedItem().isEmpty() || !ServerGamePacketListenerImpl.this.player.getInventory().getSelectedItem().is(origItem))) {
|
||||
target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
|
||||
@@ -3543,7 +3627,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -3541,7 +3625,7 @@ public class ServerGamePacketListenerImpl
|
||||
@Override
|
||||
public void handleChangeGameMode(ServerboundChangeGameModePacket packet) {
|
||||
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
|
||||
@@ -1540,11 +1527,24 @@ index a07310aebd8406af27864358e15715fcc7694329..acb1eda4a4b10006e1dd641ee41ee77e
|
||||
LOGGER.warn(
|
||||
"Player {} tried to change game mode to {} without required permissions",
|
||||
this.player.getGameProfile().getName(),
|
||||
@@ -3753,6 +3837,12 @@ public class ServerGamePacketListenerImpl
|
||||
return;
|
||||
}
|
||||
|
||||
+ // Purpur start - Purpur client support
|
||||
+ if (identifier.equals(PURPUR_CLIENT)) {
|
||||
+ this.player.purpurClient = true;
|
||||
+ }
|
||||
+ // Purpur end - Purpur client support
|
||||
+
|
||||
if (identifier.equals(MINECRAFT_BRAND)) {
|
||||
this.player.connection.playerBrand = new net.minecraft.network.FriendlyByteBuf(io.netty.buffer.Unpooled.wrappedBuffer(data)).readUtf(256);
|
||||
}
|
||||
diff --git a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
index dc225eaa0daf238e091a0cf63a42158a30ecb7f0..c61a94a08486cdeba84ccfbc58ef3cabd4a461d8 100644
|
||||
index f9fad100d3e5e4b44a5b0f88e288e6fac7a250f7..6d320ed179393e47398c44f2ba2b2285016f349e 100644
|
||||
--- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
@@ -319,7 +319,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
@@ -285,7 +285,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
ServerLoginPacketListenerImpl.LOGGER.warn("Failed to verify username but will let them in anyway!");
|
||||
ServerLoginPacketListenerImpl.this.startClientVerification(ServerLoginPacketListenerImpl.this.createOfflineProfile(string1)); // Spigot
|
||||
} else {
|
||||
@@ -1554,7 +1554,7 @@ index dc225eaa0daf238e091a0cf63a42158a30ecb7f0..c61a94a08486cdeba84ccfbc58ef3cab
|
||||
}
|
||||
} catch (AuthenticationUnavailableException var4) {
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 0acfb86df4a350e41ea1646a38dad14d43f2cb1d..0f02eef9bcae59bf3df6471b10dbfa8252337140 100644
|
||||
index 1dad0f73adf361348466b3f0a0eb31143006b0e9..195e972dd9b3b5d29866c28cc88c80bae31916b4 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -412,6 +412,7 @@ public abstract class PlayerList {
|
||||
@@ -1573,16 +1573,7 @@ index 0acfb86df4a350e41ea1646a38dad14d43f2cb1d..0f02eef9bcae59bf3df6471b10dbfa82
|
||||
ServerLevel serverLevel = player.level();
|
||||
player.awardStat(Stats.LEAVE_GAME);
|
||||
// CraftBukkit start - Quitting must be before we do final save of data, in case plugins need to modify it
|
||||
@@ -684,7 +686,7 @@ public abstract class PlayerList {
|
||||
// return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameProfile)
|
||||
// ? Component.translatable("multiplayer.disconnect.server_full")
|
||||
// : null;
|
||||
- if (this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameProfile)) {
|
||||
+ if (this.players.size() >= this.maxPlayers && !(player.hasPermission("purpur.joinfullserver") || this.canBypassPlayerLimit(gameProfile))) { // Purpur - Allow player join full server by permission
|
||||
event.disallow(org.bukkit.event.player.PlayerLoginEvent.Result.KICK_FULL, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)); // Spigot // Paper - Adventure
|
||||
}
|
||||
}
|
||||
@@ -997,6 +999,20 @@ public abstract class PlayerList {
|
||||
@@ -964,6 +966,20 @@ public abstract class PlayerList {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1603,7 +1594,7 @@ index 0acfb86df4a350e41ea1646a38dad14d43f2cb1d..0f02eef9bcae59bf3df6471b10dbfa82
|
||||
public void broadcastAll(Packet<?> packet, ResourceKey<Level> dimension) {
|
||||
for (ServerPlayer serverPlayer : this.players) {
|
||||
if (serverPlayer.level().dimension() == dimension) {
|
||||
@@ -1081,6 +1097,7 @@ public abstract class PlayerList {
|
||||
@@ -1048,6 +1064,7 @@ public abstract class PlayerList {
|
||||
} else {
|
||||
b = (byte)(24 + permLevel);
|
||||
}
|
||||
@@ -1611,7 +1602,7 @@ index 0acfb86df4a350e41ea1646a38dad14d43f2cb1d..0f02eef9bcae59bf3df6471b10dbfa82
|
||||
|
||||
player.connection.send(new ClientboundEntityEventPacket(player, b));
|
||||
}
|
||||
@@ -1089,6 +1106,27 @@ public abstract class PlayerList {
|
||||
@@ -1056,11 +1073,32 @@ public abstract class PlayerList {
|
||||
player.getBukkitEntity().recalculatePermissions(); // CraftBukkit
|
||||
this.server.getCommands().sendCommands(player);
|
||||
} // Paper - Add sendOpLevel API
|
||||
@@ -1638,7 +1629,13 @@ index 0acfb86df4a350e41ea1646a38dad14d43f2cb1d..0f02eef9bcae59bf3df6471b10dbfa82
|
||||
+ // Purpur end - Barrels and enderchests 6 rows
|
||||
}
|
||||
|
||||
public boolean isWhiteListed(GameProfile profile) {
|
||||
// Paper start - whitelist verify event / login event
|
||||
public LoginResult canBypassFullServerLogin(final GameProfile profile, final LoginResult currentResult) {
|
||||
- final boolean shouldKick = this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(profile);
|
||||
+ final boolean shouldKick = this.players.size() >= this.maxPlayers && !(/*player.hasPermission("purpur.joinfullserver") || */this.canBypassPlayerLimit(profile)); // Purpur - Allow player join full server by permission TODO: this hasn't worked for a while, so comment it out until we can reliably check perms of the player joining
|
||||
final io.papermc.paper.event.player.PlayerServerFullCheckEvent fullCheckEvent = new io.papermc.paper.event.player.PlayerServerFullCheckEvent(
|
||||
com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(profile),
|
||||
io.papermc.paper.adventure.PaperAdventure.asAdventure(currentResult.message),
|
||||
diff --git a/net/minecraft/server/players/SleepStatus.java b/net/minecraft/server/players/SleepStatus.java
|
||||
index 2a7ae521654ad5c9f392baa5562e64bb71b13097..3a3e6992563236141db687084aeec9684437a7db 100644
|
||||
--- a/net/minecraft/server/players/SleepStatus.java
|
||||
@@ -4598,10 +4595,10 @@ index 517c546cfc8eca2191df57289e6a22ac64fc867c..8964bb5098c0dc36741af3656af6bc0b
|
||||
}
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/HappyGhast.java b/net/minecraft/world/entity/animal/HappyGhast.java
|
||||
index 4e74d5b3076f50f9294553b453f5903ef32f1e8a..e04da94daced96a7eb9fdb01c551bea667b72d76 100644
|
||||
index f07dcf7d45b1b717faeae0c4129fb00a22fb7d57..9763a5e24e0fed9b49b6ac59911f6c9f8e893db5 100644
|
||||
--- a/net/minecraft/world/entity/animal/HappyGhast.java
|
||||
+++ b/net/minecraft/world/entity/animal/HappyGhast.java
|
||||
@@ -118,6 +118,47 @@ public class HappyGhast extends Animal {
|
||||
@@ -124,6 +124,47 @@ public class HappyGhast extends Animal {
|
||||
this.removeAllGoals(goal -> true);
|
||||
}
|
||||
|
||||
@@ -4649,7 +4646,7 @@ index 4e74d5b3076f50f9294553b453f5903ef32f1e8a..e04da94daced96a7eb9fdb01c551bea6
|
||||
@Override
|
||||
protected void ageBoundaryReached() {
|
||||
if (this.isBaby()) {
|
||||
@@ -141,7 +182,7 @@ public class HappyGhast extends Animal {
|
||||
@@ -147,7 +188,7 @@ public class HappyGhast extends Animal {
|
||||
|
||||
@Override
|
||||
protected float sanitizeScale(float scale) {
|
||||
@@ -11304,10 +11301,10 @@ index a621e08fe4f88fcfa8da83bc44b23fc2ffaa5918..ab320cf5a8c68fd239e81172a2f3909a
|
||||
Vec3 deltaMovement = Vex.this.getDeltaMovement();
|
||||
Vex.this.setYRot(-((float)Mth.atan2(deltaMovement.x, deltaMovement.z)) * (180.0F / (float)Math.PI));
|
||||
diff --git a/net/minecraft/world/entity/monster/Vindicator.java b/net/minecraft/world/entity/monster/Vindicator.java
|
||||
index e12643c0a1aa9608c34cab96d5c04abc60428322..df95c6be4469eeefa248e5ef18cfaba3d4cdeea6 100644
|
||||
index 835b522a77fc4e1ec84bd5134e12233a02b66a66..7f70b2387842f65da4632f1a27669a02d4e0402d 100644
|
||||
--- a/net/minecraft/world/entity/monster/Vindicator.java
|
||||
+++ b/net/minecraft/world/entity/monster/Vindicator.java
|
||||
@@ -57,15 +57,56 @@ public class Vindicator extends AbstractIllager {
|
||||
@@ -56,15 +56,56 @@ public class Vindicator extends AbstractIllager {
|
||||
super(entityType, level);
|
||||
}
|
||||
|
||||
@@ -11364,7 +11361,7 @@ index e12643c0a1aa9608c34cab96d5c04abc60428322..df95c6be4469eeefa248e5ef18cfaba3
|
||||
this.targetSelector.addGoal(1, new HurtByTargetGoal(this, Raider.class).setAlertOthers());
|
||||
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));
|
||||
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, true));
|
||||
@@ -132,6 +173,11 @@ public class Vindicator extends AbstractIllager {
|
||||
@@ -131,6 +172,11 @@ public class Vindicator extends AbstractIllager {
|
||||
RandomSource random = level.getRandom();
|
||||
this.populateDefaultEquipmentSlots(random, difficulty);
|
||||
this.populateDefaultEquipmentEnchantments(level, random, difficulty);
|
||||
@@ -12348,10 +12345,10 @@ index e282b6ab6d0d1c11ee40f5f436bd50fa90ddc88b..d6ae13c19481ce33bfa0b6c9db632830
|
||||
this.spawnCat(pos, level, true);
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
||||
index 6ecd99adc1c22681553714ff23e557b8f7854737..165d0f50e7818b6daf834507033feaa2fabcaf19 100644
|
||||
index f37759161b2a682612c6676cdd0d15908259776c..014bb5b6e82bb11b756430999522f4b8f9356d9f 100644
|
||||
--- a/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -179,6 +179,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -178,6 +178,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
);
|
||||
|
||||
public long nextGolemPanic = -1; // Pufferfish
|
||||
@@ -12360,7 +12357,7 @@ index 6ecd99adc1c22681553714ff23e557b8f7854737..165d0f50e7818b6daf834507033feaa2
|
||||
|
||||
public Villager(EntityType<? extends Villager> entityType, Level level) {
|
||||
this(entityType, level, VillagerType.PLAINS);
|
||||
@@ -197,6 +199,103 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -196,6 +198,103 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
this.setVillagerData(this.getVillagerData().withType(villagerType).withProfession(level.registryAccess(), VillagerProfession.NONE));
|
||||
}
|
||||
|
||||
@@ -12464,7 +12461,7 @@ index 6ecd99adc1c22681553714ff23e557b8f7854737..165d0f50e7818b6daf834507033feaa2
|
||||
@Override
|
||||
public Brain<Villager> getBrain() {
|
||||
return (Brain<Villager>)super.getBrain();
|
||||
@@ -230,7 +329,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -229,7 +328,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
villagerBrain.setSchedule(Schedule.VILLAGER_DEFAULT);
|
||||
villagerBrain.addActivityWithConditions(
|
||||
Activity.WORK,
|
||||
@@ -12473,7 +12470,7 @@ index 6ecd99adc1c22681553714ff23e557b8f7854737..165d0f50e7818b6daf834507033feaa2
|
||||
ImmutableSet.of(Pair.of(MemoryModuleType.JOB_SITE, MemoryStatus.VALUE_PRESENT))
|
||||
);
|
||||
}
|
||||
@@ -262,7 +361,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -261,7 +360,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
}
|
||||
|
||||
public static AttributeSupplier.Builder createAttributes() {
|
||||
@@ -12482,7 +12479,7 @@ index 6ecd99adc1c22681553714ff23e557b8f7854737..165d0f50e7818b6daf834507033feaa2
|
||||
}
|
||||
|
||||
public boolean assignProfessionWhenSpawned() {
|
||||
@@ -294,12 +393,21 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -293,12 +392,21 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
// Paper start - EAR 2
|
||||
this.customServerAiStep(level, false);
|
||||
}
|
||||
@@ -12506,7 +12503,7 @@ index 6ecd99adc1c22681553714ff23e557b8f7854737..165d0f50e7818b6daf834507033feaa2
|
||||
// Pufferfish end
|
||||
if (this.assignProfessionWhenSpawned) {
|
||||
this.assignProfessionWhenSpawned = false;
|
||||
@@ -355,7 +463,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -354,7 +462,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
return super.mobInteract(player, hand);
|
||||
} else if (this.isBaby()) {
|
||||
this.setUnhappy();
|
||||
@@ -12515,7 +12512,7 @@ index 6ecd99adc1c22681553714ff23e557b8f7854737..165d0f50e7818b6daf834507033feaa2
|
||||
} else {
|
||||
if (!this.level().isClientSide) {
|
||||
boolean isEmpty = this.getOffers().isEmpty();
|
||||
@@ -368,9 +476,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -367,9 +475,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
}
|
||||
|
||||
if (isEmpty) {
|
||||
@@ -12529,7 +12526,7 @@ index 6ecd99adc1c22681553714ff23e557b8f7854737..165d0f50e7818b6daf834507033feaa2
|
||||
this.startTrading(player);
|
||||
}
|
||||
|
||||
@@ -507,7 +618,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -506,7 +617,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
|
||||
public void updateDemand() {
|
||||
for (MerchantOffer merchantOffer : this.getOffers()) {
|
||||
@@ -12538,7 +12535,7 @@ index 6ecd99adc1c22681553714ff23e557b8f7854737..165d0f50e7818b6daf834507033feaa2
|
||||
}
|
||||
}
|
||||
|
||||
@@ -700,7 +811,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -699,7 +810,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
|
||||
@Override
|
||||
public boolean canBreed() {
|
||||
@@ -12547,7 +12544,7 @@ index 6ecd99adc1c22681553714ff23e557b8f7854737..165d0f50e7818b6daf834507033feaa2
|
||||
}
|
||||
|
||||
private boolean hungry() {
|
||||
@@ -867,7 +978,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -866,7 +977,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
}
|
||||
|
||||
public boolean hasFarmSeeds() {
|
||||
@@ -12556,7 +12553,7 @@ index 6ecd99adc1c22681553714ff23e557b8f7854737..165d0f50e7818b6daf834507033feaa2
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -922,6 +1033,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -921,6 +1032,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
}
|
||||
|
||||
public void spawnGolemIfNeeded(ServerLevel serverLevel, long gameTime, int minVillagerAmount) {
|
||||
@@ -12564,7 +12561,7 @@ index 6ecd99adc1c22681553714ff23e557b8f7854737..165d0f50e7818b6daf834507033feaa2
|
||||
if (this.wantsToSpawnGolem(gameTime)) {
|
||||
AABB aabb = this.getBoundingBox().inflate(10.0, 10.0, 10.0);
|
||||
List<Villager> entitiesOfClass = serverLevel.getEntitiesOfClass(Villager.class, aabb);
|
||||
@@ -995,6 +1107,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -994,6 +1106,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
|
||||
@Override
|
||||
public void startSleeping(BlockPos pos) {
|
||||
@@ -14238,7 +14235,7 @@ index 3acc2ae8533f19a6f9b2b6a1d96271f1047384a4..793c0a380b84d246db748be7e8807f1c
|
||||
return this.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY);
|
||||
}
|
||||
diff --git a/net/minecraft/world/item/Items.java b/net/minecraft/world/item/Items.java
|
||||
index cb27584b484c5103feb85e139a3dbf95a23a1236..b309312491bf822582d8cc182d609f7b74399ae8 100644
|
||||
index b89a7fae0321cbce09faf1503ddc57ca5acaa148..4d5a0b1bc794a3029b0724c6dddeffa6f549a7d5 100644
|
||||
--- a/net/minecraft/world/item/Items.java
|
||||
+++ b/net/minecraft/world/item/Items.java
|
||||
@@ -383,7 +383,7 @@ public class Items {
|
||||
@@ -14250,7 +14247,7 @@ index cb27584b484c5103feb85e139a3dbf95a23a1236..b309312491bf822582d8cc182d609f7b
|
||||
public static final Item CREAKING_HEART = registerBlock(Blocks.CREAKING_HEART);
|
||||
public static final Item CHEST = registerBlock(Blocks.CHEST, properties -> properties.component(DataComponents.CONTAINER, ItemContainerContents.EMPTY));
|
||||
public static final Item CRAFTING_TABLE = registerBlock(Blocks.CRAFTING_TABLE);
|
||||
@@ -2089,7 +2089,7 @@ public class Items {
|
||||
@@ -2092,7 +2092,7 @@ public class Items {
|
||||
"sweet_berries", createBlockItemWithCustomItemName(Blocks.SWEET_BERRY_BUSH), new Item.Properties().food(Foods.SWEET_BERRIES)
|
||||
);
|
||||
public static final Item GLOW_BERRIES = registerItem(
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix Pufferfish and Purpur patches
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index db1f0031a6ae6ba1b9ea265043b87817e2c746f8..1aab4d41054f8e780e6c0ccdb96affee19068311 100644
|
||||
index f05fa801f35f4afcc93fcace6a98cee0fa3ec531..b567eed9e07e281c56ff707ad938661f37f4ee3f 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -277,7 +277,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -65,10 +65,10 @@ index 35fd539eb2bfe60ad17ab1e558a01273666acc54..445bbdc8da7f1fdbddfc4d8787d78fea
|
||||
this.values[this.vp++ & 0xFF] = (int)(l * 100L / Runtime.getRuntime().maxMemory());
|
||||
this.repaint();
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 5031e4e9b59a1e013152f788b20c58646b30770f..1aaa94a2800687faa4d86698a4e1ad72bdaf15f3 100644
|
||||
index e4114d44d089f8434461f2653a787ff0d3595a04..4674760a18926e2e83c481defccf1a06df358b7d 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -1319,7 +1319,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1321,7 +1321,7 @@ public class ServerGamePacketListenerImpl
|
||||
}
|
||||
|
||||
if (byteTotal > byteAllowed) {
|
||||
@@ -78,7 +78,7 @@ index 5031e4e9b59a1e013152f788b20c58646b30770f..1aaa94a2800687faa4d86698a4e1ad72
|
||||
this.disconnectAsync(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause // Paper - add proper async disconnect
|
||||
return;
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index d8209037e988bc7a68f634a6650930bd1082c4d1..a2a4ad515a4ef0fa24948d0f47c5bd78ec7e6555 100644
|
||||
index fb387919e51504beafd2e7947faa41795df18100..0cdd3eb97e74aa3955f014a1f8f6a7d1580d323f 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -543,23 +543,36 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -128,7 +128,7 @@ index d8209037e988bc7a68f634a6650930bd1082c4d1..a2a4ad515a4ef0fa24948d0f47c5bd78
|
||||
public Entity(EntityType<?> entityType, Level level) {
|
||||
this.type = entityType;
|
||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||
index d7d6e0543dc26694891e4a9049b8162caadbf5e6..d59caf13e9066f2171c360e07a26122a540380a0 100644
|
||||
index dd5343287503e2818e083696a17362091d94e652..b536461c672c608aeeb690f41ea457fc57768e4f 100644
|
||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -1049,13 +1049,13 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Remove vanilla username check
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
index c61a94a08486cdeba84ccfbc58ef3cabd4a461d8..37bc11ba3746808307bc6a8c87cea392146c55b1 100644
|
||||
index 6d320ed179393e47398c44f2ba2b2285016f349e..79534beb5f4a3427078541fda287d9c950999c96 100644
|
||||
--- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
@@ -184,7 +184,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
@@ -163,7 +163,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
public void handleHello(ServerboundHelloPacket packet) {
|
||||
Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet");
|
||||
// Paper start - Validate usernames
|
||||
|
||||
@@ -7,10 +7,10 @@ This Check is added in 1.17.x -> 1.18.x that updated by Mojang.
|
||||
By removing this check, it gives ability for hackers to use some modules of hack clients.
|
||||
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 1aaa94a2800687faa4d86698a4e1ad72bdaf15f3..d1245f54d55e4a3c406feef3cc2d5e25bb6346ce 100644
|
||||
index 4674760a18926e2e83c481defccf1a06df358b7d..6f7094004e2d38d3471c3582b3a10dfc7fce3b32 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2108,8 +2108,13 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2110,8 +2110,13 @@ public class ServerGamePacketListenerImpl
|
||||
BlockPos blockPos = hitResult.getBlockPos();
|
||||
if (this.player.canInteractWithBlock(blockPos, 1.0)) {
|
||||
Vec3 vec3 = location.subtract(Vec3.atCenterOf(blockPos));
|
||||
|
||||
@@ -9,10 +9,10 @@ Original project: https://github.com/Cryptite/Slice
|
||||
Co-authored-by: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com>
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 6d453bdf4f265c23e7e349d07d766553ef0a4fad..737cba1729e980f58afa5e5aa83908c64c3a1a45 100644
|
||||
index e217410145f7889ab4141947fc32d9d576a20326..1096bd9f5561f3bedd7939345844b03bbc895938 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -434,6 +434,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -432,6 +432,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
private boolean tpsBar = false; // Purpur - Implement TPSBar
|
||||
private boolean compassBar = false; // Purpur - Add compass command
|
||||
private boolean ramBar = false; // Purpur - Implement rambar commands
|
||||
@@ -21,10 +21,10 @@ index 6d453bdf4f265c23e7e349d07d766553ef0a4fad..737cba1729e980f58afa5e5aa83908c6
|
||||
// Paper start - rewrite chunk system
|
||||
private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 7fdcdc311e5a3236df0c7d479d0e206e2fa15dd0..2f00e7899c36a2a34f810fc6083846eb3883131f 100644
|
||||
index 195e972dd9b3b5d29866c28cc88c80bae31916b4..bdc912f5330896e967cbef4e3e545ff5182e591e 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -794,11 +794,11 @@ public abstract class PlayerList {
|
||||
@@ -761,11 +761,11 @@ public abstract class PlayerList {
|
||||
byte b = (byte)(keepInventory ? 1 : 0);
|
||||
ServerLevel serverLevel = serverPlayer.level();
|
||||
LevelData levelData = serverLevel.getLevelData();
|
||||
@@ -38,7 +38,7 @@ index 7fdcdc311e5a3236df0c7d479d0e206e2fa15dd0..2f00e7899c36a2a34f810fc6083846eb
|
||||
serverPlayer.connection.send(new ClientboundSetDefaultSpawnPositionPacket(level.getSharedSpawnPos(), level.getSharedSpawnAngle()));
|
||||
serverPlayer.connection.send(new ClientboundChangeDifficultyPacket(levelData.getDifficulty(), levelData.isDifficultyLocked()));
|
||||
serverPlayer.connection
|
||||
@@ -886,6 +886,8 @@ public abstract class PlayerList {
|
||||
@@ -853,6 +853,8 @@ public abstract class PlayerList {
|
||||
return serverPlayer;
|
||||
}
|
||||
|
||||
|
||||
@@ -69,10 +69,10 @@ index 54bb75a2a128e7747ab01cb0d40c81fb4340ffd1..0fed0f181c4d1f31d01bdaa5dc9417cc
|
||||
this.tickables.get(i).run();
|
||||
}
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 799aa6e869a9e471a2aa415904efb7e29be213c6..e2edd7b6c6f4c9bb0e42ea9332b96d7537bc801a 100644
|
||||
index 1096bd9f5561f3bedd7939345844b03bbc895938..900075e85f2085378389a974e500fc8acd25747e 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -440,6 +440,8 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -438,6 +438,8 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
|
||||
private final ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.ViewDistanceHolder viewDistanceHolder = new ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.ViewDistanceHolder();
|
||||
|
||||
@@ -81,11 +81,11 @@ index 799aa6e869a9e471a2aa415904efb7e29be213c6..e2edd7b6c6f4c9bb0e42ea9332b96d75
|
||||
@Override
|
||||
public final boolean moonrise$isRealPlayer() {
|
||||
return this.isRealPlayer;
|
||||
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
index 8a4c8e2fb86274b5bf95bda510029f4c5077d836..169d039a00339fc8eeb697ba03808f321ed4ad4c 100644
|
||||
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
@@ -183,6 +183,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 6f7094004e2d38d3471c3582b3a10dfc7fce3b32..76ad04e021b840b1595bfe01d07f1d7943937281 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -3809,6 +3809,18 @@ public class ServerGamePacketListenerImpl
|
||||
|
||||
@Override
|
||||
public void handleCustomPayload(ServerboundCustomPayloadPacket packet) {
|
||||
@@ -103,8 +103,8 @@ index 8a4c8e2fb86274b5bf95bda510029f4c5077d836..169d039a00339fc8eeb697ba03808f32
|
||||
+
|
||||
// Paper start
|
||||
if (packet.payload() instanceof net.minecraft.network.protocol.common.custom.BrandPayload(String brand)) {
|
||||
this.player.clientBrandName = brand;
|
||||
@@ -242,6 +254,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
this.playerBrand = brand;
|
||||
@@ -3868,6 +3880,7 @@ public class ServerGamePacketListenerImpl
|
||||
final String channel = new String(data, from, length, java.nio.charset.StandardCharsets.US_ASCII);
|
||||
if (register) {
|
||||
this.getCraftPlayer().addChannel(channel);
|
||||
@@ -113,7 +113,7 @@ index 8a4c8e2fb86274b5bf95bda510029f4c5077d836..169d039a00339fc8eeb697ba03808f32
|
||||
this.getCraftPlayer().removeChannel(channel);
|
||||
}
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index fe44069de549acc81a6037426a405d6fddb87897..0ed45220ce029e5ef538b86f89509f2d2156cbb9 100644
|
||||
index bdc912f5330896e967cbef4e3e545ff5182e591e..e3898b41c2d19940e08b60cdac28ab07161d3c50 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -346,6 +346,9 @@ public abstract class PlayerList {
|
||||
@@ -134,15 +134,7 @@ index fe44069de549acc81a6037426a405d6fddb87897..0ed45220ce029e5ef538b86f89509f2d
|
||||
// Paper end - Fix kick event leave message not being sent
|
||||
org.purpurmc.purpur.task.BossBarTask.removeFromAll(player.getBukkitEntity()); // Purpur - Implement TPSBar
|
||||
ServerLevel serverLevel = player.level();
|
||||
@@ -651,6 +655,7 @@ public abstract class PlayerList {
|
||||
SocketAddress socketAddress = loginlistener.connection.getRemoteAddress();
|
||||
|
||||
ServerPlayer entity = new ServerPlayer(this.server, this.server.getLevel(Level.OVERWORLD), gameProfile, net.minecraft.server.level.ClientInformation.createDefault());
|
||||
+ entity.internalConnection = loginlistener.connection; // Leaves - protocol core
|
||||
entity.transferCookieConnection = loginlistener;
|
||||
org.bukkit.entity.Player player = entity.getBukkitEntity();
|
||||
org.bukkit.event.player.PlayerLoginEvent event = new org.bukkit.event.player.PlayerLoginEvent(player, loginlistener.connection.hostname, ((java.net.InetSocketAddress) socketAddress).getAddress(), ((java.net.InetSocketAddress) loginlistener.connection.channel.remoteAddress()).getAddress());
|
||||
@@ -1523,6 +1528,7 @@ public abstract class PlayerList {
|
||||
@@ -1507,6 +1511,7 @@ public abstract class PlayerList {
|
||||
serverPlayer.connection.send(clientboundUpdateRecipesPacket);
|
||||
serverPlayer.getRecipeBook().sendInitialRecipeBook(serverPlayer);
|
||||
}
|
||||
|
||||
@@ -9,10 +9,10 @@ Original project: https://github.com/LeavesMC/Leaves
|
||||
This patch is Powered by Xaero Map
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index e547d6c9ee9ad3438cc839389db26a3417cc4ba4..4de0da41eaa71edd0ec7c6829dce424795a63dd8 100644
|
||||
index e3898b41c2d19940e08b60cdac28ab07161d3c50..22c551e8cfc6ab5822d4e6610033cc2d1aafd6c3 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1235,6 +1235,7 @@ public abstract class PlayerList {
|
||||
@@ -1218,6 +1218,7 @@ public abstract class PlayerList {
|
||||
player.connection.send(new ClientboundInitializeBorderPacket(worldBorder));
|
||||
player.connection.send(new ClientboundSetTimePacket(level.getGameTime(), level.getDayTime(), level.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)));
|
||||
player.connection.send(new ClientboundSetDefaultSpawnPositionPacket(level.getSharedSpawnPos(), level.getSharedSpawnAngle()));
|
||||
|
||||
@@ -9,13 +9,13 @@ Original project: https://github.com/LeavesMC/Leaves
|
||||
This patch is Powered by Syncmatica (https://github.com/End-Tech/syncmatica)
|
||||
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index d1245f54d55e4a3c406feef3cc2d5e25bb6346ce..8e0e119b41ca1e49d7e3f7874c5fb3c2b434e737 100644
|
||||
index 76ad04e021b840b1595bfe01d07f1d7943937281..f8572720e4bf7b2b0b64fbe39a5a068d715b6e01 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -322,8 +322,11 @@ public class ServerGamePacketListenerImpl
|
||||
this.signedMessageDecoder = SignedMessageChain.Decoder.unsigned(player.getUUID(), server::enforceSecureProfile);
|
||||
@@ -324,8 +324,11 @@ public class ServerGamePacketListenerImpl
|
||||
this.chatMessageChain = new FutureChain(server.chatExecutor); // CraftBukkit - async chat
|
||||
this.tickEndEvent = new io.papermc.paper.event.packet.ClientTickEndEvent(player.getBukkitEntity()); // Paper - add client tick end event
|
||||
this.playerGameConnection = new io.papermc.paper.connection.PaperPlayerGameConnection(this); // Paper
|
||||
+ this.exchangeTarget = new org.leavesmc.leaves.protocol.syncmatica.exchange.ExchangeTarget(this); // Leaves - Syncmatica Protocol
|
||||
}
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ index b305ba9bab617bf4e52d0e6ddf160bacc5751a94..bbaf1a29f86a9bfc13795249d545b6f7
|
||||
if (players.size() >= resultLimit) {
|
||||
return players;
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 3a1822e0f37c86dfad56ae06c14fffb960ff99ec..32c934a489df7a06892265c6d762e88c3716a5c6 100644
|
||||
index 0fed0f181c4d1f31d01bdaa5dc9417ccd68b3f03..534082a0441dcde9115652cb67dbc8310529ecee 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1642,7 +1642,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -178,7 +178,7 @@ index 95c128f028c3cce7d0b37821a6e75208323fb4e9..2cf0fa70ae3d7675cac3cf7a0002097b
|
||||
ServerLevel.this.updateSleepingPlayerList();
|
||||
}
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 4210089d6ba271ef9d68e18699b1122f07e1946a..8d1571f3db4e7f6c4309b8a46ed0359ecdee85a5 100644
|
||||
index 900075e85f2085378389a974e500fc8acd25747e..b53b989bd6efd747d1ee93dedfc59cbc758fcda3 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -216,7 +216,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -191,7 +191,7 @@ index 4210089d6ba271ef9d68e18699b1122f07e1946a..8d1571f3db4e7f6c4309b8a46ed0359e
|
||||
private final PlayerAdvancements advancements;
|
||||
private final ServerStatsCounter stats;
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 418d6970d46b3b592c17f7721ca3ecfd1edce8ad..70d394d8a257390af20bdea5895f7d8a74b16dec 100644
|
||||
index 22c551e8cfc6ab5822d4e6610033cc2d1aafd6c3..1920e0ce0c70f4bf10635754819bbdf6a4d275ff 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -131,6 +131,7 @@ public abstract class PlayerList {
|
||||
@@ -382,12 +382,12 @@ index 418d6970d46b3b592c17f7721ca3ecfd1edce8ad..70d394d8a257390af20bdea5895f7d8a
|
||||
this.playersByName.remove(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot
|
||||
this.removeFromSendAllPlayerInfoBuckets(player); // Gale - Purpur - spread out sending all player info
|
||||
this.server.getCustomBossEvents().onPlayerDisconnect(player);
|
||||
@@ -691,7 +837,7 @@ public abstract class PlayerList {
|
||||
// return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameProfile)
|
||||
// ? Component.translatable("multiplayer.disconnect.server_full")
|
||||
// : null;
|
||||
- if (this.players.size() >= this.maxPlayers && !(player.hasPermission("purpur.joinfullserver") || this.canBypassPlayerLimit(gameProfile))) { // Purpur - Allow player join full server by permission
|
||||
+ if (this.realPlayers.size() >= this.maxPlayers && !(player.hasPermission("purpur.joinfullserver") || this.canBypassPlayerLimit(gameProfile))) { // Purpur - Allow player join full server by permission // Leaves - only real player
|
||||
event.disallow(org.bukkit.event.player.PlayerLoginEvent.Result.KICK_FULL, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)); // Spigot // Paper - Adventure
|
||||
}
|
||||
}
|
||||
@@ -1104,7 +1250,7 @@ public abstract class PlayerList {
|
||||
|
||||
// Paper start - whitelist verify event / login event
|
||||
public LoginResult canBypassFullServerLogin(final GameProfile profile, final LoginResult currentResult) {
|
||||
- final boolean shouldKick = this.players.size() >= this.maxPlayers && !(/*player.hasPermission("purpur.joinfullserver") || */this.canBypassPlayerLimit(profile)); // Purpur - Allow player join full server by permission TODO: this hasn't worked for a while, so comment it out until we can reliably check perms of the player joining
|
||||
+ final boolean shouldKick = this.realPlayers.size() >= this.maxPlayers && !(/*player.hasPermission("purpur.joinfullserver") || */this.canBypassPlayerLimit(profile)); // Purpur - Allow player join full server by permission TODO: this hasn't worked for a while, so comment it out until we can reliably check perms of the player joining // Leaves - only real player
|
||||
final io.papermc.paper.event.player.PlayerServerFullCheckEvent fullCheckEvent = new io.papermc.paper.event.player.PlayerServerFullCheckEvent(
|
||||
com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(profile),
|
||||
io.papermc.paper.adventure.PaperAdventure.asAdventure(currentResult.message),
|
||||
|
||||
@@ -7,10 +7,10 @@ Replace `thenApply` with `thenCompose`. Once one task is completed then the next
|
||||
to prevent blocking threads while waiting to complete all tasks. But may cause the sequence of future compose disorder.
|
||||
|
||||
diff --git a/net/minecraft/Util.java b/net/minecraft/Util.java
|
||||
index 0a69469c79aaa2466cda04f6acefed18e421d555..82ee6c27ebc2718ad88b640775d949ec6d7cfed2 100644
|
||||
index 138a58c5e5698b926b01e0170733dc3dbc5589ec..64372e0fd4eb7018fc36d0feb667c296ea48f927 100644
|
||||
--- a/net/minecraft/Util.java
|
||||
+++ b/net/minecraft/Util.java
|
||||
@@ -620,17 +620,39 @@ public class Util {
|
||||
@@ -625,17 +625,39 @@ public class Util {
|
||||
return Maps.transformValues(map, mapper);
|
||||
}
|
||||
|
||||
|
||||
@@ -10,10 +10,10 @@ Add Pufferfish DAB support for Camel, Sniffer
|
||||
https://github.com/pufferfish-gg/Pufferfish/issues/83
|
||||
|
||||
diff --git a/net/minecraft/world/entity/animal/HappyGhast.java b/net/minecraft/world/entity/animal/HappyGhast.java
|
||||
index e04da94daced96a7eb9fdb01c551bea667b72d76..e53773e086a589ee5fd83fde0bee1881ff43e926 100644
|
||||
index 9763a5e24e0fed9b49b6ac59911f6c9f8e893db5..b7306bcc60c2986b7f9b054d217a2b8cd76b118e 100644
|
||||
--- a/net/minecraft/world/entity/animal/HappyGhast.java
|
||||
+++ b/net/minecraft/world/entity/animal/HappyGhast.java
|
||||
@@ -415,9 +415,11 @@ public class HappyGhast extends Animal {
|
||||
@@ -421,9 +421,11 @@ public class HappyGhast extends Animal {
|
||||
return HappyGhastAi.makeBrain(this.brainProvider().makeBrain(dynamic));
|
||||
}
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Remove useless creating stats json bases on player name logic
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 70d394d8a257390af20bdea5895f7d8a74b16dec..f0c66fce913af9433d53572a3dd3fc31d512346b 100644
|
||||
index 1920e0ce0c70f4bf10635754819bbdf6a4d275ff..430c5f02cb0f52a7a655a1b8bd23db8bf93fb43d 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1574,6 +1574,8 @@ public abstract class PlayerList {
|
||||
@@ -1557,6 +1557,8 @@ public abstract class PlayerList {
|
||||
if (serverStatsCounter == null) {
|
||||
File file = this.server.getWorldPath(LevelResource.PLAYER_STATS_DIR).toFile();
|
||||
File file1 = new File(file, uuid + ".json");
|
||||
@@ -17,7 +17,7 @@ index 70d394d8a257390af20bdea5895f7d8a74b16dec..f0c66fce913af9433d53572a3dd3fc31
|
||||
if (!file1.exists()) {
|
||||
File file2 = new File(file, displayName + ".json"); // CraftBukkit
|
||||
Path path = file2.toPath();
|
||||
@@ -1581,6 +1583,8 @@ public abstract class PlayerList {
|
||||
@@ -1564,6 +1566,8 @@ public abstract class PlayerList {
|
||||
file2.renameTo(file1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,10 +19,10 @@ index 1dc009e85403fe0b6a68daefecfe5cb25ad263cd..de450f9ef03944b101b483126af6a778
|
||||
org.purpurmc.purpur.command.DemoCommand.register(this.dispatcher); // Purpur - Add demo command
|
||||
org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur - Add ping command
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 8dabe3ca6f5c5b0cd5f5a3801e1cbd853520738e..b71b4db16ac8b42c0061f15db05d4315dd7fecb4 100644
|
||||
index b53b989bd6efd747d1ee93dedfc59cbc758fcda3..0df36e136fb0ce928a207f8f58dfe10839be8507 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -2490,6 +2490,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -2424,6 +2424,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
|
||||
// Purpur start - AFK API
|
||||
private boolean isAfk = false;
|
||||
@@ -33,7 +33,7 @@ index 8dabe3ca6f5c5b0cd5f5a3801e1cbd853520738e..b71b4db16ac8b42c0061f15db05d4315
|
||||
|
||||
@Override
|
||||
public void setAfk(boolean afk) {
|
||||
@@ -2527,6 +2531,18 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -2461,6 +2465,18 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
String prefix = (split.length > 0 ? split[0] : "").replace(org.purpurmc.purpur.PurpurConfig.afkTabListPrefix, "");
|
||||
String suffix = (split.length > 1 ? split[1] : "").replace(org.purpurmc.purpur.PurpurConfig.afkTabListSuffix, "");
|
||||
if (afk) {
|
||||
@@ -53,10 +53,10 @@ index 8dabe3ca6f5c5b0cd5f5a3801e1cbd853520738e..b71b4db16ac8b42c0061f15db05d4315
|
||||
} else {
|
||||
getBukkitEntity().setPlayerListName(prefix + scoreboardName + suffix, true);
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 2eecf924618192e1b8cf3971ac6cc3c95ec7f235..1306f920b5908731d04004e1b180c3ac4ad0745d 100644
|
||||
index f8572720e4bf7b2b0b64fbe39a5a068d715b6e01..c038ceb441897157a0c240a9970e676a297e40c3 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2361,6 +2361,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2359,6 +2359,7 @@ public class ServerGamePacketListenerImpl
|
||||
|
||||
@Override
|
||||
public void handleChatCommand(ServerboundChatCommandPacket packet) {
|
||||
@@ -64,7 +64,7 @@ index 2eecf924618192e1b8cf3971ac6cc3c95ec7f235..1306f920b5908731d04004e1b180c3ac
|
||||
this.tryHandleChat(packet.command(), () -> {
|
||||
// CraftBukkit start - SPIGOT-7346: Prevent disconnected players from executing commands
|
||||
if (this.player.hasDisconnected()) {
|
||||
@@ -2369,7 +2370,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2367,7 +2368,7 @@ public class ServerGamePacketListenerImpl
|
||||
// CraftBukkit end
|
||||
this.performUnsignedChatCommand(packet.command());
|
||||
this.detectRateSpam("/" + packet.command()); // Spigot
|
||||
@@ -73,7 +73,7 @@ index 2eecf924618192e1b8cf3971ac6cc3c95ec7f235..1306f920b5908731d04004e1b180c3ac
|
||||
}
|
||||
|
||||
private void performUnsignedChatCommand(String command) {
|
||||
@@ -2402,6 +2403,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2400,6 +2401,7 @@ public class ServerGamePacketListenerImpl
|
||||
public void handleSignedChatCommand(ServerboundChatCommandSignedPacket packet) {
|
||||
Optional<LastSeenMessages> optional = this.unpackAndApplyLastSeen(packet.lastSeenMessages());
|
||||
if (!optional.isEmpty()) {
|
||||
@@ -81,7 +81,7 @@ index 2eecf924618192e1b8cf3971ac6cc3c95ec7f235..1306f920b5908731d04004e1b180c3ac
|
||||
this.tryHandleChat(packet.command(), () -> {
|
||||
// CraftBukkit start - SPIGOT-7346: Prevent disconnected players from executing commands
|
||||
if (this.player.hasDisconnected()) {
|
||||
@@ -2410,7 +2412,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2408,7 +2410,7 @@ public class ServerGamePacketListenerImpl
|
||||
// CraftBukkit end
|
||||
this.performSignedChatCommand(packet, optional.get());
|
||||
this.detectRateSpam("/" + packet.command()); // Spigot
|
||||
@@ -90,7 +90,7 @@ index 2eecf924618192e1b8cf3971ac6cc3c95ec7f235..1306f920b5908731d04004e1b180c3ac
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2517,12 +2519,17 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2515,12 +2517,17 @@ public class ServerGamePacketListenerImpl
|
||||
return dispatcher.parse(command, this.player.createCommandSourceStack());
|
||||
}
|
||||
|
||||
@@ -110,7 +110,7 @@ index 2eecf924618192e1b8cf3971ac6cc3c95ec7f235..1306f920b5908731d04004e1b180c3ac
|
||||
this.player.resetLastActionTime();
|
||||
// CraftBukkit start
|
||||
if (sync) {
|
||||
@@ -2534,6 +2541,40 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2532,6 +2539,40 @@ public class ServerGamePacketListenerImpl
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,7 +152,7 @@ index 2eecf924618192e1b8cf3971ac6cc3c95ec7f235..1306f920b5908731d04004e1b180c3ac
|
||||
synchronized (this.lastSeenMessages) {
|
||||
Optional var10000;
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index f0c66fce913af9433d53572a3dd3fc31d512346b..84914c3245de053ba07b105e44f9d838fa3efc4c 100644
|
||||
index 430c5f02cb0f52a7a655a1b8bd23db8bf93fb43d..56876236505d17663900857e4b6777f1778538a6 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -676,6 +676,7 @@ public abstract class PlayerList {
|
||||
|
||||
@@ -5,11 +5,11 @@ Subject: [PATCH] Virtual thread for user authenticator
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
index 37bc11ba3746808307bc6a8c87cea392146c55b1..9dce1d22c7de3a3dd0e0e8f117cfbb54d1b15042 100644
|
||||
index 79534beb5f4a3427078541fda287d9c950999c96..f68923c5f6fbecd8f1c10a30dbd06ed0dfee8b84 100644
|
||||
--- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
@@ -54,7 +54,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
// CraftBukkit end
|
||||
@@ -53,7 +53,7 @@ import org.bukkit.event.player.PlayerPreLoginEvent;
|
||||
public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, TickablePacketListener {
|
||||
private static final AtomicInteger UNIQUE_THREAD_ID = new AtomicInteger(0);
|
||||
static final Logger LOGGER = LogUtils.getLogger();
|
||||
- private static final java.util.concurrent.ExecutorService authenticatorPool = java.util.concurrent.Executors.newCachedThreadPool(new com.google.common.util.concurrent.ThreadFactoryBuilder().setNameFormat("User Authenticator #%d").setUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler(LOGGER)).build()); // Paper - Cache authenticator threads
|
||||
|
||||
@@ -103,10 +103,10 @@ index 87fc8861948b50361ec04c5a23406d3abdec6eac..77f11179836636424927843f5f10c3fd
|
||||
// Paper start - Add setting for proxy online mode status
|
||||
return properties.enforceSecureProfile
|
||||
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
index 169d039a00339fc8eeb697ba03808f321ed4ad4c..23fefdc7122ff8e195c27651dc3a83000f62a95e 100644
|
||||
index eb725c1b6da0c5ef48fa07d79070950f2b45e30e..5f7bd65caf9ea8707674e243e9fedf84adde5913 100644
|
||||
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
@@ -371,10 +371,30 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
@@ -255,10 +255,30 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
}
|
||||
|
||||
public void send(Packet<?> packet) {
|
||||
@@ -138,10 +138,10 @@ index 169d039a00339fc8eeb697ba03808f321ed4ad4c..23fefdc7122ff8e195c27651dc3a8300
|
||||
if (packet == null || this.processedDisconnect) { // Spigot
|
||||
return;
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 84914c3245de053ba07b105e44f9d838fa3efc4c..e4543611016a648314459144e43565300153f0fe 100644
|
||||
index 56876236505d17663900857e4b6777f1778538a6..f439712ec2cc021360583b2ae70f837e2a9417ac 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1534,7 +1534,7 @@ public abstract class PlayerList {
|
||||
@@ -1517,7 +1517,7 @@ public abstract class PlayerList {
|
||||
public void broadcastChatMessage(PlayerChatMessage message, Predicate<ServerPlayer> shouldFilterMessageTo, @Nullable ServerPlayer sender, ChatType.Bound boundChatType, @Nullable Function<net.kyori.adventure.audience.Audience, Component> unsignedFunction) {
|
||||
// Paper end
|
||||
boolean flag = this.verifyChatTrusted(message);
|
||||
@@ -150,7 +150,7 @@ index 84914c3245de053ba07b105e44f9d838fa3efc4c..e4543611016a648314459144e4356530
|
||||
OutgoingChatMessage outgoingChatMessage = OutgoingChatMessage.create(message);
|
||||
boolean flag1 = false;
|
||||
|
||||
@@ -1559,6 +1559,7 @@ public abstract class PlayerList {
|
||||
@@ -1542,6 +1542,7 @@ public abstract class PlayerList {
|
||||
}
|
||||
|
||||
public boolean verifyChatTrusted(PlayerChatMessage message) {
|
||||
|
||||
@@ -22,13 +22,13 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
diff --git a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
index 9dce1d22c7de3a3dd0e0e8f117cfbb54d1b15042..6b0b0ccc18a5da05685867656705e1fcf94b5891 100644
|
||||
index f68923c5f6fbecd8f1c10a30dbd06ed0dfee8b84..2e014cd543a6a790a0023835199b0e956e49fd1f 100644
|
||||
--- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
@@ -70,6 +70,14 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
private net.minecraft.server.level.ServerPlayer player; // CraftBukkit
|
||||
public boolean iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation = false; // Paper - username validation overriding
|
||||
private int velocityLoginMessageId = -1; // Paper - Add Velocity IP Forwarding Support
|
||||
@@ -71,6 +71,14 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
public @Nullable java.util.UUID requestedUuid; // Paper
|
||||
private final io.papermc.paper.connection.PaperPlayerLoginConnection paperLoginConnection; // Paper - Config API
|
||||
private volatile boolean disconnecting = false; // Paper - Fix disconnect still ticking login
|
||||
+ // Leaf start - Cache player profileResult
|
||||
+ private static final com.github.benmanes.caffeine.cache.Cache<String, ProfileResult> playerProfileResultCache = com.github.benmanes.caffeine.cache.Caffeine.newBuilder()
|
||||
+ .expireAfterWrite(org.dreeam.leaf.config.modules.misc.Cache.cachePlayerProfileResultTimeout, java.util.concurrent.TimeUnit.MINUTES)
|
||||
@@ -40,7 +40,7 @@ index 9dce1d22c7de3a3dd0e0e8f117cfbb54d1b15042..6b0b0ccc18a5da05685867656705e1fc
|
||||
|
||||
public ServerLoginPacketListenerImpl(MinecraftServer server, Connection connection, boolean transferred) {
|
||||
this.server = server;
|
||||
@@ -303,9 +311,30 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
@@ -269,9 +277,30 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
String string1 = Objects.requireNonNull(ServerLoginPacketListenerImpl.this.requestedUsername, "Player name not initialized");
|
||||
|
||||
try {
|
||||
@@ -74,7 +74,7 @@ index 9dce1d22c7de3a3dd0e0e8f117cfbb54d1b15042..6b0b0ccc18a5da05685867656705e1fc
|
||||
if (profileResult != null) {
|
||||
GameProfile gameProfile = profileResult.profile();
|
||||
// CraftBukkit start - fire PlayerPreLoginEvent
|
||||
@@ -350,6 +379,20 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
@@ -316,6 +345,20 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
// Paper end - Cache authenticator threads
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable connection message
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index e4543611016a648314459144e43565300153f0fe..70bec2fc50c1e6a928e450e617e76dd4434172f9 100644
|
||||
index f439712ec2cc021360583b2ae70f837e2a9417ac..511bddf252e1ae34a07171f1baf069d97efaa758 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -439,7 +439,7 @@ public abstract class PlayerList {
|
||||
@@ -35,7 +35,7 @@ index e4543611016a648314459144e43565300153f0fe..70bec2fc50c1e6a928e450e617e76dd4
|
||||
this.cserver.getPluginManager().callEvent(playerQuitEvent);
|
||||
player.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage());
|
||||
|
||||
@@ -1687,4 +1687,40 @@ public abstract class PlayerList {
|
||||
@@ -1670,4 +1670,40 @@ public abstract class PlayerList {
|
||||
public boolean isAllowCommandsForAllPlayers() {
|
||||
return this.allowCommandsForAllPlayers;
|
||||
}
|
||||
|
||||
@@ -23,10 +23,10 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 1306f920b5908731d04004e1b180c3ac4ad0745d..faa135c3eb1bfc8f52c90e6f88411fdf48ed9ee1 100644
|
||||
index c038ceb441897157a0c240a9970e676a297e40c3..3173922dbb478e46f892304fb17b0f662fe62b40 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -328,17 +328,12 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -330,17 +330,12 @@ public class ServerGamePacketListenerImpl
|
||||
public final org.leavesmc.leaves.protocol.syncmatica.exchange.ExchangeTarget exchangeTarget; // Leaves - Syncmatica Protocol
|
||||
|
||||
// Purpur start - AFK API
|
||||
@@ -48,7 +48,7 @@ index 1306f920b5908731d04004e1b180c3ac4ad0745d..faa135c3eb1bfc8f52c90e6f88411fdf
|
||||
// Purpur end - AFK API
|
||||
|
||||
@Override
|
||||
@@ -401,7 +396,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -403,7 +398,7 @@ public class ServerGamePacketListenerImpl
|
||||
&& Util.getMillis() - this.player.getLastActionTime() > this.server.getPlayerIdleTimeout() * 1000L * 60L && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits
|
||||
// Purpur start - AFK API
|
||||
this.player.setAfk(true);
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Do not place player if the server is full
|
||||
Fix https://github.com/PaperMC/Paper/issues/10668
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 70bec2fc50c1e6a928e450e617e76dd4434172f9..3cd9b0df617715d0b3e70a6096e52bb5d22ab426 100644
|
||||
index 511bddf252e1ae34a07171f1baf069d97efaa758..ef283ec7934d143eeab482d99bf6fa8f327d2fe9 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -343,6 +343,13 @@ public abstract class PlayerList {
|
||||
@@ -14,7 +14,7 @@ index 70bec2fc50c1e6a928e450e617e76dd4434172f9..3cd9b0df617715d0b3e70a6096e52bb5
|
||||
}
|
||||
// Gale end - MultiPaper - do not place player in world if kicked before being spawned in
|
||||
+ // Leaf start - Do not place player if the server is full - copied from canPlayerLogin
|
||||
+ if (org.dreeam.leaf.config.modules.fixes.DontPlacePlayerIfFull.enabled && this.realPlayers.size() >= this.maxPlayers && !(player.getBukkitEntity().hasPermission("purpur.joinfullserver") || this.canBypassPlayerLimit(gameProfile))) { // Purpur - Allow player join full server by permission // Leaves - only real player
|
||||
+ if (org.dreeam.leaf.config.modules.fixes.DontPlacePlayerIfFull.enabled && this.realPlayers.size() >= this.maxPlayers && !(/*player.hasPermission("purpur.joinfullserver") || */this.canBypassPlayerLimit(gameProfile))) { // Purpur - Allow player join full server by permission TODO: this hasn't worked for a while, so comment it out until we can reliably check perms of the player joining // Leaves - only real player // Leaf - Do not place player if the server is full
|
||||
+ connection.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)));
|
||||
+ //playerconnection.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)), org.bukkit.event.player.PlayerKickEvent.Cause.TIMEOUT);
|
||||
+ return;
|
||||
@@ -23,12 +23,12 @@ index 70bec2fc50c1e6a928e450e617e76dd4434172f9..3cd9b0df617715d0b3e70a6096e52bb5
|
||||
|
||||
org.bukkit.Location loc = ev.getSpawnLocation();
|
||||
serverLevel = ((org.bukkit.craftbukkit.CraftWorld) loc.getWorld()).getHandle();
|
||||
@@ -838,7 +845,7 @@ public abstract class PlayerList {
|
||||
// return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameProfile)
|
||||
// ? Component.translatable("multiplayer.disconnect.server_full")
|
||||
// : null;
|
||||
- if (this.realPlayers.size() >= this.maxPlayers && !(player.hasPermission("purpur.joinfullserver") || this.canBypassPlayerLimit(gameProfile))) { // Purpur - Allow player join full server by permission // Leaves - only real player
|
||||
+ if (this.realPlayers.size() >= this.maxPlayers && !(player.hasPermission("purpur.joinfullserver") || this.canBypassPlayerLimit(gameProfile))) { // Purpur - Allow player join full server by permission // Leaves - only real player // Leaf - Do not place player if the server is full - diff on change
|
||||
event.disallow(org.bukkit.event.player.PlayerLoginEvent.Result.KICK_FULL, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)); // Spigot // Paper - Adventure
|
||||
}
|
||||
}
|
||||
@@ -1251,7 +1258,7 @@ public abstract class PlayerList {
|
||||
|
||||
// Paper start - whitelist verify event / login event
|
||||
public LoginResult canBypassFullServerLogin(final GameProfile profile, final LoginResult currentResult) {
|
||||
- final boolean shouldKick = this.realPlayers.size() >= this.maxPlayers && !(/*player.hasPermission("purpur.joinfullserver") || */this.canBypassPlayerLimit(profile)); // Purpur - Allow player join full server by permission TODO: this hasn't worked for a while, so comment it out until we can reliably check perms of the player joining // Leaves - only real player
|
||||
+ final boolean shouldKick = this.realPlayers.size() >= this.maxPlayers && !(/*player.hasPermission("purpur.joinfullserver") || */this.canBypassPlayerLimit(profile)); // Purpur - Allow player join full server by permission TODO: this hasn't worked for a while, so comment it out until we can reliably check perms of the player joining // Leaves - only real player // Leaf - Do not place player if the server is full - diff on change
|
||||
final io.papermc.paper.event.player.PlayerServerFullCheckEvent fullCheckEvent = new io.papermc.paper.event.player.PlayerServerFullCheckEvent(
|
||||
com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(profile),
|
||||
io.papermc.paper.adventure.PaperAdventure.asAdventure(currentResult.message),
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix MC-119417
|
||||
Related MC issue: https://bugs.mojang.com/browse/MC/issues/MC-119417
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index b71b4db16ac8b42c0061f15db05d4315dd7fecb4..fdce25cdfdd91938a97dc381e4ada1744e64c931 100644
|
||||
index 0df36e136fb0ce928a207f8f58dfe10839be8507..54acc0d45edbbbb2423b5fa477e3d895aeb3149d 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -2294,6 +2294,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -2228,6 +2228,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.CHANGE_GAME_MODE, gameMode.getId()));
|
||||
if (gameMode == GameType.SPECTATOR) {
|
||||
this.removeEntitiesOnShoulder();
|
||||
|
||||
@@ -24,10 +24,10 @@ index a6be753d1284167e090c40e6dcfbaa56b4e3d774..867353500482247bbec79f407246902c
|
||||
if (this.goalSelector.inactiveTick(this.activatedPriority, true) && !isThrottled) { // Pufferfish - pass activated priroity // Pufferfish - throttle inactive goal selector ticking
|
||||
this.goalSelector.tick();
|
||||
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
||||
index 165d0f50e7818b6daf834507033feaa2fabcaf19..5106013430c17d4a55f666163d0cb1e4c0497302 100644
|
||||
index 014bb5b6e82bb11b756430999522f4b8f9356d9f..174c37fca6b2b03a6eb36d8c7c17b6e8ec49f1cd 100644
|
||||
--- a/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -375,7 +375,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -374,7 +374,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
if (this.getUnhappyCounter() > 0) {
|
||||
this.setUnhappyCounter(this.getUnhappyCounter() - 1);
|
||||
}
|
||||
|
||||
@@ -400,10 +400,10 @@ index 08d12a1acc3a672a77daa15f82392cd603c30283..c5949a0e852ca6de84e8dd12e3d4ed85
|
||||
}
|
||||
}
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index faa135c3eb1bfc8f52c90e6f88411fdf48ed9ee1..0dec7852a4f225b9e9e94debf9259faea625028f 100644
|
||||
index 3173922dbb478e46f892304fb17b0f662fe62b40..baa703a89583f72fab0ebbc40c85399022185c29 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -1914,7 +1914,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1916,7 +1916,7 @@ public class ServerGamePacketListenerImpl
|
||||
}
|
||||
|
||||
public void internalTeleport(PositionMoveRotation posMoveRotation, Set<Relative> relatives) {
|
||||
@@ -413,7 +413,7 @@ index faa135c3eb1bfc8f52c90e6f88411fdf48ed9ee1..0dec7852a4f225b9e9e94debf9259fae
|
||||
if (this.player.isRemoved()) {
|
||||
LOGGER.info("Attempt to teleport removed player {} restricted", player.getScoreboardName());
|
||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||
index 6c9ce4a979c084c9024a954d8315424cb7be27c7..19881624b91f44c9332ad4ba147a66837864da06 100644
|
||||
index d81d1303fc3d23b35dbc177dd6a4c7f489eb5381..78c212fb8a8a8ffefe6fc860f1e06d16ba09bb40 100644
|
||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -1342,13 +1342,13 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
|
||||
@@ -41,10 +41,10 @@ index 72cca4897f9697573fd6987a5f0d2df52761b8c3..04eea77cf84aaeb781608e48f2aa32f3
|
||||
|
||||
private static void throwHalfStack(Villager villager, Set<Item> stack, LivingEntity entity) {
|
||||
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
||||
index 5106013430c17d4a55f666163d0cb1e4c0497302..377e98469328f08db751c0f6a6f434b03f63c225 100644
|
||||
index 174c37fca6b2b03a6eb36d8c7c17b6e8ec49f1cd..a3040736384e54f26794db2bc938d63734f9614d 100644
|
||||
--- a/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -974,7 +974,17 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -973,7 +973,17 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
|
||||
private int countFoodPointsInInventory() {
|
||||
SimpleContainer inventory = this.getInventory();
|
||||
|
||||
@@ -38,10 +38,10 @@ index 0f311e603c8df175576a33d5d20369cbcda2be55..3a31f9132a7271ea476cc85c5a10ea7f
|
||||
.forEach(
|
||||
entity -> {
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index fdce25cdfdd91938a97dc381e4ada1744e64c931..4c1786201a4044db61e99c148fca4714e2b172ad 100644
|
||||
index 54acc0d45edbbbb2423b5fa477e3d895aeb3149d..df8732fc451d8aafa46a7980c5e51b6347f0f1ad 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1613,6 +1613,13 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1547,6 +1547,13 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
this.containerMenu.broadcastChanges();
|
||||
}
|
||||
|
||||
|
||||
@@ -651,27 +651,19 @@ index 3a31f9132a7271ea476cc85c5a10ea7f327256bf..58ec5cfb21d4834c3aaa74f76ca8a536
|
||||
// Paper start - extra debug info
|
||||
if (entity.valid) {
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 4c1786201a4044db61e99c148fca4714e2b172ad..163ac7b4b6fefb0c4594548dfffc0ea6f24f0765 100644
|
||||
index df8732fc451d8aafa46a7980c5e51b6347f0f1ad..f9664926de5706eda918b457301174734b0b0300 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -467,6 +467,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
return this.viewDistanceHolder;
|
||||
@@ -466,6 +466,8 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
}
|
||||
// Paper end - rewrite chunk system
|
||||
+
|
||||
// Paper start - improve keepalives
|
||||
public long lastKeepAliveTx = System.nanoTime();
|
||||
public static final record KeepAliveResponse(long txTimeNS, long rxTimeNS) {
|
||||
@@ -532,6 +533,8 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
}
|
||||
// Paper end - improve keepalives
|
||||
|
||||
+ public boolean hasTickedAtLeastOnceInNewWorld = false; // SparklyPaper - parallel world ticking (fixes bug in DreamResourceReset where the inventory is opened AFTER the player has changed worlds, if you click with the quick tp torch in a chest, because the inventory is opened AFTER the player has teleported)
|
||||
+
|
||||
public ServerPlayer(MinecraftServer server, ServerLevel level, GameProfile gameProfile, ClientInformation clientInformation) {
|
||||
super(level, gameProfile);
|
||||
this.textFilter = server.createTextFilterForPlayer(this);
|
||||
@@ -818,6 +821,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -752,6 +754,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
@@ -679,7 +671,7 @@ index 4c1786201a4044db61e99c148fca4714e2b172ad..163ac7b4b6fefb0c4594548dfffc0ea6
|
||||
// CraftBukkit start
|
||||
if (this.joining) {
|
||||
this.joining = false;
|
||||
@@ -1494,6 +1498,8 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1428,6 +1431,8 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
teleportTransition.postTeleportTransition().onTransition(this);
|
||||
return this;
|
||||
} else {
|
||||
@@ -688,7 +680,7 @@ index 4c1786201a4044db61e99c148fca4714e2b172ad..163ac7b4b6fefb0c4594548dfffc0ea6
|
||||
// CraftBukkit start
|
||||
/*
|
||||
this.isChangingDimension = true;
|
||||
@@ -1847,6 +1853,12 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1781,6 +1786,12 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
return OptionalInt.empty();
|
||||
} else {
|
||||
// CraftBukkit start
|
||||
@@ -701,7 +693,7 @@ index 4c1786201a4044db61e99c148fca4714e2b172ad..163ac7b4b6fefb0c4594548dfffc0ea6
|
||||
this.containerMenu = abstractContainerMenu; // Moved up
|
||||
if (!this.isImmobile())
|
||||
this.connection
|
||||
@@ -1911,6 +1923,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1845,6 +1856,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
}
|
||||
@Override
|
||||
public void closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason reason) {
|
||||
@@ -714,7 +706,7 @@ index 4c1786201a4044db61e99c148fca4714e2b172ad..163ac7b4b6fefb0c4594548dfffc0ea6
|
||||
// Paper end - Inventory close reason
|
||||
this.connection.send(new ClientboundContainerClosePacket(this.containerMenu.containerId));
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 3cd9b0df617715d0b3e70a6096e52bb5d22ab426..f1002643589f67adce26667b1750a1296c1fb67d 100644
|
||||
index ef283ec7934d143eeab482d99bf6fa8f327d2fe9..1b3a21ef16426234e782b1a297cd2e5c2505c666 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -251,6 +251,8 @@ public abstract class PlayerList {
|
||||
@@ -726,7 +718,7 @@ index 3cd9b0df617715d0b3e70a6096e52bb5d22ab426..f1002643589f67adce26667b1750a129
|
||||
player.isRealPlayer = true; // Paper
|
||||
player.loginTime = System.currentTimeMillis(); // Paper - Replace OfflinePlayer#getLastPlayed
|
||||
GameProfile gameProfile = player.getGameProfile();
|
||||
@@ -888,6 +890,15 @@ public abstract class PlayerList {
|
||||
@@ -854,6 +856,15 @@ public abstract class PlayerList {
|
||||
}
|
||||
|
||||
public ServerPlayer respawn(ServerPlayer player, boolean keepInventory, Entity.RemovalReason reason, @Nullable org.bukkit.event.player.PlayerRespawnEvent.RespawnReason eventReason, @Nullable org.bukkit.Location location) {
|
||||
@@ -742,7 +734,7 @@ index 3cd9b0df617715d0b3e70a6096e52bb5d22ab426..f1002643589f67adce26667b1750a129
|
||||
player.stopRiding(); // CraftBukkit
|
||||
this.players.remove(player);
|
||||
this.playersByName.remove(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot
|
||||
@@ -899,6 +910,7 @@ public abstract class PlayerList {
|
||||
@@ -865,6 +876,7 @@ public abstract class PlayerList {
|
||||
ServerPlayer serverPlayer = player;
|
||||
Level fromWorld = player.level();
|
||||
player.wonGame = false;
|
||||
@@ -1018,10 +1010,10 @@ index 3614551856c594f3c0cfee984fcf03fad672b007..f4577f908ca9f279b72d89e5b0822d34
|
||||
});
|
||||
entity.getBrain().eraseMemory(MemoryModuleType.POTENTIAL_JOB_SITE);
|
||||
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
||||
index 377e98469328f08db751c0f6a6f434b03f63c225..743c0c956ddd9e35d3c9c7b45fa8d36490d648dd 100644
|
||||
index a3040736384e54f26794db2bc938d63734f9614d..f456a44deac3645c44366ca1704ae25419baf52c 100644
|
||||
--- a/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -797,13 +797,21 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -796,13 +796,21 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
this.brain.getMemory(moduleType).ifPresent(pos -> {
|
||||
ServerLevel level = server.getLevel(pos.dimension());
|
||||
if (level != null) {
|
||||
|
||||
@@ -26,18 +26,18 @@ Locally this patch drops the entity tracker tick by a full 1.5x.
|
||||
Co-authored-by: Quang Tran <3d7777456@gmail.com>
|
||||
|
||||
diff --git a/net/minecraft/network/Connection.java b/net/minecraft/network/Connection.java
|
||||
index 1014ab2aeb5e496124c99c938538e88d75561cd5..2fda4bf1aeecba183ba6301f83f582ae34f5a3da 100644
|
||||
index e72eda830644851656fae3118c513d7bd701be45..01fb1bf0eba70b740b12731c79feadefc8fe96f0 100644
|
||||
--- a/net/minecraft/network/Connection.java
|
||||
+++ b/net/minecraft/network/Connection.java
|
||||
@@ -147,6 +147,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
@Nullable public SocketAddress haProxyAddress; // Paper - Add API to get player's proxy address
|
||||
@@ -148,6 +148,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
public @Nullable net.minecraft.server.level.ServerPlayer savedPlayerForLoginEventLegacy; // Paper - playerloginevent
|
||||
// Paper start - Optimize network
|
||||
public boolean isPending = true;
|
||||
+ private io.netty.channel.SingleThreadEventLoop eventLoop; // Paper - optimise packets that are not flushed
|
||||
public boolean queueImmunity;
|
||||
// Paper end - Optimize network
|
||||
|
||||
@@ -158,6 +159,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
@@ -159,6 +160,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
public void channelActive(ChannelHandlerContext context) throws Exception {
|
||||
super.channelActive(context);
|
||||
this.channel = context.channel();
|
||||
@@ -45,7 +45,7 @@ index 1014ab2aeb5e496124c99c938538e88d75561cd5..2fda4bf1aeecba183ba6301f83f582ae
|
||||
this.address = this.channel.remoteAddress();
|
||||
this.preparing = false; // Spigot
|
||||
if (this.delayedDisconnect != null) {
|
||||
@@ -472,6 +474,11 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
@@ -473,6 +475,11 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
if (this.channel.eventLoop().inEventLoop()) {
|
||||
this.doSendPacket(packet, channelFutureListener, flag);
|
||||
} else {
|
||||
|
||||
@@ -34,10 +34,10 @@ index 42dbd6d9e82130cfc5ae4669c460373631061451..b3356ad173027afafba931f31952c5b5
|
||||
for (int i = 0; i < this.tickables.size(); i++) {
|
||||
this.tickables.get(i).run();
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 163ac7b4b6fefb0c4594548dfffc0ea6f24f0765..479884c829a7550d39508bf37a2551f2ef52fcd1 100644
|
||||
index f9664926de5706eda918b457301174734b0b0300..8423a1cacf23e86eeb9b277b11e21c84bc298ab6 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -876,6 +876,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -809,6 +809,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
}
|
||||
}
|
||||
// Purpur end - Ridables
|
||||
@@ -45,11 +45,11 @@ index 163ac7b4b6fefb0c4594548dfffc0ea6f24f0765..479884c829a7550d39508bf37a2551f2
|
||||
}
|
||||
|
||||
private void updatePlayerAttributes() {
|
||||
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
index 23fefdc7122ff8e195c27651dc3a83000f62a95e..f90fc120d448ed2e3978682b189d4c955bc37051 100644
|
||||
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
@@ -206,6 +206,8 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index baa703a89583f72fab0ebbc40c85399022185c29..983f2b1c12d2e64c099ba7c717b9d2bc7f1770ce 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -3871,6 +3871,8 @@ public class ServerGamePacketListenerImpl
|
||||
|
||||
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
|
||||
|
||||
@@ -59,7 +59,7 @@ index 23fefdc7122ff8e195c27651dc3a83000f62a95e..f90fc120d448ed2e3978682b189d4c95
|
||||
final byte[] data = discardedPayload.data();
|
||||
try {
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 1a03bf5184b1b85d4cea97dc73795e8725bf2613..58e1b90132898e30aa15ed08c76b53165473999a 100644
|
||||
index 6c61c11f655002359fe8791b9a1704d354b8f993..daf2410db29adad3751da1b08fa1774d84190aff 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -690,6 +690,7 @@ public abstract class PlayerList {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Reduce PlayerChunk Updates
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 0dec7852a4f225b9e9e94debf9259faea625028f..c5b2033c323695f71009d765b64e7ed8f94b9258 100644
|
||||
index 983f2b1c12d2e64c099ba7c717b9d2bc7f1770ce..6dc940aa6ee513e5c87b6058ccaa90bba91bade9 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -1455,6 +1455,8 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1457,6 +1457,8 @@ public class ServerGamePacketListenerImpl
|
||||
this.resetPosition();
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ index 0dec7852a4f225b9e9e94debf9259faea625028f..c5b2033c323695f71009d765b64e7ed8
|
||||
if (this.player.hasClientLoaded()) {
|
||||
float f = Mth.wrapDegrees(packet.getYRot(this.player.getYRot())); final float toYaw = f; // Paper - OBFHELPER
|
||||
float f1 = Mth.wrapDegrees(packet.getXRot(this.player.getXRot())); final float toPitch = f1; // Paper - OBFHELPER
|
||||
@@ -1732,7 +1734,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1734,7 +1736,7 @@ public class ServerGamePacketListenerImpl
|
||||
&& !isFallFlying
|
||||
&& !isAutoSpinAttack
|
||||
&& this.noBlocksAround(this.player);
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Async switch connection state
|
||||
|
||||
|
||||
diff --git a/net/minecraft/network/Connection.java b/net/minecraft/network/Connection.java
|
||||
index 2fda4bf1aeecba183ba6301f83f582ae34f5a3da..df012a4c67d474125fafa01b1677d9220fc817ae 100644
|
||||
index 01fb1bf0eba70b740b12731c79feadefc8fe96f0..a6077984e139be5cbcc00f8f0828f1992d3604a6 100644
|
||||
--- a/net/minecraft/network/Connection.java
|
||||
+++ b/net/minecraft/network/Connection.java
|
||||
@@ -342,6 +342,11 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
@@ -343,6 +343,11 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
if (protocolInfo.flow() != this.getReceiving()) {
|
||||
throw new IllegalStateException("Invalid inbound protocol: " + protocolInfo.id());
|
||||
} else {
|
||||
@@ -20,7 +20,7 @@ index 2fda4bf1aeecba183ba6301f83f582ae34f5a3da..df012a4c67d474125fafa01b1677d922
|
||||
this.packetListener = packetInfo;
|
||||
this.disconnectListener = null;
|
||||
UnconfiguredPipelineHandler.InboundConfigurationTask inboundConfigurationTask = UnconfiguredPipelineHandler.setupInboundProtocol(protocolInfo);
|
||||
@@ -351,7 +356,14 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
@@ -352,7 +357,14 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
inboundConfigurationTask = inboundConfigurationTask.andThen(context -> context.pipeline().addAfter("decoder", "bundler", packetBundlePacker));
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ index 2fda4bf1aeecba183ba6301f83f582ae34f5a3da..df012a4c67d474125fafa01b1677d922
|
||||
}
|
||||
}
|
||||
|
||||
@@ -373,6 +385,31 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
@@ -374,6 +386,31 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ index 2fda4bf1aeecba183ba6301f83f582ae34f5a3da..df012a4c67d474125fafa01b1677d922
|
||||
if (this.packetListener != null) {
|
||||
throw new IllegalStateException("Listener already set");
|
||||
diff --git a/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java b/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java
|
||||
index b57f4e2528d73c3ba949cb7e5dce73871049968c..6b6a51af0198db0e157ee4cf5bd6b7751b69d3e5 100644
|
||||
index 91ca446e6e1d895d818fc7f844375101be6af5e8..8e24d76e24ad9788868934909a3c5e53823a5b13 100644
|
||||
--- a/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java
|
||||
@@ -140,11 +140,34 @@ public class ServerConfigurationPacketListenerImpl extends ServerCommonPacketLis
|
||||
@@ -110,10 +110,10 @@ index b57f4e2528d73c3ba949cb7e5dce73871049968c..6b6a51af0198db0e157ee4cf5bd6b775
|
||||
try {
|
||||
PlayerList playerList = this.server.getPlayerList();
|
||||
diff --git a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
index 6b0b0ccc18a5da05685867656705e1fcf94b5891..889bab9613fb32d239bb0613db4a900a442116a3 100644
|
||||
index 2e014cd543a6a790a0023835199b0e956e49fd1f..72115a4d2c54834f9edef02c83ed79f0fe380e78 100644
|
||||
--- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
@@ -493,11 +493,31 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
@@ -459,11 +459,31 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||
this.disconnect(ServerCommonPacketListenerImpl.DISCONNECT_UNEXPECTED_QUERY);
|
||||
}
|
||||
|
||||
@@ -145,4 +145,4 @@ index 6b0b0ccc18a5da05685867656705e1fcf94b5891..889bab9613fb32d239bb0613db4a900a
|
||||
+ if (!org.dreeam.leaf.config.modules.network.AlternativeJoin.enabled) this.connection.setupOutboundProtocol(ConfigurationProtocols.CLIENTBOUND); // Leaf - Async switch connection state
|
||||
CommonListenerCookie commonListenerCookie = CommonListenerCookie.createInitial(Objects.requireNonNull(this.authenticatedProfile), this.transferred);
|
||||
ServerConfigurationPacketListenerImpl serverConfigurationPacketListenerImpl = new ServerConfigurationPacketListenerImpl(
|
||||
this.server, this.connection, commonListenerCookie, this.player // CraftBukkit
|
||||
this.server, this.connection, commonListenerCookie
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Only tick items at hand
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 479884c829a7550d39508bf37a2551f2ef52fcd1..6d8c500839062ca0cad2ffc58dad0de1626c0eb9 100644
|
||||
index 8423a1cacf23e86eeb9b277b11e21c84bc298ab6..fcd6d892b96d3e82ebb1aecf9a7a595f7dbd757c 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -914,12 +914,19 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -847,12 +847,19 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
super.tick();
|
||||
}
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add configurable death item drop knockback settings
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 6d8c500839062ca0cad2ffc58dad0de1626c0eb9..cc015575efcb0c3d56d33510a1f43f40996eab1a 100644
|
||||
index fcd6d892b96d3e82ebb1aecf9a7a595f7dbd757c..9c84df53473a58a182a544fd9dd27491c0dc3638 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1133,7 +1133,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1066,7 +1066,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
if (!keepInventory) {
|
||||
for (ItemStack item : this.getInventory().getContents()) {
|
||||
if (!item.isEmpty() && !EnchantmentHelper.has(item, net.minecraft.world.item.enchantment.EnchantmentEffectComponents.PREVENT_EQUIPMENT_DROP)) {
|
||||
|
||||
@@ -79,10 +79,10 @@ index 6c7edbbf3935c40ccb78bee680ea75431718b9bd..fd2f79d976c9587b00380f8b8f784b32
|
||||
public String toString() {
|
||||
return "Reference{" + this.key + "=" + this.value + "}";
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index cc015575efcb0c3d56d33510a1f43f40996eab1a..672301fcfe89dda6fb20bc0cd18d18fc26cd2efa 100644
|
||||
index 9c84df53473a58a182a544fd9dd27491c0dc3638..02e02aaa81921802ff61c35505acf7bb39f733c3 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1979,7 +1979,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1912,7 +1912,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
this.awardStat(Stats.SWIM_ONE_CM, rounded);
|
||||
this.causeFoodExhaustion(this.level().spigotConfig.swimMultiplier * (float) rounded * 0.01F, org.bukkit.event.entity.EntityExhaustionEvent.ExhaustionReason.SWIM); // CraftBukkit - EntityExhaustionEvent // Spigot
|
||||
}
|
||||
@@ -175,7 +175,7 @@ index c8354d46ed909090f7c15f396863bf7d73afcefa..3ee788b172240ccf38cb31385dff1336
|
||||
} else if (!flag) {
|
||||
this.applyGravity();
|
||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||
index f95792b8642dc86a4d88e1d756de65d6cae2fa98..be8cc4aceafc183808a6d0f7278ef8378c4265e0 100644
|
||||
index f1975e5ab19da6dd1d8b94503924471e3efab921..6f57a8de40a398312e14282ff6764a633a949049 100644
|
||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -463,7 +463,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
|
||||
|
||||
@@ -22,10 +22,10 @@ index 22c1545a0329d56e0ec41ae4da1e1922aa1f9737..e89e4c26c40cbb3ef002022f22886d5f
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
||||
index 743c0c956ddd9e35d3c9c7b45fa8d36490d648dd..c029256175b27bb5f0d30e3fa7371f04c2069fd6 100644
|
||||
index f456a44deac3645c44366ca1704ae25419baf52c..db23240fed3fb8b9bc2a7f670d7bfd8ab80ffcd6 100644
|
||||
--- a/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -1095,6 +1095,21 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -1094,6 +1094,21 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ Some random optimizations
|
||||
- Secret patches (WIP)
|
||||
|
||||
diff --git a/net/minecraft/Util.java b/net/minecraft/Util.java
|
||||
index 1f4208388a923f9a1667dc13d937955ac233d88e..6e3bd3944b56010c3eabcdcd11424518bbb980fa 100644
|
||||
index 9f7288223bc1f13e3664d82d2e883336f527e5e2..ed51fd7c4c9f26dbcc348e6aefcafd367b1dd7bc 100644
|
||||
--- a/net/minecraft/Util.java
|
||||
+++ b/net/minecraft/Util.java
|
||||
@@ -96,7 +96,7 @@ public class Util {
|
||||
@@ -33,10 +33,10 @@ index 1f4208388a923f9a1667dc13d937955ac233d88e..6e3bd3944b56010c3eabcdcd11424518
|
||||
|
||||
public static void shutdownExecutors() {
|
||||
diff --git a/net/minecraft/network/Connection.java b/net/minecraft/network/Connection.java
|
||||
index df012a4c67d474125fafa01b1677d9220fc817ae..7992df93f4eebb9ca41b9bca2784aec718d4efb8 100644
|
||||
index a6077984e139be5cbcc00f8f0828f1992d3604a6..4142ef85071b13427f99808482a1f1344ee976d3 100644
|
||||
--- a/net/minecraft/network/Connection.java
|
||||
+++ b/net/minecraft/network/Connection.java
|
||||
@@ -644,13 +644,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
@@ -645,13 +645,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
if (!(this.packetListener instanceof net.minecraft.server.network.ServerLoginPacketListenerImpl loginPacketListener)
|
||||
|| loginPacketListener.state != net.minecraft.server.network.ServerLoginPacketListenerImpl.State.VERIFYING
|
||||
|| Connection.joinAttemptsThisTick++ < MAX_PER_TICK) {
|
||||
@@ -100,7 +100,7 @@ index 4535858701b2bb232b9d2feb2af6551526232ddc..e65c62dbe4c1560ae153e4c4344e9194
|
||||
- // Paper end - detailed watchdog information
|
||||
}
|
||||
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
||||
index c49d2f7314a35763831285d7d46d34dade2f0085..79f2b26bc466238ec83cd049f38d257b0000028d 100644
|
||||
index 08c6f93bcc028c876e17870681382aa9fa2ba3ee..58a77b5aa49cb56eea33757e982ba1852bbfb679 100644
|
||||
--- a/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -1518,13 +1518,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Paper Changes
|
||||
Original license: MIT
|
||||
Original project: https://github.com/PurpurMC/Purpur
|
||||
|
||||
Commit: a112b6aca718e4500a6d48ca9d7158faf0f4adf9
|
||||
Commit: 591baf2648d0f75ffecc52f1d169348af35246dd
|
||||
|
||||
Patches listed below are removed in this patch, They exists in Gale or Leaf:
|
||||
* "Rebrand.patch"
|
||||
@@ -127,7 +127,7 @@ index 0000000000000000000000000000000000000000..15a226e3854d731f7724025ea3459c8a
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
|
||||
index 94bf04bb1c646ec5ba1d42f4b7b3e6c200707beb..3e41a308cf92b841b5375250d1380d16af3d0309 100644
|
||||
index e6ad63a56dc0fc969dbf3ed5bdc36b4187331e30..f99ee5383bb9f33c1ebdbc74a640c2f7dc20a046 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
|
||||
@@ -142,6 +142,10 @@ public class MobGoalHelper {
|
||||
@@ -1068,10 +1068,10 @@ index 02deb9c37250144be9afa0fe55df2a49017a7070..dfb597fcb8d01ed6cf20eae57e260949
|
||||
+ // Purpur end - Llama API
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 3e18819ae23ab5ecd866d61cd0fd62ce1324109e..7f17c5025f25e44a917f5d6a65b8d958a982b301 100644
|
||||
index 3ea6d207b2189fa6bebe101bfc98093c2c6b19c7..7f5eca8f32ae1afe3e6d2544b76cf0bbe131109f 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -625,10 +625,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -575,10 +575,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
|
||||
@Override
|
||||
public void setPlayerListName(String name) {
|
||||
@@ -1088,7 +1088,7 @@ index 3e18819ae23ab5ecd866d61cd0fd62ce1324109e..7f17c5025f25e44a917f5d6a65b8d958
|
||||
if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined
|
||||
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
|
||||
if (player.getBukkitEntity().canSee(this)) {
|
||||
@@ -1442,6 +1447,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -1392,6 +1397,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
// Paper start - Teleport passenger API
|
||||
// Don't allow teleporting between worlds while keeping passengers
|
||||
if (ignorePassengers && entity.isVehicle() && location.getWorld() != this.getWorld()) {
|
||||
@@ -1096,7 +1096,7 @@ index 3e18819ae23ab5ecd866d61cd0fd62ce1324109e..7f17c5025f25e44a917f5d6a65b8d958
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1463,6 +1469,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -1413,6 +1419,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
}
|
||||
|
||||
if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API
|
||||
@@ -1104,7 +1104,7 @@ index 3e18819ae23ab5ecd866d61cd0fd62ce1324109e..7f17c5025f25e44a917f5d6a65b8d958
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2726,6 +2733,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -2676,6 +2683,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
return this.getHandle().getAbilities().walkingSpeed * 2f;
|
||||
}
|
||||
|
||||
@@ -1133,9 +1133,9 @@ index 3e18819ae23ab5ecd866d61cd0fd62ce1324109e..7f17c5025f25e44a917f5d6a65b8d958
|
||||
private void validateSpeed(float value) {
|
||||
Preconditions.checkArgument(value <= 1f && value >= -1f, "Speed value (%s) need to be between -1f and 1f", value);
|
||||
}
|
||||
@@ -3569,4 +3598,76 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
public void setDeathScreenScore(final int score) {
|
||||
getHandle().setScore(score);
|
||||
@@ -3524,4 +3553,76 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
public PlayerGameConnection getConnection() {
|
||||
return this.getHandle().connection.playerGameConnection;
|
||||
}
|
||||
+
|
||||
+ // Purpur start - Purpur client support
|
||||
@@ -1292,10 +1292,10 @@ index 33866c5a5591150de4c1d8f4c175122db3bd5bd4..5fd656f43985e3972c9f572d5b05bf5c
|
||||
+ // Purpur end - Configurable chance for wolves to spawn rabid
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
index c5daefa56597bd13fe227fa014ca5225c00a2a2d..98b766d115856dbf3ea11a983c1304591032f1b0 100644
|
||||
index 1d112510093d5eb5117adf16b92dd3411a610a4a..a162440a583801671787163d998d6b9546ef7e61 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
@@ -515,6 +515,15 @@ public class CraftEventFactory {
|
||||
@@ -525,6 +525,15 @@ public class CraftEventFactory {
|
||||
}
|
||||
craftServer.getPluginManager().callEvent(event);
|
||||
|
||||
@@ -1311,7 +1311,7 @@ index c5daefa56597bd13fe227fa014ca5225c00a2a2d..98b766d115856dbf3ea11a983c130459
|
||||
return event;
|
||||
}
|
||||
|
||||
@@ -1047,6 +1056,7 @@ public class CraftEventFactory {
|
||||
@@ -1057,6 +1066,7 @@ public class CraftEventFactory {
|
||||
EntityDamageEvent event;
|
||||
if (damager != null) {
|
||||
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical);
|
||||
@@ -1320,10 +1320,10 @@ index c5daefa56597bd13fe227fa014ca5225c00a2a2d..98b766d115856dbf3ea11a983c130459
|
||||
event = new EntityDamageEvent(damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions);
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java
|
||||
index c00ddfe41439954fa0fd87c0933f274c8a752eb6..5fde4c71915f55f100cd30406803d6fca5b573dc 100644
|
||||
index 2f41a92465b9da28e026297cc3528898bb1c8412..83ae4b40e33e0dc58e0fd6aacf22e22ae0cd3684 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java
|
||||
@@ -150,8 +150,19 @@ public class CraftContainer extends AbstractContainerMenu {
|
||||
@@ -148,8 +148,19 @@ public class CraftContainer extends AbstractContainerMenu {
|
||||
case PLAYER:
|
||||
case CHEST:
|
||||
case ENDER_CHEST:
|
||||
|
||||
@@ -7,10 +7,10 @@ Original license: MIT
|
||||
Original project: https://github.com/KeYiMC/KeYi
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 7f17c5025f25e44a917f5d6a65b8d958a982b301..94efaf127c22b6bb722982bf1ccc63bfd6458153 100644
|
||||
index 7f5eca8f32ae1afe3e6d2544b76cf0bbe131109f..571b1337b5a4dcbe0fe09b86198c8ed068a4e81b 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -3670,4 +3670,31 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -3625,4 +3625,31 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundPlayerCombatKillPacket(getEntityId(), io.papermc.paper.adventure.PaperAdventure.asVanilla(message)));
|
||||
}
|
||||
// Purpur end - Death screen API
|
||||
|
||||
@@ -9,10 +9,10 @@ Original project: https://github.com/Cryptite/Slice
|
||||
Co-authored-by: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com>
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 94efaf127c22b6bb722982bf1ccc63bfd6458153..c5da43af18b507d348dae8fa46852c1d1af65742 100644
|
||||
index 571b1337b5a4dcbe0fe09b86198c8ed068a4e81b..d612623cf25f454cc535c5d395758ed510d345f6 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -1392,6 +1392,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -1342,6 +1342,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
// Paper end - Teleportation API
|
||||
}
|
||||
|
||||
|
||||
@@ -73,10 +73,10 @@ index 476eefebace887064b728f08af40c746b6f70787..beae8a57a0ce9b8e7d81619efe4c39d9
|
||||
if (entity instanceof EnderDragonPart complexPart) {
|
||||
if (complexPart.parentMob instanceof EnderDragon) {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index c5da43af18b507d348dae8fa46852c1d1af65742..4fcc231b0acbb536f3f6466454555845fe54a815 100644
|
||||
index d612623cf25f454cc535c5d395758ed510d345f6..d8dcb28810668b26b538a6d26038e295d10019e4 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -2294,7 +2294,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -2244,7 +2244,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
|
||||
@Override
|
||||
public boolean canSee(Player player) {
|
||||
|
||||
@@ -16,10 +16,10 @@ This seems stupid, but it does seem that it improves the performance a bit, and
|
||||
We also create a "canSee" method tailored for "ChunkMap#updatePlayer()", a method without the equals check (the "updatePlayer()" already checks if the entity is the same entity) because the CraftPlayer's `equals()` check is a *bit* expensive compared to only checking the object's identity, and because the identity has already been check, we don't need to check it twice.
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 4fcc231b0acbb536f3f6466454555845fe54a815..a6d89e3e6dcdfac785111706dfceabffa0a52cbf 100644
|
||||
index d8dcb28810668b26b538a6d26038e295d10019e4..384b11fdf3606f0ee59ea1e58a3a312e3898fce6 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -227,7 +227,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -228,7 +228,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
private boolean hasPlayedBefore = false;
|
||||
private final ConversationTracker conversationTracker = new ConversationTracker();
|
||||
private final Set<String> channels = new HashSet<String>();
|
||||
@@ -28,7 +28,7 @@ index 4fcc231b0acbb536f3f6466454555845fe54a815..a6d89e3e6dcdfac785111706dfceabff
|
||||
private final Set<UUID> unlistedEntities = new HashSet<>(); // Paper - Add Listing API for Player
|
||||
private static final WeakHashMap<Plugin, WeakReference<Plugin>> pluginWeakReferences = new WeakHashMap<>();
|
||||
private int hash = 0;
|
||||
@@ -2299,9 +2299,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -2249,9 +2249,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
|
||||
@Override
|
||||
public boolean canSee(org.bukkit.entity.Entity entity) {
|
||||
|
||||
@@ -72,10 +72,10 @@ index beae8a57a0ce9b8e7d81619efe4c39d908869319..6b1926080eddf61ff9c0156a6846f7f0
|
||||
}
|
||||
return set;
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index a6d89e3e6dcdfac785111706dfceabffa0a52cbf..66d555e97177e340ee1c07ae389a6c52855dd3d9 100644
|
||||
index 384b11fdf3606f0ee59ea1e58a3a312e3898fce6..15d549931183e0c9a7dc54737fc2947af58934b0 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -2895,7 +2895,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -2845,7 +2845,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
Iterator<AttributeInstance> iterator = collection.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
AttributeInstance genericInstance = iterator.next();
|
||||
@@ -85,10 +85,10 @@ index a6d89e3e6dcdfac785111706dfceabffa0a52cbf..66d555e97177e340ee1c07ae389a6c52
|
||||
break;
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
index 98b766d115856dbf3ea11a983c1304591032f1b0..62cefed7674a6938698a57f5f89750d120461e9c 100644
|
||||
index a162440a583801671787163d998d6b9546ef7e61..5e73db484a5526f4c39c7cc2de5ddc3ff037d2e4 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
@@ -1798,6 +1798,26 @@ public class CraftEventFactory {
|
||||
@@ -1808,6 +1808,26 @@ public class CraftEventFactory {
|
||||
}
|
||||
|
||||
public static boolean handleBlockFormEvent(Level world, BlockPos pos, net.minecraft.world.level.block.state.BlockState state, int flags, @Nullable Entity entity, boolean checkSetResult) {
|
||||
|
||||
@@ -1508,7 +1508,7 @@ index 196835bdf95ba0e149b2977e9ef41698971f501f..eb7e63d4549e672ff1206055d2d75439
|
||||
net.minecraft.world.item.ItemStack nms = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item);
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||
index eb51cfce4069035664d2d1e3d30ab681e917dee6..aea45592a3e870b9474e64317c329c55ffbebfdb 100644
|
||||
index db71a9fc02bfac7799b58f07da044e53b2273e98..842713df01a0bde562b2bef366af7d5429497bae 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||
@@ -195,14 +195,14 @@ public final class CraftBlockStates {
|
||||
@@ -1530,10 +1530,10 @@ index eb51cfce4069035664d2d1e3d30ab681e917dee6..aea45592a3e870b9474e64317c329c55
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
index 62cefed7674a6938698a57f5f89750d120461e9c..3c21b9701e0266bc56e6d3fc855bf49ed381441c 100644
|
||||
index 5e73db484a5526f4c39c7cc2de5ddc3ff037d2e4..acb5182a59859f65653cd309ca85b8301ace5383 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
@@ -819,6 +819,28 @@ public class CraftEventFactory {
|
||||
@@ -829,6 +829,28 @@ public class CraftEventFactory {
|
||||
}
|
||||
|
||||
public static BlockPos sourceBlockOverride = null; // SPIGOT-7068: Add source block override, not the most elegant way but better than passing down a BlockPos up to five methods deep.
|
||||
@@ -1562,7 +1562,7 @@ index 62cefed7674a6938698a57f5f89750d120461e9c..3c21b9701e0266bc56e6d3fc855bf49e
|
||||
|
||||
public static boolean handleBlockSpreadEvent(LevelAccessor world, BlockPos source, BlockPos target, net.minecraft.world.level.block.state.BlockState state, int flags) {
|
||||
return handleBlockSpreadEvent(world, source, target, state, flags, false);
|
||||
@@ -834,7 +856,10 @@ public class CraftEventFactory {
|
||||
@@ -844,7 +866,10 @@ public class CraftEventFactory {
|
||||
CraftBlockState snapshot = CraftBlockStates.getBlockState(world, target);
|
||||
snapshot.setData(state);
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div align="center">
|
||||
|
||||
[](https://www.leafmc.one/zh/download)⠀
|
||||
[](https://github.com/Winds-Studio/Leaf/actions)⠀
|
||||
[](https://github.com/Winds-Studio/Leaf/actions)⠀
|
||||

|
||||
[](https://www.leafmc.one/zh/docs)
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
<dependency>
|
||||
<groupId>cn.dreeam.leaf</groupId>
|
||||
<artifactId>leaf-api</artifactId>
|
||||
<version>1.21.6-R0.1-SNAPSHOT</version>
|
||||
<version>1.21.7-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
```
|
||||
@@ -78,7 +78,7 @@ repositories {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("cn.dreeam.leaf:leaf-api:1.21.6-R0.1-SNAPSHOT")
|
||||
compileOnly("cn.dreeam.leaf:leaf-api:1.21.7-R0.1-SNAPSHOT")
|
||||
}
|
||||
|
||||
java {
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
set -e
|
||||
|
||||
IS_EOL=false
|
||||
IS_UNSUPPORTED=true
|
||||
IS_UNSUPPORTED=false
|
||||
IS_DEV=false
|
||||
|
||||
JAR_NAME="leaf-1.21.6"
|
||||
CURRENT_TAG="ver-1.21.6"
|
||||
JAR_NAME="leaf-1.21.7"
|
||||
CURRENT_TAG="ver-1.21.7"
|
||||
RELEASE_NOTES="release_notes.md"
|
||||
|
||||
# Rename Leaf jar
|
||||
mv ./leaf-server/build/libs/leaf-paperclip-1.21.6-R0.1-SNAPSHOT-mojmap.jar ./$JAR_NAME-${BUILD_NUMBER}.jar
|
||||
mv ./leaf-server/build/libs/leaf-paperclip-1.21.7-R0.1-SNAPSHOT-mojmap.jar ./$JAR_NAME-${BUILD_NUMBER}.jar
|
||||
|
||||
# Branch name
|
||||
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
||||
|
||||
@@ -64,7 +64,7 @@ fi
|
||||
|
||||
# Purpur updates
|
||||
if [ -n "$purpurHash" ]; then
|
||||
purpur=$(getCommits "PurpurMC/Purpur" "$purpurHash" "ver/1.21.6") # Update this on every version update
|
||||
purpur=$(getCommits "PurpurMC/Purpur" "$purpurHash" "ver/1.21.7") # Update this on every version update
|
||||
|
||||
# Updates found
|
||||
if [ -n "$purpur" ]; then
|
||||
|
||||
Reference in New Issue
Block a user