mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Add back Pufferfish patches
This commit is contained in:
523
patches/api/0001-Pufferfish-API-Changes.patch
Normal file
523
patches/api/0001-Pufferfish-API-Changes.patch
Normal file
@@ -0,0 +1,523 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kevin Raneri <kevin.raneri@gmail.com>
|
||||||
|
Date: Tue, 9 Nov 2021 14:01:56 -0500
|
||||||
|
Subject: [PATCH] Pufferfish API Changes
|
||||||
|
|
||||||
|
Pufferfish
|
||||||
|
Copyright (C) 2022 Pufferfish Studios LLC
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
|
index 3c4dd6ebc2289c44c2f5723e7920aadffdc51884..a995ecc3b1d6181c58d5b4a0a6a893178bdc40aa 100644
|
||||||
|
--- a/build.gradle.kts
|
||||||
|
+++ b/build.gradle.kts
|
||||||
|
@@ -41,6 +41,7 @@ dependencies {
|
||||||
|
apiAndDocs("net.kyori:adventure-text-logger-slf4j")
|
||||||
|
api("org.apache.logging.log4j:log4j-api:2.17.1")
|
||||||
|
api("org.slf4j:slf4j-api:1.8.0-beta4")
|
||||||
|
+ api("io.sentry:sentry:5.4.0") // Pufferfish
|
||||||
|
|
||||||
|
implementation("org.ow2.asm:asm:9.2")
|
||||||
|
implementation("org.ow2.asm:asm-commons:9.2")
|
||||||
|
@@ -83,6 +84,13 @@ val generateApiVersioningFile by tasks.registering {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+// Pufferfish Start
|
||||||
|
+tasks.withType<JavaCompile> {
|
||||||
|
+ val compilerArgs = options.compilerArgs
|
||||||
|
+ compilerArgs.add("--add-modules=jdk.incubator.vector")
|
||||||
|
+}
|
||||||
|
+// Pufferfish End
|
||||||
|
+
|
||||||
|
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
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000000000000000000000000000000000..10310fdd53de28efb8a8250f6d3b0c8eb08fb68a
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/main/java/gg/pufferfish/pufferfish/sentry/SentryContext.java
|
||||||
|
@@ -0,0 +1,161 @@
|
||||||
|
+package gg.pufferfish.pufferfish.sentry;
|
||||||
|
+
|
||||||
|
+import com.google.gson.Gson;
|
||||||
|
+import java.lang.reflect.Field;
|
||||||
|
+import java.lang.reflect.Modifier;
|
||||||
|
+import java.util.Map;
|
||||||
|
+import java.util.TreeMap;
|
||||||
|
+import org.apache.logging.log4j.ThreadContext;
|
||||||
|
+import org.bukkit.command.Command;
|
||||||
|
+import org.bukkit.command.CommandSender;
|
||||||
|
+import org.bukkit.entity.Player;
|
||||||
|
+import org.bukkit.event.Event;
|
||||||
|
+import org.bukkit.event.player.PlayerEvent;
|
||||||
|
+import org.bukkit.plugin.Plugin;
|
||||||
|
+import org.bukkit.plugin.RegisteredListener;
|
||||||
|
+import org.jetbrains.annotations.Nullable;
|
||||||
|
+
|
||||||
|
+public class SentryContext {
|
||||||
|
+
|
||||||
|
+ private static final Gson GSON = new Gson();
|
||||||
|
+
|
||||||
|
+ public static void setPluginContext(@Nullable Plugin plugin) {
|
||||||
|
+ if (plugin != null) {
|
||||||
|
+ ThreadContext.put("pufferfishsentry_pluginname", plugin.getName());
|
||||||
|
+ ThreadContext.put("pufferfishsentry_pluginversion", plugin.getDescription().getVersion());
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public static void removePluginContext() {
|
||||||
|
+ ThreadContext.remove("pufferfishsentry_pluginname");
|
||||||
|
+ ThreadContext.remove("pufferfishsentry_pluginversion");
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public static void setSenderContext(@Nullable CommandSender sender) {
|
||||||
|
+ if (sender != null) {
|
||||||
|
+ ThreadContext.put("pufferfishsentry_playername", sender.getName());
|
||||||
|
+ if (sender instanceof Player player) {
|
||||||
|
+ ThreadContext.put("pufferfishsentry_playerid", player.getUniqueId().toString());
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public static void removeSenderContext() {
|
||||||
|
+ ThreadContext.remove("pufferfishsentry_playername");
|
||||||
|
+ ThreadContext.remove("pufferfishsentry_playerid");
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public static void setEventContext(Event event, RegisteredListener registration) {
|
||||||
|
+ setPluginContext(registration.getPlugin());
|
||||||
|
+
|
||||||
|
+ try {
|
||||||
|
+ // Find the player that was involved with this event
|
||||||
|
+ Player player = null;
|
||||||
|
+ if (event instanceof PlayerEvent) {
|
||||||
|
+ player = ((PlayerEvent) event).getPlayer();
|
||||||
|
+ } else {
|
||||||
|
+ Class<? extends Event> eventClass = event.getClass();
|
||||||
|
+
|
||||||
|
+ Field playerField = null;
|
||||||
|
+
|
||||||
|
+ for (Field field : eventClass.getDeclaredFields()) {
|
||||||
|
+ if (field.getType().equals(Player.class)) {
|
||||||
|
+ playerField = field;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (playerField != null) {
|
||||||
|
+ playerField.setAccessible(true);
|
||||||
|
+ player = (Player) playerField.get(event);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (player != null) {
|
||||||
|
+ setSenderContext(player);
|
||||||
|
+ }
|
||||||
|
+ } catch (Exception e) {} // We can't really safely log exceptions.
|
||||||
|
+
|
||||||
|
+ ThreadContext.put("pufferfishsentry_eventdata", GSON.toJson(serializeFields(event)));
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public static void removeEventContext() {
|
||||||
|
+ removePluginContext();
|
||||||
|
+ removeSenderContext();
|
||||||
|
+ ThreadContext.remove("pufferfishsentry_eventdata");
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ private static Map<String, String> serializeFields(Object object) {
|
||||||
|
+ Map<String, String> fields = new TreeMap<>();
|
||||||
|
+ fields.put("_class", object.getClass().getName());
|
||||||
|
+ for (Field declaredField : object.getClass().getDeclaredFields()) {
|
||||||
|
+ try {
|
||||||
|
+ if (Modifier.isStatic(declaredField.getModifiers())) {
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ String fieldName = declaredField.getName();
|
||||||
|
+ if (fieldName.equals("handlers")) {
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+ declaredField.setAccessible(true);
|
||||||
|
+ Object value = declaredField.get(object);
|
||||||
|
+ if (value != null) {
|
||||||
|
+ fields.put(fieldName, value.toString());
|
||||||
|
+ } else {
|
||||||
|
+ fields.put(fieldName, "<null>");
|
||||||
|
+ }
|
||||||
|
+ } catch (Exception e) {} // We can't really safely log exceptions.
|
||||||
|
+ }
|
||||||
|
+ return fields;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public static class State {
|
||||||
|
+
|
||||||
|
+ private Plugin plugin;
|
||||||
|
+ private Command command;
|
||||||
|
+ private String commandLine;
|
||||||
|
+ private Event event;
|
||||||
|
+ private RegisteredListener registeredListener;
|
||||||
|
+
|
||||||
|
+ public Plugin getPlugin() {
|
||||||
|
+ return plugin;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void setPlugin(Plugin plugin) {
|
||||||
|
+ this.plugin = plugin;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public Command getCommand() {
|
||||||
|
+ return command;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void setCommand(Command command) {
|
||||||
|
+ this.command = command;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public String getCommandLine() {
|
||||||
|
+ return commandLine;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void setCommandLine(String commandLine) {
|
||||||
|
+ this.commandLine = commandLine;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public Event getEvent() {
|
||||||
|
+ return event;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void setEvent(Event event) {
|
||||||
|
+ this.event = event;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public RegisteredListener getRegisteredListener() {
|
||||||
|
+ return registeredListener;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void setRegisteredListener(RegisteredListener registeredListener) {
|
||||||
|
+ this.registeredListener = registeredListener;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
diff --git a/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000000000000000000000000000000000..93f5d7ca36e043e6c0f959450d38e6946b348eaf
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java
|
||||||
|
@@ -0,0 +1,40 @@
|
||||||
|
+package gg.pufferfish.pufferfish.simd;
|
||||||
|
+
|
||||||
|
+import java.util.logging.Level;
|
||||||
|
+import java.util.logging.Logger;
|
||||||
|
+import jdk.incubator.vector.FloatVector;
|
||||||
|
+import jdk.incubator.vector.IntVector;
|
||||||
|
+import jdk.incubator.vector.VectorSpecies;
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * Basically, java is annoying and we have to push this out to its own class.
|
||||||
|
+ */
|
||||||
|
+@Deprecated
|
||||||
|
+public class SIMDChecker {
|
||||||
|
+
|
||||||
|
+ @Deprecated
|
||||||
|
+ public static boolean canEnable(Logger logger) {
|
||||||
|
+ try {
|
||||||
|
+ if (SIMDDetection.getJavaVersion() != 17 && SIMDDetection.getJavaVersion() != 18) {
|
||||||
|
+ return false;
|
||||||
|
+ } else {
|
||||||
|
+ SIMDDetection.testRun = true;
|
||||||
|
+
|
||||||
|
+ VectorSpecies<Integer> ISPEC = IntVector.SPECIES_PREFERRED;
|
||||||
|
+ VectorSpecies<Float> FSPEC = FloatVector.SPECIES_PREFERRED;
|
||||||
|
+
|
||||||
|
+ logger.log(Level.INFO, "Max SIMD vector size on this system is " + ISPEC.vectorBitSize() + " bits (int)");
|
||||||
|
+ logger.log(Level.INFO, "Max SIMD vector size on this system is " + FSPEC.vectorBitSize() + " bits (float)");
|
||||||
|
+
|
||||||
|
+ if (ISPEC.elementSize() < 2 || FSPEC.elementSize() < 2) {
|
||||||
|
+ logger.log(Level.WARNING, "SIMD is not properly supported on this system!");
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return true;
|
||||||
|
+ }
|
||||||
|
+ } catch (NoClassDefFoundError | Exception ignored) {} // Basically, we don't do anything. This lets us detect if it's not functional and disable it.
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+}
|
||||||
|
diff --git a/src/main/java/gg/pufferfish/pufferfish/simd/SIMDDetection.java b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDDetection.java
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000000000000000000000000000000000..a84889d3e9cfc4d7ab5f867820a6484c6070711b
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDDetection.java
|
||||||
|
@@ -0,0 +1,35 @@
|
||||||
|
+package gg.pufferfish.pufferfish.simd;
|
||||||
|
+
|
||||||
|
+import java.util.logging.Logger;
|
||||||
|
+
|
||||||
|
+@Deprecated
|
||||||
|
+public class SIMDDetection {
|
||||||
|
+
|
||||||
|
+ public static boolean isEnabled = false;
|
||||||
|
+ public static boolean versionLimited = false;
|
||||||
|
+ public static boolean testRun = false;
|
||||||
|
+
|
||||||
|
+ @Deprecated
|
||||||
|
+ public static boolean canEnable(Logger logger) {
|
||||||
|
+ try {
|
||||||
|
+ return SIMDChecker.canEnable(logger);
|
||||||
|
+ } catch (NoClassDefFoundError | Exception ignored) {
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Deprecated
|
||||||
|
+ public static int getJavaVersion() {
|
||||||
|
+ // https://stackoverflow.com/a/2591122
|
||||||
|
+ String version = System.getProperty("java.version");
|
||||||
|
+ if(version.startsWith("1.")) {
|
||||||
|
+ version = version.substring(2, 3);
|
||||||
|
+ } else {
|
||||||
|
+ int dot = version.indexOf(".");
|
||||||
|
+ if(dot != -1) { version = version.substring(0, dot); }
|
||||||
|
+ }
|
||||||
|
+ version = version.split("-")[0]; // Azul is stupid
|
||||||
|
+ return Integer.parseInt(version);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+}
|
||||||
|
diff --git a/src/main/java/gg/pufferfish/pufferfish/simd/VectorMapPalette.java b/src/main/java/gg/pufferfish/pufferfish/simd/VectorMapPalette.java
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000000000000000000000000000000000..ae2464920c9412ac90b819a540ee58be0741465f
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/main/java/gg/pufferfish/pufferfish/simd/VectorMapPalette.java
|
||||||
|
@@ -0,0 +1,83 @@
|
||||||
|
+package gg.pufferfish.pufferfish.simd;
|
||||||
|
+
|
||||||
|
+import java.awt.Color;
|
||||||
|
+import jdk.incubator.vector.FloatVector;
|
||||||
|
+import jdk.incubator.vector.IntVector;
|
||||||
|
+import jdk.incubator.vector.VectorMask;
|
||||||
|
+import jdk.incubator.vector.VectorSpecies;
|
||||||
|
+import org.bukkit.map.MapPalette;
|
||||||
|
+
|
||||||
|
+@Deprecated
|
||||||
|
+public class VectorMapPalette {
|
||||||
|
+
|
||||||
|
+ private static final VectorSpecies<Integer> I_SPEC = IntVector.SPECIES_PREFERRED;
|
||||||
|
+ private static final VectorSpecies<Float> F_SPEC = FloatVector.SPECIES_PREFERRED;
|
||||||
|
+
|
||||||
|
+ @Deprecated
|
||||||
|
+ public static void matchColorVectorized(int[] in, byte[] out) {
|
||||||
|
+ int speciesLength = I_SPEC.length();
|
||||||
|
+ int i;
|
||||||
|
+ for (i = 0; i < in.length - speciesLength; i += speciesLength) {
|
||||||
|
+ float[] redsArr = new float[speciesLength];
|
||||||
|
+ float[] bluesArr = new float[speciesLength];
|
||||||
|
+ float[] greensArr = new float[speciesLength];
|
||||||
|
+ int[] alphasArr = new int[speciesLength];
|
||||||
|
+
|
||||||
|
+ for (int j = 0; j < speciesLength; j++) {
|
||||||
|
+ alphasArr[j] = (in[i + j] >> 24) & 0xFF;
|
||||||
|
+ redsArr[j] = (in[i + j] >> 16) & 0xFF;
|
||||||
|
+ greensArr[j] = (in[i + j] >> 8) & 0xFF;
|
||||||
|
+ bluesArr[j] = (in[i + j] >> 0) & 0xFF;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ IntVector alphas = IntVector.fromArray(I_SPEC, alphasArr, 0);
|
||||||
|
+ FloatVector reds = FloatVector.fromArray(F_SPEC, redsArr, 0);
|
||||||
|
+ FloatVector greens = FloatVector.fromArray(F_SPEC, greensArr, 0);
|
||||||
|
+ FloatVector blues = FloatVector.fromArray(F_SPEC, bluesArr, 0);
|
||||||
|
+ IntVector resultIndex = IntVector.zero(I_SPEC);
|
||||||
|
+ VectorMask<Integer> modificationMask = VectorMask.fromLong(I_SPEC, 0xffffffff);
|
||||||
|
+
|
||||||
|
+ modificationMask = modificationMask.and(alphas.lt(128).not());
|
||||||
|
+ FloatVector bestDistances = FloatVector.broadcast(F_SPEC, Float.MAX_VALUE);
|
||||||
|
+
|
||||||
|
+ for (int c = 4; c < MapPalette.colors.length; c++) {
|
||||||
|
+ // We're using 32-bit floats here because it's 2x faster and nobody will know the difference.
|
||||||
|
+ // For correctness, the original algorithm uses 64-bit floats instead. Completely unnecessary.
|
||||||
|
+ FloatVector compReds = FloatVector.broadcast(F_SPEC, MapPalette.colors[c].getRed());
|
||||||
|
+ FloatVector compGreens = FloatVector.broadcast(F_SPEC, MapPalette.colors[c].getGreen());
|
||||||
|
+ FloatVector compBlues = FloatVector.broadcast(F_SPEC, MapPalette.colors[c].getBlue());
|
||||||
|
+
|
||||||
|
+ FloatVector rMean = reds.add(compReds).div(2.0f);
|
||||||
|
+ FloatVector rDiff = reds.sub(compReds);
|
||||||
|
+ FloatVector gDiff = greens.sub(compGreens);
|
||||||
|
+ FloatVector bDiff = blues.sub(compBlues);
|
||||||
|
+
|
||||||
|
+ FloatVector weightR = rMean.div(256.0f).add(2);
|
||||||
|
+ FloatVector weightG = FloatVector.broadcast(F_SPEC, 4.0f);
|
||||||
|
+ FloatVector weightB = FloatVector.broadcast(F_SPEC, 255.0f).sub(rMean).div(256.0f).add(2.0f);
|
||||||
|
+
|
||||||
|
+ FloatVector distance = weightR.mul(rDiff).mul(rDiff).add(weightG.mul(gDiff).mul(gDiff)).add(weightB.mul(bDiff).mul(bDiff));
|
||||||
|
+
|
||||||
|
+ // Now we compare to the best distance we've found.
|
||||||
|
+ // This mask contains a "1" if better, and a "0" otherwise.
|
||||||
|
+ VectorMask<Float> bestDistanceMask = distance.lt(bestDistances);
|
||||||
|
+ bestDistances = bestDistances.blend(distance, bestDistanceMask); // Update the best distances
|
||||||
|
+
|
||||||
|
+ // Update the result array
|
||||||
|
+ // We also AND with the modification mask because we don't want to interfere if the alpha value isn't large enough.
|
||||||
|
+ resultIndex = resultIndex.blend(c, bestDistanceMask.cast(I_SPEC).and(modificationMask)); // Update the results
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ for (int j = 0; j < speciesLength; j++) {
|
||||||
|
+ int index = resultIndex.lane(j);
|
||||||
|
+ out[i + j] = (byte) (index < 128 ? index : -129 + (index - 127));
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // For the final ones, fall back to the regular method
|
||||||
|
+ for (; i < in.length; i++) {
|
||||||
|
+ out[i] = MapPalette.matchColor(new Color(in[i], true));
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+}
|
||||||
|
diff --git a/src/main/java/org/bukkit/map/MapPalette.java b/src/main/java/org/bukkit/map/MapPalette.java
|
||||||
|
index 3a9aaca2e76411a9c27f9f5e0f22d060d5a66d06..9584e245144b561b4f6745b2f26a4f69a6f92891 100644
|
||||||
|
--- a/src/main/java/org/bukkit/map/MapPalette.java
|
||||||
|
+++ b/src/main/java/org/bukkit/map/MapPalette.java
|
||||||
|
@@ -1,6 +1,7 @@
|
||||||
|
package org.bukkit.map;
|
||||||
|
|
||||||
|
import com.google.common.base.Preconditions;
|
||||||
|
+import gg.pufferfish.pufferfish.simd.SIMDDetection; // Pufferfish
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Graphics2D;
|
||||||
|
import java.awt.Image;
|
||||||
|
@@ -40,7 +41,7 @@ public final class MapPalette {
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
- static final Color[] colors = {
|
||||||
|
+ public static final Color[] colors = { // Pufferfish - public access
|
||||||
|
c(0, 0, 0, 0), c(0, 0, 0, 0), c(0, 0, 0, 0), c(0, 0, 0, 0),
|
||||||
|
c(89, 125, 39), c(109, 153, 48), c(127, 178, 56), c(67, 94, 29),
|
||||||
|
c(174, 164, 115), c(213, 201, 140), c(247, 233, 163), c(130, 123, 86),
|
||||||
|
@@ -211,9 +212,15 @@ public final class MapPalette {
|
||||||
|
temp.getRGB(0, 0, temp.getWidth(), temp.getHeight(), pixels, 0, temp.getWidth());
|
||||||
|
|
||||||
|
byte[] result = new byte[temp.getWidth() * temp.getHeight()];
|
||||||
|
+ // Pufferfish start
|
||||||
|
+ if (!SIMDDetection.isEnabled) {
|
||||||
|
for (int i = 0; i < pixels.length; i++) {
|
||||||
|
result[i] = matchColor(new Color(pixels[i], true));
|
||||||
|
}
|
||||||
|
+ } else {
|
||||||
|
+ gg.pufferfish.pufferfish.simd.VectorMapPalette.matchColorVectorized(pixels, result);
|
||||||
|
+ }
|
||||||
|
+ // Pufferfish end
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
||||||
|
index b012ce40d82389c29d1b841ff685425ac10a7f9e..c077e7c883613fcb6e559b4e4776e794caa3b363 100644
|
||||||
|
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
||||||
|
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
||||||
|
@@ -625,7 +625,9 @@ public final class SimplePluginManager implements PluginManager {
|
||||||
|
|
||||||
|
// Paper start
|
||||||
|
private void handlePluginException(String msg, Throwable ex, Plugin plugin) {
|
||||||
|
+ gg.pufferfish.pufferfish.sentry.SentryContext.setPluginContext(plugin); // Pufferfish
|
||||||
|
server.getLogger().log(Level.SEVERE, msg, ex);
|
||||||
|
+ gg.pufferfish.pufferfish.sentry.SentryContext.removePluginContext(); // Pufferfish
|
||||||
|
callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerPluginEnableDisableException(msg, ex, plugin)));
|
||||||
|
}
|
||||||
|
// Paper end
|
||||||
|
@@ -684,9 +686,11 @@ public final class SimplePluginManager implements PluginManager {
|
||||||
|
));
|
||||||
|
}
|
||||||
|
} catch (Throwable ex) {
|
||||||
|
+ gg.pufferfish.pufferfish.sentry.SentryContext.setEventContext(event, registration); // Pufferfish
|
||||||
|
// Paper start - error reporting
|
||||||
|
String msg = "Could not pass event " + event.getEventName() + " to " + registration.getPlugin().getDescription().getFullName();
|
||||||
|
server.getLogger().log(Level.SEVERE, msg, ex);
|
||||||
|
+ gg.pufferfish.pufferfish.sentry.SentryContext.removeEventContext(); // Pufferfish
|
||||||
|
if (!(event instanceof com.destroystokyo.paper.event.server.ServerExceptionEvent)) { // We don't want to cause an endless event loop
|
||||||
|
callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerEventException(msg, ex, registration.getPlugin(), registration.getListener(), event)));
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
|
||||||
|
index 7e5149a21b6747f64425a277c142e69f0ef43b3f..bf93183aa76af005d5daf8cf533f908d535166e8 100644
|
||||||
|
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
|
||||||
|
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
|
||||||
|
@@ -370,7 +370,9 @@ public final class JavaPluginLoader implements PluginLoader {
|
||||||
|
try {
|
||||||
|
jPlugin.setEnabled(true);
|
||||||
|
} catch (Throwable ex) {
|
||||||
|
+ gg.pufferfish.pufferfish.sentry.SentryContext.setPluginContext(plugin); // Pufferfish
|
||||||
|
server.getLogger().log(Level.SEVERE, "Error occurred while enabling " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex);
|
||||||
|
+ gg.pufferfish.pufferfish.sentry.SentryContext.removePluginContext(); // Pufferfish
|
||||||
|
// Paper start - Disable plugins that fail to load
|
||||||
|
this.server.getPluginManager().disablePlugin(jPlugin);
|
||||||
|
return;
|
||||||
|
@@ -399,7 +401,9 @@ public final class JavaPluginLoader implements PluginLoader {
|
||||||
|
try {
|
||||||
|
jPlugin.setEnabled(false);
|
||||||
|
} catch (Throwable ex) {
|
||||||
|
+ gg.pufferfish.pufferfish.sentry.SentryContext.setPluginContext(plugin); // Pufferfish
|
||||||
|
server.getLogger().log(Level.SEVERE, "Error occurred while disabling " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex);
|
||||||
|
+ gg.pufferfish.pufferfish.sentry.SentryContext.removePluginContext(); // Pufferfish
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cloader instanceof PluginClassLoader) {
|
||||||
|
diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
||||||
|
index cb3c25ef46b279ffdde87f47f729eb8aa7549c1c..6fb179c4d420eac3a6399fbff104b5af6ba448ba 100644
|
||||||
|
--- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
||||||
|
+++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
||||||
|
@@ -46,6 +46,8 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
|
||||||
|
private final Set<String> seenIllegalAccess = Collections.newSetFromMap(new ConcurrentHashMap<>());
|
||||||
|
private java.util.logging.Logger logger; // Paper - add field
|
||||||
|
|
||||||
|
+ private boolean closed = false; // Pufferfish
|
||||||
|
+
|
||||||
|
static {
|
||||||
|
ClassLoader.registerAsParallelCapable();
|
||||||
|
}
|
||||||
|
@@ -177,6 +179,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
|
||||||
|
throw new ClassNotFoundException(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ public boolean _airplane_hasClass(@NotNull String name) { return this.classes.containsKey(name); } // Pufferfish
|
||||||
|
@Override
|
||||||
|
protected Class<?> findClass(String name) throws ClassNotFoundException {
|
||||||
|
if (name.startsWith("org.bukkit.") || name.startsWith("net.minecraft.")) {
|
||||||
|
@@ -184,7 +187,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
|
||||||
|
}
|
||||||
|
Class<?> result = classes.get(name);
|
||||||
|
|
||||||
|
- if (result == null) {
|
||||||
|
+ if (result == null && !this.closed) { // Pufferfish
|
||||||
|
String path = name.replace('.', '/').concat(".class");
|
||||||
|
JarEntry entry = jar.getJarEntry(path);
|
||||||
|
|
||||||
|
@@ -231,6 +234,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
|
||||||
|
classes.put(name, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (result == null) throw new ClassNotFoundException(name); // Pufferfish
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -239,6 +243,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
|
||||||
|
try {
|
||||||
|
super.close();
|
||||||
|
} finally {
|
||||||
|
+ this.closed = true; // Pufferfish
|
||||||
|
jar.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Build System Changes
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
index f6da2209c9853bc7c5e2f8805389041946872f1b..aba9d75153445923b04a218fd85dad37a4901225 100644
|
index a995ecc3b1d6181c58d5b4a0a6a893178bdc40aa..5c8dd4d3313a791d1fee00ec5d4bc595b76b7d6d 100644
|
||||||
--- a/build.gradle.kts
|
--- a/build.gradle.kts
|
||||||
+++ b/build.gradle.kts
|
+++ b/build.gradle.kts
|
||||||
@@ -95,6 +95,8 @@ tasks.jar {
|
@@ -103,6 +103,8 @@ tasks.jar {
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType<Javadoc> {
|
tasks.withType<Javadoc> {
|
||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Spark Profiler
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
||||||
index b012ce40d82389c29d1b841ff685425ac10a7f9e..653961e083aec13c1551be5439ad73bbe7540bab 100644
|
index c077e7c883613fcb6e559b4e4776e794caa3b363..75be5cdfeb30732975bbc38dc7aab52a0cdead9c 100644
|
||||||
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
||||||
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
||||||
@@ -167,6 +167,12 @@ public final class SimplePluginManager implements PluginManager {
|
@@ -167,6 +167,12 @@ public final class SimplePluginManager implements PluginManager {
|
||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Add log suppression for LibraryLoader
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
|
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
|
||||||
index 7e5149a21b6747f64425a277c142e69f0ef43b3f..bde06934a397ca2305407d5f23617efd02d361ac 100644
|
index bf93183aa76af005d5daf8cf533f908d535166e8..d7ac5d5bb6180f97706be9c5ef25956f244bc376 100644
|
||||||
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
|
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
|
||||||
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
|
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
|
||||||
@@ -58,6 +58,7 @@ public final class JavaPluginLoader implements PluginLoader {
|
@@ -58,6 +58,7 @@ public final class JavaPluginLoader implements PluginLoader {
|
||||||
3665
patches/server/0001-Pufferfish-Server-Changes.patch
Normal file
3665
patches/server/0001-Pufferfish-Server-Changes.patch
Normal file
File diff suppressed because it is too large
Load Diff
67
patches/server/0002-Fix-pufferfish-issues.patch
Normal file
67
patches/server/0002-Fix-pufferfish-issues.patch
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: BillyGalbreath <blake.galbreath@gmail.com>
|
||||||
|
Date: Sun, 12 Jun 2022 09:18:57 -0500
|
||||||
|
Subject: [PATCH] Fix pufferfish issues
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
|
||||||
|
index 4232585ab3048dcfd934569beca2f2f21d95f382..9e3f279d759a49c051544f54f76790d549132ac0 100644
|
||||||
|
--- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
|
||||||
|
+++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
|
||||||
|
@@ -222,7 +222,7 @@ public class PufferfishConfig {
|
||||||
|
public static int activationDistanceMod;
|
||||||
|
|
||||||
|
private static void dynamicActivationOfBrains() throws IOException {
|
||||||
|
- dearEnabled = getBoolean("dab.enabled", "activation-range.enabled", true);
|
||||||
|
+ dearEnabled = getBoolean("dab.enabled", "activation-range.enabled", false); // Purpur
|
||||||
|
startDistance = getInt("dab.start-distance", "activation-range.start-distance", 12,
|
||||||
|
"This value determines how far away an entity has to be",
|
||||||
|
"from the player to start being effected by DEAR.");
|
||||||
|
@@ -266,7 +266,7 @@ public class PufferfishConfig {
|
||||||
|
|
||||||
|
public static boolean throttleInactiveGoalSelectorTick;
|
||||||
|
private static void inactiveGoalSelectorThrottle() {
|
||||||
|
- getBoolean("inactive-goal-selector-throttle", "inactive-goal-selector-disable", true,
|
||||||
|
+ getBoolean("inactive-goal-selector-throttle", "inactive-goal-selector-disable", false, // Purpur
|
||||||
|
"Throttles the AI goal selector in entity inactive ticks.",
|
||||||
|
"This can improve performance by a few percent, but has minor gameplay implications.");
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
|
index 54a51fc23563ca7843c72c169b1e0d7f51c42412..b398e4966eaa22b644a16f3c473af4769c9bbaf4 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
|
@@ -809,7 +809,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||||
|
}
|
||||||
|
// Paper start - optimise random block ticking
|
||||||
|
private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos();
|
||||||
|
- // private final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(); // Pufferfish - moved to super
|
||||||
|
+ private final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(this.random.nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - moved to super // Purpur - dont break ABI
|
||||||
|
// Paper end
|
||||||
|
|
||||||
|
private int currentIceAndSnowTick = 0; protected void resetIceAndSnowTick() { this.currentIceAndSnowTick = this.randomTickRandom.nextInt(16); } // Pufferfish
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
|
index edd2c236ca7c37e1a3aec0048b8974f4cd62f2cc..42299fd6ae663b01bb5f010b96887caa744dcb96 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
|
@@ -270,7 +270,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
|
|
||||||
|
public abstract ResourceKey<LevelStem> getTypeKey();
|
||||||
|
|
||||||
|
- protected final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(java.util.concurrent.ThreadLocalRandom.current().nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - move thread unsafe random initialization // Pufferfish - getter
|
||||||
|
+ //protected final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(java.util.concurrent.ThreadLocalRandom.current().nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - move thread unsafe random initialization // Pufferfish - getter // Purpur - dont break ABI
|
||||||
|
|
||||||
|
// Pufferfish start - ensure these get inlined
|
||||||
|
private final int minBuildHeight, minSection, height, maxBuildHeight, maxSection;
|
||||||
|
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 de7a5f3812a017131fd1b32fbeff10e325b1cd2e..aa327e549949052b5babf4101cc2fc9a37868fa8 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
|
@@ -130,7 +130,7 @@ public class LevelChunk extends ChunkAccess {
|
||||||
|
this.fluidTicks = fluidTickScheduler;
|
||||||
|
// CraftBukkit start
|
||||||
|
this.bukkitChunk = new org.bukkit.craftbukkit.CraftChunk(this);
|
||||||
|
- this.lightningTick = this.level.getThreadUnsafeRandom().nextInt(100000) << 1; // Pufferfish - initialize lightning tick
|
||||||
|
+ this.lightningTick = java.util.concurrent.ThreadLocalRandom.current().nextInt(100000) << 1; // Pufferfish - initialize lightning tick // Purpur - any random will do
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.bukkit.Chunk bukkitChunk;
|
||||||
@@ -5,23 +5,22 @@ Subject: [PATCH] Rebrand
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
index d5d49bb2b47c889e12d17dc87b8c439a60b3fe67..7de4b51cb4afdcbdfb8d1dc32f56252d997e23a8 100644
|
index 5752339f2d081c36944d568e0b29ec4fe24f37f9..d5b7458f6b79addf1a12eb82443ba5bdbe2ea5d3 100644
|
||||||
--- a/build.gradle.kts
|
--- a/build.gradle.kts
|
||||||
+++ b/build.gradle.kts
|
+++ b/build.gradle.kts
|
||||||
@@ -7,8 +7,10 @@ plugins {
|
@@ -7,9 +7,9 @@ plugins {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
- implementation(project(":paper-api"))
|
- implementation(project(":pufferfish-api")) // Pufferfish // Paper
|
||||||
- implementation(project(":paper-mojangapi"))
|
|
||||||
+ implementation(project(":purpur-api")) // Purpur
|
+ implementation(project(":purpur-api")) // Purpur
|
||||||
|
// Pufferfish start
|
||||||
|
- implementation("io.papermc.paper:paper-mojangapi:1.19.2-R0.1-SNAPSHOT") {
|
||||||
+ implementation("io.papermc.paper:paper-mojangapi:1.19.3-R0.1-SNAPSHOT") {
|
+ implementation("io.papermc.paper:paper-mojangapi:1.19.3-R0.1-SNAPSHOT") {
|
||||||
+ exclude("io.papermc.paper", "paper-api")
|
exclude("io.papermc.paper", "paper-api")
|
||||||
+ }
|
}
|
||||||
// Paper start
|
// Pufferfish end
|
||||||
implementation("org.jline:jline-terminal-jansi:3.21.0")
|
@@ -41,6 +41,9 @@ dependencies {
|
||||||
implementation("net.minecrell:terminalconsoleappender:1.3.0")
|
|
||||||
@@ -37,6 +39,9 @@ dependencies {
|
|
||||||
runtimeOnly("mysql:mysql-connector-java:8.0.29")
|
runtimeOnly("mysql:mysql-connector-java:8.0.29")
|
||||||
runtimeOnly("com.lmax:disruptor:3.4.4") // Paper
|
runtimeOnly("com.lmax:disruptor:3.4.4") // Paper
|
||||||
|
|
||||||
@@ -31,16 +30,16 @@ index d5d49bb2b47c889e12d17dc87b8c439a60b3fe67..7de4b51cb4afdcbdfb8d1dc32f56252d
|
|||||||
runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.5")
|
runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.5")
|
||||||
runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3")
|
runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3")
|
||||||
runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3")
|
runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3")
|
||||||
@@ -61,7 +66,7 @@ tasks.jar {
|
@@ -80,7 +83,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-Paper-$implementationVersion",
|
- "Implementation-Version" to "git-Pufferfish-$implementationVersion", // Pufferfish
|
||||||
+ "Implementation-Version" to "git-Purpur-$implementationVersion", // Purpur
|
+ "Implementation-Version" to "git-Purpur-$implementationVersion", // 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,
|
||||||
@@ -133,7 +138,7 @@ fun TaskContainer.registerRunTask(
|
@@ -152,7 +155,7 @@ fun TaskContainer.registerRunTask(
|
||||||
name: String,
|
name: String,
|
||||||
block: JavaExec.() -> Unit
|
block: JavaExec.() -> Unit
|
||||||
): TaskProvider<JavaExec> = register<JavaExec>(name) {
|
): TaskProvider<JavaExec> = register<JavaExec>(name) {
|
||||||
@@ -172,10 +171,10 @@ index abe37c7c3c6f5ab73afd738ec78f06d7e4d2ed96..b5b6657e52e4f7a630229bd3ba433438
|
|||||||
stringbuilder.append(CrashReport.getErrorComment());
|
stringbuilder.append(CrashReport.getErrorComment());
|
||||||
stringbuilder.append("\n\n");
|
stringbuilder.append("\n\n");
|
||||||
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 710ca7d3a5659953f64bc6dccdd93b43300961cc..b5368fc08cbe587f03a5f04a9e25850ca818cf2c 100644
|
index 68d16efaf9c2d997afabadcf1ee24c5de685b5b3..861cd9f092a19aca520c2be4ba7a6ee3d9aee263 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
|
||||||
@@ -922,7 +922,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -924,7 +924,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()) {
|
||||||
@@ -184,20 +183,20 @@ index 710ca7d3a5659953f64bc6dccdd93b43300961cc..b5368fc08cbe587f03a5f04a9e25850c
|
|||||||
while (this.getRunningThread().isAlive()) {
|
while (this.getRunningThread().isAlive()) {
|
||||||
this.getRunningThread().stop();
|
this.getRunningThread().stop();
|
||||||
try {
|
try {
|
||||||
@@ -1654,7 +1654,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1656,7 +1656,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
|
||||||
@DontObfuscate
|
@DontObfuscate
|
||||||
public String getServerModName() {
|
public String getServerModName() {
|
||||||
- return "Paper"; // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
|
- return "Pufferfish"; // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
|
||||||
+ return "Purpur"; // Purpur - Purpur > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
|
+ return "Purpur"; // Purpur - Purpur > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
|
||||||
}
|
}
|
||||||
|
|
||||||
public SystemReport fillSystemReport(SystemReport details) {
|
public SystemReport fillSystemReport(SystemReport details) {
|
||||||
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 51b3db0b6c2cede95b584268e035c0fb36d38094..b29406fa5bd62fdd393915160fdb920cf7e28bc4 100644
|
index 673fb3955291407be37dc78be4eec9bf2018128b..c3221e8088bc53c8c229961adecbf60255eb8c79 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
|
||||||
@@ -278,11 +278,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -280,11 +280,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!");
|
DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!");
|
||||||
DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware.");
|
DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware.");
|
||||||
// Spigot start
|
// Spigot start
|
||||||
@@ -213,14 +212,14 @@ index 51b3db0b6c2cede95b584268e035c0fb36d38094..b29406fa5bd62fdd393915160fdb920c
|
|||||||
// Spigot end
|
// Spigot end
|
||||||
DedicatedServer.LOGGER.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file.");
|
DedicatedServer.LOGGER.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file.");
|
||||||
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 47df6f4268a63118da8187f4102c876bd37d1680..0ca1d7a9950d5797bae7266961190ec1776e524f 100644
|
index 098b67e6ad74be7698713623ca7fae70f19ac6b3..57a2014ff63129e99acdf8c382f3c4665e14cdd6 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
|
||||||
@@ -261,7 +261,7 @@ import javax.annotation.Nullable; // Paper
|
@@ -261,7 +261,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 {
|
||||||
- private final String serverName = "Paper"; // Paper
|
- private final String serverName = "Pufferfish"; // Paper // Pufferfish
|
||||||
+ private final String serverName = "Purpur"; // Paper // Purpur
|
+ private final String serverName = "Purpur"; // Paper // Purpur
|
||||||
private final String serverVersion;
|
private final String serverVersion;
|
||||||
private final String bukkitVersion = Versioning.getBukkitVersion();
|
private final String bukkitVersion = Versioning.getBukkitVersion();
|
||||||
@@ -279,27 +278,27 @@ index cdefb2025eedea7e204d70d568adaf1c1ec4c03c..d1526ed7197b883e1d1f07baf285bf5e
|
|||||||
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
|
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
index 17336102d37a5ab05c3b3c93fcf46961d0ffa7e2..a308993500fbb6cd871b44ec3d2ff66e28ac680b 100644
|
index a3c6b3dd87022e2def1f12da7c44c8d529191d1e..51c96095cf7092125f79a197f797dc7965647574 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
@@ -433,7 +433,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
@@ -433,7 +433,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {
|
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {
|
||||||
- return new com.destroystokyo.paper.PaperVersionFetcher();
|
- return new gg.pufferfish.pufferfish.PufferfishVersionFetcher(); // Pufferfish
|
||||||
+ return new com.destroystokyo.paper.PaperVersionFetcher(); // Purpur - diff on change
|
+ return new com.destroystokyo.paper.PaperVersionFetcher(); // Purpur
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
||||||
index 774556a62eb240da42e84db4502e2ed43495be17..fb87620c742ff7912f5e8ccd2a7930dd605576d9 100644
|
index 80553face9c70c2a3d897681e7761df85b22d464..fb87620c742ff7912f5e8ccd2a7930dd605576d9 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
||||||
@@ -11,7 +11,7 @@ public final class Versioning {
|
@@ -11,7 +11,7 @@ public final class Versioning {
|
||||||
public static String getBukkitVersion() {
|
public static String getBukkitVersion() {
|
||||||
String result = "Unknown-Version";
|
String result = "Unknown-Version";
|
||||||
|
|
||||||
- InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/io.papermc.paper/paper-api/pom.properties");
|
- InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/gg.pufferfish.pufferfish/pufferfish-api/pom.properties"); // Pufferfish
|
||||||
+ InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/org.purpurmc.purpur/purpur-api/pom.properties"); // Purpur
|
+ InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/org.purpurmc.purpur/purpur-api/pom.properties"); // Purpur
|
||||||
Properties properties = new Properties();
|
Properties properties = new Properties();
|
||||||
|
|
||||||
@@ -5,14 +5,14 @@ Subject: [PATCH] Purpur config files
|
|||||||
|
|
||||||
|
|
||||||
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 7b1843e16745ca8db2244e17490d291401f22679..acd95cf1dc7f009b63e44e4404e1736283fd458e 100644
|
index 061716934ba0a1f01e4d85d664034f72b3c7a765..acd95cf1dc7f009b63e44e4404e1736283fd458e 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
|
||||||
@@ -593,7 +593,7 @@ public class Metrics {
|
@@ -593,7 +593,7 @@ public class Metrics {
|
||||||
boolean logFailedRequests = config.getBoolean("logFailedRequests", false);
|
boolean logFailedRequests = config.getBoolean("logFailedRequests", false);
|
||||||
// Only start Metrics, if it's enabled in the config
|
// Only start Metrics, if it's enabled in the config
|
||||||
if (config.getBoolean("enabled", true)) {
|
if (config.getBoolean("enabled", true)) {
|
||||||
- Metrics metrics = new Metrics("Paper", serverUUID, logFailedRequests, Bukkit.getLogger());
|
- Metrics metrics = new Metrics("Pufferfish", serverUUID, logFailedRequests, Bukkit.getLogger()); // Pufferfish
|
||||||
+ Metrics metrics = new Metrics("Purpur", serverUUID, logFailedRequests, Bukkit.getLogger()); // Purpur
|
+ Metrics metrics = new Metrics("Purpur", serverUUID, logFailedRequests, Bukkit.getLogger()); // Purpur
|
||||||
|
|
||||||
metrics.addCustomChart(new Metrics.SimplePie("minecraft_version", () -> {
|
metrics.addCustomChart(new Metrics.SimplePie("minecraft_version", () -> {
|
||||||
@@ -22,7 +22,7 @@ index 7b1843e16745ca8db2244e17490d291401f22679..acd95cf1dc7f009b63e44e4404e17362
|
|||||||
|
|
||||||
metrics.addCustomChart(new Metrics.SingleLineChart("players", () -> Bukkit.getOnlinePlayers().size()));
|
metrics.addCustomChart(new Metrics.SingleLineChart("players", () -> Bukkit.getOnlinePlayers().size()));
|
||||||
- metrics.addCustomChart(new Metrics.SimplePie("online_mode", () -> Bukkit.getOnlineMode() ? "online" : "offline"));
|
- metrics.addCustomChart(new Metrics.SimplePie("online_mode", () -> Bukkit.getOnlineMode() ? "online" : "offline"));
|
||||||
- metrics.addCustomChart(new Metrics.SimplePie("paper_version", () -> (Metrics.class.getPackage().getImplementationVersion() != null) ? Metrics.class.getPackage().getImplementationVersion() : "unknown"));
|
- metrics.addCustomChart(new Metrics.SimplePie("pufferfish_version", () -> (Metrics.class.getPackage().getImplementationVersion() != null) ? Metrics.class.getPackage().getImplementationVersion() : "unknown"));
|
||||||
+ 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("online_mode", () -> Bukkit.getOnlineMode() ? "online" : (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() ? "bungee" : "offline"))); // Purpur
|
||||||
+ metrics.addCustomChart(new Metrics.SimplePie("purpur_version", () -> (Metrics.class.getPackage().getImplementationVersion() != null) ? Metrics.class.getPackage().getImplementationVersion() : "unknown")); // Purpur
|
+ metrics.addCustomChart(new Metrics.SimplePie("purpur_version", () -> (Metrics.class.getPackage().getImplementationVersion() != null) ? Metrics.class.getPackage().getImplementationVersion() : "unknown")); // Purpur
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ index ae5dd08de75a7ed231295f306fd0974da3988249..b8d49f7607c646216d42f4e047997d47
|
|||||||
if (this.source.acceptsSuccess() && !this.silent) {
|
if (this.source.acceptsSuccess() && !this.silent) {
|
||||||
this.source.sendSystemMessage(message);
|
this.source.sendSystemMessage(message);
|
||||||
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 b29406fa5bd62fdd393915160fdb920cf7e28bc4..fa2f2d509445831360e78d4e61bd40e4f2ebe84f 100644
|
index c3221e8088bc53c8c229961adecbf60255eb8c79..44be589011acb90c0d662cb1eb2697cfefd7fba5 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
|
||||||
@@ -218,6 +218,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -218,6 +218,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
@@ -84,7 +84,7 @@ index b29406fa5bd62fdd393915160fdb920cf7e28bc4..fa2f2d509445831360e78d4e61bd40e4
|
|||||||
io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider
|
io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider
|
||||||
// Paper end
|
// Paper end
|
||||||
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 3cbf801b2e5420c0e870f73788deb550e49ad54d..e38d20975f63e2a9847b17e60647624c1eeab6f5 100644
|
index 42299fd6ae663b01bb5f010b96887caa744dcb96..816f906f98adc180f37d2b216628e576ac837448 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
|
||||||
@@ -173,6 +173,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -173,6 +173,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
@@ -96,7 +96,7 @@ index 3cbf801b2e5420c0e870f73788deb550e49ad54d..e38d20975f63e2a9847b17e60647624c
|
|||||||
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
|
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
|
||||||
public static BlockPos lastPhysicsProblem; // Spigot
|
public static BlockPos lastPhysicsProblem; // Spigot
|
||||||
private org.spigotmc.TickLimiter entityLimiter;
|
private org.spigotmc.TickLimiter entityLimiter;
|
||||||
@@ -273,6 +275,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -284,6 +286,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, 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, 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
|
||||||
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
|
||||||
@@ -105,7 +105,7 @@ index 3cbf801b2e5420c0e870f73788deb550e49ad54d..e38d20975f63e2a9847b17e60647624c
|
|||||||
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
|
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index 0ca1d7a9950d5797bae7266961190ec1776e524f..78372d9b900e7506bfbcf53e8fa70043cc140fdb 100644
|
index 57a2014ff63129e99acdf8c382f3c4665e14cdd6..fb290333f407776e732d3588233a35afa2ab989c 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
|
||||||
@@ -979,6 +979,7 @@ public final class CraftServer implements Server {
|
@@ -979,6 +979,7 @@ public final class CraftServer implements Server {
|
||||||
@@ -132,7 +132,7 @@ index 0ca1d7a9950d5797bae7266961190ec1776e524f..78372d9b900e7506bfbcf53e8fa70043
|
|||||||
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
|
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
|
||||||
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
||||||
|
|
||||||
@@ -2760,6 +2763,18 @@ public final class CraftServer implements Server {
|
@@ -2765,6 +2768,18 @@ public final class CraftServer implements Server {
|
||||||
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
|
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,7 +152,7 @@ index 0ca1d7a9950d5797bae7266961190ec1776e524f..78372d9b900e7506bfbcf53e8fa70043
|
|||||||
public void restart() {
|
public void restart() {
|
||||||
org.spigotmc.RestartCommand.restart();
|
org.spigotmc.RestartCommand.restart();
|
||||||
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 e072a5475a64d110f25ebcc871aa7703c2fc1e70..1913792032ef81a6f331cfdfc97052cfe53e767e 100644
|
index 119d9bb5e41038704654e248bf168d22af246b7f..f8c4878cc558c6fe76c99795f9963015ea21312b 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
|
||||||
@@ -166,6 +166,14 @@ public class Main {
|
@@ -166,6 +166,14 @@ public class Main {
|
||||||
@@ -17,10 +17,10 @@ index c0b0a7fdb75266a7064d54bda6441953184ecc64..0e21e7faf2036f12b64b9237a89ef8e7
|
|||||||
public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile) {
|
public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile) {
|
||||||
super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile);
|
super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile);
|
||||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
index 0c2255b6e2fb7752f85b0f83d4f84732758bd14d..d99baac236d7d4be09f351943971a9f60914be31 100644
|
index aa23559719357f2678e3aa759d58ba4bde18bdd4..662c43401bf84a6de47986e66e1f83c4b50df775 100644
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
@@ -3505,6 +3505,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -3507,6 +3507,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister");
|
private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister");
|
||||||
|
|
||||||
private static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support
|
private static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support
|
||||||
@@ -28,7 +28,7 @@ index 0c2255b6e2fb7752f85b0f83d4f84732758bd14d..d99baac236d7d4be09f351943971a9f6
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleCustomPayload(ServerboundCustomPayloadPacket packet) {
|
public void handleCustomPayload(ServerboundCustomPayloadPacket packet) {
|
||||||
@@ -3529,6 +3530,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -3531,6 +3532,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex);
|
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex);
|
||||||
this.disconnect("Invalid payload UNREGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause
|
this.disconnect("Invalid payload UNREGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause
|
||||||
}
|
}
|
||||||
@@ -81,10 +81,10 @@ index 8795c94e6b6474addddbb0b337a962e8fac46b2b..f2ef4d93e070167d70f597e8893bf29b
|
|||||||
return this.isFireSource;
|
return this.isFireSource;
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index 7f94da8059147760cbdc2476d0e8beda4a105f40..efce81deda7403d056628ab1a83f909af548b424 100644
|
index caa4d38d620717e78df9ad29fe9752213f1cda1b..164fa910866c876abe96910af7b9018b6f1a7452 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -3812,6 +3812,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -3846,6 +3846,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
return SlotAccess.NULL;
|
return SlotAccess.NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -22,10 +22,10 @@ index b1d12c78edf21cc29a9f9ca54e7957ddc8875ffb..a3e398d3bcc88f9c0feaa6ca8dc646f3
|
|||||||
super(x, y, z);
|
super(x, y, z);
|
||||||
}
|
}
|
||||||
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 b5368fc08cbe587f03a5f04a9e25850ca818cf2c..cb2d56bc77132883876e367d332fef081bb32c72 100644
|
index 861cd9f092a19aca520c2be4ba7a6ee3d9aee263..7191a7e9a7fcb4268c5aaf85bf9c896fa2bfd676 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
|
||||||
@@ -1515,6 +1515,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1517,6 +1517,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
ServerLevel worldserver = (ServerLevel) iterator.next();
|
ServerLevel worldserver = (ServerLevel) iterator.next();
|
||||||
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
|
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
|
||||||
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
|
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
|
||||||
@@ -34,7 +34,7 @@ index b5368fc08cbe587f03a5f04a9e25850ca818cf2c..cb2d56bc77132883876e367d332fef08
|
|||||||
|
|
||||||
this.profiler.push(() -> {
|
this.profiler.push(() -> {
|
||||||
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 f3a19d00f78e19aa98c57461efb90d79f656a992..bc1a8e2bb56e25e49bdbf5a80c5d14ed87605f2c 100644
|
index b398e4966eaa22b644a16f3c473af4769c9bbaf4..a24ddd5d02a6355112a9e3bee2131fbe0f9b7e0f 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
|
||||||
@@ -223,6 +223,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
@@ -223,6 +223,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||||
@@ -66,7 +66,7 @@ index 740eff44b2895f83099beb4bc0e705f4252edc12..9918cc39247037c0a8379071167c5560
|
|||||||
|
|
||||||
public void doTick() {
|
public void doTick() {
|
||||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
index bc7cbee5b5a789aaf42ac770a488eae16fdc9d19..400f974549319a4b3b0445c815a2e99756a2bc36 100644
|
index 662c43401bf84a6de47986e66e1f83c4b50df775..d89e7697f12f06f49d4063fa0b06c90a56c6967c 100644
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
@@ -720,7 +720,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -720,7 +720,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
@@ -77,7 +77,7 @@ index bc7cbee5b5a789aaf42ac770a488eae16fdc9d19..400f974549319a4b3b0445c815a2e997
|
|||||||
// If the packet contains look information then we update the To location with the correct Yaw & Pitch.
|
// If the packet contains look information then we update the To location with the correct Yaw & Pitch.
|
||||||
to.setYaw(packet.getYRot());
|
to.setYaw(packet.getYRot());
|
||||||
to.setPitch(packet.getXRot());
|
to.setPitch(packet.getXRot());
|
||||||
@@ -2772,6 +2771,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -2774,6 +2773,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
|
|
||||||
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
|
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ index bc7cbee5b5a789aaf42ac770a488eae16fdc9d19..400f974549319a4b3b0445c815a2e997
|
|||||||
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
|
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
|
||||||
entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it.
|
entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it.
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index efce81deda7403d056628ab1a83f909af548b424..3f2813e32a1ea011f760d2df454b8875f32a42f3 100644
|
index 164fa910866c876abe96910af7b9018b6f1a7452..129e9f79930f03295d1bfaf53333e1a9863b4bc8 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -361,7 +361,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -361,7 +361,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
@@ -99,7 +99,7 @@ index efce81deda7403d056628ab1a83f909af548b424..3f2813e32a1ea011f760d2df454b8875
|
|||||||
private float eyeHeight;
|
private float eyeHeight;
|
||||||
public boolean isInPowderSnow;
|
public boolean isInPowderSnow;
|
||||||
public boolean wasInPowderSnow;
|
public boolean wasInPowderSnow;
|
||||||
@@ -2767,6 +2767,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -2801,6 +2801,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
this.passengers = ImmutableList.copyOf(list);
|
this.passengers = ImmutableList.copyOf(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ index efce81deda7403d056628ab1a83f909af548b424..3f2813e32a1ea011f760d2df454b8875
|
|||||||
}
|
}
|
||||||
return true; // CraftBukkit
|
return true; // CraftBukkit
|
||||||
}
|
}
|
||||||
@@ -2807,6 +2813,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -2841,6 +2847,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Spigot end
|
// Spigot end
|
||||||
@@ -127,7 +127,7 @@ index efce81deda7403d056628ab1a83f909af548b424..3f2813e32a1ea011f760d2df454b8875
|
|||||||
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
|
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
|
||||||
this.passengers = ImmutableList.of();
|
this.passengers = ImmutableList.of();
|
||||||
} else {
|
} else {
|
||||||
@@ -4548,4 +4562,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -4634,4 +4648,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
|
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -202,10 +202,10 @@ index c1e9b40a4a0f9cdc650caa88b5ea132e06ee2496..882ab40c8cdea8c214cb8344b3ccecdd
|
|||||||
protected ParticleOptions getInkParticle() {
|
protected ParticleOptions getInkParticle() {
|
||||||
return ParticleTypes.GLOW_SQUID_INK;
|
return ParticleTypes.GLOW_SQUID_INK;
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
index 9e075de3542bda8ae086c9ca68bcd00b16d565d0..1e75f62ff6bd83f6007090dde5ce521fb6bd5247 100644
|
index d134e88ae9aa2bd0b2b51056bfcc37941c713002..60519f70115358e3f94de6a2c1923e2d5f7a9f55 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -222,9 +222,9 @@ public abstract class LivingEntity extends Entity {
|
@@ -221,9 +221,9 @@ public abstract class LivingEntity extends Entity {
|
||||||
protected int deathScore;
|
protected int deathScore;
|
||||||
public float lastHurt;
|
public float lastHurt;
|
||||||
public boolean jumping;
|
public boolean jumping;
|
||||||
@@ -218,7 +218,7 @@ index 9e075de3542bda8ae086c9ca68bcd00b16d565d0..1e75f62ff6bd83f6007090dde5ce521f
|
|||||||
protected int lerpSteps;
|
protected int lerpSteps;
|
||||||
protected double lerpX;
|
protected double lerpX;
|
||||||
protected double lerpY;
|
protected double lerpY;
|
||||||
@@ -290,7 +290,7 @@ public abstract class LivingEntity extends Entity {
|
@@ -289,7 +289,7 @@ public abstract class LivingEntity extends Entity {
|
||||||
this.effectsDirty = true;
|
this.effectsDirty = true;
|
||||||
this.useItem = ItemStack.EMPTY;
|
this.useItem = ItemStack.EMPTY;
|
||||||
this.lastClimbablePos = Optional.empty();
|
this.lastClimbablePos = Optional.empty();
|
||||||
@@ -227,7 +227,7 @@ index 9e075de3542bda8ae086c9ca68bcd00b16d565d0..1e75f62ff6bd83f6007090dde5ce521f
|
|||||||
this.craftAttributes = new CraftAttributeMap(this.attributes); // CraftBukkit
|
this.craftAttributes = new CraftAttributeMap(this.attributes); // CraftBukkit
|
||||||
// CraftBukkit - setHealth(getMaxHealth()) inlined and simplified to skip the instanceof check for EntityPlayer, as getBukkitEntity() is not initialized in constructor
|
// CraftBukkit - setHealth(getMaxHealth()) inlined and simplified to skip the instanceof check for EntityPlayer, as getBukkitEntity() is not initialized in constructor
|
||||||
this.entityData.set(LivingEntity.DATA_HEALTH_ID, (float) this.getAttribute(Attributes.MAX_HEALTH).getValue());
|
this.entityData.set(LivingEntity.DATA_HEALTH_ID, (float) this.getAttribute(Attributes.MAX_HEALTH).getValue());
|
||||||
@@ -341,6 +341,7 @@ public abstract class LivingEntity extends Entity {
|
@@ -340,6 +340,7 @@ public abstract class LivingEntity extends Entity {
|
||||||
public static AttributeSupplier.Builder createLivingAttributes() {
|
public static AttributeSupplier.Builder createLivingAttributes() {
|
||||||
return AttributeSupplier.builder().add(Attributes.MAX_HEALTH).add(Attributes.KNOCKBACK_RESISTANCE).add(Attributes.MOVEMENT_SPEED).add(Attributes.ARMOR).add(Attributes.ARMOR_TOUGHNESS);
|
return AttributeSupplier.builder().add(Attributes.MAX_HEALTH).add(Attributes.KNOCKBACK_RESISTANCE).add(Attributes.MOVEMENT_SPEED).add(Attributes.ARMOR).add(Attributes.ARMOR_TOUGHNESS);
|
||||||
}
|
}
|
||||||
@@ -235,7 +235,7 @@ index 9e075de3542bda8ae086c9ca68bcd00b16d565d0..1e75f62ff6bd83f6007090dde5ce521f
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void checkFallDamage(double heightDifference, boolean onGround, BlockState state, BlockPos landedPosition) {
|
protected void checkFallDamage(double heightDifference, boolean onGround, BlockState state, BlockPos landedPosition) {
|
||||||
@@ -2690,7 +2691,7 @@ public abstract class LivingEntity extends Entity {
|
@@ -2712,7 +2713,7 @@ public abstract class LivingEntity extends Entity {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected long lastJumpTime = 0L; // Paper
|
protected long lastJumpTime = 0L; // Paper
|
||||||
@@ -244,7 +244,7 @@ index 9e075de3542bda8ae086c9ca68bcd00b16d565d0..1e75f62ff6bd83f6007090dde5ce521f
|
|||||||
double d0 = (double) this.getJumpPower() + this.getJumpBoostPower();
|
double d0 = (double) this.getJumpPower() + this.getJumpBoostPower();
|
||||||
Vec3 vec3d = this.getDeltaMovement();
|
Vec3 vec3d = this.getDeltaMovement();
|
||||||
// Paper start
|
// Paper start
|
||||||
@@ -3432,8 +3433,10 @@ public abstract class LivingEntity extends Entity {
|
@@ -3454,8 +3455,10 @@ public abstract class LivingEntity extends Entity {
|
||||||
this.pushEntities();
|
this.pushEntities();
|
||||||
this.level.getProfiler().pop();
|
this.level.getProfiler().pop();
|
||||||
// Paper start
|
// Paper start
|
||||||
@@ -257,7 +257,7 @@ index 9e075de3542bda8ae086c9ca68bcd00b16d565d0..1e75f62ff6bd83f6007090dde5ce521f
|
|||||||
Location from = new Location(this.level.getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO);
|
Location from = new Location(this.level.getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO);
|
||||||
Location to = new Location (this.level.getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot());
|
Location to = new Location (this.level.getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot());
|
||||||
io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone());
|
io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone());
|
||||||
@@ -3443,6 +3446,21 @@ public abstract class LivingEntity extends Entity {
|
@@ -3465,6 +3468,21 @@ public abstract class LivingEntity extends Entity {
|
||||||
absMoveTo(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch());
|
absMoveTo(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -280,7 +280,7 @@ index 9e075de3542bda8ae086c9ca68bcd00b16d565d0..1e75f62ff6bd83f6007090dde5ce521f
|
|||||||
// Paper end
|
// Paper end
|
||||||
if (!this.level.isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
|
if (!this.level.isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
index 49b983064ea810382b6112f5dc7f93ba4e5710bd..cb7f66bab7c08b6485576878bf330be9ffa329b8 100644
|
index 94b45579dc371ee980565aed2f5dee78ebd44427..286f6a7ebc38378bb730db5d8ffef226f6a94e3d 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
@@ -146,8 +146,8 @@ public abstract class Mob extends LivingEntity {
|
@@ -146,8 +146,8 @@ public abstract class Mob extends LivingEntity {
|
||||||
@@ -294,7 +294,7 @@ index 49b983064ea810382b6112f5dc7f93ba4e5710bd..cb7f66bab7c08b6485576878bf330be9
|
|||||||
this.jumpControl = new JumpControl(this);
|
this.jumpControl = new JumpControl(this);
|
||||||
this.bodyRotationControl = this.createBodyControl();
|
this.bodyRotationControl = this.createBodyControl();
|
||||||
this.navigation = this.createNavigation(world);
|
this.navigation = this.createNavigation(world);
|
||||||
@@ -1341,7 +1341,7 @@ public abstract class Mob extends LivingEntity {
|
@@ -1347,7 +1347,7 @@ public abstract class Mob extends LivingEntity {
|
||||||
protected void onOffspringSpawnedFromEgg(Player player, Mob child) {}
|
protected void onOffspringSpawnedFromEgg(Player player, Mob child) {}
|
||||||
|
|
||||||
protected InteractionResult mobInteract(Player player, InteractionHand hand) {
|
protected InteractionResult mobInteract(Player player, InteractionHand hand) {
|
||||||
@@ -303,7 +303,7 @@ index 49b983064ea810382b6112f5dc7f93ba4e5710bd..cb7f66bab7c08b6485576878bf330be9
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isWithinRestriction() {
|
public boolean isWithinRestriction() {
|
||||||
@@ -1722,4 +1722,52 @@ public abstract class Mob extends LivingEntity {
|
@@ -1728,4 +1728,52 @@ public abstract class Mob extends LivingEntity {
|
||||||
|
|
||||||
return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg);
|
return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg);
|
||||||
}
|
}
|
||||||
@@ -357,13 +357,13 @@ index 49b983064ea810382b6112f5dc7f93ba4e5710bd..cb7f66bab7c08b6485576878bf330be9
|
|||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
|
diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
|
||||||
index dd1102d5291ef6f18e82400a6d8a0a376cc071e9..9932a801be1bde1c57697396c097fb47a6b26ede 100644
|
index e283eb57c25f7de222f9d09dca851169f5f6e488..210a0bee1227e4671909dd553ab22027cfc868fb 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
|
--- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
|
+++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
|
||||||
@@ -23,13 +23,20 @@ public class AttributeMap {
|
@@ -24,14 +24,21 @@ public class AttributeMap {
|
||||||
private final Map<Attribute, AttributeInstance> attributes = Maps.newHashMap();
|
|
||||||
private final Set<AttributeInstance> dirtyAttributes = Sets.newHashSet();
|
private final Set<AttributeInstance> dirtyAttributes = Sets.newHashSet();
|
||||||
private final AttributeSupplier supplier;
|
private final AttributeSupplier supplier;
|
||||||
|
private final java.util.function.Function<Attribute, AttributeInstance> createInstance; // Pufferfish
|
||||||
+ private final net.minecraft.world.entity.LivingEntity entity; // Purpur
|
+ private final net.minecraft.world.entity.LivingEntity entity; // Purpur
|
||||||
|
|
||||||
public AttributeMap(AttributeSupplier defaultAttributes) {
|
public AttributeMap(AttributeSupplier defaultAttributes) {
|
||||||
@@ -374,6 +374,7 @@ index dd1102d5291ef6f18e82400a6d8a0a376cc071e9..9932a801be1bde1c57697396c097fb47
|
|||||||
+ this.entity = entity;
|
+ this.entity = entity;
|
||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
this.supplier = defaultAttributes;
|
this.supplier = defaultAttributes;
|
||||||
|
this.createInstance = attribute -> this.supplier.createInstance(this::onAttributeModified, attribute); // Pufferfish
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onAttributeModified(AttributeInstance instance) {
|
private void onAttributeModified(AttributeInstance instance) {
|
||||||
@@ -382,7 +383,7 @@ index dd1102d5291ef6f18e82400a6d8a0a376cc071e9..9932a801be1bde1c57697396c097fb47
|
|||||||
this.dirtyAttributes.add(instance);
|
this.dirtyAttributes.add(instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,7 +48,7 @@ public class AttributeMap {
|
@@ -43,7 +50,7 @@ public class AttributeMap {
|
||||||
|
|
||||||
public Collection<AttributeInstance> getSyncableAttributes() {
|
public Collection<AttributeInstance> getSyncableAttributes() {
|
||||||
return this.attributes.values().stream().filter((attribute) -> {
|
return this.attributes.values().stream().filter((attribute) -> {
|
||||||
@@ -554,7 +555,7 @@ index 7df56705a4a0de2dc4ff7ab133fc26612c219162..60d21d6171b9af20a4c6fcc0d564a31a
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
||||||
index 320c558bbe80d4bbc641e895ec43cfa2b45e8d70..b2b490961ee47d4cfbac0d438dba91eec658ead5 100644
|
index 1572a81ce1718964d795f2a2a411402f88901c73..76069dbd56f6452af638e2e3311b44d3e9a1f4a5 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
||||||
@@ -18,6 +18,7 @@ import net.minecraft.world.entity.EntityDimensions;
|
@@ -18,6 +18,7 @@ import net.minecraft.world.entity.EntityDimensions;
|
||||||
@@ -2198,7 +2199,7 @@ index a6a50eb4f4ac85751071571876ac804d44ee1ee6..b9c692a2f42976eb459ed6a4078dca28
|
|||||||
this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this));
|
this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this));
|
||||||
this.targetSelector.addGoal(3, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers());
|
this.targetSelector.addGoal(3, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers());
|
||||||
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 c0084b1f146a4697194c421519537e612ff737c0..3c60ad2c26c46f900e537ea39d74a97068f44561 100644
|
index c66a214dfbde7fd8e7a68efaa82ac260178f297f..d98b726de2030662cb79e6c8446436c313a25d50 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
|
||||||
@@ -101,10 +101,23 @@ public class Allay extends PathfinderMob implements InventoryCarrier {
|
@@ -101,10 +101,23 @@ public class Allay extends PathfinderMob implements InventoryCarrier {
|
||||||
@@ -2256,7 +2257,7 @@ index c0084b1f146a4697194c421519537e612ff737c0..3c60ad2c26c46f900e537ea39d74a970
|
|||||||
protected Brain.Provider<Allay> brainProvider() {
|
protected Brain.Provider<Allay> brainProvider() {
|
||||||
return Brain.provider(Allay.MEMORY_TYPES, Allay.SENSOR_TYPES);
|
return Brain.provider(Allay.MEMORY_TYPES, Allay.SENSOR_TYPES);
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||||
index 0d7f951e3837de7553d93f3d4525276048feb405..682c69ea9cdcc1ab9fd19e28eef410ecf27bf9f3 100644
|
index 02219f5ca614fefffa1ceb3c7036dfe1c90c8676..ac7b58d4ad0e3c3d3fe8aaf7a6b4237786c09e75 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||||
@@ -98,6 +98,28 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
|
@@ -98,6 +98,28 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
|
||||||
@@ -2288,7 +2289,7 @@ index 0d7f951e3837de7553d93f3d4525276048feb405..682c69ea9cdcc1ab9fd19e28eef410ec
|
|||||||
@Override
|
@Override
|
||||||
public Map<String, Vector3f> getModelRotationValues() {
|
public Map<String, Vector3f> getModelRotationValues() {
|
||||||
return this.modelRotationValues;
|
return this.modelRotationValues;
|
||||||
@@ -518,14 +540,22 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
|
@@ -520,14 +542,22 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
|
||||||
private static class AxolotlMoveControl extends SmoothSwimmingMoveControl {
|
private static class AxolotlMoveControl extends SmoothSwimmingMoveControl {
|
||||||
|
|
||||||
private final Axolotl axolotl;
|
private final Axolotl axolotl;
|
||||||
@@ -2311,7 +2312,7 @@ index 0d7f951e3837de7553d93f3d4525276048feb405..682c69ea9cdcc1ab9fd19e28eef410ec
|
|||||||
if (!this.axolotl.isPlayingDead()) {
|
if (!this.axolotl.isPlayingDead()) {
|
||||||
super.tick();
|
super.tick();
|
||||||
}
|
}
|
||||||
@@ -540,9 +570,9 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
|
@@ -542,9 +572,9 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -2324,7 +2325,7 @@ index 0d7f951e3837de7553d93f3d4525276048feb405..682c69ea9cdcc1ab9fd19e28eef410ec
|
|||||||
|
|
||||||
}
|
}
|
||||||
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 f2e84e832ad95df26fe3b9ba439ce38fc59b3585..bb1cbb7dcc26cb8e6e884a3fab08ce23bdf8c487 100644
|
index 0a051c7e7f5a172a9b906de04ef2a0419eda26eb..844004cefd85fdc3fb1628449e8452bd6207a77b 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
|
||||||
@@ -84,16 +84,65 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
|
@@ -84,16 +84,65 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
|
||||||
@@ -2394,7 +2395,7 @@ index f2e84e832ad95df26fe3b9ba439ce38fc59b3585..bb1cbb7dcc26cb8e6e884a3fab08ce23
|
|||||||
@Override
|
@Override
|
||||||
protected Brain.Provider<Frog> brainProvider() {
|
protected Brain.Provider<Frog> brainProvider() {
|
||||||
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
|
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
|
||||||
@@ -381,7 +430,7 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
|
@@ -383,7 +432,7 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
|
||||||
return world.getBlockState(pos.below()).is(BlockTags.FROGS_SPAWNABLE_ON) && isBrightEnoughToSpawn(world, pos);
|
return world.getBlockState(pos.below()).is(BlockTags.FROGS_SPAWNABLE_ON) && isBrightEnoughToSpawn(world, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2404,7 +2405,7 @@ index f2e84e832ad95df26fe3b9ba439ce38fc59b3585..bb1cbb7dcc26cb8e6e884a3fab08ce23
|
|||||||
super(entity);
|
super(entity);
|
||||||
}
|
}
|
||||||
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 e8574bd4b412c1db82aaec9dced47b63de9dbf28..b33b3714f18f5bcd1f7d9d4974a8c1e254d83f5b 100644
|
index 35594c5c107e83e5e025233036ae6d060f77c408..7b7daf5232a446b8774bbf53f2f09d9811d1dbbc 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
|
||||||
@@ -44,13 +44,50 @@ public class Tadpole extends AbstractFish {
|
@@ -44,13 +44,50 @@ public class Tadpole extends AbstractFish {
|
||||||
@@ -2460,7 +2461,7 @@ index e8574bd4b412c1db82aaec9dced47b63de9dbf28..b33b3714f18f5bcd1f7d9d4974a8c1e2
|
|||||||
protected PathNavigation createNavigation(Level world) {
|
protected PathNavigation createNavigation(Level world) {
|
||||||
return new WaterBoundPathNavigation(this, world);
|
return new WaterBoundPathNavigation(this, world);
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||||
index e9f7c08ae3ea9c578971b1ede88788572c20e277..9b0a0736aa46e60f21c85cc88b67af342c34d5db 100644
|
index 0f365b9dbb160d90ddf5fcd40895305df48ce916..d6e527fb592f721aac59d52a1e84e147da62913b 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||||
@@ -89,6 +89,23 @@ public class Goat extends Animal {
|
@@ -89,6 +89,23 @@ public class Goat extends Animal {
|
||||||
@@ -2487,11 +2488,12 @@ index e9f7c08ae3ea9c578971b1ede88788572c20e277..9b0a0736aa46e60f21c85cc88b67af34
|
|||||||
@Override
|
@Override
|
||||||
protected Brain.Provider<Goat> brainProvider() {
|
protected Brain.Provider<Goat> brainProvider() {
|
||||||
return Brain.provider(Goat.MEMORY_TYPES, Goat.SENSOR_TYPES);
|
return Brain.provider(Goat.MEMORY_TYPES, Goat.SENSOR_TYPES);
|
||||||
@@ -191,6 +208,7 @@ public class Goat extends Animal {
|
@@ -192,7 +209,7 @@ public class Goat extends Animal {
|
||||||
@Override
|
@Override
|
||||||
protected void customServerAiStep() {
|
protected void customServerAiStep() {
|
||||||
this.level.getProfiler().push("goatBrain");
|
this.level.getProfiler().push("goatBrain");
|
||||||
+ if (getRider() == null || !this.isControllable()) // Purpur - only use brain if no rider
|
- if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
|
||||||
|
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
|
||||||
this.getBrain().tick((ServerLevel) this.level, this);
|
this.getBrain().tick((ServerLevel) this.level, this);
|
||||||
this.level.getProfiler().pop();
|
this.level.getProfiler().pop();
|
||||||
this.level.getProfiler().push("goatActivityUpdate");
|
this.level.getProfiler().push("goatActivityUpdate");
|
||||||
@@ -3444,7 +3446,7 @@ index d02286d553c600fe7e75f48e278e380d21c5b868..82b03488178962eb74fe252d561ba8ce
|
|||||||
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D);
|
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D);
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
index f4002ac7cba7d5e41b4f11b98212c625f6a92a65..daac8d2ee377d960cac361e6977bcea4656b8d79 100644
|
index ff0e09a7387e7dc9ca136d3e48e640b9e9cb4bf3..8f8c40d5265f9e124a255af92eb43b51322ffd74 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
@@ -92,9 +92,27 @@ public class EnderMan extends Monster implements NeutralMob {
|
@@ -92,9 +92,27 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||||
@@ -3492,7 +3494,7 @@ index f4002ac7cba7d5e41b4f11b98212c625f6a92a65..daac8d2ee377d960cac361e6977bcea4
|
|||||||
float f = this.getLightLevelDependentMagicValue();
|
float f = this.getLightLevelDependentMagicValue();
|
||||||
|
|
||||||
if (f > 0.5F && this.level.canSeeSky(this.blockPosition()) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.RUNAWAY)) { // Paper
|
if (f > 0.5F && this.level.canSeeSky(this.blockPosition()) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.RUNAWAY)) { // Paper
|
||||||
@@ -398,6 +417,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
@@ -404,6 +423,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||||
public boolean hurt(DamageSource source, float amount) {
|
public boolean hurt(DamageSource source, float amount) {
|
||||||
if (this.isInvulnerableTo(source)) {
|
if (this.isInvulnerableTo(source)) {
|
||||||
return false;
|
return false;
|
||||||
@@ -4838,7 +4840,7 @@ index b75945807b425609394c343da56c316a769f0a29..838420f5d61eaf5e4abb52751b010d57
|
|||||||
public void setPersistentAngerTarget(@Nullable UUID angryAt) {
|
public void setPersistentAngerTarget(@Nullable UUID angryAt) {
|
||||||
this.persistentAngerTarget = angryAt;
|
this.persistentAngerTarget = angryAt;
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||||
index 45741410a13cffe3419e34b5607b048bbcf1c3ff..0a63ee3a292111143104f764e01cabbc4c2100ba 100644
|
index 5d487f1613b1fc5807283c20e5cc23a432d08f42..f2afd5f8ad916f0cf4674c6b4f973715999c6641 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||||
@@ -67,6 +67,23 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
@@ -67,6 +67,23 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||||
@@ -4865,16 +4867,17 @@ index 45741410a13cffe3419e34b5607b048bbcf1c3ff..0a63ee3a292111143104f764e01cabbc
|
|||||||
@Override
|
@Override
|
||||||
public boolean canBeLeashed(Player player) {
|
public boolean canBeLeashed(Player player) {
|
||||||
return !this.isLeashed();
|
return !this.isLeashed();
|
||||||
@@ -129,6 +146,7 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
@@ -130,7 +147,7 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||||
@Override
|
@Override
|
||||||
protected void customServerAiStep() {
|
protected void customServerAiStep() {
|
||||||
this.level.getProfiler().push("hoglinBrain");
|
this.level.getProfiler().push("hoglinBrain");
|
||||||
+ if (getRider() == null || !this.isControllable()) // Purpur - only use brain if no rider
|
- if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
|
||||||
|
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
|
||||||
this.getBrain().tick((ServerLevel)this.level, this);
|
this.getBrain().tick((ServerLevel)this.level, this);
|
||||||
this.level.getProfiler().pop();
|
this.level.getProfiler().pop();
|
||||||
HoglinAi.updateActivity(this);
|
HoglinAi.updateActivity(this);
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||||
index afa7ecfa8453da510ec5ccecb1ceeb1d9893d259..0b6f4460f29e4b04c715eceba0d7fbda0b08c037 100644
|
index b401fb4f276ca81b4bb18426ee56abed8a9f7a7b..33ffbc4ac5cecec8487c0529c1dee8596bb0ab30 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||||
@@ -97,6 +97,23 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
@@ -97,6 +97,23 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||||
@@ -4901,11 +4904,12 @@ index afa7ecfa8453da510ec5ccecb1ceeb1d9893d259..0b6f4460f29e4b04c715eceba0d7fbda
|
|||||||
@Override
|
@Override
|
||||||
public void addAdditionalSaveData(CompoundTag nbt) {
|
public void addAdditionalSaveData(CompoundTag nbt) {
|
||||||
super.addAdditionalSaveData(nbt);
|
super.addAdditionalSaveData(nbt);
|
||||||
@@ -311,6 +328,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
@@ -312,7 +329,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||||
@Override
|
@Override
|
||||||
protected void customServerAiStep() {
|
protected void customServerAiStep() {
|
||||||
this.level.getProfiler().push("piglinBrain");
|
this.level.getProfiler().push("piglinBrain");
|
||||||
+ if (getRider() == null || !this.isControllable()) // Purpur - only use brain if no rider
|
- if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
|
||||||
|
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
|
||||||
this.getBrain().tick((ServerLevel) this.level, this);
|
this.getBrain().tick((ServerLevel) this.level, this);
|
||||||
this.level.getProfiler().pop();
|
this.level.getProfiler().pop();
|
||||||
PiglinAi.updateActivity(this);
|
PiglinAi.updateActivity(this);
|
||||||
@@ -4946,7 +4950,7 @@ index 769e4fbaac01a4fe3a45bd9cab5c63b61fc69f53..ff149234a8f3e1c94961e41d5bc81174
|
|||||||
this.level.getProfiler().pop();
|
this.level.getProfiler().pop();
|
||||||
PiglinBruteAi.updateActivity(this);
|
PiglinBruteAi.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
|
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 1ae7408048f951cb94d7cfbea60efc5567b1af84..98176fde2760ab1d85d0b5afc1fd776487eef5e0 100644
|
index 904826ea563bd2eb469f403df459def62cc1b5e6..456ebb0829d19d13abe05d83035c4abe3589962f 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
|
||||||
@@ -120,8 +120,32 @@ public class Warden extends Monster implements VibrationListener.VibrationListen
|
@@ -120,8 +120,32 @@ public class Warden extends Monster implements VibrationListener.VibrationListen
|
||||||
@@ -4982,7 +4986,7 @@ index 1ae7408048f951cb94d7cfbea60efc5567b1af84..98176fde2760ab1d85d0b5afc1fd7764
|
|||||||
@Override
|
@Override
|
||||||
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
||||||
return new ClientboundAddEntityPacket(this, this.hasPose(Pose.EMERGING) ? 1 : 0);
|
return new ClientboundAddEntityPacket(this, this.hasPose(Pose.EMERGING) ? 1 : 0);
|
||||||
@@ -403,19 +427,16 @@ public class Warden extends Monster implements VibrationListener.VibrationListen
|
@@ -405,19 +429,16 @@ public class Warden extends Monster implements VibrationListener.VibrationListen
|
||||||
|
|
||||||
@Contract("null->false")
|
@Contract("null->false")
|
||||||
public boolean canTargetEntity(@Nullable Entity entity) {
|
public boolean canTargetEntity(@Nullable Entity entity) {
|
||||||
@@ -5006,10 +5010,10 @@ index 1ae7408048f951cb94d7cfbea60efc5567b1af84..98176fde2760ab1d85d0b5afc1fd7764
|
|||||||
|
|
||||||
public static void applyDarknessAround(ServerLevel world, Vec3 pos, @Nullable Entity entity, int range) {
|
public static void applyDarknessAround(ServerLevel world, Vec3 pos, @Nullable Entity entity, int range) {
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||||
index 18eac340386a396c9850f53f30d20a41c1437788..a9be652ff5960f233d95bad98900c63c203473c4 100644
|
index 76a9da8209d557b913c49ccd281bf147b9ac4fa4..2bbfa9a7d0fe71597e4e9a1e883be68018caadd7 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||||
@@ -153,6 +153,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -155,6 +155,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
this.setVillagerData(this.getVillagerData().setType(type).setProfession(VillagerProfession.NONE));
|
this.setVillagerData(this.getVillagerData().setType(type).setProfession(VillagerProfession.NONE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5038,16 +5042,16 @@ index 18eac340386a396c9850f53f30d20a41c1437788..a9be652ff5960f233d95bad98900c63c
|
|||||||
@Override
|
@Override
|
||||||
public Brain<Villager> getBrain() {
|
public Brain<Villager> getBrain() {
|
||||||
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
|
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
|
||||||
@@ -247,7 +269,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -252,7 +274,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
protected void customServerAiStep() { mobTick(false); }
|
|
||||||
protected void mobTick(boolean inactive) {
|
|
||||||
this.level.getProfiler().push("villagerBrain");
|
this.level.getProfiler().push("villagerBrain");
|
||||||
- if (!inactive) this.getBrain().tick((ServerLevel) this.level, this); // Paper
|
// Pufferfish start
|
||||||
+ if (!inactive && (getRider() == null || !this.isControllable())) this.getBrain().tick((ServerLevel) this.level, this); // Paper // Purpur - only use brain if no rider
|
if (!inactive) {
|
||||||
this.level.getProfiler().pop();
|
- if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
|
||||||
if (this.assignProfessionWhenSpawned) {
|
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
|
||||||
this.assignProfessionWhenSpawned = false;
|
this.getBrain().tick((ServerLevel) this.level, this); // Paper
|
||||||
@@ -304,7 +326,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
}
|
||||||
|
// Pufferfish end
|
||||||
|
@@ -312,7 +334,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
if (!itemstack.is(Items.VILLAGER_SPAWN_EGG) && this.isAlive() && !this.isTrading() && !this.isSleeping()) {
|
if (!itemstack.is(Items.VILLAGER_SPAWN_EGG) && this.isAlive() && !this.isTrading() && !this.isSleeping()) {
|
||||||
if (this.isBaby()) {
|
if (this.isBaby()) {
|
||||||
this.setUnhappy();
|
this.setUnhappy();
|
||||||
@@ -5056,7 +5060,7 @@ index 18eac340386a396c9850f53f30d20a41c1437788..a9be652ff5960f233d95bad98900c63c
|
|||||||
} else {
|
} else {
|
||||||
boolean flag = this.getOffers().isEmpty();
|
boolean flag = this.getOffers().isEmpty();
|
||||||
|
|
||||||
@@ -317,8 +339,9 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -325,8 +347,9 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flag) {
|
if (flag) {
|
||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index 3f2813e32a1ea011f760d2df454b8875f32a42f3..d032e666b9738a5e3c7afff3d3597b003d0aa1e7 100644
|
index 129e9f79930f03295d1bfaf53333e1a9863b4bc8..c6db89b5c94e31bffcca6625e37497bab779fdb8 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -155,7 +155,7 @@ import org.bukkit.plugin.PluginManager;
|
@@ -155,7 +155,7 @@ import org.bukkit.plugin.PluginManager;
|
||||||
@@ -34,10 +34,10 @@ index 882ab40c8cdea8c214cb8344b3ccecddb2967c1c..cb79d2c958fbd34f8c8818e7e1c0db88
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
index 1e75f62ff6bd83f6007090dde5ce521fb6bd5247..10e7c382e3e25ede3452b02af0e4d538e9403061 100644
|
index 60519f70115358e3f94de6a2c1923e2d5f7a9f55..a24bffefc209ebfe31e553ceef212615edeb2687 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -291,6 +291,7 @@ public abstract class LivingEntity extends Entity {
|
@@ -290,6 +290,7 @@ public abstract class LivingEntity extends Entity {
|
||||||
this.useItem = ItemStack.EMPTY;
|
this.useItem = ItemStack.EMPTY;
|
||||||
this.lastClimbablePos = Optional.empty();
|
this.lastClimbablePos = Optional.empty();
|
||||||
this.attributes = new AttributeMap(DefaultAttributes.getSupplier(type), this); // Purpur
|
this.attributes = new AttributeMap(DefaultAttributes.getSupplier(type), this); // Purpur
|
||||||
@@ -45,7 +45,7 @@ index 1e75f62ff6bd83f6007090dde5ce521fb6bd5247..10e7c382e3e25ede3452b02af0e4d538
|
|||||||
this.craftAttributes = new CraftAttributeMap(this.attributes); // CraftBukkit
|
this.craftAttributes = new CraftAttributeMap(this.attributes); // CraftBukkit
|
||||||
// CraftBukkit - setHealth(getMaxHealth()) inlined and simplified to skip the instanceof check for EntityPlayer, as getBukkitEntity() is not initialized in constructor
|
// CraftBukkit - setHealth(getMaxHealth()) inlined and simplified to skip the instanceof check for EntityPlayer, as getBukkitEntity() is not initialized in constructor
|
||||||
this.entityData.set(LivingEntity.DATA_HEALTH_ID, (float) this.getAttribute(Attributes.MAX_HEALTH).getValue());
|
this.entityData.set(LivingEntity.DATA_HEALTH_ID, (float) this.getAttribute(Attributes.MAX_HEALTH).getValue());
|
||||||
@@ -306,6 +307,8 @@ public abstract class LivingEntity extends Entity {
|
@@ -305,6 +306,8 @@ public abstract class LivingEntity extends Entity {
|
||||||
this.brain = this.makeBrain(new Dynamic(dynamicopsnbt, (Tag) dynamicopsnbt.createMap((Map) ImmutableMap.of(dynamicopsnbt.createString("memories"), (Tag) dynamicopsnbt.emptyMap()))));
|
this.brain = this.makeBrain(new Dynamic(dynamicopsnbt, (Tag) dynamicopsnbt.createMap((Map) ImmutableMap.of(dynamicopsnbt.createString("memories"), (Tag) dynamicopsnbt.emptyMap()))));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@ index 1e75f62ff6bd83f6007090dde5ce521fb6bd5247..10e7c382e3e25ede3452b02af0e4d538
|
|||||||
return this.brain;
|
return this.brain;
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
||||||
index b2b490961ee47d4cfbac0d438dba91eec658ead5..a13d3ba5e7dff532fccfaf697e69815e427d4c96 100644
|
index 76069dbd56f6452af638e2e3311b44d3e9a1f4a5..342cae912054d28c5dacf4d38babbd4092f08075 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
||||||
@@ -93,6 +93,18 @@ public class Bat extends AmbientCreature {
|
@@ -93,6 +93,18 @@ public class Bat extends AmbientCreature {
|
||||||
@@ -459,7 +459,7 @@ index b9c692a2f42976eb459ed6a4078dca28eddeb459..5f37b335dded41fdd122e8e0677c2c45
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||||
index 682c69ea9cdcc1ab9fd19e28eef410ecf27bf9f3..d058f212b226b1f5efa0ba3650381e6c32a6fdac 100644
|
index ac7b58d4ad0e3c3d3fe8aaf7a6b4237786c09e75..72f84f5a951c96c360206b43154a95247b1f8b42 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||||
@@ -118,6 +118,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
|
@@ -118,6 +118,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
|
||||||
@@ -475,7 +475,7 @@ index 682c69ea9cdcc1ab9fd19e28eef410ecf27bf9f3..d058f212b226b1f5efa0ba3650381e6c
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||||
index 9b0a0736aa46e60f21c85cc88b67af342c34d5db..ee548f48f850e65542d8b0270881ad7664d41272 100644
|
index d6e527fb592f721aac59d52a1e84e147da62913b..6ddc233dff914abda9895b4a4a6218f8642ae07e 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||||
@@ -104,6 +104,11 @@ public class Goat extends Animal {
|
@@ -104,6 +104,11 @@ public class Goat extends Animal {
|
||||||
@@ -792,7 +792,7 @@ index 790d4abbc8e0b288e20e72e63f8190e938e2fecb..b9ee6fdaad09c92fdeea2e5be6068182
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||||
index 411baa912b61ce319faef73e187ebf7ac1bacde5..f7af29102b378b769edc6f5a92523c5f4cc12dce 100644
|
index 324173e0b97a3f5ed657f876f1723a909eb7f0da..05d7dd5a9a302b6281e56f8dfe54168b524a89f2 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||||
@@ -137,6 +137,11 @@ public class Creeper extends Monster implements PowerableMob {
|
@@ -137,6 +137,11 @@ public class Creeper extends Monster implements PowerableMob {
|
||||||
@@ -845,7 +845,7 @@ index 82b03488178962eb74fe252d561ba8cee32eda95..01be40f1740fc689b101fc596dbbb1e6
|
|||||||
|
|
||||||
public static AttributeSupplier.Builder createAttributes() {
|
public static AttributeSupplier.Builder createAttributes() {
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
index daac8d2ee377d960cac361e6977bcea4656b8d79..f6be4048ea139acad49200e4dba1e54cff899775 100644
|
index 8f8c40d5265f9e124a255af92eb43b51322ffd74..dcbf6dac3fca471760e2b460e74d90f6d80bcae9 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
@@ -107,6 +107,11 @@ public class EnderMan extends Monster implements NeutralMob {
|
@@ -107,6 +107,11 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||||
@@ -1384,7 +1384,7 @@ index 838420f5d61eaf5e4abb52751b010d57def21d6f..aca84be04c50188612f69ee20e9a0948
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||||
index 0a63ee3a292111143104f764e01cabbc4c2100ba..2d06a3ac4a5763cf948fc578ff5320c22c01c219 100644
|
index f2afd5f8ad916f0cf4674c6b4f973715999c6641..e99ffbf30652e188e88f8e17ed41d39ff25c9f73 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||||
@@ -82,6 +82,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
@@ -82,6 +82,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||||
@@ -1400,7 +1400,7 @@ index 0a63ee3a292111143104f764e01cabbc4c2100ba..2d06a3ac4a5763cf948fc578ff5320c2
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||||
index 0b6f4460f29e4b04c715eceba0d7fbda0b08c037..272a744ca52c34b5868b7979fa2b4143eeee1084 100644
|
index 33ffbc4ac5cecec8487c0529c1dee8596bb0ab30..48ae24daa126e1b3b2a740af15db756d412adbf7 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||||
@@ -112,6 +112,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
@@ -112,6 +112,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||||
@@ -1432,10 +1432,10 @@ index ff149234a8f3e1c94961e41d5bc8117460b301d9..75db61c5aab66234b26f7899229ddca8
|
|||||||
|
|
||||||
public static AttributeSupplier.Builder createAttributes() {
|
public static AttributeSupplier.Builder createAttributes() {
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||||
index a9be652ff5960f233d95bad98900c63c203473c4..6a3c265502b3f7e6500056f6070c762a4c034d47 100644
|
index 2bbfa9a7d0fe71597e4e9a1e883be68018caadd7..bf81e2f1610727443b179a66237ca209a3cc8fd4 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||||
@@ -173,6 +173,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -175,6 +175,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
protected void registerGoals() {
|
protected void registerGoals() {
|
||||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
|
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
|
||||||
}
|
}
|
||||||
@@ -236,7 +236,7 @@ index 59457378820d7f2899254a6aeef4c30c926ce543..b280d42a0298c04647945cde7bd5a4f5
|
|||||||
}
|
}
|
||||||
|
|
||||||
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 1c969433099b5b0f4f6f946291baea3e28722f9f..5bbfde1c69339f4ba1a0ed856b5de19742742c74 100644
|
index b0344a0baa22c4312ac9d1049b14671d932f76e2..2f684a8f976f1f1a18c31f4c1a7eba9080099e55 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
|
||||||
@@ -177,4 +177,39 @@ public class PurpurConfig {
|
@@ -177,4 +177,39 @@ public class PurpurConfig {
|
||||||
@@ -73,7 +73,7 @@ index 9918cc39247037c0a8379071167c5560dce9bc8d..9ab314490b975417e28f129c72077a71
|
|||||||
return this.stats;
|
return this.stats;
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
index 503323974eb4ee076636ef495d7c475d1ade00cd..29a6f5da6c655a57e1d13a05f1ff302806b0e8a5 100644
|
index d89e7697f12f06f49d4063fa0b06c90a56c6967c..1c527309483db75d0bade9662280601078895306 100644
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
@@ -335,6 +335,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -335,6 +335,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
@@ -119,7 +119,7 @@ index 503323974eb4ee076636ef495d7c475d1ade00cd..29a6f5da6c655a57e1d13a05f1ff3028
|
|||||||
// Skip the first time we do this
|
// Skip the first time we do this
|
||||||
if (true) { // Spigot - don't skip any move events
|
if (true) { // Spigot - don't skip any move events
|
||||||
Location oldTo = to.clone();
|
Location oldTo = to.clone();
|
||||||
@@ -1538,7 +1560,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -1539,7 +1561,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
|
|
||||||
if (!this.player.isChangingDimension() && d11 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot
|
if (!this.player.isChangingDimension() && d11 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot
|
||||||
flag2 = true; // Paper - diff on change, this should be moved wrongly
|
flag2 = true; // Paper - diff on change, this should be moved wrongly
|
||||||
@@ -128,7 +128,7 @@ index 503323974eb4ee076636ef495d7c475d1ade00cd..29a6f5da6c655a57e1d13a05f1ff3028
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.player.absMoveTo(d0, d1, d2, f, f1);
|
this.player.absMoveTo(d0, d1, d2, f, f1);
|
||||||
@@ -1589,6 +1611,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -1590,6 +1612,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
this.lastYaw = to.getYaw();
|
this.lastYaw = to.getYaw();
|
||||||
this.lastPitch = to.getPitch();
|
this.lastPitch = to.getPitch();
|
||||||
|
|
||||||
@@ -172,7 +172,7 @@ index 72abebff2018cde2922e97ad6478f93da9aed3ec..412963d7af38a53b6010007278d959a5
|
|||||||
private EntitySelector() {}
|
private EntitySelector() {}
|
||||||
// Paper start
|
// Paper start
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
|
diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
|
||||||
index a7575b5ef56af6f53448d391abb4956e130148ca..0a9e4dc5d6d567605c587df9bcbb57d379b62877 100644
|
index e752c83df50fb9b670ecea2abc95426c2a009b6f..baa4f9026d31de92210300ecb8ee8c1b6d575435 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
|
--- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
|
+++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
|
||||||
@@ -64,6 +64,10 @@ public class TargetingConditions {
|
@@ -64,6 +64,10 @@ public class TargetingConditions {
|
||||||
@@ -260,7 +260,7 @@ index 72501f09d42f73a108e96f519be4382ee4e3b230..573d25a15bafce004d8b26c5e7dea3c5
|
|||||||
// Purpur end
|
// Purpur 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 7cacdea90641b16ad42f34266e8157c246152089..5d034ccb016265edd2b6c1f7f7c622cef3ad52b6 100644
|
index 2f684a8f976f1f1a18c31f4c1a7eba9080099e55..c517873abdcb1e5334ba9e7a1c2f06bbbc411f87 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
|
||||||
@@ -174,8 +174,16 @@ public class PurpurConfig {
|
@@ -174,8 +174,16 @@ public class PurpurConfig {
|
||||||
@@ -310,10 +310,10 @@ index a85c9f24729ea44ef072a6d3d9ffeb93e8f0a486..765523911e448bd7f73e3f6cb8d0e78d
|
|||||||
public boolean untamedTamablesAreRidable = true;
|
public boolean untamedTamablesAreRidable = true;
|
||||||
public boolean useNightVisionWhenRiding = false;
|
public boolean useNightVisionWhenRiding = false;
|
||||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||||
index 1b42c98956342832c37f0aa266f85271daa4ba5b..cea4acefa57cf59dd0863e27777618c49eabab5e 100644
|
index b87756d9a7b04ea2613208984b2583eca3f32af6..7529bca82efe4c33dbf781bcf6f8b583fa54fa95 100644
|
||||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||||
@@ -199,6 +199,7 @@ public class ActivationRange
|
@@ -203,6 +203,7 @@ public class ActivationRange
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -17,10 +17,10 @@ index c7e4330c93baff1f3027d7c75cf857b673d38970..5134fed0cd0eedbe0c2177bce91b978b
|
|||||||
public final boolean spawnNpcs = this.get("spawn-npcs", true);
|
public final boolean spawnNpcs = this.get("spawn-npcs", true);
|
||||||
public final boolean pvp = this.get("pvp", true);
|
public final boolean pvp = this.get("pvp", true);
|
||||||
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 78372d9b900e7506bfbcf53e8fa70043cc140fdb..364e7957180c2dbea81cbb0e10eb6b080f1b2f6a 100644
|
index fb290333f407776e732d3588233a35afa2ab989c..4a3025635de5f5f889e642fe10dd0b7ba7ec39d2 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
|
||||||
@@ -2950,4 +2950,11 @@ public final class CraftServer implements Server {
|
@@ -2955,4 +2955,11 @@ public final class CraftServer implements Server {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable server mod name
|
|||||||
|
|
||||||
|
|
||||||
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 cb2d56bc77132883876e367d332fef081bb32c72..bdda859e559f4a26e85d2fdc9e9e8dc13ee66cc7 100644
|
index 7191a7e9a7fcb4268c5aaf85bf9c896fa2bfd676..70d3fc30e21a6c3c3d7a87ce2e43dd2eb8322b2c 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
|
||||||
@@ -1655,7 +1655,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1657,7 +1657,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
|
||||||
@DontObfuscate
|
@DontObfuscate
|
||||||
public String getServerModName() {
|
public String getServerModName() {
|
||||||
@@ -18,7 +18,7 @@ index cb2d56bc77132883876e367d332fef081bb32c72..bdda859e559f4a26e85d2fdc9e9e8dc1
|
|||||||
|
|
||||||
public SystemReport fillSystemReport(SystemReport details) {
|
public SystemReport fillSystemReport(SystemReport details) {
|
||||||
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 c55c434263e0b85fa75c23e943c3bfbc2e836c6c..28b122a4c91ffa509359fd14eb2d232769bbdfd1 100644
|
index c517873abdcb1e5334ba9e7a1c2f06bbbc411f87..16ed8266bbc08963aa3973f2e48a8f76b640ed18 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
|
||||||
@@ -186,6 +186,11 @@ public class PurpurConfig {
|
@@ -186,6 +186,11 @@ public class PurpurConfig {
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] LivingEntity safeFallDistance
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
index 10e7c382e3e25ede3452b02af0e4d538e9403061..d45cc25d37906ba0c2e5d80936aaae1d7f9f4159 100644
|
index a24bffefc209ebfe31e553ceef212615edeb2687..2dacb572e2164ccd381c4e3cbc39d9238a89f500 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -257,6 +257,7 @@ public abstract class LivingEntity extends Entity {
|
@@ -256,6 +256,7 @@ public abstract class LivingEntity extends Entity {
|
||||||
private boolean skipDropExperience;
|
private boolean skipDropExperience;
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
public int expToDrop;
|
public int expToDrop;
|
||||||
@@ -16,7 +16,7 @@ index 10e7c382e3e25ede3452b02af0e4d538e9403061..d45cc25d37906ba0c2e5d80936aaae1d
|
|||||||
public boolean forceDrops;
|
public boolean forceDrops;
|
||||||
public ArrayList<org.bukkit.inventory.ItemStack> drops = new ArrayList<org.bukkit.inventory.ItemStack>();
|
public ArrayList<org.bukkit.inventory.ItemStack> drops = new ArrayList<org.bukkit.inventory.ItemStack>();
|
||||||
public final org.bukkit.craftbukkit.attribute.CraftAttributeMap craftAttributes;
|
public final org.bukkit.craftbukkit.attribute.CraftAttributeMap craftAttributes;
|
||||||
@@ -357,8 +358,8 @@ public abstract class LivingEntity extends Entity {
|
@@ -356,8 +357,8 @@ public abstract class LivingEntity extends Entity {
|
||||||
this.tryAddSoulSpeed();
|
this.tryAddSoulSpeed();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ index 10e7c382e3e25ede3452b02af0e4d538e9403061..d45cc25d37906ba0c2e5d80936aaae1d
|
|||||||
|
|
||||||
if (!state.isAir()) {
|
if (!state.isAir()) {
|
||||||
double d1 = Math.min((double) (0.2F + f / 15.0F), 2.5D);
|
double d1 = Math.min((double) (0.2F + f / 15.0F), 2.5D);
|
||||||
@@ -1998,7 +1999,7 @@ public abstract class LivingEntity extends Entity {
|
@@ -2020,7 +2021,7 @@ public abstract class LivingEntity extends Entity {
|
||||||
MobEffectInstance mobeffect = this.getEffect(MobEffects.JUMP);
|
MobEffectInstance mobeffect = this.getEffect(MobEffects.JUMP);
|
||||||
float f2 = mobeffect == null ? 0.0F : (float) (mobeffect.getAmplifier() + 1);
|
float f2 = mobeffect == null ? 0.0F : (float) (mobeffect.getAmplifier() + 1);
|
||||||
|
|
||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Lagging threshold
|
|||||||
|
|
||||||
|
|
||||||
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 bdda859e559f4a26e85d2fdc9e9e8dc13ee66cc7..ac2b692fc5e579dc139540ab6b7e2396bdb84dfb 100644
|
index 70d3fc30e21a6c3c3d7a87ce2e43dd2eb8322b2c..7c731c72a19c43f4b291557310c632f3d1fcc9cb 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
|
||||||
@@ -305,6 +305,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -305,6 +305,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
@@ -16,7 +16,7 @@ index bdda859e559f4a26e85d2fdc9e9e8dc13ee66cc7..ac2b692fc5e579dc139540ab6b7e2396
|
|||||||
|
|
||||||
public volatile Thread shutdownThread; // Paper
|
public volatile Thread shutdownThread; // Paper
|
||||||
public volatile boolean abnormalExit = false; // Paper
|
public volatile boolean abnormalExit = false; // Paper
|
||||||
@@ -1156,6 +1157,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1158,6 +1159,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
this.recentTps[1] = tps5.getAverage();
|
this.recentTps[1] = tps5.getAverage();
|
||||||
this.recentTps[2] = tps15.getAverage();
|
this.recentTps[2] = tps15.getAverage();
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -25,10 +25,10 @@ index bdda859e559f4a26e85d2fdc9e9e8dc13ee66cc7..ac2b692fc5e579dc139540ab6b7e2396
|
|||||||
}
|
}
|
||||||
// Spigot end
|
// Spigot end
|
||||||
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 364e7957180c2dbea81cbb0e10eb6b080f1b2f6a..252585f886e196b46ceecf35f0bb65fc81a704fe 100644
|
index 4a3025635de5f5f889e642fe10dd0b7ba7ec39d2..b95002c01d8f6f4013708a21a44ef8dcd3653887 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
|
||||||
@@ -2956,5 +2956,10 @@ public final class CraftServer implements Server {
|
@@ -2961,5 +2961,10 @@ public final class CraftServer implements Server {
|
||||||
public String getServerName() {
|
public String getServerName() {
|
||||||
return this.getProperties().serverName;
|
return this.getProperties().serverName;
|
||||||
}
|
}
|
||||||
@@ -40,7 +40,7 @@ index 364e7957180c2dbea81cbb0e10eb6b080f1b2f6a..252585f886e196b46ceecf35f0bb65fc
|
|||||||
// Purpur end
|
// Purpur 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 28b122a4c91ffa509359fd14eb2d232769bbdfd1..80dee74274ba6a95029db8c812feeb2861ea9a36 100644
|
index 16ed8266bbc08963aa3973f2e48a8f76b640ed18..dd3ed29fdac7ae1f35ecf520f92b9f36ca6fdb98 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
|
||||||
@@ -191,6 +191,11 @@ public class PurpurConfig {
|
@@ -191,6 +191,11 @@ public class PurpurConfig {
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] PlayerSetSpawnerTypeWithEggEvent
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
|
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
|
||||||
index e5cd4b7609243669c9d84ff8a4988c209e6101aa..d4c75ccc3514c41f6d6fecf8555c34c89385b379 100644
|
index 4f3708f5f5dcb6af8225bda1cc9204a6d974665f..3fb94a9ceb66cbc419b0b6ceb96310c8f2877257 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
|
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
|
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
|
||||||
@@ -306,6 +306,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
|
@@ -308,6 +308,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
|
||||||
return (EntityType) Registry.register(BuiltInRegistries.ENTITY_TYPE, id, (EntityType<T>) type.build(id)); // CraftBukkit - decompile error
|
return (EntityType) Registry.register(BuiltInRegistries.ENTITY_TYPE, id, (EntityType<T>) type.build(id)); // CraftBukkit - decompile error
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ index e5cd4b7609243669c9d84ff8a4988c209e6101aa..d4c75ccc3514c41f6d6fecf8555c34c8
|
|||||||
public static ResourceLocation getKey(EntityType<?> type) {
|
public static ResourceLocation getKey(EntityType<?> type) {
|
||||||
return BuiltInRegistries.ENTITY_TYPE.getKey(type);
|
return BuiltInRegistries.ENTITY_TYPE.getKey(type);
|
||||||
}
|
}
|
||||||
@@ -513,6 +523,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
|
@@ -515,6 +525,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
|
||||||
return this.category;
|
return this.category;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,10 +82,10 @@ index 9ab314490b975417e28f129c72077a7198cf4cc7..4dc545c478e24863c8e9c68060af072f
|
|||||||
public Scoreboard getScoreboard() {
|
public Scoreboard getScoreboard() {
|
||||||
return this.getBukkitEntity().getScoreboard().getHandle();
|
return this.getBukkitEntity().getScoreboard().getHandle();
|
||||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
index 29a6f5da6c655a57e1d13a05f1ff302806b0e8a5..07ef3d814feb51f110a12aaeb5e826ba61cc0812 100644
|
index 1c527309483db75d0bade9662280601078895306..0bb020fb67f546ca18f4a6ca08876f30f62c6de9 100644
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
@@ -2094,12 +2094,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -2095,12 +2095,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
@Override
|
@Override
|
||||||
public void handleResourcePackResponse(ServerboundResourcePackPacket packet) {
|
public void handleResourcePackResponse(ServerboundResourcePackPacket packet) {
|
||||||
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel());
|
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel());
|
||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Alternative Keepalive Handling
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
index af1afba7346e573b5704cc6fcec1bb1371928fa5..8920383edbd9908087be320f47d9ba8e536cff42 100644
|
index 0bb020fb67f546ca18f4a6ca08876f30f62c6de9..89ceb3238ed0ec774bc74490a6a598bf96a13ad1 100644
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
@@ -259,6 +259,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -259,6 +259,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
@@ -38,7 +38,7 @@ index af1afba7346e573b5704cc6fcec1bb1371928fa5..8920383edbd9908087be320f47d9ba8e
|
|||||||
if (this.keepAlivePending) {
|
if (this.keepAlivePending) {
|
||||||
if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected
|
if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected
|
||||||
ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info
|
ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info
|
||||||
@@ -3489,6 +3505,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -3491,6 +3507,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleKeepAlive(ServerboundKeepAlivePacket packet) {
|
public void handleKeepAlive(ServerboundKeepAlivePacket packet) {
|
||||||
@@ -56,7 +56,7 @@ index af1afba7346e573b5704cc6fcec1bb1371928fa5..8920383edbd9908087be320f47d9ba8e
|
|||||||
if (this.keepAlivePending && packet.getId() == this.keepAliveChallenge) {
|
if (this.keepAlivePending && packet.getId() == this.keepAliveChallenge) {
|
||||||
int i = (int) (Util.getMillis() - this.keepAliveTime);
|
int i = (int) (Util.getMillis() - this.keepAliveTime);
|
||||||
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 80dee74274ba6a95029db8c812feeb2861ea9a36..cf13e83614d63aaedab1590d88ca4e92b45aa7ed 100644
|
index dd3ed29fdac7ae1f35ecf520f92b9f36ca6fdb98..70d128ed8d19d47056d2f3ba3f75efb12bcb0347 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
|
||||||
@@ -196,6 +196,11 @@ public class PurpurConfig {
|
@@ -196,6 +196,11 @@ public class PurpurConfig {
|
||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] MC-168772 Fix - Add turtle egg block options
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java
|
||||||
index 68f122cdfb546a9d0d826bc2ef88549b81de4ab8..d54a46fc8d78df54777e4a7a250a8d0ae74e9831 100644
|
index 70d46aafa9c16921e5c5bed3d97b8f402e25038a..7edbe55556d3072690d535575e8704c617465770 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java
|
--- a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java
|
+++ b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java
|
||||||
@@ -9,11 +9,15 @@ import net.minecraft.tags.BlockTags;
|
@@ -9,11 +9,15 @@ import net.minecraft.tags.BlockTags;
|
||||||
@@ -50,7 +50,7 @@ index 68f122cdfb546a9d0d826bc2ef88549b81de4ab8..d54a46fc8d78df54777e4a7a250a8d0a
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
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 ed0e411f3960db455a8bdb19a8129db90bd48761..a3da7a5f4337a95adc351f95a806af4caf821945 100644
|
index c46dc432e0a004c1912dc2eeb5da41cc76dfd7e8..0ebed2363ee959a10eddb60d2cdfc4d2b81b49d9 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
|
||||||
@@ -147,6 +147,15 @@ public class PurpurWorldConfig {
|
@@ -147,6 +147,15 @@ public class PurpurWorldConfig {
|
||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Disable outdated build check
|
|||||||
|
|
||||||
|
|
||||||
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 1913792032ef81a6f331cfdfc97052cfe53e767e..7b6063bede6771eb15bc5b01dc8bce7c2949c6b4 100644
|
index f8c4878cc558c6fe76c99795f9963015ea21312b..c2c5c560165eb9ac9920727aaf730a5280107782 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
|
||||||
@@ -278,7 +278,7 @@ public class Main {
|
@@ -278,7 +278,7 @@ public class Main {
|
||||||
@@ -120,7 +120,7 @@ index c1c5e884f00398032196ee71b55b348fcfce21ce..ed032918fb33d60c2d60d4db9275dddf
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
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 a3da7a5f4337a95adc351f95a806af4caf821945..60948438791c1c323789ed96ea7487f99dd0e572 100644
|
index 0ebed2363ee959a10eddb60d2cdfc4d2b81b49d9..bab472dc673404dc339e5952f68f6c9561de58af 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
|
||||||
@@ -535,6 +535,10 @@ public class PurpurWorldConfig {
|
@@ -535,6 +535,10 @@ public class PurpurWorldConfig {
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Zombie horse naturally spawn
|
|||||||
|
|
||||||
|
|
||||||
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 bc1a8e2bb56e25e49bdbf5a80c5d14ed87605f2c..989c42ac9867add34b151cb4586ba90e12c75dd5 100644
|
index a24ddd5d02a6355112a9e3bee2131fbe0f9b7e0f..0526d1d2cf0d6dca1be03184b4dd8e33c896272e 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
|
||||||
@@ -816,10 +816,18 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
@@ -832,10 +832,18 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||||
boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01D) && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper
|
boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01D) && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper
|
||||||
|
|
||||||
if (flag1) {
|
if (flag1) {
|
||||||
@@ -30,7 +30,7 @@ index bc1a8e2bb56e25e49bdbf5a80c5d14ed87605f2c..989c42ac9867add34b151cb4586ba90e
|
|||||||
entityhorseskeleton.setPos((double) blockposition.getX(), (double) blockposition.getY(), (double) blockposition.getZ());
|
entityhorseskeleton.setPos((double) blockposition.getX(), (double) blockposition.getY(), (double) blockposition.getZ());
|
||||||
this.addFreshEntity(entityhorseskeleton, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit
|
this.addFreshEntity(entityhorseskeleton, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit
|
||||||
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 60948438791c1c323789ed96ea7487f99dd0e572..3285bfcc8b17a729a42c106764cf7390d49323c5 100644
|
index bab472dc673404dc339e5952f68f6c9561de58af..f9ef2118787f5fdac7964bb6975a3d6fb5b7760f 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
|
||||||
@@ -1454,6 +1454,7 @@ public class PurpurWorldConfig {
|
@@ -1454,6 +1454,7 @@ public class PurpurWorldConfig {
|
||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Charged creeper naturally spawn
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||||
index f7af29102b378b769edc6f5a92523c5f4cc12dce..fc44e1f4751d405af73aae62658f0257d599e6f7 100644
|
index 05d7dd5a9a302b6281e56f8dfe54168b524a89f2..2a733951b5b16c3e7da613744eb76414af38374c 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||||
@@ -142,6 +142,14 @@ public class Creeper extends Monster implements PowerableMob {
|
@@ -142,6 +142,14 @@ public class Creeper extends Monster implements PowerableMob {
|
||||||
@@ -24,7 +24,7 @@ index f7af29102b378b769edc6f5a92523c5f4cc12dce..fc44e1f4751d405af73aae62658f0257
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
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 3285bfcc8b17a729a42c106764cf7390d49323c5..904d8166e654da9b10e362a15be187ed30e7060f 100644
|
index f9ef2118787f5fdac7964bb6975a3d6fb5b7760f..68209ce9715e0717486153bd71572d558dd48851 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
|
||||||
@@ -326,6 +326,7 @@ public class PurpurWorldConfig {
|
@@ -326,6 +326,7 @@ public class PurpurWorldConfig {
|
||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Rabbit naturally spawn toast and killer
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||||
index 45f8e38bf4b4b446fe2ec056e31ffd05feaab929..d5d7b4681e08225d3be86db5712c8520174c55ff 100644
|
index b3bfb94529dfaa912f0e5ce0965b0740f09cf55e..592d72857aea88425a6359818f96f2271db7eb3b 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||||
@@ -465,10 +465,23 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
|
@@ -465,10 +465,23 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
|
||||||
@@ -75,7 +75,7 @@ index 4f10430e55d634b4e4bf74582a8032cc42938c7f..503721cce0a5207a44b016a4234c17a8
|
|||||||
// Paper start - Cancellable death event
|
// Paper start - Cancellable death event
|
||||||
protected org.bukkit.event.entity.EntityDeathEvent dropAllDeathLoot(DamageSource source) {
|
protected org.bukkit.event.entity.EntityDeathEvent dropAllDeathLoot(DamageSource source) {
|
||||||
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 7abd787324ffff3394ec3f360ff363a6de2534fb..b0ed6d3b829d998d29af650ad723ae104d351bd2 100644
|
index 24f529b4ca5f4e83ac33e255d4f602de54732fb3..924016926fa8d6df1667a1b39bf0fa6328d871b1 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
|
||||||
@@ -490,6 +490,7 @@ public class PurpurWorldConfig {
|
@@ -490,6 +490,7 @@ public class PurpurWorldConfig {
|
||||||
@@ -59,7 +59,7 @@ index bd1d90fa59d420577baada18d5afd04a85ad76a9..4e837590faebcb35426f8b9d023b2ae2
|
|||||||
this.goalSelector.addGoal(5, new RandomStrollGoal(this, 1.0D));
|
this.goalSelector.addGoal(5, new RandomStrollGoal(this, 1.0D));
|
||||||
this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F));
|
this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F));
|
||||||
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 25b6861e031e87ffa2344a0a014b33e5560f85e2..3af6da4508442d349fb93f9529ef7d17f0544a37 100644
|
index 924016926fa8d6df1667a1b39bf0fa6328d871b1..d1323d3857e4455d2fbfbfdb004fde24a475132f 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
|
||||||
@@ -941,6 +941,8 @@ public class PurpurWorldConfig {
|
@@ -941,6 +941,8 @@ public class PurpurWorldConfig {
|
||||||
@@ -51,7 +51,7 @@ index e4200b09f54861d61c9dae40e6883aa19265e295..471647830f3ae90f8867282edd6fb20f
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
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 3af6da4508442d349fb93f9529ef7d17f0544a37..edc82ce158d50ac8def2453ccd980cdcf2f7d970 100644
|
index d1323d3857e4455d2fbfbfdb004fde24a475132f..31a4f178239f35e1f82a771b8677429289a2dcac 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
|
||||||
@@ -280,6 +280,7 @@ public class PurpurWorldConfig {
|
@@ -280,6 +280,7 @@ public class PurpurWorldConfig {
|
||||||
@@ -17,7 +17,7 @@ index b136cdc13d94bc34c998a1986e0c93525356ac5c..76c83fdd744cc8f31a52c733de521a6f
|
|||||||
if (!this.canTick) {
|
if (!this.canTick) {
|
||||||
if (this.noTickPoseDirty) {
|
if (this.noTickPoseDirty) {
|
||||||
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 edc82ce158d50ac8def2453ccd980cdcf2f7d970..548f0815516cfdccca7e280410eee15bd268ba87 100644
|
index 31a4f178239f35e1f82a771b8677429289a2dcac..0a6228781eaa7195f028427da134858e2f0ee094 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
|
||||||
@@ -93,6 +93,11 @@ public class PurpurWorldConfig {
|
@@ -93,6 +93,11 @@ public class PurpurWorldConfig {
|
||||||
@@ -51,7 +51,7 @@ index 5f407535298a31a34cfe114dd863fd6a9b977707..29c7e33fe961020e5a0007287fe9b663
|
|||||||
}
|
}
|
||||||
|
|
||||||
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 548f0815516cfdccca7e280410eee15bd268ba87..915853e96d9572a6b057604b1efcee1b4b9129f0 100644
|
index 0a6228781eaa7195f028427da134858e2f0ee094..d6b0e7b263bcdf3270ea41a85d92ba5f8f6a2db1 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
|
||||||
@@ -253,6 +253,9 @@ public class PurpurWorldConfig {
|
@@ -253,6 +253,9 @@ public class PurpurWorldConfig {
|
||||||
@@ -114,7 +114,7 @@ index 7eecdb4be5ee7de39ccb86b4bfe98491f8cba9b6..8744649fbd3f11485d5862d6f1fb32ea
|
|||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
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 9a162f069c0452acf3eccfa91198b9b6aa6be35d..5755607fd0066418876fd02b8c4fd45447592cf5 100644
|
index d6b0e7b263bcdf3270ea41a85d92ba5f8f6a2db1..2b959830cc4d7f0c8ee55a6ebdb7fb37712ec706 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
|
||||||
@@ -323,6 +323,7 @@ public class PurpurWorldConfig {
|
@@ -323,6 +323,7 @@ public class PurpurWorldConfig {
|
||||||
@@ -27,7 +27,7 @@ index 372574f224d21b8801f40e6c4991d64975cd79db..27f616534ff5280528fd2c681d8335e4
|
|||||||
if (!this.level.isClientSide) {
|
if (!this.level.isClientSide) {
|
||||||
player.startRiding(this);
|
player.startRiding(this);
|
||||||
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 f46d217ba4a2bc96ff6ba79d096e3675c866fecd..59087f5355d56d45e7c7ff2c5bfeb5a6c1301c6f 100644
|
index 2b959830cc4d7f0c8ee55a6ebdb7fb37712ec706..cf09c49c4520e0fe37f580f6fdfcc46b21edd054 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
|
||||||
@@ -892,6 +892,7 @@ public class PurpurWorldConfig {
|
@@ -892,6 +892,7 @@ public class PurpurWorldConfig {
|
||||||
@@ -18,7 +18,7 @@ index 01ba677cb6ffc9f4eabf78cfc67f27051a248f0d..e8672137aa9ff8c7ae11b6e5c963a2db
|
|||||||
}
|
}
|
||||||
|
|
||||||
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 2a1afd232e01b55ed3ebe470aa4b0aad536c14d6..1b72c0a90f5955daf71908143824a8035a31393c 100644
|
index cf26071ce5a789019c743ff5ce742e2150bab9e0..55cd98d1e9aaf6d3248bb52620c5907221c14d65 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
|
||||||
@@ -436,6 +436,7 @@ public class PurpurWorldConfig {
|
@@ -436,6 +436,7 @@ public class PurpurWorldConfig {
|
||||||
@@ -50,7 +50,7 @@ index aface9a9697095a29edaf73c9cdabc2c1414b9d7..1a04d0a601b8e481dd6e2592b849b907
|
|||||||
} else {
|
} else {
|
||||||
return InteractionResult.PASS;
|
return InteractionResult.PASS;
|
||||||
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 14d8928f43aa8d3bfc34e724356a877e05f19846..a02e09cc37251fbdf0e6336ae628f9f8685dafc9 100644
|
index 55cd98d1e9aaf6d3248bb52620c5907221c14d65..8103b64483d33c9551aa525b93c9e362099207f7 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
|
||||||
@@ -152,6 +152,11 @@ public class PurpurWorldConfig {
|
@@ -152,6 +152,11 @@ public class PurpurWorldConfig {
|
||||||
@@ -18,7 +18,7 @@ index d089887030ac7c7a79abca97134ba9291e244059..4208833252a5b5c74d294dc3435869d7
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
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 b70d457584a9b3564784e28e47b359917d825aa9..d7cfbfe6a44d076b1e6efee7c9868924290e1fc6 100644
|
index 8103b64483d33c9551aa525b93c9e362099207f7..26bdb2016954d8e028fb638e351ae3d2cb41da07 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
|
||||||
@@ -152,6 +152,11 @@ public class PurpurWorldConfig {
|
@@ -152,6 +152,11 @@ public class PurpurWorldConfig {
|
||||||
@@ -112,7 +112,7 @@ index eec7d7a5b558830111831792c42665724613af23..6a5e592c5c9a972a7f42eca398aac5f2
|
|||||||
this.move(MoverType.SELF, this.getDeltaMovement());
|
this.move(MoverType.SELF, this.getDeltaMovement());
|
||||||
if (!this.onGround) {
|
if (!this.onGround) {
|
||||||
diff --git a/src/main/java/net/minecraft/world/item/MinecartItem.java b/src/main/java/net/minecraft/world/item/MinecartItem.java
|
diff --git a/src/main/java/net/minecraft/world/item/MinecartItem.java b/src/main/java/net/minecraft/world/item/MinecartItem.java
|
||||||
index 127a799f7848b32664b77bf67847ca6b8ac9a90d..178cd88a7de291136e0486617e8347b72cacaf20 100644
|
index c6d2f764efa9b8bec730bbe757d480e365b25ccc..33a30d26da2401535f0a72acb2bbffec1aef151e 100644
|
||||||
--- a/src/main/java/net/minecraft/world/item/MinecartItem.java
|
--- a/src/main/java/net/minecraft/world/item/MinecartItem.java
|
||||||
+++ b/src/main/java/net/minecraft/world/item/MinecartItem.java
|
+++ b/src/main/java/net/minecraft/world/item/MinecartItem.java
|
||||||
@@ -120,8 +120,9 @@ public class MinecartItem extends Item {
|
@@ -120,8 +120,9 @@ public class MinecartItem extends Item {
|
||||||
@@ -136,7 +136,7 @@ index 127a799f7848b32664b77bf67847ca6b8ac9a90d..178cd88a7de291136e0486617e8347b7
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
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 9ebc53d434737c8cd39073470b2b5fcbad167812..b40e09b4fdf26c08c048cbf3cad4d4cabec0fe90 100644
|
index 25ce337ed266be7bafeacd9eb6f53a9474775fc5..86d765cd40cda9c8b7f4f7898d604ba2fdefa8fd 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
|
||||||
@@ -77,7 +77,7 @@ import net.minecraft.world.phys.shapes.VoxelShape;
|
@@ -77,7 +77,7 @@ import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
@@ -149,7 +149,7 @@ index 9ebc53d434737c8cd39073470b2b5fcbad167812..b40e09b4fdf26c08c048cbf3cad4d4ca
|
|||||||
protected final float explosionResistance;
|
protected final float explosionResistance;
|
||||||
protected final boolean isRandomlyTicking;
|
protected final boolean isRandomlyTicking;
|
||||||
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 de6e988e6d5d3c5a6d6fd7f00124c832013367a4..722c589bec9a1cf353f36027c63d9cf0a169c417 100644
|
index 26bdb2016954d8e028fb638e351ae3d2cb41da07..4fdcb94be1e7f653388000712b0e13417b77703e 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
|
||||||
@@ -98,6 +98,68 @@ public class PurpurWorldConfig {
|
@@ -98,6 +98,68 @@ public class PurpurWorldConfig {
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user