mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 00:47:42 +01:00
Update "Add canSaveToDisk to Entity"
This commit is contained in:
@@ -1,36 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Tue, 18 Feb 2020 20:07:08 -0600
|
||||
Subject: [PATCH] Add canSaveToDisk to Entity
|
||||
|
||||
1.17: major stuff was changed around this area
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 5a235642c702e6a0c1971d060b5e5a41ad277b65..0bb2b362f257801d3ec8d232f2970d88b32f2748 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -388,6 +388,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
this.headHeight = this.getHeadHeight(EntityPose.STANDING, this.size);
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
+ public boolean canSaveToDisk() {
|
||||
+ return true;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
public boolean isSpectator() {
|
||||
return false;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkRegionLoader.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkRegionLoader.java
|
||||
index 4eaf497d048324a85ce49fc1c6e9559991c20df7..4eb89daf27621a212d12d410aa819e2453708922 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkRegionLoader.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkRegionLoader.java
|
||||
@@ -546,6 +546,7 @@ public class ChunkRegionLoader {
|
||||
|
||||
while (iterator1.hasNext()) {
|
||||
Entity entity = (Entity) iterator1.next();
|
||||
+ if (!entity.canSaveToDisk()) continue; // Purpur
|
||||
final EntityTypes<?> entityType = entity.getEntityType();
|
||||
final int saveLimit = worldserver.paperConfig.entityPerChunkSaveLimits.getOrDefault(entityType, -1);
|
||||
if (saveLimit > -1) {
|
||||
32
patches/server/0067-Add-canSaveToDisk-to-Entity.patch
Normal file
32
patches/server/0067-Add-canSaveToDisk-to-Entity.patch
Normal file
@@ -0,0 +1,32 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Tue, 18 Feb 2020 20:07:08 -0600
|
||||
Subject: [PATCH] Add canSaveToDisk to Entity
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 0ca18754b27b8e9dfab9ebf20d1677c66482fb17..3eebc432befec2223e487a6bd48f30d2160feb0a 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -4058,5 +4058,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
|
||||
public boolean processClick(InteractionHand hand) {
|
||||
return false;
|
||||
}
|
||||
+
|
||||
+ public boolean canSaveToDisk() {
|
||||
+ return true;
|
||||
+ }
|
||||
// Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java
|
||||
index 6204c6c9cf2cb620e41105889807f85438bd006c..29f1ae2df9bd792e7d77479432ae48b0d070586b 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java
|
||||
@@ -90,6 +90,7 @@ public class EntityStorage implements EntityPersistentStorage<Entity> {
|
||||
} else {
|
||||
ListTag listTag = new ListTag();
|
||||
dataList.getEntities().forEach((entity) -> {
|
||||
+ if (!entity.canSaveToDisk()) return; // Purpur
|
||||
CompoundTag compoundTag = new CompoundTag();
|
||||
if (entity.save(compoundTag)) {
|
||||
listTag.add(compoundTag);
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Dispenser curse of binding protection
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 0cbc90a8c1277a0f35e6636ca73b134b22544db3..5ca7c4f73a05c3d2f4859e2abc3404bb71a6a8ac 100644
|
||||
index 3348c6b27d2a39f66dbaf3f2920160d9d56705aa..2dc71a7d387a4b96c7ad27e0329aed8f3b25135e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -63,6 +63,7 @@ import net.minecraft.world.item.ProjectileWeaponItem;
|
||||
@@ -43,7 +43,7 @@ index aab4a63e61aced51b1b6c885fd8b8426a4f14408..ad095c6bc7e00d286c83e37f84d8ed5d
|
||||
// CraftBukkit start
|
||||
Level world = pointer.getLevel();
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 669c03fb31ece7c79100c9c85086b021eaaa0508..313db66e32607b40613ba8d2088cad6710cebf0e 100644
|
||||
index 2a495257c825e8f3bed2483e3c5dddabf7cc209b..814392519212aeea11cc1613df58e44962ad0f68 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -198,6 +198,11 @@ public class PurpurWorldConfig {
|
||||
@@ -17,7 +17,7 @@ index aa7c022c4faade23bd9061311d4152cf845d3331..d4a19fc38027717e43353bc62ef23e56
|
||||
} else {
|
||||
return Boat.Status.IN_AIR;
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 313db66e32607b40613ba8d2088cad6710cebf0e..db1b55015b3515ff5c54c07f5fa4f526b5179c1a 100644
|
||||
index 814392519212aeea11cc1613df58e44962ad0f68..3e80ae254f7ac14046f02ae63cd6f6819fe0f93e 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -73,6 +73,7 @@ public class PurpurWorldConfig {
|
||||
@@ -18,7 +18,7 @@ index a30f9d57257e1de1641f4af1fa7afaea3f0fd37c..5fffe07176ece547a0224aefbf7660a3
|
||||
if (entry != null) {
|
||||
ItemStack itemstack = (ItemStack) entry.getValue();
|
||||
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||
index 2c73eec83af8bbf7f1dba08315542c94f81512a6..324ec7f0284c68ee5f667f587b72a6dacc6eaad3 100644
|
||||
index f85e9fb13ddeb5c3260592e3cdfe958a14bd63f6..70d0fcd323f1ab54dec770eb6aee394ae356b67d 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||
@@ -511,6 +511,16 @@ public final class ItemStack {
|
||||
@@ -73,7 +73,7 @@ index 069ce59faab5184ab9da8ca3fe1cebf7449cd7fe..b391b6f457b9a2df9d59eac46473576b
|
||||
Entry<EquipmentSlot, ItemStack> entry = getRandomItemWith(enchantment, entityliving);
|
||||
return entry != null ? entry.getValue() : ItemStack.EMPTY;
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index db1b55015b3515ff5c54c07f5fa4f526b5179c1a..f6ed942db08ecbcc67a70491b854c703978c63c0 100644
|
||||
index 3e80ae254f7ac14046f02ae63cd6f6819fe0f93e..c8eee7769fb33c1fb69699744cc31314c7de8e27 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -73,6 +73,7 @@ public class PurpurWorldConfig {
|
||||
@@ -27,7 +27,7 @@ index fa56cd09102a89692b42f1d14257990508c5c720..f9251183df72ddc56662fd3f02acf216
|
||||
setListData(vector);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 98b7ccbd1ee4d14fde0cdea2c08c432709fa6e56..e294de7b7e0753bde5a1439ecafdb5abc2ceeea4 100644
|
||||
index 8e8980ef7b2273da6e7dbf4d8d5eb9529a3392af..3b523e53b0224bb9b727b22753ea39c34d1e515d 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -306,7 +306,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -54,7 +54,7 @@ index 543a08f920319a2547258640bafebb1e70af65c4..dd211aa7c4ef1e158933a89898b9e5bc
|
||||
itemStack.shrink(1);
|
||||
} else ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory();
|
||||
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||
index 324ec7f0284c68ee5f667f587b72a6dacc6eaad3..0c5edc11ae59860f0e253a0a760f7f028111d8b1 100644
|
||||
index 70d0fcd323f1ab54dec770eb6aee394ae356b67d..be5107d8aab76effce2c3bb7b0f2f27a26a6727b 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||
@@ -540,7 +540,7 @@ public final class ItemStack {
|
||||
@@ -99,7 +99,7 @@ index 510ed67a7de2b503ab8b01db57ed09ee33b0d825..3f53dc8f250ad3f7616ce7ef0a2353ca
|
||||
entityhuman.startAutoSpinAttack(20);
|
||||
if (entityhuman.isOnGround()) {
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index f6ed942db08ecbcc67a70491b854c703978c63c0..4e23880e93f73e645e160a1a73e4bd0776a01dba 100644
|
||||
index c8eee7769fb33c1fb69699744cc31314c7de8e27..5d1285db6c41b40426f825d9e73c35d0d9b890a3 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -92,6 +92,19 @@ public class PurpurWorldConfig {
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Item entity immunities
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
index 2921cc7226bba37af0b3c950038b909806c093a9..c47ede5c9129ce90d2c7360afbfa3a1234e69bdf 100644
|
||||
index 723e663350a6a8bf29df9a5b9a6ed3c14e2d9393..23431bb62abed51593ff6e590474771e0e2fab54 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
@@ -2199,7 +2199,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
|
||||
@@ -18,7 +18,7 @@ index 2921cc7226bba37af0b3c950038b909806c093a9..c47ede5c9129ce90d2c7360afbfa3a12
|
||||
private final int range;
|
||||
SectionPos lastSectionPos;
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
index d19a025337c4b0a2965184b4c872f23d15a4a60b..28f20150eaa0c00f83a3639c2a4194ecb32a0b8d 100644
|
||||
index 1b649cb81712bd145cbbb033bcdef6f1345f843b..b2c7711dfb6d50528dc843d8ac6fbe3e1ab1b462 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
@@ -68,7 +68,7 @@ public class ServerEntity {
|
||||
@@ -93,7 +93,7 @@ index 158719d46c96bb733a00e08c8285f41a48406abf..623a8b38b9d0ccbfe807afe328495b19
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 4e23880e93f73e645e160a1a73e4bd0776a01dba..48d5dff7041f4e05e6c508ef23921ee8a5d71dd2 100644
|
||||
index 5d1285db6c41b40426f825d9e73c35d0d9b890a3..aa984c2eebf2529e0be42b01ec7678d1f5157e0d 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -105,6 +105,49 @@ public class PurpurWorldConfig {
|
||||
Reference in New Issue
Block a user