Fix entity tracker onTick no longer being handled on new Paper, causing bugs
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
This commit is contained in:
1 parent
356de838ad
commit
babbbe699a
3 files changed
+14
-6
No files matched your search
+2
-2
@@ -44,6 +44,7 @@ public abstract class EntityHandle extends Template.Handle {
|
||||
|
||||
/* ============================================================================== */
|
||||
|
||||
public abstract void setTrackerEntry(EntityTrackerEntryHandle tracker);
|
||||
public abstract List<EntityHandle> getPassengers();
|
||||
public abstract boolean isVehicle();
|
||||
public abstract boolean isPassenger();
|
||||
@@ -278,8 +279,6 @@ public abstract class EntityHandle extends Template.Handle {
|
||||
public final Template.StaticField.Converted<Key<Boolean>> DATA_NO_GRAVITY = new Template.StaticField.Converted<Key<Boolean>>();
|
||||
|
||||
public final Template.Field.Converted<Entity> bukkitEntityField = new Template.Field.Converted<Entity>();
|
||||
@Template.Optional
|
||||
public final Template.Field.Converted<EntityTrackerEntryHandle> tracker = new Template.Field.Converted<EntityTrackerEntryHandle>();
|
||||
public final Template.Field.Integer idField = new Template.Field.Integer();
|
||||
public final Template.Field.Boolean preventBlockPlace = new Template.Field.Boolean();
|
||||
public final Template.Field.Converted<EntityHandle> vehicle = new Template.Field.Converted<EntityHandle>();
|
||||
@@ -315,6 +314,7 @@ public abstract class EntityHandle extends Template.Handle {
|
||||
public final Template.Field.Long move_SomeState = new Template.Field.Long();
|
||||
public final Template.Field.Boolean valid = new Template.Field.Boolean();
|
||||
|
||||
public final Template.Method.Converted<Void> setTrackerEntry = new Template.Method.Converted<Void>();
|
||||
public final Template.Method.Converted<List<EntityHandle>> getPassengers = new Template.Method.Converted<List<EntityHandle>>();
|
||||
public final Template.Method<Boolean> isVehicle = new Template.Method<Boolean>();
|
||||
public final Template.Method<Boolean> isPassenger = new Template.Method<Boolean>();
|
||||
|
||||
@@ -106,9 +106,7 @@ public class EntityTracker extends BasicWrapper<EntityTrackerHandle> {
|
||||
*/
|
||||
public EntityTrackerEntryHandle setEntry(Entity entity, EntityTrackerEntryHandle entityTrackerEntry) {
|
||||
// On Paper, the entry is also stored in the entity itself
|
||||
if (EntityHandle.T.tracker.isAvailable()) {
|
||||
EntityHandle.T.tracker.set(HandleConversion.toEntityHandle(entity), entityTrackerEntry);
|
||||
}
|
||||
EntityHandle.T.setTrackerEntry.invoke(HandleConversion.toEntityHandle(entity), entityTrackerEntry);
|
||||
|
||||
return handle.putEntry(entity.getEntityId(), entityTrackerEntry);
|
||||
}
|
||||
|
||||
@@ -44,7 +44,17 @@ class Entity {
|
||||
protected (org.bukkit.entity.Entity) CraftEntity bukkitEntityField:bukkitEntity;
|
||||
#endif
|
||||
|
||||
optional (EntityTrackerEntryHandle) net.minecraft.server.level.EntityTrackerEntry tracker;
|
||||
public void setTrackerEntry((EntityTrackerEntryHandle) net.minecraft.server.level.EntityTrackerEntry tracker) {
|
||||
System.out.println("Set tracker entry");
|
||||
#if exists net.minecraft.world.entity.Entity net.minecraft.server.level.EntityTrackerEntry tracker;
|
||||
#require Entity net.minecraft.server.level.EntityTrackerEntry tracker;
|
||||
instance#tracker = tracker;
|
||||
#endif
|
||||
|
||||
#if exists net.minecraft.world.entity.Entity public final void moonrise$setTrackedEntity(net.minecraft.server.level.EntityTrackerEntry trackedEntity);
|
||||
instance.moonrise$setTrackedEntity(tracker);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if version >= 1.17
|
||||
private static optional java.util.concurrent.atomic.AtomicInteger opt_atomic_entityCount:ENTITY_COUNTER;
|
||||
|
||||
Reference in new issue
Block a user