Compare commits
61 Commits
release-60
...
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 |
17
.github/workflows/build.yml
vendored
17
.github/workflows/build.yml
vendored
@@ -7,8 +7,8 @@ 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:
|
||||||
@@ -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 = 68862729138c74fed22a97b582f399a9c6eb9d79
|
purpurCommit = 6a6706d3b4f934845a44ecd7533bf53966e4857c
|
||||||
pufferfishCommit = cadfa71a2eaef4581e1163ff63d07fc596145fa1
|
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.5"
|
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 = 483368e480eb2ec060d8e68b30e14ec96aba6c4e
|
paperCommit = 38376f43a0c268e5223746cab13910f55e5ecf41
|
||||||
|
|
||||||
org.gradle.caching = true
|
org.gradle.caching = true
|
||||||
org.gradle.parallel = true
|
org.gradle.parallel = true
|
||||||
|
|||||||
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.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
|
||||||
|
|||||||
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: Sun, 4 Jun 2023 07:49:45 +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;
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: BillyGalbreath <Blake.Galbreath@Gmail.com>
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||||
Date: Tue, 4 Jan 2022 23:05:41 -0600
|
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
|
||||||
@@ -169,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 b7a2cecb334ce39fa09d8ab949a29eedbdc44c36..b1f35c68373edfe666ca05b50f0ec022a1859ce9 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
|
||||||
@@ -201,6 +201,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"));
|
||||||
|
|
||||||
@@ -189,7 +176,7 @@ index b7a2cecb334ce39fa09d8ab949a29eedbdc44c36..b1f35c68373edfe666ca05b50f0ec022
|
|||||||
+ // 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
|
||||||
@@ -209,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 b0bc2df41506770e2854a287813f1c53f003eda1..a2f617537292e3bac52d665a6e51b7d4ce4a227e 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
|
||||||
@@ -2483,4 +2483,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();
|
||||||
}
|
}
|
||||||
@@ -341,7 +328,7 @@ index b0bc2df41506770e2854a287813f1c53f003eda1..a2f617537292e3bac52d665a6e51b7d4
|
|||||||
+ // 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;
|
||||||
@@ -352,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -431,10 +418,10 @@ 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 9b290969b0e60f20450cd15e3fc6f37276f12ae6..77a885fd17f280649b95df758f1096fa38fe8d69 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
|
||||||
@@ -11166,4 +11166,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 boolean isEnabledByFeature(@NotNull World world) {
|
public boolean isEnabledByFeature(@NotNull World world) {
|
||||||
return Bukkit.getDataPackManager().isEnabledByFeature(this, world);
|
return Bukkit.getDataPackManager().isEnabledByFeature(this, world);
|
||||||
}
|
}
|
||||||
@@ -476,10 +463,10 @@ index 9b290969b0e60f20450cd15e3fc6f37276f12ae6..77a885fd17f280649b95df758f1096fa
|
|||||||
+ // 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 72175dcae49f75b494ab70958053ed994a8828f4..df642a55003517040be795b44a8bf107dd88810b 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
|
||||||
@@ -460,4 +460,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();
|
||||||
@@ -595,10 +582,10 @@ index 72175dcae49f75b494ab70958053ed994a8828f4..df642a55003517040be795b44a8bf107
|
|||||||
+ // 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 1d1a1d087dabc9794e0062a064da2cced4062309..96160bced90bb4cd84e48c85c645cad0eb672b85 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
|
||||||
@@ -1994,6 +1994,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
|
||||||
|
|
||||||
@@ -617,10 +604,10 @@ index 1d1a1d087dabc9794e0062a064da2cced4062309..96160bced90bb4cd84e48c85c645cad0
|
|||||||
/**
|
/**
|
||||||
* Sends the component to the player
|
* Sends the component to the player
|
||||||
*
|
*
|
||||||
@@ -2162,4 +2174,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
|
||||||
+ /**
|
+ /**
|
||||||
@@ -724,10 +711,10 @@ index 1d1a1d087dabc9794e0062a064da2cced4062309..96160bced90bb4cd84e48c85c645cad0
|
|||||||
+ // 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 72f1576b8ce5b55b50f053f346ce42c52db4b568..adf8169d5baefa7a33c33ef066180a8116617756 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
|
||||||
@@ -3974,6 +3974,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();
|
||||||
|
|
||||||
@@ -814,6 +801,35 @@ index 72f1576b8ce5b55b50f053f346ce42c52db4b568..adf8169d5baefa7a33c33ef066180a81
|
|||||||
/**
|
/**
|
||||||
* Get all {@link FeatureFlag} enabled in this world.
|
* 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
|
||||||
@@ -853,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);
|
||||||
}
|
}
|
||||||
@@ -948,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
|
||||||
+ /**
|
+ /**
|
||||||
@@ -1100,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
|
||||||
@@ -1171,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 88c4885569d2b8b22fce55601d50608ac8e9388c..dc437885404ae147a06cac653e519a4674a9a951 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
|
||||||
@@ -3068,4 +3068,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
|
||||||
@@ -1207,27 +1223,6 @@ index 88c4885569d2b8b22fce55601d50608ac8e9388c..dc437885404ae147a06cac653e519a46
|
|||||||
+ 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.
|
||||||
@@ -1310,8 +1305,12 @@ index 88c4885569d2b8b22fce55601d50608ac8e9388c..dc437885404ae147a06cac653e519a46
|
|||||||
+ *
|
+ *
|
||||||
+ * @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
|
||||||
@@ -1426,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"),
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -1458,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;
|
||||||
@@ -1480,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
|
||||||
+
|
+
|
||||||
@@ -2153,6 +2152,23 @@ index 523818cbb0d6c90481ec97123e7fe0e2ff4eea14..bfeb8171a723d84b94bfaacd8aaf7d4d
|
|||||||
@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
|
||||||
@@ -2216,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";
|
||||||
@@ -2242,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) {
|
||||||
@@ -2279,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;
|
||||||
@@ -2287,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) {
|
||||||
@@ -2337,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2357,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());
|
||||||
+ }
|
+ }
|
||||||
@@ -2380,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;
|
||||||
@@ -2389,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2414,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() {
|
||||||
@@ -2585,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
|
||||||
@@ -2890,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;
|
||||||
+
|
+
|
||||||
+/**
|
+/**
|
||||||
@@ -2911,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;
|
||||||
+ }
|
+ }
|
||||||
@@ -3414,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
|
||||||
@@ -4091,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 96160bced90bb4cd84e48c85c645cad0eb672b85..cd7080c49b769dec6d5d80774bde02e9dd8ecc01 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
|
||||||
@@ -1994,6 +1994,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
@@ -1,11 +1,31 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: IPECTER <ipectert@gmail.com>
|
From: IPECTER <ipectert@gmail.com>
|
||||||
Date: Tue, 30 May 2023 12:12:29 +0900
|
Date: Tue, 30 May 2023 12:12:29 +0900
|
||||||
Subject: [PATCH] MC-Dev-fixes
|
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
|
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 75f1d1f06978d836aab5ebbfe8f7d1e0ca5a95b6..89d70a992e0bcc8e7292c4f736470eafd8747b24 100644
|
index 733134401fcba393053c7a2dfa1d0d44f8f79ff5..17d931ef47846b59e28dc0c5b5ae91396a1d3e7d 100644
|
||||||
--- a/src/main/java/net/minecraft/util/datafix/fixes/LeavesFix.java
|
--- a/src/main/java/net/minecraft/util/datafix/fixes/LeavesFix.java
|
||||||
+++ b/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 {
|
@@ -71,14 +71,14 @@ public class LeavesFix extends DataFix {
|
||||||
@@ -15,15 +35,15 @@ index 75f1d1f06978d836aab5ebbfe8f7d1e0ca5a95b6..89d70a992e0bcc8e7292c4f736470eaf
|
|||||||
- Typed<?> typed2 = typedx.updateTyped(opticFinder2, (typed) -> {
|
- Typed<?> typed2 = typedx.updateTyped(opticFinder2, (typed) -> {
|
||||||
- Int2ObjectMap<LeavesFix.LeavesSection> int2ObjectMap = new Int2ObjectOpenHashMap<>(typed.getAllTyped(opticFinder3).stream().map((typedx) -> {
|
- Int2ObjectMap<LeavesFix.LeavesSection> int2ObjectMap = new Int2ObjectOpenHashMap<>(typed.getAllTyped(opticFinder3).stream().map((typedx) -> {
|
||||||
- return new LeavesFix.LeavesSection(typedx, this.getInputSchema());
|
- return new LeavesFix.LeavesSection(typedx, this.getInputSchema());
|
||||||
+ Typed<?> typed2 = typedx.updateTyped(opticFinder2, (typed2x) -> {
|
+ Typed<?> typed2 = typedx.updateTyped(opticFinder2, (typed2x) -> { // Plazma - decompile fix
|
||||||
+ Int2ObjectMap<LeavesFix.LeavesSection> int2ObjectMap = new Int2ObjectOpenHashMap<>(typed2x.getAllTyped(opticFinder3).stream().map((typedx2) -> {
|
+ Int2ObjectMap<LeavesFix.LeavesSection> int2ObjectMap = new Int2ObjectOpenHashMap<>(typed2x.getAllTyped(opticFinder3).stream().map((typedx2) -> { // Plazma - decompile fix
|
||||||
+ return new LeavesFix.LeavesSection(typedx2, this.getInputSchema());
|
+ return new LeavesFix.LeavesSection(typedx2, this.getInputSchema()); // Plazma - decompile fix
|
||||||
}).collect(Collectors.toMap(LeavesFix.Section::getIndex, (leavesSection) -> {
|
}).collect(Collectors.toMap(LeavesFix.Section::getIndex, (leavesSection) -> {
|
||||||
return leavesSection;
|
return leavesSection;
|
||||||
})));
|
})));
|
||||||
if (int2ObjectMap.values().stream().allMatch(LeavesFix.Section::isSkippable)) {
|
if (int2ObjectMap.values().stream().allMatch(LeavesFix.Section::isSkippable)) {
|
||||||
- return typed;
|
- return typed;
|
||||||
+ return typed2x;
|
+ return typed2x; // Plazma - decompile fix
|
||||||
} else {
|
} else {
|
||||||
List<IntSet> list = Lists.newArrayList();
|
List<IntSet> list = Lists.newArrayList();
|
||||||
|
|
||||||
@@ -33,8 +53,8 @@ index 75f1d1f06978d836aab5ebbfe8f7d1e0ca5a95b6..89d70a992e0bcc8e7292c4f736470eaf
|
|||||||
|
|
||||||
- return typed.updateTyped(opticFinder3, (typedx) -> {
|
- return typed.updateTyped(opticFinder3, (typedx) -> {
|
||||||
- return int2ObjectMap.get(typedx.get(DSL.remainderFinder()).get("Y").asInt(0)).write(typedx);
|
- return int2ObjectMap.get(typedx.get(DSL.remainderFinder()).get("Y").asInt(0)).write(typedx);
|
||||||
+ return typed.updateTyped(opticFinder3, (typedx2) -> {
|
+ return typed.updateTyped(opticFinder3, (typedx2) -> { // Plazma - decompile fix
|
||||||
+ return int2ObjectMap.get(typedx2.get(DSL.remainderFinder()).get("Y").asInt(0)).write(typedx2);
|
+ return int2ObjectMap.get(typedx2.get(DSL.remainderFinder()).get("Y").asInt(0)).write(typedx2); // Plazma - decompile fix
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -44,8 +64,8 @@ index 75f1d1f06978d836aab5ebbfe8f7d1e0ca5a95b6..89d70a992e0bcc8e7292c4f736470eaf
|
|||||||
Optional<List<Pair<String, Dynamic<?>>>> optional = typed.getOptional(this.paletteFinder);
|
Optional<List<Pair<String, Dynamic<?>>>> optional = typed.getOptional(this.paletteFinder);
|
||||||
- this.palette = optional.map((list) -> {
|
- this.palette = optional.map((list) -> {
|
||||||
- return list.stream().map(Pair::getSecond).collect(Collectors.toList());
|
- return list.stream().map(Pair::getSecond).collect(Collectors.toList());
|
||||||
+ this.palette = (java.util.List)optional.map((list) -> {
|
+ this.palette = (List) optional.map((list) -> { // Plazma - decompile fix
|
||||||
+ return (java.util.List)list.stream().map(Pair::getSecond).collect(Collectors.toList());
|
+ return (List) list.stream().map(Pair::getSecond).collect(Collectors.toList()); // Plazma - decompile fix
|
||||||
}).orElse(ImmutableList.of());
|
}).orElse(ImmutableList.of());
|
||||||
Dynamic<?> dynamic = typed.get(DSL.remainderFinder());
|
Dynamic<?> dynamic = typed.get(DSL.remainderFinder());
|
||||||
this.index = dynamic.get("Y").asInt(0);
|
this.index = dynamic.get("Y").asInt(0);
|
||||||
@@ -54,7 +74,7 @@ index 75f1d1f06978d836aab5ebbfe8f7d1e0ca5a95b6..89d70a992e0bcc8e7292c4f736470eaf
|
|||||||
return this.isSkippable() ? typed : typed.update(DSL.remainderFinder(), (dynamic) -> {
|
return this.isSkippable() ? typed : typed.update(DSL.remainderFinder(), (dynamic) -> {
|
||||||
return dynamic.set("BlockStates", dynamic.createLongList(Arrays.stream(this.storage.getRaw())));
|
return dynamic.set("BlockStates", dynamic.createLongList(Arrays.stream(this.storage.getRaw())));
|
||||||
- }).set(this.paletteFinder, this.palette.stream().map((dynamic) -> {
|
- }).set(this.paletteFinder, this.palette.stream().map((dynamic) -> {
|
||||||
+ }).set(this.paletteFinder, (java.util.List)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);
|
return Pair.of(References.BLOCK_STATE.typeName(), dynamic);
|
||||||
}).collect(Collectors.toList()));
|
}).collect(Collectors.toList()));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 9c01005751c0088f560f96401cdfdebbbda4e7ec..46fda579a95f9ab92a1ba61cad8218024a722208 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 cdbf10339a8e8846a8c364de483a0ccd95cd225a..5ed7acb332b8982a724e5002e12f18fe32dd4dd4 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,7 +189,7 @@ 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 56cf3d5b8e365ce6b1ec88464d9079d774206755..9133e57b83c3348b5cd7a6b31f5ec380e8a12560 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
|
||||||
@@ -56,7 +56,7 @@ public class MinecraftServerGui extends JComponent {
|
@@ -56,7 +56,7 @@ public class MinecraftServerGui extends JComponent {
|
||||||
@@ -219,10 +220,10 @@ index 56cf3d5b8e365ce6b1ec88464d9079d774206755..9133e57b83c3348b5cd7a6b31f5ec380
|
|||||||
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 3310828edcabd2c24e3200dcb89d4e8ebd82cf16..5e6952a9d4c1137dc3d720ee2c944d95d4628065 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
|
||||||
@@ -262,7 +262,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 3310828edcabd2c24e3200dcb89d4e8ebd82cf16..5e6952a9d4c1137dc3d720ee2c944d95
|
|||||||
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 be8b44daa0141151c973917a774aa07721647ed1..c93f6d275d0541e0751eefca45d17c4ccd39a62a 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
|
||||||
@@ -229,7 +229,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 be8b44daa0141151c973917a774aa07721647ed1..c93f6d275d0541e0751eefca45d17c4c
|
|||||||
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 )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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 615c456de68a20d0e95b30e124a2bdf46039408f..cc6968a064b30f7250d18c20efb2bb8602bb0cdd 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 615c456de68a20d0e95b30e124a2bdf46039408f..cc6968a064b30f7250d18c20efb2bb86
|
|||||||
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 6ecc75621867390738e804e06ac284524664473d..b91910eaac0e9c18722e52d223a4420199d77a7f 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
|
||||||
@@ -209,6 +209,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
|
||||||
@@ -218,6 +222,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 86b8485c0fb1dc5cd79c9e24546dc74459822a48..ebbf462835e5a14fe1413c724d4985635207a897 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 86b8485c0fb1dc5cd79c9e24546dc74459822a48..ebbf462835e5a14fe1413c724d498563
|
|||||||
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 5e6952a9d4c1137dc3d720ee2c944d95d4628065..1367072684078c0e93c275c2159ece799f96428b 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
|
||||||
@@ -993,6 +993,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 5e6952a9d4c1137dc3d720ee2c944d95d4628065..1367072684078c0e93c275c2159ece79
|
|||||||
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
|
||||||
@@ -2835,6 +2836,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 5e6952a9d4c1137dc3d720ee2c944d95d4628065..1367072684078c0e93c275c2159ece79
|
|||||||
@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 288cf98287c6d3c073b9ab6696c3957c999cad32..4970b246356bbd04eb1f9715da3fc7c9494573e2 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);
|
||||||
+ }
|
+ }
|
||||||
|
|||||||
@@ -1,65 +1,54 @@
|
|||||||
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: Fri, 24 Mar 2023 23:54:51 +0900
|
Date: Wed, 27 Sep 2023 16:02:29 +0900
|
||||||
Subject: [PATCH] Add more metrics
|
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
|
diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java
|
||||||
index 7d80d2cf5d607d6051e99e4b08bc1b76098a79da..067bcbcb81802a3a52ecff737ddf2c033696ecfb 100644
|
index 7d80d2cf5d607d6051e99e4b08bc1b76098a79da..fa88d48adc3aefcd823f431f099e46c94fd071a1 100644
|
||||||
--- a/src/main/java/com/destroystokyo/paper/Metrics.java
|
--- a/src/main/java/com/destroystokyo/paper/Metrics.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/Metrics.java
|
+++ b/src/main/java/com/destroystokyo/paper/Metrics.java
|
||||||
@@ -636,12 +636,63 @@ public class Metrics {
|
@@ -636,16 +636,51 @@ public class Metrics {
|
||||||
return map;
|
return map;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
+ // Plazma start
|
+ // Plazma start - Add more metrics
|
||||||
+ metrics.addCustomChart(new Metrics.DrilldownPie("datapacks", () -> {
|
+ metrics.addCustomChart(new DrilldownPie("datapacks", () -> {
|
||||||
+ Map<String, Map<String, Integer>> map = new HashMap<>();
|
+ int datapacks = Bukkit.getDatapackManager().getEnabledPacks().size();
|
||||||
+ int datapacks = Bukkit.getServer().getDatapackManager().getEnabledPacks().size();
|
+ Map<String, Integer> entry = Collections.singletonMap(String.valueOf(datapacks), 1);
|
||||||
+ Map<String, Integer> entry = new HashMap<>();
|
|
||||||
+ entry.put(String.valueOf(datapacks), 1);
|
|
||||||
+
|
+
|
||||||
+ if (datapacks == 0)
|
+ if (datapacks == 0) return Collections.singletonMap("0", entry);
|
||||||
+ map.put("0", entry);
|
+ else if (datapacks <= 5) return Collections.singletonMap("1-5", entry);
|
||||||
+ else if (datapacks <= 5)
|
+ else if (datapacks <= 10) return Collections.singletonMap("6-10", entry);
|
||||||
+ map.put("1-5", entry);
|
+ else if (datapacks <= 25) return Collections.singletonMap("11-25", entry);
|
||||||
+ else if (datapacks <= 10)
|
+ else if (datapacks <= 50) return Collections.singletonMap("26-50", entry);
|
||||||
+ map.put("6-10", entry);
|
+ return Collections.singletonMap("50+", 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", () -> {
|
+ List<Plugin> plugins = Arrays.stream(Bukkit.getPluginManager().getPlugins()).toList();
|
||||||
+ 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)
|
+ metrics.addCustomChart(new DrilldownPie("plugins", () -> {
|
||||||
+ map.put("0", entry);
|
+ int pluginCount = (int) plugins.stream().filter(Plugin::isEnabled).count();
|
||||||
+ else if (plugins1 <= 5)
|
+ Map<String, Integer> entry = Collections.singletonMap(String.valueOf(pluginCount), 1);
|
||||||
+ 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;
|
+ 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
|
+ // Plazma end
|
||||||
+
|
+
|
||||||
@@ -67,9 +56,13 @@ index 7d80d2cf5d607d6051e99e4b08bc1b76098a79da..067bcbcb81802a3a52ecff737ddf2c03
|
|||||||
Map<String, Map<String, Integer>> map = new HashMap<>();
|
Map<String, Map<String, Integer>> map = new HashMap<>();
|
||||||
|
|
||||||
// count legacy plugins
|
// count legacy plugins
|
||||||
int legacy = 0;
|
- int legacy = 0;
|
||||||
- for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
|
- for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
|
||||||
+ for (Plugin plugin : plugins) { // Plazma
|
- if (CraftMagicNumbers.isLegacy(plugin.getDescription())) {
|
||||||
if (CraftMagicNumbers.isLegacy(plugin.getDescription())) {
|
- legacy++;
|
||||||
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,70 +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 b4e5fbace85c67e7bd347e6a90514bbc2c132d5e..edc8eba38af743167a8b78d34cb426d6929f9605 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.");
|
|
||||||
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 a33de97340f14219291c4175e9194914cdf441db..f63b4ab2057176d4f1549200eef16e71c6018dc2 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;
|
||||||
@@ -73,52 +76,73 @@ index a33de97340f14219291c4175e9194914cdf441db..f63b4ab2057176d4f1549200eef16e71
|
|||||||
- "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);
|
||||||
@@ -128,8 +152,8 @@ index a33de97340f14219291c4175e9194914cdf441db..f63b4ab2057176d4f1549200eef16e71
|
|||||||
- 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);
|
||||||
@@ -160,76 +184,77 @@ index a33de97340f14219291c4175e9194914cdf441db..f63b4ab2057176d4f1549200eef16e71
|
|||||||
});
|
});
|
||||||
public boolean flushRegionsOnSave = false;
|
public boolean flushRegionsOnSave = false;
|
||||||
}
|
}
|
||||||
@@ -439,9 +461,9 @@ public class WorldConfiguration extends ConfigurationPart {
|
@@ -491,9 +525,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));
|
||||||
}
|
}
|
||||||
@@ -465,9 +487,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 5ed7acb332b8982a724e5002e12f18fe32dd4dd4..8a10f9b7b837c4d20eaf4a83827e36f14a180ea7 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));
|
||||||
@@ -237,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 1367072684078c0e93c275c2159ece799f96428b..84fb7f6cdad5e7a5389e2469bfd6fb961cd1b299 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
|
||||||
@@ -354,7 +354,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 c93f6d275d0541e0751eefca45d17c4ccd39a62a..38a8f79b0075279389f0b3dc7de4b16d9af05295 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 {
|
||||||
@@ -239,7 +242,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 397c4afa8da85845f49974832674a6e45ee6edb7..ce702e6b5fff3a54f9f254a61becd12eb5c11dd7 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
|
||||||
@@ -427,7 +427,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;
|
||||||
@@ -3040,7 +3040,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 bbfafb1400721251dfd2cac4dd8a31be2d682d4b..f61aca65f9d9bc6888285def1c9016f7a7395919 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
|
||||||
@@ -148,14 +148,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 );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -328,74 +362,74 @@ index bbfafb1400721251dfd2cac4dd8a31be2d682d4b..f61aca65f9d9bc6888285def1c9016f7
|
|||||||
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 );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -194,7 +194,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 );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,26 +205,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;
|
||||||
@@ -297,7 +297,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 );
|
||||||
@@ -307,7 +307,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,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;
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
102
patches/server/0009-Console-logging-tweaks.patch
Normal file
102
patches/server/0009-Console-logging-tweaks.patch
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
|
Date: Wed, 27 Sep 2023 16:55:12 +0900
|
||||||
|
Subject: [PATCH] Console logging tweaks
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java
|
||||||
|
index e4fd372a1d585887287253a02531cd192929377b..dae0b0e1288afe0d8eb70d0e8e2db152aad42bf4 100644
|
||||||
|
--- a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java
|
||||||
|
+++ b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java
|
||||||
|
@@ -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) {
|
||||||
|
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, (!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
|
||||||
|
index a970e00482952318c258fc406cb7c39a229b65bc..879c090d9c4574a2cd45a0eb1bf9cb171834d940 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
|
@@ -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\"");
|
||||||
|
}
|
||||||
|
|
||||||
|
- // Paper start - detect running as root
|
||||||
|
- if (io.papermc.paper.util.ServerEnvironment.userIsRootOrAdmin()) {
|
||||||
|
- 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 OPENING YOURSELF UP TO POTENTIAL RISKS WHEN DOING THIS.");
|
||||||
|
- DedicatedServer.LOGGER.warn("FOR MORE INFORMATION, SEE https://madelinemiller.dev/blog/root-minecraft-server/");
|
||||||
|
- DedicatedServer.LOGGER.warn("****************************");
|
||||||
|
- }
|
||||||
|
- // Paper end
|
||||||
|
-
|
||||||
|
DedicatedServer.LOGGER.info("Loading properties");
|
||||||
|
DedicatedServerProperties dedicatedserverproperties = this.settings.getProperties();
|
||||||
|
|
||||||
|
@@ -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 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
|
||||||
|
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().consoleLogs.offlineWarnings) // Plazma - Console logging tweaks
|
||||||
|
if (!this.usesAuthentication()) {
|
||||||
|
DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!");
|
||||||
|
DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware.");
|
||||||
|
@@ -331,9 +322,21 @@ 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.");
|
||||||
|
}
|
||||||
|
// 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 or set \"console-logs.offline-warning\" to \"false\" in the config/plazma-global.yml file."); // Plazma
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Plazma start - Console logging tweaks
|
||||||
|
+ // Moved down
|
||||||
|
+ // Paper start - detect running as root
|
||||||
|
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().consoleLogs.rootUserWarnings && io.papermc.paper.util.ServerEnvironment.userIsRootOrAdmin()) {
|
||||||
|
+ 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 OPENING YOURSELF UP TO POTENTIAL RISKS WHEN DOING THIS.");
|
||||||
|
+ DedicatedServer.LOGGER.warn("FOR MORE INFORMATION, SEE https://madelinemiller.dev/blog/root-minecraft-server/");
|
||||||
|
+ DedicatedServer.LOGGER.warn("****************************");
|
||||||
|
+ }
|
||||||
|
+ // Paper end
|
||||||
|
+ // Plazma end
|
||||||
|
|
||||||
|
if (!OldUsersConverter.serverReadyAfterUserconversion(this)) {
|
||||||
|
return false;
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
|
index 5c38df8170033dbfee267520991a3cc3285d219e..58cc1bed851994fb591e9b832b98d25eda153b47 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
|
@@ -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) {
|
||||||
|
// Paper end
|
||||||
|
- boolean flag = this.verifyChatTrusted(message);
|
||||||
|
+ 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
|
||||||
|
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
|
||||||
|
index d506e0c2b37f91e46e682652bd134ad91db28f84..44df2c0a1ed3d006b455ba2a47d6bc9059d804e1 100644
|
||||||
|
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
||||||
|
@@ -40,4 +40,13 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||||
|
public class Player extends ConfigurationPart {
|
||||||
|
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ public ConsoleLogs consoleLogs;
|
||||||
|
+ public class ConsoleLogs extends ConfigurationPart {
|
||||||
|
+
|
||||||
|
+ public boolean offlineWarnings = true;
|
||||||
|
+ public boolean rootUserWarnings = true;
|
||||||
|
+ public boolean notSecurePrefix = true;
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
}
|
||||||
@@ -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 61f364abb094a1d137478c106fefa22ceb057ed2..a45ff31d08129c0d5f159615d934a4450d54146e 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
|
||||||
@@ -32,7 +32,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,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 852266234cf3d63e3b23a71639e40defca91c1b8..4668eebc0776a470a42de94de1752986f76250d3 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
||||||
@@ -730,8 +730,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)
|
|
||||||
@@ -2374,7 +2402,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){
|
|
||||||
@@ -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 adae992ade60e0fce7ca0cc10192720025a574fe..9725389b6dd7643d00803799ce195d2d471cdcb8 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,19 +180,19 @@ 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 38a8f79b0075279389f0b3dc7de4b16d9af05295..072cc011abded538ae643b36cfb1f861d564bcec 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
|
||||||
@@ -329,6 +329,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;
|
||||||
@@ -205,15 +200,15 @@ index 38a8f79b0075279389f0b3dc7de4b16d9af05295..072cc011abded538ae643b36cfb1f861
|
|||||||
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 ce702e6b5fff3a54f9f254a61becd12eb5c11dd7..7d553b0bb9ae478d54931682501afa9f532db5dd 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
|
||||||
@@ -1098,7 +1098,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 ce702e6b5fff3a54f9f254a61becd12eb5c11dd7..7d553b0bb9ae478d54931682501afa9f
|
|||||||
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);
|
||||||
@@ -1209,7 +1217,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 {
|
||||||
@@ -1636,7 +1652,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 ce702e6b5fff3a54f9f254a61becd12eb5c11dd7..7d553b0bb9ae478d54931682501afa9f
|
|||||||
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);
|
||||||
@@ -2587,7 +2611,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 ce702e6b5fff3a54f9f254a61becd12eb5c11dd7..7d553b0bb9ae478d54931682501afa9f
|
|||||||
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);
|
||||||
@@ -2686,7 +2716,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 ce702e6b5fff3a54f9f254a61becd12eb5c11dd7..7d553b0bb9ae478d54931682501afa9f
|
|||||||
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);
|
||||||
@@ -2896,7 +2934,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;
|
||||||
@@ -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 {
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
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,74 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <alphakr93@gmail.com>
|
|
||||||
Date: Fri, 10 Mar 2023 21:45:37 +0900
|
|
||||||
Subject: [PATCH] Console log tweaks
|
|
||||||
|
|
||||||
[Offine Warning Configuration Patch]
|
|
||||||
Original by Irochi <me@irochi.moe>
|
|
||||||
Licensed under the GPL 3.0
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
|
||||||
index b91910eaac0e9c18722e52d223a4420199d77a7f..84bb45aef3c2087cb9c03a99184956c484b3d8e9 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
|
||||||
@@ -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\"");
|
|
||||||
}
|
|
||||||
|
|
||||||
- // Paper start - detect running as root
|
|
||||||
- if (io.papermc.paper.util.ServerEnvironment.userIsRootOrAdmin()) {
|
|
||||||
- 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 OPENING YOURSELF UP TO POTENTIAL RISKS WHEN DOING THIS.");
|
|
||||||
- DedicatedServer.LOGGER.warn("FOR MORE INFORMATION, SEE https://madelinemiller.dev/blog/root-minecraft-server/");
|
|
||||||
- DedicatedServer.LOGGER.warn("****************************");
|
|
||||||
- }
|
|
||||||
- // Paper end
|
|
||||||
-
|
|
||||||
DedicatedServer.LOGGER.info("Loading properties");
|
|
||||||
DedicatedServerProperties dedicatedserverproperties = this.settings.getProperties();
|
|
||||||
|
|
||||||
@@ -321,7 +311,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
|
||||||
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/";
|
|
||||||
// Paper end
|
|
||||||
- if (!this.usesAuthentication()) {
|
|
||||||
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().consoleLogs.enableOfflineWarnings && !this.usesAuthentication()) { // Plazma
|
|
||||||
DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!");
|
|
||||||
DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware.");
|
|
||||||
// Spigot start
|
|
||||||
@@ -334,9 +324,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.");
|
|
||||||
}
|
|
||||||
// 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 or set \"console-logs.offline-warning\" to \"false\" in the \"config/plazma-global.yml\" file."); // Plazma
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Plazma start - Moved down
|
|
||||||
+ // Paper start - detect running as root
|
|
||||||
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().consoleLogs.enableRootUserWarnings && io.papermc.paper.util.ServerEnvironment.userIsRootOrAdmin()) {
|
|
||||||
+ 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 OPENING YOURSELF UP TO POTENTIAL RISKS WHEN DOING THIS.");
|
|
||||||
+ DedicatedServer.LOGGER.warn("FOR MORE INFORMATION, SEE https://madelinemiller.dev/blog/root-minecraft-server/");
|
|
||||||
+ DedicatedServer.LOGGER.warn("****************************");
|
|
||||||
+ }
|
|
||||||
+ // Paper end
|
|
||||||
+ // Plazma end
|
|
||||||
|
|
||||||
if (!OldUsersConverter.serverReadyAfterUserconversion(this)) {
|
|
||||||
return false;
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
index 3c70653b720d3d55be199e000e89c627b90e65da..122482e1fae7d6ac8e6b32ebdcf3e611d47901c4 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
@@ -24,6 +24,8 @@ public class GlobalConfiguration extends ConfigurationPart {
|
|
||||||
public ConsoleLogs consoleLogs;
|
|
||||||
public class ConsoleLogs extends ConfigurationPart {
|
|
||||||
|
|
||||||
+ public boolean enableOfflineWarnings = true;
|
|
||||||
+ public boolean enableRootUserWarnings = true;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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,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 122482e1fae7d6ac8e6b32ebdcf3e611d47901c4..61f364abb094a1d137478c106fefa22ceb057ed2 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
@@ -27,5 +27,12 @@ public class GlobalConfiguration extends ConfigurationPart {
|
|
||||||
public boolean enableOfflineWarnings = true;
|
|
||||||
public boolean enableRootUserWarnings = true;
|
|
||||||
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public Player player;
|
|
||||||
+ public class Player extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
}
|
|
||||||
}
|
|
||||||
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); }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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 ff56981a03b55f9ee1ec8ad36adaf9849b2c914b..b22b86d7f226e0e24d6be27ea33ec9d690f8f238 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
||||||
@@ -275,7 +275,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
|
|
||||||
@@ -1300,7 +1300,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));
|
|
||||||
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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -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,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 {
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
@@ -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;
|
||||||
@@ -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,189 +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 40eda117db2e3f578ad9d25522b6aadfe319b5cc..ef624a99c971aa5c4ce3869d10e2435c0bc8e0a4 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
||||||
@@ -405,7 +405,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;
|
|
||||||
@@ -442,7 +442,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 bcb0f3fd09ed064b64dc6495302b40828d906837..c6152b295a2f46e5204f42fe76e6cd10127ce12e 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
|
|
||||||
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/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
|
|
||||||
index 7a3d9c1f8abdbc25e88ca35da1546725f0013c68..79f980cadddbfe234b410f25b5f0bc6edfcbba26 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 a4cd9869988f414ce1bf14d38442f78207e3f048..f99a7b2da94ef7b413ff10b57fa43e23398aa715 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 59b9b268467b098e5c21d1d00f599cfb36154179..fa33fd5a64fadbfe6507ae9f61fdfbfc816686b5 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
@@ -39,7 +39,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;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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 68df53648c9b76cf1b6abcaa90c5e8938e9e0d05..90cfe6f05f11f18a818857b1da8da75d8831c40c 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
|
||||||
@@ -230,7 +230,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);
|
||||||
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 {
|
||||||
|
|
||||||
@@ -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 e71eca3ddbbeb3168dd73433b6d6ffe9f6755f77..f8be2d9d454965257de55d2aa572016115d1b346 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
|
||||||
@@ -1993,8 +1993,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();
|
|
||||||
@@ -2023,7 +2024,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 fa33fd5a64fadbfe6507ae9f61fdfbfc816686b5..590afba7c588e7b9f5f9c61e91805e3dc3b62771 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
@@ -40,6 +40,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 af8cb1f1f0c128923495f51e4828003133ce766b..8f911f589bf04902e38e2c625d84ba0c47cbd9ee 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
@@ -1544,7 +1544,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;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
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,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;
|
||||||
@@ -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 590afba7c588e7b9f5f9c61e91805e3dc3b62771..8ed22e178bd093241592981c06c747524ad24dc3 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 boolean reduceCreateRandomInstance = DO_OPTIMIZE;
|
|
||||||
public boolean doNotTriggerLootTableRefreshForNonPlayerInteraction = DO_OPTIMIZE;
|
|
||||||
+ public boolean doNotSendUselessEntityPackets = DO_OPTIMIZE;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
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 {
|
||||||
|
|
||||||
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,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 8ed22e178bd093241592981c06c747524ad24dc3..0e8d5b01a673ba826c943fcb33552518022a2ea3 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
@@ -43,5 +43,12 @@ public class GlobalConfiguration extends ConfigurationPart {
|
|
||||||
public boolean doNotTriggerLootTableRefreshForNonPlayerInteraction = DO_OPTIMIZE;
|
|
||||||
public boolean doNotSendUselessEntityPackets = DO_OPTIMIZE;
|
|
||||||
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public NoChatReports noChatReports;
|
|
||||||
+ public class NoChatReports extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,139 +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..c0bd2997fe3ebbfe926de832a36d209cc875f3e2 100644
|
|
||||||
--- a/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
|
||||||
+++ b/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
|
||||||
@@ -147,18 +147,23 @@ public class FriendlyByteBuf extends ByteBuf {
|
|
||||||
public <T> T readJsonWithCodec(Codec<T> codec) {
|
|
||||||
JsonElement jsonelement = (JsonElement) GsonHelper.fromJson(FriendlyByteBuf.GSON, this.readUtf(), JsonElement.class);
|
|
||||||
DataResult<T> dataresult = codec.parse(JsonOps.INSTANCE, jsonelement);
|
|
||||||
-
|
|
||||||
- return Util.getOrThrow(dataresult, (s) -> {
|
|
||||||
- return new DecoderException("Failed to decode json: " + s);
|
|
||||||
- });
|
|
||||||
+ // Plazma start - NCR
|
|
||||||
+ T result = Util.getOrThrow(dataresult, (s) -> new DecoderException("Failed to decode json: " + s));
|
|
||||||
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.addQueryData() && jsonelement.getAsJsonObject().has("preventsChatReports"))
|
|
||||||
+ ((net.minecraft.network.protocol.status.ServerStatus) result).setPreventsChatReports(jsonelement.getAsJsonObject().get("preventsChatReports").getAsBoolean());
|
|
||||||
+ return result;
|
|
||||||
+ // Plazma end
|
|
||||||
}
|
|
||||||
|
|
||||||
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 (org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.addQueryData() && codec == net.minecraft.network.protocol.status.ServerStatus.CODEC)
|
|
||||||
+ 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/status/ServerStatus.java b/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java
|
|
||||||
index e6cc2bab1fde2e8c1394772b99201ea8d7eb8057..2ba3291f6c82f633d7ed7b150f2ae3c28d74b21e 100644
|
|
||||||
--- a/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java
|
|
||||||
+++ b/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java
|
|
||||||
@@ -64,4 +64,21 @@ public record ServerStatus(Component description, Optional<ServerStatus.Players>
|
|
||||||
return new ServerStatus.Version(worldVersion.getName(), worldVersion.getProtocolVersion());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ // Plazma start - NCR
|
|
||||||
+ public boolean enforcesSecureChat() {
|
|
||||||
+ return org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.enabled || this.enforcesSecureChat;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ private static boolean preventsChatReports;
|
|
||||||
+
|
|
||||||
+ public boolean preventsChatReports() {
|
|
||||||
+ if (this.version().isPresent() && this.version().get().protocol() < 759 && this.version().get().protocol() > 0) return true;
|
|
||||||
+ return this.preventsChatReports;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public void setPreventsChatReports(boolean prevents) {
|
|
||||||
+ this.preventsChatReports = prevents;
|
|
||||||
+ }
|
|
||||||
+ // 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 84bb45aef3c2087cb9c03a99184956c484b3d8e9..778b79ce3530781705f6d6ae11a2631f186e3763 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
|
||||||
@@ -684,7 +684,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 8f911f589bf04902e38e2c625d84ba0c47cbd9ee..b15de37a06c3efb1c4bc790ccb23ebff3c97d54d 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
@@ -2235,10 +2235,19 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void send(Packet<?> packet) {
|
|
||||||
+ // Plazma start - NCR
|
|
||||||
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().noChatReports.convertToGameMessage() && packet instanceof ClientboundPlayerChatPacket chat)
|
|
||||||
+ packet = new ClientboundSystemChatPacket(null, Component.Serializer.toJson(chat.chatType().resolve(this.player.level.registryAccess()).get().decorate(chat.unsignedContent() != null ? chat.unsignedContent() : Component.literal(chat.body().content()))), false);
|
|
||||||
this.send(packet, (PacketSendListener) 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 b22b86d7f226e0e24d6be27ea33ec9d690f8f238..022da50912d357581b2132cf57e1a767e436022c 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
||||||
@@ -1464,7 +1464,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 0e8d5b01a673ba826c943fcb33552518022a2ea3..17454a128f7ef53428920f95e4709180fd8efb32 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
@@ -48,7 +48,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;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
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,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 17454a128f7ef53428920f95e4709180fd8efb32..39eca4acefa8f9cf143398cfc6cf157e8489947e 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/GlobalConfiguration.java
|
|
||||||
@@ -61,4 +61,12 @@ public class GlobalConfiguration extends ConfigurationPart {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ public FixMySpawnR fixMySpawnR;
|
|
||||||
+ public class FixMySpawnR extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+ public boolean enabled = DO_OPTIMIZE;
|
|
||||||
+ public int timerTimeOut = 0;
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
@@ -1,32 +1,31 @@
|
|||||||
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: Wed, 10 May 2023 15:30:03 +0900
|
Date: Sat, 30 Sep 2023 22:02:58 +0900
|
||||||
Subject: [PATCH] More-Optimise-State-Lookup
|
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
|
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..5c03e26db0f9da992e9b0487a872e0ec8786650a 100644
|
index 57d0cd3ad6f972e986c72a57f1a6e36003f190c2..0832e4fa92b6464a6206475fbceb3b36462757b3 100644
|
||||||
--- a/src/main/java/io/papermc/paper/util/table/ZeroCollidingReferenceStateTable.java
|
--- a/src/main/java/io/papermc/paper/util/table/ZeroCollidingReferenceStateTable.java
|
||||||
+++ b/src/main/java/io/papermc/paper/util/table/ZeroCollidingReferenceStateTable.java
|
+++ b/src/main/java/io/papermc/paper/util/table/ZeroCollidingReferenceStateTable.java
|
||||||
@@ -16,7 +16,7 @@ public final class ZeroCollidingReferenceStateTable {
|
@@ -17,6 +17,7 @@ public final class ZeroCollidingReferenceStateTable {
|
||||||
protected final Comparable<?>[] this_table;
|
|
||||||
protected final StateHolder<?, ?> this_state;
|
protected final StateHolder<?, ?> this_state;
|
||||||
|
|
||||||
- protected long[] index_table;
|
protected long[] index_table;
|
||||||
+ protected long[] index_table; public long[] index_table() { return index_table; } // Plazma - Paper - optimise state lookup
|
+ public long[] index_table() { return this.index_table; } // Plazma - getter
|
||||||
protected StateHolder<?, ?>[][] value_table;
|
protected StateHolder<?, ?>[][] value_table;
|
||||||
|
|
||||||
public ZeroCollidingReferenceStateTable(final StateHolder<?, ?> state, final Map<Property<?>, Comparable<?>> this_map) {
|
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
|
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 170f5cb3f01a57ad76e3bbeacd5b7c7e52f29959..ec42cafb7a9caf710f9ec5cea6130d54092dc5d2 100644
|
index 5f285d190186a2ff5a61d05070593e1d633dd79a..7b61a956892e90c7556db46d9277da8d252547cd 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/state/StateHolder.java
|
--- a/src/main/java/net/minecraft/world/level/block/state/StateHolder.java
|
||||||
+++ b/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,17 @@ public abstract class StateHolder<O, S> {
|
@@ -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) {
|
public <T extends Comparable<T>, V extends T> S trySetValue(Property<T> property, V value) {
|
||||||
- Comparable<?> comparable = this.values.get(property);
|
- Comparable<?> comparable = this.values.get(property);
|
||||||
- if (comparable != null && comparable != value) {
|
- if (comparable != null && !comparable.equals(value)) {
|
||||||
- S object = this.neighbours.get(property, value);
|
- S object = this.neighbours.get(property, value);
|
||||||
- if (object == null) {
|
- if (object == null) {
|
||||||
- throw new IllegalArgumentException("Cannot set property " + property + " to " + value + " on " + this.owner + ", it is not an allowed value");
|
- throw new IllegalArgumentException("Cannot set property " + property + " to " + value + " on " + this.owner + ", it is not an allowed value");
|
||||||
@@ -35,27 +34,26 @@ index 170f5cb3f01a57ad76e3bbeacd5b7c7e52f29959..ec42cafb7a9caf710f9ec5cea6130d54
|
|||||||
- }
|
- }
|
||||||
- } else {
|
- } else {
|
||||||
- return (S)this;
|
- return (S)this;
|
||||||
+ // Plazma start - Paper - optimise state lookup
|
- }
|
||||||
+ final S ret = (S)this.optimisedTable.get(property, value);
|
+ // Plazma start - optimise state lookup more
|
||||||
+ if (ret == null) {
|
+ final S ret = (S) this.optimisedTable.get(property, value);
|
||||||
+ throw new IllegalArgumentException("Cannot set property " + property + " to " + value + " on " + this.owner + ", it is not an allowed value");
|
+ if (ret == null) throw new IllegalArgumentException("Cannot set property " + property + " to " + value + " on " + this.owner + ", it is not an allowed value");
|
||||||
}
|
|
||||||
+ return ret;
|
+ return ret;
|
||||||
+ // Plazma end - Paper - optimise state lookup
|
+ // Plazma end
|
||||||
}
|
}
|
||||||
|
|
||||||
public void populateNeighbours(Map<Map<Property<?>, Comparable<?>>, S> states) {
|
public void populateNeighbours(Map<Map<Property<?>, Comparable<?>>, S> states) {
|
||||||
- if (this.neighbours != null) {
|
- if (this.neighbours != null) {
|
||||||
+ if (this.optimisedTable.index_table() != null) {
|
+ if (this.optimisedTable.index_table() != null) { // Plazma - optimise state lookup more
|
||||||
throw new IllegalStateException();
|
throw new IllegalStateException();
|
||||||
} else {
|
} else {
|
||||||
Table<Property<?>, Comparable<?>, S> table = HashBasedTable.create();
|
Table<Property<?>, Comparable<?>, S> table = HashBasedTable.create();
|
||||||
@@ -143,7 +139,7 @@ public abstract class StateHolder<O, S> {
|
@@ -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.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
|
+ this.optimisedTable.loadInTable((Table) (table.isEmpty() ? table : ArrayTable.create(table)), this.values); // Paper - optimise state lookup // Plazma - more
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,42 +1,41 @@
|
|||||||
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: Wed, 10 May 2023 15:38:58 +0900
|
Date: Sat, 30 Sep 2023 22:06:00 +0900
|
||||||
Subject: [PATCH] Suppress-Error-From-DirtyAttributes
|
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
|
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
index dbb987d5896e199aeae3bcd86c69bf3327af8ada..d6079c9577d65eab51dab8803eab6e46dccc8dd3 100644
|
index b2770e053f6db173dedbf044d67aa315e2fd7302..30b4c6bf1a0c847d00fc466ca9c997f9049bb697 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
@@ -419,8 +419,8 @@ public class ServerEntity {
|
@@ -395,7 +395,8 @@ public class ServerEntity {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.entity instanceof LivingEntity) {
|
if (this.entity instanceof LivingEntity) {
|
||||||
- Set<AttributeInstance> set = ((LivingEntity) this.entity).getAttributes().getDirtyAttributes();
|
- Set<AttributeInstance> set = ((LivingEntity) this.entity).getAttributes().getDirtyAttributes();
|
||||||
-
|
+ Set<AttributeInstance> attributes = ((LivingEntity) this.entity).getAttributes().getDirtyAttributes(); // Plazma - Suppress error from dirty attributes
|
||||||
+ 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
|
||||||
+ final Set<AttributeInstance> set = this.entity.level.plazmaLevelConfiguration().misc.suppressErrorFromDirtyAttributes ? java.util.Collections.synchronizedSet(attributes) : attributes; // Plazma - suppress error from dirty attributes
|
|
||||||
if (!set.isEmpty()) {
|
if (!set.isEmpty()) {
|
||||||
// CraftBukkit start - Send scaled max health
|
// CraftBukkit start - Send scaled max health
|
||||||
if (this.entity instanceof ServerPlayer) {
|
@@ -406,7 +407,7 @@ public class ServerEntity {
|
||||||
@@ -430,7 +430,7 @@ public class ServerEntity {
|
|
||||||
this.broadcastAndSend(new ClientboundUpdateAttributesPacket(this.entity.getId(), set));
|
this.broadcastAndSend(new ClientboundUpdateAttributesPacket(this.entity.getId(), set));
|
||||||
}
|
}
|
||||||
|
|
||||||
- set.clear();
|
- set.clear();
|
||||||
+ attributes.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
|
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
||||||
index 238e10a35a9e4b300b11c838cda39b8799f16fe2..a1b55bb5431d1712fc06da0cf06857a986efeea0 100644
|
index cb21da3cff4dbb08c7786c09b39e381abdf45c33..dfd408dc42a6000eb5fa56bbdb64f2329e545078 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
|
||||||
@@ -89,6 +89,7 @@ public class LevelConfigurations extends ConfigurationPart {
|
@@ -36,6 +36,7 @@ public class LevelConfigurations extends ConfigurationPart {
|
||||||
|
public int sensorTick = DO_OPTIMIZE ? 10 : 1;
|
||||||
|
|
||||||
public boolean reduceCreateRandomInstance = DO_OPTIMIZE;
|
public boolean ignoreUselessPackets = DO_OPTIMIZE;
|
||||||
public boolean checkSpectatorMovedToQuickly = DO_OPTIMIZE;
|
|
||||||
+ public boolean suppressErrorFromDirtyAttributes = false;
|
+ 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()) {
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: IPECTER <ipectert@gmail.com>
|
|
||||||
Date: Wed, 3 May 2023 16:51:49 +0900
|
|
||||||
Subject: [PATCH] Reduce Sensor Work
|
|
||||||
|
|
||||||
Original: Bloom-host/Petal
|
|
||||||
Copyright (C) 2023 peaches94
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
||||||
index b67660cda74a4754d1701e746aca99bde868c150..8dcc8ea2450ee14880e2ffff0f013ccee9b33e2f 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
||||||
@@ -1020,20 +1020,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
|
||||||
}
|
|
||||||
|
|
||||||
if (entity != null) {
|
|
||||||
- ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD);
|
|
||||||
+ // ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD); // Plazma - check head itemstack only when needed
|
|
||||||
EntityType<?> entitytypes = entity.getType();
|
|
||||||
|
|
||||||
// Purpur start
|
|
||||||
- if (entitytypes == EntityType.SKELETON && itemstack.is(Items.SKELETON_SKULL)) {
|
|
||||||
+ if (entitytypes == EntityType.SKELETON && this.getItemBySlot(EquipmentSlot.HEAD).is(Items.SKELETON_SKULL)) { // Plazma
|
|
||||||
d0 *= entity.level.purpurConfig.skeletonHeadVisibilityPercent;
|
|
||||||
}
|
|
||||||
- else if (entitytypes == EntityType.ZOMBIE && itemstack.is(Items.ZOMBIE_HEAD)) {
|
|
||||||
+ else if (entitytypes == EntityType.ZOMBIE && this.getItemBySlot(EquipmentSlot.HEAD).is(Items.ZOMBIE_HEAD)) { // Plazma
|
|
||||||
d0 *= entity.level.purpurConfig.zombieHeadVisibilityPercent;
|
|
||||||
}
|
|
||||||
- else if (entitytypes == EntityType.CREEPER && itemstack.is(Items.CREEPER_HEAD)) {
|
|
||||||
+ else if (entitytypes == EntityType.CREEPER && this.getItemBySlot(EquipmentSlot.HEAD).is(Items.CREEPER_HEAD)) { // Plazma
|
|
||||||
d0 *= entity.level.purpurConfig.creeperHeadVisibilityPercent;
|
|
||||||
}
|
|
||||||
- else if ((entitytypes == EntityType.PIGLIN || entitytypes == EntityType.PIGLIN_BRUTE) && itemstack.is(Items.PIGLIN_HEAD)) {
|
|
||||||
+ else if ((entitytypes == EntityType.PIGLIN || entitytypes == EntityType.PIGLIN_BRUTE) && this.getItemBySlot(EquipmentSlot.HEAD).is(Items.PIGLIN_HEAD)) { // Plazma
|
|
||||||
d0 *= entity.level.purpurConfig.piglinHeadVisibilityPercent;
|
|
||||||
}
|
|
||||||
// Purpur end
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: IPECTER <ipectert@gmail.com>
|
|
||||||
Date: Wed, 3 May 2023 16:51:49 +0900
|
|
||||||
Subject: [PATCH] Configurable Sensor Tick
|
|
||||||
|
|
||||||
Original: Bloom-host/Petal
|
|
||||||
Copyright (C) 2023 peaches94
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
|
||||||
index 8e2274f7dce34e0997356205cf96e46f8d41cca1..3a365d7efd439cb8ddb99381bd714fb48896f4d2 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
|
||||||
@@ -932,10 +932,10 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
|
||||||
}
|
|
||||||
// Paper end
|
|
||||||
//this.level.getProfiler().push("sensing"); // Purpur
|
|
||||||
- this.sensing.tick();
|
|
||||||
+ // Plazma - Configurable Sensor Tick
|
|
||||||
//this.level.getProfiler().pop(); // Purpur
|
|
||||||
int i = this.level.getServer().getTickCount() + this.getId();
|
|
||||||
-
|
|
||||||
+ if (i % this.level.plazmaLevelConfiguration().entity.sensor.tick == 0) this.sensing.tick(); // Plazma - Configurable Sensor Tick
|
|
||||||
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 e6c22ab535ab8fecaadbf06d4982440fd5863f17..185e2627596314d979188468f838d008442f2d2e 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
@@ -107,5 +107,12 @@ public class LevelConfigurations extends ConfigurationPart {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
+ public Sensor sensor;
|
|
||||||
+ public class Sensor extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+ public int tick = DO_OPTIMIZE ? 10 : 1;
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,78 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: IPECTER <ipectert@gmail.com>
|
|
||||||
Date: Sat, 6 May 2023 21:09:45 +0900
|
|
||||||
Subject: [PATCH] Variable-Entity-WakeUp-Duration
|
|
||||||
|
|
||||||
Original: GaleMC/Gale
|
|
||||||
Copyright (C) 2023 Martijn Muijsers
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
index 185e2627596314d979188468f838d008442f2d2e..238e10a35a9e4b300b11c838cda39b8799f16fe2 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
@@ -114,5 +114,20 @@ public class LevelConfigurations extends ConfigurationPart {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
+ public WakeUp wakeUp;
|
|
||||||
+ public class WakeUp extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+ public DurationVariance durationVariance;
|
|
||||||
+ public class DurationVariance extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+ public double animal = DO_OPTIMIZE ? 0.2 : 0.0;
|
|
||||||
+ public double monster = DO_OPTIMIZE ? 0.2 : 0.0;
|
|
||||||
+ public double flyingMonster = DO_OPTIMIZE ? 0.2 : 0.0;
|
|
||||||
+ public double villager = DO_OPTIMIZE ? 0.2 : 0.0;
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
|
||||||
index ee64ddb0da23ea1e54d0295324aca5b46a438111..d5230a360cd8c296303b494d716d33ad1fca6a96 100644
|
|
||||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
|
||||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
|
||||||
@@ -75,28 +75,36 @@ public class ActivationRange
|
|
||||||
if (entity.activationType == ActivationType.VILLAGER) {
|
|
||||||
if (inactiveFor > config.wakeUpInactiveVillagersEvery && world.wakeupInactiveRemainingVillagers > 0) {
|
|
||||||
world.wakeupInactiveRemainingVillagers--;
|
|
||||||
- return config.wakeUpInactiveVillagersFor;
|
|
||||||
+ return getWakeUpDurationWithVariance(config.wakeUpInactiveVillagersFor, entity.level.plazmaLevelConfiguration().entity.wakeUp.durationVariance.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, entity.level.plazmaLevelConfiguration().entity.wakeUp.durationVariance.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, entity.level.plazmaLevelConfiguration().entity.wakeUp.durationVariance.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, entity.level.plazmaLevelConfiguration().entity.wakeUp.durationVariance.monster); // Plazma - Variable Entity WakeUp Duration
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
// Paper end
|
|
||||||
|
|
||||||
+ // Plazma start - Variable Entity WakeUp Duration
|
|
||||||
+ private static final java.util.Random wakeUpDurationRandom = new java.util.Random();
|
|
||||||
+ private static int getWakeUpDurationWithVariance(int wakeUpDuration, double deviation) {
|
|
||||||
+ if (deviation <= 0) return wakeUpDuration;
|
|
||||||
+ return (int) Math.min(Integer.MAX_VALUE, Math.max(1, Math.round(wakeUpDuration * wakeUpDurationRandom.nextGaussian(1, deviation))));
|
|
||||||
+ }
|
|
||||||
+ // Plazma end
|
|
||||||
+
|
|
||||||
static AABB maxBB = new AABB( 0, 0, 0, 0, 0, 0 );
|
|
||||||
|
|
||||||
/**
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: IPECTER <ipectert@gmail.com>
|
|
||||||
Date: Thu, 18 May 2023 16:21:37 +0900
|
|
||||||
Subject: [PATCH] Let Me Despawn Configuration
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
index a1b55bb5431d1712fc06da0cf06857a986efeea0..116384c1fe27a868bcbe1d21f0b2723c73b9170c 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
@@ -131,4 +131,11 @@ public class LevelConfigurations extends ConfigurationPart {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ public LetMeDespawn letMeDespawn;
|
|
||||||
+ public class LetMeDespawn extends ConfigurationPart {
|
|
||||||
+
|
|
||||||
+ public boolean enabled = false;
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: IPECTER <ipectert@gmail.com>
|
|
||||||
Date: Thu, 18 May 2023 16:42:40 +0900
|
|
||||||
Subject: [PATCH] Implement Let Me Despawn
|
|
||||||
|
|
||||||
Original: frikinjay/let-me-despawn
|
|
||||||
Copyright (C) 2023 frikinjay
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
|
||||||
index 3a365d7efd439cb8ddb99381bd714fb48896f4d2..b6d27332eb151bdf408909b241c493da54841c8e 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
|
||||||
@@ -885,7 +885,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
|
||||||
public void checkDespawn() {
|
|
||||||
if (this.level.getDifficulty() == Difficulty.PEACEFUL && this.shouldDespawnInPeaceful()) {
|
|
||||||
this.discard();
|
|
||||||
- } else if (!this.isPersistenceRequired() && !this.requiresCustomPersistence()) {
|
|
||||||
+ } else if ((this.level.plazmaLevelConfiguration().letMeDespawn.enabled || !this.isPersistenceRequired()) && !this.requiresCustomPersistence()) {
|
|
||||||
// Paper start - optimise checkDespawn
|
|
||||||
Player entityhuman = this.level.findNearbyPlayer(this, level.paperConfig().entities.spawning.despawnRanges.get(this.getType().getCategory()).hard() + 1, EntitySelector.PLAYER_AFFECTS_SPAWNING); // Paper
|
|
||||||
if (entityhuman == null) {
|
|
||||||
@@ -899,14 +899,14 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
|
||||||
int j = i * i;
|
|
||||||
|
|
||||||
if (d0 > (double) j && this.removeWhenFarAway(d0)) {
|
|
||||||
- this.discard();
|
|
||||||
+ this.dropEquipmentOnDespawn(); this.discard(); // Plazma - Let Me Despawn
|
|
||||||
}
|
|
||||||
|
|
||||||
int k = this.level.paperConfig().entities.spawning.despawnRanges.get(this.getType().getCategory()).soft(); // Paper - custom despawn distances
|
|
||||||
int l = k * k;
|
|
||||||
|
|
||||||
if (this.noActionTime > 600 && this.random.nextInt(800) == 0 && d0 > (double) l && this.removeWhenFarAway(d0)) {
|
|
||||||
- this.discard();
|
|
||||||
+ this.dropEquipmentOnDespawn(); this.discard(); // Plazma - Let Me Despawn
|
|
||||||
} else if (d0 < (double) l) {
|
|
||||||
this.noActionTime = 0;
|
|
||||||
}
|
|
||||||
@@ -917,6 +917,19 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Plazma start - Let Me Despawn
|
|
||||||
+ private void dropEquipmentOnDespawn() {
|
|
||||||
+ if (!this.level.plazmaLevelConfiguration().letMeDespawn.dropPickedUpItem()) return;
|
|
||||||
+ for (EquipmentSlot equipmentSlot : EquipmentSlot.values()) {
|
|
||||||
+ ItemStack itemStack = this.getItemBySlot(equipmentSlot);
|
|
||||||
+ if (!itemStack.isEmpty() && !EnchantmentHelper.hasVanishingCurse(itemStack)) {
|
|
||||||
+ this.spawnAtLocation(itemStack);
|
|
||||||
+ this.setItemSlot(equipmentSlot, ItemStack.EMPTY);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ // Plazma end
|
|
||||||
+
|
|
||||||
@Override
|
|
||||||
protected final void serverAiStep() {
|
|
||||||
++this.noActionTime;
|
|
||||||
diff --git a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
index 116384c1fe27a868bcbe1d21f0b2723c73b9170c..97ffcd1c0e50ab21756404a483fa8d1f4b6579b1 100644
|
|
||||||
--- a/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
+++ b/src/main/java/org/plazmamc/plazma/configurations/LevelConfigurations.java
|
|
||||||
@@ -136,6 +136,11 @@ public class LevelConfigurations extends ConfigurationPart {
|
|
||||||
public class LetMeDespawn extends ConfigurationPart {
|
|
||||||
|
|
||||||
public boolean enabled = false;
|
|
||||||
+ boolean dropPickedUpItem = true;
|
|
||||||
+
|
|
||||||
+ public boolean dropPickedUpItem() {
|
|
||||||
+ return enabled && dropPickedUpItem;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -6,10 +6,16 @@ Subject: [PATCH] Optimize VarInts
|
|||||||
https://github.com/PaperMC/Paper/pull/8418
|
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
|
diff --git a/src/main/java/net/minecraft/network/FriendlyByteBuf.java b/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
||||||
index c0bd2997fe3ebbfe926de832a36d209cc875f3e2..6108f3aa438b96e817c3a2e582c2c817f096e2eb 100644
|
index c0bd2997fe3ebbfe926de832a36d209cc875f3e2..8bb552410207b39a3b4160a5df51410455107fcf 100644
|
||||||
--- a/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
--- a/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
||||||
+++ b/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
+++ b/src/main/java/net/minecraft/network/FriendlyByteBuf.java
|
||||||
@@ -104,7 +104,20 @@ public class FriendlyByteBuf extends ByteBuf {
|
@@ -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;
|
this.source = parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -24,18 +30,18 @@ index c0bd2997fe3ebbfe926de832a36d209cc875f3e2..6108f3aa438b96e817c3a2e582c2c817
|
|||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
public static int getVarIntSize(int value) {
|
public static int getVarIntSize(int value) {
|
||||||
+ // Plazma start - Optimize VarInts
|
+ // Plazma start - Optimize VarInts
|
||||||
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.optimizeVarInts)
|
+ if (optimizeVarInts)
|
||||||
+ return VARINT_EXACT_BYTE_LENGTHS[Integer.numberOfLeadingZeros(value)];
|
+ return VARINT_EXACT_BYTE_LENGTHS[Integer.numberOfLeadingZeros(value)];
|
||||||
+ // Plazma end
|
+ // Plazma end
|
||||||
for (int j = 1; j < 5; ++j) {
|
for (int j = 1; j < 5; ++j) {
|
||||||
if ((value & -1 << j * 7) == 0) {
|
if ((value & -1 << j * 7) == 0) {
|
||||||
return j;
|
return j;
|
||||||
@@ -620,6 +633,25 @@ public class FriendlyByteBuf extends ByteBuf {
|
@@ -620,6 +634,25 @@ public class FriendlyByteBuf extends ByteBuf {
|
||||||
}
|
}
|
||||||
|
|
||||||
public FriendlyByteBuf writeVarInt(int value) {
|
public FriendlyByteBuf writeVarInt(int value) {
|
||||||
+ // Plazma start - Optimize VarInts
|
+ // Plazma start - Optimize VarInts
|
||||||
+ if (org.plazmamc.plazma.configurations.GlobalConfiguration.get().misc.optimizeVarInts) {
|
+ if (optimizeVarInts) {
|
||||||
+ // Peel the one and two byte count cases explicitly as they are the most common VarInt sizes
|
+ // 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.
|
+ // that the proxy will write, to improve inlining.
|
||||||
+ if ((value & (0xFFFFFFFF << 7)) == 0) {
|
+ if ((value & (0xFFFFFFFF << 7)) == 0) {
|
||||||
@@ -57,14 +63,25 @@ index c0bd2997fe3ebbfe926de832a36d209cc875f3e2..6108f3aa438b96e817c3a2e582c2c817
|
|||||||
this.writeByte(value & 127 | 128);
|
this.writeByte(value & 127 | 128);
|
||||||
value >>>= 7;
|
value >>>= 7;
|
||||||
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 39eca4acefa8f9cf143398cfc6cf157e8489947e..754ed13a04631c69e3fb2421a12b17d0a6f732c6 100644
|
index b2c9ac1947e6c9ad0e693cfeaf6f2f4bfd521aa0..525fe30b6abba295709fca3d10f9b24679112571 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
|
||||||
@@ -42,6 +42,7 @@ public class GlobalConfiguration extends ConfigurationPart {
|
@@ -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 reduceCreateRandomInstance = DO_OPTIMIZE;
|
||||||
public boolean doNotTriggerLootTableRefreshForNonPlayerInteraction = DO_OPTIMIZE;
|
public boolean doNotTriggerLootTableRefreshForNonPlayerInteraction = DO_OPTIMIZE;
|
||||||
public boolean doNotSendUselessEntityPackets = DO_OPTIMIZE;
|
public boolean doNotSendUselessEntityPackets = DO_OPTIMIZE;
|
||||||
+ public boolean optimizeVarInts = DO_OPTIMIZE;
|
+ public boolean optimizeVarInts = DO_OPTIMIZE;
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public void postProcess() {
|
||||||
|
+ net.minecraft.network.FriendlyByteBuf.optimizeVarInts = optimizeVarInts;
|
||||||
|
+ }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7,10 +7,10 @@ Original: malte0811/FerriteCore
|
|||||||
Copyright (C) 2023 malte0811
|
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
|
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 bee42ce7c1cb0f5ebd4890c02bc9c5dd727f7fd6..22f194956640b88c1d060b732e517f85d9091cf6 100644
|
index 942ce713afe27ec75d849877a88721ef6334fafa..595771af13659fcb365fd3f088762dc01964842f 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||||
@@ -737,6 +737,12 @@ public abstract class BlockBehaviour implements FeatureElement {
|
@@ -789,6 +789,12 @@ public abstract class BlockBehaviour implements FeatureElement {
|
||||||
protected BlockBehaviour.BlockStateBase.Cache cache;
|
protected BlockBehaviour.BlockStateBase.Cache cache;
|
||||||
private FluidState fluidState;
|
private FluidState fluidState;
|
||||||
private boolean isRandomlyTicking;
|
private boolean isRandomlyTicking;
|
||||||
@@ -23,7 +23,7 @@ index bee42ce7c1cb0f5ebd4890c02bc9c5dd727f7fd6..22f194956640b88c1d060b732e517f85
|
|||||||
|
|
||||||
protected BlockStateBase(Block block, ImmutableMap<Property<?>, Comparable<?>> propertyMap, MapCodec<BlockState> codec) {
|
protected BlockStateBase(Block block, ImmutableMap<Property<?>, Comparable<?>> propertyMap, MapCodec<BlockState> codec) {
|
||||||
super(block, propertyMap, codec);
|
super(block, propertyMap, codec);
|
||||||
@@ -795,6 +801,7 @@ public abstract class BlockBehaviour implements FeatureElement {
|
@@ -871,6 +877,7 @@ public abstract class BlockBehaviour implements FeatureElement {
|
||||||
// Paper end
|
// Paper end
|
||||||
|
|
||||||
public void initCache() {
|
public void initCache() {
|
||||||
@@ -31,7 +31,7 @@ index bee42ce7c1cb0f5ebd4890c02bc9c5dd727f7fd6..22f194956640b88c1d060b732e517f85
|
|||||||
this.fluidState = ((Block) this.owner).getFluidState(this.asState());
|
this.fluidState = ((Block) this.owner).getFluidState(this.asState());
|
||||||
this.isRandomlyTicking = ((Block) this.owner).isRandomlyTicking(this.asState());
|
this.isRandomlyTicking = ((Block) this.owner).isRandomlyTicking(this.asState());
|
||||||
if (!this.getBlock().hasDynamicShape()) {
|
if (!this.getBlock().hasDynamicShape()) {
|
||||||
@@ -832,7 +839,61 @@ public abstract class BlockBehaviour implements FeatureElement {
|
@@ -909,7 +916,61 @@ public abstract class BlockBehaviour implements FeatureElement {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -93,7 +93,7 @@ index bee42ce7c1cb0f5ebd4890c02bc9c5dd727f7fd6..22f194956640b88c1d060b732e517f85
|
|||||||
|
|
||||||
public Block getBlock() {
|
public Block getBlock() {
|
||||||
return (Block) this.owner;
|
return (Block) this.owner;
|
||||||
@@ -1205,10 +1266,10 @@ public abstract class BlockBehaviour implements FeatureElement {
|
@@ -1305,10 +1366,10 @@ public abstract class BlockBehaviour implements FeatureElement {
|
||||||
final boolean propagatesSkylightDown;
|
final boolean propagatesSkylightDown;
|
||||||
final int lightBlock;
|
final int lightBlock;
|
||||||
@Nullable
|
@Nullable
|
||||||
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 a45ff31d08129c0d5f159615d934a4450d54146e..59b9b268467b098e5c21d1d00f599cfb36154179 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
|
||||||
@@ -34,5 +34,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