首页 > 解决方案 > 在 Minecraft 插件中为假玩家创建玩家数据

问题描述

我正在努力创建新的玩家数据(服务器位于 /world/playerdata/[uuid].dat 中)。我写了一个插件,它应该让假玩家成为银行(但实际上是普通的假玩家)并持有钱(我使用Vault API)。

我使用 Paper 1.17.1 作为我的依赖项。

我认为这个可以完成它的工作:

  PlayerProfile profile = Bukkit.createProfile(UUID.randomUUID(), bankName);

但是没有创建玩家数据,如果我尝试检查该玩家是否存在于游戏中,它会说找不到它。我也使用CMI插件,我想要与此兼容的解决方案(我的意思是这个新播放器将立即被它识别 - 它存在)。

有什么方法可以创建 [uuid].dat 文件吗?或者我应该写我的自定义方法,如果是这样,我应该如何开始?

我将不胜感激任何提示,因为我一直在寻找解决方案很长一段时间,这是我需要在插件中使用的最后一件事。谢谢您的帮助。

编辑:我并不是要生成它们,只是将它们用作 Vault API 余额,因为大多数经济插件不支持 Vault Banks 功能。

标签: javapluginsminecraftbukkit

解决方案


比如在github issue中解释:

要创建玩家银行账户,您应该使用:

OfflinePlayer bankAccount = Bukkit.getOfflinePlayer("SomeBankPlayer");
net.milkbowl.vault.economy.Economy economy = getSomeEconomy();
if(!economy.hasAccount(bankAccount)
    economy.createPlayerAccount(bankAccount);

此外,在 V5 中,QuickShop 的开发添加ShopOwnerNameGettingEvent事件可以为您提供帮助。


推荐阅读