Minecraft在LAN世界中的玩家之间共享库存

时间:2020-01-17 23:22:13

标签: java minecraft inventory

我要解决的问题是允许所有玩家在Minecraft LAN世界中共享相同的库存。这意味着,如果有人砍倒一棵树并砍柴,每个人都会砍柴。如果有人掉落物品,则该物品将从所有人的库存中删除。如果有人正在使用热栏上插槽1中的镐来挖矿,那么其他人就应该失去耐久力。如果有人重新排列了清单中的项目,则应该为其他所有人重新排列。基本上,我想知道是否有一种方法可以将每个人的库存设置为相同的对象,以使对库存的任何修改对于每个人都是相同的。

我尝试使用NBTExplorer复制库存,但不能在玩家之间实时同步。我也知道有些服务器插件可以将清单同步到MySQL之类的数据库,但是我几乎可以肯定,除了托管服务器并尝试为此设置插件和数据库外,还有一种更简便的方法。

是否存在我可以修改的值,该值将导致所有清单具有相同的种子?我可以使用某些命令生成一个世界,其中所有玩家的清单都指向一个位置吗?

2 个答案:

答案 0 :(得分:1)

使用1.13之后的香草命令,您可以执行简单的命令块循环,或使用数据包。这些是需要采取的步骤: -设置一个中央箱式矿车,以存储通用库存 -使用基本的耗材设置该库存 -使用/ execute除非命令,否则检查每个玩家的库存和胸部矿车之间的差异 -发生这种情况时,/ data将胸部矿车的存货合并到每个玩家中

数据命令教程:https://www.google.com/url?sa=t&source=web&rct=j&url=%23&ved=2ahUKEwj1noDl9pLnAhUEGc0KHdGxC00QwqsBMAB6BAgMEAU&usg=AOvVaw0VTJzWxrN8ZFOD4xbU2nov 执行命令教程:https://minecraft.gamepedia.com/Commands/execute#unless

我还没有确切的命令,但是这个系统应该可以工作。

答案 1 :(得分:0)

这不只是生成种子或类似的事情那么简单。您需要坚持并将每一个玩家的每个库存更改都传输给所有玩家。并找到保持同步的方法。

最好使用服务器端插件,因为这不能仅在客户端实现。使用插件侦听器侦听任何清单事件,然后遍历除触发事件的那一个之外的所有播放器,以对其清单执行相同的操作以使所有播放器保持同步。