部分文档迁移到 github pages

This commit is contained in:
zhangyuheng 2024-09-04 16:52:37 +08:00
parent 4c5f3a6db1
commit c1ecaec48b
31 changed files with 811 additions and 7 deletions

52
.github/workflows/wiki.yml vendored Normal file
View File

@ -0,0 +1,52 @@
name: Deploy GitBook with GitHub Pages dependencies preinstalled
on:
push:
branches:
- master
paths:
- 'docs/**'
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Setup Node.js environment
uses: actions/setup-node@v4.0.3
- name: Install gitbook-cli
run: |
npm install -g gitbook-cli
gitbook install
- name: Build with gitbook
run: |
gitbook build docs
mv docs/_book public
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

1
.gitignore vendored
View File

@ -111,3 +111,4 @@ buildNumber.properties
# Common working directory
run/
/docs/_book/

51
README.zh_CN.md Normal file
View File

@ -0,0 +1,51 @@
<div align="center">
<img src="https://ssl.lunadeer.cn:14437/i/2024/03/28/6604f0cec0f0e.png" alt="" width="70%">
[![GitHub Repository](https://img.shields.io/badge/GitHub-开源地址-blue?logo=github)](https://github.com/ColdeZhang/Dominion)
[![bStats](https://img.shields.io/badge/bStats-Statistics-eacd76?logo=google-analytics)](https://bstats.org/plugin/bukkit/Dominion/21445)
[![Hangar](https://img.shields.io/badge/Hangar-Project-bacac6?logo=paper)](https://hangar.papermc.io/zhangyuheng/Dominion)
[![Documentation](https://img.shields.io/badge/在线文档-点击跳转-70f3ff?logo=readthedocs)](https://ssl.lunadeer.cn:14448/doc/23/)
[![Latest Build](https://img.shields.io/github/v/release/ColdeZhang/Dominion?label=%E6%9C%80%E6%96%B0%E6%9E%84%E5%BB%BA%E4%B8%8B%E8%BD%BD&logo=github&color=0aa344)](https://github.com/ColdeZhang/Dominion/releases/latest)
[![Latest Build](https://img.shields.io/github/v/release/ColdeZhang/Dominion?label=%E5%A4%87%E7%94%A8%E4%B8%8B%E8%BD%BD%E5%9C%B0%E5%9D%80&logo=gitea&color=0aa344)](https://ssl.lunadeer.cn:14446/mirror/Dominion/releases)
</div>
---
## 简介
鉴于 Residence 插件的作者项目较多维护压力大无法及时跟进新版本以及适配Folia核心。故开发此插件旨在平替纯净版生存服Residence的使用支持从
Res 迁移数据)。
**请注意本插件目前处于中期测试稳定阶段绝大多数bug或漏洞已被修复目前已具备完全可用性。但不排除仍然存在某些问题如果遇到任何BUG 欢迎及时在仓库提交 ISSUE 或添加QQ群告知感激不尽。**
## 功能介绍
<div align="center">
<img src="resource/img/tui.png" alt="" width="100%"/>
<img src="resource/img/manage.png" alt="" width="100%"/>
<img src="resource/img/migration.png" alt="" width="100%"/>
<img src="resource/img/db.png" alt="" width="100%"/>
<img src="resource/img/performance.png" alt="" width="100%"/>
</div>
## 支持版本
- 1.20.1+ (Bukkit、Spigot、Paper、Folia)
> 需要使用 Java21 运行你的服务端,如果你还在使用 Java17 可以放心替换为 Java21理论上 1.20.1+ 版本的服务端核心可以直接升级到
> Java21 启动。
## 建议与反馈
请优先在 [GitHub ISSUE](https://github.com/ColdeZhang/Dominion/issues) 提交您的问题
QQ群309428300
## 统计
<div align="center">
<img src="https://bstats.org/signatures/bukkit/Dominion.svg" alt="" width="100%">
</div>

View File

@ -154,21 +154,21 @@ public class ConfigManager {
_file.setComments("Limit", List.of(Translation.Config_Comment_DefaultLimit.trans()));
_file.set("Limit.SpawnProtection", _spawn_protection);
_file.setInlineComments("Limit.SpawnProtection", Arrays.asList(Translation.Config_Comment_SpawnProtectRadius.trans(), Translation.Config_Comment_NegativeOneDisabled.trans()));
_file.setInlineComments("Limit.SpawnProtection", List.of(Translation.Config_Comment_SpawnProtectRadius.trans() + Translation.Config_Comment_NegativeOneDisabled.trans()));
_file.set("Limit.MinY", limits.get("default").getLimitMinY());
_file.setInlineComments("Limit.MinY", List.of(Translation.Config_Comment_MinY.trans()));
_file.set("Limit.MaxY", limits.get("default").getLimitMaxY());
_file.setInlineComments("Limit.MaxY", List.of(Translation.Config_Comment_MaxY.trans()));
_file.set("Limit.SizeX", limits.get("default").getLimitSizeX());
_file.setInlineComments("Limit.SizeX", Arrays.asList(Translation.Config_Comment_SizeX.trans(), Translation.Config_Comment_NegativeOneUnlimited.trans()));
_file.setInlineComments("Limit.SizeX", List.of(Translation.Config_Comment_SizeX.trans() + Translation.Config_Comment_NegativeOneUnlimited.trans()));
_file.set("Limit.SizeY", limits.get("default").getLimitSizeY());
_file.setInlineComments("Limit.SizeY", Arrays.asList(Translation.Config_Comment_SizeY.trans(), Translation.Config_Comment_NegativeOneUnlimited.trans()));
_file.setInlineComments("Limit.SizeY", List.of(Translation.Config_Comment_SizeY.trans() + Translation.Config_Comment_NegativeOneUnlimited.trans()));
_file.set("Limit.SizeZ", limits.get("default").getLimitSizeZ());
_file.setInlineComments("Limit.SizeZ", Arrays.asList(Translation.Config_Comment_SizeZ.trans(), Translation.Config_Comment_NegativeOneUnlimited.trans()));
_file.setInlineComments("Limit.SizeZ", List.of(Translation.Config_Comment_SizeZ.trans() + Translation.Config_Comment_NegativeOneUnlimited.trans()));
_file.set("Limit.Amount", limits.get("default").getLimitAmount());
_file.setInlineComments("Limit.Amount", List.of(Translation.Config_Comment_Amount.trans(), Translation.Config_Comment_NegativeOneUnlimited.trans()));
_file.setInlineComments("Limit.Amount", List.of(Translation.Config_Comment_Amount.trans() + Translation.Config_Comment_NegativeOneUnlimited.trans()));
_file.set("Limit.Depth", limits.get("default").getLimitDepth());
_file.setInlineComments("Limit.Depth", List.of(Translation.Config_Comment_Depth.trans(), Translation.Config_Comment_ZeroDisabled.trans(), Translation.Config_Comment_NegativeOneUnlimited.trans()));
_file.setInlineComments("Limit.Depth", List.of(Translation.Config_Comment_Depth.trans() + Translation.Config_Comment_ZeroDisabled.trans() + Translation.Config_Comment_NegativeOneUnlimited.trans()));
_file.set("Limit.Vert", limits.get("default").getLimitVert());
_file.setInlineComments("Limit.Vert", List.of(Translation.Config_Comment_Vert.trans()));
_file.set("Limit.WorldBlackList", limits.get("default").getWorldBlackList());

View File

@ -20,7 +20,7 @@ Limit:
Amount: 10
Depth: 3
Vert: false
WorldBlackList: [ ]
WorldBlackList: ['some_world']
OpByPass: true
Teleport:

5
docs/LANGS.md Normal file
View File

@ -0,0 +1,5 @@
# Languages
* [中文(简体)](zh-cn/)
* [中文(繁體)](zh-tw/)
* [English](en/)

21
docs/book.json Normal file
View File

@ -0,0 +1,21 @@
{
"plugins": [
"chapter-fold",
"sidebar-style",
"code",
"github"
],
"pluginsConfig": {
"sidebar-style": {
"title": "Dominion",
"author": "zhangyuheng"
},
"code": {
"lineNumbers": true,
"copyButtons": true
},
"github": {
"url": "https://github.com/ColdeZhang/Dominion"
}
}
}

0
docs/en/README.md Normal file
View File

0
docs/zh-cn/README.md Normal file
View File

24
docs/zh-cn/SUMMARY.md Normal file
View File

@ -0,0 +1,24 @@
# Summary
* [前言](README.md)
* [创建领地](create-dominion.md)
* [领地管理](manage-dominion/README.md)
* [环境设置](manage-dominion/environment.md)
* [权限管理](manage-dominion/permission/README.md)
* [访客权限](manage-dominion/permission/visitor.md)
* [领地成员](manage-dominion/permission/member.md)
* [权限组](manage-dominion/permission/permission-group.md)
* [权限模板](manage-dominion/permission/template.md)
* [领地传送](manage-dominion/teleport.md)
* [尺寸修改](manage-dominion/resize.md)
* [设置领地提示消息](manage-dominion/message.md)
* [权限组称号](manage-dominion/group-title.md)
* [子领地](manage-dominion/sub-dominion.md)
* [从 Residence 迁移](migration-residence.md)
* [指令列表](command-list.md)
* [管理员指南](operator/README.md)
* [配置文件参考](operator/config.md)
* [flags.yml](operator/flags.md)
* [特权玩家配置](operator/privilege.md)
* [跨群组服传送global-tp 测试中)](operator/global-tp.md)

View File

View File

@ -0,0 +1,23 @@
# 创建领地
## 名称规则
- 领地名称不可与其他领地重复;
- 领地名称不可包含空格;
- 领地名称不可包含特殊字符;
## 手动创建
需要使用圈地工具(默认为箭矢),依次使用左键点选领地长方体区域的第一个点、右键点击长方体区域的第二个点。然后使用:
`/dominion create <领地名称>`创建领地,领地名称不可与其他领地重复。
## 自动创建
不需要选择对角线点,会以玩家为中心自动创建一定区域的领地。
1. 使用 `/dominion` 打开主菜单,点击`【创建领地】`;
2. 在弹出的 UI 中输入你要创建的领地名称;
3. 输入完成后左键点击下方中间的绿色混凝土,即可自动创建一块领地;
> 自动创建半径是由服务器管理员在配置文件中设置的;

View File

@ -0,0 +1,14 @@
# 领地管理
领地的管理可以通过领地菜单完成,通常来说您不需要任何指令就可以完成领地的管理。
## 主菜单界面 `/dominion`
使用 `/dominion` 可以打开领地系统的可视化操作菜单界面TUI。单击`【我的领地】`可以查看自己创建的所有领地。
## 领地管理界面 `/dominion manage [领地名称]`
单击对应领地的【管理】即可进入对应领地的管理界面,通过管理界面可以管理此领地的权限等信息。 也可以直接输入
`/dominion manage [领地名称]` 来快速打开当前所在领地的管理界面。
> 领地名称是可选的,不填写则自动打开你当前所在的领地管理界面。

View File

@ -0,0 +1,16 @@
# 环境设置
## 简介
领地环境设置主要包含了领地内的一些非玩家行为的设置例如TNT爆炸、火焰蔓延等等。
## 设置方法
1. 打开领地菜单 `/dominion`
2. 在 `【我的领地】` 中点击对应领地的 `【管理】`
3. 在领地管理界面中选择 `【环境设置】`
4. 点击对应设置项的权限前的 ☑/☐ 来允许或者禁止对应的领地环境行为。
## 注意事项
- 鼠标移动到权限名称上可以显示此权限的详细(描述)信息;

View File

@ -0,0 +1,26 @@
# 权限组称号
## 简介
权限组称号可以用来对外展示玩家在领地的角色/地位/身份,有利于提高领地内的社交性、增强玩家的归属感。
## 领地主要做的事
参照文档完成领地[权限组的配置](permission/permission-group.md),并且添加对应成员;
> 领地主玩家可以使用自己领地的所有权限组称号,所以如果领地主想给自己一个称号可以建一个空权限组专门用来给自己作称号用。
## 成员玩家要做的事
1. 打开领地菜单 `/dominion`
2. 在主菜单点击`【称号列表】`,此处会列出所有你拥有的领地权限组称号,以及该称号来源于哪个领地:
3. 点击对应称号前的【使用】,即可;
## 管理员要做的事
1. 在配置文件中启用 `GroupTitle.Enable`
2. 安装 PlaceholderAPI 插件;
3. 在你想要显示称号的地方如聊天前缀、TAB列表添加占位符`%dominion_group_title%`
> 通常来说你还需要安装一个聊天插件来显示占位符,例如 InteractiveChat、TAB 之类的。

View File

@ -0,0 +1,17 @@
# 领地提示消息
## 进入消息
可以为领地设置玩家进入时的欢迎语句,提示语将在玩家进入领地时弹出。
```
/dominion set_enter_msg <提示语> [领地名称]
```
## 离开消息
可以为领地设置玩家离开时的欢送语句,提示语将在玩家离开领地时弹出。
```
/dominion set_leave_msg <提示语> [领地名称]
```

View File

@ -0,0 +1,53 @@
# 权限管理
## 简介
Dominion 采用了 `访客-成员-权限组` 的权限管理模型。通过此方案既可以满足对于权限的细粒度控制,又可以保证权限的可维护性,减轻玩家的操作负担。
- [访客](visitor.md):领地的访客权限,不属于领地成员的玩家将收到此权限的限制;
- [成员](member.md):领地的成员权限,属于领地成员的玩家将收到此权限的限制;
- [权限组](permission-group.md):领地的权限组,将玩家添加到权限组中,可以为多个玩家配置相同的权限;
## 权限模型透视
```
┌───────────┐
│ Player │
└─────┬─────┘
┌───────────┐ ┌───────────┐
│ IsMember? │───►│ HasGroup? │
└─────┬─────┘ Y └──┬────┬───┘
│N │ │
▼ │ │
┌───────────┐ N│ Y│
│ Visitor │ │ │
└───────────┘ │ │
┌───────────┐ │ │
│ Member │◄──────┘ │
└───────────┘ │
┌───────────┐ │
│ Group │◄───────────┘
└───────────┘
```
- 当一个玩家不属于领地成员时将收到访客权限的限制;
- 如果是领地成员那么会判断玩家是否属于权限组;
- 如果玩家属于权限组那么将收到对应权限组的行为控制;
- 如果玩家不属于权限组那么将采用该玩家在此领地中的成员权限;
## 领地管理员
管理员是领地成员权限中的一个特殊权限:
- ✅管理员可以做的事:
- 该领地的其他所有权限
- 修改领地权限
- 修改领地的玩家权限(添加、删除、修改)
- ❌管理员不可以做的事:
- 删除领地
- 修改领地尺寸
- 将其他玩家设置为管理员
通过将一些玩家设置为管理员,可以让他们帮助你管理领地的其他玩家,减轻领地所有人的操作负担。同时不必担心管理员会对领地进行破坏性操作(例如删除、缩小领地)。

View File

@ -0,0 +1,32 @@
# 领地成员
## 简介
顾名思义。
## 添加成员
1. 打开领地菜单 `/dominion`
2. 在 `【我的领地】` 中点击对应领地的 `【管理】`
3. 在领地管理界面中选择 `【成员管理】`
4. 点击 `【添加成员】`,选择或输入玩家名称添加为领地成员。
## 管理成员
1. 打开领地菜单 `/dominion`
2. 在 `【我的领地】` 中点击对应领地的 `【管理】`
3. 在领地管理界面中选择 `【成员管理】`,此处列出了领地的所有成员;
- 点击 `【配置权限】` 可以配置此成员在领地内的权限;
- 点击 `【移除成员】` 可以将此成员移出领地;
- 如果一个玩家属于某[权限组](permission-group.md),那么你不能单独编辑他的权限,对应`【配置权限】`为灰色不可点击;
玩家名称最前方标记含义:
- 【A】该领地管理员
- 【N】普通成员
- 【B】黑名单成员没有移动权限
- 【G】属于某个权限组
## 注意事项
- 选择成员页面只会显示在安装了Dominion后登录过服务器的玩家名称因此暂时不支持对从没有在服务器登录过的玩家进行操作。
- 通过搜索框添加成员不支持模糊搜索,需要输入准确的玩家名称(大小写敏感)。

View File

@ -0,0 +1,51 @@
# 权限组
## 简介
权限组可以对一批玩家的权限进行统一的管理、设置,减少大量重复的操作,提高效率。
## 创建权限组
1. 打开领地菜单 `/dominion`
2. 在 `【我的领地】` 中点击对应领地的 `【管理】`
3. 在领地管理界面中选择 `【权限组】`
4. 点击 `【创建权限组】`,输入权限组名称,左键点击绿色混凝土完成创建;
## 权限组成员管理
权限组成员只能是领地成员,因此需要**先将玩家添加为领地成员**,才能将其编入权限组。
- 添加成员:点击权限组后面的`【+】`,选择领地成员;
- 移除成员:点击玩家名字前面的`【-】`
## 管理权限组
- 编辑权限组:点击权限组前的`【编辑】`,配置此权限组的权限或修改权限组的名称;
- 删除权限组:点击权限组前的`【删除】`,删除此权限组;
- 配置权限:在编辑页面,点击对应权限前的 ☑/☐ 来允许或者禁止该权限组内的玩家的行为;
> 注意:删除权限组后,权限组内的成员会被自动移出权限组,成为领地普通成员。
## 其他
- 权限组名称同时也可以作为称号,用来对外展示玩家在领地的角色/地位/身份,详见[权限组称号](../group-title.md)
- 权限组名称支持 RGB 彩色效果,详情参见 [彩色字符](https://ssl.lunadeer.cn:14448/doc/81/)
## Q&A 常见问题
Q我将玩家 A 编入了权限组 G还可以手动设置 A 的成员权限吗?
A不可以编入权限组 G 后此玩家的行为只能由此权限组控制。
---
Q我将玩家 A 编入了权限组 G1还能再编入权限组 G2 吗?
A不可以在一个领地内一个玩家只能属于一个权限组不支持混合。
---
Q我将玩家 A 编入了权限组 G然后一不小心删除了权限组 G 会发生生么?
A玩家会被自动移出权限组成为领地一般成员。

View File

@ -0,0 +1,37 @@
# 权限模板
权限模板功能允许你预先配置好一组权限,然后直接将模板套用到成员身上,即可快速将此成员的权限设置为理想的状态。相比于权限组,模板主要适用于某些特殊的、非通用的权限组和。
例如:你并不喜欢权限组的统一性,你希望每个成员都有自己的权限设置,但是又不想每次都手动设置,这时候权限模板就派上用场了。
## 创建一个模板
1. 打开领地菜单 `/dominion`
2. 在主菜单点击`【权限模板】`
3. 点击`【创建成员权限模板】`,输入模板名称,点击绿色混凝土完成创建;
4. 点击模板前的`【管理】`,配置此模板的权限;
## 使用模板
1. 打开领地菜单 `/dominion`
2. 在 `【我的领地】` 中点击对应领地的 `【管理】`
3. 在领地管理界面中选择 `【成员管理】`,此处列出了领地的所有成员;
4. 点击 `【配置权限】` 后,点击 `【套用模板】`
5. 在列表中点击你想要使用的模板,完成权限模板的套用;
## Q&A 常见问题
Q我将模板 T 套用在了玩家 A 身上,还可以手动设置 A 的成员权限吗?
A可以。
---
Q我将模板 T 套用在了玩家 A 身上,修改玩家 A 的权限会同步修改模板 T 的权限吗?
A不会模板应用是单向的。
---
Q我将模板 T 套用在了玩家 A 身上,修改模板 T 的权限会同步修改玩家 A 的权限吗?
A不会模板应用是一次性的类似于批量处理不会产生连锁影响。

View File

@ -0,0 +1,19 @@
# 访客权限
## 简介
访客是相对于领地成员而言的,通过设置访客权限,你可以控制非领地成员的玩家在领地内的行为。
例如:如果你是个大好人希望提供公共物资给服务器内的其他玩家使用,那么你可以将该领地访客权限中的【容器】权限打开。
这样其他玩家就可以在你的领地内使用你的箱子了,无需给他们领地成员的权限。
## 设置方法
1. 打开领地菜单 `/dominion`
2. 在 `【我的领地】` 中点击对应领地的 `【管理】`
3. 在领地管理界面中选择 `【访客权限】`
4. 点击对应设置项的权限前的 ☑/☐ 来允许或者禁止对应的领地环境行为。
## 封禁一个玩家?
Dominion自身并没有直接提供封禁玩家的功能但是你可以通过将玩家添加为领地成员然后关闭他的【移动】权限来实现类似的效果。具体操作请参考[领地成员](member.md)。

View File

@ -0,0 +1,23 @@
# 修改领地尺寸
## 扩大
面向想要扩大的方向,使用命令:
```
/dominion expand [大小] [领地名称]
```
- 大小可选默认为10
- 领地名称:可选,默认为当前所在领地,如果在子领地内则需要指定领地名称;
## 缩小
面向想要缩小的方向,使用命令:
```
/dominion contract [大小] [领地名称]
```
- 大小可选默认为10
- 领地名称:可选,默认为当前所在领地,如果在子领地内则需要指定领地名称;

View File

@ -0,0 +1,22 @@
# 创建子领地
## 创建方法
创建方法与普通领地相同,可以使用自动创建,也可以手动创建。
命令分别为:
`/dominion create_sub <子领地名称> [父领地名称]`
`/dominion auto_create_sub <子领地名称> [父领地名称]`
当不填写父领地名称时会尝试以当前所在领地为父领地进行创建。
## 权限
当玩家处在一个子领地内时,其行为只收到子领地的权限控制。
子领地的权限设置与傅领地完全相同,参考[权限管理](permission/README.md)。
## 关于子领地嵌套
子领地内部可以再创建子领地,但是子领地的嵌套深度是有限制的,具体嵌套深度由服务器管理员在[配置文件](../operator/config.md)中设置。

View File

@ -0,0 +1,17 @@
# 领地传送
## 设置传送点
1. 打开领地菜单 `/dominion`
2. 在 `【我的领地】` 中点击对应领地的 `【管理】`
3. 在领地管理界面中选择 `【设置传送点】`,此时你的位置会被设置为领地的传送点。
## 配置权限
- 默认情况下,领地传送的权限是关闭的;
- 如果你希望允许**所有人**都能够传送到你的领地,你可以直接在【访客权限】中将【领地传送】打开;
- 如果你**只希望部分玩家**能够传送过来,那么你可以单独为这部分玩家添加【成员权限】,然后打开他们的【领地传送】权限。
## 传送
使用指令传到目标领地:`/dominion tp <领地名称>`

View File

View File

@ -0,0 +1,48 @@
# 管理员基础入门
## 安装方法
1. 将插件放入服务器的 `plugins` 目录下
2. 重启服务器
3. 在 `plugins/Dominion/config.yml` 中配置
## 权限节点
| 功能 | 权限节点 | 默认 |
|--------|------------------|------|
| 普通玩家指令 | dominion.default | true |
| 管理员指令 | dominion.admin | op |
## 玩家“滥发消息”导致被踢
由于本插件使用TUI作为交互方式因此会与玩家客户端之间产生大量消息。而 spigot 增加了滥发消息保护,因此默认情况下当玩家快速操作界面时大概率会被踢出服务器。
![](https://ssl.lunadeer.cn:14437/i/2024/05/17/664723d8a3477.png)
解决办法为在 `spigot.yml` 配置文件中将本插件命令的消息设置为白名单:
```
...
commands:
...
spam-exclusions:
- /dom
- /dominion
```
## 安装本插件后原来可以飞行现在飞不了
如果你安装了一些飞行相关的插件,在打开 flags 中的领地飞行后可能会遇到其他飞行插件不生效的问题。
这些问题包括但不限于:无法起飞、进入领地后“坠机”、离开领地时“坠机”等。
解决办法为在配置文件中添加对应插件的权限节点:
```
# 飞行权限节点 - 拥有以下任意一个权限节点的玩家不会被本插件拦截飞行
FlyPermissionNodes:
- essentials.fly
- cmi.command.fly
```
拥有此列表中任意一个权限节点的玩家不会被本插件拦截飞行行为。

View File

@ -0,0 +1,167 @@
# 配置文件参考
```yaml
Database:
Type: sqlite # pgsql, sqlite, mysql
Host: localhost
Port: '5432'
Name: dominion
User: dominion
Pass: dominion
# 语言设置,参考 languages 文件夹下的文件名
Language: zh-cn
# 自动创建领地的半径,单位为方块
# -1表示不开启
AutoCreateRadius: 10
# 默认玩家圈地限制
Limit:
SpawnProtection: 10 # 出生点保护半径 出生点此范围内不允许圈地-1表示不开启
MinY: -64 # 最小Y坐标
MaxY: 320 # 最大Y坐标
SizeX: 128 # X方向最大长度-1表示不限制
SizeY: 64 # Y方向最大长度-1表示不限制
SizeZ: 128 # Z方向最大长度-1表示不限制
Amount: 10 # 最大领地数量-1表示不限制
Depth: 3 # 子领地深度0表示不开启-1表示不限制
Vert: false # 是否自动延伸到 MaxY 和 MinY
WorldBlackList: # 不允许圈地的世界列表
- some_world
OpByPass: true # 是否允许OP无视领地限制
Teleport:
Enable: true
Delay: 0 # 传送延迟 秒
CoolDown: 0 # 传送冷却 秒
# 自动清理长时间未上线玩家的领地(天)
# -1表示不开启
AutoCleanAfterDays: 180
# 圈地工具名称
Tool: ARROW
# 经济设置
# 需要安装 Vault 前置及插件
Economy:
Enable: false
Price: 10.0 # 圈地价格 单位每方块
OnlyXZ: false # 是否只计算xz平面积
Refund: 0.85 # 删除或缩小领地时的退款比例
# 飞行权限节点 - 拥有以下任意一个权限节点的玩家不会被本插件拦截飞行
FlyPermissionNodes:
- essentials.fly
- cmi.command.fly
# 是否允许玩家从 Residence 迁移领地数据
ResidenceMigration: false
# 权限组称号 - 使用权限组当作称号(需要PlaceholderAPI插件)
# 变量: %dominion_group_title%
# 前后缀如需要加颜色请使用这种格式 &#ffffff
GroupTitle:
Enable: false
Prefix: '['
Suffix: ']'
BlueMap: false
Dynmap: false
CheckUpdate: true
Debug: false
Timer: false # 性能测试计时器
```
## 配置说明
### Database
可选数据库Postgresql、Sqlite3`1.33.4-beta` 开始支持Mysql。
- 如果使用 Postgresql 数据库,需要手动创建数据库。
- 如果使用 sqlite 数据库,插件会自动在插件目录下创建数据库文件。配置文件内的 Host、Port、User、Pass 字段不会被使用。
### Language
语言设置,参考 languages 文件夹下的文件名。
### AutoCreateRadius
配置玩家在使用“自动创建”功能时会自动向XYZ三个方向延伸此距离创建领地。
### Limit
玩家使用此插件的一些限制:
- SpawnProtection出生点半径保护此半径范围内普通玩家无法创建领地
- MinY领地的最小Y坐标
- MaxY领地的最大Y坐标
- SizeXX方向最大长度
- SizeYY方向最大长度
- SizeZZ方向最大长度
- Amount每个玩家拥有的最大领地数量
- Depth子领地深度、0表示不允许子领地、 -1表示不限制
- WorldBlackList不允许创建领地的世界
- Vert当设置为 `true`玩家选择区域创建或者自动创建领地会自动将Y向下向上延伸到MinY和MaxY。**同时也会根据 MinY 和 MaxY 的设置自动调整 SizeY 的配置保证数值逻辑一致。**
### Teleport
领地传送功能,可以配置是否允许使用传送、传送延迟、两次传送之间的冷却时间。
### AutoCleanAfterDays
配置数据自动清理,-1表示不开启。180表示如果一个玩家超过180天没有上线那么会自动删除此玩家在本插件内的所有数据包括他的领地、他在其他玩家领地内的权限等
### Tool
配置手动圈地时的选取工具。如果配置错误会被设置为默认值“ARROW”箭矢。
### Economy
经济控制支持,让玩家需要花费金钱圈地。使用此特性需要安装 Vault 经济前置插件。
- Enable控制是否启用此功能如果不需要请关闭。修改是否启用需要完整重启服务器不要使用管理插件热重载
- Price每个单位方块价值。
- OnlyXZ是否只计算平面面积价值忽略Y轴
- Refund删除、缩小领地时的退还金钱比例。
### FlyPermissionNodes
飞行权限节点,拥有此列表任意一个权限节点的玩家不会被本插件拦截飞行。
EssentialX飞行权限essentials.fly
CMI飞行权限cmi.command.fly
### ResidenceMigration
是否允许玩家从 Residence 迁移领地数据,打开后玩家可以自行决定要从 Residence 中迁移哪些数据到 Dominion。
### GroupTitle
- Enable是否启用权限组称号
- Prefix称号前缀 (如需要加颜色请使用这种格式 &#ffffff
- Suffix称号后缀 (如需要加颜色请使用这种格式 &#ffffff
关于如何配置详见[权限组称号](../manage-dominion/group-title.md)。
### BlueMap
配置是否在 BlueMap 渲染玩家领地。
### Dynmap
配置是否在 Dynmap 渲染玩家领地。
### CheckUpdate
自动检查更新。
### Debug
调试模式如果遇到bug可以尝试打开此开关后复现问题然后将日志发送给我。

View File

@ -0,0 +1,37 @@
# 权限可见性配置
## 简介
Dominion 开发的初衷是仅用于防熊与保护领地,随着使用人数的增加,有些服务器管理员希望可以增加例如“禁止怪物生成”这样的权限。
在作者看来这样的权限属于利用插件功能改变游戏内容,因此这类权限默认情况是不可见、不生效且玩家无法配置的。
通过 flags.yml 服务器管理员可以打开一些默认关闭的权限,让玩家可以在游戏内配置这些权限。
## 配置文件
```yaml
privilege:
anchor:
default: false
enable: true
animal_killing:
default: false
enable: true
...
environment:
animal_spawn:
default: true
enable: false
animal_move:
default: true
enable: false
...
```
- enable是否启用此权限
- default_value权限的默认值
## 注意事项
- 如果关闭了某个权限,那么此权限将不会出现在游戏内 TUI 权限列表中,并且无论默认值如何, Dominion 都不会再对此权限的对应行为作处理;
- 修改默认值不会对已有的权限造成影响,只会对修改之后的新建领地生效;
- 此文件支持热修改,无需重启服务器或者重载插件,只需要使用 `/dom reload_config` 指令重新加载配置文件即可;

View File

@ -0,0 +1,19 @@
# 跨群组服传送
**改功能暂未上线**
## 新服务器配置
1. 配置好 Mysql 或 Pgsql 数据库不可使用sqlite需要将所有子服连接到同一个数据库配置文件的数据库部分一致
2. 将所有子服启动一次后关闭;
3. 修改各子服 `plugins/Dominion/server_info.json` 中的 `name` 字段,需要将其修改为你在群组代理中设置的对应子服的名称;
4. 启动所有子服,大功告成;
## 迁移
目前暂不支持将多个已经在使用此插件的子服合并为群租,你只能选择其一保留领地数据。
需要在你要保留数据的子服中先运行本插件,再安装至其他子服运行一次,随后可参照以上的 2-4 步骤。

View File

@ -0,0 +1,29 @@
# 特权玩家配置
如果你想给赞助玩家或者VIP一些特殊优惠例如更少的圈地价格、可以圈更大的领地等那请继续阅读下面的内容。
## 前置条件
1. Dominion 插件版本 >= 2.2.0;
2. 安装有权限插件,例如 LuckPerms
## 配置圈地限制
假设你现在想为赞助玩家提供优惠,打开 `plugins/Dominion/groups/sponsor.yml` 文件。修改里面的设置为你期望的数值,保存文件。
假如你想再为 VIP 玩家提供更丰厚的优惠,你可以复制一份 `sponsor.yml` 重命名为 `vip.yml` ,然后编辑里面的数值。(这个文件的名称你可以自定义,但是请不要使用中文、特殊字符、空格等)
## 加载配置
使用指令 `/dom reload_config`,加载配置的权限组。
## 将相应玩家添加到权限组
以 LuckPerms 为例,打开权限组查看是否有对应的权限,按照第一步的内容这里需要用 `sponsor``vip` 两个权限组:
<img src="https://ssl.lunadeer.cn:14437/i/2024/08/20/66c46029af3ed.png" alt="" width="20%">
如果没有则需要创建,创建完成后根据你的需要给对应玩家添加 `group.sponsor` 或者 `group.vip` 即可。
最后保存 LuckPerms 配置,即可生效。

0
docs/zh-tw/README.md Normal file
View File