From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Cryptite Date: Sat, 16 Nov 2024 09:22:24 -0600 Subject: [PATCH] Add ObjectId diff --git a/build.gradle.kts b/build.gradle.kts index fcc93b891c04d8b340b29a8b96e939df9b58839a..4893e10810583c12f6b34ec63d96bc8477264415 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -33,6 +33,8 @@ dependencies { implementation("com.fasterxml.jackson.core:jackson-annotations:2.13.0") // Slice end + implementation("org.mongodb:bson:4.11.1") // Slice - MongoDB Bson Library for ObjectIds + // Paper start implementation("org.jline:jline-terminal-ffm:3.27.1") // use ffm on java 22+ implementation("org.jline:jline-terminal-jni:3.27.1") // fall back to jni on java 21 diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java index 9bb19124498370c5b5ecaff10f523ee6e391b767..77cc9ae3f5d71454c3b75c44cf53bcfbc5f3eb84 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -223,7 +223,17 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess // Paper start - Folia schedulers synchronized (this) { if (this.bukkitEntity == null) { - return this.bukkitEntity = CraftEntity.getEntity(this.level.getCraftServer(), this); + this.bukkitEntity = CraftEntity.getEntity(this.level.getCraftServer(), this); + + // Slice start - resolve ObjectId + if (this.bukkitEntity instanceof org.bukkit.craftbukkit.entity.CraftHumanEntity craftHumanEntity) { + io.papermc.paper.event.player.PlayerResolveObjectIdEvent event = new io.papermc.paper.event.player.PlayerResolveObjectIdEvent((org.bukkit.entity.Player) bukkitEntity); + event.callEvent(); + craftHumanEntity.setObjectId(event.getObjectId()); + } + // Slice end + + return this.bukkitEntity; } } // Paper end - Folia schedulers diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java index e345cdbfab44a0f5da80d738798dbb4424b7ab5c..ba1280382f2b95ea2cb412d3a15789affc65bb12 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -73,6 +73,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { protected final PermissibleBase perm = new PermissibleBase(this); private boolean op; private GameMode mode; + private org.bson.types.ObjectId objectId; public CraftHumanEntity(final CraftServer server, final Player entity) { super(server, entity); @@ -81,6 +82,18 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { this.enderChest = new CraftInventory(entity.getEnderChestInventory()); } + // Slice start + @Override + public org.bson.types.ObjectId getObjectId() { + return objectId; + } + + @Override + public void setObjectId(org.bson.types.ObjectId objectId) { + this.objectId = objectId; + } + // Slice end + @Override public PlayerInventory getInventory() { return this.inventory;