9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-19 15:09:25 +00:00
Files
Leaf/leaf-server/minecraft-patches/features/0260-optimize-getEntityStatus.patch
Dreeam 5ddabb083e Updated Upstream (Paper/Purpur)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@88a3a870 Configurable xp orb merge group count (#12503)
PaperMC/Paper@53d1d04e Disable Item Obfuscation for entity related stacks (#12297)
PaperMC/Paper@c98cd658 Add configuration interface to expose certain config values (#12273)
PaperMC/Paper@42a2a6c2 Supports the ability for commands to be registered internally (#12520)
PaperMC/Paper@753cff7c Improvements for Dump paper commands (#12512)
PaperMC/Paper@e2da5d2f Registry API for supported Mob Variants (#12417)
PaperMC/Paper@ab0253fe Expand PlayerDeathEvent API (#12221)
PaperMC/Paper@cbcf75a5 Update visual fire handling with TriState support (#12303)
PaperMC/Paper@6c3964d2 Properly save level data async (#12530)
PaperMC/Paper@d2ad2e66 Add missing EntityLookup#getAllMapped from Moonrise
PaperMC/Paper@358e72ec Remove simplify remote item matching stuff for now
PaperMC/Paper@04ffca0b Also remove CraftPlayer methods
PaperMC/Paper@a2525819 Update mache
PaperMC/Paper@d683970d Add FishHookStateChangeEvent (#12165)
PaperMC/Paper@369ad170 Cached tag parser for itemstack reading (#12547)
PaperMC/Paper@841d6342 Fix ItemStack#addUnsafeEnchantment ignored for missing enchantment component (#12549)
PaperMC/Paper@c000b352 fix(bukkit-brig-forwarding-map): Invert isEmpty method (#12555)
PaperMC/Paper@28d7df75 Backport HeroesOfTheVillage datafixer fix
PaperMC/Paper@f1dbed07 Implement BlocksAttack DamageReduction and ItemDamage (#12538)
PaperMC/Paper@cc38032b Deprecate TeleportCause CHORUS_FRUIT for CONSUMABLE_EFFECT (#12546)
PaperMC/Paper@35878677 [ci/skip] Fix format and mentions for ItemDamageFunction (#12560)
PaperMC/Paper@7171d299 [ci/skip] Mention CAN_PLACE/CAN_BREAK component in ItemMeta (#12559)
PaperMC/Paper@6f73e62e Add getPickItemStack (#12552)
PaperMC/Paper@ce0fa4c4 Replace old version command with brigadier equivalent (#12502)
PaperMC/Paper@fa360aa8 Add some missing annotations and an incorrect one (#12204)
PaperMC/Paper@113b18ee Update paperweight and Gradle wrapper (#12573)
PaperMC/Paper@f303a076 fix: Don't hardcode checks for translation registries (#12571)
PaperMC/Paper@87349c31 Fix CombatTracker stale on death (#12562)
PaperMC/Paper@b70bca6b Revert "fix: Don't hardcode checks for translation registries (#12571)"

Purpur Changes:
PurpurMC/Purpur@93011bc1 Add configuration setting to re-add End void rings (#1656)
PurpurMC/Purpur@c2f48591 [ci/skip] only set default world config values once
PurpurMC/Purpur@6f5bbae5 [ci/skip] move some code around
PurpurMC/Purpur@5c1a9835 fix issue with `shift-right-click-repairs-mending-points`
PurpurMC/Purpur@3156e446 check damage value of tool correctly
PurpurMC/Purpur@a9fe4f25 Updated Upstream (Paper)
PurpurMC/Purpur@9d0aa8eb Updated Upstream (Paper)
PurpurMC/Purpur@603c7557 Updated Upstream (Paper)
PurpurMC/Purpur@eca78060 Updated Upstream (Paper)
PurpurMC/Purpur@e4e9cfdf Updated Upstream (Paper)
PurpurMC/Purpur@3de2fc7d Updated Upstream (Paper)
PurpurMC/Purpur@09f547de add `mob-griefing-override` config options (#1661)
PurpurMC/Purpur@1dd9bd0c Updated Upstream (Paper)
PurpurMC/Purpur@7a8aa86a finish updating gradle
PurpurMC/Purpur@fd78b90f bandaid fix: increase the daemon heap for now
2025-05-24 22:06:41 +08:00

64 lines
3.1 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: hayanesuru <hayanesuru@outlook.jp>
Date: Fri, 23 May 2025 15:57:42 +0900
Subject: [PATCH] optimize getEntityStatus
diff --git a/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/EntityLookup.java b/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/EntityLookup.java
index 2d24d03bbdb5ee0d862cbfff2219f58afffafe12..11f4f2f3bc4c9f9f6a1f83b90f3de34c8edb9819 100644
--- a/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/EntityLookup.java
+++ b/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/EntityLookup.java
@@ -93,8 +93,14 @@ public abstract class EntityLookup implements LevelEntityGetter<Entity> {
if (entity == null) {
return null;
}
- final Visibility visibility = EntityLookup.getEntityStatus(entity);
- return visibility.isAccessible() ? entity : null;
+ // Leaf start
+ final FullChunkStatus entityStatus = ((ChunkSystemEntity) entity).moonrise$getChunkStatus();
+ return switch (entityStatus) {
+ case INACCESSIBLE -> null;
+ case FULL, BLOCK_TICKING, ENTITY_TICKING -> entity;
+ case null -> null;
+ };
+ // Leaf end
}
@Override
@@ -398,7 +404,14 @@ public abstract class EntityLookup implements LevelEntityGetter<Entity> {
return Visibility.TICKING;
}
final FullChunkStatus entityStatus = ((ChunkSystemEntity)entity).moonrise$getChunkStatus();
- return Visibility.fromFullChunkStatus(entityStatus == null ? FullChunkStatus.INACCESSIBLE : entityStatus);
+ // Leaf start
+ return switch (entityStatus) {
+ case INACCESSIBLE -> Visibility.HIDDEN;
+ case FULL, BLOCK_TICKING -> Visibility.TRACKED;
+ case ENTITY_TICKING -> Visibility.TICKING;
+ case null -> Visibility.HIDDEN;
+ };
+ // Leaf end
}
protected boolean addEntity(final Entity entity, final boolean fromDisk, final boolean event) {
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 6d8c7d90b0a64e99a2e811ccdb84a03be95e27b3..f00a981ef03886f17852f38ba5e83baf856fd1c1 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -370,6 +370,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
// Paper end
// Paper start - rewrite chunk system
private final boolean isHardColliding = this.moonrise$isHardCollidingUncached();
+ @org.jetbrains.annotations.Nullable // Leaf
private net.minecraft.server.level.FullChunkStatus chunkStatus;
private ca.spottedleaf.moonrise.patches.chunk_system.level.chunk.ChunkData chunkData;
private int sectionX = Integer.MIN_VALUE;
@@ -383,6 +384,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
}
@Override
+ @org.jetbrains.annotations.Nullable // Leaf
public final net.minecraft.server.level.FullChunkStatus moonrise$getChunkStatus() {
return this.chunkStatus;
}