本帖最后由 FireworkPolymer 于 2021-7-7 13:51 编辑
站内搬运:https://www.mcbbs.net/thread-1218548-1-1.html
———————————————————————————————————————————————————————————
站内搬运:https://www.mcbbs.net/thread-1218548-1-1.html
———————————————————————————————————————————————————————————
起步———————————————————————————————————————————————————————————
安装:将PlaceholderAPI和RocketPlaceholder下载并放入插件文件夹警告:如果你的Java版本在1.11以上请安装JShader.(对,起步就这么简单)
———————————————————————————————————————————————————————————
配置———————————————————————————————————————————————————————————用类似这种配置你就可以创建出一个全局变量更多信息详见权限条件
JavaScript支持
[!]在RP1.9.1以后你才能用JavaScript
———————————————————————————————————————————————————————————
自定义条件———————————————————————————————————————————————————————————
使用RocketPlaceholders你就可以使用自定义条件来控制变量显示
请在此处查看条件种类(链接已失效)
创建一个条件
这是一个创建自定义条件的例子
让我们从这里入门,我们首先来添加一个权限条件
现在我们加入条件节段,添加一个权限(PERMISSION)类型和一个数值
条件的优先度基于它的排列顺序,比如下面这样:
如果玩家同时拥有rocketplaceholder.example和rocketplaceholder.example2权限的话,显示的文字将会是第一个条件,因为它在最顶上
你可以在接下来几部分里查看其他条件的详细用法
———————————————————————————————————————————————————————————
JavaScript条件———————————————————————————————————————————————————————————
使用它来给你的变量使用一些各种各样的条件你有两种变量: Player(玩家) (代表Player)和Server(服务器) (代表Server).现在你可以创建一个javascript表达式来让它返回一个boolean值(true或者false).只需把种类(type)设置为JAVASCRIPT然后写下表达式就行了.下方是个例子:
———————————————————————————————————————————————————————————
金钱条件———————————————————————————————————————————————————————————[!]这个条件需要Vault插件作为前置和支持经济功能的插件(比如EssentialsX)
如果你想要创建一个金钱条件的变量,请使用MONEY种类,然后输入一个数值
[!]不要使用用负号开头的数值
例子:
———————————————————————————————————————————————————————————
物品条件———————————————————————————————————————————————————————————
使用这个条件你可以检查玩家是否有特定需求的物品
现在你有下面几个选项
[必需]物品种类(Material)
使用这个选项来检查玩家是否有这种物品,在此处查看列表
[可选]物品名称(Name)
顾名思义
[可选]物品描述(Lore)
物品的描述,比如:
[可选]物品颜色(Colors)
如果设置为true,颜色代码(类似&a)将会被转换和显示
默认:false
下方是个完整的例子:
———————————————————————————————————————————————————————————
权限条件———————————————————————————————————————————————————————————
这个条件很容易用,看下方例子就懂了
———————————————————————————————————————————————————————————
权限组条件———————————————————————————————————————————————————————————
[!]这个条件需要Vault插件作为前置和支持权限功能的插件(比如LuckPerms)
这个条件一样很容易用,也只要看下例子就会了
此条件已被分开,请查看前面的其他自定义条件
还是留个原文的例子在这
———————————————————————————————————————————————————————————
MySQL支持———————————————————————————————————————————————————————————
如何在服务器之间同步您的变量
1.填写以下链接表单(在插件文件中)
2.选择一个主服务器
关于主服务器的信息请看 MySQL F.A.Q
3.(重新)启动你的服务器
———————————————————————————————————————————————————————————
MySQL F.A.Q———————————————————————————————————————————————————————————
1.MySQL与yml有什么不同?
MySQL可以让你在不同的服务器之间同步你的变量
2.主服务器是什么?
主服务器会把它的变量放到数据库中,其他的服务器会从它的数据库中复制变量并放到自己的数据库中
只有一个服务器可以成为主服务器
3.MySQL会导致卡顿吗?
不会
4.如果我用的是MySQL,那么我的配置文件中的变量会被读取吗?
会的,如果你不是主服务器的话,那么你配置文件和数据库中的变量都会被读取
5.我怎么只使用数据库中的变量而不使用配置文件中的?
把配置文件中的变量删掉就行了
———————————————————————————————————————————————————————————
API使用———————————————————————————————————————————————————————————
如何使用API?
将本插件作为前置:
Gradle:
Maven:
手动下载:点击此处下载
获取API:
如何添加变量:
不带权限的:
带权限的:
如何获取所有变量:
内部变量:
外部变量:
由API获取的变量不会同步到MySQL中
CookBook:在此处查看
Javcadocs
https://ci.codemc.io/job/lorenzo0111/job/RocketPlaceholders/
你怎么看到这一页的?
站内搬运:https://www.mcbbs.net/thread-1218548-1-1.html
———————————————————————————————————————————————————————————
起步
———————————————————————————————————————————————————————————
安装:将PlaceholderAPI和RocketPlaceholder下载并放入插件文件夹
警告:如果你的Java版本在1.11以上请安装JShader.
(对,起步就这么简单)2021.12 数据,可能有更多内容
站内搬运:https://www.mcbbs.net/thread-1218548-1-1.html
———————————————————————————————————————————————————————————
起步———————————————————————————————————————————————————————————
安装:将PlaceholderAPI和RocketPlaceholder下载并放入插件文件夹警告:如果你的Java版本在1.11以上请安装JShader.(对,起步就这么简单)
———————————————————————————————————————————————————————————
配置———————————————————————————————————————————————————————————
代码:
- #
- #
- # ______ _ _ _
- # |__ \| | | | | | | |
- # | |__) | | __ ____ ___| |__ ___ | | __| | ___ _ __ ___
- # |___/| |/ _` |/ __/ _ \ '_ \ / _ \| |/ _` |/ _ \ '__/ __|
- # | | | | (_| | (_|__/ | | | (_) | | (_| |__/ |\__ \
- # |_| |_|\__,_|\___\___|_| |_|\___/|_|\__,_|\___|_||___/
- #
- #
- # RocketPlaceholders插件提示前缀
- prefix: "&c&lRocket&e&lPlaceholders &f&l»&r"
- # RocketPlaceholders的自定义变量
- placeholders:
- 0: #千万不要使用0号(为什么?)
- placeholder: "test" #比如说 "test" = %rp_test%
- text: "this is a test" #比如说 "this is a test" = 输出: "this is a test" (对于没有权限的人来说是这样)
- permissions:
- 1:
- permission: "example.1"
- text: "this is a secret example" #对于有上方权限的人来说是这条信息
代码:
- 1:
- placeholder: "test"
- text: "This is a test"
JavaScript支持
代码:
- 0: #不要使用0号
- placeholder: "test" #ex "test" = %rp_test%
- text: "'Hello World'"
- parsejs: true #这里就是使用了
———————————————————————————————————————————————————————————
自定义条件———————————————————————————————————————————————————————————
使用RocketPlaceholders你就可以使用自定义条件来控制变量显示
请在此处查看条件种类(链接已失效)
创建一个条件
这是一个创建自定义条件的例子
让我们从这里入门,我们首先来添加一个权限条件
代码:
- 1:
- placeholder: "test"
- text: "这是个例子"
现在我们加入条件节段,添加一个权限(PERMISSION)类型和一个数值
代码:
- conditions: #把它加到上面的例子后
- permissionExample:
- type: PERMISSION
- value: "rocketplaceholder.example"
- text: "条件例子" #有这个权限后显示的文字
条件的优先度基于它的排列顺序,比如下面这样:
代码:
- conditions:
- 1:
- type: PERMISSION
- value: "rocketplaceholder.example"
- text: "第一个条件"
- 2:
- type: PERMISSION
- value: "rocketplaceholder.example2"
- text: "第二个条件"
如果玩家同时拥有rocketplaceholder.example和rocketplaceholder.example2权限的话,显示的文字将会是第一个条件,因为它在最顶上
你可以在接下来几部分里查看其他条件的详细用法
———————————————————————————————————————————————————————————
JavaScript条件———————————————————————————————————————————————————————————
使用它来给你的变量使用一些各种各样的条件你有两种变量: Player(玩家) (代表Player)和Server(服务器) (代表Server).现在你可以创建一个javascript表达式来让它返回一个boolean值(true或者false).只需把种类(type)设置为JAVASCRIPT然后写下表达式就行了.下方是个例子:
代码:
- conditions:
- moneyExample:
- type: JAVASCRIPT
- value: "Player.hasPermission('example.permission');"
- text: "文字"
———————————————————————————————————————————————————————————
金钱条件———————————————————————————————————————————————————————————[!]这个条件需要Vault插件作为前置和支持经济功能的插件(比如EssentialsX)
如果你想要创建一个金钱条件的变量,请使用MONEY种类,然后输入一个数值
[!]不要使用用负号开头的数值
例子:
代码:
- conditions:
- moneyExample:
- type: MONEY
- value: 10
- text: "十块钱买个教训!"
———————————————————————————————————————————————————————————
物品条件———————————————————————————————————————————————————————————
使用这个条件你可以检查玩家是否有特定需求的物品
现在你有下面几个选项
[必需]物品种类(Material)
使用这个选项来检查玩家是否有这种物品,在此处查看列表
[可选]物品名称(Name)
顾名思义
[可选]物品描述(Lore)
物品的描述,比如:
代码:
- lore:
- - "第一行"
- - "第二行"
[可选]物品颜色(Colors)
如果设置为true,颜色代码(类似&a)将会被转换和显示
默认:false
下方是个完整的例子:
代码:
- conditions:
- itemExample:
- type: ITEM
- material: STONE #检测你有没有石头
- name: "&cExample" #这个石头是不是叫 Example(颜色为红色,或者说粉红色,代码模式不能显示颜色)
- lore:
- - "&aExample line" #这个石头是不是包含一个颜色为绿色的Example line的描述
- colors: true #要使用颜色代码就开启它,否则他就会检测这个物品是不是叫&cExample之类的
- text: "Example condition text" #检测通过后显示文本
———————————————————————————————————————————————————————————
权限条件———————————————————————————————————————————————————————————
这个条件很容易用,看下方例子就懂了
代码:
- conditions:
- permissionExample:
- type: PERMISSION #设置成这个种类
- value: "example.permission" #你需要的权限
- text: "Example condition text" #符合权限显示的文本
———————————————————————————————————————————————————————————
权限组条件———————————————————————————————————————————————————————————
[!]这个条件需要Vault插件作为前置和支持权限功能的插件(比如LuckPerms)
这个条件一样很容易用,也只要看下例子就会了
代码:
- conditions:
- permissionExample:
- type: GROUP #设置成这个种类
- value: "ExampleGroup" #哪个权限组能看
- text: "Example condition text" #符合条件显示的文本
此条件已被分开,请查看前面的其他自定义条件
还是留个原文的例子在这
代码:
- 0:
- placeholder: "example"
- text: "This is an example"
- permissions:
- 1:
- permission: "example.example"
- text: "Example"
- 2:
- permission: "example.2"
- text: "Example 2"
———————————————————————————————————————————————————————————
MySQL支持———————————————————————————————————————————————————————————
如何在服务器之间同步您的变量
1.填写以下链接表单(在插件文件中)
代码:
- mysql:
- # 如果设置为false那么就不会同步
- enabled: false
- # 主服务器(main)是其他所有变量被创建的地方,开启则将此服务器作为主服务器
- main: false
- # 数据库信息
- ip: 0.0.0.0
- port: 3306
- username: "root"
- password: "" # 没有请留空
- database: "rocketplaceholders"
2.选择一个主服务器
关于主服务器的信息请看 MySQL F.A.Q
3.(重新)启动你的服务器
———————————————————————————————————————————————————————————
MySQL F.A.Q———————————————————————————————————————————————————————————
1.MySQL与yml有什么不同?
MySQL可以让你在不同的服务器之间同步你的变量
2.主服务器是什么?
主服务器会把它的变量放到数据库中,其他的服务器会从它的数据库中复制变量并放到自己的数据库中
只有一个服务器可以成为主服务器
3.MySQL会导致卡顿吗?
不会
4.如果我用的是MySQL,那么我的配置文件中的变量会被读取吗?
会的,如果你不是主服务器的话,那么你配置文件和数据库中的变量都会被读取
5.我怎么只使用数据库中的变量而不使用配置文件中的?
把配置文件中的变量删掉就行了
———————————————————————————————————————————————————————————
API使用———————————————————————————————————————————————————————————
如何使用API?
将本插件作为前置:
Gradle:
代码:
- repositories {
- maven {
- url = uri('https://repo.codemc.org/repository/maven-public/')
- }
- }
- dependencies {
- compileOnly 'me.Lorenzo0111:RocketPlaceholders:VERSION'
- }
Maven:
代码:
- <repositories>
- <repository>
- <id>codemc-repo</id>
- <url>https://repo.codemc.org/repository/maven-public/</url>
- </repository>
- </repositories>
- <dependencies>
- <dependency>
- <groupId>me.Lorenzo0111</groupId>
- <artifactId>RocketPlaceholders</artifactId>
- <version>VERSION</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
手动下载:点击此处下载
获取API:
代码:
- RocketPlaceholdersAPI api = Bukkit.getServicesManager().load(RocketPlaceholdersAPI.class);
- if (api != null) {
- this.getLogger().info("RocketPlaceholders hooked!");
- } else {
- this.getLogger().severe("Unable to find RocketPlaceholdersAPI, disabling..");
- this.getServer().getPluginManager().disablePlugin(this);
- }
如何添加变量:
不带权限的:
代码:
- this.getAPI().addPlaceholder(new PlaceholderBuilder("identifier", "text"));
带权限的:
代码:
- this.api.addPlaceholder(new PlaceholderBuilder(new PlaceholderBuilder("identifier", "text").createPermissionNode("permission.example", "secret text"));
如何获取所有变量:
内部变量:
代码:
- this.getAPI().getInternalPlaceholders().getStorageManager().getInternalPlaceholders();
外部变量:
代码:
- this.getAPI().getInternalPlaceholders().getStorageManager().getExternalPlaceholders().getHashMap();
由API获取的变量不会同步到MySQL中
CookBook:在此处查看
Javcadocs
https://ci.codemc.io/job/lorenzo0111/job/RocketPlaceholders/
你怎么看到这一页的?
可以说明一下在哪些文件更改吗