Add Pufferfish Patches

This commit is contained in:
BillyGalbreath
2022-01-04 23:14:55 -06:00
parent 468a199184
commit ed169a31bd
127 changed files with 4975 additions and 379 deletions

View File

@@ -3,7 +3,7 @@ import io.papermc.paperweight.util.constants.*
plugins { plugins {
java java
`maven-publish` `maven-publish`
id("com.github.johnrengelman.shadow") version "7.1.1" apply false id("com.github.johnrengelman.shadow") version "7.1.2" apply false
id("io.papermc.paperweight.patcher") version "1.3.3" id("io.papermc.paperweight.patcher") version "1.3.3"
} }
@@ -56,6 +56,7 @@ subprojects {
maven("https://repo.md-5.net/content/repositories/releases/") maven("https://repo.md-5.net/content/repositories/releases/")
maven("https://hub.spigotmc.org/nexus/content/groups/public/") maven("https://hub.spigotmc.org/nexus/content/groups/public/")
maven("https://oss.sonatype.org/content/repositories/snapshots/") maven("https://oss.sonatype.org/content/repositories/snapshots/")
maven("https://jitpack.io")
} }
} }

View File

@@ -0,0 +1,294 @@
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-gg
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 001c2b963205012f340db0d539e4033c748124ce..554f5e35954f35aecaf454853a0a2999f15d19bc 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -40,6 +40,7 @@ dependencies {
apiAndDocs("net.kyori:adventure-text-serializer-plain")
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")
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/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index 1366496271c4c7f72d1e5f990e51775b1c371f99..05bb388407b5bd8a942478237580a38ffaa388c8 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -581,7 +581,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 ServerExceptionEvent(new ServerPluginEnableDisableException(msg, ex, plugin)));
}
// Paper end
@@ -640,14 +642,16 @@ 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 ServerExceptionEvent)) { // We don't want to cause an endless event loop
callEvent(new ServerExceptionEvent(new ServerEventException(msg, ex, registration.getPlugin(), registration.getListener(), event)));
}
// Paper end
- }
+ } finally { gg.pufferfish.pufferfish.sentry.SentryContext.removeEventContext(); } // Pufferfish
}
}
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index c8b11793c6a3baabc1c9566e0463ab1d6e293827..2b9218ddd262e89180588c3014dad328317dd8db 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -369,7 +369,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;
@@ -398,7 +400,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 8a39c48fce819d72a94d5309db8dfc42930989af..c67e91316f35750b18e082746206a01e783f1740 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();
}
@@ -151,6 +153,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.")) {
@@ -158,7 +161,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);
@@ -213,6 +216,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
try {
super.close();
} finally {
+ this.closed = true; // Pufferfish
jar.close();
}
}

View File

@@ -0,0 +1,21 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@Gmail.com>
Date: Tue, 4 Jan 2022 23:05:41 -0600
Subject: [PATCH] Add pufferfish added classes to junit exemptions
diff --git a/src/test/java/org/bukkit/AnnotationTest.java b/src/test/java/org/bukkit/AnnotationTest.java
index 57cf9fab2501da6f1abd12e14697630ca82b0a6d..a5bced98d5b8860f4f05e42cfd8a355c162b8b6e 100644
--- a/src/test/java/org/bukkit/AnnotationTest.java
+++ b/src/test/java/org/bukkit/AnnotationTest.java
@@ -47,6 +47,10 @@ public class AnnotationTest {
"org/bukkit/plugin/java/PluginClassLoader",
// Generic functional interface
"org/bukkit/util/Consumer",
+ // Purpur start
+ "gg/pufferfish/pufferfish/sentry/SentryContext",
+ "gg/pufferfish/pufferfish/sentry/SentryContext$State",
+ // Purpur end
// Paper start
"io/papermc/paper/util/TransformingRandomAccessList",
"io/papermc/paper/util/TransformingRandomAccessList$TransformedListIterator",

View File

@@ -6,13 +6,13 @@ Subject: [PATCH] Build System Changes
todo: merge with rebrand patch todo: merge with rebrand patch
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index 001c2b963205012f340db0d539e4033c748124ce..1ab728d05891b3a17094a4a61b5af4ad6de5e074 100644 index 554f5e35954f35aecaf454853a0a2999f15d19bc..9203d7aa155319abfab0a65d4ef6804cb7e48769 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -40,6 +40,7 @@ dependencies { @@ -41,6 +41,7 @@ dependencies {
apiAndDocs("net.kyori:adventure-text-serializer-plain")
api("org.apache.logging.log4j:log4j-api:2.17.1") api("org.apache.logging.log4j:log4j-api:2.17.1")
api("org.slf4j:slf4j-api:1.8.0-beta4") api("org.slf4j:slf4j-api:1.8.0-beta4")
api("io.sentry:sentry:5.4.0") // Pufferfish
+ api("net.kyori:adventure-text-minimessage:4.1.0-SNAPSHOT") // Purpur + api("net.kyori:adventure-text-minimessage:4.1.0-SNAPSHOT") // Purpur
implementation("org.ow2.asm:asm:9.2") implementation("org.ow2.asm:asm:9.2")

View File

@@ -1,19 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ben Kerllenevich <ben@omega24.dev>
Date: Tue, 23 Nov 2021 08:38:18 -0500
Subject: [PATCH] Decompile Fixes
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 c5b9c0c650df5f4b7e3d2a431dc900e210104dea..212e2c5b4b917c0c327d4b0612fecaea81c0ad87 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -123,7 +123,7 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@Override
public Brain<Hoglin> getBrain() {
- return super.getBrain();
+ return (Brain<Hoglin>) super.getBrain(); // Purpur - decompile fix
}
@Override

File diff suppressed because it is too large Load Diff

View File

@@ -5,43 +5,37 @@ Subject: [PATCH] Rebrand
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index da31e84cb558e6fad9cab015cfae753ce7be7db0..07f572b9aa249e154bc08ecf8517c3953392b74f 100644 index 0f194168f5fca8eb768bca3ce953f28097fed578..1bdcca4d1a25f4292ab9421d44fa3018af263341 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -18,8 +18,12 @@ repositories { @@ -18,7 +18,7 @@ repositories {
} }
dependencies { dependencies {
- implementation(project(":paper-api")) - implementation(project(":pufferfish-api")) // Pufferfish // Paper
- implementation(project(":paper-mojangapi")) + implementation(project(":purpur-api")) // Pufferfish // Paper // Purpur
+ // Purpur start // Pufferfish start
+ implementation(project(":purpur-api")) implementation("io.papermc.paper:paper-mojangapi:1.18.1-R0.1-SNAPSHOT") {
+ implementation("io.papermc.paper:paper-mojangapi:1.18.1-R0.1-SNAPSHOT") { exclude("io.papermc.paper", "paper-api")
+ exclude("io.papermc.paper", "paper-api") @@ -54,6 +54,8 @@ dependencies {
+ }
+ // Purpur end
// Paper start
implementation("org.jline:jline-terminal-jansi:3.21.0")
implementation("net.minecrell:terminalconsoleappender:1.3.0")
@@ -50,6 +54,8 @@ dependencies {
isTransitive = false isTransitive = false
} }
// Paper end // Paper end
+ implementation("cat.inspiracio:rhino-js-engine:1.7.7.1") // Purpur + implementation("cat.inspiracio:rhino-js-engine:1.7.7.1") // Purpur
+ implementation("dev.omega24:upnp4j:1.0") // Purpur + implementation("dev.omega24:upnp4j:1.0") // Purpur
testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test // Pufferfish start
testImplementation("junit:junit:4.13.2") implementation("org.yaml:snakeyaml:1.28")
@@ -68,7 +74,7 @@ tasks.jar { @@ -80,7 +82,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", // Pufferfish // Purpur
"Implementation-Vendor" to date, // Paper "Implementation-Vendor" to date, // Paper
"Specification-Title" to "Bukkit", "Specification-Title" to "Bukkit",
"Specification-Version" to project.version, "Specification-Version" to project.version,
@@ -156,7 +162,7 @@ fun TaskContainer.registerRunTask( @@ -168,7 +170,7 @@ fun TaskContainer.registerRunTask(
name: String, name: String,
block: JavaExec.() -> Unit block: JavaExec.() -> Unit
): TaskProvider<JavaExec> = register<JavaExec>(name) { ): TaskProvider<JavaExec> = register<JavaExec>(name) {
@@ -116,23 +110,23 @@ index e0b1f0671d16ddddcb6725acd25a1d1d69e42701..8c3c68465197fafc14849dc38a572e30
.completer(new ConsoleCommandCompleter(this.server)) .completer(new ConsoleCommandCompleter(this.server))
.option(LineReader.Option.COMPLETE_IN_WORD, true); .option(LineReader.Option.COMPLETE_IN_WORD, true);
diff --git a/src/main/java/net/minecraft/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 481a5dbad82f3f8dd5b1bf8ab207d82ec73d5bbd..7ad6b7b3094156477570b738026d88cb0f0f4f9e 100644 index 1e7ae166a1d53fce28297e2eaebd11ec28a57a55..f0e7f8d4eb632d7c7effcd3d85d67baf1bf9eb41 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
@@ -1709,7 +1709,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1711,7 +1711,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 > // Pufferfish - Pufferfish > // 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 38a0fb9a7c4ade9cacfd30dffabfea7e6b773981..fd3d3e22613511a42f7fc343079b081c72ff3f61 100644 index aae2dadabedb075fd1bc712f0226882b85f4551d..9c31e5d653f2027cf5b028f9fb9268f1469cb1e0 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
@@ -290,11 +290,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -292,11 +292,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
@@ -148,28 +142,41 @@ index 38a0fb9a7c4ade9cacfd30dffabfea7e6b773981..fd3d3e22613511a42f7fc343079b081c
// 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 ba7023e7ca5d29375ff53c2951892138d155f69f..c94053599f30f61a67c20d61b41963ce1326db07 100644 index 041ebfefca8f944f457a269f0e0b450b21949e73..3ccb381b11cec8dcd8c23de3efaa3a27902a5ac5 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
@@ -254,7 +254,7 @@ import javax.annotation.Nullable; // Paper @@ -254,7 +254,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 // Pufferfish // Purpur
private final String serverVersion; private final String serverVersion;
private final String bukkitVersion = Versioning.getBukkitVersion(); private final String bukkitVersion = Versioning.getBukkitVersion();
private final Logger logger = Logger.getLogger("Minecraft"); private final Logger logger = Logger.getLogger("Minecraft");
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index 98d396658bd7547e6b6f850529cab216e83c6c62..5687dbbb3f1df46a453841c24a343773c801bf73 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -421,7 +421,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
@Override
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {
- return new gg.pufferfish.pufferfish.PufferfishVersionFetcher(); // Pufferfish
+ return new com.destroystokyo.paper.PaperVersionFetcher(); // Pufferfish // Purpur
}
@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..99597258e8e88cd9e2c901c4ac3ff7faeeabee2b 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"); // Pufferfish // Purpur
Properties properties = new Properties(); Properties properties = new Properties();
if (stream != null) { if (stream != null) {

View File

@@ -5,25 +5,24 @@ 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 218f5bafeed8551b55b91c7fccaf6935c8b631ca..7bc497bcae6a6a752e3c432178cb1e3c633e0bec 100644 index f2fe6ea3719ff8b2913b7a3a939d7a5b75cb8b28..ed13b7b3f9d2a0b644d17d1019d42cbc4bbe72f7 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,8 +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()); // Pufferfish // 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", () -> {
String minecraftVersion = Bukkit.getVersion(); String minecraftVersion = Bukkit.getVersion();
minecraftVersion = minecraftVersion.substring(minecraftVersion.indexOf("MC: ") + 4, minecraftVersion.length() - 1); @@ -602,8 +602,8 @@ public class Metrics {
@@ -602,8 +601,8 @@ public class Metrics {
})); }));
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" : (PaperConfig.isProxyOnlineMode() ? "bungee" : "offline"))); // Purpur + metrics.addCustomChart(new Metrics.SimplePie("online_mode", () -> Bukkit.getOnlineMode() ? "online" : (PaperConfig.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
@@ -65,7 +64,7 @@ index 098182d2426a25cef0bc285356bc346db0af8172..c26435a6b5cdc61ae5d123dacea711a4
if (this.source.acceptsSuccess() && !this.silent) { if (this.source.acceptsSuccess() && !this.silent) {
this.source.sendMessage(message, Util.NIL_UUID); this.source.sendMessage(message, Util.NIL_UUID);
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 fd3d3e22613511a42f7fc343079b081c72ff3f61..8bf98d8f8e9f0baaf203a9e8d18683236856eab7 100644 index 9c31e5d653f2027cf5b028f9fb9268f1469cb1e0..d58e5357f9cb45d9b5ddeaed4ec76aa388fc34d1 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
@@ -228,6 +228,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -228,6 +228,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -85,7 +84,7 @@ index fd3d3e22613511a42f7fc343079b081c72ff3f61..8bf98d8f8e9f0baaf203a9e8d1868323
io.papermc.paper.util.ObfHelper.INSTANCE.getClass(); // load mappings for stacktrace deobf and etc. io.papermc.paper.util.ObfHelper.INSTANCE.getClass(); // load mappings for stacktrace deobf and etc.
io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider
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 4247dcb003626535dbb997f48ad9f61380bd17e9..76faf838e27813595850ebb8c9a028f1c68325ad 100644 index 90aa1d75b5c23e5ee27ceae9f6ef90de913a6601..37884e05689288d56ef0efe92296b80ef6093b3c 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
@@ -169,6 +169,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -169,6 +169,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -97,7 +96,7 @@ index 4247dcb003626535dbb997f48ad9f61380bd17e9..76faf838e27813595850ebb8c9a028f1
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;
@@ -311,6 +313,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -320,6 +322,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, final DimensionType dimensionmanager, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, final DimensionType dimensionmanager, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, 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 = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), this.spigotConfig); // Paper this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), this.spigotConfig); // Paper
@@ -106,7 +105,7 @@ index 4247dcb003626535dbb997f48ad9f61380bd17e9..76faf838e27813595850ebb8c9a028f1
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
this.ticksPerAnimalSpawns = this.getCraftServer().getTicksPerAnimalSpawns(); // CraftBukkit this.ticksPerAnimalSpawns = this.getCraftServer().getTicksPerAnimalSpawns(); // CraftBukkit
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 c94053599f30f61a67c20d61b41963ce1326db07..df6eec75dc80f18b7804d1b5a181b4d5fd573abb 100644 index 3ccb381b11cec8dcd8c23de3efaa3a27902a5ac5..f69516d01a634a08b75744bfe26e5d9f6831c8f3 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
@@ -952,6 +952,7 @@ public final class CraftServer implements Server { @@ -952,6 +952,7 @@ public final class CraftServer implements Server {
@@ -133,7 +132,7 @@ index c94053599f30f61a67c20d61b41963ce1326db07..df6eec75dc80f18b7804d1b5a181b4d5
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");
@@ -2662,6 +2665,18 @@ public final class CraftServer implements Server { @@ -2667,6 +2670,18 @@ public final class CraftServer implements Server {
return com.destroystokyo.paper.PaperConfig.config; return com.destroystokyo.paper.PaperConfig.config;
} }

View File

@@ -17,10 +17,10 @@ index 7b23535a680d2a8534dcb8dd87770f66fb982c13..4b842e78d3e8fbca90f5f3d975bee654
public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks
public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> cachedSingleHashSet; // Paper public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> cachedSingleHashSet; // Paper
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 926d0a80cbb55184955ac6720948d2e86683cc57..7842e8098f044f20bee462a3c1c9ca8553b77e6a 100644 index 889a4804eaa128e2f79a4ea48b8aa796336576d1..f020ec3974c9d8de8afd42bb33065350365c4687 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
@@ -3142,6 +3142,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -3143,6 +3143,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
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 926d0a80cbb55184955ac6720948d2e86683cc57..7842e8098f044f20bee462a3c1c9ca85
@Override @Override
public void handleCustomPayload(ServerboundCustomPayloadPacket packet) { public void handleCustomPayload(ServerboundCustomPayloadPacket packet) {
@@ -3166,6 +3167,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -3167,6 +3168,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
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
} }

View File

@@ -36,7 +36,7 @@ index 4b842e78d3e8fbca90f5f3d975bee654ec87d91d..c516ad43cac2419bcf63e11eaa183785
public void displayClientMessage(Component message, boolean actionBar) { public void displayClientMessage(Component message, boolean actionBar) {
this.sendMessage(message, actionBar ? ChatType.GAME_INFO : ChatType.CHAT, Util.NIL_UUID); this.sendMessage(message, actionBar ? ChatType.GAME_INFO : ChatType.CHAT, Util.NIL_UUID);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 042be2cf60a9d01698808d84f2e537a5eb952079..6ec5a8a52ec06be917f2ca682f5920ed5ae1a82c 100644 index f55f8c0b2c748a5442199c0a7f772b02ed533753..e07dd4a0d0918d306512487ee7e989c8b39a7222 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1373,6 +1373,62 @@ public abstract class PlayerList { @@ -1373,6 +1373,62 @@ public abstract class PlayerList {
@@ -123,10 +123,10 @@ index a828cad27fcd39f8bfbaefa97052a2a3b6650ee7..19d6165f266fcc39bc3533042109ef1b
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 8ea81f6ac7503c68f0aea34802843bc545f46db0..605a0e9cf68a4f698ac03b3477585861aeb354c7 100644 index 335ac54bef892db6b9fe66d0a7c3966abda84350..957407d5fa39445c63d621bd9eafb526bcbf6bce 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
@@ -3608,6 +3608,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -3635,6 +3635,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
return SlotAccess.NULL; return SlotAccess.NULL;
} }

View File

@@ -22,10 +22,10 @@ index 14610e6144ec144ebbec6fb0945c67bb0ea86795..6833eb5dc7aa64bef1b3b38de5e282bd
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 7ad6b7b3094156477570b738026d88cb0f0f4f9e..973ea150c2f8ac136736b4ae9f505491e2fc80c2 100644 index f0e7f8d4eb632d7c7effcd3d85d67baf1bf9eb41..a8a711c96a38c3d1c9d9b86418d389d5fa81ca29 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
@@ -1587,6 +1587,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1589,6 +1589,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 7ad6b7b3094156477570b738026d88cb0f0f4f9e..973ea150c2f8ac136736b4ae9f505491
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 28f605c3daa969c1a54745e552d55ecb874120a9..f7cfc6d5ad13dba64c2350fe3fac7f31471e8642 100644 index c7229e120d601619d2ea869d7aa506fb3b78cde4..41c9033b3e4fc9574793f670df3bb90c395ac991 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
@@ -211,6 +211,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -211,6 +211,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -73,10 +73,10 @@ index c516ad43cac2419bcf63e11eaa183785b462de5c..618595add09eef5381307ba2fe154adf
+ +
} }
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 7842e8098f044f20bee462a3c1c9ca8553b77e6a..1b50ee29ab8721807745e052e19c67e7db6cfd18 100644 index f020ec3974c9d8de8afd42bb33065350365c4687..2d1897d84f7f1f6265a5c31ec2666af7019010c9 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
@@ -2453,6 +2453,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -2454,6 +2454,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
@@ -86,7 +86,7 @@ index 7842e8098f044f20bee462a3c1c9ca8553b77e6a..1b50ee29ab8721807745e052e19c67e7
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)) {
ServerGamePacketListenerImpl.this.send(new ClientboundAddMobPacket((LivingEntity) entity)); ServerGamePacketListenerImpl.this.send(new ClientboundAddMobPacket((LivingEntity) entity));
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 605a0e9cf68a4f698ac03b3477585861aeb354c7..43697061ddbbdf160453d3ab189097a6a56e6246 100644 index 957407d5fa39445c63d621bd9eafb526bcbf6bce..905e54d53f7a209f538da1500df0d3dfa6e8c7ed 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
@@ -292,7 +292,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -292,7 +292,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
@@ -98,7 +98,7 @@ index 605a0e9cf68a4f698ac03b3477585861aeb354c7..43697061ddbbdf160453d3ab189097a6
private float eyeHeight; private float eyeHeight;
public boolean isInPowderSnow; public boolean isInPowderSnow;
public boolean wasInPowderSnow; public boolean wasInPowderSnow;
@@ -2616,6 +2616,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -2643,6 +2643,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
this.passengers = ImmutableList.copyOf(list); this.passengers = ImmutableList.copyOf(list);
} }
@@ -111,7 +111,7 @@ index 605a0e9cf68a4f698ac03b3477585861aeb354c7..43697061ddbbdf160453d3ab189097a6
} }
return true; // CraftBukkit return true; // CraftBukkit
} }
@@ -2656,6 +2662,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -2683,6 +2689,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
return false; return false;
} }
// Spigot end // Spigot end
@@ -126,7 +126,7 @@ index 605a0e9cf68a4f698ac03b3477585861aeb354c7..43697061ddbbdf160453d3ab189097a6
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 {
@@ -4288,4 +4302,41 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -4367,4 +4381,41 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
return ((ServerChunkCache) level.getChunkSource()).isPositionTicking(this); return ((ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
} }
// Paper end // Paper end
@@ -192,10 +192,10 @@ index 645c1dc9bd09b135a641759c76ce8d957b9bd488..03adc3b746e05bb4b0514ba4a66c101b
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 43378561cf48f969f5bf1fd0db349415f4d1c866..b43623d0d0dce7ca09b83e9bc20fb75c4a971263 100644 index 2c988e05299d530d483e21ab452de0a03e5bdcbd..46134547b26de59bb69c584df676bf09e756420e 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
@@ -217,9 +217,9 @@ public abstract class LivingEntity extends Entity { @@ -216,9 +216,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;
@@ -208,7 +208,7 @@ index 43378561cf48f969f5bf1fd0db349415f4d1c866..b43623d0d0dce7ca09b83e9bc20fb75c
protected int lerpSteps; protected int lerpSteps;
protected double lerpX; protected double lerpX;
protected double lerpY; protected double lerpY;
@@ -284,7 +284,7 @@ public abstract class LivingEntity extends Entity { @@ -283,7 +283,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();
@@ -217,7 +217,7 @@ index 43378561cf48f969f5bf1fd0db349415f4d1c866..b43623d0d0dce7ca09b83e9bc20fb75c
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());
@@ -335,6 +335,7 @@ public abstract class LivingEntity extends Entity { @@ -334,6 +334,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);
} }
@@ -225,7 +225,7 @@ index 43378561cf48f969f5bf1fd0db349415f4d1c866..b43623d0d0dce7ca09b83e9bc20fb75c
@Override @Override
protected void checkFallDamage(double heightDifference, boolean onGround, BlockState landedState, BlockPos landedPosition) { protected void checkFallDamage(double heightDifference, boolean onGround, BlockState landedState, BlockPos landedPosition) {
@@ -2585,7 +2586,7 @@ public abstract class LivingEntity extends Entity { @@ -2606,7 +2607,7 @@ public abstract class LivingEntity extends Entity {
} }
protected long lastJumpTime = 0L; // Paper protected long lastJumpTime = 0L; // Paper
@@ -234,7 +234,7 @@ index 43378561cf48f969f5bf1fd0db349415f4d1c866..b43623d0d0dce7ca09b83e9bc20fb75c
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
@@ -3327,8 +3328,10 @@ public abstract class LivingEntity extends Entity { @@ -3348,8 +3349,10 @@ public abstract class LivingEntity extends Entity {
this.pushEntities(); this.pushEntities();
this.level.getProfiler().pop(); this.level.getProfiler().pop();
// Paper start // Paper start
@@ -247,7 +247,7 @@ index 43378561cf48f969f5bf1fd0db349415f4d1c866..b43623d0d0dce7ca09b83e9bc20fb75c
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());
@@ -3338,6 +3341,21 @@ public abstract class LivingEntity extends Entity { @@ -3359,6 +3362,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());
} }
} }
@@ -270,7 +270,7 @@ index 43378561cf48f969f5bf1fd0db349415f4d1c866..b43623d0d0dce7ca09b83e9bc20fb75c
// 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 031660f7d0ea270f87e5174a4fe65ccad1f7a561..2266fc8c5c0f39de9122727d43dd12eef199cb70 100644 index 607e78c24edabb26fd7494855087f7f19cfdc576..65e7ce5cb473733b6a4ec89998f4b14053c62c42 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
@@ -143,6 +143,8 @@ public abstract class Mob extends LivingEntity { @@ -143,6 +143,8 @@ public abstract class Mob extends LivingEntity {
@@ -282,7 +282,7 @@ index 031660f7d0ea270f87e5174a4fe65ccad1f7a561..2266fc8c5c0f39de9122727d43dd12ee
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);
@@ -1300,7 +1302,7 @@ public abstract class Mob extends LivingEntity { @@ -1304,7 +1306,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) {
@@ -291,7 +291,7 @@ index 031660f7d0ea270f87e5174a4fe65ccad1f7a561..2266fc8c5c0f39de9122727d43dd12ee
} }
public boolean isWithinRestriction() { public boolean isWithinRestriction() {
@@ -1661,4 +1663,52 @@ public abstract class Mob extends LivingEntity { @@ -1665,4 +1667,52 @@ public abstract class Mob extends LivingEntity {
return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg); return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg);
} }
@@ -345,13 +345,13 @@ index 031660f7d0ea270f87e5174a4fe65ccad1f7a561..2266fc8c5c0f39de9122727d43dd12ee
+ // 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 9cbfda029782385d1a7987f5be46d450bd8a758e..718b3fbf5b92d9979de7775e1d40420bb7cf439b 100644 index 52ddf38d5a1894a248e142c6b9ebaff5cc921e5b..4fa1e8dd7ebc839527eed7f7db5af2c56c38f230 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
@@ -22,13 +22,20 @@ public class AttributeMap { @@ -23,14 +23,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) {
@@ -362,6 +362,7 @@ index 9cbfda029782385d1a7987f5be46d450bd8a758e..718b3fbf5b92d9979de7775e1d40420b
+ 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) {
@@ -370,7 +371,7 @@ index 9cbfda029782385d1a7987f5be46d450bd8a758e..718b3fbf5b92d9979de7775e1d40420b
this.dirtyAttributes.add(instance); this.dirtyAttributes.add(instance);
} }
@@ -40,7 +47,7 @@ public class AttributeMap { @@ -42,7 +49,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) -> {
@@ -531,7 +532,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 29dfbcecfbb2560e6ecde997abd5224a16c08c94..8a6608310caf1a9046fba4e51ca0eff92c8177fc 100644 index a76b754305036bf9c6387e27b86ec1559b290774..76de99e019c784609dfcafb35b9c4c9d21f8d6cf 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
@@ -19,6 +19,7 @@ import net.minecraft.world.entity.EntityDimensions; @@ -19,6 +19,7 @@ import net.minecraft.world.entity.EntityDimensions;
@@ -2058,7 +2059,7 @@ index 4797c34872f8fa2fba00172357c4f45e45cfe27f..4187d8fdb950781de8b414ed6928a3df
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/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 86acf89ce875e215da8469947b382f70e42314b0..09a3ed5cd02e38eab3a66ada03b2651b8cbe1751 100644 index 0fe2d6190ebba24713a3da7ef5367ecb86814a66..7f535683dcc2ad9908400d98328174baf1ea5a91 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
@@ -91,6 +91,23 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable { @@ -91,6 +91,23 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
@@ -2085,7 +2086,7 @@ index 86acf89ce875e215da8469947b382f70e42314b0..09a3ed5cd02e38eab3a66ada03b2651b
@Override @Override
public Map<String, Vector3f> getModelRotationValues() { public Map<String, Vector3f> getModelRotationValues() {
return this.modelRotationValues; return this.modelRotationValues;
@@ -514,14 +531,22 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable { @@ -516,14 +533,22 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
private static class AxolotlMoveControl extends SmoothSwimmingMoveControl { private static class AxolotlMoveControl extends SmoothSwimmingMoveControl {
private final Axolotl axolotl; private final Axolotl axolotl;
@@ -2108,7 +2109,7 @@ index 86acf89ce875e215da8469947b382f70e42314b0..09a3ed5cd02e38eab3a66ada03b2651b
if (!this.axolotl.isPlayingDead()) { if (!this.axolotl.isPlayingDead()) {
super.tick(); super.tick();
} }
@@ -536,9 +561,9 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable { @@ -538,9 +563,9 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
} }
@Override @Override
@@ -2121,7 +2122,7 @@ index 86acf89ce875e215da8469947b382f70e42314b0..09a3ed5cd02e38eab3a66ada03b2651b
} }
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 cc5687f43f8ac99995667fdc53c5c0586f70f367..563ead054aa41c8420d9b3f8c335dce20c229ac6 100644 index d5cd18c478bedaeed83de31d442d1a5b0f0f54cf..898a82d5f6404b736e13c14d9c15ea27a4f938b4 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
@@ -74,6 +74,18 @@ public class Goat extends Animal { @@ -74,6 +74,18 @@ public class Goat extends Animal {
@@ -2143,11 +2144,12 @@ index cc5687f43f8ac99995667fdc53c5c0586f70f367..563ead054aa41c8420d9b3f8c335dce2
@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);
@@ -149,6 +161,7 @@ public class Goat extends Animal { @@ -150,7 +162,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) // Purpur - only use brain if no rider - if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
+ if (getRider() == null && 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");
@@ -3035,7 +3037,7 @@ index ee9194ffb3cc6d660d4f99a3914ede7e4a3643fe..1f789b1d481234cafaa6e75c36a272bb
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 d47002d45dabd66f38d25d398d8943f4b911cdc5..3e14ad3c66ff2e14e9f746a0d03bc34e7a48c1c8 100644 index 5e207a3ea30ead2749c1121e2df8da53c8ebfdd7..753a6cee043ecb9c8af10ed0a1dfc9040bdf47b7 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
@@ -88,9 +88,22 @@ public class EnderMan extends Monster implements NeutralMob { @@ -88,9 +88,22 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -3078,7 +3080,7 @@ index d47002d45dabd66f38d25d398d8943f4b911cdc5..3e14ad3c66ff2e14e9f746a0d03bc34e
float f = this.getBrightness(); float f = this.getBrightness();
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
@@ -379,6 +393,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -385,6 +399,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;
@@ -4326,7 +4328,7 @@ index c1e0cf7d86d7b45cc4ca342d80f0dc3fe43b0bfd..2dec8be9b199e9bcf0970774afbd19a4
public void setPersistentAngerTarget(@Nullable UUID uuid) { public void setPersistentAngerTarget(@Nullable UUID uuid) {
this.persistentAngerTarget = uuid; this.persistentAngerTarget = uuid;
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 212e2c5b4b917c0c327d4b0612fecaea81c0ad87..1412ab46fe66773ee8fbb717921e71934840fe9d 100644 index 17b4185704abfd47832941d02d60500707e8a530..84969aa36add3b261b377c6b139313b153af4c46 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,18 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -67,6 +67,18 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -4348,16 +4350,17 @@ index 212e2c5b4b917c0c327d4b0612fecaea81c0ad87..1412ab46fe66773ee8fbb717921e7193
@Override @Override
public boolean canBeLeashed(Player player) { public boolean canBeLeashed(Player player) {
return !this.isLeashed(); return !this.isLeashed();
@@ -129,6 +141,7 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -130,7 +142,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) // Purpur - only use brain if no rider - if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
+ if (getRider() == null && 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 8a2c2b4bd603aae37055abd058feb7ee759078ce..0edd303a5425af88b34ad6dbee5c39a5f1b73022 100644 index d850f1f57fc7560738f7bd82b37ec888e8e9301c..6d27e775cff2e70889ef3fc4646d46edb184fb71 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
@@ -96,6 +96,18 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -96,6 +96,18 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -4379,11 +4382,12 @@ index 8a2c2b4bd603aae37055abd058feb7ee759078ce..0edd303a5425af88b34ad6dbee5c39a5
@Override @Override
public void addAdditionalSaveData(CompoundTag nbt) { public void addAdditionalSaveData(CompoundTag nbt) {
super.addAdditionalSaveData(nbt); super.addAdditionalSaveData(nbt);
@@ -291,6 +303,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -292,7 +304,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) // Purpur - only use brain if no rider - if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
+ if (getRider() == null && 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);
@@ -4428,10 +4432,10 @@ index ea0040a3494709efb4819c7530dbcc37aa62e86a..5025d4571a34fe9e0e58ada6b81b0647
this.level.getProfiler().pop(); this.level.getProfiler().pop();
PiglinBruteAi.updateActivity(this); PiglinBruteAi.updateActivity(this);
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 ea612b3c3ed7305b504d65eb6d38ed99547fd488..ed56e4f4e35d0425546a37455af3776c65d45f66 100644 index 7d6bc3c253a77adfc7c35383caadb37154dc5c0f..d951bc1d709f64871a01edc81f091c8f4c032d34 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
@@ -151,6 +151,23 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -153,6 +153,23 @@ 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));
} }
@@ -4455,7 +4459,16 @@ index ea612b3c3ed7305b504d65eb6d38ed99547fd488..ed56e4f4e35d0425546a37455af3776c
@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
@@ -302,7 +319,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -250,7 +267,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
this.level.getProfiler().push("villagerBrain");
// Pufferfish start
if (!inactive) {
- if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
+ if (getRider() == null && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
this.getBrain().tick((ServerLevel) this.level, this); // Paper
}
// Pufferfish end
@@ -310,7 +327,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();
@@ -4464,7 +4477,7 @@ index ea612b3c3ed7305b504d65eb6d38ed99547fd488..ed56e4f4e35d0425546a37455af3776c
} else { } else {
boolean flag = this.getOffers().isEmpty(); boolean flag = this.getOffers().isEmpty();
@@ -315,8 +332,9 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -323,8 +340,9 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
} }
if (flag) { if (flag) {
@@ -4551,7 +4564,7 @@ index 4132c1113f5437a776e5e3c1cb306904775aed88..1a945a32c3d3705a318ebca72a365931
public void tick() { public void tick() {
super.tick(); super.tick();
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index 15744949537430d8d8ae71ea72481126c9aff7bd..36417466ae30e9f7f3e953fd4ff98ed3f3b71725 100644 index 4759a6b3d3cd7973744562adf97d110d359ebce3..cfb43f277c013680a0e51fb93796e38f88b506db 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -35,7 +35,7 @@ public abstract class Projectile extends Entity { @@ -35,7 +35,7 @@ public abstract class Projectile extends Entity {

View File

@@ -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 43697061ddbbdf160453d3ab189097a6a56e6246..d1e937e7294d360e4f81dc54730b3f4ef1fe3c27 100644 index 905e54d53f7a209f538da1500df0d3dfa6e8c7ed..146b3d064829d38901c34e639d01d8d02b05f495 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
@@ -149,7 +149,7 @@ import org.bukkit.plugin.PluginManager; @@ -149,7 +149,7 @@ import org.bukkit.plugin.PluginManager;
@@ -34,10 +34,10 @@ index 03adc3b746e05bb4b0514ba4a66c101b9742ceed..ec261673ac444fd5de9c8556cde5d788
@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 5d9e460c54068e0e05f975fa057a099c160a3d0d..f1df05c21fe3cce9270506bfb1882bd75d57471d 100644 index 46134547b26de59bb69c584df676bf09e756420e..dac5e52f2d86a9f4874cbaa2fdd6775d4b0566c1 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
@@ -285,6 +285,7 @@ public abstract class LivingEntity extends Entity { @@ -284,6 +284,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 5d9e460c54068e0e05f975fa057a099c160a3d0d..f1df05c21fe3cce9270506bfb1882bd7
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());
@@ -300,6 +301,8 @@ public abstract class LivingEntity extends Entity { @@ -299,6 +300,8 @@ public abstract class LivingEntity extends Entity {
this.brain = this.makeBrain(new Dynamic(dynamicopsnbt, (net.minecraft.nbt.Tag) dynamicopsnbt.createMap((Map) ImmutableMap.of(dynamicopsnbt.createString("memories"), (net.minecraft.nbt.Tag) dynamicopsnbt.emptyMap())))); this.brain = this.makeBrain(new Dynamic(dynamicopsnbt, (net.minecraft.nbt.Tag) dynamicopsnbt.createMap((Map) ImmutableMap.of(dynamicopsnbt.createString("memories"), (net.minecraft.nbt.Tag) dynamicopsnbt.emptyMap()))));
} }
@@ -55,7 +55,7 @@ index 5d9e460c54068e0e05f975fa057a099c160a3d0d..f1df05c21fe3cce9270506bfb1882bd7
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 8a6608310caf1a9046fba4e51ca0eff92c8177fc..743b5d483a230d56207a8864b5abab06d7c68e16 100644 index 76de99e019c784609dfcafb35b9c4c9d21f8d6cf..e82592e3e43f38a0f09803c7b111d73a90361f88 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
@@ -86,6 +86,18 @@ public class Bat extends AmbientCreature { @@ -86,6 +86,18 @@ public class Bat extends AmbientCreature {
@@ -459,7 +459,7 @@ index 4187d8fdb950781de8b414ed6928a3df4a89ba67..277637692e504cca04bfca7683c05229
@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 09a3ed5cd02e38eab3a66ada03b2651b8cbe1751..a2b2d3f670cd200d7fba40f8227964ef95c5b455 100644 index 7f535683dcc2ad9908400d98328174baf1ea5a91..1b66aea5871ccf83ea39d3f52f0f6da72cd785b6 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
@@ -106,6 +106,11 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable { @@ -106,6 +106,11 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
@@ -475,7 +475,7 @@ index 09a3ed5cd02e38eab3a66ada03b2651b8cbe1751..a2b2d3f670cd200d7fba40f8227964ef
@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 563ead054aa41c8420d9b3f8c335dce20c229ac6..21aca411c458a1e80cdd6e97961f9a5c572854a9 100644 index 898a82d5f6404b736e13c14d9c15ea27a4f938b4..39a7ea2854090d8505a9bc888313d84645595e23 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
@@ -84,6 +84,11 @@ public class Goat extends Animal { @@ -84,6 +84,11 @@ public class Goat extends Animal {
@@ -845,7 +845,7 @@ index 1f789b1d481234cafaa6e75c36a272bbd064482e..e25374b06e3babd93cd5bbdd58ea401a
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 3e14ad3c66ff2e14e9f746a0d03bc34e7a48c1c8..e5ddb64d1a212266c05170359e27927a5f9e243e 100644 index 753a6cee043ecb9c8af10ed0a1dfc9040bdf47b7..1cec7bb3efa1e3377f72489c090d3234123d3e26 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
@@ -98,6 +98,11 @@ public class EnderMan extends Monster implements NeutralMob { @@ -98,6 +98,11 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -1342,7 +1342,7 @@ index 2dec8be9b199e9bcf0970774afbd19a4861d802f..f30b36b3f1153e1cbd9b8242909d9ba8
@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 1412ab46fe66773ee8fbb717921e71934840fe9d..3ec9b8343cf80ceea8503ad78863a4b539c6ef6b 100644 index 84969aa36add3b261b377c6b139313b153af4c46..e46a6bba628417c1b0795c477e649cfeca015647 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
@@ -77,6 +77,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -77,6 +77,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -1358,7 +1358,7 @@ index 1412ab46fe66773ee8fbb717921e71934840fe9d..3ec9b8343cf80ceea8503ad78863a4b5
@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 0edd303a5425af88b34ad6dbee5c39a5f1b73022..86a9800276648c094c688d6dbedd51657e642df5 100644 index 6d27e775cff2e70889ef3fc4646d46edb184fb71..862534112722a482cd5f69b346b69f3d46086359 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
@@ -106,6 +106,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -106,6 +106,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -1390,10 +1390,10 @@ index 5025d4571a34fe9e0e58ada6b81b064716b8f672..f6734f2eb44af7b2389de5079831e0e4
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 ed56e4f4e35d0425546a37455af3776c65d45f66..6dcc96a2c939ebd0ca5e1934e69d61dfc2b5fa21 100644 index d951bc1d709f64871a01edc81f091c8f4c032d34..0f466c9301c38e3747a22f116b98d47d1d912601 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
@@ -166,6 +166,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -168,6 +168,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));
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Timings stuff
diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
index 5e3b7fb2e0b7608610555cd23e7ad25a05883181..52197656e46fd159240a936fe13bfb27f2b4e9a7 100644 index 26bde1c22363ddbdbe4127d14bae54e17b0d7393..0f4b41fd7037f380f759a93f9ef70b4860816ad1 100644
--- a/src/main/java/co/aikar/timings/TimingsExport.java --- a/src/main/java/co/aikar/timings/TimingsExport.java
+++ b/src/main/java/co/aikar/timings/TimingsExport.java +++ b/src/main/java/co/aikar/timings/TimingsExport.java
@@ -225,9 +225,14 @@ public class TimingsExport extends Thread { @@ -225,10 +225,14 @@ public class TimingsExport extends Thread {
// Information on the users Config // Information on the users Config
parent.put("config", createObject( parent.put("config", createObject(
@@ -16,16 +16,17 @@ index 5e3b7fb2e0b7608610555cd23e7ad25a05883181..52197656e46fd159240a936fe13bfb27
+ // Purpur start + // Purpur start
+ pair("server.properties", mapAsJSON(Bukkit.spigot().getServerProperties())), + pair("server.properties", mapAsJSON(Bukkit.spigot().getServerProperties())),
pair("bukkit", mapAsJSON(Bukkit.spigot().getBukkitConfig(), null)), pair("bukkit", mapAsJSON(Bukkit.spigot().getBukkitConfig(), null)),
- pair("paper", mapAsJSON(Bukkit.spigot().getPaperConfig(), null)) - pair("paper", mapAsJSON(Bukkit.spigot().getPaperConfig(), null)), // Pufferfish
+ pair("paper", mapAsJSON(Bukkit.spigot().getPaperConfig(), null)), - pair("pufferfish", mapAsJSON(gg.pufferfish.pufferfish.PufferfishConfig.getConfigCopy(), null)) // Pufferfish
+ pair("spigot", mapAsJSON(Bukkit.spigot().getSpigotConfig(), null)), + pair("spigot", mapAsJSON(Bukkit.spigot().getSpigotConfig(), null)),
+ pair("paper", mapAsJSON(Bukkit.spigot().getPaperConfig(), null)), + pair("paper", mapAsJSON(Bukkit.spigot().getPaperConfig(), null)),
+ pair("pufferfish", mapAsJSON(gg.pufferfish.pufferfish.PufferfishConfig.getConfigCopy(), null)), // Pufferfish
+ pair("purpur", mapAsJSON(Bukkit.spigot().getPurpurConfig(), null)) + pair("purpur", mapAsJSON(Bukkit.spigot().getPurpurConfig(), null))
+ // Purpur end + // Purpur end
)); ));
new TimingsExport(listeners, parent, history).start(); new TimingsExport(listeners, parent, history).start();
@@ -268,6 +273,19 @@ public class TimingsExport extends Thread { @@ -269,6 +273,19 @@ public class TimingsExport extends Thread {
return timingsCost; return timingsCost;
} }
@@ -46,11 +47,11 @@ index 5e3b7fb2e0b7608610555cd23e7ad25a05883181..52197656e46fd159240a936fe13bfb27
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index cd918cec00d8202252af0d20b1a8891371c538e3..6c1b67fbd4524aac075e93ed454f7139002c997a 100644 index 2a19037d3ad734d1cf746d02b72926dd702fd23a..cbae8e7a2ee67e5a8f07f8d9b9bf4be30e760928 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -234,6 +234,12 @@ public class PaperConfig { @@ -243,6 +243,12 @@ public class PaperConfig {
boolean timings = getBoolean("timings.enabled", true); // Pufferfish end
boolean verboseTimings = getBoolean("timings.verbose", true); boolean verboseTimings = getBoolean("timings.verbose", true);
TimingsManager.url = getString("timings.url", "https://timings.aikar.co/"); TimingsManager.url = getString("timings.url", "https://timings.aikar.co/");
+ // Purpur start + // Purpur start

View File

@@ -68,7 +68,7 @@ index 618595add09eef5381307ba2fe154adfc97b2a0e..100d01814aca6cbb26c721f55851df27
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 1b50ee29ab8721807745e052e19c67e7db6cfd18..5ad2118d07c190eae3e76a7c8cb6e216d12c915e 100644 index 2d1897d84f7f1f6265a5c31ec2666af7019010c9..fa14b693257811fa762eeb209042ff1a4b3a65ec 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
@@ -295,6 +295,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -295,6 +295,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -114,7 +114,7 @@ index 1b50ee29ab8721807745e052e19c67e7db6cfd18..5ad2118d07c190eae3e76a7c8cb6e216
// 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();
@@ -1439,7 +1461,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -1440,7 +1462,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
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
flag1 = true; // Paper - diff on change, this should be moved wrongly flag1 = true; // Paper - diff on change, this should be moved wrongly
@@ -123,7 +123,7 @@ index 1b50ee29ab8721807745e052e19c67e7db6cfd18..5ad2118d07c190eae3e76a7c8cb6e216
} }
this.player.absMoveTo(d0, d1, d2, f, f1); this.player.absMoveTo(d0, d1, d2, f, f1);
@@ -1489,6 +1511,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -1490,6 +1512,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
this.lastYaw = to.getYaw(); this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch(); this.lastPitch = to.getPitch();
@@ -167,7 +167,7 @@ index e39965c2e50bc8ee424ea07819346e0611398e28..212ea98eeaaf4b20ba0896dab03cd092
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 {
@@ -305,10 +305,10 @@ index 373bdce6590564bd9de4a571a91bbf05e287ee08..27d70e8e29902fe4275200cf75082980
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 1732e753ea7748a66abecafb2136f93383f5ec4e..068238bc911d8458a321a920c3638d368449ac95 100644 index 2eb9bc34afdc26bed21bc9d3e97f636cfc97f166..e12ba58f3795c17694defa308ced50a19d2a37b9 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
@@ -195,6 +195,7 @@ public class ActivationRange @@ -199,6 +199,7 @@ public class ActivationRange
{ {
player.activatedTick = MinecraftServer.currentTick; player.activatedTick = MinecraftServer.currentTick;

View File

@@ -17,10 +17,10 @@ index f944e6beafc7876ed9c6923a22f58d82967b77cb..e1c7b7a659e56fa5b3a1f52cb2ccc99b
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 df6eec75dc80f18b7804d1b5a181b4d5fd573abb..484111518d60c4f764f4c59b45cff96b86a6dbbe 100644 index f69516d01a634a08b75744bfe26e5d9f6831c8f3..2551044b41483dd719e5944e5536888acc3a1968 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
@@ -2831,4 +2831,11 @@ public final class CraftServer implements Server { @@ -2836,4 +2836,11 @@ public final class CraftServer implements Server {
} }
// Paper end // Paper end

View File

@@ -5,15 +5,15 @@ 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 973ea150c2f8ac136736b4ae9f505491e2fc80c2..1cb6c989a0b21df7dff72062550daa09721d7687 100644 index a8a711c96a38c3d1c9d9b86418d389d5fa81ca29..11f96558f195cc60b4376f8554a4bc5cd93014b9 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
@@ -1710,7 +1710,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1712,7 +1712,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate @DontObfuscate
public String getServerModName() { public String getServerModName() {
- return "Purpur"; // Purpur - Purpur > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! - return "Purpur"; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
+ return org.purpurmc.purpur.PurpurConfig.serverModName; // Purpur - Purpur > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! + return org.purpurmc.purpur.PurpurConfig.serverModName; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
} }
public SystemReport fillSystemReport(SystemReport details) { public SystemReport fillSystemReport(SystemReport details) {

View File

@@ -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 f1df05c21fe3cce9270506bfb1882bd75d57471d..ab868741cdb9ad20c81d4ed3561d498d25fcbf12 100644 index dac5e52f2d86a9f4874cbaa2fdd6775d4b0566c1..6418809533a1847967e5cd18e70d3586bc79d979 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
@@ -252,6 +252,7 @@ public abstract class LivingEntity extends Entity { @@ -251,6 +251,7 @@ public abstract class LivingEntity extends Entity {
// CraftBukkit start // CraftBukkit start
public int expToDrop; public int expToDrop;
public int maxAirTicks = 300; public int maxAirTicks = 300;
@@ -16,7 +16,7 @@ index f1df05c21fe3cce9270506bfb1882bd75d57471d..ab868741cdb9ad20c81d4ed3561d498d
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;
@@ -351,8 +352,8 @@ public abstract class LivingEntity extends Entity { @@ -350,8 +351,8 @@ public abstract class LivingEntity extends Entity {
this.tryAddSoulSpeed(); this.tryAddSoulSpeed();
} }
@@ -27,7 +27,7 @@ index f1df05c21fe3cce9270506bfb1882bd75d57471d..ab868741cdb9ad20c81d4ed3561d498d
if (!landedState.isAir()) { if (!landedState.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);
@@ -1905,7 +1906,7 @@ public abstract class LivingEntity extends Entity { @@ -1926,7 +1927,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);

View File

@@ -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 1cb6c989a0b21df7dff72062550daa09721d7687..4d89c9de4b4aae4452750fb941a2e610b8834039 100644 index 11f96558f195cc60b4376f8554a4bc5cd93014b9..bb4b6194583cf65a98aaf099d0c37acc47570b38 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
@@ -304,6 +304,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -304,6 +304,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -16,7 +16,7 @@ index 1cb6c989a0b21df7dff72062550daa09721d7687..4d89c9de4b4aae4452750fb941a2e610
public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant(); public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant();
// Spigot end // Spigot end
public static long currentTickLong = 0L; // Paper public static long currentTickLong = 0L; // Paper
@@ -1247,6 +1248,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1249,6 +1250,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 1cb6c989a0b21df7dff72062550daa09721d7687..4d89c9de4b4aae4452750fb941a2e610
} }
// 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 484111518d60c4f764f4c59b45cff96b86a6dbbe..a45996f5668cbf070a59ec8296c940b1ff08f8f2 100644 index 2551044b41483dd719e5944e5536888acc3a1968..64f20aa2a4f87fa39c5ba9c2ce2b32ff01dd222d 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
@@ -2837,5 +2837,10 @@ public final class CraftServer implements Server { @@ -2842,5 +2842,10 @@ public final class CraftServer implements Server {
public String getServerName() { public String getServerName() {
return this.getProperties().serverName; return this.getProperties().serverName;
} }

View File

@@ -5,7 +5,7 @@ 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 419a7e9614af2328ed401fc954196056243a984c..3177e4f0af6ec4dd22c7e809d23f3711a8dfda54 100644 index 9bc568a2b0df13f55ee8670839b9e6a6b4f38c2d..ac29cea738d013b69c263dd4708966e59a7e5741 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
@@ -285,6 +285,16 @@ public class EntityType<T extends Entity> implements EntityTypeTest<Entity, T> { @@ -285,6 +285,16 @@ public class EntityType<T extends Entity> implements EntityTypeTest<Entity, T> {
@@ -25,7 +25,7 @@ index 419a7e9614af2328ed401fc954196056243a984c..3177e4f0af6ec4dd22c7e809d23f3711
public static ResourceLocation getKey(EntityType<?> type) { public static ResourceLocation getKey(EntityType<?> type) {
return Registry.ENTITY_TYPE.getKey(type); return Registry.ENTITY_TYPE.getKey(type);
} }
@@ -450,6 +460,16 @@ public class EntityType<T extends Entity> implements EntityTypeTest<Entity, T> { @@ -451,6 +461,16 @@ public class EntityType<T extends Entity> implements EntityTypeTest<Entity, T> {
return this.category; return this.category;
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] EMC - MonsterEggSpawnEvent
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 3177e4f0af6ec4dd22c7e809d23f3711a8dfda54..4236c9dfa0be6fa8ad2f3e32d7f65f1b722c4e60 100644 index ac29cea738d013b69c263dd4708966e59a7e5741..4833e545545d9114a15f0bcc0d0a2a214183000f 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
@@ -333,13 +333,20 @@ public class EntityType<T extends Entity> implements EntityTypeTest<Entity, T> { @@ -334,13 +334,20 @@ public class EntityType<T extends Entity> implements EntityTypeTest<Entity, T> {
@Nullable @Nullable
public Entity spawn(ServerLevel world, @Nullable ItemStack stack, @Nullable Player player, BlockPos pos, MobSpawnType spawnReason, boolean alignPosition, boolean invertY) { public Entity spawn(ServerLevel world, @Nullable ItemStack stack, @Nullable Player player, BlockPos pos, MobSpawnType spawnReason, boolean alignPosition, boolean invertY) {
@@ -31,7 +31,7 @@ index 3177e4f0af6ec4dd22c7e809d23f3711a8dfda54..4236c9dfa0be6fa8ad2f3e32d7f65f1b
} }
@Nullable @Nullable
@@ -364,9 +371,29 @@ public class EntityType<T extends Entity> implements EntityTypeTest<Entity, T> { @@ -365,9 +372,29 @@ public class EntityType<T extends Entity> implements EntityTypeTest<Entity, T> {
} }
} }
// Paper end // Paper end

View File

@@ -82,10 +82,10 @@ index 100d01814aca6cbb26c721f55851df27dc654880..7d8853191eadf5f5d909dcc0269740d6
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 5ad2118d07c190eae3e76a7c8cb6e216d12c915e..728d6829d9fdf20176e7c8568b8acbf43fdf4d1e 100644 index fa14b693257811fa762eeb209042ff1a4b3a65ec..5e2769dac191d725a1e38e61a871baa644d29b44 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
@@ -1963,12 +1963,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -1964,12 +1964,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@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());

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable villager brain ticks
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 9a8e08e9a44900ad3899a63992948941abe7c5d8..17eb573debec8e67dab2f5790ba9fc0a1f09a208 100644 index 0f466c9301c38e3747a22f116b98d47d1d912601..783cdc4949549725c884cdc0edff485936c77de3 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
@@ -137,6 +137,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -137,6 +137,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -14,9 +14,9 @@ index 9a8e08e9a44900ad3899a63992948941abe7c5d8..17eb573debec8e67dab2f5790ba9fc0a
}); });
+ private final int brainTickOffset; // Purpur + private final int brainTickOffset; // Purpur
public Villager(EntityType<? extends Villager> entityType, Level world) { public long nextGolemPanic = -1; // Pufferfish
this(entityType, world, VillagerType.PLAINS);
@@ -149,6 +150,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -151,6 +152,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
this.getNavigation().setCanFloat(true); this.getNavigation().setCanFloat(true);
this.setCanPickUpLoot(true); this.setCanPickUpLoot(true);
this.setVillagerData(this.getVillagerData().setType(type).setProfession(VillagerProfession.NONE)); this.setVillagerData(this.getVillagerData().setType(type).setProfession(VillagerProfession.NONE));
@@ -24,17 +24,17 @@ index 9a8e08e9a44900ad3899a63992948941abe7c5d8..17eb573debec8e67dab2f5790ba9fc0a
} }
// Purpur start // Purpur start
@@ -267,6 +269,10 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -272,6 +274,10 @@ 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");
+ // Purpur start // Pufferfish start
+ boolean tick = (level.getGameTime() + brainTickOffset) % level.purpurConfig.villagerBrainTicks == 0; if (!inactive) {
+ if (((ServerLevel) level).getServer().lagging ? tick : level.purpurConfig.villagerUseBrainTicksOnlyWhenLagging || tick) + // Purpur start
+ // Purpur end + boolean tick = (level.getGameTime() + brainTickOffset) % level.purpurConfig.villagerBrainTicks == 0;
if (!inactive) this.getBrain().tick((ServerLevel) this.level, this); // Paper + if (((ServerLevel) level).getServer().lagging ? tick : level.purpurConfig.villagerUseBrainTicksOnlyWhenLagging || tick)
this.level.getProfiler().pop(); + // Purpur end
if (this.assignProfessionWhenSpawned) { if (getRider() == null && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
this.getBrain().tick((ServerLevel) this.level, this); // Paper
}
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 29de4c4316285b7ddf77c508d098584d2cb365e9..ccd3597d78a12d8e6a3514c0f9cfa2aa31b688f8 100644 index 29de4c4316285b7ddf77c508d098584d2cb365e9..ccd3597d78a12d8e6a3514c0f9cfa2aa31b688f8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java

View File

@@ -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 728d6829d9fdf20176e7c8568b8acbf43fdf4d1e..727f75ec771f68268904ea93b9da30427b8579fa 100644 index 5e2769dac191d725a1e38e61a871baa644d29b44..a1079a9f524e9efcc0b29b1c1b5f4e5aefa9ec85 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
@@ -228,6 +228,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -228,6 +228,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -38,7 +38,7 @@ index 728d6829d9fdf20176e7c8568b8acbf43fdf4d1e..727f75ec771f68268904ea93b9da3042
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
@@ -3134,6 +3150,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -3135,6 +3151,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@Override @Override
public void handleKeepAlive(ServerboundKeepAlivePacket packet) { public void handleKeepAlive(ServerboundKeepAlivePacket packet) {

View File

@@ -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 f7cfc6d5ad13dba64c2350fe3fac7f31471e8642..ba095685ec775cb5a7ac9a5b7b0a91797f87b087 100644 index 41c9033b3e4fc9574793f670df3bb90c395ac991..99eb79174cb45ac4d94990afef410dba0daf632c 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
@@ -750,9 +750,15 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -765,9 +765,15 @@ public class ServerLevel extends Level implements WorldGenLevel {
boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * paperConfig.skeleHorseSpawnChance && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * paperConfig.skeleHorseSpawnChance && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper
if (flag1) { if (flag1) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Disable loot drops on death by cramming
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 ab868741cdb9ad20c81d4ed3561d498d25fcbf12..d2944ac5002f77dee2ae111b4f529471ab265c59 100644 index 6418809533a1847967e5cd18e70d3586bc79d979..1988ffd4778d00d62fe334479de50cd4ef094f31 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
@@ -1712,10 +1712,12 @@ public abstract class LivingEntity extends Entity { @@ -1719,10 +1719,12 @@ public abstract class LivingEntity extends Entity {
this.dropEquipment(); // CraftBukkit - from below this.dropEquipment(); // CraftBukkit - from below
if (this.shouldDropLoot() && this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { if (this.shouldDropLoot() && this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix the dead lagging the server
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 7af5b443983d557199100c0ab5044e96ebf52d9b..36569048c8ba952270b8ca1e492292cab5f13ae6 100644 index 146b3d064829d38901c34e639d01d8d02b05f495..bc1139194a3cb087eb8fc92e85491ae44ee461c3 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
@@ -1736,6 +1736,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -1763,6 +1763,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
this.yRotO = this.getYRot(); this.yRotO = this.getYRot();
this.xRotO = this.getXRot(); this.xRotO = this.getXRot();
this.setYHeadRot(yaw); // Paper - Update head rotation this.setYHeadRot(yaw); // Paper - Update head rotation
@@ -17,10 +17,10 @@ index 7af5b443983d557199100c0ab5044e96ebf52d9b..36569048c8ba952270b8ca1e492292ca
public void absMoveTo(double x, double y, double z) { public void absMoveTo(double x, double y, double z) {
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 d2944ac5002f77dee2ae111b4f529471ab265c59..eec8fe7566a7911d1250286ecf525c851baecc8e 100644 index 1988ffd4778d00d62fe334479de50cd4ef094f31..3e472507d03ad86001fbd19a089a14bc7abd3cf7 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
@@ -2911,7 +2911,7 @@ public abstract class LivingEntity extends Entity { @@ -2932,7 +2932,7 @@ public abstract class LivingEntity extends Entity {
} }
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable TPS Catchup
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 4d89c9de4b4aae4452750fb941a2e610b8834039..55067e47a9907f038bf77f5dda2f395773472ceb 100644 index bb4b6194583cf65a98aaf099d0c37acc47570b38..ec2edb4b62f692aa39652845e81daf5de2798607 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
@@ -1266,7 +1266,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1268,7 +1268,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.tickServer(this::haveTime); this.tickServer(this::haveTime);
this.profiler.popPush("nextTickWait"); this.profiler.popPush("nextTickWait");
this.mayHaveDelayedTasks = true; this.mayHaveDelayedTasks = true;

View File

@@ -18,10 +18,10 @@ index 624b736f11341816c91f422cf6098ac0d19855b3..bb32bc0989ebbdd7522fe5f70ae3e641
// CraftBukkit start // CraftBukkit start
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 e5ddb64d1a212266c05170359e27927a5f9e243e..2e831d7901747d7957becddc2daf453c4f30bdcc 100644 index 1cec7bb3efa1e3377f72489c090d3234123d3e26..434e51325cbfe4539470f9ec5164e8ebdd482748 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
@@ -499,6 +499,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -505,6 +505,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override @Override
public boolean canUse() { public boolean canUse() {
@@ -29,7 +29,7 @@ index e5ddb64d1a212266c05170359e27927a5f9e243e..2e831d7901747d7957becddc2daf453c
return this.enderman.getCarriedBlock() == null ? false : (!this.enderman.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? false : this.enderman.getRandom().nextInt(reducedTickDelay(2000)) == 0); return this.enderman.getCarriedBlock() == null ? false : (!this.enderman.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? false : this.enderman.getRandom().nextInt(reducedTickDelay(2000)) == 0);
} }
@@ -546,6 +547,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -552,6 +553,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override @Override
public boolean canUse() { public boolean canUse() {

View File

@@ -30,10 +30,10 @@ index bd283f71cb05ffbe1fed39afb41ae54dc52ec297..d7ebbd785d89fc5c1fec1a020a259a94
// CraftBukkit start // CraftBukkit start
private CraftMerchant craftMerchant; private CraftMerchant craftMerchant;
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 17eb573debec8e67dab2f5790ba9fc0a1f09a208..3c4393f28483a454b59264c90a76d4d18f6eabee 100644 index 783cdc4949549725c884cdc0edff485936c77de3..5264f4dea9901fa702bdd6fb7855385bcfe53b64 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
@@ -167,6 +167,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -169,6 +169,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Override @Override
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));

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow leashing villagers
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 b7e3091e9ce5b634c73ac573cf205278507270d5..b0e2f5c98ab1bea6962312fa05cd6d61fc81cb98 100644 index 65e7ce5cb473733b6a4ec89998f4b14053c62c42..a9f4f86fc2a3c6017acda35c90ae1b53937256c6 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
@@ -1236,6 +1236,7 @@ public abstract class Mob extends LivingEntity { @@ -1240,6 +1240,7 @@ public abstract class Mob extends LivingEntity {
if (!this.isAlive()) { if (!this.isAlive()) {
return InteractionResult.PASS; return InteractionResult.PASS;
} else if (this.getLeashHolder() == player) { } else if (this.getLeashHolder() == player) {
@@ -17,10 +17,10 @@ index b7e3091e9ce5b634c73ac573cf205278507270d5..b0e2f5c98ab1bea6962312fa05cd6d61
// Paper start - drop leash variable // Paper start - drop leash variable
org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, !player.getAbilities().instabuild); org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, !player.getAbilities().instabuild);
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 3c4393f28483a454b59264c90a76d4d18f6eabee..7396963b9b405f7c0ff022176ce55b6f27ac3f4c 100644 index 5264f4dea9901fa702bdd6fb7855385bcfe53b64..c6596547c23365b2f7028f3764dbd0b5571f898c 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
@@ -174,6 +174,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -176,6 +176,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
public void initAttributes() { public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.villagerMaxHealth); this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.villagerMaxHealth);
} }

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn
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 bda88f38a2fb24a2fb6c405ab05259defa63543d..ed97980cc89e086099ff5c343a99a12d8f3e469d 100644 index c6596547c23365b2f7028f3764dbd0b5571f898c..fbed51cacb1963b10946056a42fa6878e88a31a9 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
@@ -1037,6 +1037,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -1045,6 +1045,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Nullable @Nullable
private IronGolem trySpawnGolem(ServerLevel world) { private IronGolem trySpawnGolem(ServerLevel world) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Implement infinite liquids
diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
index 6f5f9d8a38bf023969c883b3e3a230c3cdc62104..edc48ae53ccaee4fcb4d4aa1b94fd130b5c81b43 100644 index a02a5313db545a8694feec0e2504465426c39a6a..c3e4997cd282a9b94b04b3a9cba162281c1ec1ba 100644
--- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java --- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
+++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java +++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
@@ -217,7 +217,7 @@ public abstract class FlowingFluid extends Fluid { @@ -227,7 +227,7 @@ public abstract class FlowingFluid extends Fluid {
} }
} }
@@ -17,7 +17,7 @@ index 6f5f9d8a38bf023969c883b3e3a230c3cdc62104..edc48ae53ccaee4fcb4d4aa1b94fd130
BlockState iblockdata2 = world.getBlockState(pos.below()); BlockState iblockdata2 = world.getBlockState(pos.below());
FluidState fluid1 = iblockdata2.getFluidState(); FluidState fluid1 = iblockdata2.getFluidState();
@@ -288,6 +288,16 @@ public abstract class FlowingFluid extends Fluid { @@ -323,6 +323,16 @@ public abstract class FlowingFluid extends Fluid {
return (FluidState) this.getSource().defaultFluidState().setValue(FlowingFluid.FALLING, falling); return (FluidState) this.getSource().defaultFluidState().setValue(FlowingFluid.FALLING, falling);
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable void damage height and damage
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 60b5ed2427cfcd8a89239188c40ce972c8f6c4d8..359c70f3618ebd8138daaaadae88db98ee733a30 100644 index bc1139194a3cb087eb8fc92e85491ae44ee461c3..347a30897d82b6b6c789e8f207ed1a98c09f5ed3 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
@@ -782,7 +782,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -809,7 +809,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
public void checkOutOfWorld() { public void checkOutOfWorld() {
// Paper start - Configurable nether ceiling damage // Paper start - Configurable nether ceiling damage
@@ -18,10 +18,10 @@ index 60b5ed2427cfcd8a89239188c40ce972c8f6c4d8..359c70f3618ebd8138daaaadae88db98
&& this.getY() >= this.level.paperConfig.netherVoidTopDamageHeight)) { && this.getY() >= this.level.paperConfig.netherVoidTopDamageHeight)) {
// Paper end // Paper end
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 eec8fe7566a7911d1250286ecf525c851baecc8e..d5d315122326e923dd47ec25c59d81d413839829 100644 index 3e472507d03ad86001fbd19a089a14bc7abd3cf7..b4a5fdba6e47ae482a445deb5f90dbde2a8f5dec 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
@@ -2403,7 +2403,7 @@ public abstract class LivingEntity extends Entity { @@ -2424,7 +2424,7 @@ public abstract class LivingEntity extends Entity {
@Override @Override
protected void outOfWorld() { protected void outOfWorld() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity
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 359c70f3618ebd8138daaaadae88db98ee733a30..3417d7aaf858ae4759fd6b2b22f67e951769c33c 100644 index 347a30897d82b6b6c789e8f207ed1a98c09f5ed3..0ff2b5c23c904826098af23f17e95aba790ef3de 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
@@ -4339,5 +4339,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -4418,5 +4418,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
public boolean processClick(InteractionHand hand) { public boolean processClick(InteractionHand hand) {
return false; return false;
} }

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Dispenser curse of binding protection
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 b0e2f5c98ab1bea6962312fa05cd6d61fc81cb98..3249ea9a4b7dc05a1b53373955c267e7a4c7903b 100644 index a9f4f86fc2a3c6017acda35c90ae1b53937256c6..033bf60ff92d26981ace3e3ccab91a52c7b4e241 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
@@ -63,6 +63,7 @@ import net.minecraft.world.item.ProjectileWeaponItem; @@ -63,6 +63,7 @@ import net.minecraft.world.item.ProjectileWeaponItem;
@@ -16,7 +16,7 @@ index b0e2f5c98ab1bea6962312fa05cd6d61fc81cb98..3249ea9a4b7dc05a1b53373955c267e7
import net.minecraft.world.level.GameRules; import net.minecraft.world.level.GameRules;
import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
@@ -1092,6 +1093,12 @@ public abstract class Mob extends LivingEntity { @@ -1096,6 +1097,12 @@ public abstract class Mob extends LivingEntity {
} }

View File

@@ -27,7 +27,7 @@ index fa56cd09102a89692b42f1d14257990508c5c720..f9251183df72ddc56662fd3f02acf216
setListData(vector); setListData(vector);
} }
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 55067e47a9907f038bf77f5dda2f395773472ceb..70dfa4d3b7a2c9b2a47000bf26100f174ab67d46 100644 index ec2edb4b62f692aa39652845e81daf5de2798607..6a1863e815d3330d4619309630e447f601ea0136 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
@@ -303,7 +303,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -303,7 +303,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -39,7 +39,7 @@ index 55067e47a9907f038bf77f5dda2f395773472ceb..70dfa4d3b7a2c9b2a47000bf26100f17
public boolean lagging = false; // Purpur public boolean lagging = false; // Purpur
public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant(); public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant();
// Spigot end // Spigot end
@@ -1150,6 +1150,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1152,6 +1152,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L; private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
private long lastTick = 0; private long lastTick = 0;
private long catchupTime = 0; private long catchupTime = 0;
@@ -47,7 +47,7 @@ index 55067e47a9907f038bf77f5dda2f395773472ceb..70dfa4d3b7a2c9b2a47000bf26100f17
public final RollingAverage tps1 = new RollingAverage(60); public final RollingAverage tps1 = new RollingAverage(60);
public final RollingAverage tps5 = new RollingAverage(60 * 5); public final RollingAverage tps5 = new RollingAverage(60 * 5);
public final RollingAverage tps15 = new RollingAverage(60 * 15); public final RollingAverage tps15 = new RollingAverage(60 * 15);
@@ -1240,13 +1241,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1242,13 +1243,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
{ {
final long diff = curTime - tickSection; final long diff = curTime - tickSection;
java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP); java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);
@@ -69,10 +69,10 @@ index 55067e47a9907f038bf77f5dda2f395773472ceb..70dfa4d3b7a2c9b2a47000bf26100f17
lagging = recentTps[0] < org.purpurmc.purpur.PurpurConfig.laggingThreshold; // Purpur lagging = recentTps[0] < org.purpurmc.purpur.PurpurConfig.laggingThreshold; // Purpur
tickSection = curTime; tickSection = curTime;
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 a45996f5668cbf070a59ec8296c940b1ff08f8f2..f0f3e9d0645e882da7d71e0a1051da30f1e6a41f 100644 index 64f20aa2a4f87fa39c5ba9c2ce2b32ff01dd222d..f69fc2e41a5a319e7e790d6ba0f7c85604787ab5 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
@@ -2619,6 +2619,7 @@ public final class CraftServer implements Server { @@ -2624,6 +2624,7 @@ public final class CraftServer implements Server {
@Override @Override
public double[] getTPS() { public double[] getTPS() {
return new double[] { return new double[] {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Implement elytra settings
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 3a7cb3c6bdac85731256d6f5bf3cce09c8b00c3b..8994cfeb851c7b4a2da9e4722d8cc0d05390878e 100644 index b4a5fdba6e47ae482a445deb5f90dbde2a8f5dec..38c9aa1e1f717cd9b596db85e9234d2651ac0de0 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
@@ -3388,7 +3388,16 @@ public abstract class LivingEntity extends Entity { @@ -3409,7 +3409,16 @@ public abstract class LivingEntity extends Entity {
int j = i / 10; int j = i / 10;
if (j % 2 == 0) { if (j % 2 == 0) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Item entity immunities
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index c1433f2f55d43b5dbae12f7d86ee97d4486758d4..6bed501b146aa42cae1a84e8c76f93eb35b623e1 100644 index d2b103d94fd020295624da2eeb07653f585b586c..8b04e7d83c1dfd9d3452aef069070af03a4b63a3 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java --- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -2228,7 +2228,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -2228,7 +2228,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -18,7 +18,7 @@ index c1433f2f55d43b5dbae12f7d86ee97d4486758d4..6bed501b146aa42cae1a84e8c76f93eb
private final int range; private final int range;
SectionPos lastSectionPos; SectionPos lastSectionPos;
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
index 9a6c67b614944f841813ec2892381c3342bc365c..45d2bf0e22e03db05dd954bf8c9e748bf3cea9d4 100644 index e80176708db486190dd527e3ade5fc690ceb39f7..e3d7a80f8c4b68933875ef90006b79776b4ab000 100644
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java --- a/src/main/java/net/minecraft/server/level/ServerEntity.java
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
@@ -67,7 +67,7 @@ public class ServerEntity { @@ -67,7 +67,7 @@ public class ServerEntity {
@@ -31,7 +31,7 @@ index 9a6c67b614944f841813ec2892381c3342bc365c..45d2bf0e22e03db05dd954bf8c9e748b
public ServerEntity(ServerLevel worldserver, Entity entity, int i, boolean flag, Consumer<Packet<?>> consumer, Set<ServerPlayerConnection> trackedPlayers) { public ServerEntity(ServerLevel worldserver, Entity entity, int i, boolean flag, Consumer<Packet<?>> consumer, Set<ServerPlayerConnection> trackedPlayers) {
this.trackedPlayers = trackedPlayers; this.trackedPlayers = trackedPlayers;
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
index f09db211f6f789ced85f7bf716428cd04bb41378..67b6803b986236d20b5309cab3c7f9c95ddf5f0b 100644 index 3ad87457cc1279540b5b633216aa0161e6e9b1b2..cc5396761d67a7d9e9fcc5959caf1f9330d8a6af 100644
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
@@ -54,6 +54,12 @@ public class ItemEntity extends Entity { @@ -54,6 +54,12 @@ public class ItemEntity extends Entity {
@@ -47,7 +47,7 @@ index f09db211f6f789ced85f7bf716428cd04bb41378..67b6803b986236d20b5309cab3c7f9c9
public ItemEntity(EntityType<? extends ItemEntity> type, Level world) { public ItemEntity(EntityType<? extends ItemEntity> type, Level world) {
super(type, world); super(type, world);
@@ -321,6 +327,16 @@ public class ItemEntity extends Entity { @@ -327,6 +333,16 @@ public class ItemEntity extends Entity {
return false; return false;
} else if (!this.getItem().getItem().canBeHurtBy(source)) { } else if (!this.getItem().getItem().canBeHurtBy(source)) {
return false; return false;
@@ -64,7 +64,7 @@ index f09db211f6f789ced85f7bf716428cd04bb41378..67b6803b986236d20b5309cab3c7f9c9
} else { } else {
// CraftBukkit start // CraftBukkit start
if (org.bukkit.craftbukkit.event.CraftEventFactory.handleNonLivingEntityDamageEvent(this, source, amount)) { if (org.bukkit.craftbukkit.event.CraftEventFactory.handleNonLivingEntityDamageEvent(this, source, amount)) {
@@ -503,6 +519,12 @@ public class ItemEntity extends Entity { @@ -509,6 +525,12 @@ public class ItemEntity extends Entity {
com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit
this.getEntityData().set(ItemEntity.DATA_ITEM, stack); this.getEntityData().set(ItemEntity.DATA_ITEM, stack);
this.getEntityData().markDirty(ItemEntity.DATA_ITEM); // CraftBukkit - SPIGOT-4591, must mark dirty this.getEntityData().markDirty(ItemEntity.DATA_ITEM); // CraftBukkit - SPIGOT-4591, must mark dirty
@@ -77,7 +77,7 @@ index f09db211f6f789ced85f7bf716428cd04bb41378..67b6803b986236d20b5309cab3c7f9c9
} }
@Override @Override
@@ -593,4 +615,17 @@ public class ItemEntity extends Entity { @@ -599,4 +621,17 @@ public class ItemEntity extends Entity {
public SoundSource getSoundSource() { public SoundSource getSoundSource() {
return SoundSource.AMBIENT; return SoundSource.AMBIENT;
} }

View File

@@ -27,10 +27,10 @@ index b5a5c56fbb66c17dd2e2d1f4d69d2b1826cd4951..9805132a1b11d62c3491c178fbed8b6a
return true; return true;
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 03a4c5fa746033825c26a031fbf79f721be6fa84..70d87c16734a5e1ac14cc494f95554137ba9f06e 100644 index 37884e05689288d56ef0efe92296b80ef6093b3c..e5e4fa1865cdd903a4c543b79b4d30a2f067742d 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
@@ -1496,4 +1496,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1598,4 +1598,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public boolean shouldDelayFallingBlockEntityRemoval(Entity.RemovalReason reason) { public boolean shouldDelayFallingBlockEntityRemoval(Entity.RemovalReason reason) {
return false; return false;
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow color codes in books
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 727f75ec771f68268904ea93b9da30427b8579fa..36b2015e9639441744fec5babcf46475d14ed13a 100644 index a1079a9f524e9efcc0b29b1c1b5f4e5aefa9ec85..8b16168b7c670edd251057712b1f6075133ceb8b 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
@@ -1233,13 +1233,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -1234,13 +1234,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
itemstack1.setTag(nbttagcompound.copy()); itemstack1.setTag(nbttagcompound.copy());
} }
@@ -28,7 +28,7 @@ index 727f75ec771f68268904ea93b9da30427b8579fa..36b2015e9639441744fec5babcf46475
this.updateBookPages(pages, (s) -> { this.updateBookPages(pages, (s) -> {
return Component.Serializer.toJson(new TextComponent(s)); return Component.Serializer.toJson(new TextComponent(s));
@@ -1251,10 +1254,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -1252,10 +1255,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
private void updateBookPages(List<TextFilter.FilteredText> list, UnaryOperator<String> unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit private void updateBookPages(List<TextFilter.FilteredText> list, UnaryOperator<String> unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit
ListTag nbttaglist = new ListTag(); ListTag nbttaglist = new ListTag();
@@ -44,7 +44,7 @@ index 727f75ec771f68268904ea93b9da30427b8579fa..36b2015e9639441744fec5babcf46475
Objects.requireNonNull(nbttaglist); Objects.requireNonNull(nbttaglist);
stream.forEach(nbttaglist::add); stream.forEach(nbttaglist::add);
@@ -1264,10 +1270,10 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -1265,10 +1271,10 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
for (int j = list.size(); i < j; ++i) { for (int j = list.size(); i < j; ++i) {
TextFilter.FilteredText itextfilter_a = (TextFilter.FilteredText) list.get(i); TextFilter.FilteredText itextfilter_a = (TextFilter.FilteredText) list.get(i);
@@ -57,7 +57,7 @@ index 727f75ec771f68268904ea93b9da30427b8579fa..36b2015e9639441744fec5babcf46475
if (!s.equals(s1)) { if (!s.equals(s1)) {
nbttagcompound.putString(String.valueOf(i), (String) unaryoperator.apply(s1)); nbttagcompound.putString(String.valueOf(i), (String) unaryoperator.apply(s1));
@@ -1283,6 +1289,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -1284,6 +1290,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent)
} }

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Entity lifespan
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 3249ea9a4b7dc05a1b53373955c267e7a4c7903b..78f7022c6584e634b000cc0c079112fc6cc8e869 100644 index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf609184878 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
@@ -129,6 +129,7 @@ public abstract class Mob extends LivingEntity { @@ -129,6 +129,7 @@ public abstract class Mob extends LivingEntity {
@@ -80,7 +80,7 @@ index 3249ea9a4b7dc05a1b53373955c267e7a4c7903b..78f7022c6584e634b000cc0c079112fc
} }
@Override @Override
@@ -1607,6 +1641,7 @@ public abstract class Mob extends LivingEntity { @@ -1611,6 +1645,7 @@ public abstract class Mob extends LivingEntity {
this.setLastHurtMob(target); this.setLastHurtMob(target);
} }

View File

@@ -35,7 +35,7 @@ index ae40f50a33f676059738625773127ff9ae181be0..295658d4b479e8a3e825f0b5ce5dfc2c
+ // Purpur end + // Purpur end
} }
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 3756da97a8404ea573a66f3f160cfbfd857b12e5..e2d1c4f0084f981d2541313fb8cdb0b9edd71f71 100644 index 38c9aa1e1f717cd9b596db85e9234d2651ac0de0..2950a9556fd474b659d66c1fc4d5e6e451ad9fda 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
@@ -43,6 +43,7 @@ import net.minecraft.network.syncher.EntityDataAccessor; @@ -43,6 +43,7 @@ import net.minecraft.network.syncher.EntityDataAccessor;
@@ -46,7 +46,7 @@ index 3756da97a8404ea573a66f3f160cfbfd857b12e5..e2d1c4f0084f981d2541313fb8cdb0b9
import net.minecraft.server.level.ServerChunkCache; import net.minecraft.server.level.ServerChunkCache;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
@@ -409,6 +410,7 @@ public abstract class LivingEntity extends Entity { @@ -407,6 +408,7 @@ public abstract class LivingEntity extends Entity {
double d1 = this.level.getWorldBorder().getDamagePerBlock(); double d1 = this.level.getWorldBorder().getDamagePerBlock();
if (d1 > 0.0D) { if (d1 > 0.0D) {

View File

@@ -25,7 +25,7 @@ index b5d48e3979361e1b6407a1dcf0f5271542273974..71eef6cc623db385db98d3fe98ea6574
public boolean spiderRidable = false; public boolean spiderRidable = 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 068238bc911d8458a321a920c3638d368449ac95..8ab99ce9dd678d45928c262b68741f10fd38f9a3 100644 index e12ba58f3795c17694defa308ced50a19d2a37b9..49b9c0db6693c95bae8f63e97f50720580dc59da 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
@@ -15,6 +15,7 @@ import net.minecraft.world.entity.ambient.AmbientCreature; @@ -15,6 +15,7 @@ import net.minecraft.world.entity.ambient.AmbientCreature;
@@ -36,7 +36,7 @@ index 068238bc911d8458a321a920c3638d368449ac95..8ab99ce9dd678d45928c262b68741f10
import net.minecraft.world.entity.animal.WaterAnimal; import net.minecraft.world.entity.animal.WaterAnimal;
import net.minecraft.world.entity.animal.horse.Llama; import net.minecraft.world.entity.animal.horse.Llama;
import net.minecraft.world.entity.boss.EnderDragonPart; import net.minecraft.world.entity.boss.EnderDragonPart;
@@ -362,6 +363,7 @@ public class ActivationRange @@ -381,6 +382,7 @@ public class ActivationRange
*/ */
public static boolean checkIfActive(Entity entity) public static boolean checkIfActive(Entity entity)
{ {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable villager breeding
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 ed97980cc89e086099ff5c343a99a12d8f3e469d..854efbee2b67ed805ab10882a1be0a845fbbd825 100644 index fbed51cacb1963b10946056a42fa6878e88a31a9..3d755f2c6253e83d0d9fb1348f066f4f7fe1d4be 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
@@ -759,7 +759,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -767,7 +767,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Override @Override
public boolean canBreed() { public boolean canBreed() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Totems work in inventory
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 e2d1c4f0084f981d2541313fb8cdb0b9edd71f71..527fd1662b8ff007fbc383b0061f70b2bbd5cafe 100644 index 2950a9556fd474b659d66c1fc4d5e6e451ad9fda..1bc7b7f016b0f58bad34dfd58e506967d61099e5 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
@@ -1513,6 +1513,19 @@ public abstract class LivingEntity extends Entity { @@ -1520,6 +1520,19 @@ public abstract class LivingEntity extends Entity {
} }
} }

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Short enderman height
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 4236c9dfa0be6fa8ad2f3e32d7f65f1b722c4e60..7307b3208f1b4ffe31fc4e6f73ac7264eb95849a 100644 index 4833e545545d9114a15f0bcc0d0a2a214183000f..fce7a9c1c1477d1b02a4adbe0bc5a5c97b8c93c9 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
@@ -279,7 +279,8 @@ public class EntityType<T extends Entity> implements EntityTypeTest<Entity, T> { @@ -279,7 +279,8 @@ public class EntityType<T extends Entity> implements EntityTypeTest<Entity, T> {
@@ -19,10 +19,10 @@ index 4236c9dfa0be6fa8ad2f3e32d7f65f1b722c4e60..7307b3208f1b4ffe31fc4e6f73ac7264
private static <T extends Entity> EntityType<T> register(String id, EntityType.Builder type) { // CraftBukkit - decompile error private static <T extends Entity> EntityType<T> register(String id, EntityType.Builder type) { // CraftBukkit - decompile error
return (EntityType) Registry.register(Registry.ENTITY_TYPE, id, (EntityType<T>) type.build(id)); // CraftBukkit - decompile error return (EntityType) Registry.register(Registry.ENTITY_TYPE, id, (EntityType<T>) type.build(id)); // CraftBukkit - decompile error
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 2e831d7901747d7957becddc2daf453c4f30bdcc..c72d5151d4d8eb784550022321578ca820c84948 100644 index 434e51325cbfe4539470f9ec5164e8ebdd482748..37fe7d448ae40e67cc8c7c1856df3c8ac276f0be 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
@@ -399,6 +399,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -405,6 +405,7 @@ public class EnderMan extends Monster implements NeutralMob {
if (this.isInvulnerableTo(source)) { if (this.isInvulnerableTo(source)) {
return false; return false;
} else if (getRider() != null) { return super.hurt(source, amount); // Purpur - no teleporting on damage } else if (getRider() != null) { return super.hurt(source, amount); // Purpur - no teleporting on damage

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water
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 3417d7aaf858ae4759fd6b2b22f67e951769c33c..55635a8abf1ee69e01ba8a7d6119e6c7fdd7ac0d 100644 index 0ff2b5c23c904826098af23f17e95aba790ef3de..4fad4e9a15be08154c3eb7af1653a61dae9a581f 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
@@ -3887,6 +3887,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -3914,6 +3914,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
this.yRotO = this.getYRot(); this.yRotO = this.getYRot();
} }
@@ -19,7 +19,7 @@ index 3417d7aaf858ae4759fd6b2b22f67e951769c33c..55635a8abf1ee69e01ba8a7d6119e6c7
+ // Purpur end + // Purpur end
+ +
public boolean updateFluidHeightAndDoFluidPushing(Tag<Fluid> tag, double speed) { public boolean updateFluidHeightAndDoFluidPushing(Tag<Fluid> tag, double speed) {
if (this.touchingUnloadedChunk()) { if (false && this.touchingUnloadedChunk()) { // Pufferfish - cost of a lookup here is the same cost as below, so skip
return false; return false;
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
index 501b082e36b30140eef9540b8b217b9d45309dff..55f94d28a536f5ceda00831e1b22c8db31c07c2f 100644 index 501b082e36b30140eef9540b8b217b9d45309dff..55f94d28a536f5ceda00831e1b22c8db31c07c2f 100644

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Entities can use portals configuration
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 55635a8abf1ee69e01ba8a7d6119e6c7fdd7ac0d..0198b89d3ac768c826d5be22cde88004f3444d48 100644 index 4fad4e9a15be08154c3eb7af1653a61dae9a581f..4d9ba5bfd3632c5402badde37996b6ae8c4dea5b 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
@@ -2716,7 +2716,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -2743,7 +2743,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
public void handleInsidePortal(BlockPos pos) { public void handleInsidePortal(BlockPos pos) {
if (this.isOnPortalCooldown()) { if (this.isOnPortalCooldown()) {
this.setPortalCooldown(); this.setPortalCooldown();
@@ -17,7 +17,7 @@ index 55635a8abf1ee69e01ba8a7d6119e6c7fdd7ac0d..0198b89d3ac768c826d5be22cde88004
if (!this.level.isClientSide && !pos.equals(this.portalEntrancePos)) { if (!this.level.isClientSide && !pos.equals(this.portalEntrancePos)) {
this.portalEntrancePos = pos.immutable(); this.portalEntrancePos = pos.immutable();
} }
@@ -3376,7 +3376,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -3403,7 +3403,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
} }
public boolean canChangeDimensions() { public boolean canChangeDimensions() {

View File

@@ -79,7 +79,7 @@ index fe502e148e218ae404e0049c0251d3e3ca08c825..11befaed9c2845262607cd9e1e38a178
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
index 1037d0a0cdd4fd7aa99a958ee969759c5883fdc0..c1267592dd5fcc2b528eac22aaa245189df5a436 100644 index 2015223c1703935faef52a8b88263ab3f1fbe92a..3b36a5f79b830dcf0b3eb4ff278c82134a58da96 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java --- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java +++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
@@ -663,4 +663,11 @@ public class FishingHook extends Projectile { @@ -663,4 +663,11 @@ public class FishingHook extends Projectile {
@@ -127,7 +127,7 @@ index 1a945a32c3d3705a318ebca72a365931a8c001b7..c7fdcfae1ba823046fdfe78aa97b4a7a
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index 36417466ae30e9f7f3e953fd4ff98ed3f3b71725..edc4fc597d60e6125d44023085e993db2e96c4ef 100644 index cfb43f277c013680a0e51fb93796e38f88b506db..97609bedb82dee6a200ff8b825622c427d7dcf73 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -33,6 +33,7 @@ public abstract class Projectile extends Entity { @@ -33,6 +33,7 @@ public abstract class Projectile extends Entity {
@@ -138,9 +138,9 @@ index 36417466ae30e9f7f3e953fd4ff98ed3f3b71725..edc4fc597d60e6125d44023085e993db
// CraftBukkit start // CraftBukkit start
public boolean hitCancelled = false; // Purpur - private -> public public boolean hitCancelled = false; // Purpur - private -> public
@@ -42,6 +43,19 @@ public abstract class Projectile extends Entity { @@ -72,6 +73,19 @@ public abstract class Projectile extends Entity {
super(type, world);
} }
// Pufferfish start
+ // Purpur start + // Purpur start
+ protected final void tickDespawnCounter() { + protected final void tickDespawnCounter() {

View File

@@ -24,10 +24,10 @@ index 19d6165f266fcc39bc3533042109ef1b725ecb77..32bf8264fecb8873f3ffa0e57a4bb48b
private boolean bypassArmor; private boolean bypassArmor;
private boolean bypassInvul; private boolean bypassInvul;
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 0198b89d3ac768c826d5be22cde88004f3444d48..cd25a1e6671276ecb465a60ee969122fa5648ded 100644 index 4d9ba5bfd3632c5402badde37996b6ae8c4dea5b..02a2496539813b1d34b9e5ccac0590e6b58c17b5 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
@@ -1024,7 +1024,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -1051,7 +1051,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
} }
// CraftBukkit end // CraftBukkit end

View File

@@ -18,10 +18,10 @@ index 689ad22925b2561f7c8db961743eb1f821dbb25f..fa3c960992cc240161817e54659d83fe
public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) { public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) {
this.gameTime = time % 192000; // Paper - fix guardian beam this.gameTime = time % 192000; // Paper - fix guardian beam
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 70dfa4d3b7a2c9b2a47000bf26100f174ab67d46..9e62e7ba26648d3ffa393f47a1de1d14182ceb36 100644 index 6a1863e815d3330d4619309630e447f601ea0136..dcb496f6af114ad5a41bfa3f3072ba48d9f2e8e9 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
@@ -1583,7 +1583,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1585,7 +1585,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
long worldTime = world.getGameTime(); long worldTime = world.getGameTime();
final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight); final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight);
for (Player entityhuman : world.players()) { for (Player entityhuman : world.players()) {
@@ -31,7 +31,7 @@ index 70dfa4d3b7a2c9b2a47000bf26100f174ab67d46..9e62e7ba26648d3ffa393f47a1de1d14
} }
ServerPlayer entityplayer = (ServerPlayer) entityhuman; ServerPlayer entityplayer = (ServerPlayer) entityhuman;
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 e0d2446a3e203a8980f2b4a8d45f677f5d7a7698..5e027260743202b69ce348ef5cd04709eca689b0 100644 index b312ad3e74f053f1272b657a51d81825a7c38607..571fb586a7f9231e155c6842a440f8acf59b8963 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
@@ -206,6 +206,8 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -206,6 +206,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -51,7 +51,7 @@ index e0d2446a3e203a8980f2b4a8d45f677f5d7a7698..5e027260743202b69ce348ef5cd04709
} }
public void setWeatherParameters(int clearDuration, int rainDuration, boolean raining, boolean thundering) { public void setWeatherParameters(int clearDuration, int rainDuration, boolean raining, boolean thundering) {
@@ -719,6 +722,13 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -732,6 +735,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.serverLevelData.setGameTime(i); this.serverLevelData.setGameTime(i);
this.serverLevelData.getScheduledEvents().tick(this.server, i); this.serverLevelData.getScheduledEvents().tick(this.server, i);
if (this.levelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) { if (this.levelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) {
@@ -65,7 +65,7 @@ index e0d2446a3e203a8980f2b4a8d45f677f5d7a7698..5e027260743202b69ce348ef5cd04709
this.setDayTime(this.levelData.getDayTime() + 1L); this.setDayTime(this.levelData.getDayTime() + 1L);
} }
@@ -727,7 +737,21 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -740,7 +750,21 @@ public class ServerLevel extends Level implements WorldGenLevel {
public void setDayTime(long timeOfDay) { public void setDayTime(long timeOfDay) {
this.serverLevelData.setDayTime(timeOfDay); this.serverLevelData.setDayTime(timeOfDay);

View File

@@ -33,7 +33,7 @@ index 2bc77858b4a78e24227b4b096fd44177202d5292..b26d5482d89e28897bcc9dc8a15042a5
entityageable.setBaby(true); entityageable.setBaby(true);
entityageable.moveTo(this.getX(), this.getY(), this.getZ(), 0.0F, 0.0F); entityageable.moveTo(this.getX(), this.getY(), this.getZ(), 0.0F, 0.0F);
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 8493dc3447cc524f08732045df81b7c62aecb179..182b07219192a901289114a16b12eb32cc3caa4c 100644 index e5e4fa1865cdd903a4c543b79b4d30a2f067742d..dfcb5d9fe165852bffe2a676f134ba060ea1aa71 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
@@ -188,6 +188,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -188,6 +188,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -86,7 +86,7 @@ index 8493dc3447cc524f08732045df81b7c62aecb179..182b07219192a901289114a16b12eb32
public CraftWorld getWorld() { public CraftWorld getWorld() {
return this.world; return this.world;
} }
@@ -314,6 +357,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -323,6 +366,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
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 = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), this.spigotConfig); // Paper this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), this.spigotConfig); // Paper
this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur

View File

@@ -8,10 +8,10 @@ This should help to reduce the amount of dirt, gravel, grass, and etc.
that Endermen like to randomly place all over the world. that Endermen like to randomly place all over the world.
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 c72d5151d4d8eb784550022321578ca820c84948..a15be819a3c73cf3bdd5da148d6f2d56dd5db404 100644 index 37fe7d448ae40e67cc8c7c1856df3c8ac276f0be..3945038b07393cd4692b340f32a988404117fe6f 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
@@ -453,7 +453,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -459,7 +459,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override @Override
public boolean requiresCustomPersistence() { public boolean requiresCustomPersistence() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Changeable Mob Left Handed Chance
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 78f7022c6584e634b000cc0c079112fc6cc8e869..2f75ebe8088d70f73a17557fe525ae119a1e19e9 100644 index 359b47daf27712bbd5f2b8fee5a2edf609184878..163ca04792388a9f27e5dc22def40ce5b9efbf11 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
@@ -1225,7 +1225,7 @@ public abstract class Mob extends LivingEntity { @@ -1229,7 +1229,7 @@ public abstract class Mob extends LivingEntity {
@Nullable @Nullable
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) { public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
this.getAttribute(Attributes.FOLLOW_RANGE).addPermanentModifier(new AttributeModifier("Random spawn bonus", this.random.nextGaussian() * 0.05D, AttributeModifier.Operation.MULTIPLY_BASE)); this.getAttribute(Attributes.FOLLOW_RANGE).addPermanentModifier(new AttributeModifier("Random spawn bonus", this.random.nextGaussian() * 0.05D, AttributeModifier.Operation.MULTIPLY_BASE));

View File

@@ -145,10 +145,10 @@ index b615dc2a2127f0874775d1707e96edfb4d95b987..72ae6b3282aac806ae11b87024ee940e
brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list); brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list);
} else { } else {
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 854efbee2b67ed805ab10882a1be0a845fbbd825..a78b5416a850d6533b71e3d288224141d5077a77 100644 index 3d755f2c6253e83d0d9fb1348f066f4f7fe1d4be..1d711f67709b8af89d4ada3191fdce716e92047c 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
@@ -215,7 +215,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -217,7 +217,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
brain.addActivity(Activity.PLAY, VillagerGoalPackages.getPlayPackage(0.5F)); brain.addActivity(Activity.PLAY, VillagerGoalPackages.getPlayPackage(0.5F));
} else { } else {
brain.setSchedule(Schedule.VILLAGER_DEFAULT); brain.setSchedule(Schedule.VILLAGER_DEFAULT);
@@ -157,7 +157,7 @@ index 854efbee2b67ed805ab10882a1be0a845fbbd825..a78b5416a850d6533b71e3d288224141
} }
brain.addActivity(Activity.CORE, VillagerGoalPackages.getCorePackage(villagerprofession, 0.5F)); brain.addActivity(Activity.CORE, VillagerGoalPackages.getCorePackage(villagerprofession, 0.5F));
@@ -974,6 +974,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -982,6 +982,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
} }
public boolean hasFarmSeeds() { public boolean hasFarmSeeds() {

View File

@@ -17,10 +17,10 @@ index 40735237cc87a476d08f1ffcb1b67ce563091230..3156e7e43a5114aaaa1276b024f4ec45
if (environment.includeIntegrated) { if (environment.includeIntegrated) {
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 9e62e7ba26648d3ffa393f47a1de1d14182ceb36..dc95a1230ac6f86c32b3c6a8e4876725dbb3c033 100644 index dcb496f6af114ad5a41bfa3f3072ba48d9f2e8e9..269acf4aafc296f2217c502ea42696e06c492581 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
@@ -1124,6 +1124,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1126,6 +1126,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.safeShutdown(flag, false); this.safeShutdown(flag, false);
} }
public void safeShutdown(boolean flag, boolean isRestarting) { public void safeShutdown(boolean flag, boolean isRestarting) {
@@ -29,15 +29,14 @@ index 9e62e7ba26648d3ffa393f47a1de1d14182ceb36..dc95a1230ac6f86c32b3c6a8e4876725
this.hasLoggedStop = true; // Paper this.hasLoggedStop = true; // Paper
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper
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 8bf98d8f8e9f0baaf203a9e8d18683236856eab7..455776981274e64724376a3182b60784b56db9cf 100644 index d58e5357f9cb45d9b5ddeaed4ec76aa388fc34d1..9e83f2dea73461f698185f5ffdb6060e422b9494 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
@@ -355,6 +355,8 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -358,6 +358,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
DedicatedServer.LOGGER.info("JMX monitoring enabled");
} }
if (gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncMobSpawning) mobSpawnExecutor.start(); // Pufferfish
+ org.purpurmc.purpur.task.BossBarTask.startAll(); // Purpur + org.purpurmc.purpur.task.BossBarTask.startAll(); // Purpur
+
return true; return true;
} }
} }
@@ -84,7 +83,7 @@ index dfe547b7a2caa2ecfdddef9b9a49be40d26c5da8..951e45f7b17f6f903c99634177395464
// Purpur end // Purpur end
} }
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 5c11e91e1eebb0e24aaca9af323a9d5ecdc0a411..63e8397d6eff95ed81ab5d7cdb69495e188d931b 100644 index 782aa2b519d4aff67ad50528abc27907cdd1ce6d..b8314253274688a1e9acb097f1809ace55409afd 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java --- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -482,6 +482,7 @@ public abstract class PlayerList { @@ -482,6 +482,7 @@ public abstract class PlayerList {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] PlayerBookTooLargeEvent
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 36b2015e9639441744fec5babcf46475d14ed13a..93f8d5b707811b73fb15cedc4bac83d825ba9e15 100644 index 8b16168b7c670edd251057712b1f6075133ceb8b..d069a2816eab77223ba355449a149b3b1e465b60 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
@@ -1155,10 +1155,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -1156,10 +1156,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
int maxBookPageSize = com.destroystokyo.paper.PaperConfig.maxBookPageSize; int maxBookPageSize = com.destroystokyo.paper.PaperConfig.maxBookPageSize;
double multiplier = Math.max(0.3D, Math.min(1D, com.destroystokyo.paper.PaperConfig.maxBookTotalSizeMultiplier)); double multiplier = Math.max(0.3D, Math.min(1D, com.destroystokyo.paper.PaperConfig.maxBookTotalSizeMultiplier));
long byteAllowed = maxBookPageSize; long byteAllowed = maxBookPageSize;
@@ -21,7 +21,7 @@ index 36b2015e9639441744fec5babcf46475d14ed13a..93f8d5b707811b73fb15cedc4bac83d8
server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause
return; return;
} }
@@ -1182,6 +1184,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -1183,6 +1185,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
if (byteTotal > byteAllowed) { if (byteTotal > byteAllowed) {
ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size());

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