This commit is contained in:
toinouH 2021-02-08 22:32:47 +01:00
commit 0f61e1afee
76 changed files with 706 additions and 148 deletions

View File

@ -67,6 +67,7 @@ # Patches
| server | Add wither skeleton takes wither damage option | William Blake Galbreath | |
| server | Advancement API | William Blake Galbreath | |
| api | Advancement API | William Blake Galbreath | |
| server | Airplane Configuration | Paul Sauve | |
| server | Airplane MC Dev Fixes | Paul Sauve | |
| server | Allow Entities to be removed from a world while ticking | Spottedleaf | |
| server | Allow anvil colors | William Blake Galbreath | |
@ -149,6 +150,7 @@ # Patches
| server | Don't wake up entities when damage event is cancelled | Phoenix616 | |
| server | Dont send useless entity packets | William Blake Galbreath | |
| server | Duplicate paper's vanilla scoreboard colors patch to sync | William Blake Galbreath | |
| server | Dynamic activation range | Paul Sauve | |
| server | EMC - Configurable disable give dropping | Aikar | |
| server | EMC - MonsterEggSpawnEvent | Aikar | |
| api | EMC - MonsterEggSpawnEvent | Aikar | |

2
Paper

@ -1 +1 @@
Subproject commit 0514fc4e2d2805cd0263a0ee053b482b4c454c69
Subproject commit 3dadd97bbc9f622c62c5a6d885fe9453a003cbe6

View File

@ -0,0 +1,301 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Paul Sauve <paul@technove.co>
Date: Wed, 20 Jan 2021 13:08:53 -0600
Subject: [PATCH] Airplane Configuration
Airplane
Copyright (C) 2020 Technove LLC
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
diff --git a/src/main/java/gg/airplane/AirplaneConfig.java b/src/main/java/gg/airplane/AirplaneConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..4feb9686f45ce4ae9f474447496b8e0f6fcb7e31
--- /dev/null
+++ b/src/main/java/gg/airplane/AirplaneConfig.java
@@ -0,0 +1,46 @@
+package gg.airplane;
+
+import gg.airplane.manual.ManualParser;
+import net.minecraft.server.MinecraftServer;
+import org.apache.logging.log4j.Level;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+
+public class AirplaneConfig {
+
+ private static ManualParser manual;
+
+ public static void load() {
+ try {
+ manual = new ManualParser(new File("airplane.air"));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ manual.get("info.version", "1.0");
+ manual.setComment("info",
+ " Airplane Configuration",
+ " Please see https://airplane.gg/config for help.");
+
+ for (Method method : AirplaneConfig.class.getDeclaredMethods()) {
+ if (Modifier.isStatic(method.getModifiers()) && Modifier.isPrivate(method.getModifiers())) {
+ method.setAccessible(true);
+ try {
+ method.invoke(null);
+ } catch (Throwable t) {
+ MinecraftServer.LOGGER.log(Level.WARN, "Failed to load configuration option from " + method.getName(), t);
+ }
+ }
+ }
+
+ try {
+ manual.save();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+}
diff --git a/src/main/java/gg/airplane/manual/ManualParser.java b/src/main/java/gg/airplane/manual/ManualParser.java
new file mode 100644
index 0000000000000000000000000000000000000000..ace29adb0f140d99a8d85ac824654beded4bf5b8
--- /dev/null
+++ b/src/main/java/gg/airplane/manual/ManualParser.java
@@ -0,0 +1,210 @@
+package gg.airplane.manual;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+// todo make this cleaner and more ergonomic to use
+// also probably needs lists eventually
+public class ManualParser {
+
+ private final File file;
+ private final Map<String, Section> sections = new LinkedHashMap<>();
+
+ private static class ManualObject {
+ public final String key;
+ public final List<String> comments;
+
+ private ManualObject(String key, List<String> comments) {
+ this.key = key;
+ this.comments = comments == null ? new ArrayList<>() : comments;
+ }
+ }
+
+ private static class Section extends ManualObject {
+ public final Map<String, Value> values;
+
+ private Section(String key, List<String> comments) {
+ super(key, comments);
+ this.values = new LinkedHashMap<>();
+ }
+
+ public void add(String key, Value value) {
+ this.values.put(key, value);
+ value.parent = this;
+ }
+
+ public Value get(String key) {
+ return this.values.computeIfAbsent(key, k -> {
+ Value value = new Value(k, null, null);
+ value.parent = this;
+ return value;
+ });
+ }
+ }
+
+ private static class Value extends ManualObject {
+ public Object value;
+ public Section parent;
+
+ private Value(String key, Object value, List<String> comments) {
+ super(key, comments);
+ this.value = value;
+ }
+ }
+
+ public ManualParser(File file) throws IOException {
+ this.file = file;
+
+ if (!file.exists()) {
+ return;
+ }
+
+ try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
+ Section currentSection = null;
+ List<String> currentComment = new ArrayList<>();
+
+ String line;
+ while ((line = reader.readLine()) != null) {
+ line = line.trim();
+
+ if (line.length() == 0) {
+ continue; // empty line
+ }
+
+ if (line.startsWith("#")) {
+ currentComment.add(line.substring(1).trim());
+ } else if (line.startsWith("[")) {
+ if (!line.endsWith("]")) {
+ throw new IllegalArgumentException("Invalid configuration, section '" + line + "' does not end with ]");
+ }
+ if (line.length() < 3) {
+ throw new IllegalArgumentException("Invalid configuration, section '" + line + "' does not have a name");
+ }
+ String sectionName = line.substring(1, line.length() - 1);
+ Section newSection = new Section(sectionName, currentComment);
+ currentComment = new ArrayList<>();
+ currentSection = newSection;
+ this.sections.put(sectionName, newSection);
+ } else {
+ if (currentSection == null) {
+ throw new IllegalArgumentException("Invalid configuration, found value outside of section " + line);
+ }
+ int equals = line.indexOf("=");
+ if (equals <= 1 || equals == line.length() - 1) {
+ throw new IllegalArgumentException("Invalid configuration, assignment invalid " + line);
+ }
+
+ String key = line.substring(0, equals).trim();
+
+ String value = line.substring(equals + 1).trim();
+ if (value.length() == 0) {
+ throw new IllegalArgumentException("Invalid configuration, value does not exist " + line);
+ }
+ if (value.startsWith("\"")) {
+ if (!value.endsWith("\"")) {
+ throw new IllegalArgumentException("Invalid configuration, value has no ending quote " + line);
+ }
+ String stringValue = value.substring(1, value.length() - 1);
+ currentSection.add(key, new Value(key, stringValue, currentComment));
+ } else if (Character.isDigit(value.charAt(0))) {
+ if (value.contains(".")) {
+ double doubleValue = Double.parseDouble(value);
+ currentSection.add(key, new Value(key, doubleValue, currentComment));
+ } else {
+ int intValue = Integer.parseInt(value);
+ currentSection.add(key, new Value(key, intValue, currentComment));
+ }
+ } else if (value.equals("true") || value.equals("false")) {
+ boolean boolValue = Boolean.parseBoolean(value);
+ currentSection.add(key, new Value(key, boolValue, currentComment));
+ } else {
+ throw new IllegalArgumentException("Invalid configuration, unknown type for " + line);
+ }
+ currentComment = new ArrayList<>();
+ }
+ }
+ }
+ }
+
+ public void save() throws IOException {
+ try (BufferedWriter writer = new BufferedWriter(new FileWriter(this.file))) {
+ for (Map.Entry<String, Section> entry : this.sections.entrySet()) {
+ Section section = entry.getValue();
+ if (section.comments != null) {
+ for (String comment : section.comments) {
+ writer.write("# " + comment + "\n");
+ }
+ }
+ writer.write("[" + section.key + "]" + "\n");
+ for (Value value : section.values.values()) {
+ if (value.comments != null) {
+ for (String comment : value.comments) {
+ writer.write(" # " + comment + "\n");
+ }
+ }
+ writer.write(" " + value.key + " = " + serialize(value.value) + "\n");
+ }
+ writer.write("\n");
+ }
+ }
+ }
+
+ private ManualObject getObject(String key) {
+ String[] split = key.split("\\.", 2);
+ if (split.length == 1) {
+ return this.sections.computeIfAbsent(key, k -> new Section(k, null));
+ }
+ return this.sections.computeIfAbsent(split[0], k -> new Section(k, null)).get(split[1]);
+ }
+
+ public void setComment(String key, String... comment) {
+ ManualObject object = this.getObject(key);
+ object.comments.clear();
+ object.comments.addAll(Arrays.asList(comment));
+ }
+
+ public <T> T get(String key, T defaultValue, String... comment) {
+ String[] split = key.split("\\.", 2);
+ if (split.length == 1) {
+ throw new IllegalArgumentException("Key " + key + " does not include section");
+ }
+ Section section = this.sections.computeIfAbsent(split[0], k -> new Section(k, null));
+ if (!section.values.containsKey(split[1])) {
+ Value value = section.get(split[1]);
+ value.value = defaultValue;
+ value.comments.addAll(Arrays.asList(comment));
+ return defaultValue;
+ }
+ Value value = section.get(split[1]);
+ if (value.comments.isEmpty()) {
+ value.comments.addAll(Arrays.asList(comment));
+ }
+ return (T) value.value;
+ }
+
+ public void set(String key, Object value) {
+ ManualObject object = getObject(key);
+ if (!(object instanceof Value)) {
+ throw new IllegalArgumentException("Invalid key for value " + key);
+ }
+ ((Value) object).value = value;
+ }
+
+ private String serialize(Object object) {
+ if (object instanceof String) {
+ return "\"" + object + "\"";
+ }
+ return String.valueOf(object);
+ }
+
+}
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 3ee8d31c453105eca7b96bede39a9ebbf40e1c2c..ca3d9dbcbeeb5059a942cae1a5020f0bcc59ac9c 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -179,6 +179,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now
// Paper end
com.tuinity.tuinity.config.TuinityConfig.init((java.io.File) options.valueOf("tuinity-settings")); // Tuinity - Server Config
+ gg.airplane.AirplaneConfig.load(); // Airplane - config
this.setPVP(dedicatedserverproperties.pvp);
this.setAllowFlight(dedicatedserverproperties.allowFlight);

View File

@ -88,7 +88,7 @@ index 2e7721a650c5a351b3584665bd236f92ef577761..b3c2b461b2a654a9e37a57f2f62b3ba8
return d0 == 0.0D ? 0 : (d0 > 0.0D ? 1 : -1);
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 91aa8a2bc111ee6935ada0ae471fe1a3bc8fad80..0e6813601f082a9e81278cebbfadbaca5769802a 100644
index 7c367fe6152c30aab3e53c8f88cceba606891c93..6e6059daba05d7ce3aabeed85cc0e0d2daa04f92 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -332,6 +332,91 @@ public abstract class World implements GeneratorAccess, AutoCloseable {

View File

@ -0,0 +1,251 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Paul Sauve <paul@technove.co>
Date: Fri, 15 Jan 2021 19:05:01 -0600
Subject: [PATCH] Dynamic activation range
This replaces the current method of ticking an inactive entity's
pathfinder 1/4 times with a new method that's dynamic based off how far
away it is from a player. If an entity is within 32 blocks, it gets
ticked every tick. If it's within 45 blocks, it gets ticked every other
tick. If it's within 55 blocks, it gets ticked once every three ticks.
(these numbers have since been changed, but the idea is the same.)
Airplane
Copyright (C) 2020 Technove LLC
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
diff --git a/src/main/java/gg/airplane/AirplaneConfig.java b/src/main/java/gg/airplane/AirplaneConfig.java
index 4feb9686f45ce4ae9f474447496b8e0f6fcb7e31..c39c9929a251b41ab60e1509b4e6c90d0825dc0c 100644
--- a/src/main/java/gg/airplane/AirplaneConfig.java
+++ b/src/main/java/gg/airplane/AirplaneConfig.java
@@ -43,4 +43,29 @@ public class AirplaneConfig {
}
}
+
+ public static int maximumActivationPrio = 20;
+ public static int activationDistanceMod = 9;
+ public static boolean dynamicVillagerBehavior = true;
+ public static boolean dynamicPiglinBehavior = true;
+ public static boolean dynamicHoglinBehavior = true;
+
+ private static void dynamicActivationRange() {
+ manual.setComment("activation-range", "Optimizes how entities act when", "they're far away from the player");
+
+ maximumActivationPrio = manual.get("activation-range.max-tick-freq", maximumActivationPrio,
+ "This value defines how often in ticks, the furthest entity",
+ "will get their pathfinders and behaviors ticked. 20 = 1s");
+ activationDistanceMod = manual.get("activation-range.activation-dist-mod", activationDistanceMod,
+ "This value defines how much distance modifies an entity's",
+ "tick frequency. freq = (distanceToPlayer^2) / (2^value)",
+ "If you want further away entities to tick less often, use 8.",
+ "If you want further away entities to tick more often, try 10.");
+
+ manual.setComment("behavior-activation", "A list of entities to use the dynamic activation range", "to modify how often their behaviors are ticked");
+ dynamicVillagerBehavior = manual.get("behavior-activation.villager", dynamicVillagerBehavior);
+ dynamicPiglinBehavior = manual.get("behavior-activation.piglin", dynamicPiglinBehavior);
+ dynamicHoglinBehavior = manual.get("behavior-activation.hoglin", dynamicHoglinBehavior);
+ }
+
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 63eb29635957d4e6ce1274ee17a59af62d442d4e..d74086ee72cfae3d2bead9fb08c808299d755e2a 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -197,6 +197,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
public void inactiveTick() { }
// Spigot end
public boolean shouldBeRemoved; // Paper
+ // Airplane start
+ public int activatedPriority = gg.airplane.AirplaneConfig.maximumActivationPrio; // golf score
+ // Airplane end
public float getBukkitYaw() {
return this.yaw;
diff --git a/src/main/java/net/minecraft/server/EntityHoglin.java b/src/main/java/net/minecraft/server/EntityHoglin.java
index 4a3469aca9f9e47d2ea3f3bae6ce77f5f11d6b50..5af5b50889961b10e812598dbea657c4e2aeceeb 100644
--- a/src/main/java/net/minecraft/server/EntityHoglin.java
+++ b/src/main/java/net/minecraft/server/EntityHoglin.java
@@ -102,13 +102,18 @@ public class EntityHoglin extends EntityAnimal implements IMonster, IOglin {
return (BehaviorController<EntityHoglin>) super.getBehaviorController(); // Purpur - decompile error
}
+ private int behaviorTick; // Airplane
@Override
protected void mobTick() {
+ // Airplane - dynamic tick
+ if (!gg.airplane.AirplaneConfig.dynamicHoglinBehavior || this.behaviorTick++ % this.activatedPriority == 0) {
this.world.getMethodProfiler().enter("hoglinBrain");
if (getRider() == null) // Purpur - only use brain if no rider
this.getBehaviorController().a((WorldServer) this.world, this); // Purpur - decompile error
this.world.getMethodProfiler().exit();
HoglinAI.a(this);
+ }
+ // Airplane end
if (this.isConverting()) {
++this.conversionTicks;
if (this.conversionTicks > 300) {
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index dac0d2f9f4c8c909f0c03baa30c0565633d3af42..288e57fd58d5dfa91dce23e137ad078e455db4d3 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -133,10 +133,10 @@ public abstract class EntityInsentient extends EntityLiving {
@Override
public void inactiveTick() {
super.inactiveTick();
- if (this.goalSelector.inactiveTick()) {
+ if (this.goalSelector.inactiveTick(this.activatedPriority)) { // Airplane - pass activated priroity
this.goalSelector.doTick();
}
- if (this.targetSelector.inactiveTick()) {
+ if (this.targetSelector.inactiveTick(this.activatedPriority)) { // Airplane - pass activated priority
this.targetSelector.doTick();
}
}
@@ -797,9 +797,11 @@ public abstract class EntityInsentient extends EntityLiving {
this.bo.a();
this.world.getMethodProfiler().exit();
this.world.getMethodProfiler().enter("targetSelector");
+ if (this.targetSelector.inactiveTick(this.activatedPriority)) // Airplane - use this to alternate ticking
this.targetSelector.doTick();
this.world.getMethodProfiler().exit();
this.world.getMethodProfiler().enter("goalSelector");
+ if (this.goalSelector.inactiveTick(this.activatedPriority)) // Airplane - use this to alternate ticking
this.goalSelector.doTick();
this.world.getMethodProfiler().exit();
this.world.getMethodProfiler().enter("navigation");
diff --git a/src/main/java/net/minecraft/server/EntityPiglin.java b/src/main/java/net/minecraft/server/EntityPiglin.java
index 4849829df1041568a9fcac6d16501fc0606d95da..2ac74751ac8cea0b829b3d0ed03f052162a78781 100644
--- a/src/main/java/net/minecraft/server/EntityPiglin.java
+++ b/src/main/java/net/minecraft/server/EntityPiglin.java
@@ -216,13 +216,18 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow {
return !this.cannotHunt;
}
+ private int behaviorTick; // Airplane
@Override
protected void mobTick() {
+ // Airplane - dynamic tick
+ if (!gg.airplane.AirplaneConfig.dynamicPiglinBehavior || this.behaviorTick++ % this.activatedPriority == 0) {
this.world.getMethodProfiler().enter("piglinBrain");
if (getRider() == null) // Purpur - only use brain if no rider
this.getBehaviorController().a((WorldServer) this.world, this); // Purpur - decompile error
this.world.getMethodProfiler().exit();
PiglinAI.b(this);
+ }
+ // Airplane end
super.mobTick();
}
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index eef51f8e5734b897164ca9514e7b49b2678416e6..5fc57e2e2afe383ddc9b6d4db714a678c881fa77 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -212,6 +212,8 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
}
// Purpur end
+ private int behaviorTick = 0;
+
@Override
protected void mobTick() { mobTick(false); }
protected void mobTick(boolean inactive) {
@@ -221,7 +223,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
boolean tick = (world.getTime() + brainTickOffset) % world.purpurConfig.villagerBrainTicks == 0;
if (((WorldServer) world).getMinecraftServer().lagging ? tick : world.purpurConfig.villagerUseBrainTicksOnlyWhenLagging || tick)
// Purpur end
- if (!inactive) this.getBehaviorController().a((WorldServer) this.world, this); // CraftBukkit - decompile error // Paper
+ if (!inactive) {
+ if (!gg.airplane.AirplaneConfig.dynamicVillagerBehavior || behaviorTick++ % this.activatedPriority == 0) {
+ this.getBehaviorController().a((WorldServer) this.world, this); // CraftBukkit - decompile error // Paper
+ }
+ }
else if (shouldRestock()) doRestock(); // Purpur
this.world.getMethodProfiler().exit();
if (this.bF) {
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalSelector.java b/src/main/java/net/minecraft/server/PathfinderGoalSelector.java
index 9cad895c7d008487ce885cbcc2c3966645df4c19..2ce5e07f4dcd0c76073840c35be66b7c65c6e7e8 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalSelector.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalSelector.java
@@ -43,9 +43,14 @@ public class PathfinderGoalSelector {
}
// Paper start
- public boolean inactiveTick() {
- incRate();
- return getCurRate() % getTickRate() == 0;
+ public boolean inactiveTick(int tickRate) { // Airplane - take tick rate
+ tickRate = Math.max(tickRate, getTickRate()); // Airplane
+ if (this.curRate++ % tickRate != 0) { // Airplane - use tick rate / increment curRate every tick
+ //incRate();
+ return false;
+ } else {
+ return true;
+ }
}
public boolean hasTasks() {
for (PathfinderGoalWrapped task : getTasks()) {
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 66b7c75929cd98737628b9d4f22829b5b65b8373..ea3d813759d90a6d229ca065abe044743be4780f 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -48,6 +48,9 @@ import net.minecraft.server.EntityInsentient;
import net.minecraft.server.EntityLlama;
import net.minecraft.server.EntityWaterAnimal;
// Paper end
+// Airplane start
+import net.minecraft.server.Vec3D;
+// Airplane end
public class ActivationRange
{
@@ -229,7 +232,7 @@ public class ActivationRange
Chunk chunk = chunkProvider.getChunkAtIfLoadedMainThreadNoCache( i1, j1 ); // Paper
if ( chunk != null )
{
- activateChunkEntities( chunk );
+ activateChunkEntities( chunk, player.getPositionVector() ); // Airplane
}
}
}
@@ -242,7 +245,7 @@ public class ActivationRange
*
* @param chunk
*/
- private static void activateChunkEntities(Chunk chunk)
+ private static void activateChunkEntities(Chunk chunk, Vec3D playerVec) // Airplane - add player location
{
// Paper start
Entity[] rawData = chunk.entities.getRawData();
@@ -251,11 +254,19 @@ public class ActivationRange
//for ( Entity entity : (Collection<Entity>) slice )
// Paper end
{
+ // Airplane start
+ Vec3D entityVec = entity.getPositionVector();
+ double diffX = playerVec.x - entityVec.x, diffY = playerVec.y - entityVec.y, diffZ = playerVec.z - entityVec.z;
+ int priority = Math.max(1, (int) (diffX * diffX + diffY * diffY + diffZ * diffZ) >> gg.airplane.AirplaneConfig.activationDistanceMod);
if (MinecraftServer.currentTick > entity.activatedTick) {
if (entity.defaultActivationState || entity.activationType.boundingBox.c(entity.getBoundingBox())) { // Paper
entity.activatedTick = MinecraftServer.currentTick;
}
+ entity.activatedPriority = Math.min(gg.airplane.AirplaneConfig.maximumActivationPrio, priority);
+ } else {
+ entity.activatedPriority = Math.min(gg.airplane.AirplaneConfig.maximumActivationPrio, Math.min(priority, entity.activatedPriority));
}
+ // Airplane end
}
}
}

View File

@ -90,10 +90,10 @@ index cb6f55c4d870ea1ce146f64ac13e7090f2de3bc8..f7b54111ba86d9ee131e320f573f568c
if (this.world != null) BlockLectern.a(this.getWorld(), this.getPosition(), this.getBlock()); // CraftBukkit
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
index 53917d3b381730efb079113fdffecdc29939d6ea..37d71def297c3f34e9afc74821df6090f3737156 100644
index 2318d19b21514effe28b4d21c0196c8f778d22db..a106069e9122313d73b0d23d689b0d1e70025cc8 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
@@ -32,6 +32,7 @@ import net.minecraft.server.PacketPlayInCloseWindow;
@@ -31,6 +31,7 @@ import net.minecraft.server.PacketPlayInCloseWindow;
import net.minecraft.server.PacketPlayOutOpenWindow;
import net.minecraft.server.TileEntity;
import net.minecraft.server.TileEntityContainer;
@ -101,7 +101,7 @@ index 53917d3b381730efb079113fdffecdc29939d6ea..37d71def297c3f34e9afc74821df6090
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
@@ -300,6 +301,11 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@@ -299,6 +300,11 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
if (craft.getInventory() instanceof ITileInventory) {
iinventory = (ITileInventory) craft.getInventory();
}

View File

@ -19,7 +19,7 @@ index 657885cdaa086293f6b5aa6f3058acd16df0ba35..8724ad342bec7c733b3c825bd62dbfa5
Block.a(iblockdata, iblockdata1, generatoraccess, blockposition_mutableblockposition, i, j);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 0e6813601f082a9e81278cebbfadbaca5769802a..edd864a699c4fed0e7da4c3ca0d220a1029f3c63 100644
index 6e6059daba05d7ce3aabeed85cc0e0d2daa04f92..ba8a8e7dc0d09d8afa405ef608ad6df1e507a62c 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -774,7 +774,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {

View File

@ -129,7 +129,7 @@ index 0000000000000000000000000000000000000000..fe7330fabe386966c2d203a190a00a78
+}
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index edd864a699c4fed0e7da4c3ca0d220a1029f3c63..e592ca980967804cf5ac9cbf2a917d584a23163b 100644
index ba8a8e7dc0d09d8afa405ef608ad6df1e507a62c..7d0ea2c0f04578eb2c896aa6ea99ce26d8935478 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -97,6 +97,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@ -150,10 +150,10 @@ index edd864a699c4fed0e7da4c3ca0d220a1029f3c63..e592ca980967804cf5ac9cbf2a917d58
this.chunkPacketBlockController = this.paperConfig.antiXray ? new ChunkPacketBlockControllerAntiXray(this, executor) : ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray
this.generator = gen;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 413c55feb6b1c2ddc80aa8dc1c83ed13b2c4c4a5..53deddce357170a712913d916ba1d58e663fc1a1 100644
index dfe6777db04bb550ae0e761addd26b2d5abf3baf..48dd6de4acf0ef0536a4c562f3eb5f2f90878924 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -863,6 +863,7 @@ public final class CraftServer implements Server {
@@ -862,6 +862,7 @@ public final class CraftServer implements Server {
com.destroystokyo.paper.PaperConfig.init((File) console.options.valueOf("paper-settings")); // Paper
com.tuinity.tuinity.config.TuinityConfig.init((File) console.options.valueOf("tuinity-settings")); // Tuinity - Server Config
net.pl3x.purpur.PurpurConfig.init((File) console.options.valueOf("purpur-settings")); // Purpur
@ -161,7 +161,7 @@ index 413c55feb6b1c2ddc80aa8dc1c83ed13b2c4c4a5..53deddce357170a712913d916ba1d58e
for (WorldServer world : console.getWorlds()) {
world.worldDataServer.setDifficulty(config.difficulty);
world.setSpawnFlags(config.spawnMonsters, config.spawnAnimals);
@@ -899,6 +900,7 @@ public final class CraftServer implements Server {
@@ -898,6 +899,7 @@ public final class CraftServer implements Server {
world.paperConfig.init(); // Paper
world.tuinityConfig.init(); // Tuinity - Server Config
world.purpurConfig.init(); // Purpur

View File

@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack convenience methods
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 4ba991b79f13219182df35b4ce0c5cf57cbd208b..a2e476f154344f9473dd9b48866505448de56d84 100644
index 2a3becabbd10fa8ffd19f35a3f6d8a6bfcb388c3..f71c9fd069309ef330d9065760b80ec10de7e18b 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -8645,4 +8645,36 @@ public enum Material implements Keyed {
@@ -8642,4 +8642,36 @@ public enum Material implements Keyed {
// </editor-fold>
}
}

View File

@ -182,10 +182,10 @@ index 0000000000000000000000000000000000000000..d8b408f061d96e2fa8e2e587462e2221
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index bd7bccbea1a0a052ef7bd6ab299ae72336874911..5100460bab83cd75ac8dcdcc50ea663b1c486d00 100644
index 44524e08bed8897e43e408b6f179bf798fed9b62..19a209cfc71e30edd3ff2d8c319df5e8b331e6cf 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -232,7 +232,7 @@ import javax.annotation.Nullable; // Paper
@@ -231,7 +231,7 @@ import javax.annotation.Nullable; // Paper
import javax.annotation.Nonnull; // Paper
public final class CraftServer implements Server {

View File

@ -78,7 +78,7 @@ index de9ea6770b8afc5e1020bef04ac6cca93b6b420c..21d0570a59240e955ff148bac0226b22
if (this.bF) {
this.bF = false;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 28ee325fcc8b50397768363403823f2e3391d8c8..fb650c09dbcefa0ff021f7c508ff6811a48bee7a 100644
index 93c0c3376c3cb2fe416c8ae3e740ffda5f985b78..226b5cd399449ca3587964221765e4d241dfc739 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -95,6 +95,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@ -373,10 +373,10 @@ index 0000000000000000000000000000000000000000..4904be939c7a4b1d1583fd7b6232c930
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 5100460bab83cd75ac8dcdcc50ea663b1c486d00..b5d274c1fe214ea274057084bc40d6eeb618b21d 100644
index 19a209cfc71e30edd3ff2d8c319df5e8b331e6cf..8cd8db287bb4110e17ec0da57ee1547ca1f221d7 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -862,6 +862,7 @@ public final class CraftServer implements Server {
@@ -861,6 +861,7 @@ public final class CraftServer implements Server {
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
com.destroystokyo.paper.PaperConfig.init((File) console.options.valueOf("paper-settings")); // Paper
com.tuinity.tuinity.config.TuinityConfig.init((File) console.options.valueOf("tuinity-settings")); // Tuinity - Server Config
@ -384,7 +384,7 @@ index 5100460bab83cd75ac8dcdcc50ea663b1c486d00..b5d274c1fe214ea274057084bc40d6ee
for (WorldServer world : console.getWorlds()) {
world.worldDataServer.setDifficulty(config.difficulty);
world.setSpawnFlags(config.spawnMonsters, config.spawnAnimals);
@@ -897,6 +898,7 @@ public final class CraftServer implements Server {
@@ -896,6 +897,7 @@ public final class CraftServer implements Server {
world.spigotConfig.init(); // Spigot
world.paperConfig.init(); // Paper
world.tuinityConfig.init(); // Tuinity - Server Config
@ -392,7 +392,7 @@ index 5100460bab83cd75ac8dcdcc50ea663b1c486d00..b5d274c1fe214ea274057084bc40d6ee
}
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
@@ -915,6 +917,7 @@ public final class CraftServer implements Server {
@@ -914,6 +916,7 @@ public final class CraftServer implements Server {
reloadData();
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
com.destroystokyo.paper.PaperConfig.registerCommands(); // Paper

View File

@ -263,10 +263,10 @@ index 361f7857e461578e90cb71e15027dadaf794cb69..2578a4677d1ee060f687be531e696b7c
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 7c18b22c7b93b6ca1189e481dde17476797b8fd5..debf252a23d0178f06fdadb9c27c3c66b9bbc2d0 100644
index ed7b91bf703c7e7d5cbe323d9ab1c299c33ebad1..e319f3b1282af8019ae706f46e3978e789fbc877 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2223,4 +2223,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2222,4 +2222,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return spigot;
}
// Spigot end
@ -289,10 +289,10 @@ index 7c18b22c7b93b6ca1189e481dde17476797b8fd5..debf252a23d0178f06fdadb9c27c3c66
+ // Purpur end
}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 0b93635ba59df4eb4456a97c5e9b51ab5aeda53f..b47d6fa2de3368d1afe329573bc18c3541bb7377 100644
index 6ade13fd88c381280f619daaa8d6b241c67dd9d9..f80526939be358ac46430f35f3fdc7f88038c262 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -207,6 +207,7 @@ public class ActivationRange
@@ -205,6 +205,7 @@ public class ActivationRange
{
player.activatedTick = MinecraftServer.currentTick;

View File

@ -17,10 +17,10 @@ index 65961a03728852bd75367083a0de6fd0082b17cb..780474397acb4d0e7ecb4540e1a2db57
public final boolean spawnNpcs = this.getBoolean("spawn-npcs", true);
public final boolean pvp = this.getBoolean("pvp", true);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index b5d274c1fe214ea274057084bc40d6eeb618b21d..43ee4f6ba778ceb0b34906ace86f0f12587a8e8d 100644
index 8cd8db287bb4110e17ec0da57ee1547ca1f221d7..529f50aa6755c202ac2d3a6d0e4dfd38c4eaf6e8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2450,4 +2450,11 @@ public final class CraftServer implements Server {
@@ -2451,4 +2451,11 @@ public final class CraftServer implements Server {
return mobGoals;
}
// Paper end

View File

@ -62,10 +62,10 @@ index 87b66c284208f12e9e7cd1c9950ada8d0fbf26a5..59699bb23a189b7e53737b2f8f526360
protected void playBlockStepSound() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index 16e69cfd4994fd6850ee3635ea819379412351c9..0292cae6225ae2ee156f436c8827a018e8ffa723 100644
index c1350bbf62fc5c5e18509f378edf16e8b210cfe8..84aeffac2c2c12d98e9cec05314668a93bb5ed91 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -826,4 +826,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@@ -833,4 +833,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
getHandle().setHurtDirection(hurtDirection);
}
// Paper end

View File

@ -41,10 +41,10 @@ index 4627261562a1482aecf4034b8717ecccc2dd9eb0..a34ed978596f1a466b0b48e7db92ac4f
public static boolean enderChestSixRows = false;
public static boolean enderChestPermissionRows = false;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 43ee4f6ba778ceb0b34906ace86f0f12587a8e8d..2ddf0e5589b6f45f502e6f675000fec361b186fe 100644
index 529f50aa6755c202ac2d3a6d0e4dfd38c4eaf6e8..cb54a5c340a8f2b82668fc7b8e3beeb977cd3c80 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2456,5 +2456,10 @@ public final class CraftServer implements Server {
@@ -2457,5 +2457,10 @@ public final class CraftServer implements Server {
public String getServerName() {
return getProperties().serverName;
}

View File

@ -113,10 +113,10 @@ index 2578a4677d1ee060f687be531e696b7c7be89e84..c441fcea9b2b5a77b801c8a69541cf42
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index debf252a23d0178f06fdadb9c27c3c66b9bbc2d0..8a28c68c5fc22838c62ceef738b330afb840c4c6 100644
index e319f3b1282af8019ae706f46e3978e789fbc877..62ef7bb712e91fed150bf9c16c11635a9aaaab67 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2239,5 +2239,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2238,5 +2238,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetIdleTimer() {
getHandle().resetIdleTimer();
}

View File

@ -47,10 +47,10 @@ index b795128c5a69f65883fdd318a8a5b2a65512bb16..1296d06bd7c4abb3a43679e382e83319
lagging = recentTps[0] < net.pl3x.purpur.PurpurConfig.laggingThreshold; // Purpur
tickSection = curTime;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 2ddf0e5589b6f45f502e6f675000fec361b186fe..413c55feb6b1c2ddc80aa8dc1c83ed13b2c4c4a5 100644
index cb54a5c340a8f2b82668fc7b8e3beeb977cd3c80..dfe6777db04bb550ae0e761addd26b2d5abf3baf 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2248,6 +2248,7 @@ public final class CraftServer implements Server {
@@ -2247,6 +2247,7 @@ public final class CraftServer implements Server {
@Override
public double[] getTPS() {
return new double[] {
@ -59,10 +59,10 @@ index 2ddf0e5589b6f45f502e6f675000fec361b186fe..413c55feb6b1c2ddc80aa8dc1c83ed13
net.minecraft.server.MinecraftServer.getServer().tps5.getAverage(),
net.minecraft.server.MinecraftServer.getServer().tps15.getAverage()
diff --git a/src/main/java/org/spigotmc/TicksPerSecondCommand.java b/src/main/java/org/spigotmc/TicksPerSecondCommand.java
index 7218f23df4d06ff1ca612286e4a404246389ab18..3c7b9a6d24e064f9c1ec5fb6d52f42627944d7fa 100644
index e62890433ffbe0b4e48942fe6c38b599a19e58fd..312248b5c6febc6a3c10940714fac7fbc3c53b7f 100644
--- a/src/main/java/org/spigotmc/TicksPerSecondCommand.java
+++ b/src/main/java/org/spigotmc/TicksPerSecondCommand.java
@@ -33,7 +33,7 @@ public class TicksPerSecondCommand extends Command
@@ -31,7 +31,7 @@ public class TicksPerSecondCommand extends Command
for ( int i = 0; i < tps.length; i++) {
tpsAvg[i] = format( tps[i] );
}

View File

@ -72,10 +72,10 @@ index e747ee83f1a69a4a4bad87e720abc9b085fb6149..a4edfb02fd350433020b0f3699726b61
if (this.count == 1 && t0 instanceof EntityHuman) {
org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent((EntityHuman) t0, this);
diff --git a/src/main/java/net/minecraft/server/ItemTrident.java b/src/main/java/net/minecraft/server/ItemTrident.java
index 3663b701736b583db80e3119b642e47b8a0e6ff3..18f767dc574e7345d2db73e6be44f4e65eb58c63 100644
index 4eeeecef51cedcd0fe46ac4983472e214ccc9dad..0109d8db4f154802daef570e6d8b479cb5a49dab 100644
--- a/src/main/java/net/minecraft/server/ItemTrident.java
+++ b/src/main/java/net/minecraft/server/ItemTrident.java
@@ -102,6 +102,16 @@ public class ItemTrident extends Item implements ItemVanishable {
@@ -101,6 +101,16 @@ public class ItemTrident extends Item implements ItemVanishable {
f2 *= f6 / f5;
f3 *= f6 / f5;
f4 *= f6 / f5;

View File

@ -61,7 +61,7 @@ index 65bae8c9f28c23b0b5dd5d048e7fc7daf328075c..32b75f710b12efbcecec2c8d72d4d8cb
public void setAngerTarget(@Nullable UUID uuid) {
this.br = uuid;
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index 752e39ad94ea9e8254853a3fda846be2bd436918..03263b94aaeeb8667e0f82c832e4743f4c63108e 100644
index 4078f5dd68d0ca49886911d1bf58731129d731be..2ff49b5c8ba62f781cdaef2d19c0504cb710b3ff 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -3,6 +3,7 @@ package net.minecraft.server;
@ -93,7 +93,7 @@ index 752e39ad94ea9e8254853a3fda846be2bd436918..03263b94aaeeb8667e0f82c832e4743f
@Override
protected void initPathfinder() {
if (world.paperConfig.zombiesTargetTurtleEggs) this.goalSelector.a(4, new EntityZombie.a(this, 1.0D, 3)); // Paper
@@ -442,19 +457,19 @@ public class EntityZombie extends EntityMonster {
@@ -445,19 +460,19 @@ public class EntityZombie extends EntityMonster {
if (object instanceof EntityZombie.GroupDataZombie) {
EntityZombie.GroupDataZombie entityzombie_groupdatazombie = (EntityZombie.GroupDataZombie) object;
@ -119,7 +119,7 @@ index 752e39ad94ea9e8254853a3fda846be2bd436918..03263b94aaeeb8667e0f82c832e4743f
EntityChicken entitychicken1 = (EntityChicken) EntityTypes.CHICKEN.a(this.world);
entitychicken1.setPositionRotation(this.locX(), this.locY(), this.locZ(), this.yaw, 0.0F);
@@ -462,6 +477,7 @@ public class EntityZombie extends EntityMonster {
@@ -465,6 +480,7 @@ public class EntityZombie extends EntityMonster {
entitychicken1.setChickenJockey(true);
this.startRiding(entitychicken1);
worldaccess.addEntity(entitychicken1, CreatureSpawnEvent.SpawnReason.MOUNT); // CraftBukkit
@ -127,7 +127,7 @@ index 752e39ad94ea9e8254853a3fda846be2bd436918..03263b94aaeeb8667e0f82c832e4743f
}
}
}
@@ -564,7 +580,7 @@ public class EntityZombie extends EntityMonster {
@@ -567,7 +583,7 @@ public class EntityZombie extends EntityMonster {
public static class GroupDataZombie implements GroupDataEntity {

View File

@ -233,10 +233,10 @@ index 661ad8f8e67046211e001ea40d97660d7c88f8e5..ee91c33a7a2edca02caf5c71fd6429f9
return iblockdata.r(iblockaccess, blockposition) ? false : (iblockdata.isPowerSource() ? false : (!fluid.isEmpty() ? false : (iblockdata.a((Tag) TagsBlock.PREVENT_MOB_SPAWNING_INSIDE) ? false : !entitytypes.a(iblockdata))));
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index fb650c09dbcefa0ff021f7c508ff6811a48bee7a..68cce071c740c90149225b4a28af849237b4492b 100644
index 226b5cd399449ca3587964221765e4d241dfc739..0f259913ddcf151bc0128f2591e1223a56a9e115 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1567,6 +1567,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1566,6 +1566,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return new DifficultyDamageScaler(this.getDifficulty(), this.getDayTime(), i, f);
}

View File

@ -49,10 +49,10 @@ index 120bf8436fd82294c339add2e7bff1cda8311aea..848a185c04aa90a62e6bcc49ad68a748
return true;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 68cce071c740c90149225b4a28af849237b4492b..f260d01aad4db512952e5a53bf5bc01023bbd43d 100644
index 0f259913ddcf151bc0128f2591e1223a56a9e115..1ac2e9f373ae5b4250ff9faf726a962a739d6faf 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1642,4 +1642,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1641,4 +1641,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public final boolean isDebugWorld() {
return this.debugWorld;
}

View File

@ -21,10 +21,10 @@ index 0b2a9a2d9f157dd9879c4429be6745859b4f28bf..01576ac82836733f42168c6a0779b45a
public boolean villagerUseBrainTicksOnlyWhenLagging = true;
public boolean villagerCanBeLeashed = false;
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index b47d6fa2de3368d1afe329573bc18c3541bb7377..ff0621e08aaf058154f228abd46475ffaa3920cf 100644
index f80526939be358ac46430f35f3fdc7f88038c262..66b7c75929cd98737628b9d4f22829b5b65b8373 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -378,6 +378,7 @@ public class ActivationRange
@@ -376,6 +376,7 @@ public class ActivationRange
*/
public static boolean checkIfActive(Entity entity)
{

View File

@ -614,7 +614,7 @@ index 74082136b38491a0a50d152c455edfa61a6afb9f..dcfad16e06450068d5801fc002c96501
if (this.c <= 0) {
this.c = 100;
diff --git a/src/main/java/net/minecraft/server/EntityCat.java b/src/main/java/net/minecraft/server/EntityCat.java
index 35f511c398795a0edeb5fe6d802f2a2bf754bf3a..700314b02abb355e6a600d744887a705cbcfb4e4 100644
index 675083e3952779e43bf8cc3175ad70458a79e49c..0e6552d77adb95c94cb06b6f9289c4c12e6955bb 100644
--- a/src/main/java/net/minecraft/server/EntityCat.java
+++ b/src/main/java/net/minecraft/server/EntityCat.java
@@ -41,6 +41,25 @@ public class EntityCat extends EntityTameableAnimal {
@ -4798,7 +4798,7 @@ index e76e6ebde73b93dc06e76b71cdf6371c3654160a..d92fe8013fb3b43cb7eabdf1c624291b
this.eL();
}
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index 03263b94aaeeb8667e0f82c832e4743f4c63108e..d835ce3fe7c71333efeed5b9cf2a827bebae97f2 100644
index 2ff49b5c8ba62f781cdaef2d19c0504cb710b3ff..7e1e056bdd966a14a184eb76717116998b6e5cb3 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -47,6 +47,16 @@ public class EntityZombie extends EntityMonster {
@ -5026,10 +5026,10 @@ index 5af554870bcf36e47aef43b966b141b9eda6c4d5..c59305ef7dd7847e204d4c4ed79758bf
return new Vec3D(this.x * d0, this.y * d1, this.z * d2);
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index f260d01aad4db512952e5a53bf5bc01023bbd43d..cf1f4fe5832781df7d0bdd5eb24eff8539691c30 100644
index 1ac2e9f373ae5b4250ff9faf726a962a739d6faf..97cc98af100edfad82668200759a5eed8fc67558 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1651,5 +1651,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1650,5 +1650,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public boolean isTheEnd() {
return getWorld().getEnvironment() == org.bukkit.World.Environment.THE_END;
}
@ -6381,7 +6381,7 @@ index a6d849facba1526ae2a2b7f3fb9a140d0b50289c..b56ca054b37f5887e13b481baad8132f
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index b66fb60ad3949cebb3ff10878b7490675e703234..16a816677a71e7fd03ada10a6795bdaf6753c514 100644
index 9ff0f70154367b99317ed3927a97ec08c7e9e015..90c0033e31ad5e115568bc092d3515b5b99e965a 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -527,6 +527,18 @@ public class CraftEventFactory {

View File

@ -5,10 +5,10 @@ Subject: [PATCH] LivingEntity#broadcastItemBreak
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index 0292cae6225ae2ee156f436c8827a018e8ffa723..9f5802364d4098173be2d08893efa697033407e9 100644
index 84aeffac2c2c12d98e9cec05314668a93bb5ed91..6a15b0d5e8446ab2a5e5bd11020a4f812b6c7877 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -837,5 +837,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@@ -844,5 +844,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public void setSafeFallDistance(float safeFallDistance) {
getHandle().safeFallDistance = safeFallDistance;
}

View File

@ -29,7 +29,7 @@ index 8d89f51182444852062d549d23c00a93e601eb38..072ec40f751b19c2a78dfcc6e439c643
if (SpawnerCreature.a(EntityPositionTypes.Surface.ON_GROUND, iworldreader, blockposition2, EntityTypes.WANDERING_TRADER)) {
blockposition1 = blockposition2;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index cf1f4fe5832781df7d0bdd5eb24eff8539691c30..aa1b037c0103552761b81318f1d2ad8215bd0370 100644
index 97cc98af100edfad82668200759a5eed8fc67558..ded92fe7c7871bae6e9741747a67636d570cdeef 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -156,7 +156,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {

View File

@ -45,7 +45,7 @@ index 125eab60f2b4657e52a71eddf7586c574945252e..638efc67d66001ee085957d4698f51a7
this.targetSelector.a(5, new PathfinderGoalNearestAttackableTarget<>(this, EntityTurtle.class, 10, true, false, EntityTurtle.bo));
}
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index d835ce3fe7c71333efeed5b9cf2a827bebae97f2..556f7a3ebb5c58a87471b2d098f29ffb216aaa1d 100644
index 7e1e056bdd966a14a184eb76717116998b6e5cb3..fd28ef623f8b6db5e36328d4ef2771e841db0a9d 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -86,7 +86,18 @@ public class EntityZombie extends EntityMonster {

View File

@ -33,7 +33,7 @@ index bba343542e7e6fa83ec802d97b4c139bb210ab28..d9f9e2235d091e14e5d34bb9a3273e7f
int experience = this.getRandom().nextInt(7) + 1;
org.bukkit.event.entity.EntityBreedEvent entityBreedEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(entityageable, this, entityanimal, entityplayer, this.breedItem, experience);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index aa1b037c0103552761b81318f1d2ad8215bd0370..91aa8a2bc111ee6935ada0ae471fe1a3bc8fad80 100644
index ded92fe7c7871bae6e9741747a67636d570cdeef..7c367fe6152c30aab3e53c8f88cceba606891c93 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -104,6 +104,48 @@ public abstract class World implements GeneratorAccess, AutoCloseable {

View File

@ -46,7 +46,7 @@ index d8354ec4d19fc3fbddc2551ee217acb137482e63..ded4e10f5082fb5aa25368d9035affba
@Override
diff --git a/src/main/java/net/minecraft/server/EntityCat.java b/src/main/java/net/minecraft/server/EntityCat.java
index 700314b02abb355e6a600d744887a705cbcfb4e4..8346db6c8521064ff51445a0da747a2d70d14633 100644
index 0e6552d77adb95c94cb06b6f9289c4c12e6955bb..437a7b8ffb40c461f1778d91591fa6c4dcf36834 100644
--- a/src/main/java/net/minecraft/server/EntityCat.java
+++ b/src/main/java/net/minecraft/server/EntityCat.java
@@ -58,6 +58,11 @@ public class EntityCat extends EntityTameableAnimal {

View File

@ -33,7 +33,7 @@ index e6e180ea46529e80eeab95f550dee5f3f8198ba8..b6bfd8f5073ce481dfe2b1667ece42d3
if (flag5) {
if (i > 0) {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 16a816677a71e7fd03ada10a6795bdaf6753c514..5b86e21332cd123fec9e2753a81977c6b9761e13 100644
index 90c0033e31ad5e115568bc092d3515b5b99e965a..d98fbec82ae9110974ca562edbd7e07090e35bb0 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1073,7 +1073,7 @@ public class CraftEventFactory {

View File

@ -56,10 +56,10 @@ index 3c19e931ad7d5330f1c77ef65aaa5858a001e4df..0efc210ad55d843fd297f0caa88a5f35
public void sendAll(Packet<?> packet) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 8a28c68c5fc22838c62ceef738b330afb840c4c6..95e548eea5acbece0e7036f23d79b6fc61e6786f 100644
index 62ef7bb712e91fed150bf9c16c11635a9aaaab67..16fdd444a8064df688b1760760d584b36a700957 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1382,7 +1382,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1381,7 +1381,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public boolean canSee(Player player) {

View File

@ -60,7 +60,7 @@ index dcfad16e06450068d5801fc002c9650102dbf995..90b90fa33b39020189a1d4a5826fa3ab
@Override
diff --git a/src/main/java/net/minecraft/server/EntityCat.java b/src/main/java/net/minecraft/server/EntityCat.java
index 8346db6c8521064ff51445a0da747a2d70d14633..e411da6f0f55b965fe9e303cf3b56201d33cd260 100644
index 437a7b8ffb40c461f1778d91591fa6c4dcf36834..f973408b1f098c8a090401205f809e95fdcf2f62 100644
--- a/src/main/java/net/minecraft/server/EntityCat.java
+++ b/src/main/java/net/minecraft/server/EntityCat.java
@@ -63,6 +63,11 @@ public class EntityCat extends EntityTameableAnimal {
@ -1245,7 +1245,7 @@ index d92fe8013fb3b43cb7eabdf1c624291b7e881889..bcc4aa1d3f09e43016d0009cd04dd6b7
@Override
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index 556f7a3ebb5c58a87471b2d098f29ffb216aaa1d..a5699314be3f47ed9b27a5d21a396c5282592c7b 100644
index fd28ef623f8b6db5e36328d4ef2771e841db0a9d..4dc027577656b423cd06a1eca5fdf9c9a5fcf107 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -68,6 +68,15 @@ public class EntityZombie extends EntityMonster {
@ -1264,7 +1264,7 @@ index 556f7a3ebb5c58a87471b2d098f29ffb216aaa1d..a5699314be3f47ed9b27a5d21a396c52
// Purpur end
@Override
@@ -547,7 +556,7 @@ public class EntityZombie extends EntityMonster {
@@ -550,7 +559,7 @@ public class EntityZombie extends EntityMonster {
}
protected void eV() {

View File

@ -123,10 +123,10 @@ index b56ca054b37f5887e13b481baad8132f1d28638b..eb0ce05d25ba33626d2dd3e3380d805c
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 95e548eea5acbece0e7036f23d79b6fc61e6786f..70ed64ed22ffde672a4ecb0a7f7ac2a7b3f30112 100644
index 16fdd444a8064df688b1760760d584b36a700957..77caf8d52cc0cafb99948787e72a0fd09743aa00 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -116,6 +116,7 @@ import org.bukkit.entity.EntityType;
@@ -115,6 +115,7 @@ import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerRegisterChannelEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
@ -134,7 +134,7 @@ index 95e548eea5acbece0e7036f23d79b6fc61e6786f..70ed64ed22ffde672a4ecb0a7f7ac2a7
import org.bukkit.event.player.PlayerUnregisterChannelEvent;
import org.bukkit.inventory.InventoryView.Property;
import org.bukkit.inventory.ItemStack;
@@ -791,6 +792,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -790,6 +791,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
if (entity.isVehicle()) {

View File

@ -53,10 +53,10 @@ index ccf2d0b090f0c360dfc7886bb0726e099acec42c..95dd6f2034439699399b0f51ab2b761a
public CrashReport b(CrashReport crashreport) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 9ad6ea5ef331c3c057f39115d00f855ca57e219b..f16432ae1cd9d5ccec56892a08952ec78003d066 100644
index 85023c68a9c85802383cfcf52ec21392abdf3d85..56e1817c131a2f5ba06418dd96addafd34677f28 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -232,7 +232,7 @@ import javax.annotation.Nullable; // Paper
@@ -231,7 +231,7 @@ import javax.annotation.Nullable; // Paper
import javax.annotation.Nonnull; // Paper
public final class CraftServer implements Server {

View File

@ -286,7 +286,7 @@ index c9692b3e50c503affaadd217c166029182def6e4..7177c1a0cc991916d98c82f025a910fa
org.spigotmc.WatchdogThread.hasStarted = true; // Paper
Arrays.fill( recentTps, 20 );
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 02303f00e243748b9d1c4a37719fcf5c8d271ed9..38c49d04d7bfb9c116a3b6eb87daaad2c75040cf 100644
index f5ab99156ce5429e63976183cbf115d5340a83a1..8efdd9bd0827d1f6a31d5f943f986dabe7d05137 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -94,6 +94,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@ -307,10 +307,10 @@ index 02303f00e243748b9d1c4a37719fcf5c8d271ed9..38c49d04d7bfb9c116a3b6eb87daaad2
this.world = new CraftWorld((WorldServer) this, gen, env);
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index f16432ae1cd9d5ccec56892a08952ec78003d066..72916822b74c06865c8fb0135029d199343f5fbd 100644
index 56e1817c131a2f5ba06418dd96addafd34677f28..3944ef9067ee1eeb1c0d208d885d9eca16267602 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -861,6 +861,7 @@ public final class CraftServer implements Server {
@@ -860,6 +860,7 @@ public final class CraftServer implements Server {
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
com.destroystokyo.paper.PaperConfig.init((File) console.options.valueOf("paper-settings")); // Paper
@ -318,7 +318,7 @@ index f16432ae1cd9d5ccec56892a08952ec78003d066..72916822b74c06865c8fb0135029d199
for (WorldServer world : console.getWorlds()) {
world.worldDataServer.setDifficulty(config.difficulty);
world.setSpawnFlags(config.spawnMonsters, config.spawnAnimals);
@@ -895,6 +896,7 @@ public final class CraftServer implements Server {
@@ -894,6 +895,7 @@ public final class CraftServer implements Server {
}
world.spigotConfig.init(); // Spigot
world.paperConfig.init(); // Paper

View File

@ -49,10 +49,10 @@ index 0f66484a80d3cc7caaf8a111bd50229e673bd8e0..f10fa659680f8a574f77d260bbc52be3
}
\ No newline at end of file
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 72916822b74c06865c8fb0135029d199343f5fbd..bd7bccbea1a0a052ef7bd6ab299ae72336874911 100644
index 3944ef9067ee1eeb1c0d208d885d9eca16267602..44524e08bed8897e43e408b6f179bf798fed9b62 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1860,7 +1860,10 @@ public final class CraftServer implements Server {
@@ -1859,7 +1859,10 @@ public final class CraftServer implements Server {
@Override
public boolean isPrimaryThread() {

View File

@ -168,7 +168,7 @@ index af9d54ef057d5f6977cf77c57cde25b6b0d1f39d..8816d3326af25431e2235c5e735e86c7
i = 0;
}
diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java
index 3c7b225edbe23dc1959002293a6f8b816287b5a8..d3588e238506ea859407b72da0d0cf291945b2ec 100644
index 76f9bb728def91744910d0b680b73e753f1a2b26..84ff9cfe89defad2e907708f837d33f620a84ef3 100644
--- a/src/main/java/net/minecraft/server/ChunkMapDistance.java
+++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java
@@ -65,6 +65,7 @@ public abstract class ChunkMapDistance {
@ -210,8 +210,8 @@ index 3c7b225edbe23dc1959002293a6f8b816287b5a8..d3588e238506ea859407b72da0d0cf29
+ com.tuinity.tuinity.util.TickThread.softEnsureTickThread("Async player remove"); // Tuinity
long i = sectionposition.r().pair();
ObjectSet<EntityPlayer> objectset = (ObjectSet) this.c.get(i);
@@ -446,6 +451,7 @@ public abstract class ChunkMapDistance {
if (objectset == null) return; // CraftBukkit - SPIGOT-6208
@@ -447,6 +452,7 @@ public abstract class ChunkMapDistance {
// CraftBukkit start
public <T> void removeAllTicketsFor(TicketType<T> ticketType, int ticketLevel, T ticketIdentifier) {
@ -304,7 +304,7 @@ index fb46fdeb22a7c31c8d132bdc80d657ae82c191be..2be8c1b7974f3f6271be60872d45123b
this.noTickViewDistance = viewDistance;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 38c49d04d7bfb9c116a3b6eb87daaad2c75040cf..ab8a5c00e383ef84cb3e5acf9ac9221f672effdd 100644
index 8efdd9bd0827d1f6a31d5f943f986dabe7d05137..43b5fa67a6b6e778a059063390fb47d6a599a948 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -363,6 +363,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {

View File

@ -47,7 +47,7 @@ index f10fa659680f8a574f77d260bbc52be349c244e8..7b12e7610444ff20f2c3f458887bd7d4
public final String worldName;
diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java
index d3588e238506ea859407b72da0d0cf291945b2ec..f1c686810fb4e9c05df45d664c93af73d17f0624 100644
index 84ff9cfe89defad2e907708f837d33f620a84ef3..7f3887b0894aca0f972922f434382646a6ad6174 100644
--- a/src/main/java/net/minecraft/server/ChunkMapDistance.java
+++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java
@@ -31,7 +31,7 @@ public abstract class ChunkMapDistance {

View File

@ -92,7 +92,7 @@ index 5c8dd000af238ea703c9f84a4621472f17955060..c9b6fc731f478976466972a4bdc5002e
int j = MathHelper.floor(d1);
int k = MathHelper.floor(d2);
diff --git a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
index 7ea293f38dedd6066601d94adbe175a31c502e1f..e698dd22607b2b2c4068c5bfb03ac53eb5bac080 100644
index 8c7080777b370f97e1291dfedde5b419290f39cc..7fff1b3e4eda519851b714502d33122c1e408009 100644
--- a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
+++ b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
@@ -13,10 +13,30 @@ public class PlayerConnectionUtils {

View File

@ -267,10 +267,10 @@ index 7177c1a0cc991916d98c82f025a910fa1e812493..0fc9b6356165fbee30d765dacc3586c2
// Spigot Start
CrashReport crashreport;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index ab8a5c00e383ef84cb3e5acf9ac9221f672effdd..e3ed8fb7881bc00b1b2345c1682f30057878d41a 100644
index 43b5fa67a6b6e778a059063390fb47d6a599a948..165b8e20ab090284b7c70b5cc9c0d58242400b54 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -901,6 +901,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -900,6 +900,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return;
// Paper end
}

View File

@ -191,10 +191,10 @@ index 2639c17b7f6100533f33124f9e49990cd303d161..b053bb74f6df174a27dbfd7b1b3e3ccb
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index e3ed8fb7881bc00b1b2345c1682f30057878d41a..8ec6b3a1b8f5281b875cbb3cf85833ab3c208bc3 100644
index 165b8e20ab090284b7c70b5cc9c0d58242400b54..15617d20883030b240014dbb258fd0086fef4235 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1085,6 +1085,35 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1084,6 +1084,35 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return this.getChunkAt(i, j, ChunkStatus.FULL, false);
}

View File

@ -1348,10 +1348,10 @@ index 9f4f9df09968dc45878ad59f5ee45672a3f08fbd..636bbbc42466cb54c300352f400464fe
@VisibleForTesting
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 8ec6b3a1b8f5281b875cbb3cf85833ab3c208bc3..9d9ff42a4572da8f62cc9fc5f11053b578858767 100644
index 15617d20883030b240014dbb258fd0086fef4235..f40ddc91b6102ce67d5989037c9b9ec822fefa34 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1116,8 +1116,13 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1115,8 +1115,13 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@Override
public List<Entity> getEntities(@Nullable Entity entity, AxisAlignedBB axisalignedbb, @Nullable Predicate<? super Entity> predicate) {

View File

@ -10,7 +10,7 @@ indefinitely. Instead of using the world state, we use the already
supplied generatoraccess which will always have the chunk available.
diff --git a/src/main/java/net/minecraft/server/EntityCat.java b/src/main/java/net/minecraft/server/EntityCat.java
index e80ec303198abade19645267e24cd5a4a8b75d70..35f511c398795a0edeb5fe6d802f2a2bf754bf3a 100644
index 8bc8dcf7dfe79c5522bc715ad60aeaab4b1d85da..675083e3952779e43bf8cc3175ad70458a79e49c 100644
--- a/src/main/java/net/minecraft/server/EntityCat.java
+++ b/src/main/java/net/minecraft/server/EntityCat.java
@@ -292,7 +292,7 @@ public class EntityCat extends EntityTameableAnimal {

View File

@ -13,7 +13,7 @@ Paper recently reverted this optimisation, so it's been reintroduced
here.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 9d9ff42a4572da8f62cc9fc5f11053b578858767..6c3f496ba6c0c6c4911e2592ded27df08ae54b14 100644
index f40ddc91b6102ce67d5989037c9b9ec822fefa34..dccdbb1c218d9fd8acb81998bd5884dc4aba7c1c 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -289,6 +289,15 @@ public abstract class World implements GeneratorAccess, AutoCloseable {

View File

@ -324,10 +324,10 @@ index 253377c6238594de1f76cafcbf8223592e4d3f6b..3ebe3d0dc4c2c6aee6ea349006a74cbe
if (entityliving == entityliving1) {
return false;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 6c3f496ba6c0c6c4911e2592ded27df08ae54b14..3ad08863c00d96c827c26c8d4c9a206a43bb1db9 100644
index dccdbb1c218d9fd8acb81998bd5884dc4aba7c1c..1d87e7461d28d8a639fafcfdfa5496014e9180f6 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1187,7 +1187,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1186,7 +1186,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
Chunk chunk = (Chunk)this.getChunkIfLoadedImmediately(i1, j1); // Paper
if (chunk != null) {
@ -336,7 +336,7 @@ index 6c3f496ba6c0c6c4911e2592ded27df08ae54b14..3ad08863c00d96c827c26c8d4c9a206a
}
}
}
@@ -1210,7 +1210,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1209,7 +1209,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
Chunk chunk = (Chunk)this.getChunkIfLoadedImmediately(i1, j1); // Paper
if (chunk != null) {
@ -345,7 +345,7 @@ index 6c3f496ba6c0c6c4911e2592ded27df08ae54b14..3ad08863c00d96c827c26c8d4c9a206a
}
}
}
@@ -1218,6 +1218,106 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1217,6 +1217,106 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return list;
}

View File

@ -203,7 +203,7 @@ index 83f070229098ad31b8ae65ffcebe52886ef2884d..f4d5ff1d0f1ad34032aaab96e1077f4b
// Paper start - Chunk Prioritization
public void queueHolderUpdate(PlayerChunk playerchunk) {
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 3ad08863c00d96c827c26c8d4c9a206a43bb1db9..28ee325fcc8b50397768363403823f2e3391d8c8 100644
index 1d87e7461d28d8a639fafcfdfa5496014e9180f6..93c0c3376c3cb2fe416c8ae3e740ffda5f985b78 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -123,6 +123,34 @@ public abstract class World implements GeneratorAccess, AutoCloseable {

View File

@ -4726,7 +4726,7 @@ index be5384ee41290b24b0c419c3e8f4553db34b2399..df28f7a6bf4c650a22ddf046eae4d5e8
IBlockAccess getWorld();
diff --git a/src/main/java/net/minecraft/server/LightEngineThreaded.java b/src/main/java/net/minecraft/server/LightEngineThreaded.java
index 2f9c97dd4e1d705a87772d18c7ab4883a876af08..3c4c3e43b5b947f7332f2dd6d1f1dae4be7708ab 100644
index 2f9c97dd4e1d705a87772d18c7ab4883a876af08..001ac05cf26237eec8a77c476e678ff6d0840311 100644
--- a/src/main/java/net/minecraft/server/LightEngineThreaded.java
+++ b/src/main/java/net/minecraft/server/LightEngineThreaded.java
@@ -2,6 +2,11 @@ package net.minecraft.server;
@ -4842,8 +4842,8 @@ index 2f9c97dd4e1d705a87772d18c7ab4883a876af08..3c4c3e43b5b947f7332f2dd6d1f1dae4
+ } else {
+ this.holdingChunks.put(coordinate, current + 1);
+ }
}
+ }
+
+ protected final void releaseLightWorkChunk(int chunkX, int chunkZ) {
+ final long coordinate = MCUtil.getCoordinateKey(chunkX, chunkZ);
+ final int current = this.holdingChunks.get(coordinate);
@ -4939,8 +4939,8 @@ index 2f9c97dd4e1d705a87772d18c7ab4883a876af08..3c4c3e43b5b947f7332f2dd6d1f1dae4
+ });
+ }
+ }, this.playerChunkMap.mainInvokingExecutor);
+ }
+
}
+ // override things from superclass
+
+ @Override
@ -5061,7 +5061,7 @@ index 2f9c97dd4e1d705a87772d18c7ab4883a876af08..3c4c3e43b5b947f7332f2dd6d1f1dae4
this.a(chunkcoordintpair.x, chunkcoordintpair.z, () -> {
return 0;
}, LightEngineThreaded.Update.PRE_UPDATE, SystemUtils.a(() -> {
@@ -264,6 +513,31 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable {
@@ -264,6 +513,35 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable {
public CompletableFuture<IChunkAccess> a(IChunkAccess ichunkaccess, boolean flag) {
ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos();
@ -5086,6 +5086,10 @@ index 2f9c97dd4e1d705a87772d18c7ab4883a876af08..3c4c3e43b5b947f7332f2dd6d1f1dae4
+ }, (runnable) -> {
+ LightEngineThreaded.this.scheduleTask(chunkcoordintpair.x, chunkcoordintpair.z, LightEngineThreaded.Update.PRE_UPDATE, runnable);
+ LightEngineThreaded.this.queueUpdate();
+ }).whenComplete((IChunkAccess chunk, Throwable throwable) -> {
+ if (throwable != null && !(throwable instanceof ThreadDeath)) {
+ MinecraftServer.LOGGER.fatal("Failed to light chunk " + chunk.getPos().toString() + " in world '" + this.theLightEngine.getWorld().getWorld().getName() + "'");
+ }
+ });
+ }
+ // Tuinity end - replace light engine
@ -5093,7 +5097,7 @@ index 2f9c97dd4e1d705a87772d18c7ab4883a876af08..3c4c3e43b5b947f7332f2dd6d1f1dae4
// Paper start
//ichunkaccess.b(false); // Don't need to disable this
long pair = chunkcoordintpair.pair();
@@ -311,7 +585,7 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable {
@@ -311,7 +589,7 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable {
}
public void queueUpdate() {
@ -5102,7 +5106,7 @@ index 2f9c97dd4e1d705a87772d18c7ab4883a876af08..3c4c3e43b5b947f7332f2dd6d1f1dae4
this.b.a((() -> { // Paper - decompile error
this.b();
this.g.set(false);
@@ -325,17 +599,36 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable {
@@ -325,17 +603,36 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable {
private final java.util.List<Runnable> pre = new java.util.ArrayList<>();
private final java.util.List<Runnable> post = new java.util.ArrayList<>();
private void b() {

View File

@ -53,10 +53,10 @@ index 83c1176888ead8fe045f1e1dfc78115ad2bf69f3..29ebf64a27ac34a2bfd11a904a5a30e0
serverModName = getString("settings.server-mod-name", serverModName);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 53deddce357170a712913d916ba1d58e663fc1a1..1286f0127300144abe4f78a3480acec42a5fc758 100644
index 48dd6de4acf0ef0536a4c562f3eb5f2f90878924..eca800e8396c765ea77c0cbc171bb1a6e4e8707f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -232,7 +232,7 @@ import javax.annotation.Nullable; // Paper
@@ -231,7 +231,7 @@ import javax.annotation.Nullable; // Paper
import javax.annotation.Nonnull; // Paper
public final class CraftServer implements Server {

View File

@ -30,10 +30,10 @@ index d4dc05a1066bfcd4cdc1bfa04e46aa2d8d6e2fe5..ada93970e324c44aba4f3e817ccaec8a
this.X = true;
// Purpur start - tps catchup
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 1286f0127300144abe4f78a3480acec42a5fc758..05612f20cd2881af363111789cf903c4baf5c9c8 100644
index eca800e8396c765ea77c0cbc171bb1a6e4e8707f..289ea917d3b5327e1c7dbffdb9ba171cc5052627 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2465,4 +2465,6 @@ public final class CraftServer implements Server {
@@ -2466,4 +2466,6 @@ public final class CraftServer implements Server {
return getServer().lagging;
}
// Purpur end
@ -41,10 +41,10 @@ index 1286f0127300144abe4f78a3480acec42a5fc758..05612f20cd2881af363111789cf903c4
+ @Override public java.time.Duration getLastTickTime() { return net.minecraft.server.MinecraftServer.lastTickTime; } // Yatopia
}
diff --git a/src/main/java/org/spigotmc/TicksPerSecondCommand.java b/src/main/java/org/spigotmc/TicksPerSecondCommand.java
index 3c7b9a6d24e064f9c1ec5fb6d52f42627944d7fa..dd44c1f3721fb9c7233417150a073b79465c0480 100644
index 312248b5c6febc6a3c10940714fac7fbc3c53b7f..abc9b7aa53e554ef2196dceafe8db8ba65f34e84 100644
--- a/src/main/java/org/spigotmc/TicksPerSecondCommand.java
+++ b/src/main/java/org/spigotmc/TicksPerSecondCommand.java
@@ -34,6 +34,10 @@ public class TicksPerSecondCommand extends Command
@@ -32,6 +32,10 @@ public class TicksPerSecondCommand extends Command
tpsAvg[i] = format( tps[i] );
}
sender.sendMessage(ChatColor.GOLD + "TPS from last 5s, 1m, 5m, 15m: " + org.apache.commons.lang.StringUtils.join(tpsAvg, ", ")); // Purpur
@ -55,7 +55,7 @@ index 3c7b9a6d24e064f9c1ec5fb6d52f42627944d7fa..dd44c1f3721fb9c7233417150a073b79
if (args.length > 0 && args[0].equals("mem") && sender.hasPermission("bukkit.command.tpsmemory")) {
sender.sendMessage(ChatColor.GOLD + "Current Memory Usage: " + ChatColor.GREEN + ((Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (1024 * 1024)) + "/" + (Runtime.getRuntime().totalMemory() / (1024 * 1024)) + " mb (Max: " + (Runtime.getRuntime().maxMemory() / (1024 * 1024)) + " mb)");
if (!hasShownMemoryWarning) {
@@ -52,4 +56,16 @@ public class TicksPerSecondCommand extends Command
@@ -50,4 +54,16 @@ public class TicksPerSecondCommand extends Command
return ( ( tps > 18.0 ) ? ChatColor.GREEN : ( tps > 16.0 ) ? ChatColor.YELLOW : ChatColor.RED ).toString()
+ ( ( tps > 21.0 ) ? "*" : "" ) + Math.min( Math.round( tps * 100.0 ) / 100.0, 20.0 ); // Paper - only print * at 21, we commonly peak to 20.02 as the tick sleep is not accurate enough, stop the noise
}

View File

@ -27,12 +27,12 @@ index 55b67f1057224101272f9d6023a93872c4423405..3ec187f39250214a7a72b1d7ef7b3e2e
String hostName = "BrokenHost";
try {
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 3ee8d31c453105eca7b96bede39a9ebbf40e1c2c..0a9f03526abf0638ada15d9810b949887fca9f9a 100644
index ca3d9dbcbeeb5059a942cae1a5020f0bcc59ac9c..20da9b4333e02a1f24eff0c7bbe17a7231bb3359 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -180,6 +180,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
// Paper end
@@ -181,6 +181,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
com.tuinity.tuinity.config.TuinityConfig.init((java.io.File) options.valueOf("tuinity-settings")); // Tuinity - Server Config
gg.airplane.AirplaneConfig.load(); // Airplane - config
+ // Yatopia start
+ try {
@ -80,10 +80,10 @@ index ca19cfa1ff801e5292332ff7b92bba881762306e..14d8492c405db32e454bc363207a1271
playerconnection.sendPacket(new PacketPlayOutAbilities(entityplayer.abilities));
playerconnection.sendPacket(new PacketPlayOutHeldItemSlot(entityplayer.inventory.itemInHandIndex));
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 05612f20cd2881af363111789cf903c4baf5c9c8..3d52621bf068517b2d959c65aea211f93b8d4497 100644
index 289ea917d3b5327e1c7dbffdb9ba171cc5052627..8ad95d3275fef85deb33fc2794f7bc3b72f917ca 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -857,6 +857,7 @@ public final class CraftServer implements Server {
@@ -856,6 +856,7 @@ public final class CraftServer implements Server {
playerList.getProfileBans().load();
} catch (IOException ex) {
logger.log(Level.WARNING, "Failed to load banned-players.json, " + ex.getMessage());

View File

@ -9,7 +9,7 @@ Original code by JellySquid, licensed under GNU Lesser General Public License v3
you can find the original code on https://github.com/CaffeineMC/lithium-fabric/ (Yarn mappings)
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalSelector.java b/src/main/java/net/minecraft/server/PathfinderGoalSelector.java
index 9cad895c7d008487ce885cbcc2c3966645df4c19..b63f274ec0afec96b4879f9ebaed72c416d1f9d2 100644
index 2ce5e07f4dcd0c76073840c35be66b7c65c6e7e8..44f3fc1e57a6287b12b281643c8e9ae734aebaf8 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalSelector.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalSelector.java
@@ -11,6 +11,7 @@ import java.util.function.Supplier;

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Option for simpler Villagers
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index eef51f8e5734b897164ca9514e7b49b2678416e6..2745cd0d98cfcf25a5304fa8ae0903028a283b25 100644
index 5fc57e2e2afe383ddc9b6d4db714a678c881fa77..b6ae5a18ab1748f71956c2d323eb1011854bd854 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -31,6 +31,7 @@ import org.bukkit.event.entity.VillagerReplenishTradeEvent;
@ -78,10 +78,10 @@ index eef51f8e5734b897164ca9514e7b49b2678416e6..2745cd0d98cfcf25a5304fa8ae090302
BehaviorController<EntityVillager> behaviorcontroller = this.cK().a(dynamic);
this.a(behaviorcontroller);
@@ -212,10 +252,39 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
}
@@ -213,11 +253,39 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
// Purpur end
private int behaviorTick = 0;
+ // Yatopia start
+ private VillagerProfession getRandomProfession() {
+ int type = random.nextInt(13);
@ -103,7 +103,7 @@ index eef51f8e5734b897164ca9514e7b49b2678416e6..2745cd0d98cfcf25a5304fa8ae090302
+ }
+ }
+ // Yatopia end
+
@Override
protected void mobTick() { mobTick(false); }
protected void mobTick(boolean inactive) {
@ -118,7 +118,7 @@ index eef51f8e5734b897164ca9514e7b49b2678416e6..2745cd0d98cfcf25a5304fa8ae090302
// Purpur start
if (world.purpurConfig.villagerLobotomizeEnabled) inactive = inactive || isLobotomized();
boolean tick = (world.getTime() + brainTickOffset) % world.purpurConfig.villagerBrainTicks == 0;
@@ -338,6 +407,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -344,6 +412,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
this.fl();
}
@ -126,7 +126,7 @@ index eef51f8e5734b897164ca9514e7b49b2678416e6..2745cd0d98cfcf25a5304fa8ae090302
private void fl() {
Iterator iterator = this.getOffers().iterator();
@@ -412,6 +482,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -418,6 +487,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
return this.fn() && this.fm();
}
@ -134,7 +134,7 @@ index eef51f8e5734b897164ca9514e7b49b2678416e6..2745cd0d98cfcf25a5304fa8ae090302
private void fo() {
int i = 2 - this.bD;
@@ -644,6 +715,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -650,6 +720,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
}
private void a(Entity entity) {
@ -142,7 +142,7 @@ index eef51f8e5734b897164ca9514e7b49b2678416e6..2745cd0d98cfcf25a5304fa8ae090302
if (this.world instanceof WorldServer) {
Optional<List<EntityLiving>> optional = this.bg.getMemory(MemoryModuleType.VISIBLE_MOBS);
@@ -660,6 +732,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -666,6 +737,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
}
public void a(MemoryModuleType<GlobalPos> memorymoduletype) {

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Optimize TileEntity load/unload
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index e592ca980967804cf5ac9cbf2a917d584a23163b..fe3b5e9e00900a553a2bbaf0bcd0f0d8c876d5b6 100644
index 7d0ea2c0f04578eb2c896aa6ea99ce26d8935478..106ed295ce502cdd693371b9fa98eba7588b1f44 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -42,8 +42,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {

View File

@ -39,10 +39,10 @@ index 15aa603a771c327879a4088609850fb86c6347bd..553d6fafbcabafeb008fcf5b60adb8d1
for (final Method method : clazz.getDeclaredMethods()) {
if (method.getReturnType() != void.class || method.getParameterCount() != 0 ||
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 0a9f03526abf0638ada15d9810b949887fca9f9a..64b662dc9146d0d414a9668d9b93e07aa6665f32 100644
index 20da9b4333e02a1f24eff0c7bbe17a7231bb3359..4bacbd38bc0b39724f1c07ec5a266942d2d1ed81 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -188,7 +188,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -189,7 +189,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
return false;
}
// Yatopia end

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Fix lead fall dmg config
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 63eb29635957d4e6ce1274ee17a59af62d442d4e..e629f10cdbd70a354f9edaa75973b169a8588d08 100644
index d74086ee72cfae3d2bead9fb08c808299d755e2a..48224c50293ff34f163724fa9d1d54c9bcfb2321 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1287,6 +1287,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1290,6 +1290,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.fallDistance = 0.0F;
} else if (d0 < 0.0D) {
this.fallDistance = (float) ((double) this.fallDistance - d0);

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Fix LightEngineThreaded memory leak
diff --git a/src/main/java/net/minecraft/server/LightEngineThreaded.java b/src/main/java/net/minecraft/server/LightEngineThreaded.java
index 3c4c3e43b5b947f7332f2dd6d1f1dae4be7708ab..be4193a1c1f4d7bb62d42b786f33f636863a3dfb 100644
index 001ac05cf26237eec8a77c476e678ff6d0840311..7b4935dd8c54f5fcb4f26b96c270d3e4102133a3 100644
--- a/src/main/java/net/minecraft/server/LightEngineThreaded.java
+++ b/src/main/java/net/minecraft/server/LightEngineThreaded.java
@@ -110,6 +110,8 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable {

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add nspt command
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 64b662dc9146d0d414a9668d9b93e07aa6665f32..2473eb88ec7be3f4935debe04eeabcc0815b3233 100644
index 4bacbd38bc0b39724f1c07ec5a266942d2d1ed81..72e093bceb7cbf5b55271bf09d04ee73b79e5d45 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -187,6 +187,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -188,6 +188,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
DedicatedServer.LOGGER.error("Unable to load server configuration", e);
return false;
}
@ -17,10 +17,10 @@ index 64b662dc9146d0d414a9668d9b93e07aa6665f32..2473eb88ec7be3f4935debe04eeabcc0
de.minebench.origami.OrigamiConfig.init((java.io.File) options.valueOf("origami-settings"));
this.setPVP(dedicatedserverproperties.pvp);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 3d52621bf068517b2d959c65aea211f93b8d4497..7d0f73c83a7f7f3c6becf3ed4348c6b2938a86b1 100644
index 8ad95d3275fef85deb33fc2794f7bc3b72f917ca..5a539230b5791e0469f8de0c04af68d8895e7847 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -921,6 +921,7 @@ public final class CraftServer implements Server {
@@ -920,6 +920,7 @@ public final class CraftServer implements Server {
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
com.destroystokyo.paper.PaperConfig.registerCommands(); // Paper
net.pl3x.purpur.PurpurConfig.registerCommands(); // Purpur

View File

@ -7,10 +7,10 @@ Also don't tick blockentity beehive if there are no bees in it.
This patch is a leftover from the original tile entity optimisations, which was majorly flawed.
diff --git a/src/main/java/net/minecraft/server/TileEntityBeehive.java b/src/main/java/net/minecraft/server/TileEntityBeehive.java
index a60e0872d51aeb330bd5334e35f18ad0ed63834e..70239fa5ac05464606ad917b3c3498156c12c536 100644
index 598f78502cd7ad15bc0f678df277f91b3ae376d4..69ef94e887fa9da1b3ddaf0a345fecc49d2866b5 100644
--- a/src/main/java/net/minecraft/server/TileEntityBeehive.java
+++ b/src/main/java/net/minecraft/server/TileEntityBeehive.java
@@ -286,6 +286,7 @@ public class TileEntityBeehive extends TileEntity implements ITickable {
@@ -285,6 +285,7 @@ public class TileEntityBeehive extends TileEntity implements ITickable {
@Override
public void tick() {

View File

@ -46,10 +46,10 @@ index ee4c26de15a5c304889f38f49f4584e8d4ccc5fe..ca9075d6bae36c29d9eb4727321afcbc
this.dropChanceArmor[EnumItemSlot.HEAD.b()] = 0.0F;
}
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index a5699314be3f47ed9b27a5d21a396c5282592c7b..16d73dc50b76523dd03e12d566646874e86fabca 100644
index 4dc027577656b423cd06a1eca5fdf9c9a5fcf107..ba8523ab5cf5d2320624ed1fd40fa0c26e2e42cb 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -520,11 +520,15 @@ public class EntityZombie extends EntityMonster {
@@ -523,11 +523,15 @@ public class EntityZombie extends EntityMonster {
}
if (this.getEquipment(EnumItemSlot.HEAD).isEmpty()) {

View File

@ -76,7 +76,7 @@ index 548c62a838848a9183e14f91b21a9dc309d8a3b2..acded2b5ef02c24f52050fcc8f06ccb5
close(new ChatMessage("disconnect.genericReason", "Internal Exception: " + e.getMessage()));;
packet.onPacketDispatchFinish(player, null);
diff --git a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
index e698dd22607b2b2c4068c5bfb03ac53eb5bac080..4e545e467042772d49ac82492694824576dcd139 100644
index 7fff1b3e4eda519851b714502d33122c1e408009..41949bebe38bfa734f1d06df209ca842d1a42933 100644
--- a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
+++ b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
@@ -45,6 +45,11 @@ public class PlayerConnectionUtils {
@ -108,7 +108,7 @@ index 0668d383db1f3a81d1053954d72678c7ac5aecec..7b9f83e63d0f9cd83a246be33af4ab91
ChatComponentText chatcomponenttext = new ChatComponentText("Internal server error");
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index fe3b5e9e00900a553a2bbaf0bcd0f0d8c876d5b6..746ee21f175c80e8cddb21a6a626f978da8952dd 100644
index 106ed295ce502cdd693371b9fa98eba7588b1f44..ab1f7992a3a61179cb9862915c14ea7f6dc76cc6 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -988,6 +988,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {

@ -1 +1 @@
Subproject commit 1b11269397834a35d06fd62e08d71d06bb6416eb
Subproject commit d7d1626f8e87461cf2e5d882b1ca53f828b1b132

@ -1 +1 @@
Subproject commit a8914cb8ed18d96eb1452d1e052c5e6d3007f1d7
Subproject commit bbc8d297dbcb1183997ec1b56f774319d079ba31

@ -1 +1 @@
Subproject commit 45d89ccba0fab274b6e4eb013762a68e8e502d33
Subproject commit 168394a2ea0f603db3e54a0223315008f622f36f

View File

@ -1 +1 @@
1b11269397834a35d06fd62e08d71d06bb6416eb
d7d1626f8e87461cf2e5d882b1ca53f828b1b132

View File

@ -1 +1 @@
a8914cb8ed18d96eb1452d1e052c5e6d3007f1d7
bbc8d297dbcb1183997ec1b56f774319d079ba31

View File

@ -1 +1 @@
45d89ccba0fab274b6e4eb013762a68e8e502d33
168394a2ea0f603db3e54a0223315008f622f36f

View File

@ -1 +1 @@
5cff60d5c6a3563d0f8dd6f611ad1ade913bcc1c
7fc2d31be761c91ee3cbbde0e2832834063f5899

View File

@ -1 +1 @@
f8c0db48055c9374597c05cd8359db2147432216
502d57ba8376333163a56c5491a46e408178d575

View File

@ -1,4 +1,4 @@
name=Airplane
useBlackList=False
list=server/Airplane-MC-Dev-Fixes.patch,server/Remove-streams.patch,server/Strip-raytracing-for-EntityLiving-hasLineOfSight.patch,server/Simpler-ShapelessRecipes-comparison-for-Vanilla.patch,server/Queue-lighting-update-only-once.patch,server/Use-unmodifiableMap-instead-of-making-copy.patch,server/Swap-priority-of-checks-in-chunk-ticking.patch,server/Reduce-projectile-chunk-loading.patch,server/Optimize-random-calls-in-chunk-ticking.patch,server/Don-t-get-entity-equipment-if-not-needed.patch
list=server/Airplane-MC-Dev-Fixes.patch,server/Airplane-Configuration.patch,server/Remove-streams.patch,server/Strip-raytracing-for-EntityLiving-hasLineOfSight.patch,server/Simpler-ShapelessRecipes-comparison-for-Vanilla.patch,server/Queue-lighting-update-only-once.patch,server/Use-unmodifiableMap-instead-of-making-copy.patch,server/Swap-priority-of-checks-in-chunk-ticking.patch,server/Reduce-projectile-chunk-loading.patch,server/Optimize-random-calls-in-chunk-ticking.patch,server/Don-t-get-entity-equipment-if-not-needed.patch,server/Dynamic-activation-range.patch
branch=origin/master