fyfly
本帖最后由 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请向我汇报.

a8105
本帖最后由 810587921 于 2015-7-7 21:54 编辑
已在github的Issue回复,如果该插件原创属实请在Issue回复,稍后可删除以保持Issue区整洁
谢谢合作
验证完毕

ColorsWind
能否说一下这个API的授权协议
好吧看到了 MIT

fyfly
本帖最后由 fyfly 于 2015-7-7 21:58 编辑

谁和你讲Github的Issues可以删除了orz, https://github.com/isaacs/github/issues/253 这个问题排了这么长还是没加上去

fyfly
更新至1.1.1,修复玩家头颅显示问题

阿列萌比
我觉得挺不错啊,都汉化而且挺方便的

fire__rain
然并luan

fyfly
已添加支持1.7.10的版本,如果需要的服主可以来安装

fyfly
更新1.2.0版本,添加生物语言支持

KIYAVA
6666!收下了

fyfly
1.7.10的版本更新1.2.0.1,添加Cauldron/KCauldron兼容,注意只是兼容而不是能够获取mod物品名称

fyfly
更新1.3.0,添加附魔与附魔等级支持。1.7.10版本稍后再准备更新

黄总
请问一般什么类型的插件会用到这个插件做前置呢?

fyfly
黄总 发表于 2015-8-3 23:59
请问一般什么类型的插件会用到这个插件做前置呢?

暂时没有公开的吧,就是为作者提供个API用,可能私服也会用到,不过这位仁兄已经打算在他的下一个插件使用了

fyfly
更新1.4.0,添加自定义语言条目功能

li709854423
不明所以。。是说根据这个获取物品名 的时候能获取到中文名吗?
我以前有个疑惑就是。quests插件。比如需求物品之类的。他都会显示成英文的。。用这个插件会变成中文嘛?我估计不会吧 - -

心里有她
插件不错噢

fyfly
li709854423 发表于 2015-12-10 17:33
不明所以。。是说根据这个获取物品名 的时候能获取到中文名吗?
我以前有个疑惑就是。quests插件。比如需求 ...

不会,必须要调用我这个插件的API才行

li709854423
fyfly 发表于 2015-12-10 22:08
不会,必须要调用我这个插件的API才行

= =不知道有没有意义啊。先码一下再考虑。。一般RPG服都是自定义名字。。也用不到原版的这些

南方
这个插件,相当喜欢

huwei5201314789
没有1.72的吗?

fyfly

你可以试试1.7.10版本,不保证能用,不过这个是完全开源你可以自己修改

huwei5201314789
fyfly 发表于 2016-1-3 12:19
你可以试试1.7.10版本,不保证能用,不过这个是完全开源你可以自己修改

试过了,完美报错。。
当然,只是试过了与http://www.mcbbs.net/thread-471208-1-1.html
完美报错{:10_503:}

fyfly
huwei5201314789 发表于 2016-1-3 12:35
试过了,完美报错。。
当然,只是试过了与http://www.mcbbs.net/thread-471208-1-1.html
完美报错{:10_50 ...

1.7.2太老了我不想支持,如果你想要的话自己改吧

huwei5201314789
fyfly 发表于 2016-1-3 13:43
1.7.2太老了我不想支持,如果你想要的话自己改吧

额,,,我怎么知道怎么改= ={:10_493:}

fyfly
已升级1.9.x

A-Kreedz
同头像的来支持一下,期待插件能做得更好

loneen
楼主你真的是太帅啦

fyfly
已更新MC1.10.2的对应版本,增加了一个回溯语言的选项

zyizhuo
好创意,拿来。。。。

Peter_Hao
很好的一个插件~收下了~谢谢

fyfly
已更新至1.12

Bryan33

提交了一个issue  我觉得可以把HashMap改成EnumMap

楼主您好,我是一个插件开发者。
我打算用您的API来获取一些东西(比如附魔)对应的中文名,但是我似乎遇到了一些问题无法解决:
以下是调用您的API的异常信息(节选):
java.lang.NoSuchFieldError: BINDING_CURSE
        at com.meowj.langutils.lang.convert.EnumEnchantment.<clinit>(EnumEnchant
ment.java:55) ~[?:?]
        at com.meowj.langutils.lang.LanguageHelper.getEnchantmentUnlocalizedName
(LanguageHelper.java:230) ~[?:?]
        at com.meowj.langutils.lang.LanguageHelper.getEnchantmentName(LanguageHe
lper.java:253) ~[?:?]
        at chenji.itemeditor.help.HelpManager.<init>(HelpManager.java:65) ~[?:?]


HelpManager.java 65:  String display = LanguageHelper.getEnchantmentName(e3, "zh_cn");   //e3是一个非null的Enchantment
测试环境是java8 + Spigot 1.10.2 (R0.1)
劳烦您帮忙看下是什么原因qaq。感谢了


qwe459223217
方便的插件

fyfly
1582952890 发表于 2017-6-20 14:37
楼主您好,我是一个插件开发者。
我打算用您的API来获取一些东西(比如附魔)对应的中文名,但是我似乎遇到 ...

你用的是对应1.10.2的LangUtils吗,对应的插件版本是1.6.3。不同版本之间是不兼容的。

fyfly 发表于 2017-6-21 13:36
你用的是对应1.10.2的LangUtils吗,对应的插件版本是1.6.3。不同版本之间是不兼容的。 ...

好吧我明白了 一直以为您网盘中的文件名
比如1.8.1-1.11.2是支持1.8.1版本到1.11.2
之前没好好看贴,见笑了,感谢您的解答与回复。

Not103
怎么弄都显示不了中文

fyfly
Not103 发表于 2017-11-4 08:25
怎么弄都显示不了中文

用的是哪个版本呢

Not103
fyfly 发表于 2017-11-5 03:01
用的是哪个版本呢

服务器版本:paperspigot 插件:LangUtils-1.8.1-1.11.2

Not103
换了新版本 然后就又没提示任何东西

fyfly
Not103 发表于 2017-11-5 05:02
服务器版本:paperspigot 插件:LangUtils-1.8.1-1.11.2

把配置里的en_us改成all试试,如果没改的话默认只加载英语的

fyxrim
fyfly 发表于 2017-11-7 14:48
把配置里的en_us改成all试试,如果没改的话默认只加载英语的

你好 还是不行 加载不出来语言 我跟他一样paper服务端1.11.2版本 你的插件就是1.8.1

FallbackLanguage: all
LoadLanguage:
- all


还有zh_CN 还是不行

fyfly
fyxrim 发表于 2018-1-17 23:52
你好 还是不行 加载不出来语言 我跟他一样paper服务端1.11.2版本 你的插件就是1.8.1

FallbackLanguage: ...

等我回去试试Paper吧,最近没什么时间所以可能要等一会

fenghaolin1
我是一个插件的开发者,这个插件在1.9无法获取到包含药水效果的ItemDisplayName,报错如下

TONMMY
没有看出此api的作用

INKDRRAK
很棒的插件
(人气恢复了再评分
希望能够更新至支持1.13

INKDRRAK
很需要该插件,希望可以尽快支持到1.13

huangjc666
找了好久,以为bbs上没有,想搬运,结果……

huangjc666
楼主这是你原创的吗?spigot上好像也有

下一页 最后一页