java - 在 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 功能。
解决方案
比如在github issue中解释:
要创建玩家银行账户,您应该使用:
OfflinePlayer bankAccount = Bukkit.getOfflinePlayer("SomeBankPlayer");
net.milkbowl.vault.economy.Economy economy = getSomeEconomy();
if(!economy.hasAccount(bankAccount)
economy.createPlayerAccount(bankAccount);
此外,在 V5 中,QuickShop 的开发添加ShopOwnerNameGettingEvent
事件可以为您提供帮助。
推荐阅读
- ios - 更改 iOS 密码自动填充文本字段顺序
- hyperledger-fabric - 区块是否包含区块的生成时间?
- reactjs - this.props.fetch 不是一个函数 redux
- bash - 如何使用 sed 命令在“=”之后获取值
- azure-language-understanding - LUIS 用户话语背后的感叹号
- typescript - 将 Jest 与 gRPC-Web 一起使用
- javascript - 获取多对字符串之间的字符串,即HTML标签
- c# - 我可以在 ASP.Net Core 3.0 中使用 IEmailSender 接口向多个收件人发送电子邮件吗
- amazon-web-services - 使用 CDK 写入 S3 对象
- wordpress - 频繁停止应用程序池 [IIS with Wordpress]