From decf61d1a10bad49f93a0de299edf0c0b6a58e4c Mon Sep 17 00:00:00 2001 From: Reider745 <70357814+Reider745@users.noreply.github.com> Date: Wed, 28 Aug 2024 17:43:08 +0300 Subject: [PATCH] Fixed: Player list --- src/main/java/com/reider745/InnerCoreServer.java | 1 + .../java/com/reider745/hooks/EntityOverrides.java | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/reider745/InnerCoreServer.java b/src/main/java/com/reider745/InnerCoreServer.java index 5dd122dd..9866f9ca 100644 --- a/src/main/java/com/reider745/InnerCoreServer.java +++ b/src/main/java/com/reider745/InnerCoreServer.java @@ -425,6 +425,7 @@ public class InnerCoreServer { StringBuilder builder = new StringBuilder(); builder.append("Available modpacks: "); for (ModPack modpack : modpacks) { + builder.append(','); builder.append(modpack.getRootDirectory().getName()); } builder.append('.'); diff --git a/src/main/java/com/reider745/hooks/EntityOverrides.java b/src/main/java/com/reider745/hooks/EntityOverrides.java index 2105e06f..8813c5a1 100644 --- a/src/main/java/com/reider745/hooks/EntityOverrides.java +++ b/src/main/java/com/reider745/hooks/EntityOverrides.java @@ -1,10 +1,13 @@ package com.reider745.hooks; +import cn.nukkit.Player; import cn.nukkit.entity.Entity; import cn.nukkit.entity.custom.EntityDefinition; import cn.nukkit.entity.custom.EntityManager; import cn.nukkit.level.format.FullChunk; import cn.nukkit.nbt.tag.CompoundTag; +import cn.nukkit.network.protocol.DataPacket; +import cn.nukkit.network.protocol.PlayerListPacket; import com.reider745.api.ReflectHelper; import com.reider745.api.hooks.HookClass; import com.reider745.api.hooks.annotation.Hooks; @@ -87,8 +90,17 @@ public class EntityOverrides implements HookClass { @Inject(className = "cn.nukkit.entity.Entity") public static void scheduleUpdate(Entity self){ try { - if(self.isPlayer) + if(self instanceof Player player) { + final long id_pre = self.getId(); fieldId.set(self, (long) getOrCreate(self.getUniqueId())); + + final PlayerListPacket pk = new PlayerListPacket(); + pk.type = PlayerListPacket.TYPE_REMOVE; + pk.entries = new PlayerListPacket.Entry[]{ + new PlayerListPacket.Entry(player.getUniqueId(), id_pre, player.getDisplayName(), player.getSkin(), "") + }; + player.dataPacket(pk); + } } catch (IllegalAccessException | IOException e) { self.getServer().getLogger().logException(e); }