Skip to content

Commit

Permalink
docs: 添加新页面
Browse files Browse the repository at this point in the history
  • Loading branch information
ybw0014 committed Nov 14, 2024
1 parent 44b1e94 commit e57254c
Show file tree
Hide file tree
Showing 12 changed files with 124 additions and 40 deletions.
55 changes: 55 additions & 0 deletions docs/Commands.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# 指令 {#commands}

本页包含有关 Slimefun 的指令信息。
尽管 Slimefun4 中的指令并不多,但了解这些指令仍然很重要。

你可以使用前缀 `/slimefun``/sf`。两者都可以使用。
为了方便,我们将使用 `/sf`

\<\> = 必填
[] = 可选

## 普通玩家指令 {#commands-for-plugin-users}

| 指令 | 说明 | 所需权限 |
| ----------- | ------------------- | --------- |
| /sf help | 显示所有指令 ||
| /sf guide | 获得粘液指南书物品 | slimefun.command.guide |
| /sf stats | 显示你当前的状态、称号、已花费的经验值、解锁的进度 ||
| /sf search \<搜索内容\> | 打开指南并显示搜索界面 | slimefun.command.search |
| /sf open_guide | 直接打开粘液指南书 | slimefun.command.open_guide |

:::warning

默认情况下,只有以下权限被授予玩家:

- `slimefun.command.guide`
- `slimefun.command.search`

:::

## 管理员指令 {#commands-for-administrators}

| 指令 | 说明 | 所需权限 |
| ----------- | ------------------- | --------- |
| /sf give \<玩家\> \<物品 ID\> [数量] | 给予指定物品给指定玩家 | slimefun.cheat.items |
| /sf cheat | 打开作弊菜单,可直接获取物品 | slimefun.cheat.items |
| /sf versions | 显示 Slimefun 版本与附属信息 | slimefun.command.versions |
| /sf research \<玩家\> \<研究 / all / reset\> | 为指定玩家解锁指定研究/所有研究/重置所有研究。 | slimefun.cheat.researches |
| /sf stats \<玩家\> | 显示指定玩家的当前状态、称号、已花费的经验值、解锁的进度 | slimefun.stats.others |
| /sf teleporter [玩家] | 显示你的或指定玩家的所有传送点 | slimefun.command.teleporter |
| /sf timings | 显示粘液刻的统计信息 | slimefun.command.timings |
| /sf debug_fish | 获得调试工具 | slimefun.debugging |
| /sf backpack \<玩家\> \<ID\> | 给予你用于恢复指定玩家的指定背包的备用背包,应仅用于恢复背包物品 | slimefun.command.backpack |
| /sf charge | 给你手中的物品完全充电 | slimefun.command.charge |
| /sf id | 获得手中粘液物品的 ID | slimefun.command.id |
| /sf cleardata \<世界\> \<\*/block/oil\> | 清除指定世界的 Slimefun 数据(方块/石油) | slimefun.command.clear_data |

:::warning

以下指令仅汉化版可用:

- `/sf id`
- `/sf cleardata`

:::
8 changes: 4 additions & 4 deletions docs/Developer-Guide-1-Project-Setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
3. Apache Maven(IntelliJ IDEA 自带)
4. Git(推荐,用于版本管理)

我们不会详细阐述如何下载并安装这些工具,请自行使用搜索引擎或 ChatGPT 解决。
我们不会详细阐述如何下载并安装这些工具,请自行使用搜索引擎或询问 AI 解决。
当你安装完这些工具后,进入下一步。

## 2. 创建一个新的 GitHub 仓库 {#2-create-a-new-github-repository}
Expand Down Expand Up @@ -67,10 +67,10 @@ Maven 是一个许多 Java 项目使用的依赖管理器。我们的模版项
该名称是为了识别你是一个个人开发者,或者代表一个组织。
该名称必须为全部小写,以下是一些例子:

- `me.ybw0014`me开头的通常代表个人
- `me.ybw0014`me 开头的通常代表个人
- `dev.ybw0014`(如果你拥有网站,使用你网站域名的倒序)
- `com.google.example`(如果你属于某个组织,例如 Google,则使用这种格式。不要假冒任何组织,只有当你的项目是以组织名义制作时才使用该格式)
- `io.github.ybw0014`(如果你的仓库在 GitHub 托管并开源,你可以使用该格式
- `io.github.ybw0014`(如果你的仓库在 GitHub 托管并开源,你选择可以使用该格式

对于大多数开发者来说,我们建议使用`me.你的名字`来作为包名(记住,全部小写,使用 `_` 来表示空格)。

Expand Down Expand Up @@ -192,4 +192,4 @@ api-version: 1.14

## 5. 锁定你的依赖版本 {#5-locking-your-dependency-versions}

我们模版的 `pom.xml`已经锁定了 Slimefun 依赖项的版本,你可以选择跳过该部分,或阅读[官方文档](https://github.com/Slimefun/Slimefun4/wiki/Developer-Guide-(1-Project-Setup)#5-locking-your-dependency-versions)。
我们模版的 `pom.xml` 已经锁定了 Slimefun 依赖项的版本,你可以选择跳过该部分,或阅读[官方文档](https://github.com/Slimefun/Slimefun4/wiki/Developer-Guide-(1-Project-Setup)#5-locking-your-dependency-versions)。
16 changes: 8 additions & 8 deletions docs/Developer-Guide-3-Your-first-Item.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ public void onEnable() {
该类的构造函数拥有 4 个参数:

- `itemGroup` 是该物品所属的物品组,在这里我们将使用之前创建的物品组。
- `itemStack` 是该`SlimefunItem` 所使用的 `SlimefunItemStack`。我们会在稍后说明。
- `itemStack` 是该 `SlimefunItem` 所使用的 `SlimefunItemStack`。我们会在稍后说明。
- `recipeType` 说明该物品所使用的配方类型。换句话说,就是合成该物品所需的机器。
- `recipe` 是一个长度为 9 的 `ItemStack` 数组,描述了 3x3 的配方。

Expand All @@ -132,7 +132,7 @@ public void onEnable() {
在本指南中,我们会使用以下构造函数:
`new SlimefunItemStack(id, material, name, lore...);`

首先,我们需要给 `SlimefunItemStack` 提供`id`
首先,我们需要给 `SlimefunItemStack` 提供 `id`
`id` 就是一个大写字母、数字、下划线任意组合而成的一个字符串。例如:`MY_ADDON_ITEM`
物品的 ID 必须是全局唯一的(包括本体与所有附属),所以请选择最适合物品的 ID。

Expand Down Expand Up @@ -209,20 +209,20 @@ SlimefunItem sfItem = new SlimefunItem(itemGroup, itemStack, recipeType, recipe)

让我们来回顾一下之前的步骤:

1. 创建了一个物品组`ItemGroup`
a. 使用`CustomItemStack`作为展示物品
2. 创建了一个粘液物品`SlimefunItem`
1. 创建了一个物品组 `ItemGroup`
a. 使用 `CustomItemStack` 作为展示物品
2. 创建了一个粘液物品 `SlimefunItem`
a. 使用自定义配方
b. 使用`SlimefunItemStack`来指定物品 ID、材料、显示名与说明
b. 使用 `SlimefunItemStack` 来指定物品 ID、材料、显示名与说明

以下是目前为止所有的代码(在 `onEnable()` 方法中):

```java
NamespacedKey categoryId = new NamespacedKey(this, "cool_category");
CustomItemStack categoryItem = new CustomItemStack(Material.DIAMOND, "&4非常炫酷的分类");
// 创建物品组ItemGroup
// 创建物品组 ItemGroup
ItemGroup itemGroup = new ItemGroup(categoryId, categoryItem);
// 粘液物品SlimefunItem的物品SlimefunItemStack
// 粘液物品 SlimefunItem 的物品 SlimefunItemStack
SlimefunItemStack itemStack = new SlimefunItemStack("MY_ADDON_ITEM", Material.EMERALD, "&a炫酷的绿宝石", "", "&7听说很值钱");
// 3x3 的有序合成配方
ItemStack[] recipe = {
Expand Down
12 changes: 6 additions & 6 deletions docs/Developer-Guide-4a-Right-Clicks.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
```java
NamespacedKey categoryId = new NamespacedKey(this, "cool_category");
CustomItemStack categoryItem = new CustomItemStack(Material.DIAMOND, "&4非常炫酷的分类");
// 创建物品组ItemGroup
// 创建物品组 ItemGroup
ItemGroup itemGroup = new ItemGroup(categoryId, categoryItem);
// 粘液物品SlimefunItem的物品SlimefunItemStack
// 粘液物品 SlimefunItem 的物品 SlimefunItemStack
SlimefunItemStack itemStack = new SlimefunItemStack("MY_ADDON_ITEM", Material.EMERALD, "&a炫酷的绿宝石", "", "&7听说很值钱");
// 3x3 的有序合成配方
ItemStack[] recipe = {
Expand Down Expand Up @@ -89,7 +89,7 @@ new SlimefunItem(itemGroup, itemStack, recipeType, recipe);

:::

我们只需要使用`super`关键字并传递参数,构造函数现在看起来像这样:
我们只需要使用 `super` 关键字并传递参数,构造函数现在看起来像这样:

```java
public class FireCake extends SlimefunItem {
Expand All @@ -107,9 +107,9 @@ public class FireCake extends SlimefunItem {
```java
NamespacedKey categoryId = new NamespacedKey(this, "cool_category");
CustomItemStack categoryItem = new CustomItemStack(Material.DIAMOND, "&4非常炫酷的分类");
// 创建物品组ItemGroup
// 创建物品组 ItemGroup
ItemGroup itemGroup = new ItemGroup(categoryId, categoryItem);
// 粘液物品SlimefunItem的物品SlimefunItemStack
// 粘液物品 SlimefunItem 的物品 SlimefunItemStack
SlimefunItemStack itemStack = new SlimefunItemStack("FIRE_CAKE", Material.CAKE, "&4火焰蛋糕", "", "&c小心!");
// 3x3 的有序合成配方
ItemStack[] recipe = {
Expand Down Expand Up @@ -149,7 +149,7 @@ public class FireCake extends SlimefunItem {
}
```

我们将**覆盖(Override)** 一个来自 `SlimefunItem` 的方法,叫做 `preRegister()`
我们将**覆盖(Override)**一个来自 `SlimefunItem` 的方法,叫做 `preRegister()`
这个方法在物品注册之前被调用,这确保了我们的处理器被正确添加。
注意,覆盖的方法应该有一个 `@Override` 注解,如下所示:

Expand Down
10 changes: 5 additions & 5 deletions docs/Developer-Guide-4b-Radioactive-and-WitherProof.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,9 +137,9 @@ public class FireCake extends SlimefunItem implements Radioactive {
```java
NamespacedKey categoryId = new NamespacedKey(this, "cool_category");
CustomItemStack categoryItem = new CustomItemStack(Material.DIAMOND, "&4非常炫酷的分类");
// 创建物品组ItemGroup
// 创建物品组 ItemGroup
ItemGroup itemGroup = new ItemGroup(categoryId, categoryItem);
// 粘液物品SlimefunItem的物品SlimefunItemStack
// 粘液物品 SlimefunItem 的物品 SlimefunItemStack
SlimefunItemStack itemStack = new SlimefunItemStack("MY_ADDON_ITEM", Material.CAKE, "&4火焰蛋糕", "", "&c小心!");
// 3x3 的有序合成配方
ItemStack[] recipe = {
Expand All @@ -158,15 +158,15 @@ cake.register(this);

有一个静态方法叫做 `LoreBuilder.radioactive(...)`,它接受一个 `Radioactivity` 的常量作为参数。
我们可以使用它来创建一个关于放射性的字符串。这将是与 Slimefun 标准物品使用的相同字符串。
如果你想更进一步,你也可以使用静态常量`LoreBuilder.HAZMAT_SUIT_REQUIRED`,它会警告玩家需要穿上防护服。
如果你想更进一步,你也可以使用静态常量 `LoreBuilder.HAZMAT_SUIT_REQUIRED`,它会警告玩家需要穿上防护服。
让我们来做这些吧。

```java
NamespacedKey categoryId = new NamespacedKey(this, "cool_category");
CustomItemStack categoryItem = new CustomItemStack(Material.DIAMOND, "&4非常炫酷的分类");
// 创建物品组ItemGroup
// 创建物品组 ItemGroup
ItemGroup itemGroup = new ItemGroup(categoryId, categoryItem);
// 粘液物品SlimefunItem的物品SlimefunItemStack
// 粘液物品 SlimefunItem 的物品 SlimefunItemStack
SlimefunItemStack itemStack = new SlimefunItemStack("FIRE_CAKE", Material.CAKE, "&4火焰蛋糕", "", LoreBuilder.radioactive(Radioactivity.HIGH), LoreBuilder.HAZMAT_SUIT_REQUIRED);
// 3x3 的有序合成配方
ItemStack[] recipe = {
Expand Down
8 changes: 4 additions & 4 deletions docs/Developer-Guide-5-Researches.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
```java
NamespacedKey categoryId = new NamespacedKey(this, "cool_category");
CustomItemStack categoryItem = new CustomItemStack(Material.DIAMOND, "&4非常炫酷的分类");
// 创建物品组ItemGroup
// 创建物品组 ItemGroup
ItemGroup itemGroup = new ItemGroup(categoryId, categoryItem);
// 粘液物品SlimefunItem的物品SlimefunItemStack
// 粘液物品 SlimefunItem 的物品 SlimefunItemStack
SlimefunItemStack itemStack = new SlimefunItemStack("FIRE_CAKE", Material.CAKE, "&4火焰蛋糕", "", LoreBuilder.radioactive(Radioactivity.HIGH), LoreBuilder.HAZMAT_SUIT_REQUIRED);
// 3x3 的有序合成配方
ItemStack[] recipe = {
Expand Down Expand Up @@ -142,9 +142,9 @@ research.register();
```java
NamespacedKey categoryId = new NamespacedKey(this, "cool_category");
CustomItemStack categoryItem = new CustomItemStack(Material.DIAMOND, "&4非常炫酷的分类");
// 创建物品组ItemGroup
// 创建物品组 ItemGroup
ItemGroup itemGroup = new ItemGroup(categoryId, categoryItem);
// 粘液物品SlimefunItem的物品SlimefunItemStack
// 粘液物品 SlimefunItem 的物品 SlimefunItemStack
SlimefunItemStack itemStack = new SlimefunItemStack("FIRE_CAKE", Material.CAKE, "&4火焰蛋糕", "", LoreBuilder.radioactive(Radioactivity.HIGH), LoreBuilder.HAZMAT_SUIT_REQUIRED);
// 3x3 的有序合成配方
ItemStack[] recipe = {
Expand Down
6 changes: 3 additions & 3 deletions docs/Developer-Guide-6-Custom-Heads.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
```java
NamespacedKey categoryId = new NamespacedKey(this, "cool_category");
CustomItemStack categoryItem = new CustomItemStack(Material.DIAMOND, "&4非常炫酷的分类");
// 创建物品组ItemGroup
// 创建物品组 ItemGroup
ItemGroup itemGroup = new ItemGroup(categoryId, categoryItem);
// 粘液物品SlimefunItem的物品SlimefunItemStack
// 粘液物品 SlimefunItem 的物品 SlimefunItemStack
SlimefunItemStack itemStack = new SlimefunItemStack("MY_ADDON_ITEM", Material.CAKE, "&4火焰蛋糕", "", LoreBuilder.radioactive(Radioactivity.HIGH), LoreBuilder.HAZMAT_SUIT_REQUIRED);
// 3x3 的有序合成配方
ItemStack[] recipe = {
Expand Down Expand Up @@ -162,7 +162,7 @@ NamespacedKey categoryId = new NamespacedKey(this, "cool_category");
CustomItemStack categoryItem = new CustomItemStack(SkullItem.fromBase64("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTk1MmQyYjNmMzUxYTZiMDQ4N2NjNTlkYjMxYmY1ZjI2NDExMzNlNWJhMDAwNmIxODU3NmU5OTZhMDI5M2U1MiJ9fX0="), "&4非常炫酷的分类");
ItemGroup itemGroup = new ItemGroup(categoryId, categoryItem);

// 粘液物品SlimefunItem的物品SlimefunItemStack
// 粘液物品 SlimefunItem 的物品 SlimefunItemStack
SlimefunItemStack itemStack = new SlimefunItemStack("FIRE_CAKE", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTk1MmQyYjNmMzUxYTZiMDQ4N2NjNTlkYjMxYmY1ZjI2NDExMzNlNWJhMDAwNmIxODU3NmU5OTZhMDI5M2U1MiJ9fX0=", "&4火焰蛋糕", "", LoreBuilder.radioactive(Radioactivity.HIGH), LoreBuilder.HAZMAT_SUIT_REQUIRED);

// 3x3 的有序合成配方
Expand Down
2 changes: 1 addition & 1 deletion docs/Developer-Guide-7-GEO-Resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ NamespacedKey categoryId = new NamespacedKey(this, "cool_category");
CustomItemStack categoryItem = new CustomItemStack(SkullItem.fromBase64("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTk1MmQyYjNmMzUxYTZiMDQ4N2NjNTlkYjMxYmY1ZjI2NDExMzNlNWJhMDAwNmIxODU3NmU5OTZhMDI5M2U1MiJ9fX0="), "&4非常炫酷的分类");
ItemGroup itemGroup = new ItemGroup(categoryId, categoryItem);

// 粘液物品SlimefunItem的物品SlimefunItemStack
// 粘液物品 SlimefunItem 的物品 SlimefunItemStack
SlimefunItemStack itemStack = new SlimefunItemStack("FIRE_CAKE", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTk1MmQyYjNmMzUxYTZiMDQ4N2NjNTlkYjMxYmY1ZjI2NDExMzNlNWJhMDAwNmIxODU3NmU5OTZhMDI5M2U1MiJ9fX0=", "&4火焰蛋糕", "", LoreBuilder.radioactive(Radioactivity.HIGH), LoreBuilder.HAZMAT_SUIT_REQUIRED);

// 3x3 的有序合成配方
Expand Down
2 changes: 1 addition & 1 deletion docs/Developer-Guide-Publishing.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
如果你的项目没有许可证,那么默认为**保留所有权利**
即使你想将项目的所有权利都保留给自己,明确地声明这一点也是一个好主意。

如果你需要帮助选择许可证,请查看[ChooseALicense.com](https://choosealicense.com/)
如果你需要帮助选择许可证,请查看 [ChooseALicense.com](https://choosealicense.com/)

### 2. 你知道如何编译你的项目 {#2-you-know-how-to-compile-your-project}

Expand Down
12 changes: 4 additions & 8 deletions docs/Developer-Guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,14 @@ sidebar_label: 编写自己的附属插件
2. [创建附属](/Developer-Guide-2-Creating-the-Addon)
3. [你的第一个物品](/Developer-Guide-3-Your-first-Item)
4. 为你的物品添加特性

- [右键点击物品或方块时执行操作](/Developer-Guide-4a-Right-Clicks)
- [让物品具有放射性和防凋灵](/Developer-Guide-4b-Radioactive-and-WitherProof)

- [右键点击物品或方块时执行操作](/Developer-Guide-4a-Right-Clicks)
- [让物品具有放射性和防凋灵](/Developer-Guide-4b-Radioactive-and-WitherProof)
5. [添加自己的研究](/Developer-Guide-5-Researches)
6. [自定义头颅](/Developer-Guide-6-Custom-Heads)
7. [添加自然资源到自然资源开采机](/Developer-Guide-7-GEO-Resources)
8. 创建电力机器

- 创建简单的输入/输出机器(即将到来)
- 创建自己的发电机(即将到来)

- 创建简单的输入/输出机器(即将到来)
- 创建自己的发电机(即将到来)
9. [编译并测试附属](/Developer-Guide-9-Compiling)

*. [发布你的附属](/Developer-Guide-Publishing)
31 changes: 31 additions & 0 deletions docs/Permissions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# 权限 {#permissions}

这些是 Slimefun 的权限节点列表。
大部分用于指令,详见[指令](/Commands)页面。

## 指令相关权限 {#permissions-for-commands}

| 指令 | 说明 | 默认 |
| -------- | -------------------------| --------- |
| slimefun.cheat.items | 允许你使用 `/sf give``/sf cheat` | OP |
| slimefun.cheat.researches | 允许你使用 `/sf research` | OP |
| slimefun.stats.others | 允许你使用 `/sf stats` 查询他人 | OP |
| slimefun.command.timings | 允许你使用 `/sf timings` | OP |
| slimefun.command.teleporter | 允许你使用 `/sf teleporter` | OP |
| slimefun.command.versions | 允许你使用 `/sf versions` | OP |
| slimefun.command.guide | 允许你使用 `/sf guide` | 所有人 |
| slimefun.command.search | 允许你使用 `/sf search` | 所有人 |
| slimefun.command.open_guide | 允许你使用 `/sf open_guide` | OP |
| slimefun.command.backpack | 允许你使用 `/sf backpack` | OP |
| slimefun.command.charge | 允许你使用 `/sf charge` | OP |
| slimefun.debugging | 允许你使用 `/sf debug_fish` | OP |

## 方块相关权限 {#permissions-for-blocks}

| 指令 | 说明 | 默认 |
| -------- | -------------------------| --------- |
| slimefun.inventory.bypass | 允许你打开别人的机器 | OP |
| slimefun.cargo.bypass | 允许你使用其他人的货运节点 | OP |
| slimefun.gps.bypass | 允许你使用其他人的 GPS 设备 | OP |
| slimefun.android.bypass | 允许你使用其他人的机器人 | OP |
| slimefun.android.upload-script | 允许你上传机器人的脚本 | OP |
2 changes: 2 additions & 0 deletions sidebars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ const sidebars: SidebarsConfig = {
'Slimefun-in-a-nutshell',
'Installing-Slimefun',
'Getting-Started',
{ type: 'doc', id: 'Permissions', className: 'hidden' },
{ type: 'doc', id: 'Commands', className: 'hidden' },
'Common-Issues',
'How-to-report-bugs',
'Expanding-the-Wiki',
Expand Down

0 comments on commit e57254c

Please sign in to comment.