Upstream update & more

Dropped hopper optimizations patch by tr7zw. Sorry buddy, but the patch was making more
problems than it was solving. By no means this is an unneded patch, we will reimplement
it in the future the way it should've been implemented. Fixes #148
This commit is contained in:
Ivan Pekov 2020-08-26 09:17:38 +03:00
parent 78c24fde6d
commit 5620825b39
No known key found for this signature in database
GPG Key ID: BC975C392D9CA3A3
24 changed files with 40 additions and 50 deletions

@ -1 +1 @@
Subproject commit a67089df00f153c488382147160cf88b70b3fe58
Subproject commit 558f40c487e8abf3af219bde1a7c5ed269ff0dd4

View File

@ -73,7 +73,6 @@ # Patches
| server | Modify POM | tr7zw | |
| server | Modify default configs | tr7zw | |
| server | Optimize BehaviorController | MrIvanPlays | |
| server | Optimize Hopper logic | tr7zw | |
| server | Optimize TileEntity load/unload | tr7zw | |
| server | Optimize Villagers | Aikar | MrIvanPlays |
| server | Optimize inventory API item handling | Phoenix616 | |
@ -82,7 +81,6 @@ # Patches
| server | Option for simpler Villagers | tr7zw | |
| server | Option to toggle milk curing bad omen | William Blake Galbreath | |
| server | Origami Server Config | Phoenix616 | |
| server | PaperMC - Buffer joins | Shane Freeder | |
| server | Per entity (type) collision settings | MrIvanPlays | tr7zw |
| server | Phantoms attracted to crystals and crystals shoot phantoms | William Blake Galbreath | |
| server | Player-saving-async-FileIO | tr7zw | |

@ -1 +1 @@
Subproject commit 193d9bfd9aa644a173e955e9324c1f5e49e30589
Subproject commit 1ed41fcb75de4e90846425f60b99362ce101f820

View File

@ -1 +1 @@
Purpur-config-files&Barrels-and-enderchests-6-rows&Lagging-threshold&Configurable-villager-brain-ticks&Alternative-Keepalive-Handling&MC-168772-Fix-Add-turtle-egg-block-options&MC-4-Fix-Item-position-desync&Giants-AI-settings&Illusioners-AI-settings&Zombie-horse-naturally-spawn&Charged-creeper-naturally-spawn&Rabbit-naturally-spawn-toast-and-killer&Fix-outdated-server-showing-in-ping-before-server-fu&Dont-send-useless-entity-packets&Tulips-change-fox-type&Breedable-Polar-Bears&Cows-eat-mushrooms&Snowman-drop-and-put-back-pumpkin&Allow-soil-to-moisten-from-water-directly-under-it&Option-to-toggle-milk-curing-bad-omen&Fix-the-dead-lagging-the-server&Skip-events-if-there-s-no-listeners&Add-permission-for-F3-N-debug&Configurable-TPS-Catchup&Villagers-follow-emerald-blocks&Allow-leashing-villagers&Add-option-to-disable-saving-projectiles-to-disk&Add-5-second-tps-average-in-tps&Phantoms-attracted-to-crystals-and-crystals-shoot-ph&Implement-bed-explosion-options&Implement-respawn-anchor-explosion-options&MC-171420-Fix-deop-kicking-non-whitelisted-player-wh&Entity-lifespan&Squid-EAR-immunity&Redstone-deactivates-spawners&PaperMC-Buffer-joins&Allow-anvil-colors&Add-no-tick-block-list&Add-option-to-disable-dolphin-treasure-searching&Use-arrow-despawn-rate-for-all-projectiles
Purpur-config-files&Barrels-and-enderchests-6-rows&Lagging-threshold&Configurable-villager-brain-ticks&Alternative-Keepalive-Handling&MC-168772-Fix-Add-turtle-egg-block-options&MC-4-Fix-Item-position-desync&Giants-AI-settings&Illusioners-AI-settings&Zombie-horse-naturally-spawn&Charged-creeper-naturally-spawn&Rabbit-naturally-spawn-toast-and-killer&Fix-outdated-server-showing-in-ping-before-server-fu&Dont-send-useless-entity-packets&Tulips-change-fox-type&Breedable-Polar-Bears&Cows-eat-mushrooms&Snowman-drop-and-put-back-pumpkin&Allow-soil-to-moisten-from-water-directly-under-it&Option-to-toggle-milk-curing-bad-omen&Fix-the-dead-lagging-the-server&Skip-events-if-there-s-no-listeners&Add-permission-for-F3-N-debug&Configurable-TPS-Catchup&Villagers-follow-emerald-blocks&Allow-leashing-villagers&Add-option-to-disable-saving-projectiles-to-disk&Add-5-second-tps-average-in-tps&Phantoms-attracted-to-crystals-and-crystals-shoot-ph&Implement-bed-explosion-options&Implement-respawn-anchor-explosion-options&MC-171420-Fix-deop-kicking-non-whitelisted-player-wh&Entity-lifespan&Squid-EAR-immunity&Redstone-deactivates-spawners&Allow-anvil-colors&Add-no-tick-block-list&Add-option-to-disable-dolphin-treasure-searching&Use-arrow-despawn-rate-for-all-projectiles

View File

@ -1507,18 +1507,9 @@ index b3616185d285849c51ce1c0d2ac61e61e0fa8d97..d62f15d7bfa9bd1f7ff4f41cbd261506
return false;
}
diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java
index 13a2af03fc5a511f13a9be28a813e7275448d09d..ad42bc283e5b64cce893b65a101b8220aef9c5c2 100644
index b1d96013e38f4ef1af0c1e398795be53fd9d81e5..ad42bc283e5b64cce893b65a101b8220aef9c5c2 100644
--- a/src/main/java/net/minecraft/server/EntityPigZombie.java
+++ b/src/main/java/net/minecraft/server/EntityPigZombie.java
@@ -70,7 +70,7 @@ public class EntityPigZombie extends EntityZombie implements IEntityAngerable {
this.eY();
}
- if (this.isAngry()) {
+ if (this.isAngry() && !this.world.origamiConfig.pigmenDontTargetUnlessHit) { // Origami - fix MC-56653
this.lastDamageByPlayerTime = this.ticksLived;
}
@@ -103,15 +103,11 @@ public class EntityPigZombie extends EntityZombie implements IEntityAngerable {
double d0 = this.b(GenericAttributes.FOLLOW_RANGE);
AxisAlignedBB axisalignedbb = AxisAlignedBB.a(this.getPositionVector()).grow(d0, 10.0D, d0);
@ -1542,20 +1533,37 @@ index 13a2af03fc5a511f13a9be28a813e7275448d09d..ad42bc283e5b64cce893b65a101b8220
private void fa() {
diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java.rej b/src/main/java/net/minecraft/server/EntityPigZombie.java.rej
deleted file mode 100644
index 7c6c99ccd4d034994668f62d82fa8180ab0bba57..0000000000000000000000000000000000000000
index 39ea87798a00d40a1512c337b74d10c41330cc99..0000000000000000000000000000000000000000
--- a/src/main/java/net/minecraft/server/EntityPigZombie.java.rej
+++ /dev/null
@@ -1,10 +0,0 @@
@@ -1,27 +0,0 @@
-diff a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java (rejected hunks)
-@@ -68,7 +68,7 @@ public class EntityPigZombie extends EntityZombie implements IEntityAngerable {
- this.eZ();
- }
-@@ -101,15 +103,16 @@ public class EntityPigZombie extends EntityZombie implements IEntityAngerable {
- double d0 = this.b(GenericAttributes.FOLLOW_RANGE);
- AxisAlignedBB axisalignedbb = AxisAlignedBB.a(this.getPositionVector()).grow(d0, 10.0D, d0);
-
-- if (this.isAngry()) {
-+ if (this.isAngry() && !this.world.origamiConfig.pigmenDontTargetUnlessHit) { // Origami - fix MC-56653
- this.lastDamageByPlayerTime = this.ticksLived;
- }
-- this.world.b(EntityPigZombie.class, axisalignedbb).stream().filter((entitypigzombie) -> {
-- return entitypigzombie != this;
-- }).filter((entitypigzombie) -> {
-- return entitypigzombie.getGoalTarget() == null;
-- }).filter((entitypigzombie) -> {
-- return !entitypigzombie.r(this.getGoalTarget());
-- }).forEach((entitypigzombie) -> {
-- entitypigzombie.setGoalTarget(this.getGoalTarget(), org.bukkit.event.entity.EntityTargetEvent.TargetReason.TARGET_ATTACKED_NEARBY_ENTITY, true); // CraftBukkit
-- });
-+ // CraftBukkit
-+ for (EntityPigZombie entitypigzombie : this.world.b(EntityPigZombie.class, axisalignedbb)) {
-+ if (entitypigzombie != this) {
-+ if (entitypigzombie.getGoalTarget() == null) {
-+ if (!entitypigzombie.r(this.getGoalTarget())) {
-+ entitypigzombie.setGoalTarget(this.getGoalTarget(), EntityTargetEvent.TargetReason.TARGET_ATTACKED_NEARBY_ENTITY, true);
-+ }
-+ }
-+ }
-+ }
- }
-
- private void fb() {
diff --git a/src/main/java/net/minecraft/server/EntityPiglin.java b/src/main/java/net/minecraft/server/EntityPiglin.java
index e1b4330074cf3c3de31dbfcd9e1b99feb7baf669..2581c6da77c3fcec5a18f5fcacf30a36bf6b5ee6 100644
--- a/src/main/java/net/minecraft/server/EntityPiglin.java
@ -2268,10 +2276,10 @@ index 759862aba781ec6f1ae0c9a76c4ab6352d603a4c..00000000000000000000000000000000
-
- if (chunkHolder.protoChunk != null) {try (Timing ignored2 = this.world.timings.chunkLoadLevelTimer.startTimingIfSync()) { // Paper start - timings // Paper - chunk is created async
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 68ab91309cce095090940c909caeeae4a1f341b6..511862b33897371f19da9c0a61f81fbd0522e6a2 100644
index 69a14bc78261c58903398e22b09ab276c37c4bf2..1ccbc31ee11693f732e9b2450f3967ec9e99a042 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -2827,7 +2827,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -2828,7 +2828,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
// Paper end
public final boolean isDisconnected() {
@ -2448,12 +2456,12 @@ index c3bd58069d8dbdf36f70f1dafd7c24000f31708b..f915cb4e1110e39178527903ae93508f
diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java.rej b/src/main/java/net/minecraft/server/StructureGenerator.java.rej
deleted file mode 100644
index 8b5d001fb8ecb4a5b96bda6532cf8d5900816290..0000000000000000000000000000000000000000
index 2ae4a20ca763c60c9661661d2ae558bd5b6f79a1..0000000000000000000000000000000000000000
--- a/src/main/java/net/minecraft/server/StructureGenerator.java.rej
+++ /dev/null
@@ -1,13 +0,0 @@
-diff a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java (rejected hunks)
-@@ -139,6 +139,11 @@ public abstract class StructureGenerator<C extends WorldGenFeatureConfiguration>
-@@ -143,6 +143,11 @@ public abstract class StructureGenerator<C extends WorldGenFeatureConfiguration>
- int j2 = i1 + k * l1;
- ChunkCoordIntPair chunkcoordintpair = this.a(structuresettingsfeature, j, seededrandom, i2, j2);
- if (!iworldreader.getWorldBorder().isChunkInBounds(chunkcoordintpair.x, chunkcoordintpair.z)) { continue; } // Paper
@ -2466,7 +2474,7 @@ index 8b5d001fb8ecb4a5b96bda6532cf8d5900816290..00000000000000000000000000000000
- IChunkAccess ichunkaccess = iworldreader.getChunkAt(chunkcoordintpair.x, chunkcoordintpair.z, ChunkStatus.STRUCTURE_STARTS, !(iworldreader instanceof World) || !((World) iworldreader).origamiConfig.onlyFindGeneratedFeatures);
- if (ichunkaccess == null) {
diff --git a/src/main/java/net/minecraft/server/TileEntityHopper.java b/src/main/java/net/minecraft/server/TileEntityHopper.java
index 299196ad134593a2979a867b86d44532a23a40f2..95bede605c6401af10f18b641cd12c9d8ec2f207 100644
index 63ced11539767c22aac635280dc163b731ec6e5f..95bede605c6401af10f18b641cd12c9d8ec2f207 100644
--- a/src/main/java/net/minecraft/server/TileEntityHopper.java
+++ b/src/main/java/net/minecraft/server/TileEntityHopper.java
@@ -508,6 +508,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
@ -2477,20 +2485,12 @@ index 299196ad134593a2979a867b86d44532a23a40f2..95bede605c6401af10f18b641cd12c9d
return true;
}
return false; // EMC
@@ -765,6 +766,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
BlockPosition blockposition = this.getPosition();
if (VoxelShapes.c(VoxelShapes.a(entity.getBoundingBox().d((double) (-blockposition.getX()), (double) (-blockposition.getY()), (double) (-blockposition.getZ()))), this.aa_(), OperatorBoolean.AND)) {
+ enableTicking(this, 0); // Origami - don't tick empty hoppers
this.a(() -> {
return a((IInventory) this, (EntityItem) entity);
});
diff --git a/src/main/java/net/minecraft/server/TileEntityHopper.java.rej b/src/main/java/net/minecraft/server/TileEntityHopper.java.rej
deleted file mode 100644
index 3f481f57d8e0b156b7d632085265e3acfb2f4fa8..0000000000000000000000000000000000000000
index cc8866ec1ccbc131e8491c50eda4f85590bb667b..0000000000000000000000000000000000000000
--- a/src/main/java/net/minecraft/server/TileEntityHopper.java.rej
+++ /dev/null
@@ -1,17 +0,0 @@
@@ -1,9 +0,0 @@
-diff a/src/main/java/net/minecraft/server/TileEntityHopper.java b/src/main/java/net/minecraft/server/TileEntityHopper.java (rejected hunks)
-@@ -466,6 +497,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
- entityitem = (EntityItem) iterator.next();
@ -2500,14 +2500,6 @@ index 3f481f57d8e0b156b7d632085265e3acfb2f4fa8..00000000000000000000000000000000
- return true;
- }
- }
-@@ -722,6 +754,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
- BlockPosition blockposition = this.getPosition();
-
- if (VoxelShapes.c(VoxelShapes.a(entity.getBoundingBox().d((double) (-blockposition.getX()), (double) (-blockposition.getY()), (double) (-blockposition.getZ()))), this.ac_(), OperatorBoolean.AND)) {
-+ enableTicking(this, 0); // Origami - don't tick empty hoppers
- this.a(() -> {
- return a((IInventory) this, (EntityItem) entity);
- });
diff --git a/src/main/java/net/minecraft/server/TileEntityShulkerBox.java.rej b/src/main/java/net/minecraft/server/TileEntityShulkerBox.java.rej
deleted file mode 100644
index bada470cba41cce9beb9eb04227b42c1d489d731..0000000000000000000000000000000000000000

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Modify default configs
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index 9fc12595a566f216620a7fb296d2d30e22332689..02e05390a6106e3e83cdc95a42e966dd6eb968a0 100644
index f65d3545039a2c471819ab5950c171ef6193cdb4..7e0a19acb9f2ea5c66adc03b5f8ce26ec3ff4d31 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -201,7 +201,7 @@ public class PaperConfig {

View File

@ -11,7 +11,7 @@ as the server shouldn't really care about those packets - they're not related wi
Additionally, I'm thinking of making those packets send asynchronously.
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
index 72a62b9be5e1767f64991fc0614fc82967daad18..cf4cac9bae35121146657bcf567ea062e33b08a3 100644
index fe123dc746c96b465393b2af788fae9519e5e55c..5b4901acf7d4661e52839a7ab0ebe24b93bec0d6 100644
--- a/src/main/java/net/minecraft/server/NetworkManager.java
+++ b/src/main/java/net/minecraft/server/NetworkManager.java
@@ -229,7 +229,11 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {

View File

@ -1001,7 +1001,7 @@ index 882b82d8952d34f6e3c639404d1a1521dedf1bb0..ccf1416000354b78ccef78b072062ce0
default EntityHuman findNearbyPlayer(Entity entity, double d0, @Nullable Predicate<Entity> predicate) { return this.findNearbyPlayer(entity.locX(), entity.locY(), entity.locZ(), d0, predicate); } // Paper
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index f2134c4ec6877ae3475f56928ad218c709c0e59d..c4ea24195ac8744e4abf4a9043d79ad1c1c848a0 100644
index a0c696f951824bd1988cf9922dc3829c325f41b5..2711ce7a2b4f1868542088729bf4aa2919ee153e 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -1339,11 +1339,11 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {