kether教学 & 修复构建 Warnings & 优化部分基岩版文档语句 (#158)
* trm语法提示插件 * kether教学 * 修复构建 * 修复构建 * 修复构建 * 修复构建 * [Postyizhan 分支] 修复构建 Warnings & 优化部分基岩版文档语句 (#159) * 补上上次忘记的链接 * 错字修复 * 这俩怎么不打勾 * 修复构建 Warnings & 优化部分基岩版文档语句 --------- Co-authored-by: postyizhan <185839426@qq.com> --------- Co-authored-by: “postyizhan” <“185839426@qq.com”> Co-authored-by: 梦涵LOVE <2193438288@qq.com>
Before Width: | Height: | Size: 291 KiB After Width: | Height: | Size: 282 KiB |
Before Width: | Height: | Size: 294 KiB After Width: | Height: | Size: 453 KiB |
@ -61,13 +61,13 @@ import TabItem from '@theme/TabItem';
|
||||
## 寿终正寝の加载器
|
||||
<Tabs queryString="plugins-loader">
|
||||
<TabItem value="liteloader" label="LiteLoader">
|
||||
| 插件加载器 | 别名:LL,LLv2,LXL([详情点我](#litexloader-合并至-liteloader2022-年-2-月-12-日)) |
|
||||
| 插件加载器 | 别名:LL,LLv2([详情点我](#litexloader-合并至-liteloader2022年2月12日)) |
|
||||
| --- | --- |
|
||||
| 名称 | [LiteLoaderBDS](https://github.com/LiteLDev/LiteLoaderBDSv2/) |
|
||||
| 作者 | [LiteLDev](https://github.com/LiteLDev) |
|
||||
| 介绍 | LiteLoaderBDSv2 是一款专为 BDS 编写的插件加载器,旨在弥补官方行为包开发接口的不足。LiteLoaderBDSv2 支持多种编程语言编写插件,并保证了插件开发与维护的便利性 |
|
||||
| 推荐与否 | 非常不推荐 |
|
||||
| 理由 | 插件生态无可厚非,没人会否定它的巅峰时代,可惜岁月不饶人啊...如果你服务器愿意在此版本区间便罢了,因为不好找插件了 |
|
||||
| 理由 | 插件生态无可厚非,没人会否定它的巅峰时代,可惜岁月不饶人啊...如果你服务器愿意在此版本区间便罢了,因为不好找插件了([详情点我](#liteloader-宣布停更2023年10月份)) |
|
||||
| 下载 | [GitHub 下载](https://github.com/LiteLDev/LeviLamina/releases) |
|
||||
| 支持的 MC 版本 | 1.16.210-1.20.31.01(已存档)[^Archived] |
|
||||
</TabItem>
|
||||
@ -78,7 +78,7 @@ import TabItem from '@theme/TabItem';
|
||||
| 作者 | [LiteDev](https://github.com/LiteLDev) |
|
||||
| 介绍 | LiteXLoader 是一款专为 LiteLoader 编写的拓展类插件加载器,旨在弥补 LiteLoader 可开发语言的不足。LiteXLoader 支持多种编程语言编写插件,并保证了插件开发与维护的便利性,例如拓展支持 Node-Js、Python、Qucik-Js 的开发 |
|
||||
| 推荐与否 | 非常不推荐 |
|
||||
| 理由 | 后续合并到 LiteLoader 中。[详情点我](#litexloader-合并至-liteloader2022-年-2-月-12-日) |
|
||||
| 理由 | 后续合并到 LiteLoader 中。[详情点我](#litexloader-合并至-liteloader2022年2月12日) |
|
||||
| 下载 | [Github 下载](https://github.com/EndstoneMC/endstone/releases) |
|
||||
| 支持的 MC 版本 | 1.20.71 - 1.21.2(已存档)[^Archived] |
|
||||
</TabItem>
|
||||
@ -86,7 +86,7 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
## 相关历史
|
||||
|
||||
### PDB 事件
|
||||
### PDB 事件(2024年6月6日)
|
||||
|
||||
此文段部分引用自 B站 Dofes 与 MRUIAW 的合作视频,稍作了修改。
|
||||
[Mojang删除了对基岩版最重要的东西...](https://www.bilibili.com/video/BV1GS421o7Dz/)
|
||||
@ -112,7 +112,7 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
不过,[EndStone](./plugins-loader-choose.md?plugins-loader=endstone#热门加载器) 的出现貌似给基岩版服务端带来了希望。
|
||||
|
||||
### LiteLoader 宣布停更(2023 年 10 月份)
|
||||
### LiteLoader 宣布停更(2023年10月份)
|
||||
LiteLoaderBDS 最初是基于 BedrockX 开发的,在 2.0 版本进行了完全重写。它一直处于存档状态,是以前最流行的 BDS 插件加载器之一。最后的版本是 2.16.2,发布于 2023 年 10 月 9 日,支持 BDS 1.20.32 版本。
|
||||
|
||||
一代骄子难道就此陨落了?
|
||||
@ -122,7 +122,7 @@ LiteLoaderBDS 最初是基于 BedrockX 开发的,在 2.0 版本进行了完全
|
||||
所以并不是 LiteDev 扔下史山跑路了(这是官方原话自嘲),而是着手重构 LiteLoader,预计在未来发布 LiteLoaderBDSV3,即 LeviLamina。
|
||||
|
||||
|
||||
### LiteXLoader 合并至 LiteLoader(2022 年 2 月 12 日)
|
||||
### LiteXLoader 合并至 LiteLoader(2022年2月12日)
|
||||
LiteXLoader 于 2022 年 2 月 12 日 合并至 LiteLoader 项目,LXL成为LL的一个子模块。 LiteLoaderBDS将继续更新,作为C++、Go、Js、Lua和其他语言的通用加载器。所有以前的LXL插件将继续在新的LL版本下正常运行,所有现有的API将保持不变。
|
||||
|
||||
|
||||
|
@ -18,7 +18,7 @@ sidebar_position: 1
|
||||
|
||||
**建议阅读**
|
||||
|
||||
- [TODO](#插件) - TODO...
|
||||
- [TODO](#) - TODO...
|
||||
|
||||
import DocCardList from '@theme/DocCardList';
|
||||
|
||||
|
@ -6,7 +6,7 @@ sidebar_position: 2
|
||||
|
||||
# Velocity
|
||||
|
||||
[点此跳转到官方英文文档](https://docs.papermc.io/velocity)
|
||||
[点此跳转到官方英文文档](https://docs.papermc.io/velocity)
|
||||
|
||||
# 关于 Velocity 的介绍
|
||||
|
||||
@ -88,7 +88,7 @@ Can't connect to server lobby: This server requires you to connect with Veloci
|
||||
一句话, Mod 太多太大导致连接时间延长了。你可以减少服务器的 Mod 数量或者在 Velocity 配置文件中设置 `read-timeout` 的值,同时在你的 Forge 子服的启动参数中添加 `-Dfml.readTimeout` 参数来提高阈值。比如,你想设置你的 readTimeout 时间到 120 秒
|
||||
那么你可以设置:
|
||||
|
||||
`read-timeout = 120000` (单位:毫秒)
|
||||
`read-timeout = 120000` (单位:毫秒)
|
||||
|
||||
`-Dfml.readTimeout=120` (单位:秒)
|
||||
|
||||
@ -98,7 +98,7 @@ Can't connect to server lobby: This server requires you to connect with Veloci
|
||||
|
||||
不行,至少现在不行,你只能在 `velocity.toml` 中设置一个单一的转发模式
|
||||
|
||||
关于各个不同的转发模式,可以看到这里 [搭建](docs-java\advance\cross-server\build-up\Velocity\build-up.md##子服配置)
|
||||
关于各个不同的转发模式,可以看到这里 [搭建](./build-up.md#子服配置)
|
||||
|
||||
有大佬提出了关于这个问题的 [PR](https://github.com/PaperMC/Velocity/pull/1357)
|
||||
|
||||
|
@ -11,11 +11,11 @@ sidebar_position: 1
|
||||
|
||||
## HuskChat
|
||||
|
||||
同 [Velocity 一侧的讲解](velocity.md#HuskChat)
|
||||
同 [Velocity 一侧的讲解](velocity.md#huskchat)
|
||||
|
||||
## Sonar
|
||||
|
||||
同 [Velocity 一侧的讲解](velocity.md#Sonar)
|
||||
同 [Velocity 一侧的讲解](velocity.md#sonar)
|
||||
|
||||
## AuthMeBungee
|
||||
|
||||
|
BIN
docs-java/advance/kether/_images/if_1.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
docs-java/advance/kether/_images/if_2.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
docs-java/advance/kether/_images/if_3.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
docs-java/advance/kether/_images/math_1.png
Normal file
After Width: | Height: | Size: 9.0 KiB |
BIN
docs-java/advance/kether/_images/result.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
docs-java/advance/kether/_images/vul-check.png
Normal file
After Width: | Height: | Size: 7.9 KiB |
BIN
docs-java/advance/kether/_images/vul-color.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
docs-java/advance/kether/_images/vul-papi.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
docs-java/advance/kether/_images/vul-perm.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
docs-java/advance/kether/_images/vul-permNot_1.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
docs-java/advance/kether/_images/vul-permNot_2.png
Normal file
After Width: | Height: | Size: 6.6 KiB |
BIN
docs-java/advance/kether/_images/vul-tell.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
docs-java/advance/kether/_images/vul-tell_color.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
docs-java/advance/kether/_images/vul-tell_name.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
docs-java/advance/kether/_images/vul-tell_noColor.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
docs-java/advance/kether/_images/vul-tell_papiNoInline.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
docs-java/advance/kether/_images/vul-tell_papiWithInline.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
docs-java/advance/kether/_images/vul-tell_papiWithJoin.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
docs-java/advance/kether/_images/vul-tell_tell.png
Normal file
After Width: | Height: | Size: 9.0 KiB |
BIN
docs-java/advance/kether/_images/web-tell.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
docs-java/advance/kether/_images/冒汗.jpg
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
docs-java/advance/kether/_images/正经笑.jpg
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
docs-java/advance/kether/_images/痴呆.jpg
Normal file
After Width: | Height: | Size: 2.5 KiB |
184
docs-java/advance/kether/basic.md
Normal file
@ -0,0 +1,184 @@
|
||||
---
|
||||
title: 基础
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# 动作
|
||||
|
||||
> 动作,又称语句
|
||||
|
||||
我们先了解几个简单的语句
|
||||
|
||||
## 输出文本(tell)
|
||||
|
||||
> https://kether.tabooproject.org/list.html#Tell
|
||||
|
||||
![](_images/vul-tell.png)
|
||||
|
||||
:::note
|
||||
|
||||
非调试(/vul evel)是不会看到这个的
|
||||
|
||||
![](_images/result.png)
|
||||
|
||||
也就是说你的玩家在用你写好的配置时是不会看到这个信息的
|
||||
|
||||
:::
|
||||
|
||||
然而,他不能搞颜色
|
||||
|
||||
![](_images/vul-tell_noColor.png)
|
||||
|
||||
## 彩色(color Text)
|
||||
|
||||
> https://kether.tabooproject.org/list.html#Color_Text
|
||||
|
||||
![](_images/vul-color.png)
|
||||
|
||||
我们可以用 color 动作搞颜色
|
||||
|
||||
这里要用 `" "` 把要打印的信息包裹起来
|
||||
|
||||
否则他会把这个当成变量,具体的会在后面讲到
|
||||
|
||||
:::note
|
||||
|
||||
值得一提的是,Invero插件会自动翻译tell中的颜色,内联,papi
|
||||
|
||||
:::
|
||||
|
||||
## 语句的连用
|
||||
|
||||
![](_images/vul-tell_color.png)
|
||||
|
||||
我们同时使用了 tell 和 color 两个语句,打印了带颜色的信息给玩家看
|
||||
|
||||
## 语句的返回值
|
||||
|
||||
![](_images/vul-color.png)
|
||||
|
||||
在使用 `/vul evel` 时,语句的返回值会在 `< > Result:` 显示
|
||||
|
||||
于是我们可以知道,执行顺序为:color -> tell
|
||||
|
||||
那么如果我们把 `tell` 的返回值打印呢
|
||||
|
||||
![](_images/vul-tell_color.png)
|
||||
|
||||
![](_images/痴呆.jpg)
|
||||
|
||||
## \{action\},\{token\}和Literal
|
||||
|
||||
查阅 https://kether.tabooproject.org/list.html 我们可以发现
|
||||
|
||||
它给出的示例中经常出现 `{action}` 和 `{token}`
|
||||
|
||||
比如 `Tell` 动作的:
|
||||
|
||||
![](_images/web-tell.png)
|
||||
|
||||
用我浅显的理解:
|
||||
|
||||
- `{action}` 这里要写一个语句
|
||||
- `{token}` 写固定不变的内容
|
||||
|
||||
所以在 [语句的连用](#语句的连用) 那里,我们可以在 `tell` 后面接一个 `color` 动作
|
||||
|
||||
那么问题来了,为什么在 [Tell](#输出文本tell) 那里可以接一句话(此处写了个1)?
|
||||
|
||||
![](_images/vul-tell.png)
|
||||
|
||||
因为在这个示例中,kether找不到名为 `1` 的动作,所以用了 `Literal` 动作将他转为字符串
|
||||
|
||||
> https://kether.tabooproject.org/list.html#Literal
|
||||
|
||||
它给出的使用方式:`literal {token} | {token}`
|
||||
|
||||
两种使用方式,特别是后一种,你随便写点啥,只要不是已有的动作,它最后就会被转为字符串
|
||||
|
||||
## 变量(PlaceholderAPI)
|
||||
|
||||
> https://kether.tabooproject.org/list.html#PlaceholderAPI
|
||||
|
||||
使用一个papi变量
|
||||
|
||||
![](_images/vul-papi.png)
|
||||
|
||||
```
|
||||
papi {action} | placeholder {action}
|
||||
```
|
||||
|
||||
papi是简写
|
||||
|
||||
## inline和join
|
||||
|
||||
![](_images/vul-tell_papiNoInline.png)
|
||||
|
||||
假如你用的那个插件不会给你自动翻译语句中的papi,阁下又当如何应对?
|
||||
|
||||
> https://kether.tabooproject.org/list.html#Inline
|
||||
|
||||
`内联(inline)` 语句!在一段文本中插入 kether !
|
||||
|
||||
用法为:
|
||||
|
||||
```
|
||||
inline "阿巴阿巴{{你要用的kether}}qwq"
|
||||
```
|
||||
|
||||
比如上面的案例中,可以这样做
|
||||
|
||||
```
|
||||
/vul eval tell inline "我叫{{papi %player_name%}},我今年{{papi %player_level%}}级了"
|
||||
```
|
||||
|
||||
![](_images/vul-tell_papiWithInline.png)
|
||||
|
||||
> https://kether.tabooproject.org/list.html#Join
|
||||
|
||||
而 `join` 则是可以把多个语句拼接在一起,很多时候 `inline` 和 `join` 可以互相替代
|
||||
|
||||
用法为:
|
||||
```
|
||||
join [ 语句1 语句2 语句3 更多语句 ]
|
||||
```
|
||||
语句之间要空格
|
||||
|
||||
在上面的案例中,可以这样做
|
||||
|
||||
```
|
||||
/vul eval tell join [ "我叫" papi %player_name% ",我今年" papi %player_level% "级了" ]
|
||||
```
|
||||
|
||||
![](_images/vul-tell_papiWithJoin.png)
|
||||
|
||||
## 玩家名称
|
||||
|
||||
### Name
|
||||
|
||||
> https://kether.tabooproject.org/list.html#Name
|
||||
|
||||
```
|
||||
player [(display|list) ] name
|
||||
```
|
||||
|
||||
### Sender
|
||||
|
||||
> 该语句没有在官方文档中给出
|
||||
|
||||
> 它的作用是获取脚本执行者的名字。跟 player name 作用类似,它也能用来获取玩家的名字,并且都没有参数。
|
||||
> 除此之外,当控制台作为脚本执行者时,它还能获取控制台的名字:console,只不过这并没有什么用而已。
|
||||
> 但它的优点在于不依赖玩家执行,相对来说会比 player name 更安全保守一些。
|
||||
> 摘自 https://www.yuque.com/sacredcraft/kether/action-start#su0PY
|
||||
|
||||
### papi %player_name%
|
||||
|
||||
你已经见过了
|
||||
|
||||
### 使用案例
|
||||
|
||||
```
|
||||
/vul eval tell inline "我叫{{player name}}!我叫{{sender}}!!我真的叫{{papi %player_name%}}!!!"
|
||||
```
|
||||
|
||||
![](_images/vul-tell_name.png)
|
251
docs-java/advance/kether/if.md
Normal file
@ -0,0 +1,251 @@
|
||||
---
|
||||
title: 逻辑判断
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
# 逻辑判断
|
||||
|
||||
## 布尔值(boolean)
|
||||
|
||||
它只有两个取值,即 **真(true)** 和 **假(false)**
|
||||
|
||||
或者说,**是(true)** 和 **否(false)**
|
||||
|
||||
## 权限判断(Permission)
|
||||
|
||||
> https://kether.tabooproject.org/list.html#Permission
|
||||
|
||||
判断玩家是否拥有某权限,如果是,则返回 **true** ,否,则返回 **false**
|
||||
|
||||
![](_images/vul-perm.png)
|
||||
|
||||
我是op,所以我拥有此权限,返回了 true
|
||||
|
||||
同 [PlaceholderAPI](basic.md#变量placeholderapi) 一样,**Permission** 也有一个简写 **perm**
|
||||
|
||||
## 判断为否(Not)
|
||||
|
||||
上面是判断拥有此权限,那么我如何判断不拥有此权限呢?
|
||||
|
||||
![](_images/vul-permNot_1.png)
|
||||
|
||||
![](_images/正经笑.jpg)
|
||||
|
||||
咳咳,开玩笑的,驿站怎么可能用过这么傻逼的写法呢
|
||||
|
||||
![](_images/冒汗.jpg)
|
||||
|
||||
> https://kether.tabooproject.org/list.html#Not
|
||||
|
||||
> 判断动作的返回值是否为否,即否定动作的结果。
|
||||
|
||||
![](_images/vul-permNot_2.png)
|
||||
|
||||
因为我拥有此权限,所以 prem 判断是 true
|
||||
|
||||
接着因为 not,最后的结果是 false
|
||||
|
||||
prem -> not
|
||||
|
||||
## 判断(Check)
|
||||
|
||||
> https://kether.tabooproject.org/list.html#Check
|
||||
|
||||
```
|
||||
check 动作1 {symbol} 动作2
|
||||
```
|
||||
|
||||
判断 动作1 与 动作2 的关系
|
||||
|
||||
具体判断关系由中间的符号参数 Symbol 决定
|
||||
|
||||
1. 等于(==、is):指两个值字面意思上相同。
|
||||
2. 不等于(!=、not):指两个值字面意思上不同。
|
||||
3. 相似等于(=?、is?):指两个值字面意思上忽略大小写的条件下相同。
|
||||
4. 绝对等于(=!、is!):指两个值内存路径上相同。
|
||||
5. 大于(>、gt):指第一个值大于第二个值。
|
||||
6. 大于等于(>=):指第一个值大于或等于第二个值。
|
||||
7. 小于(\<、lt):指第一个值小于第二个值。
|
||||
8. 小于等于(\<=):指第一个值小于或等于第二个值。
|
||||
9. 右含左(in):左侧 action A 的返回值是否属于右侧 action B 返回值的内容之一
|
||||
10. 左含右(has):左侧 action A 是否含有右侧 action B 内容
|
||||
|
||||
![](_images/vul-check.png)
|
||||
|
||||
## 分支判断(if esle)
|
||||
|
||||
> https://kether.tabooproject.org/list.html#If_&_Else
|
||||
|
||||
### 单分支
|
||||
|
||||
```
|
||||
/vul eval if 条件 then 执行的动作
|
||||
```
|
||||
|
||||
条件判断为 **true** 则执行 then 后面的动作
|
||||
|
||||
注:这里的条件也是指动作,即 动作的返回值为 **true** 则执行 then 后面的动作
|
||||
|
||||
![](_images/if_1.png)
|
||||
|
||||
上面只是执行单个动作,那么,如何让他判断 **true** 后执行多行动作?
|
||||
|
||||
```
|
||||
if 条件 then {
|
||||
语句1
|
||||
语句2
|
||||
语句3
|
||||
}
|
||||
```
|
||||
|
||||
### 双分支
|
||||
|
||||
```
|
||||
/vul eval if 条件 then true执行的动作 else false执行的动作
|
||||
```
|
||||
|
||||
- 条件为 true 执行 then 后面的动作
|
||||
- 条件为 false 执行 else 后面的动作
|
||||
|
||||
执行多行动作
|
||||
|
||||
```
|
||||
if 条件 then {
|
||||
语句1
|
||||
语句2
|
||||
} else {
|
||||
语句3
|
||||
语句4
|
||||
}
|
||||
```
|
||||
|
||||
### 多分支
|
||||
|
||||
if动作的连续使用
|
||||
|
||||
```
|
||||
/vul evel if 条件1 then 动作1 else if 条件2 then 动作2 else if 条件3 then 动作3
|
||||
```
|
||||
|
||||
多行语句
|
||||
```
|
||||
if 条件1 then {
|
||||
动作1
|
||||
动作2
|
||||
} else if 条件2 then {
|
||||
动作3
|
||||
动作4
|
||||
} else if 条件3 then {
|
||||
动作5
|
||||
动作6
|
||||
}
|
||||
```
|
||||
|
||||
## 多分支(Case & When)
|
||||
|
||||
> https://kether.tabooproject.org/list.html#Case_&_When
|
||||
|
||||
#### 单动作
|
||||
```
|
||||
if check player name == postyizhan then tell "是驿站!"
|
||||
else if check player name == lilingfeng then tell "是驿站的黑奴"
|
||||
else if check player name == MC_jiaolong then tell "这也是黑奴"
|
||||
else tell"这谁啊"
|
||||
```
|
||||
|
||||
上面的改成 Case & When 就是
|
||||
|
||||
```
|
||||
case player name [
|
||||
when postyizhan -> tell "是驿站!"
|
||||
when lilingfeng -> tell "是驿站的黑奴"
|
||||
when MC_jiaolong -> tell "这也是黑奴"
|
||||
else tell "这谁啊"
|
||||
]
|
||||
```
|
||||
|
||||
#### 多动作
|
||||
当然他也可以写多行动作
|
||||
|
||||
```
|
||||
case player name [
|
||||
when postyizhan -> {
|
||||
tell "是驿站!"
|
||||
tell "驿站请和我结婚"
|
||||
}
|
||||
when lilingfeng -> tell "是驿站的黑奴"
|
||||
when MC_jiaolong -> tell "这也是黑奴"
|
||||
else tell "这谁啊"
|
||||
]
|
||||
```
|
||||
|
||||
#### 逻辑判断
|
||||
他还可以进行逻辑判断!
|
||||
|
||||
单动作和多动作放一起展示了
|
||||
```
|
||||
case 1 [
|
||||
when < 10 -> {
|
||||
tell "这个数比10小"
|
||||
}
|
||||
when > 10 -> log "这个数比10大"
|
||||
else log "一样大"
|
||||
]
|
||||
```
|
||||
|
||||
## 多条件判断
|
||||
|
||||
### 全部满足(All)
|
||||
|
||||
> https://kether.tabooproject.org/list.html#All
|
||||
|
||||
> 判断动作列表的所有返回值是否均为是。
|
||||
|
||||
```
|
||||
all [ 动作1 动作2 动作3 更多 ]
|
||||
```
|
||||
|
||||
例如:
|
||||
```
|
||||
/vul eval if all [ perm vulpecula.command not perm luckperms.editor ] then tell 通过 else 不通过
|
||||
```
|
||||
|
||||
玩家拥有权限 vulpecula.command 没有权限 luckperms.editor 则通过,否则不通过
|
||||
|
||||
![](_images/if_2.png)
|
||||
|
||||
### 一个满足(Any)
|
||||
|
||||
> https://kether.tabooproject.org/list.html#Any
|
||||
|
||||
> 判断动作列表的所有返回值是否含有是。
|
||||
|
||||
```
|
||||
any [ 动作1 动作2 动作3 更多 ]
|
||||
```
|
||||
|
||||
例如:
|
||||
|
||||
```
|
||||
/vul eval if any [ perm vulpecula.command not perm luckperms.editor ] then tell 通过 else 不通过
|
||||
```
|
||||
|
||||
*玩家拥有权限 vulpecula.command* 和 *没有权限 luckperms.editor* 满足其中一个或多个就通过
|
||||
|
||||
![](_images/if_3.png)
|
||||
|
||||
### 妙妙写法
|
||||
|
||||
```
|
||||
all [ 条件1 条件2 ]
|
||||
any [ 条件1 条件2]
|
||||
### 等价于
|
||||
all [
|
||||
条件1
|
||||
条件2
|
||||
]
|
||||
any [
|
||||
条件1
|
||||
条件2
|
||||
]
|
||||
```
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: 数学运算
|
||||
sidebar_position: 2
|
||||
sidebar_position: 5
|
||||
---
|
||||
|
||||
# 数学运算
|
||||
@ -36,27 +36,25 @@ math / [ 6 2 ]
|
||||
math 1 + 3 * 5 / 6 - 2
|
||||
```
|
||||
|
||||
当然也可以用上一节学到的变量来运算
|
||||
|
||||
```
|
||||
/vul eval set a to 1 set b to 2 math &a - &b
|
||||
```
|
||||
|
||||
![](_images/math_1.png)
|
||||
|
||||
## calc
|
||||
|
||||
详细请查看:https://github.com/TabooLib/taboolib/blob/master/module/module-kether/src/main/kotlin/taboolib/module/kether/action/transform/ActionJexl3.kt
|
||||
|
||||
|
||||
- 加法:a + b
|
||||
- 减法:a - b
|
||||
- 乘法:a * b
|
||||
- 除法:a / b
|
||||
|
||||
- 幂运算(我测试不能使用):幂运算使用 `**` 符号,例如,计算 2 的 3 次方:2 ** 3 。
|
||||
|
||||
- 开方(我测试不能使用):JEX 支持开方操作,例如,计算 9 的平方根:sqrt(9) 。
|
||||
|
||||
- 取整(我测试不能使用):
|
||||
- 取整操作可以使用 floor()、ceil() 或 round() 函数。
|
||||
- floor(x):向下取整,返回不大于 x 的最大整数。
|
||||
- ceil(x):向上取整,返回不小于 x 的最小整数。
|
||||
- round(x):四舍五入,返回最接近 x 的整数。
|
||||
- 取余:取余操作使用 % 符号。例如,计算 10 除以 3 的余数:10 % 3。
|
||||
|
||||
当然也可以使用括号:
|
||||
|
||||
![](_images/括号.png)
|
||||
![](_images/括号.png)
|
||||
|
@ -13,5 +13,3 @@ kether 并不是一个插件,而是使用 Taboolib 框架开发的插件(如
|
||||
kether语句表:https://kether.tabooproject.org/list.html
|
||||
|
||||
vscode插件-kether动作补全:https://github.com/LiteCat0905/Kether-snippet
|
||||
|
||||
vscode插件-TrMenu v3语法提示:https://marketplace.visualstudio.com/items?itemName=hhhhhy.trmenu-helper
|
||||
|
46
docs-java/advance/kether/preparation.md
Normal file
@ -0,0 +1,46 @@
|
||||
---
|
||||
title: 准备
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# 安装教学插件
|
||||
|
||||
在本篇教程中,我将使用 [Vulpecula](https://www.yuque.com/lanscarlos/vulpecula-wiki-v2)
|
||||
|
||||
你可以点击 [此处](https://github.com/Lanscarlos/Vulpecula) 跳转到 GitHub ,从 Actions 中下载
|
||||
|
||||
或者加入他的 QQ交流群 759705478 从群文件下载
|
||||
|
||||
:::info
|
||||
|
||||
我们不学习此插件的更多使用方式
|
||||
|
||||
你只需要知道他可以 `/vul eval` 来执行 kether 和用他来注册命令
|
||||
|
||||
![](_images/vul-tell.png)
|
||||
|
||||
:::
|
||||
|
||||
:::info
|
||||
|
||||
**别的插件执行kether?**
|
||||
|
||||
好吧,如果你已经安装了其他可以用命令调试kether的插件......
|
||||
|
||||
**TrMenu v3**
|
||||
|
||||
> trm action 玩家ID 要执行的语句
|
||||
|
||||
**Invero**
|
||||
|
||||
> i dev runKether 要执行的语句
|
||||
|
||||
**chemdah**
|
||||
|
||||
> chs invoke tell 1
|
||||
|
||||
**其他插件**
|
||||
|
||||
> and more......
|
||||
|
||||
:::
|
54
docs-java/advance/kether/variable.md
Normal file
@ -0,0 +1,54 @@
|
||||
---
|
||||
title: 数据相关
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
# 数据相关
|
||||
|
||||
## 数据类型
|
||||
|
||||
<details>
|
||||
<summary>点击展开</summary>
|
||||
|
||||
资料来自 https://www.runoob.com/java/java-basic-datatypes.html
|
||||
|
||||
## int
|
||||
|
||||
最小值是 -2,147,483,648(-2^31);
|
||||
|
||||
最大值是 2,147,483,647(2^31 - 1);
|
||||
|
||||
## long
|
||||
|
||||
最小值是 -9,223,372,036,854,775,808(-2^63);
|
||||
|
||||
最大值是 9,223,372,036,854,775,807(2^63 -1);
|
||||
|
||||
## float
|
||||
|
||||
float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
|
||||
|
||||
float 在储存大型浮点数组的时候可节省内存空间;
|
||||
|
||||
## double
|
||||
|
||||
double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;
|
||||
浮点数的默认类型为 double 类型;
|
||||
|
||||
## boolean
|
||||
|
||||
boolean数据类型表示一位的信息;
|
||||
|
||||
只有两个取值:true 和 false;
|
||||
|
||||
这种类型只作为一种标志来记录 true/false 情况;
|
||||
|
||||
</details>
|
||||
|
||||
## 类型转换(Type)
|
||||
|
||||
> https://kether.tabooproject.org/list.html#Type
|
||||
|
||||
## 变量(Variable)
|
||||
|
||||
以后再写awa
|
@ -702,7 +702,7 @@ tick-inactive-villagers: true
|
||||
nearestlivingentitysensor: 40
|
||||
```
|
||||
|
||||
> 当 [Pufferfish's DAB](#dabenabled) 启用时,不建议修改该项任何默认值。
|
||||
> 当 [Pufferfish's DAB](#dab) 启用时,不建议修改该项任何默认值。
|
||||
|
||||
`acquirepoi`是村民最频繁的行为, 因此它的间隔已经大大增加了。 如果村民有寻路问题,请减少此项。
|
||||
|
||||
|
@ -11,23 +11,23 @@ sidebar_position: 1
|
||||
|
||||
在此之前,请一定查看 [优化误区](optimized-plugin.md),停止此类无效"优化",然后根据下面的步骤进行操作。
|
||||
|
||||
# 第一步 - Java 优化
|
||||
## 第一步 - Java 优化
|
||||
|
||||
为什么选择 Java 优化作为第一步 - 几乎任何情况下,服务器都会因为合适的 Java 受益,
|
||||
|
||||
仅仅需要你下载一个小小的 Java 安装程序,或者更改 JVM 参数(大白话来说就是开服参数)。
|
||||
|
||||
## 选择合适的 Java
|
||||
### 选择合适的 Java
|
||||
|
||||
参考[ Java 下载及安装](https://yizhan.wiki/NitWikit/preparation/choose-and-download-and-install-java/)安装合适的 Java
|
||||
|
||||
## JVM 参数优化
|
||||
### JVM 参数优化
|
||||
|
||||
可以在 [JVM 参数生成器](https://startmc.jakaco.xyz/)生成适合你服务器的基本 JVM 参数,然后复制并保存到你的启动脚本里,然后重启就完成了
|
||||
|
||||
别急,还有一些更高阶的参数。[JVM 优化](./jvm/jvm.md)
|
||||
|
||||
# 第二步 - 预生成
|
||||
## 第二步 - 预生成
|
||||
|
||||
什么是预生成 - 预生成就是让服务器在玩家进入之前,预先生成区块对应方块、结构等。
|
||||
|
||||
@ -39,7 +39,7 @@ sidebar_position: 1
|
||||
|
||||
预生成时应该注意,默认情况 1.20 原版 1w x 1w 的地图需要 4-5 GB 硬盘。应根据硬盘大小选择世界的预生成大小。
|
||||
|
||||
# 第三步 - 更换核心
|
||||
## 第三步 - 更换核心
|
||||
|
||||
在插件和配置层面能进行的优化其实不多(受限于 API 还有服务端核心),所以最好的方法是更换服务器核心。
|
||||
|
||||
@ -54,31 +54,31 @@ sidebar_position: 1
|
||||
|
||||
此处只是作为最基础的核心选择推荐,完整版请查看[核心选择](/docs-java/start/server-core-choose.md)
|
||||
|
||||
## Paper - 追求极致稳定 _推荐度 ★★★★☆_
|
||||
### Paper - 追求极致稳定 _推荐度 ★★★★☆_
|
||||
|
||||
如果是第一次开服,或者追求稳定,请使用 Paper 。任何时候想更换其他核心可以随时更换如 Purpur / Leaf 等核心。
|
||||
|
||||
## Purpur - 稳定性与性能最佳选择 _推荐度 ★★★★★_
|
||||
### Purpur - 稳定性与性能最佳选择 _推荐度 ★★★★★_
|
||||
|
||||
如果你并不是追求更极致的性能,Purpur 你最好的选择,只需要替换掉核心就可以,Purpur 兼容全部插件!!
|
||||
|
||||
## Leaf - 极致性能 _推荐度 ★★★★☆_
|
||||
### Leaf - 极致性能 _推荐度 ★★★★☆_
|
||||
|
||||
前往 Leaf 的 GitHub Action 下载最新核心,然后替换!!,Leaf 兼容你的绝大部分插件(已知仅有一个不兼容,但在插件的分支解决)
|
||||
|
||||
## Folia - 硬件利用率超高的高性能,但兼容性较差 _推荐度 ★★★☆☆_
|
||||
### Folia - 硬件利用率超高的高性能,但兼容性较差 _推荐度 ★★★☆☆_
|
||||
|
||||
如果你的服务器对插件的需求不大,或者你的插件已全部兼容 Folia ,那你就可以选择切换到这个核心,你的 tps 有绝对巨大的提升(甚至超过了 Leaf )
|
||||
|
||||
</details>
|
||||
|
||||
# 第四步 - 调整服务端配置
|
||||
## 第四步 - 调整服务端配置
|
||||
|
||||
目前,Bilibili 上面的配置都是很老的,不推荐使用
|
||||
|
||||
文档里的 [调服务端配置](go.md) 比较新,非常推荐
|
||||
|
||||
# 第五步 - 更换硬件
|
||||
## 第五步 - 更换硬件
|
||||
|
||||
**不要无脑换硬件!** 首先要知道自己的硬件瓶颈在哪里。如果 CPU 负荷过高,建议先排除 CPU 异常占用,再看 CPU 总体占用情况。一般来说服务器卡顿换 CPU 是最有效的,单核性能和 MC 服务器 TPS 几乎呈线性相关,但是换 CPU 几乎就相当于要换一台机器,迁移对于新手来说并不是易事。
|
||||
|
||||
@ -92,13 +92,13 @@ sidebar_position: 1
|
||||
|
||||
:::
|
||||
|
||||
# 第六步 - 更换操作系统
|
||||
## 第六步 - 更换操作系统
|
||||
|
||||
无论在性能还是稳定性, Linux 都比 Windows 更适合用于开服,对于 Linux 根据自己的使用经验选择即可,如果没有使用经验可以先使用 Ubuntu 等主流系统。
|
||||
|
||||
如果想要了解更多请前往进阶 [Linux 开服教程](https://yizhan.wiki/NitWikit/Sundry/Advance/Linux)
|
||||
|
||||
# 第七步 - 性能分析
|
||||
## 第七步 - 性能分析
|
||||
|
||||
**“马克思主义活的灵魂在于对具体问题作具体分析。” - 列宁**
|
||||
|
||||
|
@ -160,7 +160,7 @@ https://mineplugin.org/Multiverse-Core#%E4%BD%A0%E8%83%BD%E8%AE%A9%E6%AF%8F%E4%B
|
||||
|
||||
**安装papi的 Multiverse 扩展**
|
||||
|
||||
[点击此处](../Front-Plugin/PlaceHolderAPI/CommonUsage.md#multiverse-core)
|
||||
[点击此处](../Front-Plugin/PlaceHolderAPI/CommonUsage.md#multiverse)
|
||||
|
||||
**设置别名**
|
||||
|
||||
|
@ -34,6 +34,8 @@ sidebar_position: 4
|
||||
|
||||
`GitHub(推荐,社区维护)` https://github.com/Dreeam-qwq/TrMenu
|
||||
|
||||
`vscode插件-trm语法提示` https://marketplace.visualstudio.com/items?itemName=hhhhhy.trmenu-helper
|
||||
|
||||
:::
|
||||
|
||||
交流群:325014486
|
||||
|
@ -20,7 +20,7 @@ sidebar_position: 4
|
||||
|
||||
:::
|
||||
|
||||
# 支持的范围
|
||||
## 支持的范围
|
||||
|
||||
插件版本的 via 支持以下版本进入服务器
|
||||
|
||||
@ -48,20 +48,20 @@ ViaRewind:1.7-1.8(进入高版本服务器)
|
||||
|
||||
你没看错,ViaProxy 可以让 1.20.4 客户端进入 Classic 版本的服务器(后者大概发布于十年前),也可以让一个 JAVA 版玩家进入基岩版服务器,或者基岩版玩家进入 JAVA 版服务器!!!
|
||||
|
||||
# 笨蛋脚本
|
||||
## 笨蛋脚本
|
||||
|
||||
[下载](https://github.com/lilingfengdev/NitWiki-Script/releases/download/windows-latest/via-setup.exe),为你自动配置 Via
|
||||
|
||||
# FAQ
|
||||
## FAQ
|
||||
|
||||
## 用高版本进入低版本服务器,可用高版本的物品吗?
|
||||
### 用高版本进入低版本服务器,可用高版本的物品吗?
|
||||
|
||||
会用材质差不多的低版本物品替换显示,但享受不到大部分高版本物品功能
|
||||
|
||||
## 我装了跨版本却还是显示版本不支持
|
||||
### 我装了跨版本却还是显示版本不支持
|
||||
|
||||
该更新你的 Via 了,Via 更新很频繁
|
||||
|
||||
## 低版本显示不了高版本的材质怎么办?
|
||||
### 低版本显示不了高版本的材质怎么办?
|
||||
|
||||
原版插件不支持,但是可以通过手段绕过后面会讲(仅支持 1.16+)
|
||||
|