生成发包实体A, 发包实体A所在区块命名为区块A
发包实体A生成时, 需要将实体A发包给【加载区块A的所有玩家】
主要问题【如何获取加载区块A的所有玩家】
我个人的(笨比)解决方案是protocol插件的PacketType.Play.Server.MAP_CHUNK与PacketType.Play.Server.UNLOAD_CHUNK
玩家加载区块时记录,离开(不再加载这个区块)时删除记录
有没有什么方法可以直接获取到加载区块A的玩家
在spigotmc翻了好久没翻到...
发包实体A生成时, 需要将实体A发包给【加载区块A的所有玩家】
主要问题【如何获取加载区块A的所有玩家】
我个人的(笨比)解决方案是protocol插件的PacketType.Play.Server.MAP_CHUNK与PacketType.Play.Server.UNLOAD_CHUNK
玩家加载区块时记录,离开(不再加载这个区块)时删除记录
有没有什么方法可以直接获取到加载区块A的玩家
在spigotmc翻了好久没翻到...
bukkit 没发现好的方法
paper 存在 PlayerChunkLoadEvent 和 PlayerChunkUnloadEvent
可以实现
paper 存在 PlayerChunkLoadEvent 和 PlayerChunkUnloadEvent
可以实现
美味的曲奇 发表于 2022-6-9 16:45
bukkit 没发现好的方法
paper 存在 PlayerChunkLoadEvent 和 PlayerChunkUnloadEvent
这个和我那个解决方案是一样的 都是需要自己来记录

其实直接获取玩家设置内区块视距并且判断玩家在哪个区块就可以实现了(
名副其实 发表于 2022-6-9 17:13
其实直接获取玩家设置内区块视距并且判断玩家在哪个区块就可以实现了(
好像也可以 获取玩家所在区块的xz +- 区块视距,然后判断实体区块的xz是否这两个区间内

美味的曲奇 发表于 2022-6-9 16:52
目前没看过能直接获取的方案
Chuck并没有存储玩家,也不太可能储存玩家
就比如原版,玩家放置方块,服务端肯定要给加载方块所在区块的玩家发包这个方块,翻了一下net.minecraft.server没翻到相关代码