Skip to content

Commit

Permalink
docs: 更新开发指南
Browse files Browse the repository at this point in the history
  • Loading branch information
ybw0014 committed Jul 14, 2024
1 parent 9ce2419 commit de180db
Show file tree
Hide file tree
Showing 13 changed files with 313 additions and 245 deletions.
76 changes: 43 additions & 33 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解决
我们不会详细阐述如何下载并安装这些工具,请自行使用搜索引擎或 ChatGPT 解决
当你安装完这些工具后,进入下一步。

## 2. 创建一个新的 GitHub 仓库 {#2-create-a-new-github-repository}
Expand Down Expand Up @@ -42,10 +42,10 @@ Maven 是一个许多 Java 项目使用的依赖管理器。我们的模版项
### 协议 {#license}

你应该给你的项目选择一个协议。我们建议你选择一个开源协议,这样任何人都可以给你的项目贡献代码。
你可以在[ChooseALicense.com](https://ChooseALicense.com/)网站来选择适合你项目的开源协议。
如果你不想为了选择开源协议而烦恼,我们建议你使用[MIT 协议](https://choosealicense.com/licenses/mit/)
你可以在 [ChooseALicense.com](https://ChooseALicense.com/) 网站来选择适合你项目的开源协议。
如果你不想为了选择开源协议而烦恼,我们建议你使用 [MIT 协议](https://choosealicense.com/licenses/mit/)

要选择协议,只需要在你的项目根目录中新建一个文件`LICENSE`(没有后缀),并将协议文本复制到该文件中即可。
要选择协议,只需要在你的项目根目录中新建一个文件 `LICENSE`(没有后缀),并将协议文本复制到该文件中即可。

### 自述文件 {#readme}

Expand All @@ -59,7 +59,7 @@ Maven 是一个许多 Java 项目使用的依赖管理器。我们的模版项

这一步非常重要。
现在,你的项目仍然有许多需要替换的地方。
打开项目根目录中的`pom.xml`,在文件头部,你应该可以看到这 4 个部分
打开项目根目录中的 `pom.xml`,在文件头部,你应该可以看到这 4 个部分

### 你的 groupId {#your-groupid}

Expand All @@ -69,28 +69,36 @@ Maven 是一个许多 Java 项目使用的依赖管理器。我们的模版项

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

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

!> 记住这个包名,我们稍后会用到。
:::warning

记住这个包名,我们稍后会用到。

:::

### 你的 projectId {#your-projectid}

每一个 Java 项目都有一个项目名(project id)。
项目名将与包名一起组合为你的包标识符,它应该是唯一的。

你的项目名应该与项目名称一致,例如`CoolAddon`
需要注意,项目名不一定像组名一样要全部小写。
需要注意,项目名不一定像组名一样要全部小写。

:::warning

记住这个项目名,我们稍后会用到。

!> 记住这个项目名,我们稍后会用到。
:::

### 你的 pom.xml {#your-pomxml}

`pom.xml`是任何 Maven 项目的心脏。
`pom.xml` 是任何 Maven 项目的心脏。
现在,你需要用到之前定下的包名与项目名。
你的`pom.xml`文件开头应该有以下内容:
你的 `pom.xml` 文件开头应该有以下内容:

```xml
<modelVersion>4.0.0</modelVersion>
Expand All @@ -99,8 +107,8 @@ Maven 是一个许多 Java 项目使用的依赖管理器。我们的模版项
<version>1.0.0</version>
```

`groupId``artifactId`分别改为你的包名与项目名。
现在,你的`pom.xml`文件开头应该看起来像这样:
`groupId``artifactId` 分别改为你的包名与项目名。
现在,你的 `pom.xml` 文件开头应该看起来像这样:

```xml
<modelVersion>4.0.0</modelVersion>
Expand All @@ -109,12 +117,16 @@ Maven 是一个许多 Java 项目使用的依赖管理器。我们的模版项
<version>1.0.0</version>
```

!> 不要忘记包名与项目名,后面还会用到。
:::warning

不要忘记包名与项目名,后面还会用到。

:::

### 你的 plugin.yml {#your-pluginyml}

`plugin.yml`是任何 Bukkit 插件的心脏。
它位于`src/main/resources/plugin.yml`
`plugin.yml` 是任何 Bukkit 插件的心脏。
它位于 `src/main/resources/plugin.yml`
它看起来像这样:

```yml
Expand All @@ -130,21 +142,21 @@ depend: [Slimefun]
api-version: 1.14
```
1. 将`name`设置为你的项目名。
2. 将`author`设置为你的名字。
3. 在`description`中简单介绍一下你的插件。
4. 设置你项目的主页`website`,你可以移除这一行,或者填写项目的 GitHub/Spigot 页面地址。
1. 将 `name` 设置为你的项目名。
2. 将 `author` 设置为你的名字。
3. 在 `description` 中简单介绍一下你的插件。
4. 设置你项目的主页 `website`,你可以移除这一行,或者填写项目的 GitHub/Spigot 页面地址。

最**重要**的一步,将`main`改为以下内容:
main: `包名` + . + `项目名` (全部小写) + . + `项目名`
最**重要**的一步,将 `main` 改为以下内容:
main: `包名` + . + `项目名`全部小写 + . + `项目名`

这一步可能会让你摸不着头脑,所以我们提供了一个例子:

包名:`net.guizhanss`
项目名:`GuizhanCraft`
main: `net.guizhanss.guizhancraft.GuizhanCraft`

你的`plugin.yml`现在应该看起来像这样:
你的 `plugin.yml` 现在应该看起来像这样:

```yml
name: GuizhanCraft
Expand All @@ -166,20 +178,18 @@ api-version: 1.14
我们将开始接触一些代码文件。
我们还没有开始真正的写代码,但是我们仍然需要对代码包进行配置,来匹配之前作出的更改。

打开目录`src/main/java`,你应该看到一个像这样的包:`me.CHANGEME.slimefunaddon`。
打开目录 `src/main/java`,你应该看到一个像这样的包:`me.CHANGEME.slimefunaddon`。
重命名这个包为:`包名` + . + `项目名` (全部小写)。
如果按照之前的例子来说,就是`net.guizhanss.guizhancraft`。
如果按照之前的例子来说,就是 `net.guizhanss.guizhancraft`。

打开这个包,你可以看到`SlimefunAddon.java`文件。将这个文件重命名为`项目名.java`(记得保留后缀)。
打开这个包,你可以看到 `SlimefunAddon.java` 文件。将这个文件重命名为 `项目名.java`(记得保留后缀)。
现在这个文件名应该看起来像这样:`GuizhanCraft.java`。

如果你设置好了Git仓库,那么你应该可以提交(commit)并推送(push)你的修改到 GitHub 仓库了。
网上有非常多的教程。你应该经常提交并推送你的更改,这样你本地的进度能够与 GitHub 仓库同步。这也能方便其他人参与到你的项目中。
如果你设置好了 Git 仓库,那么你应该可以提交(commit)并推送(push)你的修改到 GitHub 仓库了。
网上有非常多的教程。你应该经常提交并推送你的更改,这样你本地的进度能够与 GitHub 仓库同步。这也能方便其他人参与到你的项目中。

一切就绪!你已经完成附属的配置。

## 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)。

?> 点击继续阅读[第二章](/Developer-Guide-(2-Creating-the-Addon))
我们模版的 `pom.xml`已经锁定了 Slimefun 依赖项的版本,你可以选择跳过该部分,或阅读[官方文档](https://github.com/Slimefun/Slimefun4/wiki/Developer-Guide-(1-Project-Setup)#5-locking-your-dependency-versions)。
30 changes: 16 additions & 14 deletions docs/Developer-Guide-2-Creating-the-Addon.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,20 @@ public class ExampleAddon extends JavaPlugin implements SlimefunAddon {
}
```

`package`关键字定义了该类所在的包。
`import`关键字告诉Java该类引用了哪些外部类,你会看到很多来自`io.github.thebusybiscuit.slimefun4...``org.bukkit...`的引用。
`package` 关键字定义了该类所在的包。
`import` 关键字告诉Java该类引用了哪些外部类,你会看到很多来自 `io.github.thebusybiscuit.slimefun4...``org.bukkit...` 的引用。
这是因为,你在开发时会用到这些类。

接下来,是你的主类定义,类名与你的文件名一致(不包含后缀),然后是`extends JavaPlugin`表示这是一个Bukkit插件
最后的`implements SlimefunAddon`表示这是一个 Slimefun 附属。
接下来,是你的主类定义,类名与你的文件名一致(不包含后缀),然后是 `extends JavaPlugin`表示这是一个 Bukkit 插件
最后的 `implements SlimefunAddon` 表示这是一个 Slimefun 附属。

这个类包含两个方法。
`onEnable`将在插件启用时被执行,通常包含各种初始化操作。
`onDisable`将在插件禁用时被执行,通常是服务器关闭时。你现在可以暂时忽略这些东西。
`onEnable` 将在插件启用时被执行,通常包含各种初始化操作。
`onDisable` 将在插件禁用时被执行,通常是服务器关闭时。你现在可以暂时忽略这些东西。

## 2. `onEnable`方法 - `Config`类 {#2-the-onenable-method---config}
## 2. `onEnable` 方法 - `Config` 类 {#2-the-onenable-method---config}

在模版中,`onEnable`方法已经包含了许多的东西。
在模版中,`onEnable` 方法已经包含了许多的东西。
我们会依次解释每一部分,但我们现在先讲解最开始的部分。

```java
Expand All @@ -68,20 +68,22 @@ public void onEnable() {
}
```

你可以使用`Config`类,并使用`new Config(this)`来从配置文件中读取配置。
`src/main/resources/config.yml`文件是默认的配置文件内容。
你可以使用 `Config` 类,并使用 `new Config(this)` 来从配置文件中读取配置。
`src/main/resources/config.yml` 文件是默认的配置文件内容。

`Config`类来自 Slimefun/dough,因此你通常不会在其它非 Slimefun 项目中看到它。
`Config` 类来自 [Slimefun/dough](https://github.com/Slimefun/dough/blob/main/dough-config/src/main/java/io/github/bakedlibs/dough/config/Config.java),因此你通常不会在其它非 Slimefun 项目中看到它。
你可以直接从配置文件中使用指定的获取类来获取指定的值:

```java
cfg.getBoolean("path.to.your.boolean");
cfg.getString("path.to.your.string");
```

你可以使用`Config`来设置可以让服主自由调整的值。
你可以使用 `Config` 来设置可以让服主自由调整的值。

!> **重要提示**:如果你的IDE抱怨找不到`Config`类,那么你需要从`io.github.thebusybiscuit.slimefun4.libraries.dough.config`包中来引用该类。
:::warning 重要提示

如果你的 IDE 抱怨找不到 `Config` 类,那么你需要从 `io.github.thebusybiscuit.slimefun4.libraries.dough.config` 包中来引用该类。
你需要引用每一个你用到的外部类。

?> 点击继续阅读[第三章](/Developer-Guide-(3-Your-first-Item))
:::
Loading

0 comments on commit de180db

Please sign in to comment.