taboolib
taboolib copied to clipboard
在使用 module-lang 向玩家发送信息时可自定义修改信息内容或使用自定义变量替换
今天在写插件时,发现 taboolib 的替换变量都是诸如 {0} {1} 的东西,如果没有注释或其他告诉服主这些代表什么意义的方式,我个人认为服主会较不易配置该插件的语言文件。 为此,我写了一些方法,能让开发者在向玩家发送这些方法时对获取到的语言文本做些修改再发出去,例如添加 %player% 之类的非 PlaceholderAPi 变量,开发者自定义变量。我觉得开发者写起来会更加方便。
使用方法举例:
e.player.sendLang("motd") {
it?.replace("%player%", e.player.name)?.replace("%online%", onlinePlayers().size.toString())
?.replace("%worldtime%", "上午1:61")
}
在语言文件中:
motd:
- "&6Welcome, %player%&6!"
- "&6Type &c/help&6 for a list of commands."
- "&6Type &c/list&6 to see who else is online."
- "&6Players online:&c %online% &6- World time:&c %worldtime%"
以上为个人见解,如果有错误或代码有不足之处还请指出,非常感谢。
差评
差评
栓Q
其实根据上下文完全可以看出是什么内容,如果是单纯的替换变量,可以做的更优雅
我会更新相关特性
代码:
e.player.sendLang("motd", e.player.name, onlinePlayers().size.toString() to "online", "上午1:61" to "worldtime")
语言文件:
motd:
- "&6Welcome, {0}&6!"
- "&6Type &c/help&6 for a list of commands."
- "&6Type &c/list&6 to see who else is online."
- "&6Players online:&c {online} &6- World time:&c {worldtime}"
https://github.com/TabooLib/taboolib/commit/b3e500fece5de6c3e6025af2d2f5240b7ab67ca7
在变量替换时对 Pair 类型进行特殊处理,以 second 属性作为变量别名