本帖最后由 1582952890 于 2017-9-17 07:20 编辑

简介:
获取一个物品的名字一直是一个很麻烦的事情,Bukkit/Spigot没有提供相对的API。之前这里有一个实现,但是只支持英文,而且对于一些特殊的物品(药水,怪物蛋等)没有支持。所以这个API诞生了(其实这个API一年前就想搞了,一直没开工/w\)。
在之后的更新中加入了获取生物、附魔、附魔等级名字的功能。
这个API为插件提供了获取物品名字的能力,能够根据玩家客户端使用的语言发送相应语言的物品名称(使用的是原版的语言文件,一共90个)。目前该API只支持原版物品和生物。在1.4.0更新中,服主和插件作者已经可以自定义语言条目了,具体请看后文(之后版本中可能就使用这一功能提供mod支持)。

从现在1.2.0.1-1.7.10的版本起,该插件已经能够工作在Cauldron/KCauldron服务器上了,并且对于原版的物品和生物工作是正常的。只不过可能花费时间长一点。当然,对于mod里面的物品也不会崩溃,但是只能够返回一个自动生成的Material的名字,如果你有好的想法解决mod支持这个问题可以告诉我。

我仍然还是推荐插件作者用
  1. getServer().getName().contains("Cauldron") // JavaPlugin 类中
复制代码
来检测一下环境。

Demo:

目前版本采用HashMap和Enum(其实还是HashMap)来管理和获取语言文件。大概需要100-250 ms来加载所有语言文件,需要50-300 μs来获取一个名字(开服第一次获取时间可能长一点(大概1ms左右),包括反射获取客户端语言的时间)。如果你有更高效的方法请在Github上发PR或者Issues。

当前构建状态:

资源:


使用:
- 如果你是一个服主:
如果有插件需要本插件作为前置,只要把本插件(无任何后缀的版本)下载下来放到plugins/文件夹里去就行了。本插件单独使用任何功能!(除非你想凑数什么的/w\)

本插件主要版本为1.12,如果你使用的是Minecraft 1.7.10或1.8.x或1.9.4或1.10.x或1.11.x,请下载后缀为1.7.10或1.8.x或1.9.x或1.10.x或1.11.x的版本!(暂无计划支持更低的版本,如果需要请自行更改编译)

设置:


修改语言条目的教程:

- 如果你是一个开发者:
首先,请把该插件加到你IDE的Build Path里。如果你想要源码和Javadoc,我提供了sources和javadoc,至于怎么使用请参考各自IDE的说明。

接下来,添加插件的依赖:


如果你使用了Gradle或者Maven:


接下来是一些功能的对应方法,你也可以去看这个示例插件:


如果你想对本API贡献代码:

下载地址(3个都可以):

更新日志:



如果你喜欢这个工程,请在Github给这个工程Star. 如果有Bug请向我汇报.