PlaceholderAPI上的JavaScript变量使用教程
Path 0 - 什么是 JavaScript 变量?
这是 PlaceholderAPI 的一大功能。此功能可以让你在一定程度上自定义自己的变量,或是给其他的变量进行润色
比如
- 按照变量数值划分等级,如一个当等级0-9显示为菜鸟,10-19显示为大佬的变量
- 对其他变量进行润色。如把 "15408" 改写成 "15,408"
- 四舍五入。如将 "304.4180000003" 改写成 "304.42"
- 当某个值达到x的时候显示"some text",反之显示"noting"
- and more...
使用 JavaScript 变量需要有一定的编程思想。不过你也可以直接copy我的代码拿去用啦
Path 1 - 安装 JavaScript 变量
首先,你需要在游戏中,或者是控制台输入这个命令
- papi ecloud download javascript
等待提示下载完成(一串绿字)之后,重载Papi插件(/papi reload)即可。
接着打开PlaceholderAPI的插件文件夹,可以看见文件夹内多出了一个JavaScript文件夹。打开此文件夹并在内新建一个文件 "你喜欢的英文名.js" 然后保存。这样我们的准备工作就完成了
奥,对了。如果文件夹内有一个 "栗子.js" 可以删掉
Path 2 - 开始写点鬼玩意儿
用Notepad++打开此js文档,键入以下内容:
- function main() {
-
- } main();
然后,我们就可以开始写东西了。我们就来写一个当玩家等级小于10的时候显示 "菜鸟",大于10的时候显示为 "大佬" 的变量吧
那么我们先画一个草图,思路大概是这样的

好的,是不是很清晰明了?那么我们就可以开始撸代码了。
首先我们要进行第一步——获取玩家等级。一般这么获取
- function main() {
- var p_lv = parseInt("%player_level%");
- } main();
我们新建了一个名叫p_lv的变量来存储玩家的等级。
这里要注意几点。首先每一句的结尾都要带上一个分号,这是惯例。其次,如果没有特殊情况,获取一个变量值都要用这个方法
- parseInt("变量昵称");
如果不使用这个方法,可能会获得Error或者0。如果你的变量是带有小数的,那么就需要把Int换成Float
好的,我们继续。接下来就需要判断玩家的等级了。我们使用 if 这个语句来判断。差不多像这样
- function main() {
- var p_lv = parseInt("%player_level%");
- if (p_lv >= 10) {
- /* 占位 */
- }
- if (p_lv < 10) {
- /* 占位 */
- }
- } main();
大概就是这样了,这里也要注意一点,if 后面是不用分号的,是需要两个括号的
那么既然判断也完成了,我们要怎么返回一个值呢?
很简单,使用
- return "值";
现在,我们的代码就是这样了
- function main() {
- var p_lv = parseInt("%player_level%");
- if (p_lv >= 10) {
- return "大佬";
- }
- if (p_lv < 10) {
- return "菜鸟";
- }
- } main();
以此类推。你还可以添加巨佬等等,或者是把等级改成金币值。这有一份Papi变量大全可供参考http://mineplugin.org/PlaceholderAPI
这就完事了?并不。你还需要注册这个变量
Path 3 - 注册你的变量
返回PlaceholderAPI的首层文件夹,找到 javascript_placeholders.yml 文件,并在下面添加
- 随便一个英文key,推荐文件名:
- file: 你刚刚的文件.js
奥,上面有一个栗子,别复制它的格式,可以删掉。然后重载PAPI,接着你就可以在一些地方使用
- %javascript_你的key%
就可以使用你自定义的变量了。现在还不赶紧测试测试?xD
Path 4 - 更多骚操作
2楼更呗
2021.12 数据,可能有更多内容
PlaceholderAPI上的JavaScript变量使用教程
Path 0 - 什么是 JavaScript 变量?
这是 PlaceholderAPI 的一大功能。此功能可以让你在一定程度上自定义自己的变量,或是给其他的变量进行润色
比如
- 按照变量数值划分等级,如一个当等级0-9显示为菜鸟,10-19显示为大佬的变量
- 对其他变量进行润色。如把 "15408" 改写成 "15,408"
- 四舍五入。如将 "304.4180000003" 改写成 "304.42"
- 当某个值达到x的时候显示"some text",反之显示"noting"
- and more...
使用 JavaScript 变量需要有一定的编程思想。不过你也可以直接copy我的代码拿去用啦
Path 1 - 安装 JavaScript 变量
首先,你需要在游戏中,或者是控制台输入这个命令
代码:
- papi ecloud download javascript
等待提示下载完成(一串绿字)之后,重载Papi插件(/papi reload)即可。
接着打开PlaceholderAPI的插件文件夹,可以看见文件夹内多出了一个JavaScript文件夹。打开此文件夹并在内新建一个文件 "你喜欢的英文名.js" 然后保存。这样我们的准备工作就完成了
奥,对了。如果文件夹内有一个 "栗子.js" 可以删掉
Path 2 - 开始写点鬼玩意儿
用Notepad++打开此js文档,键入以下内容:
代码:
- function main() {
-
- } main();
然后,我们就可以开始写东西了。我们就来写一个当玩家等级小于10的时候显示 "菜鸟",大于10的时候显示为 "大佬" 的变量吧
那么我们先画一个草图,思路大概是这样的

好的,是不是很清晰明了?那么我们就可以开始撸代码了。
首先我们要进行第一步——获取玩家等级。一般这么获取
代码:
- function main() {
- var p_lv = parseInt("%player_level%");
- } main();
我们新建了一个名叫p_lv的变量来存储玩家的等级。
这里要注意几点。首先每一句的结尾都要带上一个分号,这是惯例。其次,如果没有特殊情况,获取一个变量值都要用这个方法
代码:
- parseInt("变量昵称");
如果不使用这个方法,可能会获得Error或者0。如果你的变量是带有小数的,那么就需要把Int换成Float
好的,我们继续。接下来就需要判断玩家的等级了。我们使用 if 这个语句来判断。差不多像这样
代码:
- function main() {
- var p_lv = parseInt("%player_level%");
- if (p_lv >= 10) {
- /* 占位 */
- }
- if (p_lv < 10) {
- /* 占位 */
- }
- } main();
大概就是这样了,这里也要注意一点,if 后面是不用分号的,是需要两个括号的
那么既然判断也完成了,我们要怎么返回一个值呢?
很简单,使用
代码:
- return "值";
现在,我们的代码就是这样了
代码:
- function main() {
- var p_lv = parseInt("%player_level%");
- if (p_lv >= 10) {
- return "大佬";
- }
- if (p_lv < 10) {
- return "菜鸟";
- }
- } main();
以此类推。你还可以添加巨佬等等,或者是把等级改成金币值。这有一份Papi变量大全可供参考http://mineplugin.org/PlaceholderAPI
这就完事了?并不。你还需要注册这个变量
Path 3 - 注册你的变量
返回PlaceholderAPI的首层文件夹,找到 javascript_placeholders.yml 文件,并在下面添加
代码:
- 随便一个英文key,推荐文件名:
- file: 你刚刚的文件.js
奥,上面有一个栗子,别复制它的格式,可以删掉。然后重载PAPI,接着你就可以在一些地方使用
代码:
- %javascript_你的key%
就可以使用你自定义的变量了。现在还不赶紧测试测试?xD
Path 4 - 更多骚操作
2楼更呗
咱占个位位置先,咱更不更咱也不知道,反正咱先看看
看看是不是能出个当变量符值为空时默认输出为空
变量符有默认返回内容时在原基础上增加字符的操作
变量符有默认返回内容时在原基础上增加字符的操作
本帖最后由 Link和glx 于 2020-4-23 11:38 编辑
我使用的JavaScript输出的变量有时会乱跳,比如我写个一个[血量占位符]和[等级占位符]显示
使用%javascript_血量占位符%它有时会显示等级的占位符,而且显示的是其他玩家的数值
玩家越多越会出现这种情况
我使用的JavaScript输出的变量有时会乱跳,比如我写个一个[血量占位符]和[等级占位符]显示
使用%javascript_血量占位符%它有时会显示等级的占位符,而且显示的是其他玩家的数值
玩家越多越会出现这种情况
Link和glx 发表于 2020-4-23 11:37
我使用的JavaScript输出的变量有时会乱跳,比如我写个一个[血量占位符]和[等级占位符]显示
使用%javascript ...
方法名不能相同,就是main()那个
还有你把源码贴一下我给你看看
请问 js 功能可以访问 物品的Lore内容进行判断吗
比如我要判断手中的[ 数值: 10 ] 然后在多行lore中读取本行
比如我要判断手中的[ 数值: 10 ] 然后在多行lore中读取本行