Compare commits
100 Commits
release-22
...
dev-1.20.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
63c63f844e | ||
|
|
0f0f925cb8 | ||
|
|
c0273a9343 | ||
|
|
326a88dca5 | ||
|
|
cb3099170e | ||
|
|
a2120f0c82 | ||
|
|
1c33d683c8 | ||
|
|
ff30483d2c | ||
|
|
3884819fff | ||
|
|
41df279b8b | ||
|
|
8730a4d0a5 | ||
|
|
c357668334 | ||
|
|
9cde439cce | ||
|
|
0290b04ffd | ||
|
|
d63b408e89 | ||
|
|
5efc27e381 | ||
|
|
4042f69c8d | ||
|
|
617172ab6c | ||
|
|
7737cd805a | ||
|
|
4c26d69762 | ||
|
|
078fbd108c | ||
|
|
318376a16f | ||
|
|
74c593fa04 | ||
|
|
c6c048c34f | ||
|
|
017f695244 | ||
|
|
ecbebeb403 | ||
|
|
5bf8a8124e | ||
|
|
3e35bff9a0 | ||
|
|
cb7a348e89 | ||
|
|
eea08a3ecd | ||
|
|
b49ad3f336 | ||
|
|
3ba3fe9814 | ||
|
|
2adeb25bff | ||
|
|
c93e0ff16a | ||
|
|
5c5d10ae4e | ||
|
|
057b293ed5 | ||
|
|
9c54aed53d | ||
|
|
a637a72412 | ||
|
|
8f116cc067 | ||
|
|
8b317976a9 | ||
|
|
986a3f4598 | ||
|
|
5671b24941 | ||
|
|
59b163d8fa | ||
|
|
67c03ea3ec | ||
|
|
d8856b5127 | ||
|
|
a76facf92e | ||
|
|
34162ce62e | ||
|
|
eea18dca7c | ||
|
|
f427c79af9 | ||
|
|
a3142d6319 | ||
|
|
3949e2feb5 | ||
|
|
514495bb90 | ||
|
|
60aa2f51c4 | ||
|
|
ff191c4cca | ||
|
|
8058507e4d | ||
|
|
ef2cf1d921 | ||
|
|
e1445c2d7d | ||
|
|
8c84468144 | ||
|
|
9e6a4071bb | ||
|
|
567c2be31a | ||
|
|
37621427cf | ||
|
|
8a64698c4e | ||
|
|
acf6e2df01 | ||
|
|
1f0f3fe45f | ||
|
|
9237ea8410 | ||
|
|
e622c64617 | ||
|
|
6ddb56dde7 | ||
|
|
d598e114a6 | ||
|
|
f6a1d5825f | ||
|
|
0c997c2e0c | ||
|
|
8c336c7e8e | ||
|
|
af9f9f76f3 | ||
|
|
ed191511cf | ||
|
|
f0e1e58914 | ||
|
|
6bf0230eb6 | ||
|
|
11623bf432 | ||
|
|
23e724232e | ||
|
|
4193f4b1aa | ||
|
|
bb4a0d5d54 | ||
|
|
4e89f2a271 | ||
|
|
5184e6e4c1 | ||
|
|
d644aad71e | ||
|
|
5e4f190507 | ||
|
|
b4836df2f1 | ||
|
|
aac53a4a99 | ||
|
|
6745278fd3 | ||
|
|
d890f1a3d8 | ||
|
|
7d176f7404 | ||
|
|
9b5e4e162c | ||
|
|
d96d3069d7 | ||
|
|
31ab8fd1f4 | ||
|
|
e97aefe2a7 | ||
|
|
a4f2120454 | ||
|
|
84f31480cb | ||
|
|
9937ef0e3b | ||
|
|
41b1677130 | ||
|
|
26154a8a1a | ||
|
|
1cc6619c3d | ||
|
|
472833fe85 | ||
|
|
257f3db70f |
19
.github/workflows/build.yml
vendored
19
.github/workflows/build.yml
vendored
@@ -7,15 +7,15 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
ORG_NAME: PlazmaMC
|
ORG_NAME: PlazmaMC
|
||||||
MC_VERSION: 1.19.4
|
MC_VERSION: 1.20.2
|
||||||
MAIN_BRANCH: ver/1.19.4
|
MAIN_BRANCH: ver/1.20.1
|
||||||
DEBUG: 'false'
|
DEBUG: 'false'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
base_jdk: [19]
|
base_jdk: [17]
|
||||||
graal: [latest]
|
graal: [latest]
|
||||||
os: [ubuntu-22.04]
|
os: [ubuntu-22.04]
|
||||||
|
|
||||||
@@ -84,6 +84,7 @@ jobs:
|
|||||||
Plazma-API/build/docs/javadoc
|
Plazma-API/build/docs/javadoc
|
||||||
|
|
||||||
- name: Get Release Number
|
- name: Get Release Number
|
||||||
|
if: startsWith(github.ref_name, 'ver/')
|
||||||
run: echo "RELEASE=$(git ls-remote --tags origin | grep "release" | wc -l)" >> $GITHUB_ENV
|
run: echo "RELEASE=$(git ls-remote --tags origin | grep "release" | wc -l)" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Release Artifacts
|
- name: Release Artifacts
|
||||||
@@ -96,7 +97,7 @@ jobs:
|
|||||||
files: build/libs/*.jar
|
files: build/libs/*.jar
|
||||||
prerelease: false
|
prerelease: false
|
||||||
|
|
||||||
- name: Release Artifacts (Latest)
|
- name: Release Artifacts (Latest/Stable)
|
||||||
if: startsWith(github.ref_name, 'ver/')
|
if: startsWith(github.ref_name, 'ver/')
|
||||||
uses: marvinpinto/action-automatic-releases@latest
|
uses: marvinpinto/action-automatic-releases@latest
|
||||||
with:
|
with:
|
||||||
@@ -105,3 +106,13 @@ jobs:
|
|||||||
repo_token: "${{ secrets.GH_PAT }}"
|
repo_token: "${{ secrets.GH_PAT }}"
|
||||||
files: build/libs/*.jar
|
files: build/libs/*.jar
|
||||||
prerelease: false
|
prerelease: false
|
||||||
|
|
||||||
|
- name: Release Artifacts (Latest/Development)
|
||||||
|
if: startsWith(github.ref_name, 'dev/')
|
||||||
|
uses: marvinpinto/action-automatic-releases@latest
|
||||||
|
with:
|
||||||
|
title: "Development build for ${{ env.MC_VERSION }}"
|
||||||
|
automatic_release_tag: dev-${{ env.MC_VERSION }}
|
||||||
|
repo_token: "${{ secrets.GH_PAT }}"
|
||||||
|
files: build/libs/*.jar
|
||||||
|
prerelease: true
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
purpurCommit = f69b21de45f18232c052f6fa84f0c977cd1f228b
|
purpurCommit = 6a6706d3b4f934845a44ecd7533bf53966e4857c
|
||||||
pufferfishCommit = b7781634b0800476107ed4a0b38fb24c13da6bf8
|
pufferfishCommit = 2c3f3fd4e1df97dc7ff8d770061138144847850e
|
||||||
|
|||||||
45
README.md
45
README.md
@@ -1,48 +1,31 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||

|
[](https://github.com/PlazmaMC/Plazma)
|
||||||
|
|
||||||
### A Server Platform for Minecraft: Java Edition based on [Paper](https://github.com/PaperMC/Paper)
|
### A Server Platform for Minecraft: Java Edition based on [Paper](https://github.com/PaperMC/Paper)
|
||||||
|
|
||||||
[](README.md)
|
[](https://discord.gg/MmfC52K8A8)
|
||||||
[](https://github.com/PlazmaMC/Plazma/actions/workflows/build.yml?query=branch:ver/1.19.4)
|
[](https://github.com/PlazmaMC/Plazma/actions/workflows/build.yml?query=branch:ver/1.20.1)
|
||||||
[](https://github.com/PlazmaMC/AlwaysUpToDate/actions/workflows/plazma.yml)
|
[](https://github.com/PlazmaMC/AlwaysUpToDate/actions/workflows/plazma.yml)
|
||||||
|
[](https://github.com/PlazmaMC/Plazma/releases/latest-1.20.1)
|
||||||
|
|
||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
[](https://discord.gg/MmfC52K8A8)
|
[](https://github.com/PlazmaMC/Plazma/releases/tag/latest-1.20.1)
|
||||||
[](https://github.com/PlazmaMC/Plazma/releases/latest-1.19.4)
|
|
||||||
|
|
||||||
[](https://github.com/PlazmaMC/Plazma/releases/tag/latest-1.19.4)
|
|
||||||
[](https://github.com/PlazmaMC/Plazma/stargazers)
|
[](https://github.com/PlazmaMC/Plazma/stargazers)
|
||||||
[](https://github.com/PPlazmaMC/Plazma/network/members)
|
[](https://github.com/PPlazmaMC/Plazma/network/members)
|
||||||
[](https://github.com/PlazmaMC/Plazma/watchers)
|
[](https://github.com/PlazmaMC/Plazma/watchers)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
## ⚠️ Warning
|
[main]: https://github.com/PlazmaMC/Plazma
|
||||||
- Plazma may cause **<u>unexpected problems</u>**, so **don't use** it in production server!
|
|
||||||
|
|
||||||
## 💬 About Plazma...
|
### This is the branch for Plazma 1.20.2. If you want to know more about Plazma, please check the [main branch][main].
|
||||||
- **Plazma** is created from the merger of **[Andromeda](https://github.com/TeamEarendel/Andromeda)** and **[Fusion](https://github.com/RuinedTechnologyUnify/Fusion)**
|
이곳은 플라즈마의 1.20.2용 브랜치 입니다. 플라즈마에 대해 자세히 알고 싶다면 [main 브랜치][main]를 확인해주세요.
|
||||||
- Compatible and effective patches from other bukkits and mods
|
|
||||||
- We're always trying to keep it compatible and performance high.
|
|
||||||
|
|
||||||
## ⚙️ Features
|
|
||||||
- **Based on [Paper](https://github.com/PaperMC/Paper)** - Most plugins of Bukkit, Craft Bukkit, Spigot, and Paper are available
|
|
||||||
- **Including [Pufferfish](https://github.com/pufferfish-gg/Pufferfish) and [Purpur](https://github.com/PurpurMC/Purpur)** - Provides multiple optimizations and customizations
|
|
||||||
|
|
||||||
## ⬇️ Downloads
|
## ⬇️ Downloads
|
||||||
- You can download the file from [Releases](https://github.com/PlazmaMC/Plazma/releases)
|
### If you don't know about Mojmap or Bundler, download **Reobf Paperclip**
|
||||||
- Direct latest download: [Click here](https://github.com/PlazmaMC/Plazma/releases/download/latest-1.19.4/plazma-paperclip-1.19.4-R0.1-SNAPSHOT-reobf.jar)
|
Mojmap 또는 Bundler에 대해 잘 알지 못한다면, **Reobf Paperclip**을 사용하세요
|
||||||
- NOTE: If you don't know about Mojmap or Bundler, download `plazma-paperclip-*-reobf.jar`
|
|
||||||
|
|
||||||
## ⚖️ License
|
| **Reobf Paperclip (Default)** | Mojmap Paperclip | Reobf Bundler | Mojmap Bundler |
|
||||||
- This project and all patches are licensed under the [MIT license](LICENSE.md) unless otherwise noted in the patch headers.
|
| :---: | :---: | :---: | :---: |
|
||||||
|
| [Download](https://github.com/PlazmaMC/Plazma/releases/download/latest-1.20.1/plazma-paperclip-1.20.1-R0.1-SNAPSHOT-reobf.jar) | [Download](https://github.com/PlazmaMC/Plazma/releases/download/latest-1.20.1/plazma-paperclip-1.20.1-R0.1-SNAPSHOT-mojmap.jar) | [Download](https://github.com/PlazmaMC/Plazma/releases/download/latest-1.20.1/plazma-bundler-1.20.1-R0.1-SNAPSHOT-reobf.jar) | [Download](https://github.com/PlazmaMC/Plazma/releases/download/latest-1.20.1/plazma-bundler-1.20.1-R0.1-SNAPSHOT-mojmap.jar) |
|
||||||
## 🌀 Sponsorship - Minecraft Development Dictionary (KOREAN)
|
|
||||||
[](https://discord.gg/AZwXTA9Pgx)
|
|
||||||
- 한글로 번역&정리된 Minecraft와 서드파티 버킷들의 소식들을 빠르게 만나볼 수 있습니다.
|
|
||||||
- Skript와 Plugin등 서버 개발과 관련된 질문에 대한 답변을 받으실 수 있습니다.
|
|
||||||
|
|
||||||
## 📈 bStats
|
|
||||||
[](https://bstats.org/plugin/server-implementation/Plazma/18047)
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ plugins {
|
|||||||
java
|
java
|
||||||
`maven-publish`
|
`maven-publish`
|
||||||
id("com.github.johnrengelman.shadow") version "8.1.1" apply false
|
id("com.github.johnrengelman.shadow") version "8.1.1" apply false
|
||||||
id("io.papermc.paperweight.patcher") version "1.5.4"
|
id("io.papermc.paperweight.patcher") version "1.5.7-SNAPSHOT"
|
||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
@@ -18,7 +18,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
remapper("net.fabricmc:tiny-remapper:0.8.6:fat")
|
remapper("net.fabricmc:tiny-remapper:0.8.10:fat")
|
||||||
decompiler("net.minecraftforge:forgeflower:2.0.627.2")
|
decompiler("net.minecraftforge:forgeflower:2.0.627.2")
|
||||||
paperclip("io.papermc:paperclip:3.0.3")
|
paperclip("io.papermc:paperclip:3.0.3")
|
||||||
}
|
}
|
||||||
@@ -26,30 +26,27 @@ dependencies {
|
|||||||
subprojects {
|
subprojects {
|
||||||
apply(plugin = "java")
|
apply(plugin = "java")
|
||||||
|
|
||||||
java {
|
java.toolchain.languageVersion.set(JavaLanguageVersion.of(17))
|
||||||
toolchain {
|
|
||||||
languageVersion.set(JavaLanguageVersion.of(17))
|
tasks {
|
||||||
|
withType<JavaCompile>().configureEach {
|
||||||
|
options.compilerArgs.add("--add-modules=jdk.incubator.vector")
|
||||||
|
options.encoding = "UTF-8"
|
||||||
|
options.release.set(17)
|
||||||
|
}
|
||||||
|
|
||||||
|
withType<Javadoc> {
|
||||||
|
options.encoding = Charsets.UTF_8.name()
|
||||||
|
}
|
||||||
|
|
||||||
|
withType<ProcessResources> {
|
||||||
|
filteringCharset = Charsets.UTF_8.name()
|
||||||
|
}
|
||||||
|
|
||||||
|
withType<Test> {
|
||||||
|
minHeapSize = "2g"
|
||||||
|
maxHeapSize = "2g"
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
subprojects {
|
|
||||||
tasks.withType<JavaCompile>().configureEach {
|
|
||||||
options.encoding = "UTF-8"
|
|
||||||
options.release.set(17)
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.withType<Javadoc> {
|
|
||||||
options.encoding = Charsets.UTF_8.name()
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.withType<ProcessResources> {
|
|
||||||
filteringCharset = Charsets.UTF_8.name()
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.withType<Test> {
|
|
||||||
minHeapSize = "2g"
|
|
||||||
maxHeapSize = "2g"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
|||||||
0
FixupAPI.sh → fxapi.sh
Normal file → Executable file
0
FixupAPI.sh → fxapi.sh
Normal file → Executable file
0
FixupServer.sh → fxsrv.sh
Normal file → Executable file
0
FixupServer.sh → fxsrv.sh
Normal file → Executable file
@@ -1,7 +1,7 @@
|
|||||||
group = org.plazmamc.plazma
|
group = org.plazmamc.plazma
|
||||||
version = 1.19.4-R0.1-SNAPSHOT
|
version = 1.20.2-R0.1-SNAPSHOT
|
||||||
|
|
||||||
paperCommit = 8d040fad9b4ddcc49a7b70c15b80b63c479eac95
|
paperCommit = 38376f43a0c268e5223746cab13910f55e5ecf41
|
||||||
|
|
||||||
org.gradle.caching = true
|
org.gradle.caching = true
|
||||||
org.gradle.parallel = true
|
org.gradle.parallel = true
|
||||||
|
|||||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,6 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|||||||
7
gradlew
vendored
7
gradlew
vendored
@@ -85,9 +85,6 @@ done
|
|||||||
APP_BASE_NAME=${0##*/}
|
APP_BASE_NAME=${0##*/}
|
||||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
MAX_FD=maximum
|
MAX_FD=maximum
|
||||||
|
|
||||||
@@ -197,6 +194,10 @@ if "$cygwin" || "$msys" ; then
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
|
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||||
|
|
||||||
# Collect all arguments for the java command;
|
# Collect all arguments for the java command;
|
||||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
||||||
# shell script including quotes and variable substitutions, so put them in
|
# shell script including quotes and variable substitutions, so put them in
|
||||||
|
|||||||
0
PatchAPI.sh → mkapi.sh
Normal file → Executable file
0
PatchAPI.sh → mkapi.sh
Normal file → Executable file
0
PatchServer.sh → mksrv.sh
Normal file → Executable file
0
PatchServer.sh → mksrv.sh
Normal file → Executable file
@@ -1,6 +1,6 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
From: Kevin Raneri <kevin.raneri@gmail.com>
|
||||||
Date: Fri, 14 Apr 2023 05:24:36 +0000
|
Date: Sat, 30 Sep 2023 09:45:48 +0000
|
||||||
Subject: [PATCH] Pufferfish API Changes
|
Subject: [PATCH] Pufferfish API Changes
|
||||||
|
|
||||||
Original: Kevin Raneri <kevin.raneri@gmail.com>
|
Original: Kevin Raneri <kevin.raneri@gmail.com>
|
||||||
@@ -20,37 +20,32 @@ You should have received a copy of the GNU General Public License
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
index 279a666e8ea2c07f41ee3f28b768e95dca5f0a10..a93b900889ddb56a2943c54a7fff6f60f42a78f1 100644
|
index 639651972fddce4dff63a0f0a7e566a15b9e2dd6..6c0df825238ca037abeb2ba619983b6f554180ea 100644
|
||||||
--- a/build.gradle.kts
|
--- a/build.gradle.kts
|
||||||
+++ b/build.gradle.kts
|
+++ b/build.gradle.kts
|
||||||
@@ -42,6 +42,7 @@ dependencies {
|
@@ -46,6 +46,7 @@ dependencies {
|
||||||
apiAndDocs("net.kyori:adventure-text-logger-slf4j")
|
apiAndDocs("net.kyori:adventure-text-logger-slf4j")
|
||||||
api("org.apache.logging.log4j:log4j-api:2.17.1")
|
api("org.apache.logging.log4j:log4j-api:$log4jVersion")
|
||||||
api("org.slf4j:slf4j-api:1.8.0-beta4")
|
api("org.slf4j:slf4j-api:$slf4jVersion")
|
||||||
+ api("io.sentry:sentry:5.4.0") // Pufferfish
|
+ api("io.sentry:sentry:5.4.0") // Pufferfish
|
||||||
|
|
||||||
implementation("org.ow2.asm:asm:9.4")
|
implementation("org.ow2.asm:asm:9.4")
|
||||||
implementation("org.ow2.asm:asm-commons:9.4")
|
implementation("org.ow2.asm:asm-commons:9.4")
|
||||||
@@ -85,6 +86,13 @@ val generateApiVersioningFile by tasks.registering {
|
@@ -102,6 +103,8 @@ tasks.jar {
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+// Pufferfish Start
|
tasks.withType<Javadoc> {
|
||||||
+tasks.withType<JavaCompile> {
|
val options = options as StandardJavadocDocletOptions
|
||||||
+ val compilerArgs = options.compilerArgs
|
+ options.addStringOption("-add-modules", "jdk.incubator.vector") // Pufferfish
|
||||||
+ compilerArgs.add("--add-modules=jdk.incubator.vector")
|
+ options.addStringOption("Xdoclint:none", "-quiet") // Pufferfish
|
||||||
+}
|
options.overview = "src/main/javadoc/overview.html"
|
||||||
+// Pufferfish End
|
options.use()
|
||||||
+
|
options.isDocFilesSubDirs = true
|
||||||
tasks.jar {
|
|
||||||
from(generateApiVersioningFile.map { it.outputs.files.singleFile }) {
|
|
||||||
into("META-INF/maven/${project.group}/${project.name}")
|
|
||||||
diff --git a/src/main/java/gg/pufferfish/pufferfish/sentry/SentryContext.java b/src/main/java/gg/pufferfish/pufferfish/sentry/SentryContext.java
|
diff --git a/src/main/java/gg/pufferfish/pufferfish/sentry/SentryContext.java b/src/main/java/gg/pufferfish/pufferfish/sentry/SentryContext.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..10310fdd53de28efb8a8250f6d3b0c8eb08fb68a
|
index 0000000000000000000000000000000000000000..ff42019da93c365ea1365e2e0f7c51b196a10948
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/gg/pufferfish/pufferfish/sentry/SentryContext.java
|
+++ b/src/main/java/gg/pufferfish/pufferfish/sentry/SentryContext.java
|
||||||
@@ -0,0 +1,161 @@
|
@@ -0,0 +1,162 @@
|
||||||
+package gg.pufferfish.pufferfish.sentry;
|
+package gg.pufferfish.pufferfish.sentry;
|
||||||
+
|
+
|
||||||
+import com.google.gson.Gson;
|
+import com.google.gson.Gson;
|
||||||
@@ -66,6 +61,7 @@ index 0000000000000000000000000000000000000000..10310fdd53de28efb8a8250f6d3b0c8e
|
|||||||
+import org.bukkit.event.player.PlayerEvent;
|
+import org.bukkit.event.player.PlayerEvent;
|
||||||
+import org.bukkit.plugin.Plugin;
|
+import org.bukkit.plugin.Plugin;
|
||||||
+import org.bukkit.plugin.RegisteredListener;
|
+import org.bukkit.plugin.RegisteredListener;
|
||||||
|
+import org.jetbrains.annotations.NotNull;
|
||||||
+import org.jetbrains.annotations.Nullable;
|
+import org.jetbrains.annotations.Nullable;
|
||||||
+
|
+
|
||||||
+public class SentryContext {
|
+public class SentryContext {
|
||||||
@@ -98,7 +94,7 @@ index 0000000000000000000000000000000000000000..10310fdd53de28efb8a8250f6d3b0c8e
|
|||||||
+ ThreadContext.remove("pufferfishsentry_playerid");
|
+ ThreadContext.remove("pufferfishsentry_playerid");
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public static void setEventContext(Event event, RegisteredListener registration) {
|
+ public static void setEventContext(@NotNull Event event, @NotNull RegisteredListener registration) {
|
||||||
+ setPluginContext(registration.getPlugin());
|
+ setPluginContext(registration.getPlugin());
|
||||||
+
|
+
|
||||||
+ try {
|
+ try {
|
||||||
@@ -171,43 +167,43 @@ index 0000000000000000000000000000000000000000..10310fdd53de28efb8a8250f6d3b0c8e
|
|||||||
+ private Event event;
|
+ private Event event;
|
||||||
+ private RegisteredListener registeredListener;
|
+ private RegisteredListener registeredListener;
|
||||||
+
|
+
|
||||||
+ public Plugin getPlugin() {
|
+ public @Nullable Plugin getPlugin() {
|
||||||
+ return plugin;
|
+ return plugin;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public void setPlugin(Plugin plugin) {
|
+ public void setPlugin(@Nullable Plugin plugin) {
|
||||||
+ this.plugin = plugin;
|
+ this.plugin = plugin;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public Command getCommand() {
|
+ public @Nullable Command getCommand() {
|
||||||
+ return command;
|
+ return command;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public void setCommand(Command command) {
|
+ public void setCommand(@Nullable Command command) {
|
||||||
+ this.command = command;
|
+ this.command = command;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public String getCommandLine() {
|
+ public @Nullable String getCommandLine() {
|
||||||
+ return commandLine;
|
+ return commandLine;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public void setCommandLine(String commandLine) {
|
+ public void setCommandLine(@Nullable String commandLine) {
|
||||||
+ this.commandLine = commandLine;
|
+ this.commandLine = commandLine;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public Event getEvent() {
|
+ public @Nullable Event getEvent() {
|
||||||
+ return event;
|
+ return event;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public void setEvent(Event event) {
|
+ public void setEvent(@Nullable Event event) {
|
||||||
+ this.event = event;
|
+ this.event = event;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public RegisteredListener getRegisteredListener() {
|
+ public @Nullable RegisteredListener getRegisteredListener() {
|
||||||
+ return registeredListener;
|
+ return registeredListener;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public void setRegisteredListener(RegisteredListener registeredListener) {
|
+ public void setRegisteredListener(@Nullable RegisteredListener registeredListener) {
|
||||||
+ this.registeredListener = registeredListener;
|
+ this.registeredListener = registeredListener;
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
@@ -480,7 +476,7 @@ index eaefbb00e9993d54906cc8cf35cf753c0d6c7707..301e82369603f3dd6e6c1bd380da4bac
|
|||||||
|
|
||||||
if (cloader instanceof PluginClassLoader) {
|
if (cloader instanceof PluginClassLoader) {
|
||||||
diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
||||||
index 1758e8a89c85eea8c2161ddcb5b0e745151a1f5e..fe21d31b463317eb90d58cbca5f098958ca93938 100644
|
index 13da387d3b59bc67c0d73e3fbd3a4034b1281527..7572a0bf6614b02be3cbccc7b86e52ee1b8df621 100644
|
||||||
--- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
--- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
||||||
+++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
+++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
||||||
@@ -48,6 +48,8 @@ public final class PluginClassLoader extends URLClassLoader implements io.paperm
|
@@ -48,6 +48,8 @@ public final class PluginClassLoader extends URLClassLoader implements io.paperm
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Fri, 14 Apr 2023 05:26:57 +0000
|
Date: Sat, 30 Sep 2023 09:53:53 +0000
|
||||||
Subject: [PATCH] Purpur API Changes
|
Subject: [PATCH] Purpur API Changes
|
||||||
|
|
||||||
Original: PurpurMC
|
Original: PurpurMC
|
||||||
@@ -24,19 +24,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
||||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
|
||||||
index a93b900889ddb56a2943c54a7fff6f60f42a78f1..417c4324af22c870de669e338a1eee5d540184a4 100644
|
|
||||||
--- a/build.gradle.kts
|
|
||||||
+++ b/build.gradle.kts
|
|
||||||
@@ -105,6 +105,8 @@ tasks.jar {
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.withType<Javadoc> {
|
|
||||||
+ (options as StandardJavadocDocletOptions).addStringOption("-add-modules", "jdk.incubator.vector") // Purpur - our javadocs need this for pufferfish's SIMD patch
|
|
||||||
+ (options as StandardJavadocDocletOptions).addStringOption("Xdoclint:none", "-quiet") // Purpur - silence Paper's bajillion javadoc warnings
|
|
||||||
val options = options as StandardJavadocDocletOptions
|
|
||||||
options.overview = "src/main/javadoc/overview.html"
|
|
||||||
options.use()
|
|
||||||
diff --git a/src/main/java/co/aikar/timings/TimedEventExecutor.java b/src/main/java/co/aikar/timings/TimedEventExecutor.java
|
diff --git a/src/main/java/co/aikar/timings/TimedEventExecutor.java b/src/main/java/co/aikar/timings/TimedEventExecutor.java
|
||||||
index 8f29c1561ba5916cb5634392edd8bd2a5a294a51..6fbc64e0f214d0c8e5afcbe385e414a4e1fe1c72 100644
|
index 8f29c1561ba5916cb5634392edd8bd2a5a294a51..6fbc64e0f214d0c8e5afcbe385e414a4e1fe1c72 100644
|
||||||
--- a/src/main/java/co/aikar/timings/TimedEventExecutor.java
|
--- a/src/main/java/co/aikar/timings/TimedEventExecutor.java
|
||||||
@@ -104,7 +91,7 @@ index 7514fad26f955329f8bf17ff17db75f0c8301ee5..1d866e980abc542bdfee1ce082cd9cdd
|
|||||||
void close();
|
void close();
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/co/aikar/timings/Timings.java b/src/main/java/co/aikar/timings/Timings.java
|
diff --git a/src/main/java/co/aikar/timings/Timings.java b/src/main/java/co/aikar/timings/Timings.java
|
||||||
index 9812d668ad945aba486fbf6d5bf83c4292cb5d03..187672fdcb77081653335d20537fbd795c026245 100644
|
index 9812d668ad945aba486fbf6d5bf83c4292cb5d03..752d54830aa8baa1450bf72da03ae55ed30293c2 100644
|
||||||
--- a/src/main/java/co/aikar/timings/Timings.java
|
--- a/src/main/java/co/aikar/timings/Timings.java
|
||||||
+++ b/src/main/java/co/aikar/timings/Timings.java
|
+++ b/src/main/java/co/aikar/timings/Timings.java
|
||||||
@@ -124,7 +124,7 @@ public final class Timings {
|
@@ -124,7 +124,7 @@ public final class Timings {
|
||||||
@@ -116,6 +103,21 @@ index 9812d668ad945aba486fbf6d5bf83c4292cb5d03..187672fdcb77081653335d20537fbd79
|
|||||||
return timing;
|
return timing;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -145,9 +145,11 @@ public final class Timings {
|
||||||
|
* @param enabled Should timings be reported
|
||||||
|
*/
|
||||||
|
public static void setTimingsEnabled(boolean enabled) {
|
||||||
|
- timingsEnabled = enabled;
|
||||||
|
- warnAboutDeprecationOnEnable();
|
||||||
|
- reset();
|
||||||
|
+ // Purpur start - we don't do that here...
|
||||||
|
+ timingsEnabled = false;
|
||||||
|
+ //warnAboutDeprecationOnEnable();
|
||||||
|
+ //reset();
|
||||||
|
+ // Purpur end
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void warnAboutDeprecationOnEnable() {
|
||||||
diff --git a/src/main/java/co/aikar/timings/TimingsCommand.java b/src/main/java/co/aikar/timings/TimingsCommand.java
|
diff --git a/src/main/java/co/aikar/timings/TimingsCommand.java b/src/main/java/co/aikar/timings/TimingsCommand.java
|
||||||
index e801e79fa57c44b2e5d359647c920f88064826f1..1abfcee0f6d632f4cd8d74b4994a90c9ea9d254c 100644
|
index e801e79fa57c44b2e5d359647c920f88064826f1..1abfcee0f6d632f4cd8d74b4994a90c9ea9d254c 100644
|
||||||
--- a/src/main/java/co/aikar/timings/TimingsCommand.java
|
--- a/src/main/java/co/aikar/timings/TimingsCommand.java
|
||||||
@@ -154,10 +156,10 @@ index e801e79fa57c44b2e5d359647c920f88064826f1..1abfcee0f6d632f4cd8d74b4994a90c9
|
|||||||
new ArrayList<String>(TIMINGS_SUBCOMMANDS.size()));
|
new ArrayList<String>(TIMINGS_SUBCOMMANDS.size()));
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
|
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
|
||||||
index 998f629852e1103767e005405d1f39c2251ecd28..3c05b03bb5ff3bfec6c69a5cc4b23f0633ab473f 100644
|
index 0c4dbb9ef63fa8575b5546239443cb2bd91ba847..b347224c223569297ee67ac630a710fdf28748ea 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
|
--- a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
|
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
|
||||||
@@ -200,6 +200,18 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
@@ -198,6 +198,18 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
|
||||||
GoalKey<Mob> CLIMB_ON_TOP_OF_POWDER_SNOW = GoalKey.of(Mob.class, NamespacedKey.minecraft("climb_on_top_of_powder_snow"));
|
GoalKey<Mob> CLIMB_ON_TOP_OF_POWDER_SNOW = GoalKey.of(Mob.class, NamespacedKey.minecraft("climb_on_top_of_powder_snow"));
|
||||||
GoalKey<Wolf> WOLF_PANIC = GoalKey.of(Wolf.class, NamespacedKey.minecraft("wolf_panic"));
|
GoalKey<Wolf> WOLF_PANIC = GoalKey.of(Wolf.class, NamespacedKey.minecraft("wolf_panic"));
|
||||||
|
|
||||||
@@ -174,7 +176,7 @@ index 998f629852e1103767e005405d1f39c2251ecd28..3c05b03bb5ff3bfec6c69a5cc4b23f06
|
|||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
+
|
+
|
||||||
/**
|
/**
|
||||||
* @deprecated removed in 1.16
|
* @deprecated removed in 1.20.2
|
||||||
*/
|
*/
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/util/VersionFetcher.java b/src/main/java/com/destroystokyo/paper/util/VersionFetcher.java
|
diff --git a/src/main/java/com/destroystokyo/paper/util/VersionFetcher.java b/src/main/java/com/destroystokyo/paper/util/VersionFetcher.java
|
||||||
index a736d7bcdc5861a01b66ba36158db1c716339346..22fc165fd9c95f0f3ae1be7a0857e48cc50fad5b 100644
|
index a736d7bcdc5861a01b66ba36158db1c716339346..22fc165fd9c95f0f3ae1be7a0857e48cc50fad5b 100644
|
||||||
@@ -194,10 +196,10 @@ index a736d7bcdc5861a01b66ba36158db1c716339346..22fc165fd9c95f0f3ae1be7a0857e48c
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
|
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
|
||||||
index f1af93319d6b29d7bc709e7e273e8abe26c7b4af..78a9155e78178f1cc8da2a2d42fd3276565030f5 100644
|
index f78b5fd3c3347d28da58777bff88903d2eb140f6..584e3b08935f43beb27f478cc72229b6a5f40689 100644
|
||||||
--- a/src/main/java/org/bukkit/Bukkit.java
|
--- a/src/main/java/org/bukkit/Bukkit.java
|
||||||
+++ b/src/main/java/org/bukkit/Bukkit.java
|
+++ b/src/main/java/org/bukkit/Bukkit.java
|
||||||
@@ -2461,4 +2461,127 @@ public final class Bukkit {
|
@@ -2756,4 +2756,127 @@ public final class Bukkit {
|
||||||
public static Server.Spigot spigot() {
|
public static Server.Spigot spigot() {
|
||||||
return server.spigot();
|
return server.spigot();
|
||||||
}
|
}
|
||||||
@@ -326,7 +328,7 @@ index f1af93319d6b29d7bc709e7e273e8abe26c7b4af..78a9155e78178f1cc8da2a2d42fd3276
|
|||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/ChatColor.java b/src/main/java/org/bukkit/ChatColor.java
|
diff --git a/src/main/java/org/bukkit/ChatColor.java b/src/main/java/org/bukkit/ChatColor.java
|
||||||
index ea4ceb643239c26851bacbf45fc3f2efef3bb4be..3b8395dcb73e3fb251adf7438cbc7e95c4185a3a 100644
|
index 918a045165cdcde264bc24082b7afebb407271de..687d11619379aead7f665d4a5f8f8bcc857cb8e9 100644
|
||||||
--- a/src/main/java/org/bukkit/ChatColor.java
|
--- a/src/main/java/org/bukkit/ChatColor.java
|
||||||
+++ b/src/main/java/org/bukkit/ChatColor.java
|
+++ b/src/main/java/org/bukkit/ChatColor.java
|
||||||
@@ -3,6 +3,7 @@ package org.bukkit;
|
@@ -3,6 +3,7 @@ package org.bukkit;
|
||||||
@@ -337,7 +339,7 @@ index ea4ceb643239c26851bacbf45fc3f2efef3bb4be..3b8395dcb73e3fb251adf7438cbc7e95
|
|||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import org.jetbrains.annotations.Contract;
|
import org.jetbrains.annotations.Contract;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -455,4 +456,77 @@ public enum ChatColor {
|
@@ -456,4 +457,77 @@ public enum ChatColor {
|
||||||
BY_CHAR.put(color.code, color);
|
BY_CHAR.put(color.code, color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -416,12 +418,12 @@ index ea4ceb643239c26851bacbf45fc3f2efef3bb4be..3b8395dcb73e3fb251adf7438cbc7e95
|
|||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
|
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
|
||||||
index adb2416887cc3b544ec36c552bdf7105328c24a5..d334c963e16590c68ecd9d1d27434c7af6f7e21c 100644
|
index da6e36a16e609272b60fc41ff69a6fa3c34926c0..eba4e7ebe3530fd8cb3ecbe72f703932df8721c9 100644
|
||||||
--- a/src/main/java/org/bukkit/Material.java
|
--- a/src/main/java/org/bukkit/Material.java
|
||||||
+++ b/src/main/java/org/bukkit/Material.java
|
+++ b/src/main/java/org/bukkit/Material.java
|
||||||
@@ -11156,4 +11156,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
|
@@ -11050,4 +11050,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
|
||||||
public String getItemTranslationKey() {
|
public boolean isEnabledByFeature(@NotNull World world) {
|
||||||
return Bukkit.getUnsafe().getItemTranslationKey(this);
|
return Bukkit.getDataPackManager().isEnabledByFeature(this, world);
|
||||||
}
|
}
|
||||||
+
|
+
|
||||||
+ // Purpur start
|
+ // Purpur start
|
||||||
@@ -461,10 +463,10 @@ index adb2416887cc3b544ec36c552bdf7105328c24a5..d334c963e16590c68ecd9d1d27434c7a
|
|||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java
|
diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java
|
||||||
index 69b50eee42e8c52063033705bd23a5ef5231ed83..3578ab0c3a413d56bc39af43b5d3201d20d7d13a 100644
|
index bce07d84cafca677bb6fad78c21b82097f06430c..4ef0fa4f1ef72bb784674671473c6a322acadecc 100644
|
||||||
--- a/src/main/java/org/bukkit/OfflinePlayer.java
|
--- a/src/main/java/org/bukkit/OfflinePlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/OfflinePlayer.java
|
+++ b/src/main/java/org/bukkit/OfflinePlayer.java
|
||||||
@@ -455,4 +455,114 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
|
@@ -522,4 +522,114 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public Location getLastDeathLocation();
|
public Location getLastDeathLocation();
|
||||||
@@ -580,10 +582,10 @@ index 69b50eee42e8c52063033705bd23a5ef5231ed83..3578ab0c3a413d56bc39af43b5d3201d
|
|||||||
+ // Purpur end - OfflinePlayer API
|
+ // Purpur end - OfflinePlayer API
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||||
index 8621dba7f10ab822b5b99ce0d05da58823605cb6..730caafaf9629664ba125f3884559da76616f655 100644
|
index 8d8fe04e6b09d2a5b1cc05002073df5c58cdcb96..aaef58468a3c31f35e5067ed4263e9dd3fbddddd 100644
|
||||||
--- a/src/main/java/org/bukkit/Server.java
|
--- a/src/main/java/org/bukkit/Server.java
|
||||||
+++ b/src/main/java/org/bukkit/Server.java
|
+++ b/src/main/java/org/bukkit/Server.java
|
||||||
@@ -1968,6 +1968,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
@@ -2121,6 +2121,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
|
|
||||||
@@ -602,10 +604,10 @@ index 8621dba7f10ab822b5b99ce0d05da58823605cb6..730caafaf9629664ba125f3884559da7
|
|||||||
/**
|
/**
|
||||||
* Sends the component to the player
|
* Sends the component to the player
|
||||||
*
|
*
|
||||||
@@ -2136,4 +2148,105 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
@@ -2404,4 +2416,105 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||||
*/
|
*/
|
||||||
@NotNull org.bukkit.potion.PotionBrewer getPotionBrewer();
|
boolean isOwnedByCurrentRegion(@NotNull Entity entity);
|
||||||
// Paper end
|
// Paper end - Folia region threading API
|
||||||
+
|
+
|
||||||
+ // Purpur start
|
+ // Purpur start
|
||||||
+ /**
|
+ /**
|
||||||
@@ -709,10 +711,10 @@ index 8621dba7f10ab822b5b99ce0d05da58823605cb6..730caafaf9629664ba125f3884559da7
|
|||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
|
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
|
||||||
index 0b8776355f724927ada826735d5e73f3fb6897d5..cf8b93aa5787e96f54e2ffe2a0f157b0e53e2c5c 100644
|
index da524a71af74b02515b037f7fe09ba6988e2c8bf..3679c3b8d31ab8de08ecabd56bf92ffc062f971c 100644
|
||||||
--- a/src/main/java/org/bukkit/World.java
|
--- a/src/main/java/org/bukkit/World.java
|
||||||
+++ b/src/main/java/org/bukkit/World.java
|
+++ b/src/main/java/org/bukkit/World.java
|
||||||
@@ -4018,6 +4018,86 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
@@ -4008,6 +4008,86 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
||||||
@Nullable
|
@Nullable
|
||||||
public DragonBattle getEnderDragonBattle();
|
public DragonBattle getEnderDragonBattle();
|
||||||
|
|
||||||
@@ -797,8 +799,37 @@ index 0b8776355f724927ada826735d5e73f3fb6897d5..cf8b93aa5787e96f54e2ffe2a0f157b0
|
|||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
+
|
+
|
||||||
/**
|
/**
|
||||||
* Represents various map environment types that a world may be
|
* Get all {@link FeatureFlag} enabled in this world.
|
||||||
*/
|
*
|
||||||
|
diff --git a/src/main/java/org/bukkit/block/EntityBlockStorage.java b/src/main/java/org/bukkit/block/EntityBlockStorage.java
|
||||||
|
index 739911cda33b373f99df627a3a378b37d7d461aa..51e78c22cd021722b963fe31d1d9175d141add1a 100644
|
||||||
|
--- a/src/main/java/org/bukkit/block/EntityBlockStorage.java
|
||||||
|
+++ b/src/main/java/org/bukkit/block/EntityBlockStorage.java
|
||||||
|
@@ -47,6 +47,24 @@ public interface EntityBlockStorage<T extends Entity> extends TileState {
|
||||||
|
@NotNull
|
||||||
|
List<T> releaseEntities();
|
||||||
|
|
||||||
|
+ // Purpur start
|
||||||
|
+ /**
|
||||||
|
+ * Releases a stored entity, and returns the entity in the world.
|
||||||
|
+ *
|
||||||
|
+ * @param entity Entity to release
|
||||||
|
+ * @return The entity which was released, or null if the stored entity is not in the hive
|
||||||
|
+ */
|
||||||
|
+ @org.jetbrains.annotations.Nullable
|
||||||
|
+ T releaseEntity(@NotNull org.purpurmc.purpur.entity.StoredEntity<T> entity);
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Gets all the entities currently stored in the block.
|
||||||
|
+ *
|
||||||
|
+ * @return List of all entities which are stored in the block
|
||||||
|
+ */
|
||||||
|
+ @NotNull
|
||||||
|
+ List<org.purpurmc.purpur.entity.StoredEntity<T>> getEntities();
|
||||||
|
+ //Purpur end
|
||||||
|
/**
|
||||||
|
* 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
|
diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java
|
||||||
index ac9a28922f8a556944a4c3649d74c32c622f0cb0..5349f16136d9348c374a7dfe5b89a71dfcb0e66d 100644
|
index ac9a28922f8a556944a4c3649d74c32c622f0cb0..5349f16136d9348c374a7dfe5b89a71dfcb0e66d 100644
|
||||||
--- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
|
--- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
|
||||||
@@ -838,38 +869,38 @@ index ac9a28922f8a556944a4c3649d74c32c622f0cb0..5349f16136d9348c374a7dfe5b89a71d
|
|||||||
server.getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerCommandException(ex, target, sender, args))); // Paper
|
server.getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerCommandException(ex, target, sender, args))); // Paper
|
||||||
//target.timings.stopTiming(); // Spigot // Paper
|
//target.timings.stopTiming(); // Spigot // Paper
|
||||||
diff --git a/src/main/java/org/bukkit/command/defaults/VersionCommand.java b/src/main/java/org/bukkit/command/defaults/VersionCommand.java
|
diff --git a/src/main/java/org/bukkit/command/defaults/VersionCommand.java b/src/main/java/org/bukkit/command/defaults/VersionCommand.java
|
||||||
index e40f017f87d6b6b4770501b106c76dc69ec69abb..eac5830986cd0638950bbb1e6f10a30e246e09a7 100644
|
index fd5d9881abfd930bb883120f018f76dc78b62b14..d3dadad49df09e85c724c93e8cc88da2c985e9b4 100644
|
||||||
--- a/src/main/java/org/bukkit/command/defaults/VersionCommand.java
|
--- a/src/main/java/org/bukkit/command/defaults/VersionCommand.java
|
||||||
+++ b/src/main/java/org/bukkit/command/defaults/VersionCommand.java
|
+++ b/src/main/java/org/bukkit/command/defaults/VersionCommand.java
|
||||||
@@ -198,7 +198,7 @@ public class VersionCommand extends BukkitCommand {
|
@@ -214,7 +214,7 @@ public class VersionCommand extends BukkitCommand {
|
||||||
String version = Bukkit.getVersion();
|
String version = Bukkit.getVersion();
|
||||||
// Paper start
|
// Paper start
|
||||||
if (version.startsWith("null")) { // running from ide?
|
if (version.startsWith("null")) { // running from ide?
|
||||||
- setVersionMessage(net.kyori.adventure.text.Component.text("Unknown version, custom build?", net.kyori.adventure.text.format.NamedTextColor.YELLOW));
|
- setVersionMessage(Component.text("Unknown version, custom build?", NamedTextColor.YELLOW));
|
||||||
+ setVersionMessage(net.kyori.adventure.text.Component.text("* Unknown version, custom build?", net.kyori.adventure.text.format.NamedTextColor.RED)); // Purpur
|
+ setVersionMessage(Component.text("* Unknown version, custom build?", NamedTextColor.RED)); // Purpur
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setVersionMessage(getVersionFetcher().getVersionMessage(version));
|
setVersionMessage(getVersionFetcher().getVersionMessage(version));
|
||||||
@@ -239,9 +239,11 @@ public class VersionCommand extends BukkitCommand {
|
@@ -255,9 +255,11 @@ public class VersionCommand extends BukkitCommand {
|
||||||
// Paper start
|
// Paper start
|
||||||
private void setVersionMessage(final @NotNull net.kyori.adventure.text.Component msg) {
|
private void setVersionMessage(final @NotNull Component msg) {
|
||||||
lastCheck = System.currentTimeMillis();
|
lastCheck = System.currentTimeMillis();
|
||||||
- final net.kyori.adventure.text.Component message = net.kyori.adventure.text.TextComponent.ofChildren(
|
- final Component message = Component.textOfChildren(
|
||||||
- net.kyori.adventure.text.Component.text(Bukkit.getVersionMessage(), net.kyori.adventure.text.format.NamedTextColor.WHITE),
|
- Component.text(Bukkit.getVersionMessage(), NamedTextColor.WHITE),
|
||||||
- net.kyori.adventure.text.Component.newline(),
|
- Component.newline(),
|
||||||
+ // Purpur start
|
+ // Purpur start
|
||||||
+ int distance = getVersionFetcher().distance();
|
+ int distance = getVersionFetcher().distance();
|
||||||
+ final net.kyori.adventure.text.Component message = net.kyori.adventure.text.Component.join(net.kyori.adventure.text.JoinConfiguration.separator(net.kyori.adventure.text.Component.newline()),
|
+ final Component message = Component.join(net.kyori.adventure.text.JoinConfiguration.separator(Component.newline()),
|
||||||
+ ChatColor.parseMM("<grey>Current: %s%s*", distance == 0 ? "<green>" : distance > 0 ? "<yellow>" : "<red>", Bukkit.getVersion()),
|
+ ChatColor.parseMM("<grey>Current: %s%s*", distance == 0 ? "<green>" : distance > 0 ? "<yellow>" : "<red>", Bukkit.getVersion()),
|
||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
msg
|
msg
|
||||||
);
|
);
|
||||||
this.versionMessage = net.kyori.adventure.text.Component.text()
|
this.versionMessage = Component.text()
|
||||||
diff --git a/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java b/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
|
diff --git a/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java b/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
|
||||||
index bea786a8be4402f9384984e48390e745f2988dd6..5eb81fcc18b8fdec5a0e4c699525281fa6ad4d78 100644
|
index 455ff52d90565838fe7640c3f045b27082a6c2f1..45f5493eebfecf56b7c0ef4659c078dfc62c0612 100644
|
||||||
--- a/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
|
--- a/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
|
||||||
+++ b/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
|
+++ b/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
|
||||||
@@ -228,6 +228,28 @@ public enum EnchantmentTarget {
|
@@ -227,6 +227,28 @@ public enum EnchantmentTarget {
|
||||||
public boolean includes(@NotNull Material item) {
|
public boolean includes(@NotNull Material item) {
|
||||||
return BREAKABLE.includes(item) || (WEARABLE.includes(item) && !item.equals(Material.ELYTRA)) || item.equals(Material.COMPASS);
|
return BREAKABLE.includes(item) || (WEARABLE.includes(item) && !item.equals(Material.ELYTRA)) || item.equals(Material.COMPASS);
|
||||||
}
|
}
|
||||||
@@ -933,13 +964,13 @@ index 138d2530de2410f4a9424dabd3e5ce0cd1c1dcd2..10a8d64ad2da0be2c14f34c3e7d1957c
|
|||||||
// Paper start
|
// Paper start
|
||||||
/**
|
/**
|
||||||
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
|
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
|
||||||
index a2a423d4e4c2702ba5967223cab0432dd7d04732..cc78ce7de88a9a404ed20d5bc61b98d3107f29b3 100644
|
index 762cb07861ca8ff058ce8d57ea6c15df1e588bf3..98de85d1382fe84cdc2e2c9db04bf1b4f157291c 100644
|
||||||
--- a/src/main/java/org/bukkit/entity/Entity.java
|
--- a/src/main/java/org/bukkit/entity/Entity.java
|
||||||
+++ b/src/main/java/org/bukkit/entity/Entity.java
|
+++ b/src/main/java/org/bukkit/entity/Entity.java
|
||||||
@@ -954,4 +954,55 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
|
@@ -1049,4 +1049,55 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
|
||||||
*/
|
*/
|
||||||
boolean wouldCollideUsing(@NotNull BoundingBox boundingBox);
|
@NotNull String getScoreboardEntryName();
|
||||||
// Paper End - Collision API
|
// Paper end - entity scoreboard name
|
||||||
+
|
+
|
||||||
+ // Purpur start
|
+ // Purpur start
|
||||||
+ /**
|
+ /**
|
||||||
@@ -1085,10 +1116,10 @@ index 58017fce436cdbda255f7172fbdadb726d4b113c..05600fc8bf2a61aca8094029bc4c208a
|
|||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
|
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||||
index ffca32ae2464ea5a669029079a50585ca259a4f8..654dc0c6d98b29cf45d3826aece374726e3e9802 100644
|
index 19e58e62ae442ef9be02ca7fa2f55e370a54afa4..994e026d68fcda9a4c34a8b161a06623f4437dff 100644
|
||||||
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
|
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||||
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
|
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||||
@@ -1150,4 +1150,41 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
|
@@ -1192,4 +1192,41 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
|
||||||
*/
|
*/
|
||||||
void setBodyYaw(float bodyYaw);
|
void setBodyYaw(float bodyYaw);
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -1156,10 +1187,10 @@ index bc84b892cae5fe7019a3ad481e9da79956efa1fe..48eb5b00c460cccde29d327cef1d63fc
|
|||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||||
index ee446bfb3e6c4b1d4428c00d6406bf9455c68ad5..43cef54d355c8a1b6a8cd6be89a6a805e9f88566 100644
|
index 20fa1024f9ad8f478a347be5c554b5e45b398a1c..0df709ed758401f04b3f565dc1f6492a55f5363c 100644
|
||||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||||
@@ -3035,4 +3035,139 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
@@ -3278,4 +3278,122 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||||
@Override
|
@Override
|
||||||
Spigot spigot();
|
Spigot spigot();
|
||||||
// Spigot end
|
// Spigot end
|
||||||
@@ -1192,27 +1223,6 @@ index ee446bfb3e6c4b1d4428c00d6406bf9455c68ad5..43cef54d355c8a1b6a8cd6be89a6a805
|
|||||||
+ void resetIdleTimer();
|
+ void resetIdleTimer();
|
||||||
+
|
+
|
||||||
+ /**
|
+ /**
|
||||||
+ * Check if player is invulnerable from recently spawning or accepting a resource pack
|
|
||||||
+ *
|
|
||||||
+ * @return True if invulnerable
|
|
||||||
+ */
|
|
||||||
+ boolean isSpawnInvulnerable();
|
|
||||||
+
|
|
||||||
+ /**
|
|
||||||
+ * Get invulnerable ticks remaining
|
|
||||||
+ *
|
|
||||||
+ * @return Invulnerable ticks
|
|
||||||
+ */
|
|
||||||
+ int getSpawnInvulnerableTicks();
|
|
||||||
+
|
|
||||||
+ /**
|
|
||||||
+ * Set invulnerable ticks remaining
|
|
||||||
+ *
|
|
||||||
+ * @param invulnerableTicks Invulnerable ticks remaining
|
|
||||||
+ */
|
|
||||||
+ void setSpawnInvulnerableTicks(int invulnerableTicks);
|
|
||||||
+
|
|
||||||
+ /**
|
|
||||||
+ * Creates debug block highlight on specified block location and show it to this player.
|
+ * Creates debug block highlight on specified block location and show it to this player.
|
||||||
+ * <p>
|
+ * <p>
|
||||||
+ * Clients may be inconsistent in displaying it.
|
+ * Clients may be inconsistent in displaying it.
|
||||||
@@ -1295,8 +1305,12 @@ index ee446bfb3e6c4b1d4428c00d6406bf9455c68ad5..43cef54d355c8a1b6a8cd6be89a6a805
|
|||||||
+ *
|
+ *
|
||||||
+ * @param message The death message to show the player
|
+ * @param message The death message to show the player
|
||||||
+ * @param killer The entity that killed the player
|
+ * @param killer The entity that killed the player
|
||||||
|
+ * @deprecated Use {@link #sendDeathScreen(net.kyori.adventure.text.Component)} instead, as 1.20 removed the killer ID from the packet.
|
||||||
+ */
|
+ */
|
||||||
+ void sendDeathScreen(@NotNull net.kyori.adventure.text.Component message, @Nullable Entity killer);
|
+ @Deprecated(since = "1.20")
|
||||||
|
+ default void sendDeathScreen(@NotNull net.kyori.adventure.text.Component message, @Nullable Entity killer) {
|
||||||
|
+ sendDeathScreen(message);
|
||||||
|
+ }
|
||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/entity/Snowman.java b/src/main/java/org/bukkit/entity/Snowman.java
|
diff --git a/src/main/java/org/bukkit/entity/Snowman.java b/src/main/java/org/bukkit/entity/Snowman.java
|
||||||
@@ -1344,12 +1358,12 @@ index 3bc24457d143449e6a338d79becf7c39b9f81054..4a5edf4e72e81b22c1abb2ade244f7f4
|
|||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/entity/Wither.java b/src/main/java/org/bukkit/entity/Wither.java
|
diff --git a/src/main/java/org/bukkit/entity/Wither.java b/src/main/java/org/bukkit/entity/Wither.java
|
||||||
index a1b42ae35dda2da90ba00a2d6666514f7c5b11dd..3ccd61bf91d7746393589b0b35674361c2f1d133 100644
|
index 14543c2238b45c526dd9aebea2aa5c22f5df54dc..5312daf33405704c74e2c9e109754285ea6cf734 100644
|
||||||
--- a/src/main/java/org/bukkit/entity/Wither.java
|
--- a/src/main/java/org/bukkit/entity/Wither.java
|
||||||
+++ b/src/main/java/org/bukkit/entity/Wither.java
|
+++ b/src/main/java/org/bukkit/entity/Wither.java
|
||||||
@@ -79,4 +79,20 @@ public interface Wither extends Monster, Boss, com.destroystokyo.paper.entity.Ra
|
@@ -107,4 +107,20 @@ public interface Wither extends Monster, Boss, com.destroystokyo.paper.entity.Ra
|
||||||
*/
|
*/
|
||||||
void setCanTravelThroughPortals(boolean value);
|
void enterInvulnerabilityPhase();
|
||||||
// Paper end
|
// Paper end
|
||||||
+
|
+
|
||||||
+ // Purpur start
|
+ // Purpur start
|
||||||
@@ -1411,10 +1425,10 @@ index c9f395064656dd0126410eb3c6e197baa450c063..13156a12e5df50cdc1e465dc0bd9d941
|
|||||||
* When a player gets bad omen after killing a patrol captain.
|
* 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
|
diff --git a/src/main/java/org/bukkit/event/inventory/InventoryType.java b/src/main/java/org/bukkit/event/inventory/InventoryType.java
|
||||||
index a8e631315f2da68895a258cf0ba9875bc88fc48c..d5648ec745e3530aecf18c3e1f3185a5f63f3d11 100644
|
index cbce826add9dc2b3187c7bea00c27b785d7517df..3a98de6407d9a6307f89c207be1f09e639385ebe 100644
|
||||||
--- a/src/main/java/org/bukkit/event/inventory/InventoryType.java
|
--- a/src/main/java/org/bukkit/event/inventory/InventoryType.java
|
||||||
+++ b/src/main/java/org/bukkit/event/inventory/InventoryType.java
|
+++ b/src/main/java/org/bukkit/event/inventory/InventoryType.java
|
||||||
@@ -155,7 +155,7 @@ public enum InventoryType {
|
@@ -151,7 +151,7 @@ public enum InventoryType {
|
||||||
SMITHING_NEW(4, "Upgrade Gear"),
|
SMITHING_NEW(4, "Upgrade Gear"),
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -1443,7 +1457,7 @@ index c60be4fd24c7fdf65251dd6169e5e1ac3b588d95..569deccd2f1cf21da9b5906433ac493c
|
|||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
|
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||||
index d15a74c38576c49df61cfab02c70fc5d8c0dd5f7..64055402076b62d32ba947830d935b79bae12d95 100644
|
index 0af73cc04edb93b9772136d4d808f657ea40e733..c733206b769d7a55076d863757fcac1a129033b7 100644
|
||||||
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||||
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||||
@@ -17,6 +17,18 @@ import org.bukkit.inventory.meta.ItemMeta;
|
@@ -17,6 +17,18 @@ import org.bukkit.inventory.meta.ItemMeta;
|
||||||
@@ -1465,8 +1479,8 @@ index d15a74c38576c49df61cfab02c70fc5d8c0dd5f7..64055402076b62d32ba947830d935b79
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a stack of items.
|
* Represents a stack of items.
|
||||||
@@ -986,4 +998,626 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
@@ -1005,4 +1017,626 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
||||||
return livingEntity.damageItemStack(this, amount);
|
return type.isAir() || amount <= 0;
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
+
|
+
|
||||||
@@ -2093,7 +2107,7 @@ index d15a74c38576c49df61cfab02c70fc5d8c0dd5f7..64055402076b62d32ba947830d935b79
|
|||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/inventory/RecipeChoice.java b/src/main/java/org/bukkit/inventory/RecipeChoice.java
|
diff --git a/src/main/java/org/bukkit/inventory/RecipeChoice.java b/src/main/java/org/bukkit/inventory/RecipeChoice.java
|
||||||
index 90208bc96085f05a3b657b9467b1670d00b03104..c59d5e4ef9641fd73463b177239226866272745b 100644
|
index 523818cbb0d6c90481ec97123e7fe0e2ff4eea14..bfeb8171a723d84b94bfaacd8aaf7d4d48ecd051 100644
|
||||||
--- a/src/main/java/org/bukkit/inventory/RecipeChoice.java
|
--- a/src/main/java/org/bukkit/inventory/RecipeChoice.java
|
||||||
+++ b/src/main/java/org/bukkit/inventory/RecipeChoice.java
|
+++ b/src/main/java/org/bukkit/inventory/RecipeChoice.java
|
||||||
@@ -10,6 +10,7 @@ import java.util.function.Predicate;
|
@@ -10,6 +10,7 @@ import java.util.function.Predicate;
|
||||||
@@ -2104,7 +2118,7 @@ index 90208bc96085f05a3b657b9467b1670d00b03104..c59d5e4ef9641fd73463b17723922686
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a potential item match within a recipe. All choices within a
|
* Represents a potential item match within a recipe. All choices within a
|
||||||
@@ -152,6 +153,7 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
|
@@ -150,6 +151,7 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
|
||||||
public static class ExactChoice implements RecipeChoice {
|
public static class ExactChoice implements RecipeChoice {
|
||||||
|
|
||||||
private List<ItemStack> choices;
|
private List<ItemStack> choices;
|
||||||
@@ -2112,7 +2126,7 @@ index 90208bc96085f05a3b657b9467b1670d00b03104..c59d5e4ef9641fd73463b17723922686
|
|||||||
|
|
||||||
public ExactChoice(@NotNull ItemStack stack) {
|
public ExactChoice(@NotNull ItemStack stack) {
|
||||||
this(Arrays.asList(stack));
|
this(Arrays.asList(stack));
|
||||||
@@ -196,6 +198,7 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
|
@@ -194,6 +196,7 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean test(@NotNull ItemStack t) {
|
public boolean test(@NotNull ItemStack t) {
|
||||||
@@ -2120,7 +2134,7 @@ index 90208bc96085f05a3b657b9467b1670d00b03104..c59d5e4ef9641fd73463b17723922686
|
|||||||
for (ItemStack match : choices) {
|
for (ItemStack match : choices) {
|
||||||
if (t.isSimilar(match)) {
|
if (t.isSimilar(match)) {
|
||||||
return true;
|
return true;
|
||||||
@@ -205,6 +208,17 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
|
@@ -203,6 +206,17 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2138,6 +2152,23 @@ index 90208bc96085f05a3b657b9467b1670d00b03104..c59d5e4ef9641fd73463b17723922686
|
|||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
int hash = 7;
|
int hash = 7;
|
||||||
|
diff --git a/src/main/java/org/bukkit/map/MapRenderer.java b/src/main/java/org/bukkit/map/MapRenderer.java
|
||||||
|
index cb7040876a99a5a7e49b81684ef0f3b79584c376..22d8f31b1b8a5dbb5ab3275068642937c097abfe 100644
|
||||||
|
--- a/src/main/java/org/bukkit/map/MapRenderer.java
|
||||||
|
+++ b/src/main/java/org/bukkit/map/MapRenderer.java
|
||||||
|
@@ -54,4 +54,12 @@ public abstract class MapRenderer {
|
||||||
|
*/
|
||||||
|
public abstract void render(@NotNull MapView map, @NotNull MapCanvas canvas, @NotNull Player player);
|
||||||
|
|
||||||
|
+ // Purpur - start
|
||||||
|
+ /**
|
||||||
|
+ * Check if this is an explorer (aka treasure) map.
|
||||||
|
+ *
|
||||||
|
+ * @return True if explorer map
|
||||||
|
+ */
|
||||||
|
+ public abstract boolean isExplorerMap();
|
||||||
|
+ // Purpur - end
|
||||||
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/permissions/PermissibleBase.java b/src/main/java/org/bukkit/permissions/PermissibleBase.java
|
diff --git a/src/main/java/org/bukkit/permissions/PermissibleBase.java b/src/main/java/org/bukkit/permissions/PermissibleBase.java
|
||||||
index cd3296fea01648592d2af89b3d80135acb6d0958..45797a6fbae1d8edc4211cb30def24ad4f59bd49 100644
|
index cd3296fea01648592d2af89b3d80135acb6d0958..45797a6fbae1d8edc4211cb30def24ad4f59bd49 100644
|
||||||
--- a/src/main/java/org/bukkit/permissions/PermissibleBase.java
|
--- a/src/main/java/org/bukkit/permissions/PermissibleBase.java
|
||||||
@@ -2201,18 +2232,10 @@ index e4b6f278a811acbb0070e311c5c3bdaff7b00474..ee83ecb054099cb85168a9499dfe967a
|
|||||||
{
|
{
|
||||||
java.util.Objects.requireNonNullElseGet(desc.getPrefix(), desc::getName), file // Paper - use configured log prefix
|
java.util.Objects.requireNonNullElseGet(desc.getPrefix(), desc::getName), file // Paper - use configured log prefix
|
||||||
diff --git a/src/main/java/org/bukkit/potion/PotionEffect.java b/src/main/java/org/bukkit/potion/PotionEffect.java
|
diff --git a/src/main/java/org/bukkit/potion/PotionEffect.java b/src/main/java/org/bukkit/potion/PotionEffect.java
|
||||||
index ccdca0d75868135dc7b96daeff2236b225c4add1..cad9f4ddc6be23c595e79419872f8f026703cb80 100644
|
index 037af5fd6d71a526c0e6620f2db0cd6df9625261..939ed1931492854c5854cab06730cf235eba7e89 100644
|
||||||
--- a/src/main/java/org/bukkit/potion/PotionEffect.java
|
--- a/src/main/java/org/bukkit/potion/PotionEffect.java
|
||||||
+++ b/src/main/java/org/bukkit/potion/PotionEffect.java
|
+++ b/src/main/java/org/bukkit/potion/PotionEffect.java
|
||||||
@@ -5,6 +5,7 @@ import com.google.common.collect.ImmutableMap;
|
@@ -32,12 +32,14 @@ public class PotionEffect implements ConfigurationSerializable {
|
||||||
import java.util.Map;
|
|
||||||
import java.util.NoSuchElementException;
|
|
||||||
import org.bukkit.Color;
|
|
||||||
+import org.bukkit.NamespacedKey;
|
|
||||||
import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
|
||||||
import org.bukkit.configuration.serialization.SerializableAs;
|
|
||||||
import org.bukkit.entity.LivingEntity;
|
|
||||||
@@ -31,12 +32,14 @@ public class PotionEffect implements ConfigurationSerializable {
|
|
||||||
private static final String AMBIENT = "ambient";
|
private static final String AMBIENT = "ambient";
|
||||||
private static final String PARTICLES = "has-particles";
|
private static final String PARTICLES = "has-particles";
|
||||||
private static final String ICON = "has-icon";
|
private static final String ICON = "has-icon";
|
||||||
@@ -2227,7 +2250,7 @@ index ccdca0d75868135dc7b96daeff2236b225c4add1..cad9f4ddc6be23c595e79419872f8f02
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a potion effect.
|
* Creates a potion effect.
|
||||||
@@ -49,6 +52,36 @@ public class PotionEffect implements ConfigurationSerializable {
|
@@ -50,6 +52,36 @@ public class PotionEffect implements ConfigurationSerializable {
|
||||||
* @param icon the icon status, see {@link PotionEffect#hasIcon()}
|
* @param icon the icon status, see {@link PotionEffect#hasIcon()}
|
||||||
*/
|
*/
|
||||||
public PotionEffect(@NotNull PotionEffectType type, int duration, int amplifier, boolean ambient, boolean particles, boolean icon) {
|
public PotionEffect(@NotNull PotionEffectType type, int duration, int amplifier, boolean ambient, boolean particles, boolean icon) {
|
||||||
@@ -2264,7 +2287,7 @@ index ccdca0d75868135dc7b96daeff2236b225c4add1..cad9f4ddc6be23c595e79419872f8f02
|
|||||||
Preconditions.checkArgument(type != null, "effect type cannot be null");
|
Preconditions.checkArgument(type != null, "effect type cannot be null");
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.duration = duration;
|
this.duration = duration;
|
||||||
@@ -56,6 +89,7 @@ public class PotionEffect implements ConfigurationSerializable {
|
@@ -57,6 +89,7 @@ public class PotionEffect implements ConfigurationSerializable {
|
||||||
this.ambient = ambient;
|
this.ambient = ambient;
|
||||||
this.particles = particles;
|
this.particles = particles;
|
||||||
this.icon = icon;
|
this.icon = icon;
|
||||||
@@ -2272,7 +2295,7 @@ index ccdca0d75868135dc7b96daeff2236b225c4add1..cad9f4ddc6be23c595e79419872f8f02
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -103,36 +137,43 @@ public class PotionEffect implements ConfigurationSerializable {
|
@@ -104,36 +137,43 @@ public class PotionEffect implements ConfigurationSerializable {
|
||||||
* @param map the map to deserialize from
|
* @param map the map to deserialize from
|
||||||
*/
|
*/
|
||||||
public PotionEffect(@NotNull Map<String, Object> map) {
|
public PotionEffect(@NotNull Map<String, Object> map) {
|
||||||
@@ -2322,8 +2345,8 @@ index ccdca0d75868135dc7b96daeff2236b225c4add1..cad9f4ddc6be23c595e79419872f8f02
|
|||||||
+
|
+
|
||||||
@NotNull
|
@NotNull
|
||||||
private static PotionEffectType getEffectType(@NotNull Map<?, ?> map) {
|
private static PotionEffectType getEffectType(@NotNull Map<?, ?> map) {
|
||||||
int type = getInt(map, TYPE);
|
PotionEffectType effect;
|
||||||
@@ -159,17 +200,33 @@ public class PotionEffect implements ConfigurationSerializable {
|
@@ -166,17 +206,33 @@ public class PotionEffect implements ConfigurationSerializable {
|
||||||
return def;
|
return def;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2342,21 +2365,16 @@ index ccdca0d75868135dc7b96daeff2236b225c4add1..cad9f4ddc6be23c595e79419872f8f02
|
|||||||
@NotNull
|
@NotNull
|
||||||
public Map<String, Object> serialize() {
|
public Map<String, Object> serialize() {
|
||||||
- return ImmutableMap.<String, Object>builder()
|
- return ImmutableMap.<String, Object>builder()
|
||||||
- .put(TYPE, type.getId())
|
|
||||||
- .put(DURATION, duration)
|
|
||||||
- .put(AMPLIFIER, amplifier)
|
|
||||||
- .put(AMBIENT, ambient)
|
|
||||||
- .put(PARTICLES, particles)
|
|
||||||
- .put(ICON, icon)
|
|
||||||
- .build();
|
|
||||||
+ // Purpur start - add key, don't serialize if null.
|
+ // Purpur start - add key, don't serialize if null.
|
||||||
+ ImmutableMap.Builder<String, Object> builder = ImmutableMap.<String, Object>builder()
|
+ ImmutableMap.Builder<String, Object> builder = ImmutableMap.<String, Object>builder()
|
||||||
+ .put(TYPE, type.getId())
|
.put(TYPE, type.getKey().toString())
|
||||||
+ .put(DURATION, duration)
|
.put(DURATION, duration)
|
||||||
+ .put(AMPLIFIER, amplifier)
|
.put(AMPLIFIER, amplifier)
|
||||||
+ .put(AMBIENT, ambient)
|
.put(AMBIENT, ambient)
|
||||||
+ .put(PARTICLES, particles)
|
.put(PARTICLES, particles)
|
||||||
+ .put(ICON, icon);
|
- .put(ICON, icon)
|
||||||
|
- .build();
|
||||||
|
+ .put(ICON, icon);
|
||||||
+ if(key != null) {
|
+ if(key != null) {
|
||||||
+ builder.put(KEY, key.toString());
|
+ builder.put(KEY, key.toString());
|
||||||
+ }
|
+ }
|
||||||
@@ -2365,7 +2383,7 @@ index ccdca0d75868135dc7b96daeff2236b225c4add1..cad9f4ddc6be23c595e79419872f8f02
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -193,7 +250,7 @@ public class PotionEffect implements ConfigurationSerializable {
|
@@ -200,7 +256,7 @@ public class PotionEffect implements ConfigurationSerializable {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
PotionEffect that = (PotionEffect) obj;
|
PotionEffect that = (PotionEffect) obj;
|
||||||
@@ -2374,7 +2392,7 @@ index ccdca0d75868135dc7b96daeff2236b225c4add1..cad9f4ddc6be23c595e79419872f8f02
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -289,6 +346,24 @@ public class PotionEffect implements ConfigurationSerializable {
|
@@ -296,6 +352,24 @@ public class PotionEffect implements ConfigurationSerializable {
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2399,7 +2417,7 @@ index ccdca0d75868135dc7b96daeff2236b225c4add1..cad9f4ddc6be23c595e79419872f8f02
|
|||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
int hash = 1;
|
int hash = 1;
|
||||||
@@ -303,6 +378,6 @@ public class PotionEffect implements ConfigurationSerializable {
|
@@ -310,6 +384,6 @@ public class PotionEffect implements ConfigurationSerializable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
@@ -2570,6 +2588,64 @@ index 0000000000000000000000000000000000000000..baec4c87d7ea4d54934ca22fd1eb7b46
|
|||||||
+ return purpur;
|
+ return purpur;
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
|
diff --git a/src/main/java/org/purpurmc/purpur/entity/StoredEntity.java b/src/main/java/org/purpurmc/purpur/entity/StoredEntity.java
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000000000000000000000000000000000..29540d55532197d2381a52ea9222b5785d224ef8
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/main/java/org/purpurmc/purpur/entity/StoredEntity.java
|
||||||
|
@@ -0,0 +1,52 @@
|
||||||
|
+package org.purpurmc.purpur.entity;
|
||||||
|
+
|
||||||
|
+import org.bukkit.Nameable;
|
||||||
|
+import org.bukkit.block.EntityBlockStorage;
|
||||||
|
+import org.bukkit.entity.Entity;
|
||||||
|
+import org.bukkit.entity.EntityType;
|
||||||
|
+import org.bukkit.persistence.PersistentDataHolder;
|
||||||
|
+import org.jetbrains.annotations.NotNull;
|
||||||
|
+import org.jetbrains.annotations.Nullable;
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * Represents an entity stored in a block
|
||||||
|
+ *
|
||||||
|
+ * @see org.bukkit.block.EntityBlockStorage
|
||||||
|
+ */
|
||||||
|
+public interface StoredEntity<T extends Entity> extends PersistentDataHolder, Nameable {
|
||||||
|
+ /**
|
||||||
|
+ * Checks if this entity has been released yet
|
||||||
|
+ *
|
||||||
|
+ * @return if this entity has been released
|
||||||
|
+ */
|
||||||
|
+ boolean hasBeenReleased();
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Releases the entity from its stored block
|
||||||
|
+ *
|
||||||
|
+ * @return the released entity, or null if unsuccessful (including if this entity has already been released)
|
||||||
|
+ */
|
||||||
|
+ @Nullable
|
||||||
|
+ T release();
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Returns the block in which this entity is stored
|
||||||
|
+ *
|
||||||
|
+ * @return the EntityBlockStorage in which this entity is stored, or null if it has been released
|
||||||
|
+ */
|
||||||
|
+ @Nullable
|
||||||
|
+ EntityBlockStorage<T> getBlockStorage();
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Gets the entity type of this stored entity
|
||||||
|
+ *
|
||||||
|
+ * @return the type of entity this stored entity represents
|
||||||
|
+ */
|
||||||
|
+ @NotNull
|
||||||
|
+ EntityType getType();
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Writes data to the block entity snapshot. {@link EntityBlockStorage#update()} must be run in order to update the block in game.
|
||||||
|
+ */
|
||||||
|
+ void update();
|
||||||
|
+}
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/event/ExecuteCommandEvent.java b/src/main/java/org/purpurmc/purpur/event/ExecuteCommandEvent.java
|
diff --git a/src/main/java/org/purpurmc/purpur/event/ExecuteCommandEvent.java b/src/main/java/org/purpurmc/purpur/event/ExecuteCommandEvent.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798702a8179
|
index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798702a8179
|
||||||
@@ -2875,17 +2951,19 @@ index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0d
|
|||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/event/PreBlockExplodeEvent.java b/src/main/java/org/purpurmc/purpur/event/PreBlockExplodeEvent.java
|
diff --git a/src/main/java/org/purpurmc/purpur/event/PreBlockExplodeEvent.java b/src/main/java/org/purpurmc/purpur/event/PreBlockExplodeEvent.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..b7db0db7f3afbccdb07390d1bcada109e9e6b30b
|
index 0000000000000000000000000000000000000000..32602b398ede24a35ed8a996faa2b23455615a7b
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/event/PreBlockExplodeEvent.java
|
+++ b/src/main/java/org/purpurmc/purpur/event/PreBlockExplodeEvent.java
|
||||||
@@ -0,0 +1,52 @@
|
@@ -0,0 +1,54 @@
|
||||||
+package org.purpurmc.purpur.event;
|
+package org.purpurmc.purpur.event;
|
||||||
+
|
+
|
||||||
+import org.bukkit.block.Block;
|
+import org.bukkit.block.Block;
|
||||||
|
+import org.bukkit.block.BlockState;
|
||||||
+import org.bukkit.event.Cancellable;
|
+import org.bukkit.event.Cancellable;
|
||||||
+import org.bukkit.event.HandlerList;
|
+import org.bukkit.event.HandlerList;
|
||||||
+import org.bukkit.event.block.BlockExplodeEvent;
|
+import org.bukkit.event.block.BlockExplodeEvent;
|
||||||
+import org.jetbrains.annotations.NotNull;
|
+import org.jetbrains.annotations.NotNull;
|
||||||
|
+import org.jetbrains.annotations.Nullable;
|
||||||
+import java.util.Collections;
|
+import java.util.Collections;
|
||||||
+
|
+
|
||||||
+/**
|
+/**
|
||||||
@@ -2896,8 +2974,8 @@ index 0000000000000000000000000000000000000000..b7db0db7f3afbccdb07390d1bcada109
|
|||||||
+ private boolean cancelled;
|
+ private boolean cancelled;
|
||||||
+ private final float yield;
|
+ private final float yield;
|
||||||
+
|
+
|
||||||
+ public PreBlockExplodeEvent(@NotNull final Block what, final float yield) {
|
+ public PreBlockExplodeEvent(@NotNull final Block what, final float yield, @Nullable BlockState explodedBlockState) {
|
||||||
+ super(what, Collections.emptyList(), yield);
|
+ super(what, Collections.emptyList(), yield, explodedBlockState);
|
||||||
+ this.yield = yield;
|
+ this.yield = yield;
|
||||||
+ this.cancelled = false;
|
+ this.cancelled = false;
|
||||||
+ }
|
+ }
|
||||||
@@ -3399,79 +3477,6 @@ index 0000000000000000000000000000000000000000..c268c35b541a222d50875c29770c846a
|
|||||||
+ return handlers;
|
+ return handlers;
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/event/entity/MonsterEggSpawnEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/MonsterEggSpawnEvent.java
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000000000000000000000000000000000..82f8a0ea22f07954d516935fc9f73f6aa0f65aa6
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/event/entity/MonsterEggSpawnEvent.java
|
|
||||||
@@ -0,0 +1,67 @@
|
|
||||||
+package org.purpurmc.purpur.event.entity;
|
|
||||||
+
|
|
||||||
+import org.bukkit.entity.Entity;
|
|
||||||
+import org.bukkit.entity.HumanEntity;
|
|
||||||
+import org.bukkit.entity.Player;
|
|
||||||
+import org.bukkit.event.Cancellable;
|
|
||||||
+import org.bukkit.event.Event;
|
|
||||||
+import org.bukkit.event.HandlerList;
|
|
||||||
+import org.bukkit.inventory.ItemStack;
|
|
||||||
+import org.jetbrains.annotations.NotNull;
|
|
||||||
+import org.jetbrains.annotations.Nullable;
|
|
||||||
+
|
|
||||||
+public class MonsterEggSpawnEvent extends Event implements Cancellable {
|
|
||||||
+ private static final HandlerList handlers = new HandlerList();
|
|
||||||
+ private boolean canceled;
|
|
||||||
+
|
|
||||||
+ private final Player player;
|
|
||||||
+ private Entity entity;
|
|
||||||
+ private final ItemStack item;
|
|
||||||
+
|
|
||||||
+ public MonsterEggSpawnEvent(@Nullable HumanEntity player, @NotNull Entity entity, @NotNull ItemStack item) {
|
|
||||||
+ this.player = (Player) player;
|
|
||||||
+ this.entity = entity;
|
|
||||||
+ this.item = item;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Nullable
|
|
||||||
+ public Player getPlayer() {
|
|
||||||
+ return player;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @NotNull
|
|
||||||
+ public Entity getEntity() {
|
|
||||||
+ return entity;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public void setEntity(@Nullable Entity entity) {
|
|
||||||
+ if (entity == null) {
|
|
||||||
+ canceled = true;
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ this.entity = entity;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @NotNull
|
|
||||||
+ public ItemStack getItem() {
|
|
||||||
+ return item;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public boolean isCancelled() {
|
|
||||||
+ return canceled;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public void setCancelled(boolean cancel) {
|
|
||||||
+ canceled = cancel;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @NotNull
|
|
||||||
+ public HandlerList getHandlers() {
|
|
||||||
+ return handlers;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @NotNull
|
|
||||||
+ public static HandlerList getHandlerList() {
|
|
||||||
+ return handlers;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/event/entity/PreEntityExplodeEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/PreEntityExplodeEvent.java
|
diff --git a/src/main/java/org/purpurmc/purpur/event/entity/PreEntityExplodeEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/PreEntityExplodeEvent.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..2d4f68228861492baaea0bcc604dfef623b337ba
|
index 0000000000000000000000000000000000000000..2d4f68228861492baaea0bcc604dfef623b337ba
|
||||||
@@ -4076,18 +4081,3 @@ index 12946bd55fcf7c40d39081779a7fa30049ee6165..9c2d605c50cbf9aefa56ec209df9f6ce
|
|||||||
+ public void stopTiming() { /*handler.stopTiming();*/ } // Purpur
|
+ public void stopTiming() { /*handler.stopTiming();*/ } // Purpur
|
||||||
|
|
||||||
}
|
}
|
||||||
diff --git a/src/test/java/org/bukkit/AnnotationTest.java b/src/test/java/org/bukkit/AnnotationTest.java
|
|
||||||
index 06e96e5c98f1a7a68c8b4b5e527314c1aa774e38..49bba9a7a02b9cf3a552583315eff2b7dbe060c0 100644
|
|
||||||
--- a/src/test/java/org/bukkit/AnnotationTest.java
|
|
||||||
+++ b/src/test/java/org/bukkit/AnnotationTest.java
|
|
||||||
@@ -47,6 +47,10 @@ public class AnnotationTest {
|
|
||||||
"org/bukkit/plugin/java/PluginClassLoader",
|
|
||||||
// Generic functional interface
|
|
||||||
"org/bukkit/util/Consumer",
|
|
||||||
+ // Purpur start
|
|
||||||
+ "gg/pufferfish/pufferfish/sentry/SentryContext",
|
|
||||||
+ "gg/pufferfish/pufferfish/sentry/SentryContext$State",
|
|
||||||
+ // Purpur end
|
|
||||||
// Paper start
|
|
||||||
"io/papermc/paper/util/TransformingRandomAccessList",
|
|
||||||
"io/papermc/paper/util/TransformingRandomAccessList$TransformedListIterator",
|
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Plazma Configurations
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||||
index 730caafaf9629664ba125f3884559da76616f655..bea2e55c79541939756012963452ca0436d39782 100644
|
index aaef58468a3c31f35e5067ed4263e9dd3fbddddd..0852f1a18106a81a60726756aae1d9c2ba30b111 100644
|
||||||
--- a/src/main/java/org/bukkit/Server.java
|
--- a/src/main/java/org/bukkit/Server.java
|
||||||
+++ b/src/main/java/org/bukkit/Server.java
|
+++ b/src/main/java/org/bukkit/Server.java
|
||||||
@@ -1968,6 +1968,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
@@ -2121,6 +2121,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <alphakr93@outlook.com>
|
|
||||||
Date: Thu, 22 Dec 2022 20:29:45 +0900
|
|
||||||
Subject: [PATCH] Bump Bungeecord Chat API to 1.19-R0.1-SNAPSHOT
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
|
||||||
index b5835fa536f90b7f88a5ee4df78733cf43e1cb23..42de5c470a2fbb1e0bc9b809c033e3afe30502fa 100644
|
|
||||||
--- a/build.gradle.kts
|
|
||||||
+++ b/build.gradle.kts
|
|
||||||
@@ -25,7 +25,7 @@ dependencies {
|
|
||||||
// api dependencies are listed transitively to API consumers
|
|
||||||
api("com.google.guava:guava:31.1-jre")
|
|
||||||
api("com.google.code.gson:gson:2.10")
|
|
||||||
- api("net.md-5:bungeecord-chat:1.16-R0.4-deprecated+build.9") // Paper
|
|
||||||
+ api("net.md-5:bungeecord-chat:1.19-R0.1-SNAPSHOT") // Paper // Plazma
|
|
||||||
api("org.yaml:snakeyaml:1.33")
|
|
||||||
api("org.joml:joml:1.10.5")
|
|
||||||
// Paper start
|
|
||||||
@@ -1,18 +1,17 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: AlphaKR93 <alphakr93@outlook.com>
|
From: IPECTER <ipectert@gmail.com>
|
||||||
Date: Fri, 6 Jan 2023 17:11:31 +0900
|
Date: Mon, 19 Jun 2023 18:19:50 +0900
|
||||||
Subject: [PATCH] Publish Packages
|
Subject: [PATCH] Publish-Packages
|
||||||
|
|
||||||
|
|
||||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
index 7b38042c32295ef7c5ea3c212170cc8fcdf0d7a0..1e300e51fa3413f9846c686545f2b7deb0ac5160 100644
|
index 6c0df825238ca037abeb2ba619983b6f554180ea..54da0cab8681daac2dd9fbf0eb94de471819d4c8 100644
|
||||||
--- a/build.gradle.kts
|
--- a/build.gradle.kts
|
||||||
+++ b/build.gradle.kts
|
+++ b/build.gradle.kts
|
||||||
@@ -156,3 +156,23 @@ tasks.check {
|
@@ -171,3 +171,22 @@ tasks.check {
|
||||||
dependsOn(scanJar)
|
dependsOn(scanJar)
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
+
|
|
||||||
+// Plazma start
|
+// Plazma start
|
||||||
+publishing {
|
+publishing {
|
||||||
+ repositories {
|
+ repositories {
|
||||||
@@ -32,3 +31,4 @@ index 7b38042c32295ef7c5ea3c212170cc8fcdf0d7a0..1e300e51fa3413f9846c686545f2b7de
|
|||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
+// Plazma end
|
+// Plazma end
|
||||||
|
\ No newline at end of file
|
||||||
79
patches/api/0005-Optimize-spigot-event-bus.patch
Normal file
79
patches/api/0005-Optimize-spigot-event-bus.patch
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: IPECTER <ipectert@gmail.com>
|
||||||
|
Date: Wed, 6 Sep 2023 15:04:25 +0900
|
||||||
|
Subject: [PATCH] Optimize-spigot-event-bus
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/event/Event.java b/src/main/java/org/bukkit/event/Event.java
|
||||||
|
index 8ec56cd6b8e0f5c5dd8c7c88b4671e18dcf109d0..45b8ee1945202cc673905aab5c90985c01cb205e 100644
|
||||||
|
--- a/src/main/java/org/bukkit/event/Event.java
|
||||||
|
+++ b/src/main/java/org/bukkit/event/Event.java
|
||||||
|
@@ -14,7 +14,7 @@ import org.jetbrains.annotations.NotNull;
|
||||||
|
*/
|
||||||
|
public abstract class Event {
|
||||||
|
private String name;
|
||||||
|
- private final boolean async;
|
||||||
|
+ private final net.kyori.adventure.util.TriState async; // Plazma - Optimize spigot event bus
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The default constructor is defined for cleaner code. This constructor
|
||||||
|
@@ -32,9 +32,35 @@ public abstract class Event {
|
||||||
|
* by default from default constructor
|
||||||
|
*/
|
||||||
|
public Event(boolean isAsync) {
|
||||||
|
+ this(net.kyori.adventure.util.TriState.byBoolean(isAsync)); // Plazma - Optimize spigot event bus
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // Plazma start - Optimize spigot event bus
|
||||||
|
+ /**
|
||||||
|
+ * This constructor is used to explicitly declare an event as synchronous
|
||||||
|
+ * or asynchronous or potentially unset.
|
||||||
|
+ *
|
||||||
|
+ * @param isAsync true indicates the event will fire asynchronously, false
|
||||||
|
+ * by default from default constructor, unset indicates that the event may be called on either the server thread or off the server
|
||||||
|
+ * thread.
|
||||||
|
+ */
|
||||||
|
+ public Event(@NotNull final net.kyori.adventure.util.TriState isAsync) {
|
||||||
|
this.async = isAsync;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /**
|
||||||
|
+ * Returns a tristate that, when resolving to true or false, has the exact indications defined by {@link #isAsynchronous()}.
|
||||||
|
+ * <p>
|
||||||
|
+ * If the tristate resolves to NOT_SET, the event may or may not have been fired off the main thread, meaning a plugin would have
|
||||||
|
+ * to validate what thread the spigot event bus was called on.
|
||||||
|
+ *
|
||||||
|
+ * @return the tristate enum.
|
||||||
|
+ */
|
||||||
|
+ public final @NotNull net.kyori.adventure.util.TriState asynchronous() {
|
||||||
|
+ return this.async;
|
||||||
|
+ }
|
||||||
|
+ // Plazma end
|
||||||
|
+
|
||||||
|
// Paper start
|
||||||
|
/**
|
||||||
|
* Calls the event and tests if cancelled.
|
||||||
|
@@ -92,7 +118,7 @@ public abstract class Event {
|
||||||
|
* @return false by default, true if the event fires asynchronously
|
||||||
|
*/
|
||||||
|
public final boolean isAsynchronous() {
|
||||||
|
- return async;
|
||||||
|
+ return this.async == net.kyori.adventure.util.TriState.TRUE; // Plazma - Optimize spigot event bus
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Result {
|
||||||
|
diff --git a/src/main/java/org/bukkit/plugin/RegisteredListener.java b/src/main/java/org/bukkit/plugin/RegisteredListener.java
|
||||||
|
index 3b3d9642a8d63798dc28f2f8df77f0466451cbff..0702e1692f7e671188ac18e22ca29f369b0b6352 100644
|
||||||
|
--- a/src/main/java/org/bukkit/plugin/RegisteredListener.java
|
||||||
|
+++ b/src/main/java/org/bukkit/plugin/RegisteredListener.java
|
||||||
|
@@ -62,8 +62,8 @@ public class RegisteredListener {
|
||||||
|
* @throws EventException If an event handler throws an exception.
|
||||||
|
*/
|
||||||
|
public void callEvent(@NotNull final Event event) throws EventException {
|
||||||
|
- if (event instanceof Cancellable) {
|
||||||
|
- if (((Cancellable) event).isCancelled() && isIgnoringCancelled()) {
|
||||||
|
+ if (isIgnoringCancelled()) { // Plazma - Optimize spigot event bus
|
||||||
|
+ if (event instanceof Cancellable cancellable && cancellable.isCancelled()) { // Plazma - Optimize spigot event bus
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
19
patches/api/0006-Implement-No-Chat-Reports.patch
Normal file
19
patches/api/0006-Implement-No-Chat-Reports.patch
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Thu, 28 Sep 2023 12:21:36 +0900
|
||||||
|
Subject: [PATCH] Implement No Chat Reports
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/event/player/PlayerKickEvent.java b/src/main/java/org/bukkit/event/player/PlayerKickEvent.java
|
||||||
|
index 2eb13c049fa917d41fa9ad17fdec9ec4c33701a8..5d50f83a76affc74f989870ca1bc8d7a75f3b2ba 100644
|
||||||
|
--- a/src/main/java/org/bukkit/event/player/PlayerKickEvent.java
|
||||||
|
+++ b/src/main/java/org/bukkit/event/player/PlayerKickEvent.java
|
||||||
|
@@ -215,6 +215,8 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable {
|
||||||
|
* Fallback cause
|
||||||
|
*/
|
||||||
|
UNKNOWN,
|
||||||
|
+
|
||||||
|
+ NCR_NOT_INSTALLED, // Plazma - Implement No Chat Reports
|
||||||
|
}
|
||||||
|
// Paper end
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
80
patches/server/0003-MC-Dev-fixes.patch
Normal file
80
patches/server/0003-MC-Dev-fixes.patch
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: IPECTER <ipectert@gmail.com>
|
||||||
|
Date: Tue, 30 May 2023 12:12:29 +0900
|
||||||
|
Subject: [PATCH] MC Dev fixes
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java
|
||||||
|
index b0b2cbd8d9db1772d43a285eca9060f3879acab0..8cde30544e14f8fc2dac32966ae3c21f8cf3a551 100644
|
||||||
|
--- a/src/main/java/com/destroystokyo/paper/Metrics.java
|
||||||
|
+++ b/src/main/java/com/destroystokyo/paper/Metrics.java
|
||||||
|
@@ -604,15 +604,6 @@ public class Metrics {
|
||||||
|
metrics.addCustomChart(new Metrics.SingleLineChart("players", () -> Bukkit.getOnlinePlayers().size()));
|
||||||
|
metrics.addCustomChart(new Metrics.SimplePie("online_mode", () -> Bukkit.getOnlineMode() ? "online" : (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() ? "bungee" : "offline"))); // Purpur
|
||||||
|
metrics.addCustomChart(new Metrics.SimplePie("purpur_version", () -> (org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion() != null) ? org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion() : "unknown")); // Purpur
|
||||||
|
- final String paperVersion;
|
||||||
|
- final String implVersion = org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion();
|
||||||
|
- if (implVersion != null) {
|
||||||
|
- final String buildOrHash = implVersion.substring(implVersion.lastIndexOf('-') + 1);
|
||||||
|
- paperVersion = "git-Pufferfish-%s-%s".formatted(Bukkit.getServer().getMinecraftVersion(), buildOrHash); // Pufferfish
|
||||||
|
- } else {
|
||||||
|
- paperVersion = "unknown";
|
||||||
|
- }
|
||||||
|
- metrics.addCustomChart(new Metrics.SimplePie("pufferfish_version", () -> paperVersion)); // Pufferfish
|
||||||
|
|
||||||
|
metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> {
|
||||||
|
Map<String, Map<String, Integer>> map = new HashMap<>();
|
||||||
|
diff --git a/src/main/java/net/minecraft/util/datafix/fixes/LeavesFix.java b/src/main/java/net/minecraft/util/datafix/fixes/LeavesFix.java
|
||||||
|
index 733134401fcba393053c7a2dfa1d0d44f8f79ff5..17d931ef47846b59e28dc0c5b5ae91396a1d3e7d 100644
|
||||||
|
--- a/src/main/java/net/minecraft/util/datafix/fixes/LeavesFix.java
|
||||||
|
+++ b/src/main/java/net/minecraft/util/datafix/fixes/LeavesFix.java
|
||||||
|
@@ -71,14 +71,14 @@ public class LeavesFix extends DataFix {
|
||||||
|
return this.fixTypeEverywhereTyped("Leaves fix", type, (typed) -> {
|
||||||
|
return typed.updateTyped(opticFinder, (typedx) -> {
|
||||||
|
int[] is = new int[]{0};
|
||||||
|
- Typed<?> typed2 = typedx.updateTyped(opticFinder2, (typed) -> {
|
||||||
|
- Int2ObjectMap<LeavesFix.LeavesSection> int2ObjectMap = new Int2ObjectOpenHashMap<>(typed.getAllTyped(opticFinder3).stream().map((typedx) -> {
|
||||||
|
- return new LeavesFix.LeavesSection(typedx, this.getInputSchema());
|
||||||
|
+ Typed<?> typed2 = typedx.updateTyped(opticFinder2, (typed2x) -> { // Plazma - decompile fix
|
||||||
|
+ Int2ObjectMap<LeavesFix.LeavesSection> int2ObjectMap = new Int2ObjectOpenHashMap<>(typed2x.getAllTyped(opticFinder3).stream().map((typedx2) -> { // Plazma - decompile fix
|
||||||
|
+ return new LeavesFix.LeavesSection(typedx2, this.getInputSchema()); // Plazma - decompile fix
|
||||||
|
}).collect(Collectors.toMap(LeavesFix.Section::getIndex, (leavesSection) -> {
|
||||||
|
return leavesSection;
|
||||||
|
})));
|
||||||
|
if (int2ObjectMap.values().stream().allMatch(LeavesFix.Section::isSkippable)) {
|
||||||
|
- return typed;
|
||||||
|
+ return typed2x; // Plazma - decompile fix
|
||||||
|
} else {
|
||||||
|
List<IntSet> list = Lists.newArrayList();
|
||||||
|
|
||||||
|
@@ -134,8 +134,8 @@ public class LeavesFix extends DataFix {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- return typed.updateTyped(opticFinder3, (typedx) -> {
|
||||||
|
- return int2ObjectMap.get(typedx.get(DSL.remainderFinder()).get("Y").asInt(0)).write(typedx);
|
||||||
|
+ return typed.updateTyped(opticFinder3, (typedx2) -> { // Plazma - decompile fix
|
||||||
|
+ return int2ObjectMap.get(typedx2.get(DSL.remainderFinder()).get("Y").asInt(0)).write(typedx2); // Plazma - decompile fix
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
@@ -298,8 +298,8 @@ public class LeavesFix extends DataFix {
|
||||||
|
throw new IllegalStateException("Block state type is not what was expected.");
|
||||||
|
} else {
|
||||||
|
Optional<List<Pair<String, Dynamic<?>>>> optional = typed.getOptional(this.paletteFinder);
|
||||||
|
- this.palette = optional.map((list) -> {
|
||||||
|
- return list.stream().map(Pair::getSecond).collect(Collectors.toList());
|
||||||
|
+ this.palette = (List) optional.map((list) -> { // Plazma - decompile fix
|
||||||
|
+ return (List) list.stream().map(Pair::getSecond).collect(Collectors.toList()); // Plazma - decompile fix
|
||||||
|
}).orElse(ImmutableList.of());
|
||||||
|
Dynamic<?> dynamic = typed.get(DSL.remainderFinder());
|
||||||
|
this.index = dynamic.get("Y").asInt(0);
|
||||||
|
@@ -321,7 +321,7 @@ public class LeavesFix extends DataFix {
|
||||||
|
public Typed<?> write(Typed<?> typed) {
|
||||||
|
return this.isSkippable() ? typed : typed.update(DSL.remainderFinder(), (dynamic) -> {
|
||||||
|
return dynamic.set("BlockStates", dynamic.createLongList(Arrays.stream(this.storage.getRaw())));
|
||||||
|
- }).set(this.paletteFinder, this.palette.stream().map((dynamic) -> {
|
||||||
|
+ }).set(this.paletteFinder, (List) this.palette.stream().map((dynamic) -> { // Plazma - decompile fix
|
||||||
|
return Pair.of(References.BLOCK_STATE.typeName(), dynamic);
|
||||||
|
}).collect(Collectors.toList()));
|
||||||
|
}
|
||||||
@@ -1,430 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <alphakr93@gmail.com>
|
|
||||||
Date: Fri, 10 Mar 2023 22:08:56 +0900
|
|
||||||
Subject: [PATCH] Rebrand Logo
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/resources/logo.png b/src/main/resources/logo.png
|
|
||||||
index a7d785f60c884ee4ee487cc364402d66c3dc2ecc..278de5d47a7802ab89d9ae39c1560ef87d6d6fc4 100644
|
|
||||||
GIT binary patch
|
|
||||||
literal 7999
|
|
||||||
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
|
|
||||||
E0k}Z_!T<mO
|
|
||||||
|
|
||||||
literal 14310
|
|
||||||
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%0ABLt+m?son?j
|
|
||||||
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
|
|
||||||
WX&3$!%>|s_1IbA#OV)^+1pg1OmmZn`
|
|
||||||
|
|
||||||
@@ -5,24 +5,24 @@ Subject: [PATCH] Rebrand
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
index 22470f0ab8354a9f31a0f195f3fe80f2f5ee2f0e..dc89b3a8956af69fa71a2bfa17c22aee6c5e9edf 100644
|
index 393dab1ece76e0ca1e0b58c0b2c72d5c1c41a84d..cfb74b11743ce2f7a78a6a8085f9dd05b65a3152 100644
|
||||||
--- a/build.gradle.kts
|
--- a/build.gradle.kts
|
||||||
+++ b/build.gradle.kts
|
+++ b/build.gradle.kts
|
||||||
@@ -7,7 +7,7 @@ plugins {
|
@@ -14,7 +14,7 @@ val alsoShade: Configuration by configurations.creating
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
- implementation(project(":purpur-api")) // Purpur
|
// Purpur start
|
||||||
+ implementation(project(":plazma-api")) // Purpur
|
- implementation(project(":purpur-api"))
|
||||||
implementation("io.papermc.paper:paper-mojangapi:1.19.4-R0.1-SNAPSHOT") // Purpur
|
+ implementation(project(":plazma-api"))
|
||||||
// Paper start
|
implementation("io.papermc.paper:paper-mojangapi:${project.version}") {
|
||||||
implementation("org.jline:jline-terminal-jansi:3.21.0")
|
exclude("io.papermc.paper", "paper-api")
|
||||||
@@ -81,7 +81,7 @@ tasks.jar {
|
}
|
||||||
|
@@ -87,7 +87,7 @@ tasks.jar {
|
||||||
attributes(
|
attributes(
|
||||||
"Main-Class" to "org.bukkit.craftbukkit.Main",
|
"Main-Class" to "org.bukkit.craftbukkit.Main",
|
||||||
"Implementation-Title" to "CraftBukkit",
|
"Implementation-Title" to "CraftBukkit",
|
||||||
- "Implementation-Version" to "git-Purpur-$implementationVersion", // Pufferfish // Purpur
|
- "Implementation-Version" to "git-Purpur-$implementationVersion", // Pufferfish // Purpur
|
||||||
+ "Implementation-Version" to "git-Plazma-$implementationVersion", // Pufferfish // Purpur // Plazma
|
+ "Implementation-Version" to "git-Plazma-$implementationVersion", // Pufferfish // Purpur
|
||||||
"Implementation-Vendor" to date, // Paper
|
"Implementation-Vendor" to date, // Paper
|
||||||
"Specification-Title" to "Bukkit",
|
"Specification-Title" to "Bukkit",
|
||||||
"Specification-Version" to project.version,
|
"Specification-Version" to project.version,
|
||||||
@@ -131,7 +131,7 @@ index 3cb56595822799926a8141e60a42f5d1edfc6de5..19d1d136fc28d6c114f6bc44c6450d2d
|
|||||||
.completer(new ConsoleCommandCompleter(this.server))
|
.completer(new ConsoleCommandCompleter(this.server))
|
||||||
.option(LineReader.Option.COMPLETE_IN_WORD, true);
|
.option(LineReader.Option.COMPLETE_IN_WORD, true);
|
||||||
diff --git a/src/main/java/net/minecraft/CrashReport.java b/src/main/java/net/minecraft/CrashReport.java
|
diff --git a/src/main/java/net/minecraft/CrashReport.java b/src/main/java/net/minecraft/CrashReport.java
|
||||||
index b5b6657e52e4f7a630229bd3ba433438af293e22..c468733f44ccb3ff4ba3c20921a4ec52658f0689 100644
|
index ed3527612315e6e0649182ce4e1ae2834b0918a9..ae02c029f0169d30a34d4a4e65ea6cb4fa498111 100644
|
||||||
--- a/src/main/java/net/minecraft/CrashReport.java
|
--- a/src/main/java/net/minecraft/CrashReport.java
|
||||||
+++ b/src/main/java/net/minecraft/CrashReport.java
|
+++ b/src/main/java/net/minecraft/CrashReport.java
|
||||||
@@ -35,7 +35,7 @@ public class CrashReport {
|
@@ -35,7 +35,7 @@ public class CrashReport {
|
||||||
@@ -153,32 +153,33 @@ index b5b6657e52e4f7a630229bd3ba433438af293e22..c468733f44ccb3ff4ba3c20921a4ec52
|
|||||||
stringbuilder.append("// ");
|
stringbuilder.append("// ");
|
||||||
stringbuilder.append(CrashReport.getErrorComment());
|
stringbuilder.append(CrashReport.getErrorComment());
|
||||||
diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java
|
diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java
|
||||||
index c6fa6bcd66d61359124a8426b919493c6ec43f06..e0eaa847526431ac58d00f18f0fca6b1ef9a79cd 100644
|
index 27a238cc56702297c88fde0f379178222ccf6c5b..30fc258faa6f087cf3c91411b48116a3ac416031 100644
|
||||||
--- a/src/main/java/net/minecraft/server/Main.java
|
--- a/src/main/java/net/minecraft/server/Main.java
|
||||||
+++ b/src/main/java/net/minecraft/server/Main.java
|
+++ b/src/main/java/net/minecraft/server/Main.java
|
||||||
@@ -81,6 +81,17 @@ public class Main {
|
@@ -108,6 +108,18 @@ public class Main {
|
||||||
|
*/ // CraftBukkit end
|
||||||
|
|
||||||
@DontObfuscate
|
try {
|
||||||
public static void main(final OptionSet optionset) { // CraftBukkit - replaces main(String[] astring)
|
+ // Plazma start - Branding
|
||||||
+ // Plazma start - Branding
|
+ System.out.println("""
|
||||||
+ System.out.println("""
|
+ \033[38;2;236;61;151m┏\033[38;2;236;61;157m━\033[38;2;237;62;163m━\033[38;2;237;62;169m━\033[38;2;238;62;175m━\033[38;2;238;63;181m━\033[38;2;239;63;187m┓\033[38;2;239;63;193m \033[38;2;239;64;200m┏\033[38;2;240;64;206m━\033[38;2;240;64;212m┓\033[38;2;241;65;218m \033[38;2;241;65;224m \033[38;2;242;65;230m \033[38;2;242;66;236m \033[38;2;242;66;242m \033[38;2;237;66;243m \033[38;2;232;67;243m┏\033[38;2;227;67;244m━\033[38;2;221;67;244m━\033[38;2;216;68;244m━\033[38;2;211;68;245m━\033[38;2;205;69;245m┓\033[38;2;200;69;246m \033[38;2;195;69;246m┏\033[38;2;189;70;246m━\033[38;2;184;70;247m━\033[38;2;179;70;247m━\033[38;2;173;71;247m━\033[38;2;168;71;248m━\033[38;2;163;72;248m━\033[38;2;157;72;249m┓\033[38;2;152;72;249m┏\033[38;2;147;73;249m━\033[38;2;141;73;250m━\033[38;2;136;74;250m┓\033[38;2;131;74;250m \033[38;2;125;74;251m \033[38;2;120;75;251m \033[38;2;115;75;251m┏\033[38;2;109;76;252m━\033[38;2;104;76;252m━\033[38;2;99;77;252m┓\033[38;2;94;77;253m \033[38;2;88;77;253m┏\033[38;2;83;78;253m━\033[38;2;78;79;254m━\033[38;2;79;85;254m━\033[38;2;79;91;254m━\033[38;2;80;97;255m┓\033[38;2;80;103;255m\s
|
||||||
+ \033[38;2;236;61;151m┏\033[38;2;236;61;157m━\033[38;2;237;62;163m━\033[38;2;237;62;169m━\033[38;2;238;62;175m━\033[38;2;238;63;181m━\033[38;2;239;63;187m┓\033[38;2;239;63;193m \033[38;2;239;64;200m┏\033[38;2;240;64;206m━\033[38;2;240;64;212m┓\033[38;2;241;65;218m \033[38;2;241;65;224m \033[38;2;242;65;230m \033[38;2;242;66;236m \033[38;2;242;66;242m \033[38;2;237;66;243m \033[38;2;232;67;243m┏\033[38;2;227;67;244m━\033[38;2;221;67;244m━\033[38;2;216;68;244m━\033[38;2;211;68;245m━\033[38;2;205;69;245m┓\033[38;2;200;69;246m \033[38;2;195;69;246m┏\033[38;2;189;70;246m━\033[38;2;184;70;247m━\033[38;2;179;70;247m━\033[38;2;173;71;247m━\033[38;2;168;71;248m━\033[38;2;163;72;248m━\033[38;2;157;72;249m┓\033[38;2;152;72;249m┏\033[38;2;147;73;249m━\033[38;2;141;73;250m━\033[38;2;136;74;250m┓\033[38;2;131;74;250m \033[38;2;125;74;251m \033[38;2;120;75;251m \033[38;2;115;75;251m┏\033[38;2;109;76;252m━\033[38;2;104;76;252m━\033[38;2;99;77;252m┓\033[38;2;94;77;253m \033[38;2;88;77;253m┏\033[38;2;83;78;253m━\033[38;2;78;79;254m━\033[38;2;79;85;254m━\033[38;2;79;91;254m━\033[38;2;80;97;255m┓\033[38;2;80;103;255m\s
|
+ \033[38;2;236;61;151m┃\033[38;2;236;61;157m┏\033[38;2;237;62;163m━\033[38;2;237;62;169m━\033[38;2;238;62;175m━\033[38;2;238;63;181m┓\033[38;2;239;63;187m┗\033[38;2;239;63;193m┓\033[38;2;239;64;200m┃\033[38;2;240;64;206m \033[38;2;240;64;212m┃\033[38;2;241;65;218m \033[38;2;241;65;224m \033[38;2;242;65;230m \033[38;2;242;66;236m \033[38;2;242;66;242m \033[38;2;237;66;243m┏\033[38;2;232;67;243m┛\033[38;2;227;67;244m┏\033[38;2;221;67;244m━\033[38;2;216;68;244m━\033[38;2;211;68;245m┓\033[38;2;205;69;245m┗\033[38;2;200;69;246m┓\033[38;2;195;69;246m┗\033[38;2;189;70;246m━\033[38;2;184;70;247m━\033[38;2;179;70;247m┓\033[38;2;173;71;247m \033[38;2;168;71;248m \033[38;2;163;72;248m┏\033[38;2;157;72;249m┛\033[38;2;152;72;249m┃\033[38;2;147;73;249m \033[38;2;141;73;250m \033[38;2;136;74;250m┗\033[38;2;131;74;250m┓\033[38;2;125;74;251m \033[38;2;120;75;251m┏\033[38;2;115;75;251m┛\033[38;2;109;76;252m \033[38;2;104;76;252m \033[38;2;99;77;252m┃\033[38;2;94;77;253m┏\033[38;2;88;77;253m┛\033[38;2;83;78;253m┏\033[38;2;78;79;254m━\033[38;2;79;85;254m━\033[38;2;79;91;254m┓\033[38;2;80;97;255m┗\033[38;2;80;103;255m┓
|
||||||
+ \033[38;2;236;61;151m┃\033[38;2;236;61;157m┏\033[38;2;237;62;163m━\033[38;2;237;62;169m━\033[38;2;238;62;175m━\033[38;2;238;63;181m┓\033[38;2;239;63;187m┗\033[38;2;239;63;193m┓\033[38;2;239;64;200m┃\033[38;2;240;64;206m \033[38;2;240;64;212m┃\033[38;2;241;65;218m \033[38;2;241;65;224m \033[38;2;242;65;230m \033[38;2;242;66;236m \033[38;2;242;66;242m \033[38;2;237;66;243m┏\033[38;2;232;67;243m┛\033[38;2;227;67;244m┏\033[38;2;221;67;244m━\033[38;2;216;68;244m━\033[38;2;211;68;245m┓\033[38;2;205;69;245m┗\033[38;2;200;69;246m┓\033[38;2;195;69;246m┗\033[38;2;189;70;246m━\033[38;2;184;70;247m━\033[38;2;179;70;247m┓\033[38;2;173;71;247m \033[38;2;168;71;248m \033[38;2;163;72;248m┏\033[38;2;157;72;249m┛\033[38;2;152;72;249m┃\033[38;2;147;73;249m \033[38;2;141;73;250m \033[38;2;136;74;250m┗\033[38;2;131;74;250m┓\033[38;2;125;74;251m \033[38;2;120;75;251m┏\033[38;2;115;75;251m┛\033[38;2;109;76;252m \033[38;2;104;76;252m \033[38;2;99;77;252m┃\033[38;2;94;77;253m┏\033[38;2;88;77;253m┛\033[38;2;83;78;253m┏\033[38;2;78;79;254m━\033[38;2;79;85;254m━\033[38;2;79;91;254m┓\033[38;2;80;97;255m┗\033[38;2;80;103;255m┓
|
+ \033[38;2;236;61;151m┃\033[38;2;236;61;157m┗\033[38;2;237;62;163m━\033[38;2;237;62;169m━\033[38;2;238;62;175m━\033[38;2;238;63;181m┛\033[38;2;239;63;187m┏\033[38;2;239;63;193m┛\033[38;2;239;64;200m┃\033[38;2;240;64;206m \033[38;2;240;64;212m┃\033[38;2;241;65;218m \033[38;2;241;65;224m \033[38;2;242;65;230m \033[38;2;242;66;236m \033[38;2;242;66;242m \033[38;2;237;66;243m┃\033[38;2;232;67;243m \033[38;2;227;67;244m┗\033[38;2;221;67;244m━\033[38;2;216;68;244m━\033[38;2;211;68;245m┛\033[38;2;205;69;245m \033[38;2;200;69;246m┃\033[38;2;195;69;246m \033[38;2;189;70;246m \033[38;2;184;70;247m┏\033[38;2;179;70;247m┛\033[38;2;173;71;247m \033[38;2;168;71;248m┏\033[38;2;163;72;248m┛\033[38;2;157;72;249m \033[38;2;152;72;249m┃\033[38;2;147;73;249m \033[38;2;141;73;250m┏\033[38;2;136;74;250m┓\033[38;2;131;74;250m┗\033[38;2;125;74;251m━\033[38;2;120;75;251m┛\033[38;2;115;75;251m┏\033[38;2;109;76;252m┓\033[38;2;104;76;252m \033[38;2;99;77;252m┃\033[38;2;94;77;253m┃\033[38;2;88;77;253m \033[38;2;83;78;253m┗\033[38;2;78;79;254m━\033[38;2;79;85;254m━\033[38;2;79;91;254m┛\033[38;2;80;97;255m \033[38;2;80;103;255m┃
|
||||||
+ \033[38;2;236;61;151m┃\033[38;2;236;61;157m┗\033[38;2;237;62;163m━\033[38;2;237;62;169m━\033[38;2;238;62;175m━\033[38;2;238;63;181m┛\033[38;2;239;63;187m┏\033[38;2;239;63;193m┛\033[38;2;239;64;200m┃\033[38;2;240;64;206m \033[38;2;240;64;212m┃\033[38;2;241;65;218m \033[38;2;241;65;224m \033[38;2;242;65;230m \033[38;2;242;66;236m \033[38;2;242;66;242m \033[38;2;237;66;243m┃\033[38;2;232;67;243m \033[38;2;227;67;244m┗\033[38;2;221;67;244m━\033[38;2;216;68;244m━\033[38;2;211;68;245m┛\033[38;2;205;69;245m \033[38;2;200;69;246m┃\033[38;2;195;69;246m \033[38;2;189;70;246m \033[38;2;184;70;247m┏\033[38;2;179;70;247m┛\033[38;2;173;71;247m \033[38;2;168;71;248m┏\033[38;2;163;72;248m┛\033[38;2;157;72;249m \033[38;2;152;72;249m┃\033[38;2;147;73;249m \033[38;2;141;73;250m┏\033[38;2;136;74;250m┓\033[38;2;131;74;250m┗\033[38;2;125;74;251m━\033[38;2;120;75;251m┛\033[38;2;115;75;251m┏\033[38;2;109;76;252m┓\033[38;2;104;76;252m \033[38;2;99;77;252m┃\033[38;2;94;77;253m┃\033[38;2;88;77;253m \033[38;2;83;78;253m┗\033[38;2;78;79;254m━\033[38;2;79;85;254m━\033[38;2;79;91;254m┛\033[38;2;80;97;255m \033[38;2;80;103;255m┃
|
+ \033[38;2;236;61;151m┃\033[38;2;236;61;157m \033[38;2;237;62;163m┏\033[38;2;237;62;169m━\033[38;2;238;62;175m━\033[38;2;238;63;181m━\033[38;2;239;63;187m┛\033[38;2;239;63;193m \033[38;2;239;64;200m┃\033[38;2;240;64;206m \033[38;2;240;64;212m┃\033[38;2;241;65;218m \033[38;2;241;65;224m \033[38;2;242;65;230m \033[38;2;242;66;236m \033[38;2;242;66;242m \033[38;2;237;66;243m┃\033[38;2;232;67;243m \033[38;2;227;67;244m┏\033[38;2;221;67;244m━\033[38;2;216;68;244m━\033[38;2;211;68;245m┓\033[38;2;205;69;245m \033[38;2;200;69;246m┃\033[38;2;195;69;246m \033[38;2;189;70;246m┏\033[38;2;184;70;247m┛\033[38;2;179;70;247m \033[38;2;173;71;247m┏\033[38;2;168;71;248m┛\033[38;2;163;72;248m \033[38;2;157;72;249m \033[38;2;152;72;249m┃\033[38;2;147;73;249m \033[38;2;141;73;250m┃\033[38;2;136;74;250m┗\033[38;2;131;74;250m┓\033[38;2;125;74;251m \033[38;2;120;75;251m┏\033[38;2;115;75;251m┛\033[38;2;109;76;252m┃\033[38;2;104;76;252m \033[38;2;99;77;252m┃\033[38;2;94;77;253m┃\033[38;2;88;77;253m \033[38;2;83;78;253m┏\033[38;2;78;79;254m━\033[38;2;79;85;254m━\033[38;2;79;91;254m┓\033[38;2;80;97;255m \033[38;2;80;103;255m┃
|
||||||
+ \033[38;2;236;61;151m┃\033[38;2;236;61;157m \033[38;2;237;62;163m┏\033[38;2;237;62;169m━\033[38;2;238;62;175m━\033[38;2;238;63;181m━\033[38;2;239;63;187m┛\033[38;2;239;63;193m \033[38;2;239;64;200m┃\033[38;2;240;64;206m \033[38;2;240;64;212m┃\033[38;2;241;65;218m \033[38;2;241;65;224m \033[38;2;242;65;230m \033[38;2;242;66;236m \033[38;2;242;66;242m \033[38;2;237;66;243m┃\033[38;2;232;67;243m \033[38;2;227;67;244m┏\033[38;2;221;67;244m━\033[38;2;216;68;244m━\033[38;2;211;68;245m┓\033[38;2;205;69;245m \033[38;2;200;69;246m┃\033[38;2;195;69;246m \033[38;2;189;70;246m┏\033[38;2;184;70;247m┛\033[38;2;179;70;247m \033[38;2;173;71;247m┏\033[38;2;168;71;248m┛\033[38;2;163;72;248m \033[38;2;157;72;249m \033[38;2;152;72;249m┃\033[38;2;147;73;249m \033[38;2;141;73;250m┃\033[38;2;136;74;250m┗\033[38;2;131;74;250m┓\033[38;2;125;74;251m \033[38;2;120;75;251m┏\033[38;2;115;75;251m┛\033[38;2;109;76;252m┃\033[38;2;104;76;252m \033[38;2;99;77;252m┃\033[38;2;94;77;253m┃\033[38;2;88;77;253m \033[38;2;83;78;253m┏\033[38;2;78;79;254m━\033[38;2;79;85;254m━\033[38;2;79;91;254m┓\033[38;2;80;97;255m \033[38;2;80;103;255m┃
|
+ \033[38;2;236;61;151m┃\033[38;2;236;61;157m \033[38;2;237;62;163m┃\033[38;2;237;62;169m \033[38;2;238;62;175m \033[38;2;238;63;181m \033[38;2;239;63;187m \033[38;2;239;63;193m \033[38;2;239;64;200m┃\033[38;2;240;64;206m \033[38;2;240;64;212m┗\033[38;2;241;65;218m━\033[38;2;241;65;224m━\033[38;2;242;65;230m━\033[38;2;242;66;236m━\033[38;2;242;66;242m┓\033[38;2;237;66;243m┃\033[38;2;232;67;243m \033[38;2;227;67;244m┃\033[38;2;221;67;244m \033[38;2;216;68;244m \033[38;2;211;68;245m┃\033[38;2;205;69;245m \033[38;2;200;69;246m┃\033[38;2;195;69;246m┏\033[38;2;189;70;246m┛\033[38;2;184;70;247m \033[38;2;179;70;247m \033[38;2;173;71;247m┗\033[38;2;168;71;248m━\033[38;2;163;72;248m━\033[38;2;157;72;249m┓\033[38;2;152;72;249m┃\033[38;2;147;73;249m \033[38;2;141;73;250m┃\033[38;2;136;74;250m \033[38;2;131;74;250m┗\033[38;2;125;74;251m━\033[38;2;120;75;251m┛\033[38;2;115;75;251m \033[38;2;109;76;252m┃\033[38;2;104;76;252m \033[38;2;99;77;252m┃\033[38;2;94;77;253m┃\033[38;2;88;77;253m \033[38;2;83;78;253m┃\033[38;2;78;79;254m \033[38;2;79;85;254m \033[38;2;79;91;254m┃\033[38;2;80;97;255m \033[38;2;80;103;255m┃
|
||||||
+ \033[38;2;236;61;151m┃\033[38;2;236;61;157m \033[38;2;237;62;163m┃\033[38;2;237;62;169m \033[38;2;238;62;175m \033[38;2;238;63;181m \033[38;2;239;63;187m \033[38;2;239;63;193m \033[38;2;239;64;200m┃\033[38;2;240;64;206m \033[38;2;240;64;212m┗\033[38;2;241;65;218m━\033[38;2;241;65;224m━\033[38;2;242;65;230m━\033[38;2;242;66;236m━\033[38;2;242;66;242m┓\033[38;2;237;66;243m┃\033[38;2;232;67;243m \033[38;2;227;67;244m┃\033[38;2;221;67;244m \033[38;2;216;68;244m \033[38;2;211;68;245m┃\033[38;2;205;69;245m \033[38;2;200;69;246m┃\033[38;2;195;69;246m┏\033[38;2;189;70;246m┛\033[38;2;184;70;247m \033[38;2;179;70;247m \033[38;2;173;71;247m┗\033[38;2;168;71;248m━\033[38;2;163;72;248m━\033[38;2;157;72;249m┓\033[38;2;152;72;249m┃\033[38;2;147;73;249m \033[38;2;141;73;250m┃\033[38;2;136;74;250m \033[38;2;131;74;250m┗\033[38;2;125;74;251m━\033[38;2;120;75;251m┛\033[38;2;115;75;251m \033[38;2;109;76;252m┃\033[38;2;104;76;252m \033[38;2;99;77;252m┃\033[38;2;94;77;253m┃\033[38;2;88;77;253m \033[38;2;83;78;253m┃\033[38;2;78;79;254m \033[38;2;79;85;254m \033[38;2;79;91;254m┃\033[38;2;80;97;255m \033[38;2;80;103;255m┃
|
+ \033[38;2;236;61;151m┗\033[38;2;236;61;157m━\033[38;2;237;62;163m┛\033[38;2;237;62;169m \033[38;2;238;62;175m \033[38;2;238;63;181m \033[38;2;239;63;187m \033[38;2;239;63;193m \033[38;2;239;64;200m┗\033[38;2;240;64;206m━\033[38;2;240;64;212m━\033[38;2;241;65;218m━\033[38;2;241;65;224m━\033[38;2;242;65;230m━\033[38;2;242;66;236m━\033[38;2;242;66;242m┛\033[38;2;237;66;243m┗\033[38;2;232;67;243m━\033[38;2;227;67;244m┛\033[38;2;221;67;244m \033[38;2;216;68;244m \033[38;2;211;68;245m┗\033[38;2;205;69;245m━\033[38;2;200;69;246m┛\033[38;2;195;69;246m┗\033[38;2;189;70;246m━\033[38;2;184;70;247m━\033[38;2;179;70;247m━\033[38;2;173;71;247m━\033[38;2;168;71;248m━\033[38;2;163;72;248m━\033[38;2;157;72;249m┛\033[38;2;152;72;249m┗\033[38;2;147;73;249m━\033[38;2;141;73;250m┛\033[38;2;136;74;250m \033[38;2;131;74;250m \033[38;2;125;74;251m \033[38;2;120;75;251m \033[38;2;115;75;251m \033[38;2;109;76;252m┗\033[38;2;104;76;252m━\033[38;2;99;77;252m┛\033[38;2;94;77;253m┗\033[38;2;88;77;253m━\033[38;2;83;78;253m┛\033[38;2;78;79;254m \033[38;2;79;85;254m \033[38;2;79;91;254m┗\033[38;2;80;97;255m━\033[38;2;80;103;255m┛
|
||||||
+ \033[38;2;236;61;151m┗\033[38;2;236;61;157m━\033[38;2;237;62;163m┛\033[38;2;237;62;169m \033[38;2;238;62;175m \033[38;2;238;63;181m \033[38;2;239;63;187m \033[38;2;239;63;193m \033[38;2;239;64;200m┗\033[38;2;240;64;206m━\033[38;2;240;64;212m━\033[38;2;241;65;218m━\033[38;2;241;65;224m━\033[38;2;242;65;230m━\033[38;2;242;66;236m━\033[38;2;242;66;242m┛\033[38;2;237;66;243m┗\033[38;2;232;67;243m━\033[38;2;227;67;244m┛\033[38;2;221;67;244m \033[38;2;216;68;244m \033[38;2;211;68;245m┗\033[38;2;205;69;245m━\033[38;2;200;69;246m┛\033[38;2;195;69;246m┗\033[38;2;189;70;246m━\033[38;2;184;70;247m━\033[38;2;179;70;247m━\033[38;2;173;71;247m━\033[38;2;168;71;248m━\033[38;2;163;72;248m━\033[38;2;157;72;249m┛\033[38;2;152;72;249m┗\033[38;2;147;73;249m━\033[38;2;141;73;250m┛\033[38;2;136;74;250m \033[38;2;131;74;250m \033[38;2;125;74;251m \033[38;2;120;75;251m \033[38;2;115;75;251m \033[38;2;109;76;252m┗\033[38;2;104;76;252m━\033[38;2;99;77;252m┛\033[38;2;94;77;253m┗\033[38;2;88;77;253m━\033[38;2;83;78;253m┛\033[38;2;78;79;254m \033[38;2;79;85;254m \033[38;2;79;91;254m┗\033[38;2;80;97;255m━\033[38;2;80;103;255m┛
|
+ """);
|
||||||
+ """);
|
+ LOGGER.warn("Warning! Plazma may cause unexpected problems, so be sure to test it thoroughly before using it on a public server.");
|
||||||
+ LOGGER.warn("Warning! Plazma may cause unexpected problems, so DO NOT USE it on a production server!");
|
+ // Plazma end
|
||||||
+ // Plazma end
|
+
|
||||||
SharedConstants.tryDetectVersion();
|
// Paper start
|
||||||
/* CraftBukkit start - Replace everything
|
if (Boolean.getBoolean("Paper.isRunDev")) {
|
||||||
OptionParser optionparser = new OptionParser();
|
net.minecraft.server.packs.VanillaPackResourcesBuilder.developmentConfig = builder -> {
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index beb05039926e1fb7a656dfcd0c503f82db67fc46..615c456de68a20d0e95b30e124a2bdf46039408f 100644
|
index 8c3942d9ce4f8a102a47bec74af5911760fda4e3..cf9f7d52b07cffd41293ba5a6fab3a7f77a2cf03 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -930,7 +930,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -914,7 +914,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
shutdownThread = Thread.currentThread();
|
shutdownThread = Thread.currentThread();
|
||||||
org.spigotmc.WatchdogThread.doStop(); // Paper
|
org.spigotmc.WatchdogThread.doStop(); // Paper
|
||||||
if (!isSameThread()) {
|
if (!isSameThread()) {
|
||||||
@@ -188,41 +189,41 @@ index beb05039926e1fb7a656dfcd0c503f82db67fc46..615c456de68a20d0e95b30e124a2bdf4
|
|||||||
this.getRunningThread().stop();
|
this.getRunningThread().stop();
|
||||||
try {
|
try {
|
||||||
diff --git a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
|
diff --git a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
|
||||||
index c07918aa1ed2469ad7a76a0add60ab648ff7f421..d14e42612752ef1d5c37c492b62ed4a6d65c1e0e 100644
|
index be7b3fe2dc84493dcde9e185717b0b7c7c2e9822..cfdaa744ff40c8a171ca9b36b305b326fc57c32c 100644
|
||||||
--- a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
|
--- a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
|
||||||
+++ b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
|
+++ b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
|
||||||
@@ -51,7 +51,7 @@ public class MinecraftServerGui extends JComponent {
|
@@ -56,7 +56,7 @@ public class MinecraftServerGui extends JComponent {
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
- final JFrame jframe = new JFrame("Minecraft server");
|
- final JFrame jframe = new JFrame("Purpur Minecraft server"); // Purpur
|
||||||
+ final JFrame jframe = new JFrame("Plazma"); // Plazma
|
+ final JFrame jframe = new JFrame("Plazma Minecraft server"); // Purpur // Plazma
|
||||||
final MinecraftServerGui servergui = new MinecraftServerGui(server);
|
final MinecraftServerGui servergui = new MinecraftServerGui(server);
|
||||||
|
|
||||||
jframe.setDefaultCloseOperation(2);
|
jframe.setDefaultCloseOperation(2);
|
||||||
@@ -59,7 +59,7 @@ public class MinecraftServerGui extends JComponent {
|
@@ -64,7 +64,7 @@ public class MinecraftServerGui extends JComponent {
|
||||||
jframe.pack();
|
jframe.pack();
|
||||||
jframe.setLocationRelativeTo((Component) null);
|
jframe.setLocationRelativeTo((Component) null);
|
||||||
jframe.setVisible(true);
|
jframe.setVisible(true);
|
||||||
- jframe.setName("Minecraft server"); // Paper
|
- jframe.setName("Purpur Minecraft server"); // Paper // Purpur
|
||||||
+ jframe.setName("Plazma"); // Paper // Plazma
|
+ jframe.setName("Plazma Minecraft server"); // Paper // Purpur // Plazma
|
||||||
|
|
||||||
// Paper start - Add logo as frame image
|
// Paper start - Add logo as frame image
|
||||||
try {
|
try {
|
||||||
@@ -71,7 +71,7 @@ public class MinecraftServerGui extends JComponent {
|
@@ -76,7 +76,7 @@ public class MinecraftServerGui extends JComponent {
|
||||||
jframe.addWindowListener(new WindowAdapter() {
|
jframe.addWindowListener(new WindowAdapter() {
|
||||||
public void windowClosing(WindowEvent windowevent) {
|
public void windowClosing(WindowEvent windowevent) {
|
||||||
if (!servergui.isClosing.getAndSet(true)) {
|
if (!servergui.isClosing.getAndSet(true)) {
|
||||||
- jframe.setTitle("Minecraft server - shutting down!");
|
- jframe.setTitle("Purpur Minecraft server - shutting down!"); // Purpur
|
||||||
+ jframe.setTitle("Plazma - shutting down"); // Plazma
|
+ jframe.setTitle("Plazma Minecraft server - shutting down!"); // Purpur // Plazma
|
||||||
server.halt(true);
|
server.halt(true);
|
||||||
servergui.runFinalizers();
|
servergui.runFinalizers();
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
index b8001bca2a33ec1e60566948a651400418a6e9e7..92b440b24c6b083f81837611d08fbd6773a2a6e6 100644
|
index 75622ee77096d7eb311df0fd16b70c0f6dae3ccc..0325eada6271f021b4cc6e398b6e3e75b915f8aa 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
@@ -1041,7 +1041,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -1321,7 +1321,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
TickingBlockEntity tickingblockentity = (TickingBlockEntity) this.blockEntityTickers.get(tileTickPosition);
|
TickingBlockEntity tickingblockentity = (TickingBlockEntity) this.blockEntityTickers.get(tileTickPosition);
|
||||||
// Spigot start
|
// Spigot start
|
||||||
if (tickingblockentity == null) {
|
if (tickingblockentity == null) {
|
||||||
@@ -232,10 +233,10 @@ index b8001bca2a33ec1e60566948a651400418a6e9e7..92b440b24c6b083f81837611d08fbd67
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
||||||
index bd502ca721de0cab438d995efa00ad0554c0d2fe..d72f61f545c3929825e628607b85e0d25f79db1f 100644
|
index db571f658f636cdda1dcdbaffa0c4da67fae11ad..0ba8a251bf1f5a7a6f27823686bf0d636feba769 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
||||||
@@ -113,7 +113,7 @@ public class RegionFileStorage implements AutoCloseable {
|
@@ -153,7 +153,7 @@ public class RegionFileStorage implements AutoCloseable {
|
||||||
|
|
||||||
// Paper start
|
// Paper start
|
||||||
private static void printOversizedLog(String msg, Path file, int x, int z) {
|
private static void printOversizedLog(String msg, Path file, int x, int z) {
|
||||||
@@ -245,10 +246,10 @@ index bd502ca721de0cab438d995efa00ad0554c0d2fe..d72f61f545c3929825e628607b85e0d2
|
|||||||
|
|
||||||
private static final int DEFAULT_SIZE_THRESHOLD = 1024 * 8;
|
private static final int DEFAULT_SIZE_THRESHOLD = 1024 * 8;
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index b4d174e3603a45f768add973796d603f4ed8f976..57cbf7ca104aa7779bc1e705b60e71dcbfb680b8 100644
|
index a7081f2ce7e001c9a75b620c55703a0218f6dc28..005c854a10f343cd7488b282de002249bf5c4ced 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -256,7 +256,7 @@ import javax.annotation.Nullable; // Paper
|
@@ -267,7 +267,7 @@ import javax.annotation.Nullable; // Paper
|
||||||
import javax.annotation.Nonnull; // Paper
|
import javax.annotation.Nonnull; // Paper
|
||||||
|
|
||||||
public final class CraftServer implements Server {
|
public final class CraftServer implements Server {
|
||||||
@@ -258,10 +259,10 @@ index b4d174e3603a45f768add973796d603f4ed8f976..57cbf7ca104aa7779bc1e705b60e71dc
|
|||||||
private final String bukkitVersion = Versioning.getBukkitVersion();
|
private final String bukkitVersion = Versioning.getBukkitVersion();
|
||||||
private final Logger logger = Logger.getLogger("Minecraft");
|
private final Logger logger = Logger.getLogger("Minecraft");
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||||
index 7ef5980f7321662aa7034a74c2f6926846425db9..00200576bad5a92c65df762239dbec9a6e9a239b 100644
|
index 465e63a5849e224d86e82ef6c31c99846245e63b..2a384f70d14189af1690caba35b8202da519caf9 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||||
@@ -884,7 +884,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
@@ -912,7 +912,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||||
return EntityCategory.WATER;
|
return EntityCategory.WATER;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -271,13 +272,13 @@ index 7ef5980f7321662aa7034a74c2f6926846425db9..00200576bad5a92c65df762239dbec9a
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
|
||||||
index 5402098dce0d64d3dceea51f248d7d366850a74f..c49bed43a34549936b5751678f2389c2d9a6e1ec 100644
|
index a4567188e2fe3f922bb6aeb71a2845d1a1be536f..267555c309c44067ac0e011784870bad802bc292 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
|
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
|
||||||
@@ -504,7 +504,7 @@ public class CraftScheduler implements BukkitScheduler {
|
@@ -501,7 +501,7 @@ public class CraftScheduler implements BukkitScheduler {
|
||||||
this.parsePending();
|
this.parsePending();
|
||||||
} else {
|
} else {
|
||||||
//this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper
|
// this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper
|
||||||
- task.getOwner().getLogger().log(Level.SEVERE, "Unexpected Async Task in the Sync Scheduler. Report this to Purpur"); // Paper // Purpur
|
- task.getOwner().getLogger().log(Level.SEVERE, "Unexpected Async Task in the Sync Scheduler. Report this to Purpur"); // Paper // Purpur
|
||||||
+ task.getOwner().getLogger().log(Level.SEVERE, "Unexpected Async Task in the Sync Scheduler. Report this to Plazma"); // Paper // Purpur // Plazma
|
+ task.getOwner().getLogger().log(Level.SEVERE, "Unexpected Async Task in the Sync Scheduler. Report this to Plazma"); // Paper // Purpur // Plazma
|
||||||
// We don't need to parse pending
|
// We don't need to parse pending
|
||||||
@@ -321,10 +322,10 @@ index 99597258e8e88cd9e2c901c4ac3ff7faeeabee2b..0e695ea608c4e4770f5491d54ad47616
|
|||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||||
index 0bcbe1f07ff8e552d2abd6e432af5710005acc04..ac238eeea791180b66677870401c0b756f0db07b 100644
|
index 3633574e112f217b412217dd243a631dc4e9c40c..d0d31002562e728fa1a6c9bc81baa4534f11d365 100644
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||||
@@ -227,7 +227,7 @@ public class PurpurConfig {
|
@@ -231,7 +231,7 @@ public class PurpurConfig {
|
||||||
deathMessageOnlyBroadcastToAffectedPlayer = getBoolean("settings.broadcasts.death.only-broadcast-to-affected-player", deathMessageOnlyBroadcastToAffectedPlayer);
|
deathMessageOnlyBroadcastToAffectedPlayer = getBoolean("settings.broadcasts.death.only-broadcast-to-affected-player", deathMessageOnlyBroadcastToAffectedPlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -334,18 +335,9 @@ index 0bcbe1f07ff8e552d2abd6e432af5710005acc04..ac238eeea791180b66677870401c0b75
|
|||||||
serverModName = getString("settings.server-mod-name", serverModName);
|
serverModName = getString("settings.server-mod-name", serverModName);
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
|
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
|
||||||
index a810bfd3b8d6bd4d8f2ef8797e4281ae4fe8a67f..a7017a0f8326e307397d357774d39216e525bdd8 100644
|
index dbd502761ff6e6efb252bb41376a7ff028c73895..c765cb5dd8c3c1b668b7031e6c784ed9cf2d58e1 100644
|
||||||
--- a/src/main/java/org/spigotmc/WatchdogThread.java
|
--- a/src/main/java/org/spigotmc/WatchdogThread.java
|
||||||
+++ b/src/main/java/org/spigotmc/WatchdogThread.java
|
+++ b/src/main/java/org/spigotmc/WatchdogThread.java
|
||||||
@@ -96,7 +96,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
|
|
||||||
|
|
||||||
private WatchdogThread(long timeoutTime, boolean restart)
|
|
||||||
{
|
|
||||||
- super( "Watchdog Thread" ); // Purpur - use a generic name
|
|
||||||
+ super( "Plazma Watchdog Thread" ); // Purpur - use a generic name // Plazma
|
|
||||||
this.timeoutTime = timeoutTime;
|
|
||||||
this.restart = restart;
|
|
||||||
earlyWarningEvery = Math.min(io.papermc.paper.configuration.GlobalConfiguration.get().watchdog.earlyWarningEvery, timeoutTime); // Paper
|
|
||||||
@@ -155,14 +155,14 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
|
@@ -155,14 +155,14 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
|
||||||
if (isLongTimeout) {
|
if (isLongTimeout) {
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -360,7 +352,7 @@ index a810bfd3b8d6bd4d8f2ef8797e4281ae4fe8a67f..a7017a0f8326e307397d357774d39216
|
|||||||
+ log.log( Level.SEVERE, "If you are unsure or still think this is a Plazma bug, please report this to https://github.com/PlazmaMC/Plazma/issues" ); // Purpur // Plazma
|
+ log.log( Level.SEVERE, "If you are unsure or still think this is a Plazma bug, please report this to https://github.com/PlazmaMC/Plazma/issues" ); // Purpur // Plazma
|
||||||
log.log( Level.SEVERE, "Be sure to include ALL relevant console errors and Minecraft crash reports" );
|
log.log( Level.SEVERE, "Be sure to include ALL relevant console errors and Minecraft crash reports" );
|
||||||
- log.log( Level.SEVERE, "Purpur version: " + Bukkit.getServer().getVersion() ); // Purpur
|
- log.log( Level.SEVERE, "Purpur version: " + Bukkit.getServer().getVersion() ); // Purpur
|
||||||
+ log.log( Level.SEVERE, "Plazma version: " + Bukkit.getServer().getVersion() ); // Purpur
|
+ log.log( Level.SEVERE, "Plazma version: " + Bukkit.getServer().getVersion() ); // Purpur // Plazma
|
||||||
//
|
//
|
||||||
if ( net.minecraft.world.level.Level.lastPhysicsProblem != null )
|
if ( net.minecraft.world.level.Level.lastPhysicsProblem != null )
|
||||||
{
|
{
|
||||||
333
patches/server/0005-Rebrand-Logo.patch
Normal file
333
patches/server/0005-Rebrand-Logo.patch
Normal file
@@ -0,0 +1,333 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <alphakr93@gmail.com>
|
||||||
|
Date: Fri, 10 Mar 2023 22:08:56 +0900
|
||||||
|
Subject: [PATCH] Rebrand Logo
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/resources/logo.png b/src/main/resources/logo.png
|
||||||
|
index 518591dd83289e041a16e2c2e7d7e7640d4b2e1b..278de5d47a7802ab89d9ae39c1560ef87d6d6fc4 100644
|
||||||
|
GIT binary patch
|
||||||
|
literal 7999
|
||||||
|
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
|
||||||
|
E0k}Z_!T<mO
|
||||||
|
|
||||||
|
literal 9260
|
||||||
|
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
|
||||||
|
HqBZh=dic2S
|
||||||
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
|
||||||
Date: Fri, 24 Mar 2023 23:54:51 +0900
|
|
||||||
Subject: [PATCH] Add more metrics
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java
|
|
||||||
index 7d80d2cf5d607d6051e99e4b08bc1b76098a79da..067bcbcb81802a3a52ecff737ddf2c033696ecfb 100644
|
|
||||||
--- a/src/main/java/com/destroystokyo/paper/Metrics.java
|
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/Metrics.java
|
|
||||||
@@ -636,12 +636,63 @@ public class Metrics {
|
|
||||||
return map;
|
|
||||||
}));
|
|
||||||
|
|
||||||
+ // Plazma start
|
|
||||||
+ metrics.addCustomChart(new Metrics.DrilldownPie("datapacks", () -> {
|
|
||||||
+ Map<String, Map<String, Integer>> map = new HashMap<>();
|
|
||||||
+ int datapacks = Bukkit.getServer().getDatapackManager().getEnabledPacks().size();
|
|
||||||
+ Map<String, Integer> entry = new HashMap<>();
|
|
||||||
+ entry.put(String.valueOf(datapacks), 1);
|
|
||||||
+
|
|
||||||
+ if (datapacks == 0)
|
|
||||||
+ map.put("0", entry);
|
|
||||||
+ else if (datapacks <= 5)
|
|
||||||
+ map.put("1-5", entry);
|
|
||||||
+ else if (datapacks <= 10)
|
|
||||||
+ map.put("6-10", entry);
|
|
||||||
+ else if (datapacks <= 25)
|
|
||||||
+ map.put("11-25", entry);
|
|
||||||
+ else
|
|
||||||
+ map.put("26+", entry);
|
|
||||||
+
|
|
||||||
+ return map;
|
|
||||||
+ }));
|
|
||||||
+
|
|
||||||
+ List<Plugin> plugins = new ArrayList<>();
|
|
||||||
+ for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
|
|
||||||
+ if (plugin.isEnabled()) {
|
|
||||||
+ plugins.add(plugin);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ metrics.addCustomChart(new Metrics.DrilldownPie("plugins", () -> {
|
|
||||||
+ Map<String, Map<String, Integer>> map = new HashMap<>();
|
|
||||||
+ int plugins1 = plugins.size();
|
|
||||||
+ Map<String, Integer> entry = new HashMap<>();
|
|
||||||
+ entry.put(String.valueOf(plugins1), 1);
|
|
||||||
+
|
|
||||||
+ if (plugins1 == 0)
|
|
||||||
+ map.put("0", entry);
|
|
||||||
+ else if (plugins1 <= 5)
|
|
||||||
+ map.put("1-5", entry);
|
|
||||||
+ else if (plugins1 <= 10)
|
|
||||||
+ map.put("6-10", entry);
|
|
||||||
+ else if (plugins1 <= 25)
|
|
||||||
+ map.put("11-25", entry);
|
|
||||||
+ else if (plugins1 <= 50)
|
|
||||||
+ map.put("26-50", entry);
|
|
||||||
+ else
|
|
||||||
+ map.put("51+", entry);
|
|
||||||
+
|
|
||||||
+ return map;
|
|
||||||
+ }));
|
|
||||||
+ // Plazma end
|
|
||||||
+
|
|
||||||
metrics.addCustomChart(new Metrics.DrilldownPie("legacy_plugins", () -> {
|
|
||||||
Map<String, Map<String, Integer>> map = new HashMap<>();
|
|
||||||
|
|
||||||
// count legacy plugins
|
|
||||||
int legacy = 0;
|
|
||||||
- for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
|
|
||||||
+ for (Plugin plugin : plugins) { // Plazma
|
|
||||||
if (CraftMagicNumbers.isLegacy(plugin.getDescription())) {
|
|
||||||
legacy++;
|
|
||||||
}
|
|
||||||
@@ -104,17 +104,10 @@ index a0aa1f1a7adf986d500a2135aa42e138aa3c4f08..28a1d21900dbff4b9d1887b9aa4e68f4
|
|||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java b/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java
|
diff --git a/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java b/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java
|
||||||
index f6b9d216c24d8858802f85209fe1a869e5a9be31..746fdd880862e7dd8b53dec99b07ae627764dcf8 100644
|
index 9b5c2abaa28fa60cedd9f0111e5eb018f93a0561..c09baea03786075d1a6e3f53d7f9820e23cc57cf 100644
|
||||||
--- a/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java
|
--- a/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java
|
||||||
+++ b/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java
|
+++ b/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java
|
||||||
@@ -127,13 +127,13 @@ public class PaperConfigurations extends Configurations<GlobalConfiguration, Wor
|
@@ -136,7 +136,7 @@ public class PaperConfigurations extends Configurations<GlobalConfiguration, Wor
|
||||||
See https://docs.papermc.io/paper/configuration for more information.
|
|
||||||
""";
|
|
||||||
|
|
||||||
- private static final Supplier<SpigotWorldConfig> SPIGOT_WORLD_DEFAULTS = Suppliers.memoize(() -> new SpigotWorldConfig(RandomStringUtils.randomAlphabetic(255)) {
|
|
||||||
+ public static final Supplier<SpigotWorldConfig> SPIGOT_WORLD_DEFAULTS = Suppliers.memoize(() -> new SpigotWorldConfig(RandomStringUtils.randomAlphabetic(255)) { // Plazma - private -> public
|
|
||||||
@Override // override to ensure "verbose" is false
|
|
||||||
public void init() {
|
|
||||||
SpigotConfig.readConfig(SpigotWorldConfig.class, this);
|
SpigotConfig.readConfig(SpigotWorldConfig.class, this);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -123,7 +116,7 @@ index f6b9d216c24d8858802f85209fe1a869e5a9be31..746fdd880862e7dd8b53dec99b07ae62
|
|||||||
|
|
||||||
|
|
||||||
public PaperConfigurations(final Path globalFolder) {
|
public PaperConfigurations(final Path globalFolder) {
|
||||||
@@ -297,7 +297,7 @@ public class PaperConfigurations extends Configurations<GlobalConfiguration, Wor
|
@@ -308,7 +308,7 @@ public class PaperConfigurations extends Configurations<GlobalConfiguration, Wor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -132,7 +125,7 @@ index f6b9d216c24d8858802f85209fe1a869e5a9be31..746fdd880862e7dd8b53dec99b07ae62
|
|||||||
return createWorldContextMap(level.convertable.levelDirectory.path(), level.serverLevelData.getLevelName(), level.dimension().location(), level.spigotConfig);
|
return createWorldContextMap(level.convertable.levelDirectory.path(), level.serverLevelData.getLevelName(), level.dimension().location(), level.spigotConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -398,17 +398,6 @@ public class PaperConfigurations extends Configurations<GlobalConfiguration, Wor
|
@@ -409,17 +409,6 @@ public class PaperConfigurations extends Configurations<GlobalConfiguration, Wor
|
||||||
return Files.exists(legacyConfig) && Files.isRegularFile(legacyConfig);
|
return Files.exists(legacyConfig) && Files.isRegularFile(legacyConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,7 +143,7 @@ index f6b9d216c24d8858802f85209fe1a869e5a9be31..746fdd880862e7dd8b53dec99b07ae62
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public static YamlConfiguration loadLegacyConfigFile(File configFile) throws Exception {
|
public static YamlConfiguration loadLegacyConfigFile(File configFile) throws Exception {
|
||||||
YamlConfiguration config = new YamlConfiguration();
|
YamlConfiguration config = new YamlConfiguration();
|
||||||
@@ -431,9 +420,16 @@ public class PaperConfigurations extends Configurations<GlobalConfiguration, Wor
|
@@ -442,9 +431,15 @@ public class PaperConfigurations extends Configurations<GlobalConfiguration, Wor
|
||||||
}
|
}
|
||||||
|
|
||||||
// Symlinks are not correctly checked in createDirectories
|
// Symlinks are not correctly checked in createDirectories
|
||||||
@@ -162,17 +155,16 @@ index f6b9d216c24d8858802f85209fe1a869e5a9be31..746fdd880862e7dd8b53dec99b07ae62
|
|||||||
}
|
}
|
||||||
+
|
+
|
||||||
+ // Plazma start
|
+ // Plazma start
|
||||||
+ @Override
|
|
||||||
+ protected int getWorldConfigurationCurrentVersion() {
|
+ protected int getWorldConfigurationCurrentVersion() {
|
||||||
+ return WorldConfiguration.CURRENT_VERSION;
|
+ return WorldConfiguration.CURRENT_VERSION;
|
||||||
+ }
|
+ }
|
||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index 62ccafc3df9e2d25dbe7e2ad9322f306f8df8061..abf904a1d0dc7a5943cdba540c2b76eb0577954d 100644
|
index cf9f7d52b07cffd41293ba5a6fab3a7f77a2cf03..11de2f237e6dd950b8ddba3d5cfe9066d09f0903 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -309,6 +309,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -301,6 +301,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
public final double[] recentTps = new double[ 4 ]; // Purpur
|
public final double[] recentTps = new double[ 4 ]; // Purpur
|
||||||
// Spigot end
|
// Spigot end
|
||||||
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations;
|
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations;
|
||||||
@@ -180,36 +172,35 @@ index 62ccafc3df9e2d25dbe7e2ad9322f306f8df8061..abf904a1d0dc7a5943cdba540c2b76eb
|
|||||||
public static long currentTickLong = 0L; // Paper
|
public static long currentTickLong = 0L; // Paper
|
||||||
public boolean lagging = false; // Purpur
|
public boolean lagging = false; // Purpur
|
||||||
protected boolean upnp = false; // Purpur
|
protected boolean upnp = false; // Purpur
|
||||||
@@ -415,6 +416,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -411,6 +412,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
// Paper end
|
|
||||||
Runtime.getRuntime().addShutdownHook(new org.bukkit.craftbukkit.util.ServerShutdownThread(this));
|
Runtime.getRuntime().addShutdownHook(new org.bukkit.craftbukkit.util.ServerShutdownThread(this));
|
||||||
|
// CraftBukkit end
|
||||||
this.paperConfigurations = services.paperConfigurations(); // Paper
|
this.paperConfigurations = services.paperConfigurations(); // Paper
|
||||||
+ this.plazmaConfigurations = services.plazmaConfigurations(); // Plazma
|
+ this.plazmaConfigurations = services.plazmaConfigurations(); // Plazma
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
|
||||||
|
|
||||||
|
private void readScoreboard(DimensionDataStorage persistentStateManager) {
|
||||||
diff --git a/src/main/java/net/minecraft/server/Services.java b/src/main/java/net/minecraft/server/Services.java
|
diff --git a/src/main/java/net/minecraft/server/Services.java b/src/main/java/net/minecraft/server/Services.java
|
||||||
index ef6ff78af2ae747e939895b82ee9d11c75012dcd..6e3a1ea75005ba53a72889285597603f2d244919 100644
|
index a9b2c8cd4dcd3f884e4306bebee9334d3848fce5..203c34342f19c6afb3020364baf0cc48554fa912 100644
|
||||||
--- a/src/main/java/net/minecraft/server/Services.java
|
--- a/src/main/java/net/minecraft/server/Services.java
|
||||||
+++ b/src/main/java/net/minecraft/server/Services.java
|
+++ b/src/main/java/net/minecraft/server/Services.java
|
||||||
@@ -8,10 +8,10 @@ import net.minecraft.server.players.GameProfileCache;
|
@@ -11,10 +11,10 @@ import net.minecraft.server.players.GameProfileCache;
|
||||||
import net.minecraft.util.SignatureValidator;
|
import net.minecraft.util.SignatureValidator;
|
||||||
|
|
||||||
// Paper start
|
// Paper start
|
||||||
-public record Services(MinecraftSessionService sessionService, SignatureValidator serviceSignatureValidator, GameProfileRepository profileRepository, GameProfileCache profileCache, @javax.annotation.Nullable io.papermc.paper.configuration.PaperConfigurations paperConfigurations) {
|
-public record Services(MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache, @javax.annotation.Nullable io.papermc.paper.configuration.PaperConfigurations paperConfigurations) {
|
||||||
+public record Services(MinecraftSessionService sessionService, SignatureValidator serviceSignatureValidator, GameProfileRepository profileRepository, GameProfileCache profileCache, @javax.annotation.Nullable io.papermc.paper.configuration.PaperConfigurations paperConfigurations, @javax.annotation.Nullable org.plazmamc.plazma.configurations.PlazmaConfigurations plazmaConfigurations) { // Plazma
|
+public record Services(MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache, @javax.annotation.Nullable io.papermc.paper.configuration.PaperConfigurations paperConfigurations, @javax.annotation.Nullable org.plazmamc.plazma.configurations.PlazmaConfigurations plazmaConfigurations) { // Plazma
|
||||||
|
|
||||||
public Services(MinecraftSessionService sessionService, SignatureValidator signatureValidator, GameProfileRepository profileRepository, GameProfileCache profileCache) {
|
public Services(MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache) {
|
||||||
- this(sessionService, signatureValidator, profileRepository, profileCache, null);
|
- this(sessionService, servicesKeySet, profileRepository, profileCache, null);
|
||||||
+ this(sessionService, signatureValidator, profileRepository, profileCache, null, null); // Plazma
|
+ this(sessionService, servicesKeySet, profileRepository, profileCache, null, null); // Plazma
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -19,6 +19,14 @@ public record Services(MinecraftSessionService sessionService, SignatureValidato
|
@@ -24,6 +24,13 @@ public record Services(MinecraftSessionService sessionService, ServicesKeySet se
|
||||||
return java.util.Objects.requireNonNull(this.paperConfigurations);
|
|
||||||
}
|
|
||||||
// Paper end
|
// Paper end
|
||||||
+
|
public static final String USERID_CACHE_FILE = "usercache.json"; // Paper - private -> public
|
||||||
|
|
||||||
+ // Plazma start
|
+ // Plazma start
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public org.plazmamc.plazma.configurations.PlazmaConfigurations plazmaConfigurations() {
|
+ public org.plazmamc.plazma.configurations.PlazmaConfigurations plazmaConfigurations() {
|
||||||
@@ -217,50 +208,48 @@ index ef6ff78af2ae747e939895b82ee9d11c75012dcd..6e3a1ea75005ba53a72889285597603f
|
|||||||
+ }
|
+ }
|
||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
+
|
+
|
||||||
public static final String USERID_CACHE_FILE = "usercache.json"; // Paper - private -> public
|
|
||||||
|
|
||||||
public static Services create(YggdrasilAuthenticationService authenticationService, File rootDirectory, File userCacheFile, joptsimple.OptionSet optionSet) throws Exception { // Paper
|
public static Services create(YggdrasilAuthenticationService authenticationService, File rootDirectory, File userCacheFile, joptsimple.OptionSet optionSet) throws Exception { // Paper
|
||||||
@@ -30,7 +38,11 @@ public record Services(MinecraftSessionService sessionService, SignatureValidato
|
MinecraftSessionService minecraftSessionService = authenticationService.createMinecraftSessionService();
|
||||||
|
GameProfileRepository gameProfileRepository = authenticationService.createProfileRepository();
|
||||||
|
@@ -32,7 +39,11 @@ public record Services(MinecraftSessionService sessionService, ServicesKeySet se
|
||||||
final java.nio.file.Path legacyConfigPath = ((File) optionSet.valueOf("paper-settings")).toPath();
|
final java.nio.file.Path legacyConfigPath = ((File) optionSet.valueOf("paper-settings")).toPath();
|
||||||
final java.nio.file.Path configDirPath = ((File) optionSet.valueOf("paper-settings-directory")).toPath();
|
final java.nio.file.Path configDirPath = ((File) optionSet.valueOf("paper-settings-directory")).toPath();
|
||||||
io.papermc.paper.configuration.PaperConfigurations paperConfigurations = io.papermc.paper.configuration.PaperConfigurations.setup(legacyConfigPath, configDirPath, rootDirectory.toPath(), (File) optionSet.valueOf("spigot-settings"));
|
io.papermc.paper.configuration.PaperConfigurations paperConfigurations = io.papermc.paper.configuration.PaperConfigurations.setup(legacyConfigPath, configDirPath, rootDirectory.toPath(), (File) optionSet.valueOf("spigot-settings"));
|
||||||
- return new Services(minecraftSessionService, signatureValidator, gameProfileRepository, gameProfileCache, paperConfigurations);
|
- return new Services(minecraftSessionService, authenticationService.getServicesKeySet(), gameProfileRepository, gameProfileCache, paperConfigurations);
|
||||||
+ // Plazma start
|
+ // Plazma start
|
||||||
+ final java.nio.file.Path plazmaConfigurationDirPath = ((File) optionSet.valueOf("plazma-configurations-directory")).toPath();
|
+ final java.nio.file.Path plazmaConfigurationDirPath = ((File) optionSet.valueOf("plazma-configurations-directory")).toPath();
|
||||||
+ org.plazmamc.plazma.configurations.PlazmaConfigurations plazmaConfigurations = org.plazmamc.plazma.configurations.PlazmaConfigurations.setup(plazmaConfigurationDirPath);
|
+ org.plazmamc.plazma.configurations.PlazmaConfigurations plazmaConfigurations = org.plazmamc.plazma.configurations.PlazmaConfigurations.setup(plazmaConfigurationDirPath);
|
||||||
+ return new Services(minecraftSessionService, signatureValidator, gameProfileRepository, gameProfileCache, paperConfigurations, plazmaConfigurations);
|
+ return new Services(minecraftSessionService, authenticationService.getServicesKeySet(), gameProfileRepository, gameProfileCache, paperConfigurations, plazmaConfigurations);
|
||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
// Paper end
|
// Paper end
|
||||||
}
|
}
|
||||||
}
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
index 582467e3419c23446b20d3076fbfce22115250a8..429ccd583ecd136a63862e94b8eb36b371e28d0f 100644
|
index a9f74eeb5b6300a0b7a940da9c17bd7582b0925d..a970e00482952318c258fc406cb7c39a229b65bc 100644
|
||||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
@@ -208,6 +208,10 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -209,6 +209,8 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
io.papermc.paper.util.ObfHelper.INSTANCE.getClass(); // Paper - load mappings for stacktrace deobf and etc.
|
io.papermc.paper.util.ObfHelper.INSTANCE.getClass(); // Paper - load mappings for stacktrace deobf and etc.
|
||||||
paperConfigurations.initializeGlobalConfiguration();
|
paperConfigurations.initializeGlobalConfiguration();
|
||||||
paperConfigurations.initializeWorldDefaultsConfiguration();
|
paperConfigurations.initializeWorldDefaultsConfiguration();
|
||||||
+ // Plazma start
|
+ plazmaConfigurations.initializeGlobalConfiguration(); // Plazma
|
||||||
+ plazmaConfigurations.initializeGlobalConfiguration();
|
+ plazmaConfigurations.initializeWorldDefaultsConfiguration(); // Plazma
|
||||||
+ plazmaConfigurations.initializeWorldDefaultsConfiguration();
|
|
||||||
+ // Plazma end
|
|
||||||
// Paper start - moved up to right after PlayerList creation but before file load/save
|
// Paper start - moved up to right after PlayerList creation but before file load/save
|
||||||
if (this.convertOldUsers()) {
|
if (this.convertOldUsers()) {
|
||||||
this.getProfileCache().save(false); // Paper
|
this.getProfileCache().save(false); // Paper
|
||||||
@@ -217,6 +221,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -218,6 +220,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash);
|
org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash);
|
||||||
thread.start(); // Paper - start console thread after MinecraftServer.console & PaperConfig are initialized
|
thread.start(); // Paper - start console thread after MinecraftServer.console & PaperConfig are initialized
|
||||||
io.papermc.paper.command.PaperCommands.registerCommands(this);
|
io.papermc.paper.command.PaperCommands.registerCommands(this);
|
||||||
+ org.plazmamc.plazma.commands.PlazmaCommands.registerCommands(this);
|
+ org.plazmamc.plazma.commands.PlazmaCommands.registerCommands(this); // Plazma
|
||||||
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics();
|
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics();
|
||||||
// Purpur start
|
// Purpur start
|
||||||
try {
|
try {
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
index 43bf3285729ec5cedb3de84f2b60673928b079db..341f3f060bfe196afe805a7cf11d21a556e18ad0 100644
|
index 670d7649d25f7704b071d27157173a3139481207..e7efdd572716e50ecca217898b8a368e5829f925 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -530,7 +530,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
@@ -694,7 +694,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||||
// Holder holder = worlddimension.type(); // CraftBukkit - decompile error
|
// Holder holder = worlddimension.type(); // CraftBukkit - decompile error
|
||||||
|
|
||||||
// Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error
|
// Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error
|
||||||
@@ -270,10 +259,10 @@ index 43bf3285729ec5cedb3de84f2b60673928b079db..341f3f060bfe196afe805a7cf11d21a5
|
|||||||
this.convertable = convertable_conversionsession;
|
this.convertable = convertable_conversionsession;
|
||||||
this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile());
|
this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile());
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
index 92b440b24c6b083f81837611d08fbd6773a2a6e6..058449f24eb3260dc230dad2a0b4c552d0b7f40e 100644
|
index 0325eada6271f021b4cc6e398b6e3e75b915f8aa..e45a5282dc0ea3a35da24c7c3a0c7cda9a773f0c 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
@@ -175,7 +175,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -174,7 +174,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
return this.paperConfig;
|
return this.paperConfig;
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -287,12 +276,12 @@ index 92b440b24c6b083f81837611d08fbd6773a2a6e6..058449f24eb3260dc230dad2a0b4c552
|
|||||||
public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
|
public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
|
||||||
public final org.purpurmc.purpur.PurpurWorldConfig purpurConfig; // Purpur
|
public final org.purpurmc.purpur.PurpurWorldConfig purpurConfig; // Purpur
|
||||||
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
|
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
|
||||||
@@ -329,9 +334,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -254,9 +259,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
@Override public final int getHeight() { return this.height; }
|
|
||||||
// Pufferfish end
|
public abstract ResourceKey<LevelStem> getTypeKey();
|
||||||
|
|
||||||
- protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor
|
- protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor
|
||||||
+ protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.function.Function<org.spigotmc.SpigotWorldConfig, org.plazmamc.plazma.configurations.LevelConfigurations> plazmaLevelConfigurationCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor
|
+ protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.function.Function<org.spigotmc.SpigotWorldConfig, org.plazmamc.plazma.configurations.LevelConfigurations> plazmaLevelConfigurationCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor // Plazma
|
||||||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
|
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
|
||||||
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper
|
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper
|
||||||
+ this.plazmaLevelConfiguration = plazmaLevelConfigurationCreator.apply(this.spigotConfig); // Plazma
|
+ this.plazmaLevelConfiguration = plazmaLevelConfigurationCreator.apply(this.spigotConfig); // Plazma
|
||||||
@@ -300,10 +289,10 @@ index 92b440b24c6b083f81837611d08fbd6773a2a6e6..058449f24eb3260dc230dad2a0b4c552
|
|||||||
this.playerBreedingCooldowns = this.getNewBreedingCooldownCache(); // Purpur
|
this.playerBreedingCooldowns = this.getNewBreedingCooldownCache(); // Purpur
|
||||||
this.generator = gen;
|
this.generator = gen;
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index e59532dda47d0f9635b5393cb4ef0484fd6bb9ae..7b7c9c8aa1bb949b6076161f5b175941e407b9b6 100644
|
index 005c854a10f343cd7488b282de002249bf5c4ced..3e8f42811e9254567f2522e68b6018704bd63ae2 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -970,6 +970,7 @@ public final class CraftServer implements Server {
|
@@ -1053,6 +1053,7 @@ public final class CraftServer implements Server {
|
||||||
|
|
||||||
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
|
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
|
||||||
this.console.paperConfigurations.reloadConfigs(this.console);
|
this.console.paperConfigurations.reloadConfigs(this.console);
|
||||||
@@ -311,7 +300,7 @@ index e59532dda47d0f9635b5393cb4ef0484fd6bb9ae..7b7c9c8aa1bb949b6076161f5b175941
|
|||||||
org.purpurmc.purpur.PurpurConfig.init((File) console.options.valueOf("purpur-settings")); // Purpur
|
org.purpurmc.purpur.PurpurConfig.init((File) console.options.valueOf("purpur-settings")); // Purpur
|
||||||
for (ServerLevel world : this.console.getAllLevels()) {
|
for (ServerLevel world : this.console.getAllLevels()) {
|
||||||
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
|
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
|
||||||
@@ -2816,6 +2817,13 @@ public final class CraftServer implements Server {
|
@@ -2986,6 +2987,13 @@ public final class CraftServer implements Server {
|
||||||
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
|
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -326,7 +315,7 @@ index e59532dda47d0f9635b5393cb4ef0484fd6bb9ae..7b7c9c8aa1bb949b6076161f5b175941
|
|||||||
@Override
|
@Override
|
||||||
public YamlConfiguration getPurpurConfig() {
|
public YamlConfiguration getPurpurConfig() {
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
index ab05f4151e6ec7404a85ddb3a141ed39d9ed86d7..7c6480cee6585ea39af517c4b5639603a54e4c8f 100644
|
index 01f581e6c3dfacb0ec6aff05c08539bbd2e580c7..f1b754fbf72cbf3c10a74192c66a9432d8218d4b 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
@@ -173,6 +173,14 @@ public class Main {
|
@@ -173,6 +173,14 @@ public class Main {
|
||||||
@@ -589,39 +578,59 @@ index 0000000000000000000000000000000000000000..85002144e0b350c4ae044e1a4a4c1734
|
|||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..6714947455c1e4c887a5f13ba1a3aeb57324ee0a
|
index 0000000000000000000000000000000000000000..d506e0c2b37f91e46e682652bd134ad91db28f84
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
@@ -0,0 +1,23 @@
|
@@ -0,0 +1,43 @@
|
||||||
+package org.plazmamc.plazma.configurations;
|
+package org.plazmamc.plazma.configurations;
|
||||||
+
|
+
|
||||||
+import io.papermc.paper.configuration.Configuration;
|
+import io.papermc.paper.configuration.Configuration;
|
||||||
+import io.papermc.paper.configuration.ConfigurationPart;
|
+import io.papermc.paper.configuration.ConfigurationPart;
|
||||||
|
+import org.jetbrains.annotations.NotNull;
|
||||||
+import org.spongepowered.configurate.objectmapping.meta.Setting;
|
+import org.spongepowered.configurate.objectmapping.meta.Setting;
|
||||||
+
|
+
|
||||||
+@SuppressWarnings({"CanBeFinal", "FieldCanBeLocal", "FieldMayBeFinal", "NotNullFieldNotInitialized", "InnerClassMayBeStatic"})
|
+@SuppressWarnings({"CanBeFinal", "FieldCanBeLocal", "FieldMayBeFinal", "InnerClassMayBeStatic"})
|
||||||
+public class GlobalConfiguration extends ConfigurationPart {
|
+public class GlobalConfiguration extends ConfigurationPart {
|
||||||
+ static final int CURRENT_VERSION = 1;
|
+ static final int CURRENT_VERSION = 1;
|
||||||
+ static final boolean DO_OPTIMIZE = !Boolean.getBoolean("Plazma.disableConfigOptimization");
|
+ static final boolean DO_OPTIMIZE = PlazmaConfigurations.doOptimize();
|
||||||
+ private static GlobalConfiguration instance;
|
+ private static GlobalConfiguration instance;
|
||||||
+
|
+
|
||||||
+ public static GlobalConfiguration get() {
|
+ public static GlobalConfiguration get() {
|
||||||
+ return instance;
|
+ return instance;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ static void set(GlobalConfiguration instance) {
|
+ static void set(@NotNull GlobalConfiguration instance, boolean test) {
|
||||||
+ GlobalConfiguration.instance = instance;
|
+ GlobalConfiguration.instance = instance;
|
||||||
|
+ if (test) {
|
||||||
|
+
|
||||||
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Setting(Configuration.VERSION_FIELD)
|
+ @Setting(Configuration.VERSION_FIELD)
|
||||||
+ public int version = CURRENT_VERSION;
|
+ public int version = CURRENT_VERSION;
|
||||||
|
+
|
||||||
|
+ public Misc misc;
|
||||||
|
+ public class Misc extends ConfigurationPart.Post {
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public void postProcess() {
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public Player player;
|
||||||
|
+ public class Player extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..857ddc62dd9affbbebcd7cde8a6d675dbb5f68ae
|
index 0000000000000000000000000000000000000000..d990c031255daf0d43541efe175c5b52736a6990
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
@@ -0,0 +1,25 @@
|
@@ -0,0 +1,45 @@
|
||||||
+package org.plazmamc.plazma.configurations;
|
+package org.plazmamc.plazma.configurations;
|
||||||
+
|
+
|
||||||
+import io.papermc.paper.configuration.Configuration;
|
+import io.papermc.paper.configuration.Configuration;
|
||||||
@@ -630,10 +639,10 @@ index 0000000000000000000000000000000000000000..857ddc62dd9affbbebcd7cde8a6d675d
|
|||||||
+import net.minecraft.resources.ResourceLocation;
|
+import net.minecraft.resources.ResourceLocation;
|
||||||
+import org.spongepowered.configurate.objectmapping.meta.Setting;
|
+import org.spongepowered.configurate.objectmapping.meta.Setting;
|
||||||
+
|
+
|
||||||
+@SuppressWarnings({"FieldCanBeLocal", "FieldMayBeFinal", "NotNullFieldNotInitialized", "InnerClassMayBeStatic"})
|
+@SuppressWarnings({"FieldCanBeLocal", "FieldMayBeFinal", "InnerClassMayBeStatic"})
|
||||||
+public class LevelConfigurations extends ConfigurationPart {
|
+public class LevelConfigurations extends ConfigurationPart {
|
||||||
+ public static final int CURRENT_VERSION = 1;
|
+ public static final int CURRENT_VERSION = 1;
|
||||||
+ private static final boolean DO_OPTIMIZE = !Boolean.getBoolean("Plazma.disableConfigOptimization");
|
+ private static final boolean DO_OPTIMIZE = PlazmaConfigurations.doOptimize();
|
||||||
+
|
+
|
||||||
+ private transient final ResourceLocation worldKey;
|
+ private transient final ResourceLocation worldKey;
|
||||||
+ public LevelConfigurations(ResourceLocation worldKey) {
|
+ public LevelConfigurations(ResourceLocation worldKey) {
|
||||||
@@ -646,13 +655,33 @@ index 0000000000000000000000000000000000000000..857ddc62dd9affbbebcd7cde8a6d675d
|
|||||||
+
|
+
|
||||||
+ @Setting(Configuration.VERSION_FIELD)
|
+ @Setting(Configuration.VERSION_FIELD)
|
||||||
+ public int version = CURRENT_VERSION;
|
+ public int version = CURRENT_VERSION;
|
||||||
|
+
|
||||||
|
+ public Misc misc;
|
||||||
|
+ public class Misc extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public Entity entity;
|
||||||
|
+ public class Entity extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public Structure structure;
|
||||||
|
+ public class Structure extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ public NetherPortal netherPortal;
|
||||||
|
+ public class NetherPortal extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/PlazmaConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/PlazmaConfigurations.java
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/PlazmaConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/PlazmaConfigurations.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..b1104778995a3734f3b6df71d59172e546e152a2
|
index 0000000000000000000000000000000000000000..295578fddc8f897763d0af9836cdd93b0d3cef31
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/PlazmaConfigurations.java
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/PlazmaConfigurations.java
|
||||||
@@ -0,0 +1,304 @@
|
@@ -0,0 +1,309 @@
|
||||||
+package org.plazmamc.plazma.configurations;
|
+package org.plazmamc.plazma.configurations;
|
||||||
+
|
+
|
||||||
+import com.google.common.collect.Table;
|
+import com.google.common.collect.Table;
|
||||||
@@ -682,6 +711,8 @@ index 0000000000000000000000000000000000000000..b1104778995a3734f3b6df71d59172e5
|
|||||||
+import net.minecraft.world.entity.EntityType;
|
+import net.minecraft.world.entity.EntityType;
|
||||||
+import net.minecraft.world.item.Item;
|
+import net.minecraft.world.item.Item;
|
||||||
+import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
+import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
||||||
|
+import org.jetbrains.annotations.Contract;
|
||||||
|
+import org.jetbrains.annotations.NotNull;
|
||||||
+import org.jetbrains.annotations.VisibleForTesting;
|
+import org.jetbrains.annotations.VisibleForTesting;
|
||||||
+import org.slf4j.Logger;
|
+import org.slf4j.Logger;
|
||||||
+import org.spongepowered.configurate.*;
|
+import org.spongepowered.configurate.*;
|
||||||
@@ -706,8 +737,9 @@ index 0000000000000000000000000000000000000000..b1104778995a3734f3b6df71d59172e5
|
|||||||
+
|
+
|
||||||
+ private static final Logger LOGGER = LogUtils.getLogger();
|
+ private static final Logger LOGGER = LogUtils.getLogger();
|
||||||
+ static final String GLOBAL_CONFIGURATION_FILE_NAME= "plazma-global.yml";
|
+ static final String GLOBAL_CONFIGURATION_FILE_NAME= "plazma-global.yml";
|
||||||
+ static final String LEVEL_DEFAULT_CONFIGURATION_FILE_NAME = "plazma-level-dafaults.yml";
|
+ static final String LEVEL_DEFAULT_CONFIGURATION_FILE_NAME = "plazma-level-defaults.yml";
|
||||||
+ static final String LEVEL_CONFIGURATION_FILE_NAME = "plazma-configuration.yml";
|
+ static final String LEVEL_CONFIGURATION_FILE_NAME = "plazma-configuration.yml";
|
||||||
|
+ static final boolean OPTIMIZE_CONFIG = !Boolean.getBoolean("Plazma.disableConfigOptimization");
|
||||||
+
|
+
|
||||||
+ private static final String HEADER_START = """
|
+ private static final String HEADER_START = """
|
||||||
+ # English
|
+ # English
|
||||||
@@ -732,8 +764,6 @@ index 0000000000000000000000000000000000000000..b1104778995a3734f3b6df71d59172e5
|
|||||||
+
|
+
|
||||||
+ Wiki: https://github.com/PlazmaMC/Plazma/wiki
|
+ Wiki: https://github.com/PlazmaMC/Plazma/wiki
|
||||||
+ Discord: https://discord.gg/MmfC52K8A8
|
+ Discord: https://discord.gg/MmfC52K8A8
|
||||||
+ Twitter: *COMMING SOON*
|
|
||||||
+ Naver Cafe: *COMMING SOON*
|
|
||||||
+ """;
|
+ """;
|
||||||
+
|
+
|
||||||
+ private static final Function<Configurations.ContextMap, String> LEVEL_SPECIFIC_HEADER = map -> String.format("""
|
+ private static final Function<Configurations.ContextMap, String> LEVEL_SPECIFIC_HEADER = map -> String.format("""
|
||||||
@@ -757,8 +787,6 @@ index 0000000000000000000000000000000000000000..b1104778995a3734f3b6df71d59172e5
|
|||||||
+
|
+
|
||||||
+ Wiki: https://github.com/PlazmaMC/Plazma/wiki
|
+ Wiki: https://github.com/PlazmaMC/Plazma/wiki
|
||||||
+ Discord: https://discord.gg/MmfC52K8A8
|
+ Discord: https://discord.gg/MmfC52K8A8
|
||||||
+ Twitter: *COMMING SOON*
|
|
||||||
+ Naver Cafe: *COMMING SOON*
|
|
||||||
+ """, PaperConfigurations.CONFIG_DIR, LEVEL_DEFAULT_CONFIGURATION_FILE_NAME, PaperConfigurations.CONFIG_DIR, LEVEL_DEFAULT_CONFIGURATION_FILE_NAME,
|
+ """, PaperConfigurations.CONFIG_DIR, LEVEL_DEFAULT_CONFIGURATION_FILE_NAME, PaperConfigurations.CONFIG_DIR, LEVEL_DEFAULT_CONFIGURATION_FILE_NAME,
|
||||||
+ map.require(WORLD_NAME), map.require(WORLD_KEY));
|
+ map.require(WORLD_NAME), map.require(WORLD_KEY));
|
||||||
+
|
+
|
||||||
@@ -789,7 +817,7 @@ index 0000000000000000000000000000000000000000..b1104778995a3734f3b6df71d59172e5
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ // Create Loader Builder
|
+ // Create Loader Builder
|
||||||
+ private static ConfigurationOptions defaultOptions(ConfigurationOptions options) {
|
+ private static ConfigurationOptions defaultOptions(@NotNull ConfigurationOptions options) {
|
||||||
+ return options.serializers(builder -> builder
|
+ return options.serializers(builder -> builder
|
||||||
+ .register(MapSerializer.TYPE, new MapSerializer(false))
|
+ .register(MapSerializer.TYPE, new MapSerializer(false))
|
||||||
+ .register(new EnumValueSerializer())
|
+ .register(new EnumValueSerializer())
|
||||||
@@ -803,7 +831,7 @@ index 0000000000000000000000000000000000000000..b1104778995a3734f3b6df71d59172e5
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ // Create Global Object Mapper Factory Builder
|
+ // Create Global Object Mapper Factory Builder
|
||||||
+ private static ObjectMapper.Factory.Builder defaultGlobalFactoryBuilder(ObjectMapper.Factory.Builder builder) {
|
+ private static ObjectMapper.Factory.Builder defaultGlobalFactoryBuilder(ObjectMapper.Factory.@NotNull Builder builder) {
|
||||||
+ return builder.addDiscoverer(InnerClassFieldDiscoverer.globalConfig());
|
+ return builder.addDiscoverer(InnerClassFieldDiscoverer.globalConfig());
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
@@ -813,7 +841,7 @@ index 0000000000000000000000000000000000000000..b1104778995a3734f3b6df71d59172e5
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ // Create Global Loader Builder
|
+ // Create Global Loader Builder
|
||||||
+ private static ConfigurationOptions defaultGlobalOptions(ConfigurationOptions options) {
|
+ private static ConfigurationOptions defaultGlobalOptions(@NotNull ConfigurationOptions options) {
|
||||||
+ return options.header(GLOBAL_HEADER).serializers(builder -> builder.register(new PacketClassSerializer()));
|
+ return options.header(GLOBAL_HEADER).serializers(builder -> builder.register(new PacketClassSerializer()));
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
@@ -826,7 +854,7 @@ index 0000000000000000000000000000000000000000..b1104778995a3734f3b6df71d59172e5
|
|||||||
+ @Override
|
+ @Override
|
||||||
+ public GlobalConfiguration initializeGlobalConfiguration() throws ConfigurateException {
|
+ public GlobalConfiguration initializeGlobalConfiguration() throws ConfigurateException {
|
||||||
+ GlobalConfiguration configuration = super.initializeGlobalConfiguration();
|
+ GlobalConfiguration configuration = super.initializeGlobalConfiguration();
|
||||||
+ GlobalConfiguration.set(configuration);
|
+ GlobalConfiguration.set(configuration, false);
|
||||||
+ return configuration;
|
+ return configuration;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
@@ -866,7 +894,7 @@ index 0000000000000000000000000000000000000000..b1104778995a3734f3b6df71d59172e5
|
|||||||
+ );
|
+ );
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ private void applyTransformations(final NodePath[] paths, final ConfigurationNode node) throws ConfigurateException {
|
+ private void applyTransformations(final NodePath @NotNull [] paths, final ConfigurationNode node) throws ConfigurateException {
|
||||||
+ if (paths.length > 0) {
|
+ if (paths.length > 0) {
|
||||||
+ ConfigurationTransformation.Builder builder = ConfigurationTransformation.builder();
|
+ ConfigurationTransformation.Builder builder = ConfigurationTransformation.builder();
|
||||||
+
|
+
|
||||||
@@ -883,7 +911,7 @@ index 0000000000000000000000000000000000000000..b1104778995a3734f3b6df71d59172e5
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ protected void applyWorldConfigTransformations(final ContextMap contextMap, final ConfigurationNode node) throws ConfigurateException {
|
+ protected void applyWorldConfigTransformations(final @NotNull ContextMap contextMap, final @NotNull ConfigurationNode node) throws ConfigurateException {
|
||||||
+ final ConfigurationNode version = node.node(Configuration.VERSION_FIELD);
|
+ final ConfigurationNode version = node.node(Configuration.VERSION_FIELD);
|
||||||
+ final String world = contextMap.require(WORLD_NAME);
|
+ final String world = contextMap.require(WORLD_NAME);
|
||||||
+
|
+
|
||||||
@@ -910,7 +938,7 @@ index 0000000000000000000000000000000000000000..b1104778995a3734f3b6df71d59172e5
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public LevelConfigurations createWorldConfig(final ContextMap contextMap) {
|
+ public LevelConfigurations createWorldConfig(final @NotNull ContextMap contextMap) {
|
||||||
+ final String levelName = contextMap.require(WORLD_NAME);
|
+ final String levelName = contextMap.require(WORLD_NAME);
|
||||||
+ try {
|
+ try {
|
||||||
+ return super.createWorldConfig(contextMap);
|
+ return super.createWorldConfig(contextMap);
|
||||||
@@ -930,14 +958,15 @@ index 0000000000000000000000000000000000000000..b1104778995a3734f3b6df71d59172e5
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @VisibleForTesting
|
+ @VisibleForTesting
|
||||||
+ static ConfigurationNode createForTesting() {
|
+ static @NotNull ConfigurationNode createForTesting() {
|
||||||
+ ObjectMapper.Factory factory = defaultGlobalFactoryBuilder(ObjectMapper.factoryBuilder()).build();
|
+ ObjectMapper.Factory factory = defaultGlobalFactoryBuilder(ObjectMapper.factoryBuilder()).build();
|
||||||
+ ConfigurationOptions options = defaultGlobalOptions(defaultOptions(ConfigurationOptions.defaults()))
|
+ ConfigurationOptions options = defaultGlobalOptions(defaultOptions(ConfigurationOptions.defaults()))
|
||||||
+ .serializers(builder -> builder.register(type -> ConfigurationPart.class.isAssignableFrom(erase(type)), factory.asTypeSerializer()));
|
+ .serializers(builder -> builder.register(type -> ConfigurationPart.class.isAssignableFrom(erase(type)), factory.asTypeSerializer()));
|
||||||
+ return BasicConfigurationNode.root(options);
|
+ return BasicConfigurationNode.root(options);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public static PlazmaConfigurations setup(final Path configurationDir) throws Exception {
|
+ @Contract("_ -> new")
|
||||||
|
+ public static @NotNull PlazmaConfigurations setup(final Path configurationDir) throws Exception {
|
||||||
+ try {
|
+ try {
|
||||||
+ PaperConfigurations.createDirectoriesSymlinkAware(configurationDir);
|
+ PaperConfigurations.createDirectoriesSymlinkAware(configurationDir);
|
||||||
+ return new PlazmaConfigurations(configurationDir);
|
+ return new PlazmaConfigurations(configurationDir);
|
||||||
@@ -956,6 +985,11 @@ index 0000000000000000000000000000000000000000..b1104778995a3734f3b6df71d59172e5
|
|||||||
+ throw new RuntimeException("Could not reload Plazma configuration files", e);
|
+ throw new RuntimeException("Could not reload Plazma configuration files", e);
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
|
+ public static boolean optimizeConfig() {
|
||||||
|
+ return OPTIMIZE_CONFIG;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/RemovedConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/RemovedConfigurations.java
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/RemovedConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/RemovedConfigurations.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
@@ -975,20 +1009,20 @@ index 0000000000000000000000000000000000000000..469100cd86e6742eeebad22923097782
|
|||||||
+
|
+
|
||||||
+}
|
+}
|
||||||
diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java
|
diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java
|
||||||
index a616624a7beb35239be0fc2bb7fe60db1c673c2d..602ac1b30937a89312be7ba068a595d398e53394 100644
|
index 8174b6bb78553cbe124b499ffa235368179d1564..a5f8a128b27906daba5aeb293851bb03402ca9c2 100644
|
||||||
--- a/src/test/java/org/bukkit/support/AbstractTestingBase.java
|
--- a/src/test/java/org/bukkit/support/AbstractTestingBase.java
|
||||||
+++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java
|
+++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java
|
||||||
@@ -63,6 +63,7 @@ public abstract class AbstractTestingBase {
|
@@ -64,6 +64,7 @@ public abstract class AbstractTestingBase {
|
||||||
|
|
||||||
DummyEnchantments.setup();
|
DummyEnchantments.setup();
|
||||||
io.papermc.paper.configuration.GlobalConfigTestingBase.setupGlobalConfigForTest(); // Paper
|
io.papermc.paper.configuration.GlobalConfigTestingBase.setupGlobalConfigForTest(); // Paper
|
||||||
+ org.plazmamc.plazma.configurations.GlobalConfigurationTestingBase.setupGlobalConfigurationForTest(); // Plazma
|
+ org.plazmamc.plazma.configurations.GlobalConfigurationTestingBase.setupGlobalConfigurationForTest(); // Plazma
|
||||||
|
|
||||||
ImmutableList.Builder<Material> builder = ImmutableList.builder();
|
CraftRegistry.setMinecraftRegistry(REGISTRY_CUSTOM);
|
||||||
for (Material m : Material.values()) {
|
|
||||||
diff --git a/src/test/java/org/plazmamc/plazma/configurations/GlobalConfigurationTestingBase.java b/src/test/java/org/plazmamc/plazma/configurations/GlobalConfigurationTestingBase.java
|
diff --git a/src/test/java/org/plazmamc/plazma/configurations/GlobalConfigurationTestingBase.java b/src/test/java/org/plazmamc/plazma/configurations/GlobalConfigurationTestingBase.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..2b9a17a2e04f7fb6b801920ed04133db9478f984
|
index 0000000000000000000000000000000000000000..adf57600250b05e1d7cf617d7f58797d2663bca9
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/test/java/org/plazmamc/plazma/configurations/GlobalConfigurationTestingBase.java
|
+++ b/src/test/java/org/plazmamc/plazma/configurations/GlobalConfigurationTestingBase.java
|
||||||
@@ -0,0 +1,18 @@
|
@@ -0,0 +1,18 @@
|
||||||
@@ -1003,7 +1037,7 @@ index 0000000000000000000000000000000000000000..2b9a17a2e04f7fb6b801920ed04133db
|
|||||||
+ ConfigurationNode node = PlazmaConfigurations.createForTesting();
|
+ ConfigurationNode node = PlazmaConfigurations.createForTesting();
|
||||||
+ try {
|
+ try {
|
||||||
+ GlobalConfiguration globalConfiguration = node.require(GlobalConfiguration.class);
|
+ GlobalConfiguration globalConfiguration = node.require(GlobalConfiguration.class);
|
||||||
+ GlobalConfiguration.set(globalConfiguration);
|
+ GlobalConfiguration.set(globalConfiguration, true);
|
||||||
+ } catch (SerializationException e) {
|
+ } catch (SerializationException e) {
|
||||||
+ throw new RuntimeException(e);
|
+ throw new RuntimeException(e);
|
||||||
+ }
|
+ }
|
||||||
68
patches/server/0007-Add-more-metrics.patch
Normal file
68
patches/server/0007-Add-more-metrics.patch
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Wed, 27 Sep 2023 16:02:29 +0900
|
||||||
|
Subject: [PATCH] Add more metrics
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java
|
||||||
|
index 7d80d2cf5d607d6051e99e4b08bc1b76098a79da..fa88d48adc3aefcd823f431f099e46c94fd071a1 100644
|
||||||
|
--- a/src/main/java/com/destroystokyo/paper/Metrics.java
|
||||||
|
+++ b/src/main/java/com/destroystokyo/paper/Metrics.java
|
||||||
|
@@ -636,16 +636,51 @@ public class Metrics {
|
||||||
|
return map;
|
||||||
|
}));
|
||||||
|
|
||||||
|
+ // Plazma start - Add more metrics
|
||||||
|
+ metrics.addCustomChart(new DrilldownPie("datapacks", () -> {
|
||||||
|
+ int datapacks = Bukkit.getDatapackManager().getEnabledPacks().size();
|
||||||
|
+ Map<String, Integer> entry = Collections.singletonMap(String.valueOf(datapacks), 1);
|
||||||
|
+
|
||||||
|
+ if (datapacks == 0) return Collections.singletonMap("0", entry);
|
||||||
|
+ else if (datapacks <= 5) return Collections.singletonMap("1-5", entry);
|
||||||
|
+ else if (datapacks <= 10) return Collections.singletonMap("6-10", entry);
|
||||||
|
+ else if (datapacks <= 25) return Collections.singletonMap("11-25", entry);
|
||||||
|
+ else if (datapacks <= 50) return Collections.singletonMap("26-50", entry);
|
||||||
|
+ return Collections.singletonMap("50+", entry);
|
||||||
|
+ }));
|
||||||
|
+
|
||||||
|
+ List<Plugin> plugins = Arrays.stream(Bukkit.getPluginManager().getPlugins()).toList();
|
||||||
|
+
|
||||||
|
+ metrics.addCustomChart(new DrilldownPie("plugins", () -> {
|
||||||
|
+ int pluginCount = (int) plugins.stream().filter(Plugin::isEnabled).count();
|
||||||
|
+ Map<String, Integer> entry = Collections.singletonMap(String.valueOf(pluginCount), 1);
|
||||||
|
+
|
||||||
|
+ if (pluginCount == 0) return Collections.singletonMap("0", entry);
|
||||||
|
+ else if (pluginCount <= 5) return Collections.singletonMap("1-5", entry);
|
||||||
|
+ else if (pluginCount <= 10) return Collections.singletonMap("6-10", entry);
|
||||||
|
+ else if (pluginCount <= 25) return Collections.singletonMap("11-25", entry);
|
||||||
|
+ else if (pluginCount <= 50) return Collections.singletonMap("26-50", entry);
|
||||||
|
+ return Collections.singletonMap("50+", entry);
|
||||||
|
+ }));
|
||||||
|
+
|
||||||
|
+ metrics.addCustomChart(new DrilldownPie("disabled_plugins", () -> {
|
||||||
|
+ int disabled = (int) plugins.stream().filter(java.util.function.Predicate.not(Plugin::isEnabled)).count();
|
||||||
|
+ Map<String, Integer> entry = Collections.singletonMap(String.valueOf(disabled), 1);
|
||||||
|
+
|
||||||
|
+ if (disabled == 0) return Collections.singletonMap("0 \uD83D\uDE0E", entry);
|
||||||
|
+ else if (disabled <= 5) return Collections.singletonMap("1-5", entry);
|
||||||
|
+ else if (disabled <= 10) return Collections.singletonMap("6-10", entry);
|
||||||
|
+ else if (disabled <= 25) return Collections.singletonMap("11-25", entry);
|
||||||
|
+ else if (disabled <= 50) return Collections.singletonMap("26-50", entry);
|
||||||
|
+ return Collections.singletonMap("50+ \uD83D\uDE2D", entry);
|
||||||
|
+ }));
|
||||||
|
+ // Plazma end
|
||||||
|
+
|
||||||
|
metrics.addCustomChart(new Metrics.DrilldownPie("legacy_plugins", () -> {
|
||||||
|
Map<String, Map<String, Integer>> map = new HashMap<>();
|
||||||
|
|
||||||
|
// count legacy plugins
|
||||||
|
- int legacy = 0;
|
||||||
|
- for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
|
||||||
|
- if (CraftMagicNumbers.isLegacy(plugin.getDescription())) {
|
||||||
|
- legacy++;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ int legacy = (int) plugins.stream().filter(p -> CraftMagicNumbers.isLegacy(p.getDescription())).count(); // Plazma
|
||||||
|
|
||||||
|
// insert real value as lower dimension
|
||||||
|
Map<String, Integer> entry = new HashMap<>();
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: IPECTER <ipectert@gmail.com>
|
|
||||||
Date: Thu, 23 Mar 2023 14:25:09 +0900
|
|
||||||
Subject: [PATCH] ChunkSending Configuration
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
index 857ddc62dd9affbbebcd7cde8a6d675dbb5f68ae..8ba1c5b6731d43c02b415e4d79a20c1de0c03ad5 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
@@ -22,4 +22,12 @@ public class LevelConfigurations extends ConfigurationPart {
|
|
||||||
|
|
||||||
@Setting(Configuration.VERSION_FIELD)
|
|
||||||
public int version = CURRENT_VERSION;
|
|
||||||
+
|
|
||||||
+ public ChunkSending chunkSending;
|
|
||||||
+ public class ChunkSending extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+ public boolean enabled = true;
|
|
||||||
+ public int maxChunksPerTick = 5;
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
@@ -1,79 +1,73 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: IPECTER <ipectert@gmail.com>
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
Date: Tue, 7 Mar 2023 12:28:34 +0900
|
Date: Wed, 27 Sep 2023 16:42:17 +0900
|
||||||
Subject: [PATCH] Optimize Default Configurations
|
Subject: [PATCH] Optimize default configurations
|
||||||
|
|
||||||
Original: YouHaveTrouble/minecraft-optimization, AkiraDevelopment/SimplyMC
|
Reference: YouHaveTrouble/minecraft-optimization, AkiraDevelopment/SimplyMC
|
||||||
Copyright (C) 2023 YouHaveTrouble, AkiraDevelopment
|
|
||||||
|
|
||||||
diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
|
diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
|
||||||
index 47e77541e558e18758ae0fcc2aa4e47261e928b6..dd3a29c49392910a38be14a638c6c9b6e825d772 100644
|
index 5f223856b06e901b100fcca8e6dd968e0b2e3a8e..13df89e7cc219cdb80c4114d05148c685ad2ecee 100644
|
||||||
--- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
|
--- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
|
||||||
+++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
|
+++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
|
||||||
@@ -211,8 +211,8 @@ public class PufferfishConfig {
|
@@ -72,7 +72,7 @@ public class PufferfishConfig {
|
||||||
|
getString("info.version", "1.0");
|
||||||
|
setComment("info",
|
||||||
|
"Pufferfish Configuration",
|
||||||
|
- "Check out Pufferfish Host for maximum performance server hosting: https://pufferfish.host",
|
||||||
|
+ //"Check out Pufferfish Host for maximum performance server hosting: https://pufferfish.host", // Plazma - no advertisement
|
||||||
|
"Join our Discord for support: https://discord.gg/reZw4vQV9H",
|
||||||
|
"Download new builds at https://ci.pufferfish.host/job/Pufferfish");
|
||||||
|
|
||||||
|
@@ -219,7 +219,7 @@ public class PufferfishConfig {
|
||||||
public static int maxProjectileLoadsPerTick;
|
public static int maxProjectileLoadsPerTick;
|
||||||
public static int maxProjectileLoadsPerProjectile;
|
public static int maxProjectileLoadsPerProjectile;
|
||||||
private static void projectileLoading() {
|
private static void projectileLoading() {
|
||||||
- maxProjectileLoadsPerTick = getInt("projectile.max-loads-per-tick", 10, "Controls how many chunks are allowed", "to be sync loaded by projectiles in a tick.");
|
- maxProjectileLoadsPerTick = getInt("projectile.max-loads-per-tick", 10, "Controls how many chunks are allowed", "to be sync loaded by projectiles in a tick.");
|
||||||
- maxProjectileLoadsPerProjectile = getInt("projectile.max-loads-per-projectile", 10, "Controls how many chunks a projectile", "can load in its lifetime before it gets", "automatically removed.");
|
+ maxProjectileLoadsPerTick = getInt("projectile.max-loads-per-tick", org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 8 : 10, "Controls how many chunks are allowed", "to be sync loaded by projectiles in a tick."); // Plazma - Optimize default configurations
|
||||||
+ maxProjectileLoadsPerTick = getInt("projectile.max-loads-per-tick", Boolean.getBoolean("Plazma.disableConfigOptimization") ? 10 : 8, "Controls how many chunks are allowed", "to be sync loaded by projectiles in a tick."); // Plazma
|
maxProjectileLoadsPerProjectile = getInt("projectile.max-loads-per-projectile", 10, "Controls how many chunks a projectile", "can load in its lifetime before it gets", "automatically removed.");
|
||||||
+ maxProjectileLoadsPerProjectile = getInt("projectile.max-loads-per-projectile", 10, "Controls how many chunks a projectile", "can load in its lifetime before it gets", "automatically removed.");
|
|
||||||
|
|
||||||
setComment("projectile", "Optimizes projectile settings");
|
setComment("projectile", "Optimizes projectile settings");
|
||||||
}
|
@@ -233,7 +233,7 @@ public class PufferfishConfig {
|
||||||
@@ -225,16 +225,16 @@ public class PufferfishConfig {
|
|
||||||
public static int activationDistanceMod;
|
public static int activationDistanceMod;
|
||||||
|
|
||||||
private static void dynamicActivationOfBrains() throws IOException {
|
private static void dynamicActivationOfBrains() throws IOException {
|
||||||
- dearEnabled = getBoolean("dab.enabled", "activation-range.enabled", false); // Purpur
|
- dearEnabled = getBoolean("dab.enabled", "activation-range.enabled", false); // Purpur
|
||||||
- startDistance = getInt("dab.start-distance", "activation-range.start-distance", 12,
|
+ dearEnabled = getBoolean("dab.enabled", "activation-range.enabled", org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize()); // Purpur // Plazma - Optimize default configurations
|
||||||
+ dearEnabled = getBoolean("dab.enabled", "activation-range.enabled", !Boolean.getBoolean("Plazma.disableConfigOptimization")); // Purpur // Plazma
|
startDistance = getInt("dab.start-distance", "activation-range.start-distance", 12,
|
||||||
+ startDistance = getInt("dab.start-distance", "activation-range.start-distance", 12,
|
|
||||||
"This value determines how far away an entity has to be",
|
"This value determines how far away an entity has to be",
|
||||||
"from the player to start being effected by DEAR.");
|
"from the player to start being effected by DEAR.");
|
||||||
startDistanceSquared = startDistance * startDistance;
|
@@ -241,7 +241,7 @@ public class PufferfishConfig {
|
||||||
maximumActivationPrio = getInt("dab.max-tick-freq", "activation-range.max-tick-freq", 20,
|
maximumActivationPrio = getInt("dab.max-tick-freq", "activation-range.max-tick-freq", 20,
|
||||||
"This value defines how often in ticks, the furthest entity",
|
"This value defines how often in ticks, the furthest entity",
|
||||||
"will get their pathfinders and behaviors ticked. 20 = 1s");
|
"will get their pathfinders and behaviors ticked. 20 = 1s");
|
||||||
- activationDistanceMod = getInt("dab.activation-dist-mod", "activation-range.activation-dist-mod", 8,
|
- activationDistanceMod = getInt("dab.activation-dist-mod", "activation-range.activation-dist-mod", 8,
|
||||||
- "This value defines how much distance modifies an entity's",
|
+ activationDistanceMod = getInt("dab.activation-dist-mod", "activation-range.activation-dist-mod", org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 7 : 8, // Plazma - Optimize default configurations
|
||||||
+ activationDistanceMod = getInt("dab.activation-dist-mod", "activation-range.activation-dist-mod", Boolean.getBoolean("Plazma.disableConfigOptimization") ? 8 : 7, // Plazma
|
"This value defines how much distance modifies an entity's",
|
||||||
+ "This value defines how much distance modifies an entity's",
|
|
||||||
"tick frequency. freq = (distanceToPlayer^2) / (2^value)",
|
"tick frequency. freq = (distanceToPlayer^2) / (2^value)",
|
||||||
"If you want further away entities to tick less often, use 7.",
|
"If you want further away entities to tick less often, use 7.",
|
||||||
"If you want further away entities to tick more often, try 9.");
|
|
||||||
@@ -269,7 +269,7 @@ public class PufferfishConfig {
|
|
||||||
|
|
||||||
public static boolean throttleInactiveGoalSelectorTick;
|
|
||||||
private static void inactiveGoalSelectorThrottle() {
|
|
||||||
- getBoolean("inactive-goal-selector-throttle", "inactive-goal-selector-disable", false, // Purpur
|
|
||||||
+ getBoolean("inactive-goal-selector-throttle", "inactive-goal-selector-disable", !Boolean.getBoolean("Plazma.disableConfigOptimization"), // Purpur // Plazma
|
|
||||||
"Throttles the AI goal selector in entity inactive ticks.",
|
|
||||||
"This can improve performance by a few percent, but has minor gameplay implications.");
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
||||||
index 8d442c5a498ecf288a0cc0c54889c6e2fda849ce..205ce3456a3f6d28cc2c7cbc131ec0f63a461527 100644
|
index c69892a5f31895b85e530beadd8864ac32470ba7..5f652268dadaca96a98203ad12d7a0ba0b19563b 100644
|
||||||
--- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
--- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
||||||
+++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
+++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
||||||
@@ -103,7 +103,7 @@ public class GlobalConfiguration extends ConfigurationPart {
|
@@ -154,7 +154,7 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||||
|
|
||||||
public class Watchdog extends ConfigurationPart {
|
public class Watchdog extends ConfigurationPart {
|
||||||
public int earlyWarningEvery = 5000;
|
public int earlyWarningEvery = 5000;
|
||||||
- public int earlyWarningDelay = 10000;
|
- public int earlyWarningDelay = 10000;
|
||||||
+ public int earlyWarningDelay = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 10000 : 180000; // Plazma - Optimize Default Configurations
|
+ public int earlyWarningDelay = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 180000 : 10000; // Plazma - Optimize default configurations
|
||||||
}
|
}
|
||||||
|
|
||||||
public SpamLimiter spamLimiter;
|
public SpamLimiter spamLimiter;
|
||||||
diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
|
diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
|
||||||
index ee430563b99e48cd722c2897e4729936457d3017..5a1be0fe6cd96dbb1c786b27ad3ac943ce13ed3c 100644
|
index ec5e23136423e42e4f55e6ea646b8285c1ca14e2..a1d22ad65fc751fa93384f59853434ab65836133 100644
|
||||||
--- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
|
--- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
|
||||||
+++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
|
+++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
|
||||||
@@ -84,15 +84,15 @@ public class WorldConfiguration extends ConfigurationPart {
|
@@ -88,15 +88,27 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||||
|
|
||||||
public class AntiXray extends ConfigurationPart {
|
public class AntiXray extends ConfigurationPart {
|
||||||
public boolean enabled = false;
|
public boolean enabled = false;
|
||||||
- public EngineMode engineMode = EngineMode.HIDE;
|
- public EngineMode engineMode = EngineMode.HIDE;
|
||||||
+ public EngineMode engineMode = Boolean.getBoolean("Plazma.disableConfigOptimization") ? EngineMode.HIDE : EngineMode.OBFUSCATE_LAYER; // Plazma - Optimize Default Configurations
|
+ public EngineMode engineMode = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? EngineMode.OBFUSCATE_LAYER : EngineMode.HIDE; // Plazma - Optimize default configurations
|
||||||
public int maxBlockHeight = 64;
|
public int maxBlockHeight = 64;
|
||||||
public int updateRadius = 2;
|
public int updateRadius = 2;
|
||||||
public boolean lavaObscures = false;
|
public boolean lavaObscures = false;
|
||||||
@@ -82,52 +76,73 @@ index ee430563b99e48cd722c2897e4729936457d3017..5a1be0fe6cd96dbb1c786b27ad3ac943
|
|||||||
- "coal_ore", "deepslate_coal_ore", "lapis_ore", "deepslate_lapis_ore", "mossy_cobblestone", "obsidian", "chest", "diamond_ore", "deepslate_diamond_ore",
|
- "coal_ore", "deepslate_coal_ore", "lapis_ore", "deepslate_lapis_ore", "mossy_cobblestone", "obsidian", "chest", "diamond_ore", "deepslate_diamond_ore",
|
||||||
- "redstone_ore", "deepslate_redstone_ore", "clay", "emerald_ore", "deepslate_emerald_ore", "ender_chest"); // TODO update type to List<Block>
|
- "redstone_ore", "deepslate_redstone_ore", "clay", "emerald_ore", "deepslate_emerald_ore", "ender_chest"); // TODO update type to List<Block>
|
||||||
- public List<String> replacementBlocks = List.of("stone", "oak_planks", "deepslate"); // TODO update type to List<Block>
|
- public List<String> replacementBlocks = List.of("stone", "oak_planks", "deepslate"); // TODO update type to List<Block>
|
||||||
+ // Plazma start - Optimize Default Configurations
|
+ // Plazma start - Optimize default configurations
|
||||||
+ public List<String> hiddenBlocks = List.of("air", "copper_ore", "deepslate_copper_ore", "raw_copper_block", "diamond_ore", "deepslate_diamond_ore", "gold_ore", "deepslate_gold_ore", "iron_ore", "deepslate_iron_ore", "raw_iron_block", "lapis_ore", "deepslate_lapis_ore", "redstone_ore", "deepslate_redstone_ore"); // TODO update type to List<Block>
|
+ public List<String> hiddenBlocks = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ?
|
||||||
+ public List<String> replacementBlocks = List.of("chest", "amethyst_block", "andesite", "budding_amethyst", "calcite", "coal_ore", "deepslate_coal_ore", "deepslate", "diorite", "dirt", "emerald_ore", "deepslate_emerald_ore", "granite", "gravel", "oak_planks", "smooth_basalt", "stone", "tuff"); // TODO update type to List<Block>
|
+ List.of("air", "copper_ore", "deepslate_copper_ore", "raw_copper_block", "iron_ore",
|
||||||
|
+ "deepslate_iron_ore", "raw_iron_block", "gold_ore", "deepslate_gold_ore", "raw_gold_block",
|
||||||
|
+ "lapis_ore", "deepslate_lapis_ore", "redstone_ore", "deepslate_redstone_ore", "diamond_ore",
|
||||||
|
+ "deepslate_diamond_ore") :
|
||||||
|
+ List.of("copper_ore", "deepslate_copper_ore","gold_ore", "deepslate_gold_ore",
|
||||||
|
+ "iron_ore", "deepslate_iron_ore", "coal_ore", "deepslate_coal_ore", "lapis_ore",
|
||||||
|
+ "deepslate_lapis_ore", "mossy_cobblestone", "obsidian", "chest", "diamond_ore",
|
||||||
|
+ "deepslate_diamond_ore", "redstone_ore", "deepslate_redstone_ore", "clay", "emerald_ore",
|
||||||
|
+ "deepslate_emerald_ore", "ender_chest");; // TODO update type to List<Block>
|
||||||
|
+ public List<String> replacementBlocks = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ?
|
||||||
|
+ List.of("chest", "amethyst_block", "andesite", "budding_amethyst", "calcite", "coal_ore",
|
||||||
|
+ "deepslate_coal_ore", "deepslate", "diorite", "dirt", "emerald_ore", "granite", "gravel",
|
||||||
|
+ "oak_planks", "smooth_basalt", "stone", "tuff") : List.of("stone", "oak_planks", "deepslate"); // TODO update type to List<Block>
|
||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ public class WorldConfiguration extends ConfigurationPart {
|
@@ -150,7 +162,7 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||||
@MergeMap
|
@MergeMap
|
||||||
public Reference2IntMap<MobCategory> spawnLimits = Util.make(new Reference2IntOpenHashMap<>(NaturalSpawner.SPAWNING_CATEGORIES.length), map -> Arrays.stream(NaturalSpawner.SPAWNING_CATEGORIES).forEach(mobCategory -> map.put(mobCategory, -1)));
|
public Reference2IntMap<MobCategory> spawnLimits = Util.make(new Reference2IntOpenHashMap<>(NaturalSpawner.SPAWNING_CATEGORIES.length), map -> Arrays.stream(NaturalSpawner.SPAWNING_CATEGORIES).forEach(mobCategory -> map.put(mobCategory, -1)));
|
||||||
@MergeMap
|
@MergeMap
|
||||||
- public Map<MobCategory, DespawnRange> despawnRanges = Arrays.stream(MobCategory.values()).collect(Collectors.toMap(Function.identity(), category -> new DespawnRange(category.getNoDespawnDistance(), category.getDespawnDistance())));
|
- public Map<MobCategory, DespawnRange> despawnRanges = Arrays.stream(MobCategory.values()).collect(Collectors.toMap(Function.identity(), category -> new DespawnRange(category.getNoDespawnDistance(), category.getDespawnDistance())));
|
||||||
+ public Map<MobCategory, DespawnRange> despawnRanges = Arrays.stream(MobCategory.values()).collect(Collectors.toMap(Function.identity(), category -> new DespawnRange(category.getNoDespawnDistance(), Boolean.getBoolean("Plazma.disableConfigOptimization") ? category.getDespawnDistance() : (net.minecraft.server.MinecraftServer.getServer().server.getSimulationDistance() * 16) + 8))); // Plazma - Optimize Default Configurations
|
+ public Map<MobCategory, DespawnRange> despawnRanges = Arrays.stream(MobCategory.values()).collect(Collectors.toMap(Function.identity(), category -> new DespawnRange(category.getNoDespawnDistance(), org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? (net.minecraft.server.MinecraftServer.getServer().server.getSimulationDistance() * 16) + 8 : category.getDespawnDistance()))); // Plazma - Optimize default configurations
|
||||||
|
|
||||||
@ConfigSerializable
|
@ConfigSerializable
|
||||||
public record DespawnRange(@Required int soft, @Required int hard) {
|
public record DespawnRange(@Required int soft, @Required int hard) {
|
||||||
@@ -323,7 +323,7 @@ public class WorldConfiguration extends ConfigurationPart {
|
@@ -375,7 +387,7 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||||
public class Environment extends ConfigurationPart {
|
public class Environment extends ConfigurationPart {
|
||||||
public boolean disableThunder = false;
|
public boolean disableThunder = false;
|
||||||
public boolean disableIceAndSnow = false;
|
public boolean disableIceAndSnow = false;
|
||||||
- public boolean optimizeExplosions = false;
|
- public boolean optimizeExplosions = false;
|
||||||
+ public boolean optimizeExplosions = !Boolean.getBoolean("Plazma.disableConfigOptimization"); // Plazma - Optimize Default Configurations
|
+ public boolean optimizeExplosions = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize(); // Plazma - Optimize default configurations
|
||||||
public boolean disableExplosionKnockback = false;
|
public boolean disableExplosionKnockback = false;
|
||||||
public boolean generateFlatBedrock = false;
|
public boolean generateFlatBedrock = false;
|
||||||
public FrostedIce frostedIce;
|
public FrostedIce frostedIce;
|
||||||
@@ -403,9 +403,9 @@ public class WorldConfiguration extends ConfigurationPart {
|
@@ -427,7 +439,7 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||||
|
public Fixes fixes;
|
||||||
|
|
||||||
|
public class Fixes extends ConfigurationPart {
|
||||||
|
- public boolean fixItemsMergingThroughWalls = false;
|
||||||
|
+ public boolean fixItemsMergingThroughWalls = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize(); // Plazma - Optimize default configurations
|
||||||
|
public boolean disableUnloadedChunkEnderpearlExploit = true;
|
||||||
|
public boolean preventTntFromMovingInWater = false;
|
||||||
|
public boolean splitOverstackedLoot = true;
|
||||||
|
@@ -455,9 +467,9 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||||
public class Collisions extends ConfigurationPart {
|
public class Collisions extends ConfigurationPart {
|
||||||
public boolean onlyPlayersCollide = false;
|
public boolean onlyPlayersCollide = false;
|
||||||
public boolean allowVehicleCollisions = true;
|
public boolean allowVehicleCollisions = true;
|
||||||
- public boolean fixClimbingBypassingCrammingRule = false;
|
- public boolean fixClimbingBypassingCrammingRule = false;
|
||||||
+ public boolean fixClimbingBypassingCrammingRule = !Boolean.getBoolean("Plazma.disableConfigOptimization"); // Plazma - Optimize Default Configurations
|
+ public boolean fixClimbingBypassingCrammingRule = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize(); // Plazma - Optimize default configurations
|
||||||
@RequiresSpigotInitialization(MaxEntityCollisionsInitializer.class)
|
@RequiresSpigotInitialization(MaxEntityCollisionsInitializer.class)
|
||||||
- public int maxEntityCollisions = 8;
|
- public int maxEntityCollisions = 8;
|
||||||
+ public int maxEntityCollisions = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 8 : 2; // Plazma - Optimize Default Configurations
|
+ public int maxEntityCollisions = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 2 : 8; // Plazma - Optimize default configurations
|
||||||
public boolean allowPlayerCrammingDamage = false;
|
public boolean allowPlayerCrammingDamage = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -413,18 +413,40 @@ public class WorldConfiguration extends ConfigurationPart {
|
@@ -465,18 +477,40 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||||
|
|
||||||
public class Chunks extends ConfigurationPart {
|
public class Chunks extends ConfigurationPart {
|
||||||
public AutosavePeriod autoSaveInterval = AutosavePeriod.def();
|
public AutosavePeriod autoSaveInterval = AutosavePeriod.def();
|
||||||
- public int maxAutoSaveChunksPerTick = 24;
|
- public int maxAutoSaveChunksPerTick = 24;
|
||||||
+ public int maxAutoSaveChunksPerTick = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 24 : 8; // Plazma - Optimize Default Configurations
|
+ public int maxAutoSaveChunksPerTick = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 8 : 24; // Plazma - Optimize default configurations
|
||||||
public int fixedChunkInhabitedTime = -1;
|
public int fixedChunkInhabitedTime = -1;
|
||||||
- public boolean preventMovingIntoUnloadedChunks = false;
|
- public boolean preventMovingIntoUnloadedChunks = false;
|
||||||
+ public boolean preventMovingIntoUnloadedChunks = !Boolean.getBoolean("Plazma.disableConfigOptimization"); // Plazma - Optimize Default Configurations
|
+ public boolean preventMovingIntoUnloadedChunks = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize(); // Plazma - Optimize default configurations
|
||||||
public Duration delayChunkUnloadsBy = Duration.of("10s");
|
public Duration delayChunkUnloadsBy = Duration.of("10s");
|
||||||
public Reference2IntMap<EntityType<?>> entityPerChunkSaveLimit = Util.make(new Reference2IntOpenHashMap<>(BuiltInRegistries.ENTITY_TYPE.size()), map -> {
|
public Reference2IntMap<EntityType<?>> entityPerChunkSaveLimit = Util.make(new Reference2IntOpenHashMap<>(BuiltInRegistries.ENTITY_TYPE.size()), map -> {
|
||||||
- map.defaultReturnValue(-1);
|
- map.defaultReturnValue(-1);
|
||||||
@@ -137,8 +152,8 @@ index ee430563b99e48cd722c2897e4729936457d3017..5a1be0fe6cd96dbb1c786b27ad3ac943
|
|||||||
- map.put(EntityType.ARROW, -1);
|
- map.put(EntityType.ARROW, -1);
|
||||||
- map.put(EntityType.FIREBALL, -1);
|
- map.put(EntityType.FIREBALL, -1);
|
||||||
- map.put(EntityType.SMALL_FIREBALL, -1);
|
- map.put(EntityType.SMALL_FIREBALL, -1);
|
||||||
+ // Plazma start - Optimize Default Configurations
|
+ // Plazma start - Optimize default configurations
|
||||||
+ if (!Boolean.getBoolean("Plazma.disableConfigOptimization")) {
|
+ if (org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize()) {
|
||||||
+ map.put(EntityType.AREA_EFFECT_CLOUD, 8);
|
+ map.put(EntityType.AREA_EFFECT_CLOUD, 8);
|
||||||
+ map.put(EntityType.ARROW, 16);
|
+ map.put(EntityType.ARROW, 16);
|
||||||
+ map.put(EntityType.DRAGON_FIREBALL, 3);
|
+ map.put(EntityType.DRAGON_FIREBALL, 3);
|
||||||
@@ -167,78 +182,79 @@ index ee430563b99e48cd722c2897e4729936457d3017..5a1be0fe6cd96dbb1c786b27ad3ac943
|
|||||||
+ }
|
+ }
|
||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
});
|
});
|
||||||
|
public boolean flushRegionsOnSave = false;
|
||||||
}
|
}
|
||||||
|
@@ -491,9 +525,9 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||||
@@ -438,9 +460,9 @@ public class WorldConfiguration extends ConfigurationPart {
|
|
||||||
public TickRates tickRates;
|
public TickRates tickRates;
|
||||||
|
|
||||||
public class TickRates extends ConfigurationPart {
|
public class TickRates extends ConfigurationPart {
|
||||||
- public int grassSpread = 1;
|
- public int grassSpread = 1;
|
||||||
+ public int grassSpread = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 1 : 4; // Plazma - Optimize Default Configurations
|
+ public int grassSpread = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 4 : 1; // Plazma - Optimize default configurations
|
||||||
public int containerUpdate = 1;
|
public int containerUpdate = 1;
|
||||||
- public int mobSpawner = 1;
|
- public int mobSpawner = 1;
|
||||||
+ public int mobSpawner = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 1 : 2; // Plazma - Optimize Default Configurations
|
+ public int mobSpawner = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 2 : 1; // Plazma - Optimize default configurations
|
||||||
public Table<EntityType<?>, String, Integer> sensor = Util.make(HashBasedTable.create(), table -> table.put(EntityType.VILLAGER, "secondarypoisensor", 40));
|
public Table<EntityType<?>, String, Integer> sensor = Util.make(HashBasedTable.create(), table -> table.put(EntityType.VILLAGER, "secondarypoisensor", 40));
|
||||||
public Table<EntityType<?>, String, Integer> behavior = Util.make(HashBasedTable.create(), table -> table.put(EntityType.VILLAGER, "validatenearbypoi", -1));
|
public Table<EntityType<?>, String, Integer> behavior = Util.make(HashBasedTable.create(), table -> table.put(EntityType.VILLAGER, "validatenearbypoi", -1));
|
||||||
}
|
}
|
||||||
@@ -464,9 +486,9 @@ public class WorldConfiguration extends ConfigurationPart {
|
@@ -517,9 +551,9 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||||
|
|
||||||
public class Misc extends ConfigurationPart {
|
public class Misc extends ConfigurationPart {
|
||||||
public int lightQueueSize = 20;
|
public int lightQueueSize = 20;
|
||||||
- public boolean updatePathfindingOnBlockUpdate = true;
|
- public boolean updatePathfindingOnBlockUpdate = true;
|
||||||
+ public boolean updatePathfindingOnBlockUpdate = Boolean.getBoolean("Plazma.disableConfigOptimization"); // Plazma - Optimize Default Configurations
|
+ public boolean updatePathfindingOnBlockUpdate = !org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize(); // Plazma - Optimize default configurations
|
||||||
public boolean showSignClickCommandFailureMsgsToPlayer = false;
|
public boolean showSignClickCommandFailureMsgsToPlayer = false;
|
||||||
- public RedstoneImplementation redstoneImplementation = RedstoneImplementation.VANILLA;
|
- public RedstoneImplementation redstoneImplementation = RedstoneImplementation.VANILLA;
|
||||||
+ public RedstoneImplementation redstoneImplementation = Boolean.getBoolean("Plazma.disableConfigOptimization") ? RedstoneImplementation.VANILLA : RedstoneImplementation.ALTERNATE_CURRENT; // Plazma - Optimize Default Configurations
|
+ public RedstoneImplementation redstoneImplementation = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? RedstoneImplementation.ALTERNATE_CURRENT : RedstoneImplementation.VANILLA; // Plazma - Optimize default configurations
|
||||||
public boolean disableEndCredits = false;
|
public boolean disableEndCredits = false;
|
||||||
public float maxLeashDistance = 10f;
|
public float maxLeashDistance = 10f;
|
||||||
public boolean disableSprintInterruptionOnAttack = false;
|
public boolean disableSprintInterruptionOnAttack = false;
|
||||||
diff --git a/src/main/java/io/papermc/paper/configuration/type/fallback/ArrowDespawnRate.java b/src/main/java/io/papermc/paper/configuration/type/fallback/ArrowDespawnRate.java
|
diff --git a/src/main/java/io/papermc/paper/configuration/type/fallback/ArrowDespawnRate.java b/src/main/java/io/papermc/paper/configuration/type/fallback/ArrowDespawnRate.java
|
||||||
index 24763d3d270c29c95e0b3e85111145234f660a62..18bc271a34ffba8c83743fef7eaf4a2c1a2bfdec 100644
|
index 24763d3d270c29c95e0b3e85111145234f660a62..ba7cf430cdff947a74ae067fc79020ae01e7e457 100644
|
||||||
--- a/src/main/java/io/papermc/paper/configuration/type/fallback/ArrowDespawnRate.java
|
--- a/src/main/java/io/papermc/paper/configuration/type/fallback/ArrowDespawnRate.java
|
||||||
+++ b/src/main/java/io/papermc/paper/configuration/type/fallback/ArrowDespawnRate.java
|
+++ b/src/main/java/io/papermc/paper/configuration/type/fallback/ArrowDespawnRate.java
|
||||||
@@ -29,6 +29,7 @@ public class ArrowDespawnRate extends FallbackValue.Int {
|
@@ -29,6 +29,7 @@ public class ArrowDespawnRate extends FallbackValue.Int {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int fallback() {
|
protected int fallback() {
|
||||||
+ if (!Boolean.getBoolean("Plazma.disableConfigOptimization")) return 100; // Plazma - Optimize Default Configurations
|
+ if (org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize()) return 100; // Plazma - Optimize default configurations
|
||||||
return this.get(FallbackValue.SPIGOT_WORLD_CONFIG).arrowDespawnRate;
|
return this.get(FallbackValue.SPIGOT_WORLD_CONFIG).arrowDespawnRate;
|
||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java
|
diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java
|
||||||
index e0eaa847526431ac58d00f18f0fca6b1ef9a79cd..214690b1531d8b25e9bddb54f630e0d9b3504f96 100644
|
index 30fc258faa6f087cf3c91411b48116a3ac416031..a32a1787cbcacb0d3ed6f0d751a04e8fa9d11dd6 100644
|
||||||
--- a/src/main/java/net/minecraft/server/Main.java
|
--- a/src/main/java/net/minecraft/server/Main.java
|
||||||
+++ b/src/main/java/net/minecraft/server/Main.java
|
+++ b/src/main/java/net/minecraft/server/Main.java
|
||||||
@@ -154,7 +154,7 @@ public class Main {
|
@@ -163,7 +163,7 @@ public class Main {
|
||||||
File configFile = (File) optionset.valueOf("bukkit-settings");
|
File configFile = (File) optionset.valueOf("bukkit-settings");
|
||||||
YamlConfiguration configuration = YamlConfiguration.loadConfiguration(configFile);
|
YamlConfiguration configuration = YamlConfiguration.loadConfiguration(configFile);
|
||||||
configuration.options().copyDefaults(true);
|
configuration.options().copyDefaults(true);
|
||||||
- configuration.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(Main.class.getClassLoader().getResourceAsStream("configurations/bukkit.yml"), Charsets.UTF_8)));
|
- configuration.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(Main.class.getClassLoader().getResourceAsStream("configurations/bukkit.yml"), Charsets.UTF_8)));
|
||||||
+ configuration.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(Main.class.getClassLoader().getResourceAsStream(Boolean.getBoolean("Plazma.disableConfigOptimization") ? "configurations/bukkit.yml" : "configurations/bukkit_optimized.yml"), Charsets.UTF_8))); // Plazma - Optimize Default Configurations
|
+ configuration.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(Main.class.getClassLoader().getResourceAsStream(org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? "configurations/bukkit_optimized.yml" : "configurations/bukkit.yml"), Charsets.UTF_8)));
|
||||||
configuration.save(configFile);
|
configuration.save(configFile);
|
||||||
|
|
||||||
File commandFile = (File) optionset.valueOf("commands-settings");
|
File commandFile = (File) optionset.valueOf("commands-settings");
|
||||||
|
@@ -177,8 +177,7 @@ public class Main {
|
||||||
|
}
|
||||||
|
|
||||||
|
// Spigot Start
|
||||||
|
- boolean eulaAgreed = Boolean.getBoolean( "com.mojang.eula.agree" );
|
||||||
|
- eulaAgreed = eulaAgreed || Boolean.getBoolean("Paper.isRunDev");
|
||||||
|
+ boolean eulaAgreed = Boolean.getBoolean( "com.mojang.eula.agree" ) || Boolean.getBoolean("Paper.isRunDev"); // Plazma
|
||||||
|
if ( eulaAgreed )
|
||||||
|
{
|
||||||
|
System.err.println( "You have used the Spigot command line EULA agreement flag." );
|
||||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java
|
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java
|
||||||
index 1ea3012995c738c67b31e997c138f824f9e69ba1..8ed00a650b712cbf4bc8796165a539d76d390d0f 100644
|
index cda4544ae96a4fcb5c6c4483df67a59f1b53fd27..54f2c5187322c6dea70c4e0e63cce2e68e7ac647 100644
|
||||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java
|
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java
|
||||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java
|
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java
|
||||||
@@ -120,7 +120,7 @@ public class DedicatedServerProperties extends Settings<DedicatedServerPropertie
|
@@ -130,15 +130,15 @@ public class DedicatedServerProperties extends Settings<DedicatedServerPropertie
|
||||||
this.levelName = this.get("level-name", "world");
|
|
||||||
this.serverPort = this.get("server-port", 25565);
|
|
||||||
this.announcePlayerAchievements = this.getLegacyBoolean("announce-player-achievements");
|
|
||||||
- this.enableQuery = this.get("enable-query", false);
|
|
||||||
+ this.enableQuery = this.get("enable-query", !Boolean.getBoolean("Plazma.disableConfigOptimization")); // Plazma - Optimize Default Configurations
|
|
||||||
this.queryPort = this.get("query.port", 25565);
|
|
||||||
this.enableRcon = this.get("enable-rcon", false);
|
|
||||||
this.rconPort = this.get("rcon.port", 25575);
|
|
||||||
@@ -129,15 +129,15 @@ public class DedicatedServerProperties extends Settings<DedicatedServerPropertie
|
|
||||||
this.allowNether = this.get("allow-nether", true);
|
this.allowNether = this.get("allow-nether", true);
|
||||||
this.spawnMonsters = this.get("spawn-monsters", true);
|
this.spawnMonsters = this.get("spawn-monsters", true);
|
||||||
this.useNativeTransport = this.get("use-native-transport", true);
|
this.useNativeTransport = this.get("use-native-transport", true);
|
||||||
- this.enableCommandBlock = this.get("enable-command-block", false);
|
- this.enableCommandBlock = this.get("enable-command-block", false);
|
||||||
- this.spawnProtection = this.get("spawn-protection", 16);
|
- this.spawnProtection = this.get("spawn-protection", 16);
|
||||||
+ this.enableCommandBlock = this.get("enable-command-block", !Boolean.getBoolean("Plazma.disableConfigOptimization")); // Plazma - Optimize Default Configurations
|
+ this.enableCommandBlock = this.get("enable-command-block", org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize()); // Plazma - Optimize default configurations
|
||||||
+ this.spawnProtection = this.get("spawn-protection", Boolean.getBoolean("Plazma.disableConfigOptimization") ? 16 : 0); // Plazma - Optimize Default Configurations
|
+ this.spawnProtection = this.get("spawn-protection", org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 0 : 16); // Plazma - Optimize default configurations
|
||||||
this.opPermissionLevel = this.get("op-permission-level", 4);
|
this.opPermissionLevel = this.get("op-permission-level", 4);
|
||||||
this.functionPermissionLevel = this.get("function-permission-level", 2);
|
this.functionPermissionLevel = this.get("function-permission-level", 2);
|
||||||
this.maxTickTime = this.get("max-tick-time", TimeUnit.MINUTES.toMillis(1L));
|
this.maxTickTime = this.get("max-tick-time", TimeUnit.MINUTES.toMillis(1L));
|
||||||
@@ -246,90 +262,99 @@ index 1ea3012995c738c67b31e997c138f824f9e69ba1..8ed00a650b712cbf4bc8796165a539d7
|
|||||||
this.rateLimitPacketsPerSecond = this.get("rate-limit", 0);
|
this.rateLimitPacketsPerSecond = this.get("rate-limit", 0);
|
||||||
- this.viewDistance = this.get("view-distance", 10);
|
- this.viewDistance = this.get("view-distance", 10);
|
||||||
- this.simulationDistance = this.get("simulation-distance", 10);
|
- this.simulationDistance = this.get("simulation-distance", 10);
|
||||||
+ this.viewDistance = this.get("view-distance", Boolean.getBoolean("Plazma.disableConfigOptimization") ? 10 : 7); // Plazma - Optimize Default Configurations
|
+ this.viewDistance = this.get("view-distance", org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 7 : 10); // Plazma - Optimize default configurations
|
||||||
+ this.simulationDistance = this.get("simulation-distance", Boolean.getBoolean("Plazma.disableConfigOptimization") ? 10 : 4); // Plazma - Optimize Default Configurations
|
+ this.simulationDistance = this.get("simulation-distance", org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 4 : 10); // Plazma - Optimize default configurations
|
||||||
this.maxPlayers = this.get("max-players", 20);
|
this.maxPlayers = this.get("max-players", 20);
|
||||||
this.networkCompressionThreshold = this.get("network-compression-threshold", 256);
|
this.networkCompressionThreshold = this.get("network-compression-threshold", 256);
|
||||||
this.broadcastRconToOps = this.get("broadcast-rcon-to-ops", true);
|
this.broadcastRconToOps = this.get("broadcast-rcon-to-ops", true);
|
||||||
@@ -145,7 +145,7 @@ public class DedicatedServerProperties extends Settings<DedicatedServerPropertie
|
@@ -146,7 +146,7 @@ public class DedicatedServerProperties extends Settings<DedicatedServerPropertie
|
||||||
this.maxWorldSize = this.get("max-world-size", (integer) -> {
|
this.maxWorldSize = this.get("max-world-size", (integer) -> {
|
||||||
return Mth.clamp(integer, 1, 29999984);
|
return Mth.clamp(integer, 1, 29999984);
|
||||||
}, 29999984);
|
}, 29999984);
|
||||||
- this.syncChunkWrites = this.get("sync-chunk-writes", true) && Boolean.getBoolean("Paper.enable-sync-chunk-writes"); // Paper - hide behind flag
|
- this.syncChunkWrites = this.get("sync-chunk-writes", true) && Boolean.getBoolean("Paper.enable-sync-chunk-writes"); // Paper - hide behind flag
|
||||||
+ this.syncChunkWrites = Boolean.getBoolean("Paper.enable-sync-chunk-writes"); // Paper - hide behind flag // Plazma - Optimize Default Configurations
|
+ this.syncChunkWrites = this.get("sync-chunk-writes", Boolean.getBoolean("Paper.enable-sync-chunk-writes")); // Paper - hide behind flag // Plazma - Optimize default configurations
|
||||||
this.enableJmxMonitoring = this.get("enable-jmx-monitoring", false);
|
this.enableJmxMonitoring = this.get("enable-jmx-monitoring", false);
|
||||||
this.enableStatus = this.get("enable-status", true);
|
this.enableStatus = this.get("enable-status", true);
|
||||||
this.hideOnlinePlayers = this.get("hide-online-players", false);
|
this.hideOnlinePlayers = this.get("hide-online-players", false);
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index a694d01b32bff939eb82d3c659158454af75225c..9760095f77b6425610f93abac467f92742eb2178 100644
|
index 3e8f42811e9254567f2522e68b6018704bd63ae2..f8805e11551fddfda44aa36ba4e83f3df2f87500 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -346,7 +346,7 @@ public final class CraftServer implements Server {
|
@@ -431,7 +431,7 @@ public final class CraftServer implements Server {
|
||||||
|
|
||||||
this.configuration = YamlConfiguration.loadConfiguration(this.getConfigFile());
|
this.configuration = YamlConfiguration.loadConfiguration(this.getConfigFile());
|
||||||
this.configuration.options().copyDefaults(true);
|
this.configuration.options().copyDefaults(true);
|
||||||
- this.configuration.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(getClass().getClassLoader().getResourceAsStream("configurations/bukkit.yml"), Charsets.UTF_8)));
|
- this.configuration.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(getClass().getClassLoader().getResourceAsStream("configurations/bukkit.yml"), Charsets.UTF_8)));
|
||||||
+ this.configuration.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(getClass().getClassLoader().getResourceAsStream(Boolean.getBoolean("Plazma.disableConfigOptimization") ? "configurations/bukkit.yml" : "configurations/bukkit_optimized.yml"), Charsets.UTF_8))); // Plazma - Optimize Default Configurations
|
+ this.configuration.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(getClass().getClassLoader().getResourceAsStream(org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? "configurations/bukkit_optimized.yml" : "configurations/bukkit.yml"), Charsets.UTF_8))); // Plazma - Optimize default configurations
|
||||||
ConfigurationSection legacyAlias = null;
|
ConfigurationSection legacyAlias = null;
|
||||||
if (!this.configuration.isString("aliases")) {
|
if (!this.configuration.isString("aliases")) {
|
||||||
legacyAlias = this.configuration.getConfigurationSection("aliases");
|
legacyAlias = this.configuration.getConfigurationSection("aliases");
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/PlazmaConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/PlazmaConfigurations.java
|
||||||
|
index 39db772735d57e12bbb26a6505ca7a5e360cdd78..eabd643bf096786285ee21e898b2bf8460cd5a26 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/PlazmaConfigurations.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/PlazmaConfigurations.java
|
||||||
|
@@ -302,7 +302,7 @@ public class PlazmaConfigurations extends Configurations<GlobalConfiguration, Le
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- public static boolean optimizeConfig() {
|
||||||
|
+ public static boolean doOptimize() {
|
||||||
|
return OPTIMIZE_CONFIG;
|
||||||
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||||
index ac238eeea791180b66677870401c0b756f0db07b..ce960bc620d84e56c4e7fc9b721fd45c4cfc4dac 100644
|
index d0d31002562e728fa1a6c9bc81baa4534f11d365..5f0b10932f8dda09131ba68207cbfea4715e0f33 100644
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||||
@@ -49,7 +49,10 @@ public class PurpurConfig {
|
@@ -49,6 +49,7 @@ public class PurpurConfig {
|
||||||
+ "join us in our Discord guild.\n"
|
+ "join us in our Discord guild.\n"
|
||||||
+ "\n"
|
+ "\n"
|
||||||
+ "Website: https://purpurmc.org \n"
|
+ "Website: https://purpurmc.org \n"
|
||||||
- + "Docs: https://purpurmc.org/docs \n";
|
+ + "Vanilla Food Properties: https://gist.github.com/BillyGalbreath/4fdfba991bd020e814eabf5143e3b225 \n" // Plazma
|
||||||
+ // Plazma start
|
+ "Docs: https://purpurmc.org/docs \n";
|
||||||
+ + "Docs: https://purpurmc.org/docs \n"
|
|
||||||
+ + "Vanilla Food Properties: https://gist.github.com/BillyGalbreath/4fdfba991bd020e814eabf5143e3b225 \n";
|
|
||||||
+ // Plazma end
|
|
||||||
private static File CONFIG_FILE;
|
private static File CONFIG_FILE;
|
||||||
public static YamlConfiguration config;
|
public static YamlConfiguration config;
|
||||||
|
@@ -241,7 +242,7 @@ public class PurpurConfig {
|
||||||
@@ -237,7 +240,7 @@ public class PurpurConfig {
|
|
||||||
laggingThreshold = getDouble("settings.lagging-threshold", laggingThreshold);
|
laggingThreshold = getDouble("settings.lagging-threshold", laggingThreshold);
|
||||||
}
|
}
|
||||||
|
|
||||||
- public static boolean useAlternateKeepAlive = false;
|
- public static boolean useAlternateKeepAlive = false;
|
||||||
+ public static boolean useAlternateKeepAlive = !Boolean.getBoolean("Plazma.disableConfigOptimization"); // Plazma - Optimize Default Configurations
|
+ public static boolean useAlternateKeepAlive = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize(); // Plazma - Optimize default configurations
|
||||||
private static void useAlternateKeepAlive() {
|
private static void useAlternateKeepAlive() {
|
||||||
useAlternateKeepAlive = getBoolean("settings.use-alternate-keepalive", useAlternateKeepAlive);
|
useAlternateKeepAlive = getBoolean("settings.use-alternate-keepalive", useAlternateKeepAlive);
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||||
index 9159e790533f06582a521f11103e6cbcbc72978b..ebe966834337740fa5f918bf66fc3be1c3f5c588 100644
|
index d4d9f748d259df8b6f4566efa21c15c470de5ba2..d65d3fd4572a4f5c9b3d2d4e2c0a907aae824cde 100644
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||||
@@ -425,7 +425,7 @@ public class PurpurWorldConfig {
|
@@ -423,7 +423,7 @@ public class PurpurWorldConfig {
|
||||||
public boolean playerInvulnerableWhileAcceptingResourcePack = false;
|
public boolean idleTimeoutTargetPlayer = true;
|
||||||
public String playerDeathExpDropEquation = "expLevel * 7";
|
public String playerDeathExpDropEquation = "expLevel * 7";
|
||||||
public int playerDeathExpDropMax = 100;
|
public int playerDeathExpDropMax = 100;
|
||||||
- public boolean teleportIfOutsideBorder = false;
|
- public boolean teleportIfOutsideBorder = false;
|
||||||
+ public boolean teleportIfOutsideBorder = !Boolean.getBoolean("Plazma.disableConfigOptimization"); // Plazma - Optimize Default Configurations
|
+ public boolean teleportIfOutsideBorder = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize(); // Plazma - Optimize default configurations
|
||||||
public boolean teleportOnNetherCeilingDamage = false;
|
public boolean teleportOnNetherCeilingDamage = false;
|
||||||
public boolean totemOfUndyingWorksInInventory = false;
|
public boolean totemOfUndyingWorksInInventory = false;
|
||||||
public boolean playerFixStuckPortal = false;
|
public boolean playerFixStuckPortal = false;
|
||||||
@@ -3026,7 +3026,7 @@ public class PurpurWorldConfig {
|
@@ -3066,7 +3066,7 @@ public class PurpurWorldConfig {
|
||||||
public boolean zombieJockeyOnlyBaby = true;
|
public boolean zombieJockeyOnlyBaby = true;
|
||||||
public double zombieJockeyChance = 0.05D;
|
public double zombieJockeyChance = 0.05D;
|
||||||
public boolean zombieJockeyTryExistingChickens = true;
|
public boolean zombieJockeyTryExistingChickens = true;
|
||||||
- public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
|
- public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
|
||||||
+ public boolean zombieAggressiveTowardsVillagerWhenLagging = Boolean.getBoolean("Plazma.disableConfigOptimization"); // Plazma - Optimize Default Configurations
|
+ public boolean zombieAggressiveTowardsVillagerWhenLagging = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize(); // Plazma - Optimize default configurations
|
||||||
public boolean zombieBypassMobGriefing = false;
|
public boolean zombieBypassMobGriefing = false;
|
||||||
public boolean zombieTakeDamageFromWater = false;
|
public boolean zombieTakeDamageFromWater = false;
|
||||||
public boolean zombieAlwaysDropExp = false;
|
public boolean zombieAlwaysDropExp = false;
|
||||||
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
||||||
index 5503ad6a93d331771a0e92c0da6adedf2ac81aff..0125edd56ff021c2c719965ff6eb921ba8c4935c 100644
|
index 5b5109e942b18418b3a3a0e2109fe4ef15045fe5..e24106f0d936375f200cb82339dc03f8f6f528e6 100644
|
||||||
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
||||||
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
||||||
@@ -146,14 +146,14 @@ public class SpigotWorldConfig
|
@@ -150,14 +150,14 @@ public class SpigotWorldConfig
|
||||||
public double itemMerge;
|
public double itemMerge;
|
||||||
private void itemMerge()
|
private void itemMerge()
|
||||||
{
|
{
|
||||||
- this.itemMerge = this.getDouble("merge-radius.item", 2.5 );
|
- this.itemMerge = this.getDouble("merge-radius.item", 2.5 );
|
||||||
+ this.itemMerge = this.getDouble("merge-radius.item", Boolean.getBoolean("Plazma.disableConfigOptimization") ? 2.5 : 3.5 ); // Plazma - Optimize Default Configurations
|
+ this.itemMerge = this.getDouble("merge-radius.item", org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 3.5 : 2.5 ); // Plazma - Optimize default configurations
|
||||||
this.log( "Item Merge Radius: " + this.itemMerge );
|
this.log( "Item Merge Radius: " + this.itemMerge );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -337,74 +362,74 @@ index 5503ad6a93d331771a0e92c0da6adedf2ac81aff..0125edd56ff021c2c719965ff6eb921b
|
|||||||
private void expMerge()
|
private void expMerge()
|
||||||
{
|
{
|
||||||
- this.expMerge = this.getDouble("merge-radius.exp", 3.0 );
|
- this.expMerge = this.getDouble("merge-radius.exp", 3.0 );
|
||||||
+ this.expMerge = this.getDouble("merge-radius.exp", Boolean.getBoolean("Plazma.disableConfigOptimization") ? 3.0 : 4.0 ); // Plazma - Optimize Default Configurations
|
+ this.expMerge = this.getDouble("merge-radius.exp", org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 4.0 : 3.0 ); // Plazma - Optimize default configurations
|
||||||
this.log( "Experience Merge Radius: " + this.expMerge );
|
this.log( "Experience Merge Radius: " + this.expMerge );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -192,7 +192,7 @@ public class SpigotWorldConfig
|
@@ -196,7 +196,7 @@ public class SpigotWorldConfig
|
||||||
public byte mobSpawnRange;
|
public byte mobSpawnRange;
|
||||||
private void mobSpawnRange()
|
private void mobSpawnRange()
|
||||||
{
|
{
|
||||||
- this.mobSpawnRange = (byte) getInt( "mob-spawn-range", 8 ); // Paper - Vanilla
|
- this.mobSpawnRange = (byte) getInt( "mob-spawn-range", 8 ); // Paper - Vanilla
|
||||||
+ this.mobSpawnRange = (byte) getInt( "mob-spawn-range", Boolean.getBoolean("Plazma.disableConfigOptimization") ? 8 : 3 ); // Paper - Vanilla // Plazma - Optimize Default Configurations
|
+ this.mobSpawnRange = (byte) getInt( "mob-spawn-range", org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 3 : 8 ); // Paper - Vanilla // Plazma - Optimize default configurations
|
||||||
this.log( "Mob Spawn Range: " + this.mobSpawnRange );
|
this.log( "Mob Spawn Range: " + this.mobSpawnRange );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,26 +203,26 @@ public class SpigotWorldConfig
|
@@ -207,26 +207,26 @@ public class SpigotWorldConfig
|
||||||
this.log( "Item Despawn Rate: " + this.itemDespawnRate );
|
this.log( "Item Despawn Rate: " + this.itemDespawnRate );
|
||||||
}
|
}
|
||||||
|
|
||||||
- public int animalActivationRange = 32;
|
- public int animalActivationRange = 32;
|
||||||
- public int monsterActivationRange = 32;
|
- public int monsterActivationRange = 32;
|
||||||
+ public int animalActivationRange = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 32 : 16; // Plazma - Optimize Default Configurations
|
+ public int animalActivationRange = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 16 : 32; // Plazma - Optimize default configurations
|
||||||
+ public int monsterActivationRange = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 32 : 24; // Plazma - Optimize Default Configurations
|
+ public int monsterActivationRange = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 24 : 32; // Plazma - Optimize default configurations
|
||||||
public int raiderActivationRange = 48;
|
public int raiderActivationRange = 48;
|
||||||
- public int miscActivationRange = 16;
|
- public int miscActivationRange = 16;
|
||||||
+ public int miscActivationRange = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 16 : 8; // Plazma - Optimize Default Configurations
|
+ public int miscActivationRange = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 8 : 16; // Plazma - Optimize default configurations
|
||||||
// Paper start
|
// Paper start
|
||||||
- public int flyingMonsterActivationRange = 32;
|
- public int flyingMonsterActivationRange = 32;
|
||||||
- public int waterActivationRange = 16;
|
- public int waterActivationRange = 16;
|
||||||
- public int villagerActivationRange = 32;
|
- public int villagerActivationRange = 32;
|
||||||
+ public int flyingMonsterActivationRange = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 32 : 48; // Plazma - Optimize Default Configurations
|
+ public int flyingMonsterActivationRange = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 48 : 32; // Plazma - Optimize default configurations
|
||||||
+ public int waterActivationRange = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 16 : 8; // Plazma - Optimize Default Configurations
|
+ public int waterActivationRange = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 8 : 16; // Plazma - Optimize default configurations
|
||||||
+ public int villagerActivationRange = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 32 : 16; // Plazma - Optimize Default Configurations
|
+ public int villagerActivationRange = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 16 : 32; // Plazma - Optimize default configurations
|
||||||
public int wakeUpInactiveAnimals = 4;
|
public int wakeUpInactiveAnimals = 4;
|
||||||
public int wakeUpInactiveAnimalsEvery = 60*20;
|
public int wakeUpInactiveAnimalsEvery = 60*20;
|
||||||
- public int wakeUpInactiveAnimalsFor = 5*20;
|
- public int wakeUpInactiveAnimalsFor = 5*20;
|
||||||
- public int wakeUpInactiveMonsters = 8;
|
- public int wakeUpInactiveMonsters = 8;
|
||||||
+ public int wakeUpInactiveAnimalsFor = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 5*20 : 40; // Plazma - Optimize Default Configurations
|
+ public int wakeUpInactiveAnimalsFor = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 40 : 100; // Plazma - Optimize default configurations
|
||||||
+ public int wakeUpInactiveMonsters = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 8 : 4; // Plazma - Optimize Default Configurations
|
+ public int wakeUpInactiveMonsters = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 4 : 8; // Plazma - Optimize default configurations
|
||||||
public int wakeUpInactiveMonstersEvery = 20*20;
|
public int wakeUpInactiveMonstersEvery = 20*20;
|
||||||
- public int wakeUpInactiveMonstersFor = 5*20;
|
- public int wakeUpInactiveMonstersFor = 5*20;
|
||||||
- public int wakeUpInactiveVillagers = 4;
|
- public int wakeUpInactiveVillagers = 4;
|
||||||
+ public int wakeUpInactiveMonstersFor = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 5*20 : 60; // Plazma - Optimize Default Configurations
|
+ public int wakeUpInactiveMonstersFor = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 60 : 100; // Plazma - Optimize default configurations
|
||||||
+ public int wakeUpInactiveVillagers = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 4 : 1; // Plazma - Optimize Default Configurations
|
+ public int wakeUpInactiveVillagers = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 1 : 4; // Plazma - Optimize default configurations
|
||||||
public int wakeUpInactiveVillagersEvery = 30*20;
|
public int wakeUpInactiveVillagersEvery = 30*20;
|
||||||
- public int wakeUpInactiveVillagersFor = 5*20;
|
- public int wakeUpInactiveVillagersFor = 5*20;
|
||||||
- public int wakeUpInactiveFlying = 8;
|
- public int wakeUpInactiveFlying = 8;
|
||||||
+ public int wakeUpInactiveVillagersFor = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 5*20 : 20; // Plazma - Optimize Default Configurations
|
+ public int wakeUpInactiveVillagersFor = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 20 : 100; // Plazma - Optimize default configurations
|
||||||
+ public int wakeUpInactiveFlying = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 8 : 1; // Plazma - Optimize Default Configurations
|
+ public int wakeUpInactiveFlying = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 1 : 8; // Plazma - Optimize default configurations
|
||||||
public int wakeUpInactiveFlyingEvery = 10*20;
|
public int wakeUpInactiveFlyingEvery = 10*20;
|
||||||
- public int wakeUpInactiveFlyingFor = 5*20;
|
- public int wakeUpInactiveFlyingFor = 5*20;
|
||||||
+ public int wakeUpInactiveFlyingFor = Boolean.getBoolean("Plazma.disableConfigOptimization") ? 5*20 : 60; // Plazma - Optimize Default Configurations
|
+ public int wakeUpInactiveFlyingFor = org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 60 : 100; // Plazma - Optimize default configurations
|
||||||
public int villagersWorkImmunityAfter = 5*20;
|
public int villagersWorkImmunityAfter = 5*20;
|
||||||
public int villagersWorkImmunityFor = 20;
|
public int villagersWorkImmunityFor = 20;
|
||||||
public boolean villagersActiveForPanic = true;
|
public boolean villagersActiveForPanic = true;
|
||||||
@@ -293,7 +293,7 @@ public class SpigotWorldConfig
|
@@ -299,7 +299,7 @@ public class SpigotWorldConfig
|
||||||
{
|
{
|
||||||
this.set( "ticks-per.hopper-check", 1 );
|
this.set( "ticks-per.hopper-check", 1 );
|
||||||
}
|
}
|
||||||
- this.hopperCheck = this.getInt( "ticks-per.hopper-check", 1 );
|
- this.hopperCheck = this.getInt( "ticks-per.hopper-check", 1 );
|
||||||
+ this.hopperCheck = this.getInt( "ticks-per.hopper-check", Boolean.getBoolean("Plazma.disableConfigOptimization") ? 1 : 8 ); // Plazma - Optimize Default Configurations
|
+ this.hopperCheck = this.getInt( "ticks-per.hopper-check", org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 8: 1 ); // Plazma - Optimize default configurations
|
||||||
this.hopperAmount = this.getInt( "hopper-amount", 1 );
|
this.hopperAmount = this.getInt( "hopper-amount", 1 );
|
||||||
this.hopperCanLoadChunks = this.getBoolean( "hopper-can-load-chunks", false );
|
this.hopperCanLoadChunks = this.getBoolean( "hopper-can-load-chunks", false );
|
||||||
this.log( "Hopper Transfer: " + this.hopperTransfer + " Hopper Check: " + this.hopperCheck + " Hopper Amount: " + this.hopperAmount + " Hopper Can Load Chunks: " + this.hopperCanLoadChunks );
|
this.log( "Hopper Transfer: " + this.hopperTransfer + " Hopper Check: " + this.hopperCheck + " Hopper Amount: " + this.hopperAmount + " Hopper Can Load Chunks: " + this.hopperCanLoadChunks );
|
||||||
@@ -303,7 +303,7 @@ public class SpigotWorldConfig
|
@@ -309,7 +309,7 @@ public class SpigotWorldConfig
|
||||||
public int tridentDespawnRate;
|
public int tridentDespawnRate;
|
||||||
private void arrowDespawnRate()
|
private void arrowDespawnRate()
|
||||||
{
|
{
|
||||||
- this.arrowDespawnRate = this.getInt( "arrow-despawn-rate", 1200 );
|
- this.arrowDespawnRate = this.getInt( "arrow-despawn-rate", 1200 );
|
||||||
+ this.arrowDespawnRate = this.getInt( "arrow-despawn-rate", Boolean.getBoolean("Plazma.disableConfigOptimization") ? 1200 : 300 ); // Plazma - Optimize Default Configurations
|
+ this.arrowDespawnRate = this.getInt( "arrow-despawn-rate", org.plazmamc.plazma.configurations.PlazmaConfigurations.doOptimize() ? 300 : 1200 ); // Plazma - Optimize default configurations
|
||||||
this.tridentDespawnRate = this.getInt( "trident-despawn-rate", this.arrowDespawnRate );
|
this.tridentDespawnRate = this.getInt( "trident-despawn-rate", this.arrowDespawnRate );
|
||||||
this.log( "Arrow Despawn Rate: " + this.arrowDespawnRate + " Trident Respawn Rate:" + this.tridentDespawnRate );
|
this.log( "Arrow Despawn Rate: " + this.arrowDespawnRate + " Trident Respawn Rate:" + this.tridentDespawnRate );
|
||||||
}
|
}
|
||||||
@@ -1,30 +1,27 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: AlphaKR93 <alphakr93@gmail.com>
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
Date: Fri, 10 Mar 2023 21:45:37 +0900
|
Date: Wed, 27 Sep 2023 16:55:12 +0900
|
||||||
Subject: [PATCH] Console log tweaks
|
Subject: [PATCH] Console logging tweaks
|
||||||
|
|
||||||
[Offine Warning Configuration Patch]
|
|
||||||
Original by Irochi <me@irochi.moe>
|
|
||||||
Licensed under the GPL 3.0
|
|
||||||
|
|
||||||
diff --git a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java
|
diff --git a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java
|
||||||
index 951a7df30bd70bb3051c04f592529d560be6948e..461dbcac2f1265be7b23960f4422f69d5c8c42a9 100644
|
index e4fd372a1d585887287253a02531cd192929377b..dae0b0e1288afe0d8eb70d0e8e2db152aad42bf4 100644
|
||||||
--- a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java
|
--- a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java
|
||||||
+++ b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java
|
+++ b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java
|
||||||
@@ -353,7 +353,7 @@ public final class ChatProcessor {
|
@@ -355,7 +355,7 @@ public final class ChatProcessor {
|
||||||
|
|
||||||
private void sendToServer(final ChatType.Bound chatType, final @Nullable Function<Audience, net.minecraft.network.chat.Component> msgFunction) {
|
private void sendToServer(final ChatType.Bound chatType, final @Nullable Function<Audience, net.minecraft.network.chat.Component> msgFunction) {
|
||||||
final PlayerChatMessage toConsoleMessage = msgFunction == null ? ChatProcessor.this.message : ChatProcessor.this.message.withUnsignedContent(msgFunction.apply(ChatProcessor.this.server.console));
|
final PlayerChatMessage toConsoleMessage = msgFunction == null ? ChatProcessor.this.message : ChatProcessor.this.message.withUnsignedContent(msgFunction.apply(ChatProcessor.this.server.console));
|
||||||
- ChatProcessor.this.server.logChatMessage(toConsoleMessage.decoratedContent(), chatType, ChatProcessor.this.server.getPlayerList().verifyChatTrusted(toConsoleMessage) ? null : "Not Secure");
|
- ChatProcessor.this.server.logChatMessage(toConsoleMessage.decoratedContent(), chatType, ChatProcessor.this.server.getPlayerList().verifyChatTrusted(toConsoleMessage) ? null : "Not Secure");
|
||||||
+ ChatProcessor.this.server.logChatMessage(toConsoleMessage.decoratedContent(), chatType, ChatProcessor.this.server.getPlayerList().verifyChatTrusted(toConsoleMessage) || !org.plazmamc.plazma.configurations.GlobalConfiguration.get().consoleLogs.enableSecureChatMarker ? null : "Not Secure");
|
+ ChatProcessor.this.server.logChatMessage(toConsoleMessage.decoratedContent(), chatType, (!org.plazmamc.plazma.configurations.GlobalConfiguration.get().consoleLogs.notSecurePrefix || ChatProcessor.this.server.getPlayerList().verifyChatTrusted(toConsoleMessage)) ? null : "Not Secure"); // Plazma
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
index 429ccd583ecd136a63862e94b8eb36b371e28d0f..efcee39cd7154493de04ca903edbd32b5901b191 100644
|
index a970e00482952318c258fc406cb7c39a229b65bc..879c090d9c4574a2cd45a0eb1bf9cb171834d940 100644
|
||||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
@@ -179,16 +179,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -180,16 +180,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
DedicatedServer.LOGGER.warn("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\"");
|
DedicatedServer.LOGGER.warn("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\"");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,26 +38,26 @@ index 429ccd583ecd136a63862e94b8eb36b371e28d0f..efcee39cd7154493de04ca903edbd32b
|
|||||||
DedicatedServer.LOGGER.info("Loading properties");
|
DedicatedServer.LOGGER.info("Loading properties");
|
||||||
DedicatedServerProperties dedicatedserverproperties = this.settings.getProperties();
|
DedicatedServerProperties dedicatedserverproperties = this.settings.getProperties();
|
||||||
|
|
||||||
@@ -320,7 +310,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -318,6 +308,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
String proxyFlavor = (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) ? "Velocity" : "BungeeCord";
|
String proxyFlavor = (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) ? "Velocity" : "BungeeCord";
|
||||||
String proxyLink = (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) ? "https://docs.papermc.io/velocity/security" : "http://www.spigotmc.org/wiki/firewall-guide/";
|
String proxyLink = (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) ? "https://docs.papermc.io/velocity/security" : "http://www.spigotmc.org/wiki/firewall-guide/";
|
||||||
// Paper end
|
// Paper end
|
||||||
- if (!this.usesAuthentication()) {
|
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().consoleLogs.offlineWarnings) // Plazma - Console logging tweaks
|
||||||
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().consoleLogs.enableOfflineWarnings && !this.usesAuthentication()) { // Plazma
|
if (!this.usesAuthentication()) {
|
||||||
DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!");
|
DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!");
|
||||||
DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware.");
|
DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware.");
|
||||||
// Spigot start
|
@@ -331,9 +322,21 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
@@ -333,9 +323,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
|
||||||
DedicatedServer.LOGGER.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.");
|
DedicatedServer.LOGGER.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.");
|
||||||
}
|
}
|
||||||
// Spigot end
|
// Spigot end
|
||||||
- DedicatedServer.LOGGER.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file.");
|
- DedicatedServer.LOGGER.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file.");
|
||||||
+ DedicatedServer.LOGGER.warn("To change this, set \"online-mode\" to \"true\" in the \"server.properties\" file or set \"console-logs.offline-warning\" to \"false\" in the \"plazma.yml\" file."); // Plazma
|
+ DedicatedServer.LOGGER.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file or set \"console-logs.offline-warning\" to \"false\" in the config/plazma-global.yml file."); // Plazma
|
||||||
}
|
}
|
||||||
|
|
||||||
+ // Plazma start - Moved down
|
+ // Plazma start - Console logging tweaks
|
||||||
|
+ // Moved down
|
||||||
+ // Paper start - detect running as root
|
+ // Paper start - detect running as root
|
||||||
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().consoleLogs.enableRootUserWarnings && io.papermc.paper.util.ServerEnvironment.userIsRootOrAdmin()) {
|
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().consoleLogs.rootUserWarnings && io.papermc.paper.util.ServerEnvironment.userIsRootOrAdmin()) {
|
||||||
+ DedicatedServer.LOGGER.warn("****************************");
|
+ DedicatedServer.LOGGER.warn("****************************");
|
||||||
+ DedicatedServer.LOGGER.warn("YOU ARE RUNNING THIS SERVER AS AN ADMINISTRATIVE OR ROOT USER. THIS IS NOT ADVISED.");
|
+ DedicatedServer.LOGGER.warn("YOU ARE RUNNING THIS SERVER AS AN ADMINISTRATIVE OR ROOT USER. THIS IS NOT ADVISED.");
|
||||||
+ DedicatedServer.LOGGER.warn("YOU ARE OPENING YOURSELF UP TO POTENTIAL RISKS WHEN DOING THIS.");
|
+ DedicatedServer.LOGGER.warn("YOU ARE OPENING YOURSELF UP TO POTENTIAL RISKS WHEN DOING THIS.");
|
||||||
@@ -73,29 +70,33 @@ index 429ccd583ecd136a63862e94b8eb36b371e28d0f..efcee39cd7154493de04ca903edbd32b
|
|||||||
if (!OldUsersConverter.serverReadyAfterUserconversion(this)) {
|
if (!OldUsersConverter.serverReadyAfterUserconversion(this)) {
|
||||||
return false;
|
return false;
|
||||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
index 33d4c1af86382cc3343d5db42283b27f69f52374..030166f46b2ce23976a679685ffccf8b5439ce48 100644
|
index 5c38df8170033dbfee267520991a3cc3285d219e..58cc1bed851994fb591e9b832b98d25eda153b47 100644
|
||||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
@@ -1431,7 +1431,7 @@ public abstract class PlayerList {
|
@@ -1440,7 +1440,7 @@ public abstract class PlayerList {
|
||||||
}
|
}
|
||||||
public void broadcastChatMessage(PlayerChatMessage message, Predicate<ServerPlayer> shouldSendFiltered, @Nullable ServerPlayer sender, ChatType.Bound params, @Nullable Function<net.kyori.adventure.audience.Audience, Component> unsignedFunction) {
|
public void broadcastChatMessage(PlayerChatMessage message, Predicate<ServerPlayer> shouldSendFiltered, @Nullable ServerPlayer sender, ChatType.Bound params, @Nullable Function<net.kyori.adventure.audience.Audience, Component> unsignedFunction) {
|
||||||
// Paper end
|
// Paper end
|
||||||
- boolean flag = this.verifyChatTrusted(message);
|
- boolean flag = this.verifyChatTrusted(message);
|
||||||
+ boolean flag = this.verifyChatTrusted(message) || !org.plazmamc.plazma.configurations.GlobalConfiguration.get().consoleLogs.enableSecureChatMarker;
|
+ boolean flag = !org.plazmamc.plazma.configurations.GlobalConfiguration.get().consoleLogs.notSecurePrefix || this.verifyChatTrusted(message); // Plazma
|
||||||
|
|
||||||
this.server.logChatMessage((unsignedFunction == null ? message.decoratedContent() : unsignedFunction.apply(this.server.console)), params, flag ? null : "Not Secure"); // Paper
|
this.server.logChatMessage((unsignedFunction == null ? message.decoratedContent() : unsignedFunction.apply(this.server.console)), params, flag ? null : "Not Secure"); // Paper
|
||||||
OutgoingChatMessage outgoingchatmessage = OutgoingChatMessage.create(message);
|
OutgoingChatMessage outgoingchatmessage = OutgoingChatMessage.create(message);
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
index 3c70653b720d3d55be199e000e89c627b90e65da..ba542542cbab63b0764d437049123a76ccaca716 100644
|
index d506e0c2b37f91e46e682652bd134ad91db28f84..44df2c0a1ed3d006b455ba2a47d6bc9059d804e1 100644
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
@@ -24,6 +24,9 @@ public class GlobalConfiguration extends ConfigurationPart {
|
@@ -40,4 +40,13 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||||
public ConsoleLogs consoleLogs;
|
public class Player extends ConfigurationPart {
|
||||||
public class ConsoleLogs extends ConfigurationPart {
|
|
||||||
|
|
||||||
+ public boolean enableOfflineWarnings = true;
|
|
||||||
+ public boolean enableRootUserWarnings = true;
|
|
||||||
+ public boolean enableSecureChatMarker = DO_OPTIMIZE;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
+
|
||||||
|
+ public ConsoleLogs consoleLogs;
|
||||||
|
+ public class ConsoleLogs extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ public boolean offlineWarnings = true;
|
||||||
|
+ public boolean rootUserWarnings = true;
|
||||||
|
+ public boolean notSecurePrefix = true;
|
||||||
|
+
|
||||||
|
+ }
|
||||||
}
|
}
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: IPECTER <ipectert@gmail.com>
|
|
||||||
Date: Thu, 23 Mar 2023 14:32:26 +0900
|
|
||||||
Subject: [PATCH] Implement ChunkSending
|
|
||||||
|
|
||||||
Original: someaddons/chunksending
|
|
||||||
Copyright (C) 2023 someaddons
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkHolder.java b/src/main/java/net/minecraft/server/level/ChunkHolder.java
|
|
||||||
index 904fcdeb7937d36208cc9a8d5eca9ef3a5b2cd9e..7f749579fe056a8436e6625204ae31f1fcc15f32 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/level/ChunkHolder.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ChunkHolder.java
|
|
||||||
@@ -362,15 +362,14 @@ public class ChunkHolder {
|
|
||||||
}
|
|
||||||
|
|
||||||
Object[] backingSet = players.getBackingSet();
|
|
||||||
- for (int i = 0, len = backingSet.length; i < len; ++i) {
|
|
||||||
- if (!(backingSet[i] instanceof ServerPlayer player)) {
|
|
||||||
- continue;
|
|
||||||
- }
|
|
||||||
- if (!this.chunkMap.playerChunkManager.isChunkSent(player, this.pos.x, this.pos.z, onlyOnWatchDistanceEdge)) {
|
|
||||||
- continue;
|
|
||||||
- }
|
|
||||||
+ // Plazma start - Implement ChunkSending
|
|
||||||
+ for (Object o : backingSet) {
|
|
||||||
+ if (!(o instanceof ServerPlayer player)
|
|
||||||
+ || !this.chunkMap.playerChunkManager.isChunkSent(player, this.pos.x, this.pos.z, onlyOnWatchDistanceEdge)
|
|
||||||
+ || (this.chunkMap.level.plazmaLevelConfiguration().chunkSending.enabled && player.attachToPending(pos, packet))) continue;
|
|
||||||
player.connection.send(packet);
|
|
||||||
}
|
|
||||||
+ // Plazma end
|
|
||||||
// Paper end - per player view distance
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
||||||
index 8a4be66f967dfd6b57ab542ae9b06c840647486d..29c46144de1aad31b997ee5000114e6f33f1a1f7 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
||||||
@@ -728,8 +728,36 @@ public class ServerPlayer extends Player {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Purpur end
|
|
||||||
+ // Plazma start - Implement ChunkSending
|
|
||||||
+ if (this.level.plazmaLevelConfiguration().chunkSending.enabled) {
|
|
||||||
+ if (chunksToSend.isEmpty()) return;
|
|
||||||
+
|
|
||||||
+ if (disconnected) {
|
|
||||||
+ chunksToSend.clear();
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ final List<java.util.Map.Entry<ChunkPos, List<Packet<?>>>> packets = new java.util.ArrayList<>(chunksToSend.entrySet());
|
|
||||||
+ packets.sort(java.util.Comparator.comparingDouble(e -> e.getKey().getMiddleBlockPosition(getBlockY()).distSqr(blockPosition())));
|
|
||||||
+
|
|
||||||
+ for (int i = 0; i < packets.size() && i < this.level.plazmaLevelConfiguration().chunkSending.maxChunksPerTick; i++) {
|
|
||||||
+ final java.util.Map.Entry<ChunkPos, List<Packet<?>>> entry = packets.get(i);
|
|
||||||
+ for (final Packet<?> packet : entry.getValue()) {
|
|
||||||
+ connection.send(packet);
|
|
||||||
+ }
|
|
||||||
+ chunksToSend.remove(entry.getKey());
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
+ public boolean attachToPending(final ChunkPos pos, final Packet<?> packet) {
|
|
||||||
+ final List<Packet<?>> packetList = chunksToSend.get(pos);
|
|
||||||
+ if (packetList == null) return false;
|
|
||||||
+ packetList.add(packet);
|
|
||||||
+ return true;
|
|
||||||
+ }
|
|
||||||
+ // Plazma end
|
|
||||||
+
|
|
||||||
public void doTick() {
|
|
||||||
try {
|
|
||||||
if (valid && !this.isSpectator() || !this.touchingUnloadedChunk()) { // Paper - don't tick dead players that are not in the world currently (pending respawn)
|
|
||||||
@@ -2356,7 +2384,14 @@ public class ServerPlayer extends Player {
|
|
||||||
return true; // Paper
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Plazma start - Implement ChunkSending
|
|
||||||
+ private final java.util.Map<ChunkPos, List<Packet<?>>> chunksToSend = java.util.Collections.synchronizedMap(new java.util.HashMap<>());
|
|
||||||
public void trackChunk(ChunkPos chunkPos, Packet<?> chunkDataPacket) {
|
|
||||||
+ if (this.level.plazmaLevelConfiguration().chunkSending.enabled) {
|
|
||||||
+ List<Packet<?>> packetList = chunksToSend.computeIfAbsent(chunkPos, k -> new java.util.ArrayList<>());
|
|
||||||
+ packetList.add(chunkDataPacket);
|
|
||||||
+ }
|
|
||||||
+ // Plazma end
|
|
||||||
this.connection.send(chunkDataPacket);
|
|
||||||
// Paper start
|
|
||||||
if(io.papermc.paper.event.packet.PlayerChunkLoadEvent.getHandlerList().getRegisteredListeners().length > 0){
|
|
||||||
@@ -1,32 +1,31 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
Date: Thu, 23 Mar 2023 21:20:20 +0900
|
Date: Wed, 27 Sep 2023 16:59:14 +0900
|
||||||
Subject: [PATCH] Add option to allow any usernames
|
Subject: [PATCH] Add option to allow any usernames
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||||
index f719f8aafe7c75e2ef8fcb05f556a8d6bd94b9a0..06ff5dd9e39e2be8dd8397a764813111019ceaed 100644
|
index b875f4af9dcb45bcad0ee59a958442ba673268fe..d38685f82d2e6c4e71179bf3a85a8b183aa6c44b 100644
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||||
@@ -239,7 +239,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
@@ -161,6 +161,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||||
@Override
|
@Override
|
||||||
public void handleHello(ServerboundHelloPacket packet) {
|
public void handleHello(ServerboundHelloPacket packet) {
|
||||||
Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet", new Object[0]);
|
Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet", new Object[0]);
|
||||||
- Validate.validState(ServerLoginPacketListenerImpl.isValidUsername(packet.name()), "Invalid characters in username", new Object[0]);
|
+ if (!org.plazmamc.plazma.configurations.GlobalConfiguration.get().player.allowAnyUsername) // Plazma - Add option to allow any usernames
|
||||||
+ if (!org.plazmamc.plazma.configurations.GlobalConfiguration.get().player.allowAnyUsername) Validate.validState(ServerLoginPacketListenerImpl.isValidUsername(packet.name()), "Invalid characters in username", new Object[0]); // Plazma
|
Validate.validState(ServerLoginPacketListenerImpl.isValidUsername(packet.name()), "Invalid characters in username", new Object[0]);
|
||||||
// Paper start - validate usernames
|
// Paper start - validate usernames
|
||||||
if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() && io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.performUsernameValidation) {
|
if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() && io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.performUsernameValidation) {
|
||||||
if (!this.iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation && !validateUsername(packet.name())) {
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
index 3590442906a3f1cf27f621a1e093c1c4cc0887ac..b9a04a8042f1bedaeb27681f84f9e2df7cf1794d 100644
|
index 44df2c0a1ed3d006b455ba2a47d6bc9059d804e1..00c95194788d56f539d1c75e9a1ce48e950c096c 100644
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
@@ -33,7 +33,7 @@ public class GlobalConfiguration extends ConfigurationPart {
|
@@ -39,6 +39,8 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||||
public Player player;
|
public Player player;
|
||||||
public class Player extends ConfigurationPart {
|
public class Player extends ConfigurationPart {
|
||||||
|
|
||||||
-
|
|
||||||
+ public boolean allowAnyUsername = false;
|
+ public boolean allowAnyUsername = false;
|
||||||
|
+
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public ConsoleLogs consoleLogs;
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <alphakr93@gmail.com>
|
|
||||||
Date: Fri, 10 Mar 2023 20:35:27 +0900
|
|
||||||
Subject: [PATCH] Console Log Configuration
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
index 6714947455c1e4c887a5f13ba1a3aeb57324ee0a..3c70653b720d3d55be199e000e89c627b90e65da 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
@@ -20,4 +20,10 @@ public class GlobalConfiguration extends ConfigurationPart {
|
|
||||||
|
|
||||||
@Setting(Configuration.VERSION_FIELD)
|
|
||||||
public int version = CURRENT_VERSION;
|
|
||||||
+
|
|
||||||
+ public ConsoleLogs consoleLogs;
|
|
||||||
+ public class ConsoleLogs extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
@@ -5,170 +5,165 @@ Subject: [PATCH] Add missing purpur configuration options
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
|
||||||
index e95540122ae6a486ce12a5f50fb4d2d073239554..86c9b549e3e75adf9bd5562c4c8d303cf2080e45 100644
|
index c783ce59ea766e6c46a3313628b961f27e01ee8b..3f36eedeae4b94ca684c57f4ec8d2d1ab5c51aae 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
|
--- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
|
+++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
|
||||||
@@ -154,6 +154,23 @@ public class Allay extends PathfinderMob implements InventoryCarrier {
|
@@ -150,6 +150,23 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS
|
||||||
|
protected void registerGoals() {
|
||||||
|
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
|
||||||
}
|
}
|
||||||
// Purpur end
|
+
|
||||||
|
+ // Plazma start
|
||||||
+ // Plazma start - Add missing purpur config options
|
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public boolean isSensitiveToWater() {
|
+ public boolean isSensitiveToWater() {
|
||||||
+ return level.purpurConfig.allayTakeDamageFromWater;
|
+ return level().purpurConfig.allayTakeDamageFromWater;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public boolean isAlwaysExperienceDropper() {
|
+ public boolean isAlwaysExperienceDropper() {
|
||||||
+ return level.purpurConfig.allayAlwaysDropExp;
|
+ return level().purpurConfig.allayAlwaysDropExp;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public void initAttributes() {
|
+ public void initAttributes() {
|
||||||
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(level.purpurConfig.allayMaxHealth);
|
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(level().purpurConfig.allayMaxHealth);
|
||||||
+ }
|
+ }
|
||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
+
|
// Purpur end
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Brain.Provider<Allay> brainProvider() {
|
|
||||||
return Brain.provider(Allay.MEMORY_TYPES, Allay.SENSOR_TYPES);
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
||||||
index 31922ac1139f34e0da61a719e3645c1aaa188890..94536f25980cf642edbfcf0c3d338a0172e0b77f 100644
|
index 1d84135c709a90843b1ee34fb47508e78a7ce95d..c97ef420581803b569d130b58a97f67d1fee54f2 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
||||||
@@ -90,6 +90,23 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
|
@@ -95,6 +95,18 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
|
||||||
|
public int getPurpurBreedTime() {
|
||||||
|
return this.level().purpurConfig.camelBreedingTicks;
|
||||||
}
|
}
|
||||||
// Purpur end
|
|
||||||
|
|
||||||
+ // Plazma start - Add missing purpur config options
|
|
||||||
+ @Override
|
|
||||||
+ public boolean dismountsUnderwater() {
|
|
||||||
+ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.camelRidableInWater;
|
|
||||||
+ }
|
|
||||||
+
|
+
|
||||||
|
+ // Plazma start
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public boolean isSensitiveToWater() {
|
+ public boolean isSensitiveToWater() {
|
||||||
+ return level.purpurConfig.camelTakeDamageFromWater;
|
+ return level().purpurConfig.camelTakeDamageFromWater;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public boolean isAlwaysExperienceDropper() {
|
+ public boolean isAlwaysExperienceDropper() {
|
||||||
+ return level.purpurConfig.camelAlwaysDropExp;
|
+ return level().purpurConfig.camelAlwaysDropExp;
|
||||||
+ }
|
+ }
|
||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
+
|
// Purpur end
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addAdditionalSaveData(CompoundTag nbt) {
|
|
||||||
super.addAdditionalSaveData(nbt);
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
||||||
index c355aaed76663d37a5da8b2f49f9808828b4ef9b..dcc1b75361fe9eb250e3946e54454253a8f0e788 100644
|
index 9417ce67cc231d5bfa6813f78ec27196eed423c8..4e471e4a259a64c44da5ab450f0137691428ff6a 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
||||||
@@ -145,6 +145,23 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
|
@@ -136,6 +136,23 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
|
||||||
|
public float getJumpPower() {
|
||||||
|
return (getRider() != null && isControllable()) ? level().purpurConfig.frogRidableJumpHeight * this.getBlockJumpFactor() : super.getJumpPower();
|
||||||
}
|
}
|
||||||
// Purpur end
|
+
|
||||||
|
+ // Plazma start
|
||||||
+ // Plazma start - Add missing purpur config options
|
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public boolean isSensitiveToWater() {
|
+ public boolean isSensitiveToWater() {
|
||||||
+ return level.purpurConfig.frogTakeDamageFromWater;
|
+ return level().purpurConfig.frogTakeDamageFromWater;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public boolean isAlwaysExperienceDropper() {
|
+ public boolean isAlwaysExperienceDropper() {
|
||||||
+ return level.purpurConfig.frogAlwaysDropExp;
|
+ return level().purpurConfig.frogAlwaysDropExp;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public void initAttributes() {
|
+ public void initAttributes() {
|
||||||
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(level.purpurConfig.frogMaxHealth);
|
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(level().purpurConfig.frogMaxHealth);
|
||||||
+ }
|
+ }
|
||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
+
|
// Purpur end
|
||||||
@Override
|
|
||||||
protected Brain.Provider<Frog> brainProvider() {
|
public int getPurpurBreedTime() {
|
||||||
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
|
||||||
index aadc6743deb195ac3368548a75be641ffd3da404..90314f86e17ac7756f8211519fc5cde5a411677d 100644
|
index 6b012bea26e8ef0c04571f43da67f6e108188830..7c816b879d47a1b8a480f4237d1ff0e11df4c98e 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
|
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
|
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
|
||||||
@@ -89,6 +89,23 @@ public class Tadpole extends AbstractFish {
|
@@ -87,6 +87,23 @@ public class Tadpole extends AbstractFish {
|
||||||
|
protected void registerGoals() {
|
||||||
|
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
|
||||||
}
|
}
|
||||||
// Purpur end
|
+
|
||||||
|
+ // Plazma start
|
||||||
+ // Plazma start - Add missing purpur config options
|
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public boolean isSensitiveToWater() {
|
+ public boolean isSensitiveToWater() {
|
||||||
+ return level.purpurConfig.tadpoleTakeDamageFromWater;
|
+ return level().purpurConfig.tadpoleTakeDamageFromWater;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public boolean isAlwaysExperienceDropper() {
|
+ public boolean isAlwaysExperienceDropper() {
|
||||||
+ return level.purpurConfig.tadpoleAlwaysDropExp;
|
+ return level().purpurConfig.tadpoleAlwaysDropExp;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public void initAttributes() {
|
+ public void initAttributes() {
|
||||||
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(level.purpurConfig.tadpoleMaxHealth);
|
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(level().purpurConfig.tadpoleMaxHealth);
|
||||||
+ }
|
+ }
|
||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
+
|
// Purpur end
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected PathNavigation createNavigation(Level world) {
|
|
||||||
return new WaterBoundPathNavigation(this, world);
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
||||||
index 6e7c0e95b27c41bf12da1beb3458830ce27c6029..24de1e98661541f36715c59de1487959fb53b4db 100644
|
index dcb10e2ea1e0c7d0479adae5bc2ff57ece172aad..795c93352dfa69fad0e034a8377eceb6dc1e81da 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
||||||
@@ -108,6 +108,18 @@ public class Sniffer extends Animal {
|
@@ -106,6 +106,18 @@ public class Sniffer extends Animal {
|
||||||
|
public boolean isControllable() {
|
||||||
|
return level().purpurConfig.snifferControllable;
|
||||||
}
|
}
|
||||||
// Purpur end
|
+
|
||||||
|
+ // Plazma start
|
||||||
+ // Plazma start - Add missing purpur config options
|
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public boolean isSensitiveToWater() {
|
+ public boolean isSensitiveToWater() {
|
||||||
+ return level.purpurConfig.snifferTakeDamageFromWater;
|
+ return level().purpurConfig.snifferTakeDamageFromWater;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public boolean isAlwaysExperienceDropper() {
|
+ public boolean isAlwaysExperienceDropper() {
|
||||||
+ return level.purpurConfig.snifferAlwaysDropExp;
|
+ return level().purpurConfig.snifferAlwaysDropExp;
|
||||||
+ }
|
+ }
|
||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
+
|
|
||||||
// CraftBukkit start - SPIGOT-7295: moved from constructor to appropriate location
|
|
||||||
@Override
|
|
||||||
protected void defineSynchedData() {
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
|
||||||
index 69e5b4b6c8d5725bc2fb7cd819219e4ff9df45bd..41301ad56fbcbe0f13447bd3b515d15bf58554c4 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
|
||||||
@@ -146,6 +146,23 @@ public class Warden extends Monster implements VibrationListener.VibrationListen
|
|
||||||
}
|
|
||||||
// Purpur end
|
// Purpur end
|
||||||
|
|
||||||
+ // Plazma start - Add missing purpur config options
|
@Override
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
||||||
|
index 5e66c2bd3807619cadee5b7081d93d21886e2806..66d47c1613532189e761c0f48d893652c17fe240 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
||||||
|
@@ -146,6 +146,23 @@ public class Warden extends Monster implements VibrationSystem {
|
||||||
|
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
|
||||||
|
this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ // Plazma start
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public boolean isSensitiveToWater() {
|
+ public boolean isSensitiveToWater() {
|
||||||
+ return level.purpurConfig.wardenTakeDamageFromWater;
|
+ return level().purpurConfig.wardenTakeDamageFromWater;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public boolean isAlwaysExperienceDropper() {
|
+ public boolean isAlwaysExperienceDropper() {
|
||||||
+ return level.purpurConfig.wardenAlwaysDropExp;
|
+ return level().purpurConfig.wardenAlwaysDropExp;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public void initAttributes() {
|
+ public void initAttributes() {
|
||||||
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(level.purpurConfig.wardenMaxHealth);
|
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(level().purpurConfig.wardenMaxHealth);
|
||||||
+ }
|
+ }
|
||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
+
|
// Purpur end
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
|
||||||
return new ClientboundAddEntityPacket(this, this.hasPose(Pose.EMERGING) ? 1 : 0);
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/vehicle/ChestBoat.java b/src/main/java/net/minecraft/world/entity/vehicle/ChestBoat.java
|
diff --git a/src/main/java/net/minecraft/world/entity/vehicle/ChestBoat.java b/src/main/java/net/minecraft/world/entity/vehicle/ChestBoat.java
|
||||||
index 3a720375c3daa961a34363f78c2c51d301c3fa06..90bd114feb0924669e61f92f301cdcf7f69405a4 100644
|
index e88c39d405fc7068db64ad34a03dec8d559e749e..bb5d42ca73722f3a02154ed889625ded2ac63e6f 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/vehicle/ChestBoat.java
|
--- a/src/main/java/net/minecraft/world/entity/vehicle/ChestBoat.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/vehicle/ChestBoat.java
|
+++ b/src/main/java/net/minecraft/world/entity/vehicle/ChestBoat.java
|
||||||
@@ -41,7 +41,7 @@ public class ChestBoat extends Boat implements HasCustomInventoryScreen, Contain
|
@@ -41,7 +41,7 @@ public class ChestBoat extends Boat implements HasCustomInventoryScreen, Contain
|
||||||
@@ -176,7 +171,7 @@ index 3a720375c3daa961a34363f78c2c51d301c3fa06..90bd114feb0924669e61f92f301cdcf7
|
|||||||
public ChestBoat(EntityType<? extends Boat> type, Level world) {
|
public ChestBoat(EntityType<? extends Boat> type, Level world) {
|
||||||
super(type, world);
|
super(type, world);
|
||||||
- this.itemStacks = NonNullList.withSize(27, ItemStack.EMPTY);
|
- this.itemStacks = NonNullList.withSize(27, ItemStack.EMPTY);
|
||||||
+ this.itemStacks = NonNullList.withSize(org.purpurmc.purpur.PurpurConfig.chestBoatRows * 9, ItemStack.EMPTY); // Plazma - Add missing purpur config options
|
+ this.itemStacks = NonNullList.withSize(org.purpurmc.purpur.PurpurConfig.chestBoatRows * 9, ItemStack.EMPTY); // Plazma
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChestBoat(Level world, double d0, double d1, double d2) {
|
public ChestBoat(Level world, double d0, double d1, double d2) {
|
||||||
@@ -185,35 +180,35 @@ index 3a720375c3daa961a34363f78c2c51d301c3fa06..90bd114feb0924669e61f92f301cdcf7
|
|||||||
@Override
|
@Override
|
||||||
public int getContainerSize() {
|
public int getContainerSize() {
|
||||||
- return 27;
|
- return 27;
|
||||||
+ return org.purpurmc.purpur.PurpurConfig.chestBoatRows * 9; // Plazma - Add missing purpur config options
|
+ return org.purpurmc.purpur.PurpurConfig.chestBoatRows * 9; // Plazma
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||||
index ce960bc620d84e56c4e7fc9b721fd45c4cfc4dac..57534bdf23b8373078a5f39c930cdb1defd31416 100644
|
index 5f0b10932f8dda09131ba68207cbfea4715e0f33..92cb442d9326b4fd47cd6ec0425192f751d3e538 100644
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||||
@@ -327,6 +327,7 @@ public class PurpurConfig {
|
@@ -329,6 +329,7 @@ public class PurpurConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int barrelRows = 3;
|
public static int barrelRows = 3;
|
||||||
+ public static int chestBoatRows = 3; // Plazma - Add missing purpur config options
|
+ public static int chestBoatRows = 3; // Plazma
|
||||||
public static boolean enderChestSixRows = false;
|
public static boolean enderChestSixRows = false;
|
||||||
public static boolean enderChestPermissionRows = false;
|
public static boolean enderChestPermissionRows = false;
|
||||||
public static boolean cryingObsidianValidForPortalFrame = false;
|
public static boolean cryingObsidianValidForPortalFrame = false;
|
||||||
@@ -367,6 +368,7 @@ public class PurpurConfig {
|
@@ -369,6 +370,7 @@ public class PurpurConfig {
|
||||||
case 1 -> 9;
|
case 1 -> 9;
|
||||||
default -> 27;
|
default -> 27;
|
||||||
});
|
});
|
||||||
+ chestBoatRows = getInt("settings.blocks.chest_boat.rows", chestBoatRows); // Plazma - Add missing purpur config options
|
+ chestBoatRows = getInt("settings.blocks.chest_boat.rows", chestBoatRows); // Plazma
|
||||||
enderChestSixRows = getBoolean("settings.blocks.ender_chest.six-rows", enderChestSixRows);
|
enderChestSixRows = getBoolean("settings.blocks.ender_chest.six-rows", enderChestSixRows);
|
||||||
org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27);
|
org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27);
|
||||||
enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows);
|
enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows);
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||||
index 47f2c8f23e318b89324bfcb1342dadc325f53afc..eae616d7b0a318253725ef5bd3891f34b9d9b493 100644
|
index d65d3fd4572a4f5c9b3d2d4e2c0a907aae824cde..1ea0fe11fd9e9a8f300efc85926b9724ab4f69a7 100644
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||||
@@ -1084,7 +1084,15 @@ public class PurpurWorldConfig {
|
@@ -1113,7 +1113,15 @@ public class PurpurWorldConfig {
|
||||||
public boolean allayRidableInWater = true;
|
public boolean allayRidableInWater = true;
|
||||||
public boolean allayControllable = true;
|
public boolean allayControllable = true;
|
||||||
public List<String> allayRespectNBT = new ArrayList<>();
|
public List<String> allayRespectNBT = new ArrayList<>();
|
||||||
@@ -229,23 +224,23 @@ index 47f2c8f23e318b89324bfcb1342dadc325f53afc..eae616d7b0a318253725ef5bd3891f34
|
|||||||
allayRidable = getBoolean("mobs.allay.ridable", allayRidable);
|
allayRidable = getBoolean("mobs.allay.ridable", allayRidable);
|
||||||
allayRidableInWater = getBoolean("mobs.allay.ridable-in-water", allayRidableInWater);
|
allayRidableInWater = getBoolean("mobs.allay.ridable-in-water", allayRidableInWater);
|
||||||
allayControllable = getBoolean("mobs.allay.controllable", allayControllable);
|
allayControllable = getBoolean("mobs.allay.controllable", allayControllable);
|
||||||
@@ -1195,7 +1203,15 @@ public class PurpurWorldConfig {
|
@@ -1232,7 +1240,15 @@ public class PurpurWorldConfig {
|
||||||
public double camelJumpStrengthMax = 0.42D;
|
|
||||||
public double camelMovementSpeedMin = 0.09D;
|
public double camelMovementSpeedMin = 0.09D;
|
||||||
public double camelMovementSpeedMax = 0.09D;
|
public double camelMovementSpeedMax = 0.09D;
|
||||||
|
public int camelBreedingTicks = 6000;
|
||||||
+ // Plazma start - Add missing purpur config options
|
+ // Plazma start - Add missing purpur config options
|
||||||
+ public boolean camelRidableInWater = false;
|
+ //public boolean camelRidableInWater = false;
|
||||||
+ public boolean camelTakeDamageFromWater = false;
|
+ public boolean camelTakeDamageFromWater = false;
|
||||||
+ public boolean camelAlwaysDropExp = false;
|
+ public boolean camelAlwaysDropExp = false;
|
||||||
private void camelSettings() {
|
private void camelSettings() {
|
||||||
+ camelRidableInWater = getBoolean("mobs.camel.ridable-in-water", camelRidableInWater);
|
+ //camelRidableInWater = getBoolean("mobs.camel.ridable-in-water", camelRidableInWater);
|
||||||
+ camelTakeDamageFromWater = getBoolean("mobs.camel.takes-damage-from-water", camelTakeDamageFromWater);
|
+ camelTakeDamageFromWater = getBoolean("mobs.camel.takes-damage-from-water", camelTakeDamageFromWater);
|
||||||
+ camelAlwaysDropExp = getBoolean("mobs.camel.always-drop-exp", camelAlwaysDropExp);
|
+ camelAlwaysDropExp = getBoolean("mobs.camel.always-drop-exp", camelAlwaysDropExp);
|
||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
|
camelRidableInWater = getBoolean("mobs.camel.ridable-in-water", camelRidableInWater);
|
||||||
camelMaxHealthMin = getDouble("mobs.camel.attributes.max_health.min", camelMaxHealthMin);
|
camelMaxHealthMin = getDouble("mobs.camel.attributes.max_health.min", camelMaxHealthMin);
|
||||||
camelMaxHealthMax = getDouble("mobs.camel.attributes.max_health.max", camelMaxHealthMax);
|
camelMaxHealthMax = getDouble("mobs.camel.attributes.max_health.max", camelMaxHealthMax);
|
||||||
camelJumpStrengthMin = getDouble("mobs.camel.attributes.jump_strength.min", camelJumpStrengthMin);
|
@@ -1660,7 +1676,15 @@ public class PurpurWorldConfig {
|
||||||
@@ -1622,7 +1638,15 @@ public class PurpurWorldConfig {
|
|
||||||
public boolean frogControllable = true;
|
public boolean frogControllable = true;
|
||||||
public float frogRidableJumpHeight = 0.65F;
|
public float frogRidableJumpHeight = 0.65F;
|
||||||
public int frogBreedingTicks = 6000;
|
public int frogBreedingTicks = 6000;
|
||||||
@@ -261,7 +256,7 @@ index 47f2c8f23e318b89324bfcb1342dadc325f53afc..eae616d7b0a318253725ef5bd3891f34
|
|||||||
frogRidable = getBoolean("mobs.frog.ridable", frogRidable);
|
frogRidable = getBoolean("mobs.frog.ridable", frogRidable);
|
||||||
frogRidableInWater = getBoolean("mobs.frog.ridable-in-water", frogRidableInWater);
|
frogRidableInWater = getBoolean("mobs.frog.ridable-in-water", frogRidableInWater);
|
||||||
frogControllable = getBoolean("mobs.frog.controllable", frogControllable);
|
frogControllable = getBoolean("mobs.frog.controllable", frogControllable);
|
||||||
@@ -2573,7 +2597,13 @@ public class PurpurWorldConfig {
|
@@ -2613,7 +2637,13 @@ public class PurpurWorldConfig {
|
||||||
public boolean snifferControllable = true;
|
public boolean snifferControllable = true;
|
||||||
public double snifferMaxHealth = 14.0D;
|
public double snifferMaxHealth = 14.0D;
|
||||||
public int snifferBreedingTicks = 6000;
|
public int snifferBreedingTicks = 6000;
|
||||||
@@ -275,7 +270,7 @@ index 47f2c8f23e318b89324bfcb1342dadc325f53afc..eae616d7b0a318253725ef5bd3891f34
|
|||||||
snifferRidable = getBoolean("mobs.sniffer.ridable", snifferRidable);
|
snifferRidable = getBoolean("mobs.sniffer.ridable", snifferRidable);
|
||||||
snifferRidableInWater = getBoolean("mobs.sniffer.ridable-in-water", snifferRidableInWater);
|
snifferRidableInWater = getBoolean("mobs.sniffer.ridable-in-water", snifferRidableInWater);
|
||||||
snifferControllable = getBoolean("mobs.sniffer.controllable", snifferControllable);
|
snifferControllable = getBoolean("mobs.sniffer.controllable", snifferControllable);
|
||||||
@@ -2672,7 +2702,15 @@ public class PurpurWorldConfig {
|
@@ -2712,7 +2742,15 @@ public class PurpurWorldConfig {
|
||||||
public boolean tadpoleRidable = false;
|
public boolean tadpoleRidable = false;
|
||||||
public boolean tadpoleRidableInWater = true;
|
public boolean tadpoleRidableInWater = true;
|
||||||
public boolean tadpoleControllable = true;
|
public boolean tadpoleControllable = true;
|
||||||
@@ -291,7 +286,7 @@ index 47f2c8f23e318b89324bfcb1342dadc325f53afc..eae616d7b0a318253725ef5bd3891f34
|
|||||||
tadpoleRidable = getBoolean("mobs.tadpole.ridable", tadpoleRidable);
|
tadpoleRidable = getBoolean("mobs.tadpole.ridable", tadpoleRidable);
|
||||||
tadpoleRidableInWater = getBoolean("mobs.tadpole.ridable-in-water", tadpoleRidableInWater);
|
tadpoleRidableInWater = getBoolean("mobs.tadpole.ridable-in-water", tadpoleRidableInWater);
|
||||||
tadpoleControllable = getBoolean("mobs.tadpole.controllable", tadpoleControllable);
|
tadpoleControllable = getBoolean("mobs.tadpole.controllable", tadpoleControllable);
|
||||||
@@ -2882,7 +2920,15 @@ public class PurpurWorldConfig {
|
@@ -2922,7 +2960,15 @@ public class PurpurWorldConfig {
|
||||||
public boolean wardenRidable = false;
|
public boolean wardenRidable = false;
|
||||||
public boolean wardenRidableInWater = true;
|
public boolean wardenRidableInWater = true;
|
||||||
public boolean wardenControllable = true;
|
public boolean wardenControllable = true;
|
||||||
944
patches/server/0012-Completely-remove-Mojang-Profiler.patch
Normal file
944
patches/server/0012-Completely-remove-Mojang-Profiler.patch
Normal file
@@ -0,0 +1,944 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Wed, 27 Sep 2023 17:52:52 +0900
|
||||||
|
Subject: [PATCH] Completely remove Mojang Profiler
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
|
index 11de2f237e6dd950b8ddba3d5cfe9066d09f0903..44248dc470d0882b7287debd1993cedf0f238aca 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
|
@@ -113,16 +113,16 @@ import net.minecraft.util.Unit;
|
||||||
|
import net.minecraft.util.datafix.DataFixers;
|
||||||
|
import net.minecraft.util.profiling.EmptyProfileResults;
|
||||||
|
import net.minecraft.util.profiling.ProfileResults;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.util.profiling.ResultField;
|
||||||
|
-import net.minecraft.util.profiling.SingleTickProfiler;
|
||||||
|
+//import net.minecraft.util.profiling.SingleTickProfiler; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.util.profiling.jfr.JvmProfiler;
|
||||||
|
import net.minecraft.util.profiling.jfr.callback.ProfiledDuration;
|
||||||
|
-import net.minecraft.util.profiling.metrics.profiling.ActiveMetricsRecorder;
|
||||||
|
-import net.minecraft.util.profiling.metrics.profiling.InactiveMetricsRecorder;
|
||||||
|
-import net.minecraft.util.profiling.metrics.profiling.MetricsRecorder;
|
||||||
|
-import net.minecraft.util.profiling.metrics.profiling.ServerMetricsSamplersProvider;
|
||||||
|
-import net.minecraft.util.profiling.metrics.storage.MetricsPersister;
|
||||||
|
+//import net.minecraft.util.profiling.metrics.profiling.ActiveMetricsRecorder; // Plazma - Completely remove profiler
|
||||||
|
+//import net.minecraft.util.profiling.metrics.profiling.InactiveMetricsRecorder; // Plazma - Completely remove profiler
|
||||||
|
+//import net.minecraft.util.profiling.metrics.profiling.MetricsRecorder; // Plazma - Completely remove profiler
|
||||||
|
+//import net.minecraft.util.profiling.metrics.profiling.ServerMetricsSamplersProvider; // Plazma - Completely remove profiler
|
||||||
|
+//import net.minecraft.util.profiling.metrics.storage.MetricsPersister; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.util.thread.ReentrantBlockableEventLoop;
|
||||||
|
import net.minecraft.world.Difficulty;
|
||||||
|
import net.minecraft.world.RandomSequences;
|
||||||
|
@@ -214,11 +214,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
public LevelStorageSource.LevelStorageAccess storageSource;
|
||||||
|
public final PlayerDataStorage playerDataStorage;
|
||||||
|
private final List<Runnable> tickables = Lists.newArrayList();
|
||||||
|
- private MetricsRecorder metricsRecorder;
|
||||||
|
- private ProfilerFiller profiler;
|
||||||
|
- private Consumer<ProfileResults> onMetricsRecordingStopped;
|
||||||
|
- private Consumer<Path> onMetricsRecordingFinished;
|
||||||
|
- private boolean willStartRecordingMetrics;
|
||||||
|
+ //private MetricsRecorder metricsRecorder; // Plazma - Completely remove profiler
|
||||||
|
+ //private ProfilerFiller profiler; // Plazma - Completely remove profiler
|
||||||
|
+ //private Consumer<ProfileResults> onMetricsRecordingStopped; // Plazma - Completely remove profiler
|
||||||
|
+ //private Consumer<Path> onMetricsRecordingFinished; // Plazma - Completely remove profiler
|
||||||
|
+ //private boolean willStartRecordingMetrics; // Plazma - Completely remove profiler
|
||||||
|
@Nullable
|
||||||
|
private MinecraftServer.TimeProfiler debugCommandProfiler;
|
||||||
|
private boolean debugCommandProfilerDelayStart;
|
||||||
|
@@ -2309,10 +2309,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* // Plazma - Completely remove profiler
|
||||||
|
public ProfilerFiller getProfiler() {
|
||||||
|
if (true || gg.pufferfish.pufferfish.PufferfishConfig.disableMethodProfiler) return net.minecraft.util.profiling.InactiveProfiler.INSTANCE; // Purpur
|
||||||
|
return this.profiler;
|
||||||
|
}
|
||||||
|
+ */ // Plazma - Completely remove profiler
|
||||||
|
|
||||||
|
public abstract boolean isSingleplayerOwner(GameProfile profile);
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/ServerAdvancementManager.java b/src/main/java/net/minecraft/server/ServerAdvancementManager.java
|
||||||
|
index ebcd2bbcf8f25c52de3deaff32a8522dbf662141..0ff246c5f7c6f02c12a55b1d9c7b35ad3fd4c1c0 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/ServerAdvancementManager.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/ServerAdvancementManager.java
|
||||||
|
@@ -22,7 +22,7 @@ import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.server.packs.resources.ResourceManager;
|
||||||
|
import net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener;
|
||||||
|
import net.minecraft.util.GsonHelper;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.world.level.storage.loot.LootDataManager;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
|
@@ -39,7 +39,7 @@ public class ServerAdvancementManager extends SimpleJsonResourceReloadListener {
|
||||||
|
this.lootData = conditionManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
- protected void apply(Map<ResourceLocation, JsonElement> prepared, ResourceManager manager, ProfilerFiller profiler) {
|
||||||
|
+ protected void apply(Map<ResourceLocation, JsonElement> prepared, ResourceManager manager/*, ProfilerFiller profiler*/) { // Plazma - Completely remove profiler
|
||||||
|
Builder<ResourceLocation, AdvancementHolder> builder = ImmutableMap.builder();
|
||||||
|
|
||||||
|
prepared.forEach((minecraftkey, jsonelement) -> {
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/ServerFunctionLibrary.java b/src/main/java/net/minecraft/server/ServerFunctionLibrary.java
|
||||||
|
index 975422a57b83a31e63a600bb4ff9c4e2baaf6da7..6783dc11a321c244296e84223c51cd1a489a9b96 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/ServerFunctionLibrary.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/ServerFunctionLibrary.java
|
||||||
|
@@ -25,7 +25,7 @@ import net.minecraft.server.packs.resources.PreparableReloadListener;
|
||||||
|
import net.minecraft.server.packs.resources.Resource;
|
||||||
|
import net.minecraft.server.packs.resources.ResourceManager;
|
||||||
|
import net.minecraft.tags.TagLoader;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.world.entity.Entity;
|
||||||
|
import net.minecraft.world.phys.Vec2;
|
||||||
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
@@ -62,7 +62,7 @@ public class ServerFunctionLibrary implements PreparableReloadListener {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
- public CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier synchronizer, ResourceManager manager, ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler, Executor prepareExecutor, Executor applyExecutor) {
|
||||||
|
+ public CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier synchronizer, ResourceManager manager/*, ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler*/, Executor prepareExecutor, Executor applyExecutor) { // Plazma - Completely remove profiler
|
||||||
|
CompletableFuture<Map<ResourceLocation, List<TagLoader.EntryWithSource>>> completableFuture = CompletableFuture.supplyAsync(() -> {
|
||||||
|
return this.tagsLoader.load(manager);
|
||||||
|
}, prepareExecutor);
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/ServerFunctionManager.java b/src/main/java/net/minecraft/server/ServerFunctionManager.java
|
||||||
|
index 097ac55028d66ef9ab430ff5dd103db6e3b99fc7..2993e9f326c43ef3f06d5e332899f9fad1f03718 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/ServerFunctionManager.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/ServerFunctionManager.java
|
||||||
|
@@ -19,7 +19,7 @@ import net.minecraft.commands.FunctionInstantiationException;
|
||||||
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.world.level.GameRules;
|
||||||
|
|
||||||
|
public class ServerFunctionManager {
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
|
index 3f4df62773dfe1045914325ce5bc13162192679c..0f27bdc25dc5246d98358a26e1d01e17bc779c2d 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
|
@@ -68,7 +68,7 @@ import net.minecraft.server.level.progress.ChunkProgressListener;
|
||||||
|
import net.minecraft.server.network.ServerPlayerConnection;
|
||||||
|
import net.minecraft.util.CsvOutput;
|
||||||
|
import net.minecraft.util.Mth;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.util.thread.BlockableEventLoop;
|
||||||
|
import net.minecraft.util.thread.ProcessorHandle;
|
||||||
|
import net.minecraft.util.thread.ProcessorMailbox;
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
|
index 6255960ae70e14eb11da5043eb003575e300ddf6..999f57366cad34f92a1f80437bf7bd84b40c0e6b 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
|
@@ -24,7 +24,7 @@ import net.minecraft.core.SectionPos;
|
||||||
|
import net.minecraft.network.protocol.Packet;
|
||||||
|
import net.minecraft.server.level.progress.ChunkProgressListener;
|
||||||
|
import net.minecraft.util.VisibleForDebug;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.util.thread.BlockableEventLoop;
|
||||||
|
import net.minecraft.world.entity.Entity;
|
||||||
|
import net.minecraft.world.entity.ai.village.poi.PoiManager;
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
|
index e7efdd572716e50ecca217898b8a368e5829f925..72c2af8638d71b92a9762dedb0efec53ce8094f7 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
|
@@ -77,7 +77,7 @@ import net.minecraft.util.Mth;
|
||||||
|
import net.minecraft.util.ProgressListener;
|
||||||
|
import net.minecraft.util.RandomSource;
|
||||||
|
import net.minecraft.util.Unit;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.util.valueproviders.IntProvider;
|
||||||
|
import net.minecraft.util.valueproviders.UniformInt;
|
||||||
|
import net.minecraft.world.DifficultyInstance;
|
||||||
|
@@ -694,15 +694,15 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||||
|
// Holder holder = worlddimension.type(); // CraftBukkit - decompile error
|
||||||
|
|
||||||
|
// Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error
|
||||||
|
- super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig)), spigotConfig -> minecraftserver.plazmaConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig)), executor); // Paper - Async-Anti-Xray - Pass executor // Plazma
|
||||||
|
+ super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type()/*, minecraftserver::getProfiler*/, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig)), spigotConfig -> minecraftserver.plazmaConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig)), executor); // Paper - Async-Anti-Xray - Pass executor // Plazma // Plazma - Completely remove profiler
|
||||||
|
this.pvpMode = minecraftserver.isPvpAllowed();
|
||||||
|
this.convertable = convertable_conversionsession;
|
||||||
|
this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile());
|
||||||
|
// CraftBukkit end
|
||||||
|
this.players = Lists.newArrayList();
|
||||||
|
this.entityTickList = new EntityTickList();
|
||||||
|
- this.blockTicks = new LevelTicks<>(this::isPositionTickingWithEntitiesLoaded, this.getProfilerSupplier());
|
||||||
|
- this.fluidTicks = new LevelTicks<>(this::isPositionTickingWithEntitiesLoaded, this.getProfilerSupplier());
|
||||||
|
+ this.blockTicks = new LevelTicks<>(this::isPositionTickingWithEntitiesLoaded/*, this.getProfilerSupplier()*/); // Plazma - Completely remove profiler
|
||||||
|
+ this.fluidTicks = new LevelTicks<>(this::isPositionTickingWithEntitiesLoaded/*, this.getProfilerSupplier()*/); // Plazma - Completely remove profiler
|
||||||
|
this.navigatingMobs = new ObjectOpenHashSet();
|
||||||
|
this.blockEvents = new ObjectLinkedOpenHashSet();
|
||||||
|
this.blockEventsToReschedule = new ArrayList(64);
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/packs/resources/PreparableReloadListener.java b/src/main/java/net/minecraft/server/packs/resources/PreparableReloadListener.java
|
||||||
|
index 828196decc89e7e03f88c4a3208ee1ab2bb69242..c0088e0e566abb928c8dcd6f819d82cc1122589b 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/packs/resources/PreparableReloadListener.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/packs/resources/PreparableReloadListener.java
|
||||||
|
@@ -2,10 +2,10 @@ package net.minecraft.server.packs.resources;
|
||||||
|
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
|
||||||
|
public interface PreparableReloadListener {
|
||||||
|
- CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier synchronizer, ResourceManager manager, ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler, Executor prepareExecutor, Executor applyExecutor);
|
||||||
|
+ CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier synchronizer, ResourceManager manager/*, ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler*/, Executor prepareExecutor, Executor applyExecutor); // Plazma - Completely remove profiler
|
||||||
|
|
||||||
|
default String getName() {
|
||||||
|
return this.getClass().getSimpleName();
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/packs/resources/ResourceManagerReloadListener.java b/src/main/java/net/minecraft/server/packs/resources/ResourceManagerReloadListener.java
|
||||||
|
index 7383c7d3820dce06108eaafd236a7c6c06a10a42..4e1f4e026cd7c566468a58b2ea232d5dee80b86f 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/packs/resources/ResourceManagerReloadListener.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/packs/resources/ResourceManagerReloadListener.java
|
||||||
|
@@ -3,11 +3,11 @@ package net.minecraft.server.packs.resources;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
|
import net.minecraft.util.Unit;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
|
||||||
|
public interface ResourceManagerReloadListener extends PreparableReloadListener {
|
||||||
|
@Override
|
||||||
|
- default CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier synchronizer, ResourceManager manager, ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler, Executor prepareExecutor, Executor applyExecutor) {
|
||||||
|
+ default CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier synchronizer, ResourceManager manager/*, ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler*/, Executor prepareExecutor, Executor applyExecutor) { // Plazma - Completely remove profiler
|
||||||
|
return synchronizer.wait(Unit.INSTANCE).thenRunAsync(() -> {
|
||||||
|
//applyProfiler.startTick(); // Purpur
|
||||||
|
//applyProfiler.push("listener"); // Purpur
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/packs/resources/SimpleJsonResourceReloadListener.java b/src/main/java/net/minecraft/server/packs/resources/SimpleJsonResourceReloadListener.java
|
||||||
|
index 9cc09f0415a09299102dbcf022326944368ea033..2e9e63f3ee6268cafa3b90666cf31019e7341dbb 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/packs/resources/SimpleJsonResourceReloadListener.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/packs/resources/SimpleJsonResourceReloadListener.java
|
||||||
|
@@ -11,7 +11,7 @@ import java.util.Map;
|
||||||
|
import net.minecraft.resources.FileToIdConverter;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.util.GsonHelper;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
|
public abstract class SimpleJsonResourceReloadListener extends SimplePreparableReloadListener<Map<ResourceLocation, JsonElement>> {
|
||||||
|
@@ -25,7 +25,7 @@ public abstract class SimpleJsonResourceReloadListener extends SimplePreparableR
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
- protected Map<ResourceLocation, JsonElement> prepare(ResourceManager resourceManager, ProfilerFiller profilerFiller) {
|
||||||
|
+ protected Map<ResourceLocation, JsonElement> prepare(ResourceManager resourceManager/*, ProfilerFiller profilerFiller*/) { // Plazma - Completely remove Profiler
|
||||||
|
Map<ResourceLocation, JsonElement> map = new HashMap<>();
|
||||||
|
scanDirectory(resourceManager, this.directory, this.gson, map);
|
||||||
|
return map;
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/packs/resources/SimplePreparableReloadListener.java b/src/main/java/net/minecraft/server/packs/resources/SimplePreparableReloadListener.java
|
||||||
|
index 7ab57748b2f2aea1003d9b7e70e76c372aa1e432..7de117e0464a24da632d134870554fd11e1b87ca 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/packs/resources/SimplePreparableReloadListener.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/packs/resources/SimplePreparableReloadListener.java
|
||||||
|
@@ -2,19 +2,19 @@ package net.minecraft.server.packs.resources;
|
||||||
|
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
|
||||||
|
public abstract class SimplePreparableReloadListener<T> implements PreparableReloadListener {
|
||||||
|
@Override
|
||||||
|
- public final CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier synchronizer, ResourceManager manager, ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler, Executor prepareExecutor, Executor applyExecutor) {
|
||||||
|
+ public final CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier synchronizer, ResourceManager manager/*, ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler*/, Executor prepareExecutor, Executor applyExecutor) { // Plazma - Completely remove profiler
|
||||||
|
return CompletableFuture.supplyAsync(() -> {
|
||||||
|
- return this.prepare(manager, prepareProfiler);
|
||||||
|
+ return this.prepare(manager/*, prepareProfiler*/); // Plazma - Completely remove profiler
|
||||||
|
}, prepareExecutor).thenCompose(synchronizer::wait).thenAcceptAsync((prepared) -> {
|
||||||
|
- this.apply(prepared, manager, applyProfiler);
|
||||||
|
+ this.apply(prepared, manager/*, applyProfiler*/); // Plazma - Completely remove profiler
|
||||||
|
}, applyExecutor);
|
||||||
|
}
|
||||||
|
|
||||||
|
- protected abstract T prepare(ResourceManager manager, ProfilerFiller profiler);
|
||||||
|
+ protected abstract T prepare(ResourceManager manager/*, ProfilerFiller profiler*/); // Plazma - Completely remove profiler
|
||||||
|
|
||||||
|
- protected abstract void apply(T prepared, ResourceManager manager, ProfilerFiller profiler);
|
||||||
|
+ protected abstract void apply(T prepared, ResourceManager manager/*, ProfilerFiller profiler*/); // Plazma - Completely remove profiler
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/packs/resources/SimpleReloadInstance.java b/src/main/java/net/minecraft/server/packs/resources/SimpleReloadInstance.java
|
||||||
|
index de2ecc7c69fb870f843f60596115866214267ee4..05a731dec4aec1d3cf61a761bda018cc8c46afde 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/packs/resources/SimpleReloadInstance.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/packs/resources/SimpleReloadInstance.java
|
||||||
|
@@ -26,7 +26,7 @@ public class SimpleReloadInstance<S> implements ReloadInstance {
|
||||||
|
|
||||||
|
public static SimpleReloadInstance<Void> of(ResourceManager manager, List<PreparableReloadListener> reloaders, Executor prepareExecutor, Executor applyExecutor, CompletableFuture<Unit> initialStage) {
|
||||||
|
return new SimpleReloadInstance<>(prepareExecutor, applyExecutor, manager, reloaders, (synchronizer, resourceManager, reloader, prepare, apply) -> {
|
||||||
|
- return reloader.reload(synchronizer, resourceManager, InactiveProfiler.INSTANCE, InactiveProfiler.INSTANCE, prepareExecutor, apply);
|
||||||
|
+ return reloader.reload(synchronizer, resourceManager/*, InactiveProfiler.INSTANCE, InactiveProfiler.INSTANCE*/, prepareExecutor, apply); // Plazma - Completely remove Profiler
|
||||||
|
}, initialStage);
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/tags/TagManager.java b/src/main/java/net/minecraft/tags/TagManager.java
|
||||||
|
index 60ed9413c32d91ce33583cc24998d08869d07a23..67c0d8f7294e18c7b2107b82219bc106608a21f0 100644
|
||||||
|
--- a/src/main/java/net/minecraft/tags/TagManager.java
|
||||||
|
+++ b/src/main/java/net/minecraft/tags/TagManager.java
|
||||||
|
@@ -14,7 +14,7 @@ import net.minecraft.resources.ResourceKey;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.server.packs.resources.PreparableReloadListener;
|
||||||
|
import net.minecraft.server.packs.resources.ResourceManager;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
|
||||||
|
public class TagManager implements PreparableReloadListener {
|
||||||
|
private static final Map<ResourceKey<? extends Registry<?>>, String> CUSTOM_REGISTRY_DIRECTORIES = Map.of(Registries.BLOCK, "tags/blocks", Registries.ENTITY_TYPE, "tags/entity_types", Registries.FLUID, "tags/fluids", Registries.GAME_EVENT, "tags/game_events", Registries.ITEM, "tags/items");
|
||||||
|
@@ -35,7 +35,7 @@ public class TagManager implements PreparableReloadListener {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
- public CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier synchronizer, ResourceManager manager, ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler, Executor prepareExecutor, Executor applyExecutor) {
|
||||||
|
+ public CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier synchronizer, ResourceManager manager/*, ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler*/, Executor prepareExecutor, Executor applyExecutor) { // Plazma - Completely remove profiler
|
||||||
|
List<? extends CompletableFuture<? extends TagManager.LoadResult<?>>> list = this.registryAccess.registries().map((registry) -> {
|
||||||
|
return this.createLoader(manager, prepareExecutor, registry);
|
||||||
|
}).toList();
|
||||||
|
diff --git a/src/main/java/net/minecraft/util/profiling/ActiveProfiler.java b/src/main/java/net/minecraft/util/profiling/ActiveProfiler.java
|
||||||
|
deleted file mode 100644
|
||||||
|
index c6c30d99399c5cde2b0ec2f320d81d952b422d78..0000000000000000000000000000000000000000
|
||||||
|
--- a/src/main/java/net/minecraft/util/profiling/ActiveProfiler.java
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,208 +0,0 @@
|
||||||
|
-package net.minecraft.util.profiling;
|
||||||
|
-
|
||||||
|
-import com.google.common.collect.Lists;
|
||||||
|
-import com.google.common.collect.Maps;
|
||||||
|
-import com.mojang.logging.LogUtils;
|
||||||
|
-import it.unimi.dsi.fastutil.longs.LongArrayList;
|
||||||
|
-import it.unimi.dsi.fastutil.longs.LongList;
|
||||||
|
-import it.unimi.dsi.fastutil.objects.Object2LongMap;
|
||||||
|
-import it.unimi.dsi.fastutil.objects.Object2LongMaps;
|
||||||
|
-import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap;
|
||||||
|
-import it.unimi.dsi.fastutil.objects.ObjectArraySet;
|
||||||
|
-import java.time.Duration;
|
||||||
|
-import java.util.List;
|
||||||
|
-import java.util.Map;
|
||||||
|
-import java.util.Set;
|
||||||
|
-import java.util.function.IntSupplier;
|
||||||
|
-import java.util.function.LongSupplier;
|
||||||
|
-import java.util.function.Supplier;
|
||||||
|
-import javax.annotation.Nullable;
|
||||||
|
-import net.minecraft.Util;
|
||||||
|
-import net.minecraft.util.profiling.metrics.MetricCategory;
|
||||||
|
-import org.apache.commons.lang3.tuple.Pair;
|
||||||
|
-import org.slf4j.Logger;
|
||||||
|
-
|
||||||
|
-public class ActiveProfiler implements ProfileCollector {
|
||||||
|
- private static final long WARNING_TIME_NANOS = Duration.ofMillis(100L).toNanos();
|
||||||
|
- private static final Logger LOGGER = LogUtils.getLogger();
|
||||||
|
- private final List<String> paths = Lists.newArrayList();
|
||||||
|
- private final LongList startTimes = new LongArrayList();
|
||||||
|
- private final Map<String, ActiveProfiler.PathEntry> entries = Maps.newHashMap();
|
||||||
|
- private final IntSupplier getTickTime;
|
||||||
|
- private final LongSupplier getRealTime;
|
||||||
|
- private final long startTimeNano;
|
||||||
|
- private final int startTimeTicks;
|
||||||
|
- private String path = "";
|
||||||
|
- private boolean started;
|
||||||
|
- @Nullable
|
||||||
|
- private ActiveProfiler.PathEntry currentEntry;
|
||||||
|
- private final boolean warn;
|
||||||
|
- private final Set<Pair<String, MetricCategory>> chartedPaths = new ObjectArraySet<>();
|
||||||
|
-
|
||||||
|
- public ActiveProfiler(LongSupplier timeGetter, IntSupplier tickGetter, boolean checkTimeout) {
|
||||||
|
- this.startTimeNano = timeGetter.getAsLong();
|
||||||
|
- this.getRealTime = timeGetter;
|
||||||
|
- this.startTimeTicks = tickGetter.getAsInt();
|
||||||
|
- this.getTickTime = tickGetter;
|
||||||
|
- this.warn = checkTimeout;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void startTick() {
|
||||||
|
- if (this.started) {
|
||||||
|
- LOGGER.error("Profiler tick already started - missing endTick()?");
|
||||||
|
- } else {
|
||||||
|
- this.started = true;
|
||||||
|
- this.path = "";
|
||||||
|
- this.paths.clear();
|
||||||
|
- //this.push("root"); // Purpur
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void endTick() {
|
||||||
|
- if (!this.started) {
|
||||||
|
- LOGGER.error("Profiler tick already ended - missing startTick()?");
|
||||||
|
- } else {
|
||||||
|
- //this.pop(); // Purpur
|
||||||
|
- this.started = false;
|
||||||
|
- if (!this.path.isEmpty()) {
|
||||||
|
- LOGGER.error("Profiler tick ended before path was fully popped (remainder: '{}'). Mismatched push/pop?", LogUtils.defer(() -> {
|
||||||
|
- return ProfileResults.demanglePath(this.path);
|
||||||
|
- }));
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void push(String location) {
|
||||||
|
- if (!this.started) {
|
||||||
|
- LOGGER.error("Cannot push '{}' to profiler if profiler tick hasn't started - missing startTick()?", (Object)location);
|
||||||
|
- } else {
|
||||||
|
- if (!this.path.isEmpty()) {
|
||||||
|
- this.path = this.path + "\u001e";
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- this.path = this.path + location;
|
||||||
|
- this.paths.add(this.path);
|
||||||
|
- this.startTimes.add(Util.getNanos());
|
||||||
|
- this.currentEntry = null;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void push(Supplier<String> locationGetter) {
|
||||||
|
- //this.push(locationGetter.get()); // Purpur
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void markForCharting(MetricCategory type) {
|
||||||
|
- this.chartedPaths.add(Pair.of(this.path, type));
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void pop() {
|
||||||
|
- if (!this.started) {
|
||||||
|
- LOGGER.error("Cannot pop from profiler if profiler tick hasn't started - missing startTick()?");
|
||||||
|
- } else if (this.startTimes.isEmpty()) {
|
||||||
|
- LOGGER.error("Tried to pop one too many times! Mismatched push() and pop()?");
|
||||||
|
- } else {
|
||||||
|
- long l = Util.getNanos();
|
||||||
|
- long m = this.startTimes.removeLong(this.startTimes.size() - 1);
|
||||||
|
- this.paths.remove(this.paths.size() - 1);
|
||||||
|
- long n = l - m;
|
||||||
|
- ActiveProfiler.PathEntry pathEntry = this.getCurrentEntry();
|
||||||
|
- pathEntry.accumulatedDuration += n;
|
||||||
|
- ++pathEntry.count;
|
||||||
|
- pathEntry.maxDuration = Math.max(pathEntry.maxDuration, n);
|
||||||
|
- pathEntry.minDuration = Math.min(pathEntry.minDuration, n);
|
||||||
|
- if (this.warn && n > WARNING_TIME_NANOS) {
|
||||||
|
- LOGGER.warn("Something's taking too long! '{}' took aprox {} ms", LogUtils.defer(() -> {
|
||||||
|
- return ProfileResults.demanglePath(this.path);
|
||||||
|
- }), LogUtils.defer(() -> {
|
||||||
|
- return (double)n / 1000000.0D;
|
||||||
|
- }));
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- this.path = this.paths.isEmpty() ? "" : this.paths.get(this.paths.size() - 1);
|
||||||
|
- this.currentEntry = null;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void popPush(String location) {
|
||||||
|
- //this.pop(); // Purpur
|
||||||
|
- //this.push(location); // Purpur
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void popPush(Supplier<String> locationGetter) {
|
||||||
|
- //this.pop(); // Purpur
|
||||||
|
- //this.push(locationGetter); // Purpur
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- private ActiveProfiler.PathEntry getCurrentEntry() {
|
||||||
|
- if (this.currentEntry == null) {
|
||||||
|
- this.currentEntry = this.entries.computeIfAbsent(this.path, (k) -> {
|
||||||
|
- return new ActiveProfiler.PathEntry();
|
||||||
|
- });
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return this.currentEntry;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void incrementCounter(String marker, int num) {
|
||||||
|
- this.getCurrentEntry().counters.addTo(marker, (long)num);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void incrementCounter(Supplier<String> markerGetter, int num) {
|
||||||
|
- this.getCurrentEntry().counters.addTo(markerGetter.get(), (long)num);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public ProfileResults getResults() {
|
||||||
|
- return new FilledProfileResults(this.entries, this.startTimeNano, this.startTimeTicks, this.getRealTime.getAsLong(), this.getTickTime.getAsInt());
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Nullable
|
||||||
|
- @Override
|
||||||
|
- public ActiveProfiler.PathEntry getEntry(String name) {
|
||||||
|
- return this.entries.get(name);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public Set<Pair<String, MetricCategory>> getChartedPaths() {
|
||||||
|
- return this.chartedPaths;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- public static class PathEntry implements ProfilerPathEntry {
|
||||||
|
- long maxDuration = Long.MIN_VALUE;
|
||||||
|
- long minDuration = Long.MAX_VALUE;
|
||||||
|
- long accumulatedDuration;
|
||||||
|
- long count;
|
||||||
|
- final Object2LongOpenHashMap<String> counters = new Object2LongOpenHashMap<>();
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public long getDuration() {
|
||||||
|
- return this.accumulatedDuration;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public long getMaxDuration() {
|
||||||
|
- return this.maxDuration;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public long getCount() {
|
||||||
|
- return this.count;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public Object2LongMap<String> getCounters() {
|
||||||
|
- return Object2LongMaps.unmodifiable(this.counters);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-}
|
||||||
|
diff --git a/src/main/java/net/minecraft/util/profiling/ProfilerFiller.java b/src/main/java/net/minecraft/util/profiling/ProfilerFiller.java
|
||||||
|
deleted file mode 100644
|
||||||
|
index 863343a87fe34d72f04af89d75268b477b2adc7a..0000000000000000000000000000000000000000
|
||||||
|
--- a/src/main/java/net/minecraft/util/profiling/ProfilerFiller.java
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,116 +0,0 @@
|
||||||
|
-package net.minecraft.util.profiling;
|
||||||
|
-
|
||||||
|
-import java.util.function.Supplier;
|
||||||
|
-import net.minecraft.util.profiling.metrics.MetricCategory;
|
||||||
|
-
|
||||||
|
-public interface ProfilerFiller {
|
||||||
|
- String ROOT = "root";
|
||||||
|
-
|
||||||
|
- @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- void startTick();
|
||||||
|
-
|
||||||
|
- @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- void endTick();
|
||||||
|
-
|
||||||
|
- @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- void push(String location);
|
||||||
|
-
|
||||||
|
- @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- void push(Supplier<String> locationGetter);
|
||||||
|
-
|
||||||
|
- @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- void pop();
|
||||||
|
-
|
||||||
|
- @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- void popPush(String location);
|
||||||
|
-
|
||||||
|
- @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- void popPush(Supplier<String> locationGetter);
|
||||||
|
-
|
||||||
|
- @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- void markForCharting(MetricCategory type);
|
||||||
|
-
|
||||||
|
- @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- default void incrementCounter(String marker) {
|
||||||
|
- //this.incrementCounter(marker, 1); // Purpur
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- void incrementCounter(String marker, int num);
|
||||||
|
-
|
||||||
|
- @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- default void incrementCounter(Supplier<String> markerGetter) {
|
||||||
|
- //this.incrementCounter(markerGetter, 1); // Purpur
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- void incrementCounter(Supplier<String> markerGetter, int num);
|
||||||
|
-
|
||||||
|
- static ProfilerFiller tee(final ProfilerFiller a, final ProfilerFiller b) {
|
||||||
|
- if (a == InactiveProfiler.INSTANCE) {
|
||||||
|
- return b;
|
||||||
|
- } else {
|
||||||
|
- return b == InactiveProfiler.INSTANCE ? a : new ProfilerFiller() {
|
||||||
|
- @Override
|
||||||
|
- public void startTick() {
|
||||||
|
- //a.startTick(); // Purpur
|
||||||
|
- //b.startTick(); // Purpur
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void endTick() {
|
||||||
|
- //a.endTick(); // Purpur
|
||||||
|
- //b.endTick(); // Purpur
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void push(String location) {
|
||||||
|
- //a.push(location); // Purpur
|
||||||
|
- //b.push(location); // Purpur
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void push(Supplier<String> locationGetter) {
|
||||||
|
- //a.push(locationGetter); // Purpur
|
||||||
|
- //b.push(locationGetter); // Purpur
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void markForCharting(MetricCategory type) {
|
||||||
|
- //a.markForCharting(type); // Purpur
|
||||||
|
- //b.markForCharting(type); // Purpur
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void pop() {
|
||||||
|
- //a.pop(); // Purpur
|
||||||
|
- //b.pop(); // Purpur
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void popPush(String location) {
|
||||||
|
- //a.popPush(location); // Purpur
|
||||||
|
- //b.popPush(location); // Purpur
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void popPush(Supplier<String> locationGetter) {
|
||||||
|
- //a.popPush(locationGetter); // Purpur
|
||||||
|
- //b.popPush(locationGetter); // Purpur
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void incrementCounter(String marker, int num) {
|
||||||
|
- //a.incrementCounter(marker, num); // Purpur
|
||||||
|
- //b.incrementCounter(marker, num); // Purpur
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Override
|
||||||
|
- public void incrementCounter(Supplier<String> markerGetter, int num) {
|
||||||
|
- //a.incrementCounter(markerGetter, num); // Purpur
|
||||||
|
- //b.incrementCounter(markerGetter, num); // Purpur
|
||||||
|
- }
|
||||||
|
- };
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-}
|
||||||
|
diff --git a/src/main/java/net/minecraft/util/profiling/metrics/profiling/MetricsRecorder.java b/src/main/java/net/minecraft/util/profiling/metrics/profiling/MetricsRecorder.java
|
||||||
|
deleted file mode 100644
|
||||||
|
index 729ebd1b2433327de243d0168289e180a841f47c..0000000000000000000000000000000000000000
|
||||||
|
--- a/src/main/java/net/minecraft/util/profiling/metrics/profiling/MetricsRecorder.java
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,24 +0,0 @@
|
||||||
|
-package net.minecraft.util.profiling.metrics.profiling;
|
||||||
|
-
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
-
|
||||||
|
-@Deprecated(forRemoval = true)
|
||||||
|
-public interface MetricsRecorder {
|
||||||
|
- @Deprecated(forRemoval = true) @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- void end();
|
||||||
|
-
|
||||||
|
- @Deprecated(forRemoval = true) @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- void cancel();
|
||||||
|
-
|
||||||
|
- @Deprecated(forRemoval = true) @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- void startTick();
|
||||||
|
-
|
||||||
|
- @Deprecated(forRemoval = true) @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- boolean isRecording();
|
||||||
|
-
|
||||||
|
- @Deprecated(forRemoval = true) @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- ProfilerFiller getProfiler();
|
||||||
|
-
|
||||||
|
- @Deprecated(forRemoval = true) @io.papermc.paper.annotation.DoNotUse // Purpur
|
||||||
|
- void endTick();
|
||||||
|
-}
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
|
index d35afa8f8648bbcbfc044323bcda1b1182d7dce4..fb5c21ba15995d00da87ee6ef9e4ab8f6678d67f 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
|
@@ -147,8 +147,8 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
||||||
|
this.pathfindingMalus = Maps.newEnumMap(BlockPathTypes.class);
|
||||||
|
this.restrictCenter = BlockPos.ZERO;
|
||||||
|
this.restrictRadius = -1.0F;
|
||||||
|
- this.goalSelector = new GoalSelector(world.getProfilerSupplier());
|
||||||
|
- this.targetSelector = new GoalSelector(world.getProfilerSupplier());
|
||||||
|
+ this.goalSelector = new GoalSelector(/*world.getProfilerSupplier()*/); // Plazma - Completely remove profiler
|
||||||
|
+ this.targetSelector = new GoalSelector(/*world.getProfilerSupplier()*/); // Plazma - Completely remove profiler
|
||||||
|
this.lookControl = new org.purpurmc.purpur.controller.LookControllerWASD(this); // Purpur
|
||||||
|
this.moveControl = new org.purpurmc.purpur.controller.MoveControllerWASD(this); // Purpur
|
||||||
|
this.jumpControl = new JumpControl(this);
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
|
||||||
|
index 02978315bc2b828cc603ce7478408f3f82c249c2..4f9b19c45afd6b26833ba892a90d3a9559d5d859 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
|
||||||
|
@@ -11,7 +11,7 @@ import java.util.Set;
|
||||||
|
import java.util.function.Predicate;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
|
public class GoalSelector {
|
||||||
|
@@ -29,7 +29,7 @@ public class GoalSelector {
|
||||||
|
};
|
||||||
|
private final Map<Goal.Flag, WrappedGoal> lockedFlags = new EnumMap<>(Goal.Flag.class);
|
||||||
|
private final Set<WrappedGoal> availableGoals = Sets.newLinkedHashSet();
|
||||||
|
- private final Supplier<ProfilerFiller> profiler;
|
||||||
|
+ //private final Supplier<ProfilerFiller> profiler; // Plazma - Completely remove profiler
|
||||||
|
private final EnumSet<Goal.Flag> disabledFlags = EnumSet.noneOf(Goal.Flag.class); // Paper unused, but dummy to prevent plugins from crashing as hard. Theyll need to support paper in a special case if this is super important, but really doesn't seem like it would be.
|
||||||
|
private final com.destroystokyo.paper.util.set.OptimizedSmallEnumSet<net.minecraft.world.entity.ai.goal.Goal.Flag> goalTypes = new com.destroystokyo.paper.util.set.OptimizedSmallEnumSet<>(Goal.Flag.class); // Paper - remove streams from pathfindergoalselector
|
||||||
|
private int tickCount;
|
||||||
|
@@ -37,9 +37,11 @@ public class GoalSelector {
|
||||||
|
private int curRate;
|
||||||
|
private static final Goal.Flag[] GOAL_FLAG_VALUES = Goal.Flag.values(); // Paper - remove streams from pathfindergoalselector
|
||||||
|
|
||||||
|
+ /* // Plazma - Completely remove profiler
|
||||||
|
public GoalSelector(Supplier<ProfilerFiller> profiler) {
|
||||||
|
this.profiler = profiler;
|
||||||
|
}
|
||||||
|
+ */ // Plazma - Completely remove profiler
|
||||||
|
|
||||||
|
public void addGoal(int priority, Goal goal) {
|
||||||
|
this.availableGoals.add(new WrappedGoal(priority, goal));
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
|
||||||
|
index 666fc85bc2079cb367b340f2605f29fe002f4d22..36c60716c6aaa446ff7123a3babafb2edd2266ac 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
|
||||||
|
@@ -31,7 +31,7 @@ import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.server.packs.resources.ResourceManager;
|
||||||
|
import net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener;
|
||||||
|
import net.minecraft.util.GsonHelper;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.world.Container;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.level.Level;
|
||||||
|
@@ -51,7 +51,7 @@ public class RecipeManager extends SimpleJsonResourceReloadListener {
|
||||||
|
super(RecipeManager.GSON, "recipes");
|
||||||
|
}
|
||||||
|
|
||||||
|
- protected void apply(Map<ResourceLocation, JsonElement> prepared, ResourceManager manager, ProfilerFiller profiler) {
|
||||||
|
+ protected void apply(Map<ResourceLocation, JsonElement> prepared, ResourceManager manager/*, ProfilerFiller profiler*/) { // Plazma - Completely remove Profiler
|
||||||
|
this.hasErrors = false;
|
||||||
|
// CraftBukkit start - SPIGOT-5667 make sure all types are populated and mutable
|
||||||
|
Map<RecipeType<?>, Object2ObjectLinkedOpenHashMap<ResourceLocation, RecipeHolder<?>>> map1 = Maps.newHashMap();
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
|
index e45a5282dc0ea3a35da24c7c3a0c7cda9a773f0c..1a5880ae3c3b17d49f0b083dff66e5619c08ec20 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
|
@@ -39,7 +39,7 @@ import net.minecraft.sounds.SoundSource;
|
||||||
|
import net.minecraft.util.AbortableIterationConsumer;
|
||||||
|
import net.minecraft.util.Mth;
|
||||||
|
import net.minecraft.util.RandomSource;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.world.DifficultyInstance;
|
||||||
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
|
import net.minecraft.world.damagesource.DamageSources;
|
||||||
|
@@ -137,7 +137,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
|
private final ResourceKey<DimensionType> dimensionTypeId;
|
||||||
|
private final Holder<DimensionType> dimensionTypeRegistration;
|
||||||
|
public final WritableLevelData levelData;
|
||||||
|
- private final Supplier<ProfilerFiller> profiler;
|
||||||
|
+ //private final Supplier<ProfilerFiller> profiler; // Plazma - Completely remove profiler
|
||||||
|
public final boolean isClientSide;
|
||||||
|
private final WorldBorder worldBorder;
|
||||||
|
private final BiomeManager biomeManager;
|
||||||
|
@@ -259,7 +259,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
|
|
||||||
|
public abstract ResourceKey<LevelStem> getTypeKey();
|
||||||
|
|
||||||
|
- protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.function.Function<org.spigotmc.SpigotWorldConfig, org.plazmamc.plazma.configurations.LevelConfigurations> plazmaLevelConfigurationCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor // Plazma
|
||||||
|
+ protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder/*, Supplier<ProfilerFiller> supplier*/, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.function.Function<org.spigotmc.SpigotWorldConfig, org.plazmamc.plazma.configurations.LevelConfigurations> plazmaLevelConfigurationCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor // Plazma // Plazma - Completely remove profiler
|
||||||
|
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
|
||||||
|
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper
|
||||||
|
this.plazmaLevelConfiguration = plazmaLevelConfigurationCreator.apply(this.spigotConfig); // Plazma
|
||||||
|
@@ -276,7 +276,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
|
}
|
||||||
|
|
||||||
|
// CraftBukkit end
|
||||||
|
- this.profiler = supplier;
|
||||||
|
+ //this.profiler = supplier; // Plazma - Completely remove profiler
|
||||||
|
this.levelData = worlddatamutable;
|
||||||
|
this.dimensionTypeRegistration = holder;
|
||||||
|
this.dimensionTypeId = (ResourceKey) holder.unwrapKey().orElseThrow(() -> {
|
||||||
|
@@ -1830,6 +1830,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* // Plazma - Completely remove profiler
|
||||||
|
public ProfilerFiller getProfiler() {
|
||||||
|
if (true || gg.pufferfish.pufferfish.PufferfishConfig.disableMethodProfiler) return net.minecraft.util.profiling.InactiveProfiler.INSTANCE; // Pufferfish // Purpur
|
||||||
|
return (ProfilerFiller) this.profiler.get();
|
||||||
|
@@ -1838,6 +1839,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
|
public Supplier<ProfilerFiller> getProfilerSupplier() {
|
||||||
|
return this.profiler;
|
||||||
|
}
|
||||||
|
+ */ // Plazma - Completely remove profiler
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BiomeManager getBiomeManager() {
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/PathNavigationRegion.java b/src/main/java/net/minecraft/world/level/PathNavigationRegion.java
|
||||||
|
index 0f1025495237aebe30132ace0832aa5718d6f9bb..0226280bbdb9d63831d93f980ee117da1eac08aa 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/PathNavigationRegion.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/PathNavigationRegion.java
|
||||||
|
@@ -8,7 +8,7 @@ import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.core.Holder;
|
||||||
|
import net.minecraft.core.SectionPos;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
|
import net.minecraft.world.entity.Entity;
|
||||||
|
import net.minecraft.world.level.biome.Biome;
|
||||||
|
@@ -155,7 +155,9 @@ public class PathNavigationRegion implements BlockGetter, CollisionGetter {
|
||||||
|
return this.level.getHeight();
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* // Plazma - Completely remove profiler
|
||||||
|
public ProfilerFiller getProfiler() {
|
||||||
|
return this.level.getProfiler();
|
||||||
|
}
|
||||||
|
+ */ // Plazma - Completely remove profiler
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
|
index 8d385708df97d47881929d4352f1b90286aad1a2..a25b93f98b2c525b146c979df2a95a9a749300a8 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
|
@@ -25,7 +25,7 @@ import net.minecraft.network.FriendlyByteBuf;
|
||||||
|
import net.minecraft.network.protocol.game.ClientboundLevelChunkPacketData;
|
||||||
|
import net.minecraft.server.level.FullChunkStatus;
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.world.entity.Entity;
|
||||||
|
import net.minecraft.world.level.ChunkPos;
|
||||||
|
import net.minecraft.world.level.Level;
|
||||||
|
@@ -445,7 +445,7 @@ public class LevelChunk extends ChunkAccess {
|
||||||
|
}
|
||||||
|
|
||||||
|
if (LightEngine.hasDifferentLightProperties(this, blockposition, iblockdata1, iblockdata)) {
|
||||||
|
- ProfilerFiller gameprofilerfiller = this.level.getProfiler();
|
||||||
|
+ //ProfilerFiller gameprofilerfiller = this.level.getProfiler(); // Plazma - Completely remove profiler
|
||||||
|
|
||||||
|
//gameprofilerfiller.push("updateSkyLightSources"); // Purpur
|
||||||
|
this.skyLightSources.update(this, j, i, l);
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java
|
||||||
|
index a8af51a25b0f99c3a64d9150fdfcd6b818aa7581..b9689131a7a46b46c0b75b86f2bb163d7de74921 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java
|
||||||
|
@@ -12,7 +12,7 @@ import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import net.minecraft.core.BlockPos;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.util.profiling.metrics.MetricCategory;
|
||||||
|
import net.minecraft.world.entity.Mob;
|
||||||
|
import net.minecraft.world.level.PathNavigationRegion;
|
||||||
|
@@ -44,7 +44,7 @@ public class PathFinder {
|
||||||
|
map.add(new java.util.AbstractMap.SimpleEntry<>(this.nodeEvaluator.getGoal(pos.getX(), pos.getY(), pos.getZ()), pos));
|
||||||
|
}
|
||||||
|
// Paper end
|
||||||
|
- Path path = this.findPath(world.getProfiler(), node, map, followRange, distance, rangeMultiplier);
|
||||||
|
+ Path path = this.findPath(/*world.getProfiler(), */node, map, followRange, distance, rangeMultiplier); // Plazma - Completely remove profiler
|
||||||
|
this.nodeEvaluator.done();
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
@@ -52,7 +52,7 @@ public class PathFinder {
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
// Paper start - optimize collection
|
||||||
|
- private Path findPath(ProfilerFiller profiler, Node startNode, List<Map.Entry<Target, BlockPos>> positions, float followRange, int distance, float rangeMultiplier) {
|
||||||
|
+ private Path findPath(/*ProfilerFiller profiler, */Node startNode, List<Map.Entry<Target, BlockPos>> positions, float followRange, int distance, float rangeMultiplier) { // Plazma - Completely remove profiler
|
||||||
|
//profiler.push("find_path"); // Purpur
|
||||||
|
//profiler.markForCharting(MetricCategory.PATH_FINDING); // Purpur
|
||||||
|
// Set<Target> set = positions.keySet();
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java b/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java
|
||||||
|
index dd375fffa727db76fa989248b9b836960974c372..45161f960a29395538c67461ebf864e595f6737f 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java
|
||||||
|
@@ -19,7 +19,7 @@ import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.server.packs.resources.PreparableReloadListener;
|
||||||
|
import net.minecraft.server.packs.resources.ResourceManager;
|
||||||
|
import net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
|
@@ -35,7 +35,7 @@ public class LootDataManager implements PreparableReloadListener, LootDataResolv
|
||||||
|
public LootDataManager() {}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
- public final CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier synchronizer, ResourceManager manager, ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler, Executor prepareExecutor, Executor applyExecutor) {
|
||||||
|
+ public final CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier synchronizer, ResourceManager manager/*, ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler*/, Executor prepareExecutor, Executor applyExecutor) { // Plazma - Completely remove profiler
|
||||||
|
Map<LootDataType<?>, Map<ResourceLocation, ?>> map = new HashMap();
|
||||||
|
CompletableFuture<?>[] acompletablefuture = (CompletableFuture[]) LootDataType.values().map((lootdatatype) -> {
|
||||||
|
return LootDataManager.scheduleElementParse(lootdatatype, manager, prepareExecutor, map);
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/ticks/LevelTicks.java b/src/main/java/net/minecraft/world/ticks/LevelTicks.java
|
||||||
|
index 0043c0087896a6df6910b0500da37d84b287c901..17a5928afade7e477cda34365dc8c72c52a6b758 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/ticks/LevelTicks.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/ticks/LevelTicks.java
|
||||||
|
@@ -23,7 +23,7 @@ import net.minecraft.Util;
|
||||||
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.core.SectionPos;
|
||||||
|
import net.minecraft.core.Vec3i;
|
||||||
|
-import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
|
+//import net.minecraft.util.profiling.ProfilerFiller; // Plazma - Completely remove profiler
|
||||||
|
import net.minecraft.world.level.ChunkPos;
|
||||||
|
import net.minecraft.world.level.levelgen.structure.BoundingBox;
|
||||||
|
|
||||||
|
@@ -32,7 +32,7 @@ public class LevelTicks<T> implements LevelTickAccess<T> {
|
||||||
|
return ScheduledTick.INTRA_TICK_DRAIN_ORDER.compare(a.peek(), b.peek());
|
||||||
|
};
|
||||||
|
private final LongPredicate tickCheck;
|
||||||
|
- private final Supplier<ProfilerFiller> profiler;
|
||||||
|
+ //private final Supplier<ProfilerFiller> profiler; // Plazma - Completely remove profiler
|
||||||
|
private final Long2ObjectMap<LevelChunkTicks<T>> allContainers = new Long2ObjectOpenHashMap<>();
|
||||||
|
private final Long2LongMap nextTickForContainer = Util.make(new Long2LongOpenHashMap(), (map) -> {
|
||||||
|
map.defaultReturnValue(Long.MAX_VALUE);
|
||||||
|
@@ -48,9 +48,9 @@ public class LevelTicks<T> implements LevelTickAccess<T> {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
- public LevelTicks(LongPredicate tickingFutureReadyPredicate, Supplier<ProfilerFiller> profilerGetter) {
|
||||||
|
+ public LevelTicks(LongPredicate tickingFutureReadyPredicate/*, Supplier<ProfilerFiller> profilerGetter*/) { // Plazma - Completely remove profiler
|
||||||
|
this.tickCheck = tickingFutureReadyPredicate;
|
||||||
|
- this.profiler = profilerGetter;
|
||||||
|
+ //this.profiler = profilerGetter; // Plazma - Completely remove profiler
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addContainer(ChunkPos pos, LevelChunkTicks<T> scheduler) {
|
||||||
|
@@ -88,7 +88,7 @@ public class LevelTicks<T> implements LevelTickAccess<T> {
|
||||||
|
public void tick(long time, int maxTicks, BiConsumer<BlockPos, T> ticker) {
|
||||||
|
//ProfilerFiller profilerFiller = this.profiler.get(); // Purpur
|
||||||
|
//profilerFiller.push("collect"); // Purpur
|
||||||
|
- this.collectTicks(time, maxTicks, null); // Purpur
|
||||||
|
+ this.collectTicks(time, maxTicks); // Purpur // Plazma - Completely remove profiler
|
||||||
|
//profilerFiller.popPush("run"); // Purpur
|
||||||
|
//profilerFiller.incrementCounter("ticksToRun", this.toRunThisTick.size()); // Purpur
|
||||||
|
this.runCollectedTicks(ticker);
|
||||||
|
@@ -97,7 +97,7 @@ public class LevelTicks<T> implements LevelTickAccess<T> {
|
||||||
|
//profilerFiller.pop(); // Purpur
|
||||||
|
}
|
||||||
|
|
||||||
|
- private void collectTicks(long time, int maxTicks, ProfilerFiller profiler) {
|
||||||
|
+ private void collectTicks(long time, int maxTicks/*, ProfilerFiller profiler*/) { // Plazma - Completely remove profiler
|
||||||
|
this.sortContainersToTick(time);
|
||||||
|
//profiler.incrementCounter("containersToTick", this.containersToTick.size()); // Purpur
|
||||||
|
this.drainContainers(time, maxTicks);
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
|
||||||
Date: Thu, 23 Mar 2023 21:18:47 +0900
|
|
||||||
Subject: [PATCH] Player configuration section
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
index ba542542cbab63b0764d437049123a76ccaca716..3590442906a3f1cf27f621a1e093c1c4cc0887ac 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
@@ -28,5 +28,12 @@ public class GlobalConfiguration extends ConfigurationPart {
|
|
||||||
public boolean enableRootUserWarnings = true;
|
|
||||||
public boolean enableSecureChatMarker = DO_OPTIMIZE;
|
|
||||||
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public Player player;
|
|
||||||
+ public class Player extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Wed, 27 Sep 2023 18:29:51 +0900
|
||||||
|
Subject: [PATCH] Add some missing Pufferfish configurations
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
||||||
|
index c97ef420581803b569d130b58a97f67d1fee54f2..e562dffdf84612b50c5d464f9913cfe8ec5c6279 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
||||||
|
@@ -168,10 +168,12 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
|
||||||
|
return dimensions.height - 0.1F * this.getScale();
|
||||||
|
}
|
||||||
|
|
||||||
|
+ private int behaviorTick = 0; // Plazma - Add missing pufferfish configurations
|
||||||
|
@Override
|
||||||
|
protected void customServerAiStep() {
|
||||||
|
//this.level().getProfiler().push("camelBrain"); // Purpur
|
||||||
|
Brain<Camel> brain = (Brain<Camel>) this.getBrain(); // Paper - decompile fix
|
||||||
|
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Plazma - Add missing pufferfish configurations
|
||||||
|
brain.tick((ServerLevel)this.level(), this);
|
||||||
|
//this.level().getProfiler().pop(); // Purpur
|
||||||
|
//this.level().getProfiler().push("camelActivityUpdate"); // Purpur
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
||||||
|
index 795c93352dfa69fad0e034a8377eceb6dc1e81da..e743b4891c1e56f82d40f798e456a701b0efbc73 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
||||||
|
@@ -527,9 +527,11 @@ public class Sniffer extends Animal {
|
||||||
|
return Brain.provider(SnifferAi.MEMORY_TYPES, SnifferAi.SENSOR_TYPES);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ private int behaviorTick; // Plazma - Add missing pufferfish configurations
|
||||||
|
@Override
|
||||||
|
protected void customServerAiStep() {
|
||||||
|
//this.level().getProfiler().push("snifferBrain"); // Purpur
|
||||||
|
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Plazma - Add missing pufferfish configurations
|
||||||
|
this.getBrain().tick((ServerLevel) this.level(), this);
|
||||||
|
//this.level().getProfiler().popPush("snifferActivityUpdate"); // Purpur
|
||||||
|
SnifferAi.updateActivity(this);
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
||||||
|
index 66d47c1613532189e761c0f48d893652c17fe240..8a5d8f9ad1bd94ca53c1ffd1872275c07a52f0b7 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
||||||
|
@@ -319,7 +319,7 @@ public class Warden extends Monster implements VibrationSystem {
|
||||||
|
ServerLevel worldserver = (ServerLevel) this.level();
|
||||||
|
|
||||||
|
//worldserver.getProfiler().push("wardenBrain"); // Purpur
|
||||||
|
- if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
|
||||||
|
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Plazma
|
||||||
|
this.getBrain().tick(worldserver, this);
|
||||||
|
//this.level().getProfiler().pop(); // Purpur
|
||||||
|
super.customServerAiStep();
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
|
||||||
Date: Thu, 23 Mar 2023 21:35:15 +0900
|
|
||||||
Subject: [PATCH] Add permission to bypass reducedDebugInfo gamerule
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
||||||
index 030166f46b2ce23976a679685ffccf8b5439ce48..427a50198c80459fb4d2364a859ed978b1ec7871 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
||||||
@@ -273,7 +273,7 @@ public abstract class PlayerList {
|
|
||||||
ServerGamePacketListenerImpl playerconnection = new ServerGamePacketListenerImpl(this.server, connection, player);
|
|
||||||
GameRules gamerules = worldserver1.getGameRules();
|
|
||||||
boolean flag = gamerules.getBoolean(GameRules.RULE_DO_IMMEDIATE_RESPAWN);
|
|
||||||
- boolean flag1 = gamerules.getBoolean(GameRules.RULE_REDUCEDDEBUGINFO);
|
|
||||||
+ boolean flag1 = gamerules.getBoolean(GameRules.RULE_REDUCEDDEBUGINFO) || !player.getBukkitEntity().hasPermission("plazma.bypass-reduced-debug-info-gamerule"); // Plazma
|
|
||||||
|
|
||||||
// Spigot - view distance
|
|
||||||
playerconnection.send(new ClientboundLoginPacket(player.getId(), worlddata.isHardcore(), player.gameMode.getGameModeForPlayer(), player.gameMode.getPreviousGameModeForPlayer(), this.server.levelKeys(), this.synchronizedRegistries, worldserver1.dimensionTypeId(), worldserver1.dimension(), BiomeManager.obfuscateSeed(worldserver1.getSeed()), this.getMaxPlayers(), worldserver1.getChunkSource().chunkMap.playerChunkManager.getTargetSendDistance(), worldserver1.getChunkSource().chunkMap.playerChunkManager.getTargetTickViewDistance(), flag1, !flag, worldserver1.isDebug(), worldserver1.isFlat(), player.getLastDeathLocation())); // Paper - replace old player chunk management
|
|
||||||
@@ -1298,7 +1298,7 @@ public abstract class PlayerList {
|
|
||||||
player.getEntityData().refresh(player); // CraftBukkkit - SPIGOT-7218: sync metadata
|
|
||||||
player.connection.send(new ClientboundSetCarriedItemPacket(player.getInventory().selected));
|
|
||||||
// CraftBukkit start - from GameRules
|
|
||||||
- int i = player.level.getGameRules().getBoolean(GameRules.RULE_REDUCEDDEBUGINFO) ? 22 : 23;
|
|
||||||
+ int i = player.level.getGameRules().getBoolean(GameRules.RULE_REDUCEDDEBUGINFO) && !player.getBukkitEntity().hasPermission("plazma.bypass-reduced-debug-info-gamerule") ? 22 : 23; // Plazma
|
|
||||||
player.connection.send(new ClientboundEntityEventPacket(player, (byte) i));
|
|
||||||
float immediateRespawn = player.level.getGameRules().getBoolean(GameRules.RULE_DO_IMMEDIATE_RESPAWN) ? 1.0F: 0.0F;
|
|
||||||
player.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.IMMEDIATE_RESPAWN, immediateRespawn));
|
|
||||||
70
patches/server/0014-Configurable-nether-portal-size.patch
Normal file
70
patches/server/0014-Configurable-nether-portal-size.patch
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Sat, 25 Mar 2023 00:10:52 +0900
|
||||||
|
Subject: [PATCH] Configurable nether portal size
|
||||||
|
|
||||||
|
Configurable nether portal size
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/portal/PortalShape.java b/src/main/java/net/minecraft/world/level/portal/PortalShape.java
|
||||||
|
index e7554ec800f321e4e34c926c53f2375a8c3aa979..c7f974e0b614afa1ced716ff7b6c67ee037a4071 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/portal/PortalShape.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/portal/PortalShape.java
|
||||||
|
@@ -100,7 +100,7 @@ public class PortalShape {
|
||||||
|
private int calculateWidth() {
|
||||||
|
int i = this.getDistanceUntilEdgeAboveFrame(this.bottomLeft, this.rightDir);
|
||||||
|
|
||||||
|
- return i >= 2 && i <= 21 ? i : 0;
|
||||||
|
+ return i >= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.netherPortal.size.width.min() && i <= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.netherPortal.size.width.max() ? i : 0; // Plazma
|
||||||
|
}
|
||||||
|
|
||||||
|
private int getDistanceUntilEdgeAboveFrame(BlockPos pos, Direction direction) {
|
||||||
|
@@ -133,7 +133,7 @@ public class PortalShape {
|
||||||
|
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();
|
||||||
|
int i = this.getDistanceUntilTop(blockposition_mutableblockposition);
|
||||||
|
|
||||||
|
- return i >= 3 && i <= 21 && this.hasTopFrame(blockposition_mutableblockposition, i) ? i : 0;
|
||||||
|
+ return i >= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.netherPortal.size.height.min() && i <= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.netherPortal.size.height.max() && this.hasTopFrame(blockposition_mutableblockposition, i) ? i : 0; // Plazma
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean hasTopFrame(BlockPos.MutableBlockPos pos, int height) {
|
||||||
|
@@ -187,7 +187,7 @@ public class PortalShape {
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isValid() {
|
||||||
|
- return this.bottomLeft != null && this.width >= 2 && this.width <= 21 && this.height >= 3 && this.height <= 21;
|
||||||
|
+ return this.bottomLeft != null && this.width >= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.netherPortal.size.width.min() && this.width <= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.netherPortal.size.width.max() && this.height >= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.netherPortal.size.height.min() && this.height <= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.netherPortal.size.height.max(); // Plazma
|
||||||
|
}
|
||||||
|
|
||||||
|
// CraftBukkit start - return boolean
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
index d990c031255daf0d43541efe175c5b52736a6990..36c367c577e61422e51ab08c5aaa2a88c94e1636 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
@@ -39,6 +39,27 @@ public class LevelConfigurations extends ConfigurationPart {
|
||||||
|
public NetherPortal netherPortal;
|
||||||
|
public class NetherPortal extends ConfigurationPart {
|
||||||
|
|
||||||
|
+ public Size size;
|
||||||
|
+ public class Size extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ public Width width;
|
||||||
|
+ public class Width extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ int min; public int min() { return Math.max(this.min, 1); }
|
||||||
|
+ int max; public int max() { return Math.max(this.min, this.max); }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public Height height;
|
||||||
|
+ public class Height extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ int min; public int min() { return Math.max(this.min, 2); }
|
||||||
|
+ int max; public int max() { return Math.max(this.min, this.max); }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
394
patches/server/0015-Reduce-create-random-instance.patch
Normal file
394
patches/server/0015-Reduce-create-random-instance.patch
Normal file
@@ -0,0 +1,394 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Wed, 27 Sep 2023 21:18:22 +0900
|
||||||
|
Subject: [PATCH] Reduce create random instance
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
|
index 44248dc470d0882b7287debd1993cedf0f238aca..ee571f465ca1e83e760a4d57b3d11accb53c6cfe 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
|
@@ -228,7 +228,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
private ServerStatus status;
|
||||||
|
@Nullable
|
||||||
|
private ServerStatus.Favicon statusIcon;
|
||||||
|
- private final RandomSource random;
|
||||||
|
+ private final RandomSource random; public RandomSource getRandom() { return this.random; } // Plazma
|
||||||
|
public final DataFixer fixerUpper;
|
||||||
|
private String localIp;
|
||||||
|
private int port;
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/commands/SpreadPlayersCommand.java b/src/main/java/net/minecraft/server/commands/SpreadPlayersCommand.java
|
||||||
|
index f5bc3497831877e0c2b7dc1cbd8abe3a67d7695b..7834700eb0e1d789f7b338b535a0a9f8965201ef 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/commands/SpreadPlayersCommand.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/commands/SpreadPlayersCommand.java
|
||||||
|
@@ -65,7 +65,7 @@ public class SpreadPlayersCommand {
|
||||||
|
if (maxY < j) {
|
||||||
|
throw SpreadPlayersCommand.ERROR_INVALID_MAX_HEIGHT.create(maxY, j);
|
||||||
|
} else {
|
||||||
|
- RandomSource randomsource = RandomSource.create();
|
||||||
|
+ RandomSource randomsource = worldserver.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? worldserver.getRandom() : RandomSource.create(); // Plazma - Reduce create random instance
|
||||||
|
double d0 = (double) (center.x - maxRange);
|
||||||
|
double d1 = (double) (center.y - maxRange);
|
||||||
|
double d2 = (double) (center.x + maxRange);
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
|
index 99cf8ce63316e127a5ee84cdd96df80d440dc0c3..c3bb82793ecd5333d8dbef7a90729d80616ea4ce 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
|
@@ -448,7 +448,7 @@ public class ServerPlayer extends Player {
|
||||||
|
long l = k * k;
|
||||||
|
int i1 = l > 2147483647L ? Integer.MAX_VALUE : (int) l;
|
||||||
|
int j1 = this.getCoprime(i1);
|
||||||
|
- int k1 = RandomSource.create().nextInt(i1);
|
||||||
|
+ int k1 = (worldserver.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? worldserver.getRandom() : RandomSource.create()).nextInt(i1); // Plazma - Reduce create random instance
|
||||||
|
|
||||||
|
for (int l1 = 0; l1 < i1; ++l1) {
|
||||||
|
int i2 = (k1 + j1 * l1) % i1;
|
||||||
|
@@ -485,7 +485,7 @@ public class ServerPlayer extends Player {
|
||||||
|
long l = k * k;
|
||||||
|
int i1 = l > 2147483647L ? Integer.MAX_VALUE : (int) l;
|
||||||
|
int j1 = this.getCoprime(i1);
|
||||||
|
- int k1 = RandomSource.create().nextInt(i1);
|
||||||
|
+ int k1 = (world.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? world.getRandom() : RandomSource.create()).nextInt(i1); // Plazma - Reduce create random instance
|
||||||
|
|
||||||
|
for (int l1 = 0; l1 < i1; ++l1) {
|
||||||
|
int i2 = (k1 + j1 * l1) % i1;
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||||
|
index d38685f82d2e6c4e71179bf3a85a8b183aa6c44b..1265e6a521222be0c957065f5b788d68cb3d863f 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||||
|
@@ -70,7 +70,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
|
||||||
|
this.serverId = "";
|
||||||
|
this.server = server;
|
||||||
|
this.connection = connection;
|
||||||
|
- this.challenge = Ints.toByteArray(RandomSource.create().nextInt());
|
||||||
|
+ this.challenge = Ints.toByteArray((org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.reduceCreateRandomInstance ? server.getRandom() : RandomSource.create()).nextInt()); // Plazma - Reduce create random instance
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java b/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java
|
||||||
|
index 1ef089dbf83de35d875c00efdf468c397be56978..7f4c0827d2269baa032dac4798fe6c2a740ba7fa 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java
|
||||||
|
@@ -349,7 +349,7 @@ public class QueryThreadGs4 extends GenericThread {
|
||||||
|
this.identBytes[2] = bs[5];
|
||||||
|
this.identBytes[3] = bs[6];
|
||||||
|
this.ident = new String(this.identBytes, StandardCharsets.UTF_8);
|
||||||
|
- this.challenge = RandomSource.create().nextInt(16777216);
|
||||||
|
+ this.challenge = (org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.reduceCreateRandomInstance ? net.minecraft.server.MinecraftServer.getServer().getRandom() : RandomSource.create()).nextInt(16777216); // Plazma - Reduce create random instance
|
||||||
|
this.challengeBytes = String.format(Locale.ROOT, "\t%s%d\u0000", this.ident, this.challenge).getBytes(StandardCharsets.UTF_8);
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/util/datafix/fixes/EntityZombieVillagerTypeFix.java b/src/main/java/net/minecraft/util/datafix/fixes/EntityZombieVillagerTypeFix.java
|
||||||
|
index 8311073e44ca8a2c8ac6f6864a875d6c90338664..8e488389b41c63809993262183204b77f73c0e55 100644
|
||||||
|
--- a/src/main/java/net/minecraft/util/datafix/fixes/EntityZombieVillagerTypeFix.java
|
||||||
|
+++ b/src/main/java/net/minecraft/util/datafix/fixes/EntityZombieVillagerTypeFix.java
|
||||||
|
@@ -8,7 +8,7 @@ import net.minecraft.util.RandomSource;
|
||||||
|
|
||||||
|
public class EntityZombieVillagerTypeFix extends NamedEntityFix {
|
||||||
|
private static final int PROFESSION_MAX = 6;
|
||||||
|
- private static final RandomSource RANDOM = RandomSource.create();
|
||||||
|
+ private static final RandomSource RANDOM = org.plazmamc.plazma.PlazmaOptions.createNewRandom() ? RandomSource.create() : net.minecraft.server.MinecraftServer.getServer().getRandom(); // Plazma - Reduce create random source
|
||||||
|
|
||||||
|
public EntityZombieVillagerTypeFix(Schema outputSchema, boolean changesType) {
|
||||||
|
super(outputSchema, changesType, "EntityZombieVillagerTypeFix", References.ENTITY, "Zombie");
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java b/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java
|
||||||
|
index fe3ab3d388f0481fb0db06b7f730f868dbf8e8a5..265d8479b5c02994dba4288060b842789ebc7179 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java
|
||||||
|
@@ -15,7 +15,7 @@ import net.minecraft.util.RandomSource;
|
||||||
|
|
||||||
|
public class ShufflingList<U> implements Iterable<U> {
|
||||||
|
public final List<ShufflingList.WeightedEntry<U>> entries; // Paper - public
|
||||||
|
- private final RandomSource random = RandomSource.create();
|
||||||
|
+ private final RandomSource random = org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.reduceCreateRandomInstance ? net.minecraft.server.MinecraftServer.getServer().getRandom() : RandomSource.create(); // Plazma
|
||||||
|
private final boolean isUnsafe; // Paper
|
||||||
|
|
||||||
|
public ShufflingList() {
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java
|
||||||
|
index 7094701d213c73ba47ace806962244c10fdf4dda..288ae299240c9626e576a7ae1c45c53d83f7f097 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java
|
||||||
|
@@ -8,7 +8,7 @@ import net.minecraft.world.entity.ai.memory.MemoryModuleType;
|
||||||
|
import net.minecraft.world.entity.ai.targeting.TargetingConditions;
|
||||||
|
|
||||||
|
public abstract class Sensor<E extends LivingEntity> {
|
||||||
|
- private static final RandomSource RANDOM = RandomSource.createThreadSafe();
|
||||||
|
+ private static final RandomSource RANDOM = org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.reduceCreateRandomInstance && org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.suppressThreadSafeRandom ? net.minecraft.server.MinecraftServer.getServer().getRandom() : RandomSource.createThreadSafe(); // Plazma - Reduce create random instance
|
||||||
|
private static final int DEFAULT_SCAN_RATE = 20;
|
||||||
|
protected static final int TARGETING_RANGE = 16;
|
||||||
|
private static final TargetingConditions TARGET_CONDITIONS = TargetingConditions.forNonCombat().range(16.0D);
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/AngerManagement.java b/src/main/java/net/minecraft/world/entity/monster/warden/AngerManagement.java
|
||||||
|
index ece82743df21f0b776382821ad75dee96d0a0748..c25affe40eea32e1964aa4c62fdd27faa37baf28 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/monster/warden/AngerManagement.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/AngerManagement.java
|
||||||
|
@@ -32,7 +32,7 @@ public class AngerManagement {
|
||||||
|
@VisibleForTesting
|
||||||
|
protected static final int MAX_ANGER = 150;
|
||||||
|
private static final int DEFAULT_ANGER_DECREASE = 1;
|
||||||
|
- private int conversionDelay = Mth.randomBetweenInclusive(RandomSource.create(), 0, 2);
|
||||||
|
+ private int conversionDelay = Mth.randomBetweenInclusive((org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.reduceCreateRandomInstance ? net.minecraft.server.MinecraftServer.getServer().getRandom() : RandomSource.create()), 0, 2); // Plazma - Reduce create random instance
|
||||||
|
int highestAnger;
|
||||||
|
private static final Codec<Pair<UUID, Integer>> SUSPECT_ANGER_PAIR = RecordCodecBuilder.create((instance) -> {
|
||||||
|
return instance.group(UUIDUtil.CODEC.fieldOf("uuid").forGetter(Pair::getFirst), ExtraCodecs.NON_NEGATIVE_INT.fieldOf("anger").forGetter(Pair::getSecond)).apply(instance, Pair::of);
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java
|
||||||
|
index a5443f92786427c42092aec8350e7ab37704db7a..b1a44e460175b974e8830030ce61e523533bef8c 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java
|
||||||
|
@@ -32,7 +32,7 @@ public class WanderingTraderSpawner implements CustomSpawner {
|
||||||
|
private static final int SPAWN_CHANCE_INCREASE = 25;
|
||||||
|
private static final int SPAWN_ONE_IN_X_CHANCE = 10;
|
||||||
|
private static final int NUMBER_OF_SPAWN_ATTEMPTS = 10;
|
||||||
|
- private final RandomSource random = RandomSource.create();
|
||||||
|
+ private final RandomSource random = org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.reduceCreateRandomInstance ? net.minecraft.server.MinecraftServer.getServer().getRandom() : RandomSource.create(); // Plazma - reduce create random instace
|
||||||
|
private final ServerLevelData serverLevelData;
|
||||||
|
private int tickDelay;
|
||||||
|
private int spawnDelay;
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
||||||
|
index a9eaa079a43bc8a5e81deaf6df5ce2f9c53cb319..f1b0b8fd1042f2ce8a514000d95df5123223cc27 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
||||||
|
@@ -86,7 +86,7 @@ public class FishingHook extends Projectile {
|
||||||
|
|
||||||
|
private FishingHook(EntityType<? extends FishingHook> type, Level world, int luckOfTheSeaLevel, int lureLevel) {
|
||||||
|
super(type, world);
|
||||||
|
- this.syncronizedRandom = RandomSource.create();
|
||||||
|
+ this.syncronizedRandom = world.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? world.getRandom() : RandomSource.create(); // Plazma - Reduce create random instance
|
||||||
|
this.openWater = true;
|
||||||
|
this.currentState = FishingHook.FishHookState.FLYING;
|
||||||
|
this.noCulling = true;
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/raid/Raid.java b/src/main/java/net/minecraft/world/entity/raid/Raid.java
|
||||||
|
index eaa2943b667967f93f28d9d794d702fdaeb670ec..75ba586277ece1aa56186679d3a8ebf0b3f7a0cb 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/raid/Raid.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/raid/Raid.java
|
||||||
|
@@ -109,7 +109,7 @@ public class Raid {
|
||||||
|
|
||||||
|
public Raid(int id, ServerLevel world, BlockPos pos) {
|
||||||
|
this.raidEvent = new ServerBossEvent(Raid.RAID_NAME_COMPONENT, BossEvent.BossBarColor.RED, BossEvent.BossBarOverlay.NOTCHED_10);
|
||||||
|
- this.random = RandomSource.create();
|
||||||
|
+ this.random = world.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? world.getRandom() : RandomSource.create(); // Plazma - Reduce create random instace
|
||||||
|
this.waveSpawnPos = Optional.empty();
|
||||||
|
this.id = id;
|
||||||
|
this.level = world;
|
||||||
|
@@ -123,7 +123,7 @@ public class Raid {
|
||||||
|
|
||||||
|
public Raid(ServerLevel world, CompoundTag nbt) {
|
||||||
|
this.raidEvent = new ServerBossEvent(Raid.RAID_NAME_COMPONENT, BossEvent.BossBarColor.RED, BossEvent.BossBarOverlay.NOTCHED_10);
|
||||||
|
- this.random = RandomSource.create();
|
||||||
|
+ this.random = world.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? world.getRandom() : RandomSource.create(); // Plazma - Reduce create random instace
|
||||||
|
this.waveSpawnPos = Optional.empty();
|
||||||
|
this.level = world;
|
||||||
|
this.id = nbt.getInt("Id");
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
|
||||||
|
index d604b7ec46f08993647979ed220a84842e3fe325..f2a3049252a37ca6d6d5cb1cc51d512c7ebf5679 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
|
||||||
|
@@ -97,7 +97,7 @@ public class EnchantmentMenu extends AbstractContainerMenu {
|
||||||
|
}
|
||||||
|
// Purpur end
|
||||||
|
};
|
||||||
|
- this.random = RandomSource.create();
|
||||||
|
+ this.random = playerInventory.player.level().plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? playerInventory.player.level().random : RandomSource.create(); // Plazma - Reduce create random instace
|
||||||
|
this.enchantmentSeed = DataSlot.standalone();
|
||||||
|
this.costs = new int[3];
|
||||||
|
this.enchantClue = new int[]{-1, -1, -1};
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||||
|
index ef9b1687dd2dfda5398523140aecc678b4690642..66a1db10249995144490dac292e09fd0aa30f168 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||||
|
@@ -82,7 +82,7 @@ public class Explosion {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Explosion(Level world, @Nullable Entity entity, @Nullable DamageSource damageSource, @Nullable ExplosionDamageCalculator behavior, double x, double y, double z, float power, boolean createFire, Explosion.BlockInteraction destructionType) {
|
||||||
|
- this.random = RandomSource.create();
|
||||||
|
+ this.random = world.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? world.getRandom() : RandomSource.create(); // Plazma - Reduce create random instace
|
||||||
|
this.toBlow = new ObjectArrayList();
|
||||||
|
this.hitPlayers = Maps.newHashMap();
|
||||||
|
this.level = world;
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
|
index 1a5880ae3c3b17d49f0b083dff66e5619c08ec20..e175cde654b36d8ffc98a36ef099d22e9f1d15e9 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
|
@@ -124,16 +124,16 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
|
public final Thread thread;
|
||||||
|
private final boolean isDebug;
|
||||||
|
private int skyDarken;
|
||||||
|
- protected int randValue = RandomSource.create().nextInt();
|
||||||
|
protected final int addend = 1013904223;
|
||||||
|
protected float oRainLevel;
|
||||||
|
public float rainLevel;
|
||||||
|
protected float oThunderLevel;
|
||||||
|
public float thunderLevel;
|
||||||
|
public final RandomSource random = RandomSource.create();
|
||||||
|
+ protected int randValue = org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.reduceCreateRandomInstance ? random.nextInt() : RandomSource.create().nextInt(); // Plazma - Reduce create random instace
|
||||||
|
/** @deprecated */
|
||||||
|
@Deprecated
|
||||||
|
- private final RandomSource threadSafeRandom = RandomSource.createThreadSafe();
|
||||||
|
+ private final RandomSource threadSafeRandom = org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.suppressThreadSafeRandom ? random : RandomSource.createThreadSafe(); // Plazma - Reduce create random instace
|
||||||
|
private final ResourceKey<DimensionType> dimensionTypeId;
|
||||||
|
private final Holder<DimensionType> dimensionTypeRegistration;
|
||||||
|
public final WritableLevelData levelData;
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/block/entity/EnchantmentTableBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/EnchantmentTableBlockEntity.java
|
||||||
|
index b7370e64fd0d50e8725d7d5afc30af2e8bc8455d..b8d2c91a343478d89a5242254f3379dfa2556348 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/block/entity/EnchantmentTableBlockEntity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/block/entity/EnchantmentTableBlockEntity.java
|
||||||
|
@@ -22,7 +22,7 @@ public class EnchantmentTableBlockEntity extends BlockEntity implements Nameable
|
||||||
|
public float rot;
|
||||||
|
public float oRot;
|
||||||
|
public float tRot;
|
||||||
|
- private static final RandomSource RANDOM = RandomSource.create();
|
||||||
|
+ private static final RandomSource RANDOM = org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.reduceCreateRandomInstance ? net.minecraft.server.MinecraftServer.getServer().getRandom() : RandomSource.create(); // Plazma - Reduce create random instace
|
||||||
|
private Component name;
|
||||||
|
private int lapis = 0; // Purpur
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
|
||||||
|
index 7291e4056b8e46ab59b71818388ac55fbb12993f..22faea52bc54cdcb52ff18a9d5a8c1bd1a64fa73 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
|
||||||
|
@@ -368,7 +368,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void spawnGatewayPortal(ServerLevel world, BlockPos pos, EndGatewayConfiguration config) {
|
||||||
|
- Feature.END_GATEWAY.place(config, world, world.getChunkSource().getGenerator(), RandomSource.create(), pos);
|
||||||
|
+ Feature.END_GATEWAY.place(config, world, world.getChunkSource().getGenerator(), (world.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? world.getRandom() : RandomSource.create()), pos); // Plazma - Reduce create random instance
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java
|
||||||
|
index f8cd23fb6ea7909b8f30bd21d3f2c7bcc483ef21..c85340232624529d4685bf34035bb62d294695c9 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java
|
||||||
|
@@ -221,7 +221,7 @@ public class ChunkGeneratorStructureState {
|
||||||
|
List<CompletableFuture<ChunkPos>> list = new ArrayList(j);
|
||||||
|
int k = placement.spread();
|
||||||
|
HolderSet<Biome> holderset = placement.preferredBiomes();
|
||||||
|
- RandomSource randomsource = RandomSource.create();
|
||||||
|
+ RandomSource randomsource = org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.reduceCreateRandomInstance ? net.minecraft.server.MinecraftServer.getServer().getRandom() : RandomSource.create(); // Plazma - Reduce create random instace
|
||||||
|
|
||||||
|
// Paper start
|
||||||
|
if (this.conf.strongholdSeed != null && structureSetEntry.is(net.minecraft.world.level.levelgen.structure.BuiltinStructureSets.STRONGHOLDS)) {
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/dimension/end/DragonRespawnAnimation.java b/src/main/java/net/minecraft/world/level/dimension/end/DragonRespawnAnimation.java
|
||||||
|
index 18fce94f0d4b9d28e3afec61c7578f672973a71f..2dfb801ec15a372bcb997942969fec64aea9e49e 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/dimension/end/DragonRespawnAnimation.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/dimension/end/DragonRespawnAnimation.java
|
||||||
|
@@ -62,7 +62,7 @@ public enum DragonRespawnAnimation {
|
||||||
|
|
||||||
|
world.explode((Entity)null, (double)((float)endSpike.getCenterX() + 0.5F), (double)endSpike.getHeight(), (double)((float)endSpike.getCenterZ() + 0.5F), 5.0F, Level.ExplosionInteraction.BLOCK);
|
||||||
|
SpikeConfiguration spikeConfiguration = new SpikeConfiguration(true, ImmutableList.of(endSpike), new BlockPos(0, 128, 0));
|
||||||
|
- Feature.END_SPIKE.place(spikeConfiguration, world, world.getChunkSource().getGenerator(), RandomSource.create(), new BlockPos(endSpike.getCenterX(), 45, endSpike.getCenterZ()));
|
||||||
|
+ Feature.END_SPIKE.place(spikeConfiguration, world, world.getChunkSource().getGenerator(), (world.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? world.getRandom() : RandomSource.create()), new BlockPos(endSpike.getCenterX(), 45, endSpike.getCenterZ())); // Plazma - Reduce create random instance
|
||||||
|
}
|
||||||
|
} else if (bl) {
|
||||||
|
fight.setRespawnStage(SUMMONING_DRAGON);
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
|
||||||
|
index c1ff2e15bc5da1a642872ac0fdcdc457e8abb063..67b4a65980059b0b2d4929c619c400c48e201e18 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
|
||||||
|
@@ -472,7 +472,7 @@ public class EndDragonFight {
|
||||||
|
this.level.registryAccess().registry(Registries.CONFIGURED_FEATURE).flatMap((iregistry) -> {
|
||||||
|
return iregistry.getHolder(EndFeatures.END_GATEWAY_DELAYED);
|
||||||
|
}).ifPresent((holder_c) -> {
|
||||||
|
- ((ConfiguredFeature) holder_c.value()).place(this.level, this.level.getChunkSource().getGenerator(), RandomSource.create(), pos);
|
||||||
|
+ ((ConfiguredFeature) holder_c.value()).place(this.level, this.level.getChunkSource().getGenerator(), (this.level.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? this.level.getRandom() : RandomSource.create()), pos); // Plazma - Reduce create random instace
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -490,7 +490,7 @@ public class EndDragonFight {
|
||||||
|
this.portalLocation = this.portalLocation.atY(this.level.getMinBuildHeight() + 1);
|
||||||
|
}
|
||||||
|
// Paper end
|
||||||
|
- if (worldgenendtrophy.place(FeatureConfiguration.NONE, this.level, this.level.getChunkSource().getGenerator(), RandomSource.create(), this.portalLocation)) {
|
||||||
|
+ if (worldgenendtrophy.place(FeatureConfiguration.NONE, this.level, this.level.getChunkSource().getGenerator(), (this.level.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? this.level.getRandom() : RandomSource.create()), this.portalLocation)) { // Plazma - Reduce create random instace
|
||||||
|
int i = Mth.positiveCeilDiv(4, 16);
|
||||||
|
|
||||||
|
this.level.getChunkSource().chunkMap.waitForLightBeforeSending(new ChunkPos(this.portalLocation), i);
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/levelgen/WorldOptions.java b/src/main/java/net/minecraft/world/level/levelgen/WorldOptions.java
|
||||||
|
index d38cabc9eeb45dd863e5f87b7df3b6327ea6a4a2..d4bcdbc6ea420bdb05c0a8859d368213d87dba67 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/levelgen/WorldOptions.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/levelgen/WorldOptions.java
|
||||||
|
@@ -77,6 +77,6 @@ public class WorldOptions {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long randomSeed() {
|
||||||
|
- return RandomSource.create().nextLong();
|
||||||
|
+ return (org.plazmamc.plazma.PlazmaOptions.createNewRandom() ? RandomSource.create() : net.minecraft.server.MinecraftServer.getServer().getRandom()).nextLong(); // Plazma - Reduce create random instance
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java
|
||||||
|
index 68c5af9b67a2834ee6e2f80ceefa19c3a982b8ed..aabbf9ae1b772c9101e6f36236e5d34a5620a4d3 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java
|
||||||
|
@@ -2,6 +2,8 @@ package org.bukkit.craftbukkit.entity;
|
||||||
|
|
||||||
|
import com.google.common.base.Preconditions;
|
||||||
|
import java.util.Random;
|
||||||
|
+
|
||||||
|
+import net.minecraft.util.RandomSource;
|
||||||
|
import net.minecraft.world.entity.projectile.FireworkRocketEntity;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.item.Items;
|
||||||
|
@@ -14,11 +16,12 @@ import org.bukkit.inventory.meta.FireworkMeta;
|
||||||
|
|
||||||
|
public class CraftFirework extends CraftProjectile implements Firework {
|
||||||
|
|
||||||
|
- private final Random random = new Random();
|
||||||
|
+ private final net.minecraft.util.RandomSource random; // Plazma - Reduce create random instance
|
||||||
|
//private CraftItemStack item; // Paper - Remove usage, not accurate representation of current item.
|
||||||
|
|
||||||
|
public CraftFirework(CraftServer server, FireworkRocketEntity entity) {
|
||||||
|
super(server, entity);
|
||||||
|
+ this.random = this.getHandle().level().plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? this.getHandle().level().getRandom() : RandomSource.create(); // Plazma - Reduce create random instance
|
||||||
|
|
||||||
|
// Paper Start - Expose firework item directly
|
||||||
|
// ItemStack item = this.getHandle().getEntityData().get(FireworkRocketEntity.DATA_ID_FIREWORKS_ITEM);
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/PlazmaOptions.java b/src/main/java/org/plazmamc/plazma/PlazmaOptions.java
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000000000000000000000000000000000..4421110e20a006c3773e922eb0facc88174ffb43
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/PlazmaOptions.java
|
||||||
|
@@ -0,0 +1,10 @@
|
||||||
|
+package org.plazmamc.plazma;
|
||||||
|
+
|
||||||
|
+public class PlazmaOptions {
|
||||||
|
+
|
||||||
|
+ static final boolean DONT_CREATE_NEW_RANDOM_INSTANCE = Boolean.getBoolean("Plazma.doNotCreateRandomInstance");
|
||||||
|
+ public static boolean createNewRandom() {
|
||||||
|
+ return !DONT_CREATE_NEW_RANDOM_INSTANCE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+}
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
index 00c95194788d56f539d1c75e9a1ce48e950c096c..9e26e598d7c381368de422ab0c3cc7936e3bbb6d 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
@@ -18,7 +18,7 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||||
|
static void set(@NotNull GlobalConfiguration instance, boolean test) {
|
||||||
|
GlobalConfiguration.instance = instance;
|
||||||
|
if (test) {
|
||||||
|
-
|
||||||
|
+ instance.misc.reduceCreateRandomInstance = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -34,6 +34,9 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
+ public boolean reduceCreateRandomInstance = DO_OPTIMIZE;
|
||||||
|
+ public boolean suppressThreadSafeRandom = DO_OPTIMIZE;
|
||||||
|
+
|
||||||
|
}
|
||||||
|
|
||||||
|
public Player player;
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
index 36c367c577e61422e51ab08c5aaa2a88c94e1636..146af5bb54da67c134485dc67e8d9a569889434a 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
@@ -26,6 +26,8 @@ public class LevelConfigurations extends ConfigurationPart {
|
||||||
|
public Misc misc;
|
||||||
|
public class Misc extends ConfigurationPart {
|
||||||
|
|
||||||
|
+ public boolean reduceCreateRandomInstance = DO_OPTIMIZE;
|
||||||
|
+
|
||||||
|
}
|
||||||
|
|
||||||
|
public Entity entity;
|
||||||
32
patches/server/0016-Apply-various-optimizations.patch
Normal file
32
patches/server/0016-Apply-various-optimizations.patch
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Wed, 27 Sep 2023 22:11:15 +0900
|
||||||
|
Subject: [PATCH] Apply various optimizations
|
||||||
|
|
||||||
|
[REFERENCE PATCHES]
|
||||||
|
Akarin - Swaps the predicate order of collision
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
index 1ca91631b03c9690b4f661ecfb4d500d23cb47ec..4461dc1b76cc2939130680f8039b69af902aa050 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
@@ -2105,8 +2105,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
|
public void playerTouch(Player player) {}
|
||||||
|
|
||||||
|
public void push(Entity entity) {
|
||||||
|
+ if (entity.noPhysics || this.noPhysics) return; // Plazma
|
||||||
|
if (!this.isPassengerOfSameVehicle(entity)) {
|
||||||
|
- if (!entity.noPhysics && !this.noPhysics) {
|
||||||
|
+ //if (!entity.noPhysics && !this.noPhysics) { // Plazma - moved up
|
||||||
|
if (this.level.paperConfig().collisions.onlyPlayersCollide && !(entity instanceof ServerPlayer || this instanceof ServerPlayer)) return; // Paper
|
||||||
|
double d0 = entity.getX() - this.getX();
|
||||||
|
double d1 = entity.getZ() - this.getZ();
|
||||||
|
@@ -2135,7 +2136,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- }
|
||||||
|
+ //} // Plazma
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
|
||||||
Date: Sat, 25 Mar 2023 00:04:41 +0900
|
|
||||||
Subject: [PATCH] Structure Configuration
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
index 8ba1c5b6731d43c02b415e4d79a20c1de0c03ad5..4ee9f3ca88e89a8dcbfe6c807036386ef679da0a 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
@@ -30,4 +30,21 @@ public class LevelConfigurations extends ConfigurationPart {
|
|
||||||
public int maxChunksPerTick = 5;
|
|
||||||
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ public Structure structure;
|
|
||||||
+ public class Structure extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+ public Portal portal;
|
|
||||||
+ public class Portal extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+ public NetherPortal netherPortal;
|
|
||||||
+ public class NetherPortal extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Wed, 27 Sep 2023 22:13:07 +0900
|
||||||
|
Subject: [PATCH] Avoid double I/O operation on load player file
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
|
||||||
|
index 36af81f0957d17e170d229059c66f4eb4539dfeb..b4b74bff0579b919266e91464b36c9381342b677 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
|
||||||
|
@@ -56,7 +56,8 @@ public class PlayerDataStorage {
|
||||||
|
File file = new File(this.playerDir, player.getStringUUID() + ".dat");
|
||||||
|
// Spigot Start
|
||||||
|
boolean usingWrongFile = false;
|
||||||
|
- if ( org.bukkit.Bukkit.getOnlineMode() && !file.exists() ) // Paper - Check online mode first
|
||||||
|
+ boolean isNormalFile = file.exists() && file.isFile(); // Plazma - Avoid double I/O operation
|
||||||
|
+ if ( org.bukkit.Bukkit.getOnlineMode() && isNormalFile ) // Paper - Check online mode first // Plazma - Avoid double I/O operation
|
||||||
|
{
|
||||||
|
file = new File( this.playerDir, java.util.UUID.nameUUIDFromBytes( ( "OfflinePlayer:" + player.getScoreboardName() ).getBytes( "UTF-8" ) ).toString() + ".dat");
|
||||||
|
if ( file.exists() )
|
||||||
|
@@ -67,7 +68,7 @@ public class PlayerDataStorage {
|
||||||
|
}
|
||||||
|
// Spigot End
|
||||||
|
|
||||||
|
- if (file.exists() && file.isFile()) {
|
||||||
|
+ if (isNormalFile) { // Plazma - Avoid double I/O operation
|
||||||
|
nbttagcompound = NbtIo.readCompressed(file);
|
||||||
|
}
|
||||||
|
// Spigot Start
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
|
||||||
Date: Sat, 25 Mar 2023 00:10:52 +0900
|
|
||||||
Subject: [PATCH] Configurable nether portal size
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/portal/PortalShape.java b/src/main/java/net/minecraft/world/level/portal/PortalShape.java
|
|
||||||
index e7554ec800f321e4e34c926c53f2375a8c3aa979..677f546cee0ebda24a6e77cb5fedd41078c7fff4 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/portal/PortalShape.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/portal/PortalShape.java
|
|
||||||
@@ -100,7 +100,7 @@ public class PortalShape {
|
|
||||||
private int calculateWidth() {
|
|
||||||
int i = this.getDistanceUntilEdgeAboveFrame(this.bottomLeft, this.rightDir);
|
|
||||||
|
|
||||||
- return i >= 2 && i <= 21 ? i : 0;
|
|
||||||
+ return i >= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.width.min() && i <= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.width.max() ? i : 0; // Plazma
|
|
||||||
}
|
|
||||||
|
|
||||||
private int getDistanceUntilEdgeAboveFrame(BlockPos pos, Direction direction) {
|
|
||||||
@@ -133,7 +133,7 @@ public class PortalShape {
|
|
||||||
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();
|
|
||||||
int i = this.getDistanceUntilTop(blockposition_mutableblockposition);
|
|
||||||
|
|
||||||
- return i >= 3 && i <= 21 && this.hasTopFrame(blockposition_mutableblockposition, i) ? i : 0;
|
|
||||||
+ return i >= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.height.min() && i <= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.height.max() && this.hasTopFrame(blockposition_mutableblockposition, i) ? i : 0; // Plazma
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean hasTopFrame(BlockPos.MutableBlockPos pos, int height) {
|
|
||||||
@@ -187,7 +187,7 @@ public class PortalShape {
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isValid() {
|
|
||||||
- return this.bottomLeft != null && this.width >= 2 && this.width <= 21 && this.height >= 3 && this.height <= 21;
|
|
||||||
+ return this.bottomLeft != null && this.width >= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.width.min() && this.width <= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.width.max() && this.height >= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.height.min() && this.height <= this.level.getMinecraftWorld().plazmaLevelConfiguration().structure.portal.netherPortal.size.height.max(); // Plazma
|
|
||||||
}
|
|
||||||
|
|
||||||
// CraftBukkit start - return boolean
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
index 4ee9f3ca88e89a8dcbfe6c807036386ef679da0a..1cf5344d3ade76f6c24c7ea68d98b02e0dc62001 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
@@ -40,7 +40,43 @@ public class LevelConfigurations extends ConfigurationPart {
|
|
||||||
public NetherPortal netherPortal;
|
|
||||||
public class NetherPortal extends ConfigurationPart {
|
|
||||||
|
|
||||||
+ public Size size;
|
|
||||||
+ public class Size extends ConfigurationPart {
|
|
||||||
|
|
||||||
+ public Width width;
|
|
||||||
+ public Height height;
|
|
||||||
+
|
|
||||||
+ public class Width extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+ int min = 2;
|
|
||||||
+ int max = 21;
|
|
||||||
+
|
|
||||||
+ public int min() {
|
|
||||||
+ return Math.max(this.min, 1);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public int max() {
|
|
||||||
+ return Math.max(this.min, this.max);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public class Height extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+ int min = 3;
|
|
||||||
+ int max = 21;
|
|
||||||
+
|
|
||||||
+ public int min() {
|
|
||||||
+ return Math.max(this.min, 2);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public int max() {
|
|
||||||
+ return Math.max(this.min, this.max);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Wed, 27 Sep 2023 22:15:39 +0900
|
||||||
|
Subject: [PATCH] Don't refresh LootTable for non player interaction
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java
|
||||||
|
index 081691f9710ff1115e4308f79ed49fbc38941193..79a27755534384ab94e79e422c0a5e9ccecacd8c 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java
|
||||||
|
@@ -70,6 +70,7 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unpackLootTable(@Nullable Player player) {
|
||||||
|
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.dontRefreshLootTableForNonPlayerInteraction && player == null) return; // Plazma
|
||||||
|
if (this.lootableData.shouldReplenish(player) && this.level.getServer() != null) { // Paper
|
||||||
|
LootTable lootTable = this.level.getServer().getLootData().getLootTable(this.lootTable);
|
||||||
|
if (player instanceof ServerPlayer) {
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
index 9e26e598d7c381368de422ab0c3cc7936e3bbb6d..5a62bffe495002b3bbf5fd995df135c5d174458a 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
@@ -36,6 +36,7 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||||
|
|
||||||
|
public boolean reduceCreateRandomInstance = DO_OPTIMIZE;
|
||||||
|
public boolean suppressThreadSafeRandom = DO_OPTIMIZE;
|
||||||
|
+ public boolean dontRefreshLootTableForNonPlayerInteraction = DO_OPTIMIZE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
36
patches/server/0019-Don-t-load-chunks-to-spawn-phantom.patch
Normal file
36
patches/server/0019-Don-t-load-chunks-to-spawn-phantom.patch
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Wed, 27 Sep 2023 22:17:11 +0900
|
||||||
|
Subject: [PATCH] Don't load chunks to spawn phantom
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
|
||||||
|
index f74c5eda91a3d521763ec7bc33f23e0c62458cc2..e7a9683fe6bd72e9e7644770953506195567e03b 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
|
||||||
|
@@ -71,6 +71,7 @@ public class PhantomSpawner implements CustomSpawner {
|
||||||
|
|
||||||
|
if (randomsource.nextInt(j) >= world.paperConfig().entities.behavior.playerInsomniaStartTicks) { // Paper
|
||||||
|
BlockPos blockposition1 = blockposition.above(20 + randomsource.nextInt(15)).east(-10 + randomsource.nextInt(21)).south(-10 + randomsource.nextInt(21));
|
||||||
|
+ if (world.plazmaLevelConfiguration().entity.phantom.dontLoadChunksToSpawn && world.hasChunkAt(blockposition1)) continue; // Plazma
|
||||||
|
BlockState iblockdata = world.getBlockState(blockposition1);
|
||||||
|
FluidState fluid = world.getFluidState(blockposition1);
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
index 146af5bb54da67c134485dc67e8d9a569889434a..0a23900b18ec46ce2a7d47160dff013c7c8a8533 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
@@ -33,6 +33,13 @@ public class LevelConfigurations extends ConfigurationPart {
|
||||||
|
public Entity entity;
|
||||||
|
public class Entity extends ConfigurationPart {
|
||||||
|
|
||||||
|
+ public Phantom phantom;
|
||||||
|
+ public class Phantom extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ public boolean dontLoadChunksToSpawn = DO_OPTIMIZE;
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
}
|
||||||
|
|
||||||
|
public Structure structure;
|
||||||
@@ -1,202 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
|
||||||
Date: Sat, 25 Mar 2023 20:02:59 +0900
|
|
||||||
Subject: [PATCH] Reduce create random instance
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/commands/SpreadPlayersCommand.java b/src/main/java/net/minecraft/server/commands/SpreadPlayersCommand.java
|
|
||||||
index 591163d8f8300b084ac734800efee902c4def958..d74401ca3182145d136ad668704f5c043b163317 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/commands/SpreadPlayersCommand.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/commands/SpreadPlayersCommand.java
|
|
||||||
@@ -65,7 +65,7 @@ public class SpreadPlayersCommand {
|
|
||||||
if (maxY < j) {
|
|
||||||
throw SpreadPlayersCommand.ERROR_INVALID_MAX_HEIGHT.create(maxY, j);
|
|
||||||
} else {
|
|
||||||
- RandomSource randomsource = RandomSource.create();
|
|
||||||
+ RandomSource randomsource = worldserver.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? worldserver.getRandom() : RandomSource.create(); // Plazma
|
|
||||||
double d0 = (double) (center.x - maxRange);
|
|
||||||
double d1 = (double) (center.y - maxRange);
|
|
||||||
double d2 = (double) (center.x + maxRange);
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
||||||
index 29c46144de1aad31b997ee5000114e6f33f1a1f7..c6d860687f6a1c286c286bb64ac4eed75a88f0c4 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
||||||
@@ -403,7 +403,7 @@ public class ServerPlayer extends Player {
|
|
||||||
long l = k * k;
|
|
||||||
int i1 = l > 2147483647L ? Integer.MAX_VALUE : (int) l;
|
|
||||||
int j1 = this.getCoprime(i1);
|
|
||||||
- int k1 = RandomSource.create().nextInt(i1);
|
|
||||||
+ int k1 = (worldserver.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? worldserver.getRandom() : RandomSource.create()).nextInt(i1); // Plazma
|
|
||||||
|
|
||||||
for (int l1 = 0; l1 < i1; ++l1) {
|
|
||||||
int i2 = (k1 + j1 * l1) % i1;
|
|
||||||
@@ -440,7 +440,7 @@ public class ServerPlayer extends Player {
|
|
||||||
long l = k * k;
|
|
||||||
int i1 = l > 2147483647L ? Integer.MAX_VALUE : (int) l;
|
|
||||||
int j1 = this.getCoprime(i1);
|
|
||||||
- int k1 = RandomSource.create().nextInt(i1);
|
|
||||||
+ int k1 = (world.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? world.getRandom() : RandomSource.create()).nextInt(i1);
|
|
||||||
|
|
||||||
for (int l1 = 0; l1 < i1; ++l1) {
|
|
||||||
int i2 = (k1 + j1 * l1) % i1;
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java b/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java
|
|
||||||
index 1ef089dbf83de35d875c00efdf468c397be56978..dc111e0d1e7303c56cd12fa83be3ff85ab989e1b 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java
|
|
||||||
@@ -349,7 +349,7 @@ public class QueryThreadGs4 extends GenericThread {
|
|
||||||
this.identBytes[2] = bs[5];
|
|
||||||
this.identBytes[3] = bs[6];
|
|
||||||
this.ident = new String(this.identBytes, StandardCharsets.UTF_8);
|
|
||||||
- this.challenge = RandomSource.create().nextInt(16777216);
|
|
||||||
+ this.challenge = org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.reduceCreateRandomInstance ? java.util.concurrent.ThreadLocalRandom.current().nextInt(16777216) : RandomSource.create().nextInt(16777216); // Plazma
|
|
||||||
this.challengeBytes = String.format(Locale.ROOT, "\t%s%d\u0000", this.ident, this.challenge).getBytes(StandardCharsets.UTF_8);
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
|
||||||
index d77410588a1c10d8ac902f21a8bd7e35f74fecd2..95bf0537d7793391eae9dd67655dc0189eb047df 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
|
||||||
@@ -80,7 +80,7 @@ public class FishingHook extends Projectile {
|
|
||||||
|
|
||||||
private FishingHook(EntityType<? extends FishingHook> type, Level world, int luckOfTheSeaLevel, int lureLevel) {
|
|
||||||
super(type, world);
|
|
||||||
- this.syncronizedRandom = RandomSource.create();
|
|
||||||
+ this.syncronizedRandom = world.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? world.getRandom() : RandomSource.create(); // Plazma
|
|
||||||
this.openWater = true;
|
|
||||||
this.currentState = FishingHook.FishHookState.FLYING;
|
|
||||||
this.noCulling = true;
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/raid/Raid.java b/src/main/java/net/minecraft/world/entity/raid/Raid.java
|
|
||||||
index 879c3bb661e24b9682b654def57c2800f4f8ca92..4c465466543e51ff1e8343d3af7ee31a8b04b839 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/entity/raid/Raid.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/raid/Raid.java
|
|
||||||
@@ -110,7 +110,7 @@ public class Raid {
|
|
||||||
|
|
||||||
public Raid(int id, ServerLevel world, BlockPos pos) {
|
|
||||||
this.raidEvent = new ServerBossEvent(Raid.RAID_NAME_COMPONENT, BossEvent.BossBarColor.RED, BossEvent.BossBarOverlay.NOTCHED_10);
|
|
||||||
- this.random = RandomSource.create();
|
|
||||||
+ this.random = world.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? world.getRandom() : RandomSource.create(); // Plazma
|
|
||||||
this.waveSpawnPos = Optional.empty();
|
|
||||||
this.id = id;
|
|
||||||
this.level = world;
|
|
||||||
@@ -124,7 +124,7 @@ public class Raid {
|
|
||||||
|
|
||||||
public Raid(ServerLevel world, CompoundTag nbt) {
|
|
||||||
this.raidEvent = new ServerBossEvent(Raid.RAID_NAME_COMPONENT, BossEvent.BossBarColor.RED, BossEvent.BossBarOverlay.NOTCHED_10);
|
|
||||||
- this.random = RandomSource.create();
|
|
||||||
+ this.random = world.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? world.getRandom() : RandomSource.create(); // Plazma
|
|
||||||
this.waveSpawnPos = Optional.empty();
|
|
||||||
this.level = world;
|
|
||||||
this.id = nbt.getInt("Id");
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
|
|
||||||
index 69ae671be07b1928e778399551991777829e432a..e39ac3557c7abd6081ae25df71d0fd134c9cc342 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
|
|
||||||
@@ -94,7 +94,7 @@ public class EnchantmentMenu extends AbstractContainerMenu {
|
|
||||||
}
|
|
||||||
// Purpur end
|
|
||||||
};
|
|
||||||
- this.random = RandomSource.create();
|
|
||||||
+ this.random = playerInventory.player.level.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? playerInventory.player.getRandom() : RandomSource.create(); // Plazma
|
|
||||||
this.enchantmentSeed = DataSlot.standalone();
|
|
||||||
this.costs = new int[3];
|
|
||||||
this.enchantClue = new int[]{-1, -1, -1};
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
|
|
||||||
index 4beaedc5ec3562df62a7a9e6b2f40728bd933044..62c1b93ef872a40832ae6c223e99409aba2427db 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
|
||||||
@@ -81,7 +81,7 @@ public class Explosion {
|
|
||||||
}
|
|
||||||
|
|
||||||
public Explosion(Level world, @Nullable Entity entity, @Nullable DamageSource damageSource, @Nullable ExplosionDamageCalculator behavior, double x, double y, double z, float power, boolean createFire, Explosion.BlockInteraction destructionType) {
|
|
||||||
- this.random = RandomSource.create();
|
|
||||||
+ this.random = world.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? world.getRandom() : RandomSource.create(); // Plazma
|
|
||||||
this.toBlow = new ObjectArrayList();
|
|
||||||
this.hitPlayers = Maps.newHashMap();
|
|
||||||
this.level = world;
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
|
||||||
index 058449f24eb3260dc230dad2a0b4c552d0b7f40e..cf0ad841267cac84ed058dee6cdd62a835325feb 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
|
||||||
@@ -125,7 +125,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
|
||||||
public final Thread thread;
|
|
||||||
private final boolean isDebug;
|
|
||||||
private int skyDarken;
|
|
||||||
- protected int randValue = RandomSource.create().nextInt();
|
|
||||||
+ protected int randValue = org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.reduceCreateRandomInstance ? java.util.concurrent.ThreadLocalRandom.current().nextInt() : RandomSource.create().nextInt(); // Plazma
|
|
||||||
protected final int addend = 1013904223;
|
|
||||||
protected float oRainLevel;
|
|
||||||
public float rainLevel;
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
|
|
||||||
index 43ca8471d7d4d2d561cba7e2a952a16ed200a961..2260ddd570e40ce97c6a14de99afa550d9686178 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
|
|
||||||
@@ -369,7 +369,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void spawnGatewayPortal(ServerLevel world, BlockPos pos, EndGatewayConfiguration config) {
|
|
||||||
- Feature.END_GATEWAY.place(config, world, world.getChunkSource().getGenerator(), RandomSource.create(), pos);
|
|
||||||
+ Feature.END_GATEWAY.place(config, world, world.getChunkSource().getGenerator(), (world.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? world.getRandom() : RandomSource.create()), pos); // Plazma
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
|
|
||||||
index e9eb32469a5c03f7a3677ef50fd4541c1ed662ad..75665373c291faaea1cbf5f54c3634fdb042556c 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
|
|
||||||
@@ -411,7 +411,7 @@ public class EndDragonFight {
|
|
||||||
this.level.registryAccess().registry(Registries.CONFIGURED_FEATURE).flatMap((registry) -> {
|
|
||||||
return registry.getHolder(EndFeatures.END_GATEWAY_DELAYED);
|
|
||||||
}).ifPresent((reference) -> {
|
|
||||||
- reference.value().place(this.level, this.level.getChunkSource().getGenerator(), RandomSource.create(), pos);
|
|
||||||
+ reference.value().place(this.level, this.level.getChunkSource().getGenerator(), (this.level.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? this.level.getRandom() : RandomSource.create()), pos); // Plazma
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -427,7 +427,7 @@ public class EndDragonFight {
|
|
||||||
this.portalLocation = this.portalLocation.atY(this.level.getMinBuildHeight() + 1);
|
|
||||||
}
|
|
||||||
// Paper end
|
|
||||||
- endPodiumFeature.place(FeatureConfiguration.NONE, this.level, this.level.getChunkSource().getGenerator(), RandomSource.create(), this.portalLocation);
|
|
||||||
+ endPodiumFeature.place(FeatureConfiguration.NONE, this.level, this.level.getChunkSource().getGenerator(), (this.level.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? this.level.getRandom() : RandomSource.create()), this.portalLocation); // Plazma
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/LootContext.java b/src/main/java/net/minecraft/world/level/storage/loot/LootContext.java
|
|
||||||
index 9e9ac64764cf0a84e25e75d8d6f516cde6047284..2d197a7de77657a19b1b527c0aa53ef9918eb15f 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/storage/loot/LootContext.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/storage/loot/LootContext.java
|
|
||||||
@@ -202,7 +202,7 @@ public class LootContext {
|
|
||||||
} else {
|
|
||||||
RandomSource randomSource = this.random;
|
|
||||||
if (randomSource == null) {
|
|
||||||
- randomSource = RandomSource.create();
|
|
||||||
+ randomSource = this.level.plazmaLevelConfiguration().misc.reduceCreateRandomInstance ? this.level.getRandom() : RandomSource.create();
|
|
||||||
}
|
|
||||||
|
|
||||||
MinecraftServer minecraftServer = this.level.getServer();
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
index 1e979bb87ec743e87909927a517692da38e7b18f..66436d4eb66b5a71f18b7db359ab1d63bbac74c0 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
@@ -40,7 +40,7 @@ public class GlobalConfiguration extends ConfigurationPart {
|
|
||||||
public Misc misc;
|
|
||||||
public class Misc extends ConfigurationPart {
|
|
||||||
|
|
||||||
-
|
|
||||||
+ public boolean reduceCreateRandomInstance = DO_OPTIMIZE;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
index 9416ce600d46fad167befe8d42f9a1a7d891a37f..2836447cf43e145d1fc1d24f6d054be49e9a14d9 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
@@ -87,7 +87,7 @@ public class LevelConfigurations extends ConfigurationPart {
|
|
||||||
public Misc misc;
|
|
||||||
public class Misc extends ConfigurationPart {
|
|
||||||
|
|
||||||
-
|
|
||||||
+ public boolean reduceCreateRandomInstance = DO_OPTIMIZE;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Wed, 27 Sep 2023 22:21:47 +0900
|
||||||
|
Subject: [PATCH] Add option to disable moved to quickly check for specific
|
||||||
|
players
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
index e001787e40cc0a843e65b36582e9d6593d0fff0e..1af44c18724b2d2dc1d910f5af49254eb845feaf 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
@@ -1435,6 +1435,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||||
|
if (!this.player.isChangingDimension() && (!this.player.level().getGameRules().getBoolean(GameRules.RULE_DISABLE_ELYTRA_MOVEMENT_CHECK) || !this.player.isFallFlying())) {
|
||||||
|
float f2 = this.player.isFallFlying() ? 300.0F : 100.0F;
|
||||||
|
|
||||||
|
+ if (this.player.getBukkitEntity().hasPermission("plazma.bypass-moved-to-quickly-check") || !this.player.level().plazmaLevelConfiguration().entity.player.checkSpectatorMovecToQuickly && this.player.isSpectator()) return; // Plazma
|
||||||
|
if (d10 - d9 > Math.max(f2, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) {
|
||||||
|
// CraftBukkit end
|
||||||
|
// Paper start - Add fail move event
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
index 0a23900b18ec46ce2a7d47160dff013c7c8a8533..414baade911fab3450430af9378feedc419868f3 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
@@ -33,6 +33,13 @@ public class LevelConfigurations extends ConfigurationPart {
|
||||||
|
public Entity entity;
|
||||||
|
public class Entity extends ConfigurationPart {
|
||||||
|
|
||||||
|
+ public Player player;
|
||||||
|
+ public class Player extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ public boolean checkSpectatorMovecToQuickly = !DO_OPTIMIZE;
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
public Phantom phantom;
|
||||||
|
public class Phantom extends ConfigurationPart {
|
||||||
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
|
||||||
Date: Sat, 25 Mar 2023 20:38:21 +0900
|
|
||||||
Subject: [PATCH] Entity Configuration
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
index 2836447cf43e145d1fc1d24f6d054be49e9a14d9..f560db0cd544c96264ebad8af3ed3dd8379bab1b 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
@@ -90,4 +90,21 @@ public class LevelConfigurations extends ConfigurationPart {
|
|
||||||
public boolean reduceCreateRandomInstance = DO_OPTIMIZE;
|
|
||||||
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ public Entity entity;
|
|
||||||
+ public class Entity extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+ public Monster monster;
|
|
||||||
+ public class Monster extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+ public Phantom phantom;
|
|
||||||
+ public class Phantom extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
@@ -1,63 +1,50 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
Date: Sat, 25 Mar 2023 21:50:25 +0900
|
Date: Wed, 27 Sep 2023 22:30:49 +0900
|
||||||
Subject: [PATCH] Apply faster random
|
Subject: [PATCH] Use faster random
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/loottable/PaperLootableInventoryData.java b/src/main/java/com/destroystokyo/paper/loottable/PaperLootableInventoryData.java
|
diff --git a/src/main/java/com/destroystokyo/paper/loottable/PaperLootableInventoryData.java b/src/main/java/com/destroystokyo/paper/loottable/PaperLootableInventoryData.java
|
||||||
index e5ea9f27a1936ed9e329e74317c91c5df89b9fbd..7e7a4d872983cd2efdc575bc33353f94d73cc641 100644
|
index 5408cbc21fc7577a6100b5a1ca0463e899d2df8b..f17b42176e9e5148b98baf4a6a7e7528242406d9 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/loottable/PaperLootableInventoryData.java
|
--- a/src/main/java/com/destroystokyo/paper/loottable/PaperLootableInventoryData.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/loottable/PaperLootableInventoryData.java
|
+++ b/src/main/java/com/destroystokyo/paper/loottable/PaperLootableInventoryData.java
|
||||||
@@ -13,7 +13,7 @@ import java.util.UUID;
|
@@ -16,7 +16,7 @@ import java.util.UUID;
|
||||||
|
|
||||||
public class PaperLootableInventoryData {
|
public class PaperLootableInventoryData {
|
||||||
|
|
||||||
- private static final Random RANDOM = new Random();
|
- private static final Random RANDOM = new Random();
|
||||||
+ private static final Random RANDOM = Boolean.getBoolean("Plazma.doNotUseFasterRandom") ? new Random() : new org.plazmamc.plazma.Random(); // Plazma
|
+ private static final Random RANDOM = org.plazmamc.plazma.PlazmaOptions.useJavaRandom() ? new Random() : new org.plazmamc.plazma.Random(); // Plazma - use faster random
|
||||||
|
|
||||||
private long lastFill = -1;
|
private long lastFill = -1;
|
||||||
private long nextRefill = -1;
|
private long nextRefill = -1;
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index cc6968a064b30f7250d18c20efb2bb8602bb0cdd..3c80e14392ee7a6bf5040d7cb81b7d894e162eff 100644
|
index ee571f465ca1e83e760a4d57b3d11accb53c6cfe..1a92a7f6391df6395c11d11efdbf2f4eda5c6651 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -694,7 +694,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -680,7 +680,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
ChunkPos chunkcoordintpair = new ChunkPos(chunkproviderserver.randomState().sampler().findSpawnPosition());
|
ChunkPos chunkcoordintpair = new ChunkPos(chunkproviderserver.randomState().sampler().findSpawnPosition());
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
if (world.generator != null) {
|
if (world.generator != null) {
|
||||||
- Random rand = new Random(world.getSeed());
|
- Random rand = new Random(world.getSeed());
|
||||||
+ Random rand = Boolean.getBoolean("Plazma.doNotUseFasterRandom") ? new Random() : new org.plazmamc.plazma.Random(); rand.setSeed(world.getSeed()); // Plazma
|
+ Random rand = org.plazmamc.plazma.PlazmaOptions.useJavaRandom() ? new Random(world.getSeed()) : new org.plazmamc.plazma.Random((int) world.getSeed()); // Plazma - use faster random
|
||||||
org.bukkit.Location spawn = world.generator.getFixedSpawnLocation(world.getWorld(), rand);
|
org.bukkit.Location spawn = world.generator.getFixedSpawnLocation(world.getWorld(), rand);
|
||||||
|
|
||||||
if (spawn != null) {
|
if (spawn != null) {
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
index b5415f0c65db728f4a935b87b54fa14b68d31bc4..27474beb980afcb92cace1e1c37e7a2aa5060daf 100644
|
index 52b48e40c3ee5f483c6cb04409459cf25abc3f0d..5ca738739507a4cb1c3b17502fa82462079cbc87 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
@@ -227,7 +227,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
@@ -228,7 +228,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
|
|
||||||
- private static final Random rand = new Random();
|
- private static final Random rand = new Random();
|
||||||
+ private static final Random rand = Boolean.getBoolean("Plazma.doNotUseFasterRandom") ? new Random() : new org.plazmamc.plazma.Random(); // Plazma
|
+ private static final Random rand = org.plazmamc.plazma.PlazmaOptions.useJavaRandom() ? new Random() : new org.plazmamc.plazma.Random(); // Plazma - use faster random
|
||||||
|
|
||||||
public CraftWorld(ServerLevel world, ChunkGenerator gen, BiomeProvider biomeProvider, Environment env) {
|
public CraftWorld(ServerLevel world, ChunkGenerator gen, BiomeProvider biomeProvider, Environment env) {
|
||||||
this.world = world;
|
this.world = world;
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java
|
|
||||||
index d1c7ab67cba881d96b7a5e9220130d86d0514304..6018c5332410a5a0db29f35c0b4cb628df07f596 100644
|
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java
|
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java
|
|
||||||
@@ -15,7 +15,7 @@ import org.bukkit.inventory.meta.FireworkMeta;
|
|
||||||
|
|
||||||
public class CraftFirework extends CraftProjectile implements Firework {
|
|
||||||
|
|
||||||
- private final Random random = new Random();
|
|
||||||
+ private final Random random = Boolean.getBoolean("Plazma.doNotUseFasterRandom") ? new Random() : new org.plazmamc.plazma.Random(); // Plazma
|
|
||||||
//private CraftItemStack item; // Paper - Remove usage, not accurate representation of current item.
|
|
||||||
|
|
||||||
public CraftFirework(CraftServer server, FireworkRocketEntity entity) {
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
||||||
index a9673a804d597599c35c83f4f245510c83005328..202ac2b0d96b870ce853959da89e82a4949ca585 100644
|
index d46ccc3b3aaacf937631a44a7e0f91b793a83c86..0be5ab95612dc21561ffc0051880baae75117bc6 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
--- a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
||||||
@@ -48,7 +48,7 @@ public class CustomChunkGenerator extends InternalChunkGenerator {
|
@@ -48,7 +48,7 @@ public class CustomChunkGenerator extends InternalChunkGenerator {
|
||||||
@@ -65,16 +52,28 @@ index a9673a804d597599c35c83f4f245510c83005328..202ac2b0d96b870ce853959da89e82a4
|
|||||||
private final ChunkGenerator generator;
|
private final ChunkGenerator generator;
|
||||||
private final ServerLevel world;
|
private final ServerLevel world;
|
||||||
- private final Random random = new Random();
|
- private final Random random = new Random();
|
||||||
+ private final Random random = Boolean.getBoolean("Plazma.doNotUseFasterRandom") ? new Random() : new org.plazmamc.plazma.Random(); // Plazma
|
+ private final Random random = org.plazmamc.plazma.PlazmaOptions.useJavaRandom() ? new Random() : new org.plazmamc.plazma.Random(); // Plazma - use faster random
|
||||||
private boolean newApi;
|
private boolean newApi;
|
||||||
private boolean implementBaseHeight = true;
|
private boolean implementBaseHeight = true;
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/PlazmaOptions.java b/src/main/java/org/plazmamc/plazma/PlazmaOptions.java
|
||||||
|
index 4421110e20a006c3773e922eb0facc88174ffb43..f0e6933a2bf06f2bcc343c0817ca414473be19d3 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/PlazmaOptions.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/PlazmaOptions.java
|
||||||
|
@@ -7,4 +7,7 @@ public class PlazmaOptions {
|
||||||
|
return !DONT_CREATE_NEW_RANDOM_INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ static final boolean USE_JAVA_RANDOM = Boolean.getBoolean("Plazma.useJavaRandom");
|
||||||
|
+ public static boolean useJavaRandom() { return USE_JAVA_RANDOM; }
|
||||||
|
+
|
||||||
|
}
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/Random.java b/src/main/java/org/plazmamc/plazma/Random.java
|
diff --git a/src/main/java/org/plazmamc/plazma/Random.java b/src/main/java/org/plazmamc/plazma/Random.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..e72e96be3938bdcc1ae1aa94f7465f644e1b3e16
|
index 0000000000000000000000000000000000000000..d0aa8248c0f9dc6daab6eee6b77d3ef198d75fdb
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/Random.java
|
+++ b/src/main/java/org/plazmamc/plazma/Random.java
|
||||||
@@ -0,0 +1,394 @@
|
@@ -0,0 +1,395 @@
|
||||||
+package org.plazmamc.plazma;
|
+package org.plazmamc.plazma;
|
||||||
+
|
+
|
||||||
+/**
|
+/**
|
||||||
@@ -97,7 +96,11 @@ index 0000000000000000000000000000000000000000..e72e96be3938bdcc1ae1aa94f7465f64
|
|||||||
+ long x, y, z, w;
|
+ long x, y, z, w;
|
||||||
+
|
+
|
||||||
+ public Random() {
|
+ public Random() {
|
||||||
+ seed((int) System.currentTimeMillis());
|
+ this((int) System.currentTimeMillis());
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public Random(int value) {
|
||||||
|
+ seed(value);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
@@ -167,9 +170,7 @@ index 0000000000000000000000000000000000000000..e72e96be3938bdcc1ae1aa94f7465f64
|
|||||||
+ buffer[i++] = (byte) (w >> 8);
|
+ buffer[i++] = (byte) (w >> 8);
|
||||||
+ if (i < buffer.length) {
|
+ if (i < buffer.length) {
|
||||||
+ buffer[i++] = (byte) (w >> 16);
|
+ buffer[i++] = (byte) (w >> 16);
|
||||||
+ if (i < buffer.length) {
|
+ if (i < buffer.length) buffer[i] = (byte) (w >> 24);
|
||||||
+ buffer[i] = (byte) (w >> 24);
|
|
||||||
+ }
|
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
@@ -241,11 +242,10 @@ index 0000000000000000000000000000000000000000..e72e96be3938bdcc1ae1aa94f7465f64
|
|||||||
+ // The explicit int cast before the first multiplication gives better performance.
|
+ // The explicit int cast before the first multiplication gives better performance.
|
||||||
+ // See comments in NextDouble.
|
+ // See comments in NextDouble.
|
||||||
+ int range = upperBound - lowerBound;
|
+ int range = upperBound - lowerBound;
|
||||||
+ if (range < 0) {
|
+ if (range < 0)
|
||||||
+ // If range is <0 then an overflow has occured and must resort to using long integer arithmetic instead (slower).
|
+ // If range is <0 then an overflow has occured and must resort to using long integer arithmetic instead (slower).
|
||||||
+ // We also must use all 32 bits of precision, instead of the normal 31, which again is slower.
|
+ // We also must use all 32 bits of precision, instead of the normal 31, which again is slower.
|
||||||
+ return lowerBound + (int) ((REAL_UNIT_UINT * (double) (w = (w ^ (w >> 19)) ^ (t ^ (t >> 8)))) * (double) ((long) upperBound - (long) lowerBound));
|
+ return lowerBound + (int) ((REAL_UNIT_UINT * (double) (w = (w ^ (w >> 19)) ^ (t ^ (t >> 8)))) * (double) ((long) upperBound - (long) lowerBound));
|
||||||
+ }
|
|
||||||
+ // 31 bits of precision will suffice if range<=int.MaxValue. This allows us to cast to an int and gain
|
+ // 31 bits of precision will suffice if range<=int.MaxValue. This allows us to cast to an int and gain
|
||||||
+ // a little more performance.
|
+ // a little more performance.
|
||||||
+ return lowerBound + (int) ((REAL_UNIT_INT * (double) (int) (0x7FFFFFFF & (w = (w ^ (w >> 19)) ^ (t ^ (t >> 8))))) * (double) range);
|
+ return lowerBound + (int) ((REAL_UNIT_INT * (double) (int) (0x7FFFFFFF & (w = (w ^ (w >> 19)) ^ (t ^ (t >> 8))))) * (double) range);
|
||||||
@@ -1,107 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
|
||||||
Date: Sat, 25 Mar 2023 20:42:23 +0900
|
|
||||||
Subject: [PATCH] Various Optimizations
|
|
||||||
|
|
||||||
[ORIGINAL PATCHES]
|
|
||||||
0007 - Avoid double I/O operation on load player file (Akarin)
|
|
||||||
0008 - Don't trigger Lootable Refresh for non player interaction
|
|
||||||
(Akarin)
|
|
||||||
0011 - Swaps the predicate order of collision (Akarin)
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
|
||||||
index 3c10c719f6172161a2dcc6592a0a1492e9b3d7c1..d64f188257c135e2a4af07e28ff8f912c80eac03 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
|
||||||
@@ -1991,8 +1991,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
|
||||||
public void playerTouch(Player player) {}
|
|
||||||
|
|
||||||
public void push(Entity entity) {
|
|
||||||
+ if (entity.noPhysics && this.noPhysics) return; // Plazma
|
|
||||||
if (!this.isPassengerOfSameVehicle(entity)) {
|
|
||||||
- if (!entity.noPhysics && !this.noPhysics) {
|
|
||||||
+ //if (!entity.noPhysics && !this.noPhysics) { // Plazma
|
|
||||||
if (this.level.paperConfig().collisions.onlyPlayersCollide && !(entity instanceof ServerPlayer || this instanceof ServerPlayer)) return; // Paper
|
|
||||||
double d0 = entity.getX() - this.getX();
|
|
||||||
double d1 = entity.getZ() - this.getZ();
|
|
||||||
@@ -2021,7 +2022,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- }
|
|
||||||
+ //} // Plazma
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java
|
|
||||||
index 6d62cc8fb347ccafd51df05896e616995990f005..c26e4795afd0bd450d304f4528d0b8e4cfa761ce 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java
|
|
||||||
@@ -70,6 +70,7 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc
|
|
||||||
}
|
|
||||||
|
|
||||||
public void unpackLootTable(@Nullable Player player) {
|
|
||||||
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.doNotTriggerLootTableRefreshForNonPlayerInteraction && player == null) return; // Plazma
|
|
||||||
if (this.lootableData.shouldReplenish(player) && this.level.getServer() != null) { // Paper
|
|
||||||
LootTable lootTable = this.level.getServer().getLootTables().get(this.lootTable);
|
|
||||||
if (player instanceof ServerPlayer) {
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
|
|
||||||
index f55c50f6637a4f930b15565d6ac82bb4f27b9059..9c4e65a67bda331625a0891be10495eaae5f3f5e 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
|
|
||||||
@@ -73,6 +73,7 @@ public class PhantomSpawner implements CustomSpawner {
|
|
||||||
|
|
||||||
if (randomsource.nextInt(j) >= world.paperConfig().entities.behavior.playerInsomniaStartTicks) { // Paper
|
|
||||||
BlockPos blockposition1 = blockposition.above(20 + randomsource.nextInt(15)).east(-10 + randomsource.nextInt(21)).south(-10 + randomsource.nextInt(21));
|
|
||||||
+ if (world.plazmaLevelConfiguration().entity.monster.phantom.doNotLoadChunksToSpawn && world.hasChunkAt(blockposition1)) continue; // Plazma
|
|
||||||
BlockState iblockdata = world.getBlockState(blockposition1);
|
|
||||||
FluidState fluid = world.getFluidState(blockposition1);
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
|
|
||||||
index 36af81f0957d17e170d229059c66f4eb4539dfeb..039c952f0c157cba6e79fa9b976958bd1763a922 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
|
|
||||||
@@ -56,7 +56,8 @@ public class PlayerDataStorage {
|
|
||||||
File file = new File(this.playerDir, player.getStringUUID() + ".dat");
|
|
||||||
// Spigot Start
|
|
||||||
boolean usingWrongFile = false;
|
|
||||||
- if ( org.bukkit.Bukkit.getOnlineMode() && !file.exists() ) // Paper - Check online mode first
|
|
||||||
+ boolean normalFile = file.exists() && file.isFile(); // Plazma - Avoid double I/O operation
|
|
||||||
+ if ( org.bukkit.Bukkit.getOnlineMode() && !normalFile ) // Paper - Check online mode first // Plazma - Avoid double I/O operation
|
|
||||||
{
|
|
||||||
file = new File( this.playerDir, java.util.UUID.nameUUIDFromBytes( ( "OfflinePlayer:" + player.getScoreboardName() ).getBytes( "UTF-8" ) ).toString() + ".dat");
|
|
||||||
if ( file.exists() )
|
|
||||||
@@ -67,7 +68,7 @@ public class PlayerDataStorage {
|
|
||||||
}
|
|
||||||
// Spigot End
|
|
||||||
|
|
||||||
- if (file.exists() && file.isFile()) {
|
|
||||||
+ if (normalFile) { // Plazma - Avoid double I/O operation
|
|
||||||
nbttagcompound = NbtIo.readCompressed(file);
|
|
||||||
}
|
|
||||||
// Spigot Start
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
index 66436d4eb66b5a71f18b7db359ab1d63bbac74c0..87a85fb1cd9a19541df04a5d1c457d86cf7f68eb 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
@@ -41,6 +41,7 @@ public class GlobalConfiguration extends ConfigurationPart {
|
|
||||||
public class Misc extends ConfigurationPart {
|
|
||||||
|
|
||||||
public boolean reduceCreateRandomInstance = DO_OPTIMIZE;
|
|
||||||
+ public boolean doNotTriggerLootTableRefreshForNonPlayerInteraction = DO_OPTIMIZE;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
index f560db0cd544c96264ebad8af3ed3dd8379bab1b..80ee8293d73ecdb1a942ca88f1aa00813d600849 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
@@ -100,7 +100,7 @@ public class LevelConfigurations extends ConfigurationPart {
|
|
||||||
public Phantom phantom;
|
|
||||||
public class Phantom extends ConfigurationPart {
|
|
||||||
|
|
||||||
-
|
|
||||||
+ public boolean doNotLoadChunksToSpawn = DO_OPTIMIZE;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
|
||||||
Date: Sat, 25 Mar 2023 20:46:40 +0900
|
|
||||||
Subject: [PATCH] Add configuration to disable moved to quickly check for
|
|
||||||
spectators
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
index 177090697e42fcca84dbfdf04ca5118a2c5e7be2..32e91b8866dd2aa5e4d26ef6ca77dc3f1206781b 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
@@ -1543,7 +1543,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
|
||||||
if (!this.player.isChangingDimension() && (!this.player.getLevel().getGameRules().getBoolean(GameRules.RULE_DISABLE_ELYTRA_MOVEMENT_CHECK) || !this.player.isFallFlying())) {
|
|
||||||
float f2 = this.player.isFallFlying() ? 300.0F : 100.0F;
|
|
||||||
|
|
||||||
- if (d11 - d10 > Math.max(f2, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) {
|
|
||||||
+ if (!(this.player.getLevel().plazmaLevelConfiguration().misc.checkSpectatorMovedToQuickly && this.player.isSpectator()) && d11 - d10 > Math.max(f2, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) { // Plazma
|
|
||||||
// CraftBukkit end
|
|
||||||
ServerGamePacketListenerImpl.LOGGER.warn("{} moved too quickly! {},{},{}", new Object[]{this.player.getName().getString(), d7, d8, d9});
|
|
||||||
this.teleport(this.player.getX(), this.player.getY(), this.player.getZ(), this.player.getYRot(), this.player.getXRot());
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
index 80ee8293d73ecdb1a942ca88f1aa00813d600849..e6c22ab535ab8fecaadbf06d4982440fd5863f17 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
@@ -88,6 +88,7 @@ public class LevelConfigurations extends ConfigurationPart {
|
|
||||||
public class Misc extends ConfigurationPart {
|
|
||||||
|
|
||||||
public boolean reduceCreateRandomInstance = DO_OPTIMIZE;
|
|
||||||
+ public boolean checkSpectatorMovedToQuickly = DO_OPTIMIZE;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
52
patches/server/0022-Ignore-useless-entity-packets.patch
Normal file
52
patches/server/0022-Ignore-useless-entity-packets.patch
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Wed, 27 Sep 2023 22:35:19 +0900
|
||||||
|
Subject: [PATCH] Ignore useless entity packets
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
|
index c6d80accdac49564b5386717a92dbd5a10237f06..ddbff17499746cd370fdf18ff78606b0ac770df4 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
|
@@ -200,6 +200,8 @@ public class ServerEntity {
|
||||||
|
flag4 = true;
|
||||||
|
flag5 = true;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ if (this.entity.level().plazmaLevelConfiguration().entity.ignoreUselessPackets && isUselessPacket(packet1)) packet1 = null; // Plazma
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((this.trackDelta || this.entity.hasImpulse || this.entity instanceof LivingEntity && ((LivingEntity) this.entity).isFallFlying()) && this.tickCount > 0) {
|
||||||
|
@@ -272,6 +274,19 @@ public class ServerEntity {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Plazma start
|
||||||
|
+ private boolean isUselessPacket(@Nullable Packet<?> packet) {
|
||||||
|
+ if (!(packet instanceof ClientboundMoveEntityPacket p)) return false;
|
||||||
|
+ if (p instanceof ClientboundMoveEntityPacket.Pos)
|
||||||
|
+ return p.getXa() == 0 && p.getYa() == 0 && p.getZa() == 0;
|
||||||
|
+ if (p instanceof ClientboundMoveEntityPacket.Rot)
|
||||||
|
+ return p.getxRot() == 0 && p.getyRot() == 0;
|
||||||
|
+ if (p instanceof ClientboundMoveEntityPacket.PosRot)
|
||||||
|
+ return p.getXa() == 0 && p.getYa() == 0 && p.getZa() == 0 && p.getxRot() == 0 && p.getyRot() == 0;
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+ // Plazma end
|
||||||
|
+
|
||||||
|
public void removePairing(ServerPlayer player) {
|
||||||
|
this.entity.stopSeenByPlayer(player);
|
||||||
|
player.connection.send(new ClientboundRemoveEntitiesPacket(new int[]{this.entity.getId()}));
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
index 414baade911fab3450430af9378feedc419868f3..914cc4f9a5598d2d70c7338d7cfc9be0fe5f0e31 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
@@ -33,6 +33,8 @@ public class LevelConfigurations extends ConfigurationPart {
|
||||||
|
public Entity entity;
|
||||||
|
public class Entity extends ConfigurationPart {
|
||||||
|
|
||||||
|
+ public boolean ignoreUselessPackets = DO_OPTIMIZE;
|
||||||
|
+
|
||||||
|
public Player player;
|
||||||
|
public class Player extends ConfigurationPart {
|
||||||
|
|
||||||
151
patches/server/0023-Implement-No-Chat-Reports.patch
Normal file
151
patches/server/0023-Implement-No-Chat-Reports.patch
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Thu, 28 Sep 2023 11:47:50 +0900
|
||||||
|
Subject: [PATCH] Implement No Chat Reports
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/network/FriendlyByteBuf.java b/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
||||||
|
index 40f51062624161892c780ddae05e22859e2cd021..b0b515b8ebeffe25a760d7d6faa87cbc1a585b2d 100644
|
||||||
|
--- a/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
||||||
|
+++ b/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
||||||
|
@@ -139,9 +139,13 @@ public class FriendlyByteBuf extends ByteBuf {
|
||||||
|
public <T> void writeJsonWithCodec(Codec<T> codec, T value) {
|
||||||
|
DataResult<JsonElement> dataresult = codec.encodeStart(JsonOps.INSTANCE, value);
|
||||||
|
|
||||||
|
- this.writeUtf(FriendlyByteBuf.GSON.toJson((JsonElement) Util.getOrThrow(dataresult, (s) -> {
|
||||||
|
- return new EncoderException("Failed to encode: " + s + " " + value);
|
||||||
|
- })));
|
||||||
|
+ // Plazma start - Implement No Chat Reports
|
||||||
|
+ JsonElement element = Util.getOrThrow(dataresult, s -> new EncoderException("Failed to encode: " + s + " " + value));
|
||||||
|
+ if (codec == net.minecraft.network.protocol.status.ServerStatus.CODEC
|
||||||
|
+ && org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.queryData())
|
||||||
|
+ element.getAsJsonObject().addProperty("preventsChatReports", true);
|
||||||
|
+ this.writeUtf(GSON.toJson(element));
|
||||||
|
+ // Plazma end
|
||||||
|
}
|
||||||
|
|
||||||
|
public <T> void writeId(IdMap<T> registry, T value) {
|
||||||
|
diff --git a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatCommandPacket.java b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatCommandPacket.java
|
||||||
|
index b8c1f3b9afddc87d56541c8af63cffecfcdd2653..4f0d6ac849dda74c9180fa03d97d389cc4554b46 100644
|
||||||
|
--- a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatCommandPacket.java
|
||||||
|
+++ b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatCommandPacket.java
|
||||||
|
@@ -24,4 +24,13 @@ public record ServerboundChatCommandPacket(String command, Instant timeStamp, lo
|
||||||
|
public void handle(ServerGamePacketListener listener) {
|
||||||
|
listener.handleChatCommand(this);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ // Plazma start - Implement No Chat Reports
|
||||||
|
+ @Override
|
||||||
|
+ public ArgumentSignatures argumentSignatures() {
|
||||||
|
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.enabled)
|
||||||
|
+ return ArgumentSignatures.EMPTY;
|
||||||
|
+ return this.argumentSignatures;
|
||||||
|
+ }
|
||||||
|
+ // Plazma end
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java
|
||||||
|
index d1d2fc0c57523c1abf1e8bfec913c78927c3dafc..b32e17ef1d7d65f2e3cf4fb5471d8182b3ba892f 100644
|
||||||
|
--- a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java
|
||||||
|
+++ b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java
|
||||||
|
@@ -25,4 +25,12 @@ public record ServerboundChatPacket(String message, Instant timeStamp, long salt
|
||||||
|
public void handle(ServerGamePacketListener listener) {
|
||||||
|
listener.handleChat(this);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ // Plazma start - Implement No Chat Reports
|
||||||
|
+ @Override
|
||||||
|
+ public @Nullable MessageSignature signature() {
|
||||||
|
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.enabled) return null;
|
||||||
|
+ return this.signature;
|
||||||
|
+ }
|
||||||
|
+ // Plazma end
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatSessionUpdatePacket.java b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatSessionUpdatePacket.java
|
||||||
|
index 9d6db4a378036559efab91c8b7dcf2a6b0c2cce6..4d9f73add791cef03cc7aeaf1598a73c2195809a 100644
|
||||||
|
--- a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatSessionUpdatePacket.java
|
||||||
|
+++ b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatSessionUpdatePacket.java
|
||||||
|
@@ -16,6 +16,15 @@ public record ServerboundChatSessionUpdatePacket(RemoteChatSession.Data chatSess
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(ServerGamePacketListener listener) {
|
||||||
|
+ // Plazma start - Implement No Chat Reports
|
||||||
|
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.requireModInstallation()) {
|
||||||
|
+ ((net.minecraft.server.network.ServerGamePacketListenerImpl) listener).disconnect(
|
||||||
|
+ net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.requireModInstallation.message),
|
||||||
|
+ org.bukkit.event.player.PlayerKickEvent.Cause.NCR_NOT_INSTALLED
|
||||||
|
+ );
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ // Plazma end
|
||||||
|
listener.handleChatSessionUpdate(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
|
index 879c090d9c4574a2cd45a0eb1bf9cb171834d940..d6e8d96372d4212c72a50602207075ccd3f5062d 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
|
@@ -683,6 +683,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
|
public boolean enforceSecureProfile() {
|
||||||
|
DedicatedServerProperties dedicatedserverproperties = this.getProperties();
|
||||||
|
|
||||||
|
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.enabled) return false; // Plazma - Implement No Chat Reports
|
||||||
|
return dedicatedserverproperties.enforceSecureProfile && dedicatedserverproperties.onlineMode && this.services.profileKeySignatureValidator() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||||
|
index 6f6228edfe77668552a40a814ab3cebd74c4cb5a..22f26761965d3c03b109939585ff528d382eab21 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||||
|
@@ -270,6 +270,13 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||||
|
}
|
||||||
|
|
||||||
|
public void send(Packet<?> packet, @Nullable PacketSendListener callbacks) {
|
||||||
|
+ // Plazma start - Implement No Chat Reports
|
||||||
|
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.convertToSystemMessage()
|
||||||
|
+ && packet instanceof net.minecraft.network.protocol.game.ClientboundPlayerChatPacket p) {
|
||||||
|
+ this.send(new net.minecraft.network.protocol.game.ClientboundSystemChatPacket(null, Component.Serializer.toJson(p.chatType().resolve(this.player.level().registryAccess()).get().decorate(p.unsignedContent() != null ? p.unsignedContent() : Component.literal(p.body().content()))), false), null);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ // Plazma end
|
||||||
|
// CraftBukkit start
|
||||||
|
if (packet == null || this.processedDisconnect) { // Spigot
|
||||||
|
return;
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
|
index 58cc1bed851994fb591e9b832b98d25eda153b47..4fbe96813067d3ccf1d8f29151ac3fac0840d76f 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
|
@@ -1471,6 +1471,7 @@ public abstract class PlayerList {
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean verifyChatTrusted(PlayerChatMessage message) { // Paper - private -> public
|
||||||
|
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.enabled) return true; // Plazma - Implement No Chat Reports
|
||||||
|
return message.hasSignature() && !message.hasExpiredServer(Instant.now());
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
index 5a62bffe495002b3bbf5fd995df135c5d174458a..989aa0aeb05a878945849adc6fb6663027e15927 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
@@ -55,4 +55,22 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||||
|
public boolean notSecurePrefix = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ public NoChatReports noChatReports;
|
||||||
|
+ public class NoChatReports extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ public boolean enabled = false;
|
||||||
|
+ boolean queryData = true; public boolean queryData() { return this.enabled && this.queryData; }
|
||||||
|
+ boolean convertToSystemMessage = true; public boolean convertToSystemMessage() { return this.enabled && this.convertToSystemMessage; }
|
||||||
|
+ public boolean requireModInstallation() { return this.enabled && this.requireModInstallation.enabled; }
|
||||||
|
+
|
||||||
|
+ public RequireModInstallation requireModInstallation;
|
||||||
|
+ public class RequireModInstallation extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ boolean enabled = false;
|
||||||
|
+ public String message = "You do not have No Chat Reports, and this server is configured to require it on client!";
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
}
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
|
||||||
Date: Sat, 25 Mar 2023 22:07:39 +0900
|
|
||||||
Subject: [PATCH] Do not send useless entity packets
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
|
||||||
index 6afee2a744a3498d4a0eee35f77cde444f73d12c..dbb987d5896e199aeae3bcd86c69bf3327af8ada 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
|
||||||
@@ -207,6 +207,7 @@ public class ServerEntity {
|
|
||||||
flag4 = true;
|
|
||||||
flag5 = true;
|
|
||||||
}
|
|
||||||
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.doNotSendUselessEntityPackets && isUselessEntityPacket(packet1)) packet1 = null; // Plazma
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((this.trackDelta || this.entity.hasImpulse || this.entity instanceof LivingEntity && ((LivingEntity) this.entity).isFallFlying()) && this.tickCount > 0) {
|
|
||||||
@@ -281,6 +282,21 @@ public class ServerEntity {
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Plazma start
|
|
||||||
+ private boolean isUselessEntityPacket(@Nullable Packet<?> packet) {
|
|
||||||
+ if (packet == null) return false;
|
|
||||||
+ if (packet instanceof ClientboundMoveEntityPacket p) {
|
|
||||||
+ if (p instanceof ClientboundMoveEntityPacket.Pos)
|
|
||||||
+ return p.getXa() == 0 && p.getYa() == 0 && p.getZa() == 0;
|
|
||||||
+ else if (p instanceof ClientboundMoveEntityPacket.Rot)
|
|
||||||
+ return p.getxRot() == 0 && p.getyRot() == 0;
|
|
||||||
+ else if (p instanceof ClientboundMoveEntityPacket.PosRot)
|
|
||||||
+ return p.getXa() == 0 && p.getYa() == 0 && p.getZa() == 0 && p.getxRot() == 0 && p.getyRot() == 0;
|
|
||||||
+ }
|
|
||||||
+ return false;
|
|
||||||
+ }
|
|
||||||
+ // Plazma end
|
|
||||||
+
|
|
||||||
public void removePairing(ServerPlayer player) {
|
|
||||||
this.entity.stopSeenByPlayer(player);
|
|
||||||
player.connection.send(new ClientboundRemoveEntitiesPacket(new int[]{this.entity.getId()}));
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
index 87a85fb1cd9a19541df04a5d1c457d86cf7f68eb..989b6d20818dec0a527a170ad2b19d456ca023d9 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
@@ -42,6 +42,7 @@ public class GlobalConfiguration extends ConfigurationPart {
|
|
||||||
|
|
||||||
public boolean reduceCreateRandomInstance = DO_OPTIMIZE;
|
|
||||||
public boolean doNotTriggerLootTableRefreshForNonPlayerInteraction = DO_OPTIMIZE;
|
|
||||||
+ public boolean doNotSendUselessEntityPackets = DO_OPTIMIZE;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,13 +1,11 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: IPECTER <ipectert@gmail.com>
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
Date: Tue, 28 Mar 2023 12:42:17 +0900
|
Date: Thu, 28 Sep 2023 12:33:14 +0900
|
||||||
Subject: [PATCH] Implement MemoryLeakFix
|
Subject: [PATCH] Improve biome temperature cache
|
||||||
|
|
||||||
Original: fxmorin/MemoryLeakFix
|
|
||||||
Copyright (C) 2023 fxmorin
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/biome/Biome.java b/src/main/java/net/minecraft/world/level/biome/Biome.java
|
diff --git a/src/main/java/net/minecraft/world/level/biome/Biome.java b/src/main/java/net/minecraft/world/level/biome/Biome.java
|
||||||
index ed439b7e94646141c93a7dd3704d1cdeb5c27e16..2bddcaf8762ee7834c32622402a976bfad12d127 100644
|
index ed439b7e94646141c93a7dd3704d1cdeb5c27e16..71880b6fde3a287aa75c3799ffdd82a7943bb9db 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/biome/Biome.java
|
--- a/src/main/java/net/minecraft/world/level/biome/Biome.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/biome/Biome.java
|
+++ b/src/main/java/net/minecraft/world/level/biome/Biome.java
|
||||||
@@ -67,7 +67,7 @@ public final class Biome {
|
@@ -67,7 +67,7 @@ public final class Biome {
|
||||||
@@ -15,7 +13,7 @@ index ed439b7e94646141c93a7dd3704d1cdeb5c27e16..2bddcaf8762ee7834c32622402a976bf
|
|||||||
private final BiomeSpecialEffects specialEffects;
|
private final BiomeSpecialEffects specialEffects;
|
||||||
// Pufferfish start - use our cache
|
// Pufferfish start - use our cache
|
||||||
- private final ThreadLocal<gg.airplane.structs.Long2FloatAgingCache> temperatureCache = ThreadLocal.withInitial(() -> {
|
- private final ThreadLocal<gg.airplane.structs.Long2FloatAgingCache> temperatureCache = ThreadLocal.withInitial(() -> {
|
||||||
+ private static final ThreadLocal<gg.airplane.structs.Long2FloatAgingCache> temperatureCache = ThreadLocal.withInitial(() -> { // Plazma - MemoryLeakFix
|
+ private static final ThreadLocal<gg.airplane.structs.Long2FloatAgingCache> temperatureCache = ThreadLocal.withInitial(() -> { // Plazma - Improve BiomeTemperatureCache
|
||||||
return Util.make(() -> {
|
return Util.make(() -> {
|
||||||
/*
|
/*
|
||||||
Long2FloatLinkedOpenHashMap long2FloatLinkedOpenHashMap = new Long2FloatLinkedOpenHashMap(1024, 0.25F) {
|
Long2FloatLinkedOpenHashMap long2FloatLinkedOpenHashMap = new Long2FloatLinkedOpenHashMap(1024, 0.25F) {
|
||||||
@@ -24,7 +22,7 @@ index ed439b7e94646141c93a7dd3704d1cdeb5c27e16..2bddcaf8762ee7834c32622402a976bf
|
|||||||
long l = blockPos.asLong();
|
long l = blockPos.asLong();
|
||||||
// Pufferfish start
|
// Pufferfish start
|
||||||
- gg.airplane.structs.Long2FloatAgingCache cache = this.temperatureCache.get();
|
- gg.airplane.structs.Long2FloatAgingCache cache = this.temperatureCache.get();
|
||||||
+ gg.airplane.structs.Long2FloatAgingCache cache = temperatureCache.get(); // Plazma - MemoryLeakFix
|
+ gg.airplane.structs.Long2FloatAgingCache cache = temperatureCache.get(); // Plazma - Improve BiomeTemperatureCache
|
||||||
float f = cache.getValue(l);
|
float f = cache.getValue(l);
|
||||||
if (!Float.isNaN(f)) {
|
if (!Float.isNaN(f)) {
|
||||||
return f;
|
return f;
|
||||||
91
patches/server/0025-Implement-FixMySpawnR.patch
Normal file
91
patches/server/0025-Implement-FixMySpawnR.patch
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Fri, 29 Sep 2023 21:10:26 +0900
|
||||||
|
Subject: [PATCH] Implement FixMySpawnR
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java
|
||||||
|
index 64d911bee1607880514061c75116d8672df8bb8f..7868590696f620cc5f0785125c9573d7494d8477 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java
|
||||||
|
@@ -46,6 +46,8 @@ public abstract class BaseSpawner {
|
||||||
|
public int requiredPlayerRange = 16;
|
||||||
|
public int spawnRange = 4;
|
||||||
|
private int tickDelay = 0; // Paper
|
||||||
|
+ private int blockExistsTick = 0; // Plazma - Implement FixMySpawnR
|
||||||
|
+ private boolean blockLockedByTime = false; // Plazma - Implement FixMySpawnR
|
||||||
|
|
||||||
|
public BaseSpawner() {}
|
||||||
|
|
||||||
|
@@ -81,6 +83,17 @@ public abstract class BaseSpawner {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void serverTick(ServerLevel world, BlockPos pos) {
|
||||||
|
+ // Plazma start - Implement FixMySpawnR
|
||||||
|
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().gameMechanics.spawning.deadlockTimer.enabled) {
|
||||||
|
+ if (!this.blockLockedByTime) {
|
||||||
|
+ if (this.blockExistsTick > org.plazmamc.plazma.configurations.GlobalConfiguration.get().gameMechanics.spawning.deadlockTimer.timerTimeout)
|
||||||
|
+ blockLockedByTime = true;
|
||||||
|
+ else blockExistsTick++;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (blockLockedByTime && world.getBestNeighborSignal(pos) > 0) return;
|
||||||
|
+ }
|
||||||
|
+ // Plazma end
|
||||||
|
if (spawnCount <= 0 || maxNearbyEntities <= 0) return; // Paper - Ignore impossible spawn tick
|
||||||
|
// Paper start - Configurable mob spawner tick rate
|
||||||
|
if (spawnDelay > 0 && --tickDelay > 0) return;
|
||||||
|
@@ -286,6 +299,14 @@ public abstract class BaseSpawner {
|
||||||
|
this.spawnRange = nbt.getShort("SpawnRange");
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Plazma start - Implement FixMySpawnR
|
||||||
|
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().gameMechanics.spawning.deadlockTimer.enabled
|
||||||
|
+ && nbt.contains("Plazma.SpawnerTicks", 99)) {
|
||||||
|
+ this.blockExistsTick = nbt.getInt("Plazma.SpawnerTicks");
|
||||||
|
+ this.blockLockedByTime = nbt.getBoolean("Plazma.SpawnerLocked");
|
||||||
|
+ }
|
||||||
|
+ // Plazma end
|
||||||
|
+
|
||||||
|
this.displayEntity = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -314,6 +335,9 @@ public abstract class BaseSpawner {
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
+ nbt.putInt("Plazma.SpawnerTicks", this.blockExistsTick); // Plazma - Implement FixMySpawnR
|
||||||
|
+ nbt.putBoolean("Plazma.SpawnerLocked", this.blockLockedByTime); // Plazma - Implement FixMySpawnR
|
||||||
|
+
|
||||||
|
nbt.put("SpawnPotentials", (Tag) SpawnData.LIST_CODEC.encodeStart(NbtOps.INSTANCE, this.spawnPotentials).result().orElseThrow());
|
||||||
|
return nbt;
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
index 989aa0aeb05a878945849adc6fb6663027e15927..d17df5621717b1c8d1d9a5549feb73c3600ecf3d 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
@@ -40,6 +40,24 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
+ public GameMechanics gameMechanics;
|
||||||
|
+ public class GameMechanics extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ public Spawning spawning;
|
||||||
|
+ public class Spawning extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ public DeadlockTimer deadlockTimer;
|
||||||
|
+ public class DeadlockTimer extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ public boolean enabled = DO_OPTIMIZE;
|
||||||
|
+ public int timerTimeout = 0;
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
public Player player;
|
||||||
|
public class Player extends ConfigurationPart {
|
||||||
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
|
||||||
Date: Sun, 26 Mar 2023 13:43:01 +0900
|
|
||||||
Subject: [PATCH] No Chat Reports Configuration
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
index 989b6d20818dec0a527a170ad2b19d456ca023d9..b6348572f4a90acbcf6ec234beac84e8a019ee50 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
@@ -44,5 +44,12 @@ public class GlobalConfiguration extends ConfigurationPart {
|
|
||||||
public boolean doNotTriggerLootTableRefreshForNonPlayerInteraction = DO_OPTIMIZE;
|
|
||||||
public boolean doNotSendUselessEntityPackets = DO_OPTIMIZE;
|
|
||||||
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public NoChatReports noChatReports;
|
|
||||||
+ public class NoChatReports extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
}
|
|
||||||
}
|
|
||||||
35
patches/server/0026-Configurable-sensor-tick.patch
Normal file
35
patches/server/0026-Configurable-sensor-tick.patch
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Fri, 29 Sep 2023 21:12:38 +0900
|
||||||
|
Subject: [PATCH] Configurable sensor tick
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
|
index fb5c21ba15995d00da87ee6ef9e4ab8f6678d67f..4710f85197bc80e554cc1b2b84058c8dc8049c1f 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
|
@@ -938,10 +938,10 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
||||||
|
}
|
||||||
|
// Paper end
|
||||||
|
//this.level().getProfiler().push("sensing"); // Purpur
|
||||||
|
- this.sensing.tick();
|
||||||
|
//this.level().getProfiler().pop(); // Purpur
|
||||||
|
int i = this.level().getServer().getTickCount() + this.getId();
|
||||||
|
|
||||||
|
+ if (i % this.level().plazmaLevelConfiguration().entity.sensorTick == 0) this.sensing.tick(); // Plazma - moved down
|
||||||
|
if (i % 2 != 0 && this.tickCount > 1) {
|
||||||
|
//this.level().getProfiler().push("targetSelector"); // Purpur
|
||||||
|
if (this.targetSelector.inactiveTick(this.activatedPriority, false)) // Pufferfish - use this to alternate ticking
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
index bb0f561f0b0d71697de52c834d2ed1798b2022df..6711b3d93eb5292314bcd89280d88f367eada9df 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
@@ -33,6 +33,8 @@ public class LevelConfigurations extends ConfigurationPart {
|
||||||
|
public Entity entity;
|
||||||
|
public class Entity extends ConfigurationPart {
|
||||||
|
|
||||||
|
+ public int sensorTick = DO_OPTIMIZE ? 10 : 1;
|
||||||
|
+
|
||||||
|
public boolean ignoreUselessPackets = DO_OPTIMIZE;
|
||||||
|
|
||||||
|
public Player player;
|
||||||
@@ -1,132 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
|
||||||
Date: Sun, 26 Mar 2023 13:48:48 +0900
|
|
||||||
Subject: [PATCH] Implement No Chat Reports
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/network/FriendlyByteBuf.java b/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
|
||||||
index 1f4b64a5f812376c499c98cb4be62469bd0b7dbe..59d3b33d523dea21e7a3f0747734b20226fd1dae 100644
|
|
||||||
--- a/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
|
||||||
+++ b/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
|
||||||
@@ -156,9 +156,14 @@ public class FriendlyByteBuf extends ByteBuf {
|
|
||||||
public <T> void writeJsonWithCodec(Codec<T> codec, T value) {
|
|
||||||
DataResult<JsonElement> dataresult = codec.encodeStart(JsonOps.INSTANCE, value);
|
|
||||||
|
|
||||||
- this.writeUtf(FriendlyByteBuf.GSON.toJson((JsonElement) Util.getOrThrow(dataresult, (s) -> {
|
|
||||||
- return new EncoderException("Failed to encode: " + s + " " + value);
|
|
||||||
- })));
|
|
||||||
+ // Plazma start - NCR
|
|
||||||
+ JsonElement element = Util.getOrThrow(dataresult, (s) -> new EncoderException("Failed to encode: " + s + " " + value));
|
|
||||||
+
|
|
||||||
+ if (codec == net.minecraft.network.protocol.status.ServerStatus.CODEC && org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.addQueryData())
|
|
||||||
+ element.getAsJsonObject().addProperty("preventsChatReports", true);
|
|
||||||
+
|
|
||||||
+ this.writeUtf(FriendlyByteBuf.GSON.toJson(element));
|
|
||||||
+ // Plazma end
|
|
||||||
}
|
|
||||||
|
|
||||||
public <T> void writeId(IdMap<T> registry, T value) {
|
|
||||||
diff --git a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatCommandPacket.java b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatCommandPacket.java
|
|
||||||
index b8c1f3b9afddc87d56541c8af63cffecfcdd2653..c74c17f058b7a6587e3dcab35878d469e0599240 100644
|
|
||||||
--- a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatCommandPacket.java
|
|
||||||
+++ b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatCommandPacket.java
|
|
||||||
@@ -24,4 +24,10 @@ public record ServerboundChatCommandPacket(String command, Instant timeStamp, lo
|
|
||||||
public void handle(ServerGamePacketListener listener) {
|
|
||||||
listener.handleChatCommand(this);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ // Plazma start - NCR
|
|
||||||
+ public ArgumentSignatures argumentSignatures() {
|
|
||||||
+ return org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.enabled ? ArgumentSignatures.EMPTY : this.argumentSignatures;
|
|
||||||
+ }
|
|
||||||
+ // Plazma end
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java
|
|
||||||
index d1d2fc0c57523c1abf1e8bfec913c78927c3dafc..f93372070b3babc76d43b18df9a0f91a2125e37e 100644
|
|
||||||
--- a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java
|
|
||||||
+++ b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java
|
|
||||||
@@ -25,4 +25,11 @@ public record ServerboundChatPacket(String message, Instant timeStamp, long salt
|
|
||||||
public void handle(ServerGamePacketListener listener) {
|
|
||||||
listener.handleChat(this);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ // Plazma start - NCR
|
|
||||||
+ @Nullable
|
|
||||||
+ public MessageSignature signature() {
|
|
||||||
+ return org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.enabled ? null : this.signature;
|
|
||||||
+ }
|
|
||||||
+ // Plazma end
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
|
||||||
index efcee39cd7154493de04ca903edbd32b5901b191..a398b71c52817bd68a05613ec037ed6d7ae6fb27 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
|
||||||
@@ -683,7 +683,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean enforceSecureProfile() {
|
|
||||||
- return this.getProperties().enforceSecureProfile && this.getProperties().onlineMode;
|
|
||||||
+ return !org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.enabled && this.getProperties().enforceSecureProfile && this.getProperties().onlineMode; // Plazma - NCR
|
|
||||||
}
|
|
||||||
|
|
||||||
protected boolean convertOldUsers() {
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
index 32e91b8866dd2aa5e4d26ef6ca77dc3f1206781b..48f66a67c251d1183d59a3b8ad417980419a9906 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
@@ -2234,10 +2234,19 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void send(Packet<?> packet) {
|
|
||||||
- this.send(packet, (PacketSendListener) null);
|
|
||||||
+ // Plazma start - NCR
|
|
||||||
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.convertToGameMessage() && packet instanceof ClientboundPlayerChatPacket p)
|
|
||||||
+ packet = new ClientboundSystemChatPacket(null, Component.Serializer.toJson(p.chatType().resolve(this.player.level.registryAccess()).get().decorate(p.unsignedContent() != null ? p.unsignedContent() : Component.literal(p.body().content()))), false);
|
|
||||||
+ this.send(packet, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void send(Packet<?> packet, @Nullable PacketSendListener callbacks) {
|
|
||||||
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.convertToGameMessage() && packet instanceof ClientboundPlayerChatPacket p && callbacks != null) {
|
|
||||||
+ this.send(p);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ // Plazma end
|
|
||||||
+
|
|
||||||
// CraftBukkit start
|
|
||||||
if (packet == null || this.processedDisconnect) { // Spigot
|
|
||||||
return;
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
||||||
index 427a50198c80459fb4d2364a859ed978b1ec7871..6d3e66f91f6ba47a2cde29e68f6961fdf0bde4de 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
||||||
@@ -1462,7 +1462,7 @@ public abstract class PlayerList {
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean verifyChatTrusted(PlayerChatMessage message) { // Paper - private -> public
|
|
||||||
- return message.hasSignature() && !message.hasExpiredServer(Instant.now());
|
|
||||||
+ return org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.enabled || message.hasSignature() && !message.hasExpiredServer(Instant.now()); // Plazma - NCR
|
|
||||||
}
|
|
||||||
|
|
||||||
// CraftBukkit start
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
index b6348572f4a90acbcf6ec234beac84e8a019ee50..7a585540c72c1c18ddcb45ec1caa350f1f9ce544 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
@@ -49,7 +49,17 @@ public class GlobalConfiguration extends ConfigurationPart {
|
|
||||||
public NoChatReports noChatReports;
|
|
||||||
public class NoChatReports extends ConfigurationPart {
|
|
||||||
|
|
||||||
+ public boolean enabled = false;
|
|
||||||
+ boolean addQueryData = true;
|
|
||||||
+ boolean convertToGameMessage = true;
|
|
||||||
|
|
||||||
+ public boolean addQueryData() {
|
|
||||||
+ return enabled && addQueryData;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public boolean convertToGameMessage() {
|
|
||||||
+ return enabled && convertToGameMessage;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: IPECTER <ipectert@gmail.com>
|
|
||||||
Date: Sun, 26 Mar 2023 16:20:13 +0900
|
|
||||||
Subject: [PATCH] FixMySpawnR Configuration
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
index 7a585540c72c1c18ddcb45ec1caa350f1f9ce544..088670ec016514b4a7fae402d7119a6aaa491c5d 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
@@ -62,4 +62,12 @@ public class GlobalConfiguration extends ConfigurationPart {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ public FixMySpawnR fixMySpawnR;
|
|
||||||
+ public class FixMySpawnR extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+ public boolean enabled = DO_OPTIMIZE;
|
|
||||||
+ public int timerTimeOut = 0;
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
76
patches/server/0027-Variable-entity-wakeup-duration.patch
Normal file
76
patches/server/0027-Variable-entity-wakeup-duration.patch
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Sat, 30 Sep 2023 21:56:32 +0900
|
||||||
|
Subject: [PATCH] Variable entity wakeup duration
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
index 82975c1c92c84294740a411b4a351efb8a2e6769..cb21da3cff4dbb08c7786c09b39e381abdf45c33 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
@@ -51,6 +51,20 @@ public class LevelConfigurations extends ConfigurationPart {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
+ public WakeUpDurationVariance wakeUpDurationVariance;
|
||||||
|
+ public class WakeUpDurationVariance extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ double defaultValue() {
|
||||||
|
+ return DO_OPTIMIZE ? 0.2 : 0.0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ double animal = defaultValue(); public double animal() { return Math.max(0, this.animal); }
|
||||||
|
+ double monster = defaultValue(); public double monster() { return Math.max(0, this.monster); }
|
||||||
|
+ double flyingMonster = defaultValue(); public double flyingMonster() { return Math.max(0, this.flyingMonster); }
|
||||||
|
+ double villager = defaultValue(); public double villager() { return Math.max(0, this.villager); }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
}
|
||||||
|
|
||||||
|
public Structure structure;
|
||||||
|
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||||
|
index 062a793a134f774ebf918aab10443527c06c4fd1..3a362fef29c6fa29c37eff539e343eb3a56bf122 100644
|
||||||
|
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||||
|
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||||
|
@@ -68,6 +68,13 @@ public class ActivationRange
|
||||||
|
Activity.PANIC
|
||||||
|
};
|
||||||
|
|
||||||
|
+ // Plazma start - Variable entity wakeup duration
|
||||||
|
+ private static final java.util.Random WAKEUP_DURATION_RANDOM = org.plazmamc.plazma.PlazmaOptions.useJavaRandom() ? new java.util.Random() : new org.plazmamc.plazma.Random();
|
||||||
|
+ private static int getWakeupDurationWithVariance(int duration, double deviation) {
|
||||||
|
+ if (deviation == 0) return duration;
|
||||||
|
+ return (int) Math.min(Integer.MAX_VALUE, Math.max(1, Math.round(duration * WAKEUP_DURATION_RANDOM.nextGaussian(1, deviation))));
|
||||||
|
+ }
|
||||||
|
+ // Plazma end
|
||||||
|
private static int checkInactiveWakeup(Entity entity) {
|
||||||
|
Level world = entity.level();
|
||||||
|
SpigotWorldConfig config = world.spigotConfig;
|
||||||
|
@@ -75,22 +82,22 @@ public class ActivationRange
|
||||||
|
if (entity.activationType == ActivationType.VILLAGER) {
|
||||||
|
if (inactiveFor > config.wakeUpInactiveVillagersEvery && world.wakeupInactiveRemainingVillagers > 0) {
|
||||||
|
world.wakeupInactiveRemainingVillagers--;
|
||||||
|
- return config.wakeUpInactiveVillagersFor;
|
||||||
|
+ return getWakeupDurationWithVariance(config.wakeUpInactiveVillagersFor, world.plazmaLevelConfiguration().entity.wakeUpDurationVariance.villager()); // Plazma - Variable entity wakeup duration
|
||||||
|
}
|
||||||
|
} else if (entity.activationType == ActivationType.ANIMAL) {
|
||||||
|
if (inactiveFor > config.wakeUpInactiveAnimalsEvery && world.wakeupInactiveRemainingAnimals > 0) {
|
||||||
|
world.wakeupInactiveRemainingAnimals--;
|
||||||
|
- return config.wakeUpInactiveAnimalsFor;
|
||||||
|
+ return getWakeupDurationWithVariance(config.wakeUpInactiveAnimalsFor, world.plazmaLevelConfiguration().entity.wakeUpDurationVariance.animal()); // Plazma - Variable entity wakeup duration
|
||||||
|
}
|
||||||
|
} else if (entity.activationType == ActivationType.FLYING_MONSTER) {
|
||||||
|
if (inactiveFor > config.wakeUpInactiveFlyingEvery && world.wakeupInactiveRemainingFlying > 0) {
|
||||||
|
world.wakeupInactiveRemainingFlying--;
|
||||||
|
- return config.wakeUpInactiveFlyingFor;
|
||||||
|
+ return getWakeupDurationWithVariance(config.wakeUpInactiveFlyingFor, world.plazmaLevelConfiguration().entity.wakeUpDurationVariance.flyingMonster()); // Plazma - Variable entity wakeup duration
|
||||||
|
}
|
||||||
|
} else if (entity.activationType == ActivationType.MONSTER || entity.activationType == ActivationType.RAIDER) {
|
||||||
|
if (inactiveFor > config.wakeUpInactiveMonstersEvery && world.wakeupInactiveRemainingMonsters > 0) {
|
||||||
|
world.wakeupInactiveRemainingMonsters--;
|
||||||
|
- return config.wakeUpInactiveMonstersFor;
|
||||||
|
+ return getWakeupDurationWithVariance(config.wakeUpInactiveMonstersFor, world.plazmaLevelConfiguration().entity.wakeUpDurationVariance.monster()); // Plazma - Variable entity wakeup duration
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: IPECTER <ipectert@gmail.com>
|
|
||||||
Date: Sun, 26 Mar 2023 13:17:24 +0900
|
|
||||||
Subject: [PATCH] Implement FixMySpawnR
|
|
||||||
|
|
||||||
Original: AbsolemJackdaw/FixMySpawnR
|
|
||||||
Copyright (C) 2023 AbsolemJackdaw
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java
|
|
||||||
index feb65fc9ee04141fe6f77400660442ed207547a1..9c759e71ef1d119d7807886f9e56b7230a334475 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java
|
|
||||||
@@ -46,6 +46,8 @@ public abstract class BaseSpawner {
|
|
||||||
public int requiredPlayerRange = 16;
|
|
||||||
public int spawnRange = 4;
|
|
||||||
private int tickDelay = 0; // Paper
|
|
||||||
+ private int blockExistsTick = 0; // Plazma
|
|
||||||
+ private boolean blockLockedByTime = false; // Plazma
|
|
||||||
|
|
||||||
public BaseSpawner() {}
|
|
||||||
|
|
||||||
@@ -81,6 +83,18 @@ public abstract class BaseSpawner {
|
|
||||||
}
|
|
||||||
|
|
||||||
public void serverTick(ServerLevel world, BlockPos pos) {
|
|
||||||
+ // Plazma start - FixMySpawnR
|
|
||||||
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().fixMySpawnR.enabled) {
|
|
||||||
+ if (!blockLockedByTime) {
|
|
||||||
+ if (blockExistsTick > org.plazmamc.plazma.configurations.GlobalConfiguration.get().fixMySpawnR.timerTimeOut) {
|
|
||||||
+ blockLockedByTime = true;
|
|
||||||
+ } else {
|
|
||||||
+ blockExistsTick++;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ if (blockLockedByTime && world.getBestNeighborSignal(pos) > 0) return;
|
|
||||||
+ // Plazma end
|
|
||||||
if (spawnCount <= 0 || maxNearbyEntities <= 0) return; // Paper - Ignore impossible spawn tick
|
|
||||||
// Paper start - Configurable mob spawner tick rate
|
|
||||||
if (spawnDelay > 0 && --tickDelay > 0) return;
|
|
||||||
@@ -292,6 +306,13 @@ public abstract class BaseSpawner {
|
|
||||||
this.spawnRange = nbt.getShort("SpawnRange");
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Plazma start - FixMySpawnR
|
|
||||||
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().fixMySpawnR.enabled && nbt.contains("SpawnRange", 99)) {
|
|
||||||
+ this.blockExistsTick = nbt.getInt("fixmyspawnrTicks");
|
|
||||||
+ this.blockLockedByTime = nbt.getBoolean("fixMySpawnerLocked");
|
|
||||||
+ }
|
|
||||||
+ // Plazma end
|
|
||||||
+
|
|
||||||
this.displayEntity = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -321,6 +342,12 @@ public abstract class BaseSpawner {
|
|
||||||
}
|
|
||||||
|
|
||||||
nbt.put("SpawnPotentials", (Tag) SpawnData.LIST_CODEC.encodeStart(NbtOps.INSTANCE, this.spawnPotentials).result().orElseThrow());
|
|
||||||
+ // Plazma start - FixMySpawnR
|
|
||||||
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().fixMySpawnR.enabled) {
|
|
||||||
+ nbt.putInt("fixmyspawnrTicks", blockExistsTick);
|
|
||||||
+ nbt.putBoolean("fixMySpawnerLocked", blockLockedByTime);
|
|
||||||
+ }
|
|
||||||
+ // Plazma end
|
|
||||||
return nbt;
|
|
||||||
}
|
|
||||||
|
|
||||||
59
patches/server/0028-Optimise-state-lookup-more.patch
Normal file
59
patches/server/0028-Optimise-state-lookup-more.patch
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Sat, 30 Sep 2023 22:02:58 +0900
|
||||||
|
Subject: [PATCH] Optimise state lookup more
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/io/papermc/paper/util/table/ZeroCollidingReferenceStateTable.java b/src/main/java/io/papermc/paper/util/table/ZeroCollidingReferenceStateTable.java
|
||||||
|
index 57d0cd3ad6f972e986c72a57f1a6e36003f190c2..0832e4fa92b6464a6206475fbceb3b36462757b3 100644
|
||||||
|
--- a/src/main/java/io/papermc/paper/util/table/ZeroCollidingReferenceStateTable.java
|
||||||
|
+++ b/src/main/java/io/papermc/paper/util/table/ZeroCollidingReferenceStateTable.java
|
||||||
|
@@ -17,6 +17,7 @@ public final class ZeroCollidingReferenceStateTable {
|
||||||
|
protected final StateHolder<?, ?> this_state;
|
||||||
|
|
||||||
|
protected long[] index_table;
|
||||||
|
+ public long[] index_table() { return this.index_table; } // Plazma - getter
|
||||||
|
protected StateHolder<?, ?>[][] value_table;
|
||||||
|
|
||||||
|
public ZeroCollidingReferenceStateTable(final StateHolder<?, ?> state, final Map<Property<?>, Comparable<?>> this_map) {
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/block/state/StateHolder.java b/src/main/java/net/minecraft/world/level/block/state/StateHolder.java
|
||||||
|
index 5f285d190186a2ff5a61d05070593e1d633dd79a..7b61a956892e90c7556db46d9277da8d252547cd 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/block/state/StateHolder.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/block/state/StateHolder.java
|
||||||
|
@@ -114,21 +114,15 @@ public abstract class StateHolder<O, S> {
|
||||||
|
}
|
||||||
|
|
||||||
|
public <T extends Comparable<T>, V extends T> S trySetValue(Property<T> property, V value) {
|
||||||
|
- Comparable<?> comparable = this.values.get(property);
|
||||||
|
- if (comparable != null && !comparable.equals(value)) {
|
||||||
|
- S object = this.neighbours.get(property, value);
|
||||||
|
- if (object == null) {
|
||||||
|
- throw new IllegalArgumentException("Cannot set property " + property + " to " + value + " on " + this.owner + ", it is not an allowed value");
|
||||||
|
- } else {
|
||||||
|
- return object;
|
||||||
|
- }
|
||||||
|
- } else {
|
||||||
|
- return (S)this;
|
||||||
|
- }
|
||||||
|
+ // Plazma start - optimise state lookup more
|
||||||
|
+ final S ret = (S) this.optimisedTable.get(property, value);
|
||||||
|
+ if (ret == null) throw new IllegalArgumentException("Cannot set property " + property + " to " + value + " on " + this.owner + ", it is not an allowed value");
|
||||||
|
+ return ret;
|
||||||
|
+ // Plazma end
|
||||||
|
}
|
||||||
|
|
||||||
|
public void populateNeighbours(Map<Map<Property<?>, Comparable<?>>, S> states) {
|
||||||
|
- if (this.neighbours != null) {
|
||||||
|
+ if (this.optimisedTable.index_table() != null) { // Plazma - optimise state lookup more
|
||||||
|
throw new IllegalStateException();
|
||||||
|
} else {
|
||||||
|
Table<Property<?>, Comparable<?>, S> table = HashBasedTable.create();
|
||||||
|
@@ -143,7 +137,7 @@ public abstract class StateHolder<O, S> {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- this.neighbours = (Table<Property<?>, Comparable<?>, S>)(table.isEmpty() ? table : ArrayTable.create(table)); this.optimisedTable.loadInTable((Table)this.neighbours, this.values); // Paper - optimise state lookup
|
||||||
|
+ this.optimisedTable.loadInTable((Table) (table.isEmpty() ? table : ArrayTable.create(table)), this.values); // Paper - optimise state lookup // Plazma - more
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Sat, 30 Sep 2023 22:06:00 +0900
|
||||||
|
Subject: [PATCH] Suppress error from dirty attributes
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
|
index b2770e053f6db173dedbf044d67aa315e2fd7302..30b4c6bf1a0c847d00fc466ca9c997f9049bb697 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
|
@@ -395,7 +395,8 @@ public class ServerEntity {
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.entity instanceof LivingEntity) {
|
||||||
|
- Set<AttributeInstance> set = ((LivingEntity) this.entity).getAttributes().getDirtyAttributes();
|
||||||
|
+ Set<AttributeInstance> attributes = ((LivingEntity) this.entity).getAttributes().getDirtyAttributes(); // Plazma - Suppress error from dirty attributes
|
||||||
|
+ final Set<AttributeInstance> set = this.entity.level().plazmaLevelConfiguration().entity.suppressErrorFromDirtyAttributes ? java.util.Collections.synchronizedSet(attributes) : attributes; // Plazma - Suppress error from dirty attributes
|
||||||
|
|
||||||
|
if (!set.isEmpty()) {
|
||||||
|
// CraftBukkit start - Send scaled max health
|
||||||
|
@@ -406,7 +407,7 @@ public class ServerEntity {
|
||||||
|
this.broadcastAndSend(new ClientboundUpdateAttributesPacket(this.entity.getId(), set));
|
||||||
|
}
|
||||||
|
|
||||||
|
- set.clear();
|
||||||
|
+ attributes.clear(); // Plazma - Suppress error from dirty attributes
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
index cb21da3cff4dbb08c7786c09b39e381abdf45c33..dfd408dc42a6000eb5fa56bbdb64f2329e545078 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
@@ -36,6 +36,7 @@ public class LevelConfigurations extends ConfigurationPart {
|
||||||
|
public int sensorTick = DO_OPTIMIZE ? 10 : 1;
|
||||||
|
|
||||||
|
public boolean ignoreUselessPackets = DO_OPTIMIZE;
|
||||||
|
+ public boolean suppressErrorFromDirtyAttributes = false;
|
||||||
|
|
||||||
|
public Player player;
|
||||||
|
public class Player extends ConfigurationPart {
|
||||||
52
patches/server/0030-Skip-event-if-no-listeners.patch
Normal file
52
patches/server/0030-Skip-event-if-no-listeners.patch
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Sat, 30 Sep 2023 22:10:59 +0900
|
||||||
|
Subject: [PATCH] Skip event if no listeners
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
|
||||||
|
index 7ce9ebba8ce304d1f3f21d4f15ee5f3560d7700b..6016c304ddbeb6ffbd591f30914c85fcb6371e80 100644
|
||||||
|
--- a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
|
||||||
|
+++ b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
|
||||||
|
@@ -26,7 +26,7 @@ import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
-class PaperEventManager {
|
||||||
|
+public class PaperEventManager { // Plazma - package -> public
|
||||||
|
|
||||||
|
private final Server server;
|
||||||
|
|
||||||
|
@@ -36,15 +36,17 @@ class PaperEventManager {
|
||||||
|
|
||||||
|
// SimplePluginManager
|
||||||
|
public void callEvent(@NotNull Event event) {
|
||||||
|
+ // Plazma start - Skip event if no listeners
|
||||||
|
+ HandlerList handlers = event.getHandlers();
|
||||||
|
+ RegisteredListener[] listeners = handlers.getRegisteredListeners();
|
||||||
|
+ if (listeners.length == 0) return;
|
||||||
|
+ // Plazma end
|
||||||
|
if (event.isAsynchronous() && this.server.isPrimaryThread()) {
|
||||||
|
throw new IllegalStateException(event.getEventName() + " may only be triggered asynchronously.");
|
||||||
|
} else if (!event.isAsynchronous() && !this.server.isPrimaryThread() && !this.server.isStopping()) {
|
||||||
|
throw new IllegalStateException(event.getEventName() + " may only be triggered synchronously.");
|
||||||
|
}
|
||||||
|
|
||||||
|
- HandlerList handlers = event.getHandlers();
|
||||||
|
- RegisteredListener[] listeners = handlers.getRegisteredListeners();
|
||||||
|
-
|
||||||
|
for (RegisteredListener registration : listeners) {
|
||||||
|
if (!registration.getPlugin().isEnabled()) {
|
||||||
|
continue;
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
index d17df5621717b1c8d1d9a5549feb73c3600ecf3d..ddbc37857bd2706844074925bc27b7a84efa5832 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
@@ -31,7 +31,6 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||||
|
@Override
|
||||||
|
public void postProcess() {
|
||||||
|
|
||||||
|
-
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean reduceCreateRandomInstance = DO_OPTIMIZE;
|
||||||
29
patches/server/0031-Optimize-Spigot-event-bus.patch
Normal file
29
patches/server/0031-Optimize-Spigot-event-bus.patch
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Sat, 30 Sep 2023 22:17:02 +0900
|
||||||
|
Subject: [PATCH] Optimize Spigot event bus
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
|
||||||
|
index 6016c304ddbeb6ffbd591f30914c85fcb6371e80..482e2cdbd4f76f2a56c62bec12bfc39d7193b6ce 100644
|
||||||
|
--- a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
|
||||||
|
+++ b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
|
||||||
|
@@ -41,11 +41,14 @@ public class PaperEventManager { // Plazma - package -> public
|
||||||
|
RegisteredListener[] listeners = handlers.getRegisteredListeners();
|
||||||
|
if (listeners.length == 0) return;
|
||||||
|
// Plazma end
|
||||||
|
- if (event.isAsynchronous() && this.server.isPrimaryThread()) {
|
||||||
|
- throw new IllegalStateException(event.getEventName() + " may only be triggered asynchronously.");
|
||||||
|
- } else if (!event.isAsynchronous() && !this.server.isPrimaryThread() && !this.server.isStopping()) {
|
||||||
|
- throw new IllegalStateException(event.getEventName() + " may only be triggered synchronously.");
|
||||||
|
+ // Plazma start - Optimize Spigot event bus
|
||||||
|
+ if (event.asynchronous() != net.kyori.adventure.util.TriState.NOT_SET) {
|
||||||
|
+ final boolean async = event.isAsynchronous();
|
||||||
|
+ final boolean primary = this.server.isPrimaryThread();
|
||||||
|
+ if (async && primary) throw new IllegalStateException(event.getEventName() + " may only be triggered asynchronously.");
|
||||||
|
+ if (!async && !primary && !this.server.isStopping()) throw new IllegalStateException(event.getEventName() + " may only be triggered synchronously.");
|
||||||
|
}
|
||||||
|
+ // Plazma end
|
||||||
|
|
||||||
|
for (RegisteredListener registration : listeners) {
|
||||||
|
if (!registration.getPlugin().isEnabled()) {
|
||||||
87
patches/unapplied/server/0033-Optimize-VarInts.patch
Normal file
87
patches/unapplied/server/0033-Optimize-VarInts.patch
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: IPECTER <ipectert@gmail.com>
|
||||||
|
Date: Thu, 4 May 2023 16:54:53 +0900
|
||||||
|
Subject: [PATCH] Optimize VarInts
|
||||||
|
|
||||||
|
https://github.com/PaperMC/Paper/pull/8418
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/network/FriendlyByteBuf.java b/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
||||||
|
index c0bd2997fe3ebbfe926de832a36d209cc875f3e2..8bb552410207b39a3b4160a5df51410455107fcf 100644
|
||||||
|
--- a/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
||||||
|
+++ b/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
||||||
|
@@ -99,12 +99,26 @@ public class FriendlyByteBuf extends ByteBuf {
|
||||||
|
private static final Gson GSON = new Gson();
|
||||||
|
|
||||||
|
public static boolean hasItemSerializeEvent = false; // Purpur
|
||||||
|
+ public static boolean optimizeVarInts = false; // Plazma
|
||||||
|
|
||||||
|
public FriendlyByteBuf(ByteBuf parent) {
|
||||||
|
this.source = parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Plazma start - Optimize VarInts
|
||||||
|
+ private static final int[] VARINT_EXACT_BYTE_LENGTHS = new int[33];
|
||||||
|
+ static {
|
||||||
|
+ for (int i = 0; i <= 32; ++i) {
|
||||||
|
+ VARINT_EXACT_BYTE_LENGTHS[i] = (int) Math.ceil((31d - (i - 1)) / 7d);
|
||||||
|
+ }
|
||||||
|
+ VARINT_EXACT_BYTE_LENGTHS[32] = 1; // Special case for the number 0.
|
||||||
|
+ }
|
||||||
|
+ // Plazma end
|
||||||
|
public static int getVarIntSize(int value) {
|
||||||
|
+ // Plazma start - Optimize VarInts
|
||||||
|
+ if (optimizeVarInts)
|
||||||
|
+ return VARINT_EXACT_BYTE_LENGTHS[Integer.numberOfLeadingZeros(value)];
|
||||||
|
+ // Plazma end
|
||||||
|
for (int j = 1; j < 5; ++j) {
|
||||||
|
if ((value & -1 << j * 7) == 0) {
|
||||||
|
return j;
|
||||||
|
@@ -620,6 +634,25 @@ public class FriendlyByteBuf extends ByteBuf {
|
||||||
|
}
|
||||||
|
|
||||||
|
public FriendlyByteBuf writeVarInt(int value) {
|
||||||
|
+ // Plazma start - Optimize VarInts
|
||||||
|
+ if (optimizeVarInts) {
|
||||||
|
+ // Peel the one and two byte count cases explicitly as they are the most common VarInt sizes
|
||||||
|
+ // that the proxy will write, to improve inlining.
|
||||||
|
+ if ((value & (0xFFFFFFFF << 7)) == 0) {
|
||||||
|
+ writeByte(value);
|
||||||
|
+ } else if ((value & (0xFFFFFFFF << 14)) == 0) {
|
||||||
|
+ int w = (value & 0x7F | 0x80) << 8 | (value >>> 7);
|
||||||
|
+ writeShort(w);
|
||||||
|
+ } else {
|
||||||
|
+ while ((value & -128) != 0) {
|
||||||
|
+ this.writeByte(value & 127 | 128);
|
||||||
|
+ value >>>= 7;
|
||||||
|
+ }
|
||||||
|
+ this.writeByte(value);
|
||||||
|
+ }
|
||||||
|
+ return this;
|
||||||
|
+ }
|
||||||
|
+ // Plazma end
|
||||||
|
while ((value & -128) != 0) {
|
||||||
|
this.writeByte(value & 127 | 128);
|
||||||
|
value >>>= 7;
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
index b2c9ac1947e6c9ad0e693cfeaf6f2f4bfd521aa0..525fe30b6abba295709fca3d10f9b24679112571 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
@@ -38,11 +38,17 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Misc misc;
|
||||||
|
- public class Misc extends ConfigurationPart {
|
||||||
|
+ public class Misc extends ConfigurationPart.Post {
|
||||||
|
|
||||||
|
public boolean reduceCreateRandomInstance = DO_OPTIMIZE;
|
||||||
|
public boolean doNotTriggerLootTableRefreshForNonPlayerInteraction = DO_OPTIMIZE;
|
||||||
|
public boolean doNotSendUselessEntityPackets = DO_OPTIMIZE;
|
||||||
|
+ public boolean optimizeVarInts = DO_OPTIMIZE;
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public void postProcess() {
|
||||||
|
+ net.minecraft.network.FriendlyByteBuf.optimizeVarInts = optimizeVarInts;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
155
patches/unapplied/server/0037-Implement-FerriteCore.patch
Normal file
155
patches/unapplied/server/0037-Implement-FerriteCore.patch
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: IPECTER <ipectert@gmail.com>
|
||||||
|
Date: Wed, 10 May 2023 13:32:42 +0900
|
||||||
|
Subject: [PATCH] Implement FerriteCore
|
||||||
|
|
||||||
|
Original: malte0811/FerriteCore
|
||||||
|
Copyright (C) 2023 malte0811
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||||
|
index 942ce713afe27ec75d849877a88721ef6334fafa..595771af13659fcb365fd3f088762dc01964842f 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||||
|
@@ -789,6 +789,12 @@ public abstract class BlockBehaviour implements FeatureElement {
|
||||||
|
protected BlockBehaviour.BlockStateBase.Cache cache;
|
||||||
|
private FluidState fluidState;
|
||||||
|
private boolean isRandomlyTicking;
|
||||||
|
+ // Plazma start - FerriteCore
|
||||||
|
+ public static final java.util.Map<net.minecraft.world.phys.shapes.VoxelShape, net.minecraft.world.phys.shapes.VoxelShape> CACHE_COLLIDE = new java.util.HashMap<>();
|
||||||
|
+ public static final java.util.Map<VoxelShape, org.apache.commons.lang3.tuple.Pair<VoxelShape, VoxelShape[]>> CACHE_PROJECT = new java.util.HashMap<>();
|
||||||
|
+ public static final java.util.Map<boolean[], boolean[]> CACHE_FACE_STURDY = new it.unimi.dsi.fastutil.objects.Object2ObjectOpenCustomHashMap<>(it.unimi.dsi.fastutil.booleans.BooleanArrays.HASH_STRATEGY);
|
||||||
|
+ private static final ThreadLocal<BlockBehaviour.BlockStateBase.Cache> LAST_CACHE = new ThreadLocal<>();
|
||||||
|
+ // Plazma end
|
||||||
|
|
||||||
|
protected BlockStateBase(Block block, ImmutableMap<Property<?>, Comparable<?>> propertyMap, MapCodec<BlockState> codec) {
|
||||||
|
super(block, propertyMap, codec);
|
||||||
|
@@ -871,6 +877,7 @@ public abstract class BlockBehaviour implements FeatureElement {
|
||||||
|
// Paper end
|
||||||
|
|
||||||
|
public void initCache() {
|
||||||
|
+ LAST_CACHE.set(asState().cache); // Plazma - FerriteCore
|
||||||
|
this.fluidState = ((Block) this.owner).getFluidState(this.asState());
|
||||||
|
this.isRandomlyTicking = ((Block) this.owner).isRandomlyTicking(this.asState());
|
||||||
|
if (!this.getBlock().hasDynamicShape()) {
|
||||||
|
@@ -909,7 +916,61 @@ public abstract class BlockBehaviour implements FeatureElement {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Paper end
|
||||||
|
+ // Plazma start - FerriteCore
|
||||||
|
+ if (asState().cache != null) {
|
||||||
|
+ Cache newCache = asState().cache;
|
||||||
|
+ final Cache oldCache = LAST_CACHE.get();
|
||||||
|
+ VoxelShape dedupedCollisionShape;
|
||||||
|
+ if (oldCache != null && oldCache.collisionShape.equals(newCache.collisionShape)) {
|
||||||
|
+ dedupedCollisionShape = oldCache.collisionShape;
|
||||||
|
+ } else {
|
||||||
|
+ dedupedCollisionShape = CACHE_COLLIDE.computeIfAbsent(newCache.collisionShape, Function.identity());
|
||||||
|
+ }
|
||||||
|
+ if (dedupedCollisionShape instanceof net.minecraft.world.phys.shapes.ArrayVoxelShape keepArray && newCache.collisionShape instanceof net.minecraft.world.phys.shapes.ArrayVoxelShape replaceArray) {
|
||||||
|
+ replaceInternals(keepArray, replaceArray);
|
||||||
|
+ }
|
||||||
|
+ newCache.collisionShape = dedupedCollisionShape;
|
||||||
|
+ final VoxelShape newRenderShape = getRenderShape(newCache.occlusionShapes);
|
||||||
|
+ if (newRenderShape == null) return;
|
||||||
|
+ org.apache.commons.lang3.tuple.Pair<VoxelShape, VoxelShape[]> dedupedRenderShapes = null;
|
||||||
|
+ if (oldCache != null) {
|
||||||
|
+ final VoxelShape oldRenderShape = getRenderShape(oldCache.occlusionShapes);
|
||||||
|
+ if (newRenderShape.equals(oldRenderShape)) dedupedRenderShapes = org.apache.commons.lang3.tuple.Pair.of(oldRenderShape, oldCache.occlusionShapes);
|
||||||
|
+ }
|
||||||
|
+ if (dedupedRenderShapes == null) {
|
||||||
|
+ org.apache.commons.lang3.tuple.Pair<VoxelShape, VoxelShape[]> newPair = org.apache.commons.lang3.tuple.Pair.of(newRenderShape, newCache.occlusionShapes);
|
||||||
|
+ dedupedRenderShapes = CACHE_PROJECT.putIfAbsent(newRenderShape, newPair);
|
||||||
|
+ if (dedupedRenderShapes == null) dedupedRenderShapes = newPair;
|
||||||
|
+ }
|
||||||
|
+ if (dedupedRenderShapes.getLeft() instanceof net.minecraft.world.phys.shapes.ArrayVoxelShape keepArray && newRenderShape instanceof net.minecraft.world.phys.shapes.ArrayVoxelShape replaceArray) {
|
||||||
|
+ replaceInternals(keepArray, replaceArray);
|
||||||
|
+ }
|
||||||
|
+ newCache.occlusionShapes = dedupedRenderShapes.getRight();
|
||||||
|
+ boolean equalCheck = oldCache != null && Arrays.equals(oldCache.faceSturdy, newCache.faceSturdy);
|
||||||
|
+ newCache.faceSturdy = equalCheck ? oldCache.faceSturdy : CACHE_FACE_STURDY.computeIfAbsent(newCache.faceSturdy, Function.identity());
|
||||||
|
+ LAST_CACHE.set(null);
|
||||||
|
+ }
|
||||||
|
+ // Plazma end
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // Plazma start - FerriteCore
|
||||||
|
+ private void replaceInternals(net.minecraft.world.phys.shapes.ArrayVoxelShape toKeep, net.minecraft.world.phys.shapes.ArrayVoxelShape toReplace) {
|
||||||
|
+ if (toKeep == toReplace) return;
|
||||||
|
+ toReplace.xs = toKeep.xs;
|
||||||
|
+ toReplace.ys = toKeep.ys;
|
||||||
|
+ toReplace.zs = toKeep.zs;
|
||||||
|
+ toReplace.faces = toKeep.faces;
|
||||||
|
+ toReplace.shape = toKeep.shape;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Nullable
|
||||||
|
+ private static VoxelShape getRenderShape(@Nullable VoxelShape[] projected) {
|
||||||
|
+ if (projected != null) {
|
||||||
|
+ for (VoxelShape side : projected) if (side instanceof net.minecraft.world.phys.shapes.SliceShape slice) return slice.getDelegate();
|
||||||
|
+ }
|
||||||
|
+ return null;
|
||||||
|
}
|
||||||
|
+ // Plazma end
|
||||||
|
|
||||||
|
public Block getBlock() {
|
||||||
|
return (Block) this.owner;
|
||||||
|
@@ -1305,10 +1366,10 @@ public abstract class BlockBehaviour implements FeatureElement {
|
||||||
|
final boolean propagatesSkylightDown;
|
||||||
|
final int lightBlock;
|
||||||
|
@Nullable
|
||||||
|
- final VoxelShape[] occlusionShapes;
|
||||||
|
- protected final VoxelShape collisionShape;
|
||||||
|
+ public VoxelShape[] occlusionShapes; // Plazma - FerriteCore - final -> public
|
||||||
|
+ public VoxelShape collisionShape; // Plazma - FerriteCore - protected final -> public
|
||||||
|
protected final boolean largeCollisionShape;
|
||||||
|
- private final boolean[] faceSturdy;
|
||||||
|
+ public boolean[] faceSturdy; // Plazma - FerriteCore - private final -> public
|
||||||
|
protected final boolean isCollisionShapeFullBlock;
|
||||||
|
|
||||||
|
Cache(BlockState state) {
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/phys/shapes/ArrayVoxelShape.java b/src/main/java/net/minecraft/world/phys/shapes/ArrayVoxelShape.java
|
||||||
|
index ca5f01be5d5ccfcc56780ff93cca3824409ffc0d..767311b27219d830ef049df94314f0871ac9afff 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/phys/shapes/ArrayVoxelShape.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/phys/shapes/ArrayVoxelShape.java
|
||||||
|
@@ -10,9 +10,9 @@ import net.minecraft.core.Direction;
|
||||||
|
import it.unimi.dsi.fastutil.doubles.AbstractDoubleList;
|
||||||
|
// Paper end
|
||||||
|
public class ArrayVoxelShape extends VoxelShape {
|
||||||
|
- private final DoubleList xs;
|
||||||
|
- private final DoubleList ys;
|
||||||
|
- private final DoubleList zs;
|
||||||
|
+ public DoubleList xs; // Plazma - FerriteCore - private final -> public
|
||||||
|
+ public DoubleList ys; // Plazma - FerriteCore - private final -> public
|
||||||
|
+ public DoubleList zs; // Plazma - FerriteCore - private final -> public
|
||||||
|
|
||||||
|
protected ArrayVoxelShape(DiscreteVoxelShape shape, double[] xPoints, double[] yPoints, double[] zPoints) {
|
||||||
|
this(shape, (DoubleList)DoubleArrayList.wrap(Arrays.copyOf(xPoints, shape.getXSize() + 1)), (DoubleList)DoubleArrayList.wrap(Arrays.copyOf(yPoints, shape.getYSize() + 1)), (DoubleList)DoubleArrayList.wrap(Arrays.copyOf(zPoints, shape.getZSize() + 1)));
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/phys/shapes/SliceShape.java b/src/main/java/net/minecraft/world/phys/shapes/SliceShape.java
|
||||||
|
index cf469f9daa81da8bc330c9cac7e813db87f9f9af..bcd094d6746d8102b04ce6547db6d4bc497463e8 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/phys/shapes/SliceShape.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/phys/shapes/SliceShape.java
|
||||||
|
@@ -4,7 +4,7 @@ import it.unimi.dsi.fastutil.doubles.DoubleList;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
|
|
||||||
|
public class SliceShape extends VoxelShape {
|
||||||
|
- private final VoxelShape delegate;
|
||||||
|
+ private final VoxelShape delegate; public VoxelShape getDelegate() { return this.delegate; } // Plazma - FerriteCore
|
||||||
|
private final Direction.Axis axis;
|
||||||
|
private static final DoubleList SLICE_COORDS = new CubePointRange(1);
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/phys/shapes/VoxelShape.java b/src/main/java/net/minecraft/world/phys/shapes/VoxelShape.java
|
||||||
|
index 2182afd1b95acf14c55bddfeec17dae0a63e1f00..5fc28a6a09b251ce7adbb93e30045869ea43718a 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/phys/shapes/VoxelShape.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/phys/shapes/VoxelShape.java
|
||||||
|
@@ -16,9 +16,9 @@ import net.minecraft.world.phys.BlockHitResult;
|
||||||
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
|
||||||
|
public abstract class VoxelShape {
|
||||||
|
- public final DiscreteVoxelShape shape; // Paper - public
|
||||||
|
+ public DiscreteVoxelShape shape; // Paper - public // Plazma - FerriteCore - public final -> public
|
||||||
|
@Nullable
|
||||||
|
- private VoxelShape[] faces;
|
||||||
|
+ public VoxelShape[] faces; // Plazma - FerriteCore - private -> public
|
||||||
|
|
||||||
|
// Paper start
|
||||||
|
public boolean intersects(AABB shape) {
|
||||||
1383
patches/unapplied/server/0040-Reduce-allocations.patch
Normal file
1383
patches/unapplied/server/0040-Reduce-allocations.patch
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,40 +1,40 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
From: IPECTER <ipectert@gmail.com>
|
||||||
Date: Sat, 25 Mar 2023 19:52:12 +0900
|
Date: Wed, 6 Sep 2023 15:40:34 +0900
|
||||||
Subject: [PATCH] Misc configuration
|
Subject: [PATCH] CarpetFixes-Configuration
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
index b9a04a8042f1bedaeb27681f84f9e2df7cf1794d..1e979bb87ec743e87909927a517692da38e7b18f 100644
|
index 525fe30b6abba295709fca3d10f9b24679112571..49d5292697fdc6f23874557dd2db9d1fcda750f3 100644
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
@@ -35,5 +35,12 @@ public class GlobalConfiguration extends ConfigurationPart {
|
@@ -76,4 +76,12 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||||
|
public int timerTimeOut = 0;
|
||||||
|
|
||||||
public boolean allowAnyUsername = false;
|
|
||||||
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public Misc misc;
|
|
||||||
+ public class Misc extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
}
|
}
|
||||||
|
+
|
||||||
|
+ public CarpetFixes carpetFixes;
|
||||||
|
+
|
||||||
|
+ public class CarpetFixes extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ public boolean enabled = DO_OPTIMIZE;
|
||||||
|
+
|
||||||
|
+ }
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
index 1cf5344d3ade76f6c24c7ea68d98b02e0dc62001..9416ce600d46fad167befe8d42f9a1a7d891a37f 100644
|
index 7d5bfd3a5aa5135596f3f1ae7c504a51b02798ef..b0deec445b5ea3cd3e4802eca04e99818b539bd8 100644
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
@@ -82,5 +82,12 @@ public class LevelConfigurations extends ConfigurationPart {
|
@@ -131,4 +131,12 @@ public class LevelConfigurations extends ConfigurationPart {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public Misc misc;
|
|
||||||
+ public class Misc extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
}
|
}
|
||||||
|
+
|
||||||
|
+ public CarpetFixes carpetFixes;
|
||||||
|
+
|
||||||
|
+ public class CarpetFixes extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ public boolean enabled = DO_OPTIMIZE;
|
||||||
|
+
|
||||||
|
+ }
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,179 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: IPECTER <ipectert@gmail.com>
|
||||||
|
Date: Wed, 6 Sep 2023 15:53:37 +0900
|
||||||
|
Subject: [PATCH] CarpetFixes-Optimizations-BiomeManager
|
||||||
|
|
||||||
|
Original: fxmorin/carpet-fixes
|
||||||
|
Copyright (C) 2023 fxmorin
|
||||||
|
|
||||||
|
Optimized getBiome call: Reduce the number of calls to the mess of
|
||||||
|
LinearCongruentialGenerator#next(long, long) which is pretty heavy on performance.
|
||||||
|
|
||||||
|
We are able to do this by skipping around 370 of 512 possible calls to getBiome() by predicting the outcome
|
||||||
|
before doing the seed mixing. This seems to be around 25% - 75% faster depending on the use case.
|
||||||
|
We can predict much faster than the seed mixing.
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/biome/BiomeManager.java b/src/main/java/net/minecraft/world/level/biome/BiomeManager.java
|
||||||
|
index 5695c5116c8a338b2e41aafcb2dc9f2146856970..b2291854b9803fe01d40e8a1d76d6ff358cea114 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/biome/BiomeManager.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/biome/BiomeManager.java
|
||||||
|
@@ -12,6 +12,7 @@ public class BiomeManager {
|
||||||
|
private static final int ZOOM_BITS = 2;
|
||||||
|
private static final int ZOOM = 4;
|
||||||
|
private static final int ZOOM_MASK = 3;
|
||||||
|
+ private static final double maxOffset = 0.4500000001D; // Plazma - CarpetFixes
|
||||||
|
private final BiomeManager.NoiseBiomeSource noiseBiomeSource;
|
||||||
|
private final long biomeZoomSeed;
|
||||||
|
|
||||||
|
@@ -29,39 +30,104 @@ public class BiomeManager {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Holder<Biome> getBiome(BlockPos pos) {
|
||||||
|
- int i = pos.getX() - 2;
|
||||||
|
- int j = pos.getY() - 2;
|
||||||
|
- int k = pos.getZ() - 2;
|
||||||
|
- int l = i >> 2;
|
||||||
|
- int m = j >> 2;
|
||||||
|
- int n = k >> 2;
|
||||||
|
- double d = (double)(i & 3) / 4.0D;
|
||||||
|
- double e = (double)(j & 3) / 4.0D;
|
||||||
|
- double f = (double)(k & 3) / 4.0D;
|
||||||
|
- int o = 0;
|
||||||
|
- double g = Double.POSITIVE_INFINITY;
|
||||||
|
-
|
||||||
|
- for(int p = 0; p < 8; ++p) {
|
||||||
|
- boolean bl = (p & 4) == 0;
|
||||||
|
- boolean bl2 = (p & 2) == 0;
|
||||||
|
- boolean bl3 = (p & 1) == 0;
|
||||||
|
- int q = bl ? l : l + 1;
|
||||||
|
- int r = bl2 ? m : m + 1;
|
||||||
|
- int s = bl3 ? n : n + 1;
|
||||||
|
- double h = bl ? d : d - 1.0D;
|
||||||
|
- double t = bl2 ? e : e - 1.0D;
|
||||||
|
- double u = bl3 ? f : f - 1.0D;
|
||||||
|
- double v = getFiddledDistance(this.biomeZoomSeed, q, r, s, h, t, u);
|
||||||
|
- if (g > v) {
|
||||||
|
- o = p;
|
||||||
|
- g = v;
|
||||||
|
+ // Plazma start - CarpetFixes - Optimized getBiome call
|
||||||
|
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().carpetFixes.optimizedBiomeAccess()) {
|
||||||
|
+ int xMinus2 = pos.getX() - 2;
|
||||||
|
+ int yMinus2 = pos.getY() - 2;
|
||||||
|
+ int zMinus2 = pos.getZ() - 2;
|
||||||
|
+ int x = xMinus2 >> 2; // BlockPos to BiomePos
|
||||||
|
+ int y = yMinus2 >> 2;
|
||||||
|
+ int z = zMinus2 >> 2;
|
||||||
|
+ double quartX = (double) (xMinus2 & 3) / 4.0D; // quartLocal divided by 4
|
||||||
|
+ double quartY = (double) (yMinus2 & 3) / 4.0D; // 0/4, 1/4, 2/4, 3/4
|
||||||
|
+ double quartZ = (double) (zMinus2 & 3) / 4.0D; // [0, 0.25, 0.5, 0.75]
|
||||||
|
+ int smallestX = 0;
|
||||||
|
+ double smallestDist = Double.POSITIVE_INFINITY;
|
||||||
|
+ for (int biomeX = 0; biomeX < 8; ++biomeX) {
|
||||||
|
+ boolean everyOtherQuad = (biomeX & 4) == 0; // 1 1 1 1 0 0 0 0
|
||||||
|
+ boolean everyOtherPair = (biomeX & 2) == 0; // 1 1 0 0 1 1 0 0
|
||||||
|
+ boolean everyOther = (biomeX & 1) == 0; // 1 0 1 0 1 0 1 0
|
||||||
|
+ double quartXX = everyOtherQuad ? quartX : quartX - 1.0D; //[-1.0,-0.75,-0.5,-0.25,0.0,0.25,0.5,0.75]
|
||||||
|
+ double quartYY = everyOtherPair ? quartY : quartY - 1.0D;
|
||||||
|
+ double quartZZ = everyOther ? quartZ : quartZ - 1.0D;
|
||||||
|
+
|
||||||
|
+ //This code block is new
|
||||||
|
+ double maxQuartYY = 0.0D, maxQuartZZ = 0.0D;
|
||||||
|
+ if (biomeX != 0) {
|
||||||
|
+ maxQuartYY = Mth.square(Math.max(quartYY + maxOffset, Math.abs(quartYY - maxOffset)));
|
||||||
|
+ maxQuartZZ = Mth.square(Math.max(quartZZ + maxOffset, Math.abs(quartZZ - maxOffset)));
|
||||||
|
+ double maxQuartXX = Mth.square(Math.max(quartXX + maxOffset, Math.abs(quartXX - maxOffset)));
|
||||||
|
+ if (smallestDist < maxQuartXX + maxQuartYY + maxQuartZZ) continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ int xx = everyOtherQuad ? x : x + 1;
|
||||||
|
+ int yy = everyOtherPair ? y : y + 1;
|
||||||
|
+ int zz = everyOther ? z : z + 1;
|
||||||
|
+
|
||||||
|
+ //I transferred the code from method_38106 to here, so I could call continue halfway through
|
||||||
|
+ long seed = LinearCongruentialGenerator.next(this.biomeZoomSeed, xx);
|
||||||
|
+ seed = LinearCongruentialGenerator.next(seed, yy);
|
||||||
|
+ seed = LinearCongruentialGenerator.next(seed, zz);
|
||||||
|
+ seed = LinearCongruentialGenerator.next(seed, xx);
|
||||||
|
+ seed = LinearCongruentialGenerator.next(seed, yy);
|
||||||
|
+ seed = LinearCongruentialGenerator.next(seed, zz);
|
||||||
|
+ double offsetX = getFiddle(seed);
|
||||||
|
+ double sqrX = Mth.square(quartXX + offsetX);
|
||||||
|
+ if (biomeX != 0 && smallestDist < sqrX + maxQuartYY + maxQuartZZ) continue; //skip the rest of the loop
|
||||||
|
+ seed = LinearCongruentialGenerator.next(seed, this.biomeZoomSeed);
|
||||||
|
+ double offsetY = getFiddle(seed);
|
||||||
|
+ double sqrY = Mth.square(quartYY + offsetY);
|
||||||
|
+ if (biomeX != 0 && smallestDist < sqrX + sqrY + maxQuartZZ) continue; // skip the rest of the loop
|
||||||
|
+ seed = LinearCongruentialGenerator.next(seed, this.biomeZoomSeed);
|
||||||
|
+ double offsetZ = getFiddle(seed);
|
||||||
|
+ double biomeDist = sqrX + sqrY + Mth.square(quartZZ + offsetZ);
|
||||||
|
+
|
||||||
|
+ if (smallestDist > biomeDist) {
|
||||||
|
+ smallestX = biomeX;
|
||||||
|
+ smallestDist = biomeDist;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
- }
|
||||||
|
+ return this.noiseBiomeSource.getNoiseBiome(
|
||||||
|
+ (smallestX & 4) == 0 ? x : x + 1,
|
||||||
|
+ (smallestX & 2) == 0 ? y : y + 1,
|
||||||
|
+ (smallestX & 1) == 0 ? z : z + 1
|
||||||
|
+ );
|
||||||
|
+ } else {
|
||||||
|
+ int i = pos.getX() - 2;
|
||||||
|
+ int j = pos.getY() - 2;
|
||||||
|
+ int k = pos.getZ() - 2;
|
||||||
|
+ int l = i >> 2;
|
||||||
|
+ int m = j >> 2;
|
||||||
|
+ int n = k >> 2;
|
||||||
|
+ double d = (double) (i & 3) / 4.0D;
|
||||||
|
+ double e = (double) (j & 3) / 4.0D;
|
||||||
|
+ double f = (double) (k & 3) / 4.0D;
|
||||||
|
+ int o = 0;
|
||||||
|
+ double g = Double.POSITIVE_INFINITY;
|
||||||
|
+
|
||||||
|
+ for (int p = 0; p < 8; ++p) {
|
||||||
|
+ boolean bl = (p & 4) == 0;
|
||||||
|
+ boolean bl2 = (p & 2) == 0;
|
||||||
|
+ boolean bl3 = (p & 1) == 0;
|
||||||
|
+ int q = bl ? l : l + 1;
|
||||||
|
+ int r = bl2 ? m : m + 1;
|
||||||
|
+ int s = bl3 ? n : n + 1;
|
||||||
|
+ double h = bl ? d : d - 1.0D;
|
||||||
|
+ double t = bl2 ? e : e - 1.0D;
|
||||||
|
+ double u = bl3 ? f : f - 1.0D;
|
||||||
|
+ double v = getFiddledDistance(this.biomeZoomSeed, q, r, s, h, t, u);
|
||||||
|
+ if (g > v) {
|
||||||
|
+ o = p;
|
||||||
|
+ g = v;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- int w = (o & 4) == 0 ? l : l + 1;
|
||||||
|
- int x = (o & 2) == 0 ? m : m + 1;
|
||||||
|
- int y = (o & 1) == 0 ? n : n + 1;
|
||||||
|
- return this.noiseBiomeSource.getNoiseBiome(w, x, y);
|
||||||
|
+ int w = (o & 4) == 0 ? l : l + 1;
|
||||||
|
+ int x = (o & 2) == 0 ? m : m + 1;
|
||||||
|
+ int y = (o & 1) == 0 ? n : n + 1;
|
||||||
|
+ return this.noiseBiomeSource.getNoiseBiome(w, x, y);
|
||||||
|
+ }
|
||||||
|
+ // Plazma end
|
||||||
|
}
|
||||||
|
|
||||||
|
public Holder<Biome> getNoiseBiomeAtPosition(double x, double y, double z) {
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
index 49d5292697fdc6f23874557dd2db9d1fcda750f3..d329f77ab19ac781506c26909591fa4ae9dabb1e 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
@@ -82,6 +82,11 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||||
|
public class CarpetFixes extends ConfigurationPart {
|
||||||
|
|
||||||
|
public boolean enabled = DO_OPTIMIZE;
|
||||||
|
+ boolean optimizedBiomeAccess = true;
|
||||||
|
+
|
||||||
|
+ public boolean optimizedBiomeAccess() {
|
||||||
|
+ return enabled && optimizedBiomeAccess;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,106 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: IPECTER <ipectert@gmail.com>
|
||||||
|
Date: Wed, 6 Sep 2023 16:23:56 +0900
|
||||||
|
Subject: [PATCH] CarpetFixes-Optimizations-RecipeManager
|
||||||
|
|
||||||
|
Original: fxmorin/carpet-fixes
|
||||||
|
Copyright (C) 2023 fxmorin
|
||||||
|
|
||||||
|
RecipeManager optimization.
|
||||||
|
Optimized by taking out streams & doing extra early checks to quickly remove unrelated recipes
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
|
||||||
|
index 9ffb6999171f602f0b113dac40e0130410cad870..49b5fece692cd5da99ed21d7fd0864cea1609495 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
|
||||||
|
@@ -103,13 +103,38 @@ public class RecipeManager extends SimpleJsonResourceReloadListener {
|
||||||
|
}
|
||||||
|
|
||||||
|
public <C extends Container, T extends Recipe<C>> Optional<T> getRecipeFor(RecipeType<T> type, C inventory, Level world) {
|
||||||
|
- // CraftBukkit start
|
||||||
|
- Optional<T> recipe = this.byType(type).values().stream().filter((irecipe) -> {
|
||||||
|
- return irecipe.matches(inventory, world);
|
||||||
|
- }).findFirst();
|
||||||
|
- inventory.setCurrentRecipe(recipe.orElse(null)); // CraftBukkit - Clear recipe when no recipe is found
|
||||||
|
- // CraftBukkit end
|
||||||
|
- return recipe;
|
||||||
|
+ // Plazma start - CarpetFixes - Optimized RecipeManager
|
||||||
|
+ if (world.plazmaLevelConfiguration().carpetFixes.optimizedRecipeManager() && type == RecipeType.CRAFTING) {
|
||||||
|
+ int slots = 0;
|
||||||
|
+ int count;
|
||||||
|
+ //compare size to quickly remove recipes that are not even close. Plus remove streams
|
||||||
|
+ for (int slot = 0; slot < inventory.getContainerSize(); slot++)
|
||||||
|
+ if (!inventory.getItem(slot).isEmpty()) slots++;
|
||||||
|
+ for (Recipe<C> recipe : this.byType(type).values()) {
|
||||||
|
+ count = 0;
|
||||||
|
+ if (recipe instanceof CustomRecipe) {
|
||||||
|
+ if (recipe.matches(inventory, world)) {
|
||||||
|
+ return (Optional<T>) Optional.of(recipe);
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
+ for (Ingredient ingredient : recipe.getIngredients())
|
||||||
|
+ if (ingredient != Ingredient.EMPTY) count++;
|
||||||
|
+ if (count == slots && recipe.matches(inventory, world)) {
|
||||||
|
+ return (Optional<T>) Optional.of(recipe);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ return Optional.empty();
|
||||||
|
+ } else {
|
||||||
|
+ // CraftBukkit start
|
||||||
|
+ Optional<T> recipe = this.byType(type).values().stream().filter((irecipe) -> {
|
||||||
|
+ return irecipe.matches(inventory, world);
|
||||||
|
+ }).findFirst();
|
||||||
|
+ inventory.setCurrentRecipe(recipe.orElse(null)); // CraftBukkit - Clear recipe when no recipe is found
|
||||||
|
+ // CraftBukkit end
|
||||||
|
+ return recipe;
|
||||||
|
+ }
|
||||||
|
+ // Plazma end
|
||||||
|
}
|
||||||
|
|
||||||
|
public <C extends Container, T extends Recipe<C>> Optional<Pair<ResourceLocation, T>> getRecipeFor(RecipeType<T> type, C inventory, Level world, @Nullable ResourceLocation id) {
|
||||||
|
@@ -134,7 +159,7 @@ public class RecipeManager extends SimpleJsonResourceReloadListener {
|
||||||
|
}
|
||||||
|
|
||||||
|
public <C extends Container, T extends Recipe<C>> List<T> getAllRecipesFor(RecipeType<T> type) {
|
||||||
|
- return List.copyOf(this.byType(type).values());
|
||||||
|
+ return org.plazmamc.plazma.configurations.GlobalConfiguration.get().carpetFixes.optimizedRecipeManager() ? (List<T>) new java.util.ArrayList<>(this.byType(type).values()) : List.copyOf(this.byType(type).values()); // Plazma start - CarpetFixes - Optimized RecipeManager
|
||||||
|
}
|
||||||
|
|
||||||
|
public <C extends Container, T extends Recipe<C>> List<T> getRecipesFor(RecipeType<T> type, C inventory, Level world) {
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
index d329f77ab19ac781506c26909591fa4ae9dabb1e..36511f71fcf3a8a5da746dd087003861a4f0a8f4 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
@@ -83,10 +83,15 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||||
|
|
||||||
|
public boolean enabled = DO_OPTIMIZE;
|
||||||
|
boolean optimizedBiomeAccess = true;
|
||||||
|
+ boolean optimizedRecipeManager = true;
|
||||||
|
|
||||||
|
public boolean optimizedBiomeAccess() {
|
||||||
|
return enabled && optimizedBiomeAccess;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ public boolean optimizedRecipeManager() {
|
||||||
|
+ return enabled && optimizedRecipeManager;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
index b0deec445b5ea3cd3e4802eca04e99818b539bd8..e089a881600b61060bae1135b89703f6c0b5c7e8 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
@@ -137,6 +137,11 @@ public class LevelConfigurations extends ConfigurationPart {
|
||||||
|
public class CarpetFixes extends ConfigurationPart {
|
||||||
|
|
||||||
|
public boolean enabled = DO_OPTIMIZE;
|
||||||
|
+ boolean optimizedRecipeManager = true;
|
||||||
|
+
|
||||||
|
+ public boolean optimizedRecipeManager() {
|
||||||
|
+ return enabled && optimizedRecipeManager;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,131 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: IPECTER <ipectert@gmail.com>
|
||||||
|
Date: Wed, 6 Sep 2023 16:35:34 +0900
|
||||||
|
Subject: [PATCH] CarpetFixes-Optimizations-Sheep
|
||||||
|
|
||||||
|
Original: fxmorin/carpet-fixes
|
||||||
|
Copyright (C) 2023 fxmorin
|
||||||
|
|
||||||
|
The game determines the child sheep's color by getting a wool block from the parents, putting them in a crafting
|
||||||
|
recipe, getting the output wool and getting the color from that.
|
||||||
|
I don't know in what world we would consider a data-driven method with that much overhead as a smart idea. Instead,
|
||||||
|
we used a prebaked list of all the possible colors and combinations, however this means that you can't use a
|
||||||
|
datapack to change it.
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||||
|
index 54de1f782e45cb3e3b1442aeb56b6e8547b065c0..3b873dd76c0f10a7f29206e46c1bf9b230555170 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||||
|
@@ -432,19 +432,27 @@ public class Sheep extends Animal implements Shearable {
|
||||||
|
}
|
||||||
|
|
||||||
|
private DyeColor getOffspringColor(Animal firstParent, Animal secondParent) {
|
||||||
|
+ // Plazma start - CarpetFixes - Optimized sheep child color
|
||||||
|
DyeColor enumcolor = ((Sheep) firstParent).getColor();
|
||||||
|
DyeColor enumcolor1 = ((Sheep) secondParent).getColor();
|
||||||
|
- CraftingContainer inventorycrafting = Sheep.makeContainer(enumcolor, enumcolor1);
|
||||||
|
- Optional<Item> optional = this.level().getRecipeManager().getRecipeFor(RecipeType.CRAFTING, inventorycrafting, this.level()).map((recipecrafting) -> { // CraftBukkit - decompile error
|
||||||
|
- return recipecrafting.assemble(inventorycrafting, this.level().registryAccess());
|
||||||
|
- }).map(ItemStack::getItem);
|
||||||
|
-
|
||||||
|
- Objects.requireNonNull(DyeItem.class);
|
||||||
|
- optional = optional.filter(DyeItem.class::isInstance);
|
||||||
|
- Objects.requireNonNull(DyeItem.class);
|
||||||
|
- return (DyeColor) optional.map(DyeItem.class::cast).map(DyeItem::getDyeColor).orElseGet(() -> {
|
||||||
|
- return this.level().random.nextBoolean() ? enumcolor : enumcolor1;
|
||||||
|
- });
|
||||||
|
+ if (this.level().plazmaLevelConfiguration().carpetFixes.optimizedSheepChildColor()) {
|
||||||
|
+ DyeColor col = org.plazmamc.plazma.util.CarpetFixesUtils.properDyeMixin(enumcolor, enumcolor1);
|
||||||
|
+ if (col == null) col = this.level().random.nextBoolean() ? enumcolor : enumcolor1;
|
||||||
|
+ return col;
|
||||||
|
+ } else {
|
||||||
|
+ CraftingContainer inventorycrafting = Sheep.makeContainer(enumcolor, enumcolor1);
|
||||||
|
+ Optional<Item> optional = this.level().getRecipeManager().getRecipeFor(RecipeType.CRAFTING, inventorycrafting, this.level()).map((recipecrafting) -> { // CraftBukkit - decompile error
|
||||||
|
+ return recipecrafting.assemble(inventorycrafting, this.level().registryAccess());
|
||||||
|
+ }).map(ItemStack::getItem);
|
||||||
|
+
|
||||||
|
+ Objects.requireNonNull(DyeItem.class);
|
||||||
|
+ optional = optional.filter(DyeItem.class::isInstance);
|
||||||
|
+ Objects.requireNonNull(DyeItem.class);
|
||||||
|
+ return (DyeColor) optional.map(DyeItem.class::cast).map(DyeItem::getDyeColor).orElseGet(() -> {
|
||||||
|
+ return this.level().random.nextBoolean() ? enumcolor : enumcolor1;
|
||||||
|
+ });
|
||||||
|
+ }
|
||||||
|
+ // Plazma end
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CraftingContainer makeContainer(DyeColor firstColor, DyeColor secondColor) {
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
index e089a881600b61060bae1135b89703f6c0b5c7e8..29d451f55dabc15478e9c32d2c37bd0ea2d9bebc 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
|
@@ -138,10 +138,15 @@ public class LevelConfigurations extends ConfigurationPart {
|
||||||
|
|
||||||
|
public boolean enabled = DO_OPTIMIZE;
|
||||||
|
boolean optimizedRecipeManager = true;
|
||||||
|
+ boolean optimizedSheepChildColor = false;
|
||||||
|
|
||||||
|
public boolean optimizedRecipeManager() {
|
||||||
|
return enabled && optimizedRecipeManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ public boolean optimizedSheepChildColor() {
|
||||||
|
+ return enabled && optimizedSheepChildColor;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/org/plazmamc/plazma/util/CarpetFixesUtils.java b/src/main/java/org/plazmamc/plazma/util/CarpetFixesUtils.java
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000000000000000000000000000000000..aae3cf170bca4b3e6cdd0a964967dfafe2759f65
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/util/CarpetFixesUtils.java
|
||||||
|
@@ -0,0 +1,48 @@
|
||||||
|
+package org.plazmamc.plazma.util;
|
||||||
|
+
|
||||||
|
+import net.minecraft.world.item.DyeColor;
|
||||||
|
+
|
||||||
|
+public class CarpetFixesUtils {
|
||||||
|
+
|
||||||
|
+ //If I was actually implementing this, the color values would have been binary in order for fast calculations.
|
||||||
|
+ //Never do this in a production build, although this is better than using the RecipeManager xD
|
||||||
|
+ public static DyeColor properDyeMixin(DyeColor col1, DyeColor col2) {
|
||||||
|
+ if (col1.equals(col2)) return col1;
|
||||||
|
+ switch(col1) {
|
||||||
|
+ case WHITE -> {
|
||||||
|
+ switch(col2) {
|
||||||
|
+ case BLUE -> {return DyeColor.LIGHT_BLUE;}
|
||||||
|
+ case GRAY -> {return DyeColor.LIGHT_GRAY;}
|
||||||
|
+ case BLACK -> {return DyeColor.GRAY;}
|
||||||
|
+ case GREEN -> {return DyeColor.LIME;}
|
||||||
|
+ case RED -> {return DyeColor.PINK;}
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ case BLUE -> {
|
||||||
|
+ switch(col2) {
|
||||||
|
+ case WHITE -> {return DyeColor.LIGHT_BLUE;}
|
||||||
|
+ case GREEN -> {return DyeColor.CYAN;}
|
||||||
|
+ case RED -> {return DyeColor.PURPLE;}
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ case RED -> {
|
||||||
|
+ switch(col2) {
|
||||||
|
+ case YELLOW -> {return DyeColor.ORANGE;}
|
||||||
|
+ case WHITE -> {return DyeColor.PINK;}
|
||||||
|
+ case BLUE -> {return DyeColor.PURPLE;}
|
||||||
|
+ }
|
||||||
|
+ }case GREEN -> {
|
||||||
|
+ switch(col2) {
|
||||||
|
+ case BLUE -> {return DyeColor.CYAN;}
|
||||||
|
+ case WHITE -> {return DyeColor.LIME;}
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ case YELLOW -> {if (col2.equals(DyeColor.RED)) return DyeColor.ORANGE;}
|
||||||
|
+ case PURPLE -> {if (col2.equals(DyeColor.PINK)) return DyeColor.MAGENTA;}
|
||||||
|
+ case PINK -> {if (col2.equals(DyeColor.PURPLE)) return DyeColor.MAGENTA;}
|
||||||
|
+ case GRAY -> {if (col2.equals(DyeColor.WHITE)) return DyeColor.LIGHT_GRAY;}
|
||||||
|
+ case BLACK -> {if (col2.equals(DyeColor.WHITE)) return DyeColor.GRAY;}
|
||||||
|
+ }
|
||||||
|
+ return null;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
1367
patches/unapplied/server/0045-Async-PathProcessing.patch
Normal file
1367
patches/unapplied/server/0045-Async-PathProcessing.patch
Normal file
File diff suppressed because it is too large
Load Diff
BIN
res/logo-450.png
BIN
res/logo-450.png
Binary file not shown.
|
Before Width: | Height: | Size: 79 KiB |
BIN
res/logo-64.png
BIN
res/logo-64.png
Binary file not shown.
|
Before Width: | Height: | Size: 7.8 KiB |
BIN
res/logo-900.png
BIN
res/logo-900.png
Binary file not shown.
|
Before Width: | Height: | Size: 176 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 93 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 231 KiB |
Reference in New Issue
Block a user