Formatting Bukkit.invetory删除了不必要的chatcolor格式1.13.2
亲爱的社区: 我陷入这个问题已经有几个月了,我在网上搜索了很多,但是我没有看到有人和我有同样的问题 因此,基本上,当我使用Formatting Bukkit.invetory删除了不必要的chatcolor格式1.13.2,formatting,title,bukkit,inventory,Formatting,Title,Bukkit,Inventory,亲爱的社区: 我陷入这个问题已经有几个月了,我在网上搜索了很多,但是我没有看到有人和我有同样的问题 因此,基本上,当我使用Bukkit.createInventory(播放器、插槽、标题)创建目录时,使用e.getView().getTitle()(InventoryClickEvent)创建目录的标题与创建目录时输入的标题不同 例如,创建清单时输入的标题是§2§5§r§3§lInventory§n§7§n§4,在我使用e.getView().getTitle()获取标题后,最终成为§3§lIn
Bukkit.createInventory(播放器、插槽、标题)
创建目录时,使用e.getView().getTitle()
(InventoryClickEvent)创建目录的标题与创建目录时输入的标题不同
例如,创建清单时输入的标题是§2§5§r§3§lInventory§n§7§n§4
,在我使用e.getView().getTitle()获取标题后,最终成为§3§lInventory§4
。观察一些格式化代码是如何被删除的
所以真正的问题是库存标题不等于它应该是的标题,从创建的库存返回标题时,似乎不必要的格式代码被删除了。此问题仅在运行1.13.2的minecraft服务器中出现
我已经尝试使用plugin.getServer().createInventory(播放器、插槽、标题)
创建目录,但没有成功。我还尝试使用e.getClickedInventory().getTitle()
而不是e.getView().getTitle()
获取标题,但也没有成功。但是,当我从标题中删除所有格式代码时,它就起作用了
我希望任何人都能帮助我,并解释为什么会发生这种情况
谢谢问题:
这是因为记分牌标题不再存储为字符串
Minecraft 1.8使用:
公共字符串getName(){
返回此.getInventory().getName();
}
和Minecraft 1.13.2使用:
公共字符串getName(){
返回CraftChatMessage.fromComponent(this.getInventory().getDisplayName());
}
标题现在基本上正在重新格式化,而且方法fromComponent(…)
似乎正在删除所有不必要的格式
解决方案:
因为我真的不知道你到底想对标题做什么,我可以建议你在比较标题或任何你需要的东西时删除颜色代码
String title=ChatColor.stripColor(e.getView().getTitle());
如果您确实需要颜色代码,您可以将它们存储在HashMap titles
或类似文件中。谢谢您的回答,我需要聊天颜色来比较两个清单与InventoryClickEvent。我已经解决了我的问题,谢谢!