# MapManager-Core
MapManager-Core 是一个简单易用且功能强大的 Minecraft 服务器插件,提供高效灵活的多世界管理能力。
## 安装 MapManager
请确保在安装前已安装 LuckPerms 和 Multiverse-core
1. **下载插件**
2. **安装插件**: 将下载的 `MapManager-Core-{version}.jar` 文件放入服务器的 `plugins` 目录下。
3. **启动服务器**: 如果服务器正在运行,则需要重启服务器以加载插件。如果服务器未启动,则直接启动服务器。
## 世界权限组
世界权限分为三个类别:`admin`、`builder`、`visitor`。
- **admin**
- 世界管理员,可以添加或移除私人世界成员,管理物理(方块更新)、爆炸保护、公共状态、名称和世界生成点。
- **builder**
- 建造者,可以在私人世界中建造。可用的权限在 `worldbase` 中进行配置。
- **visitor**
- 访客,可以进入私人世界,但没有建造权限。
## 配置权限组
MapManager-Core 在首次加载时会自动创建两个权限组:`worldbase` 和 `apply`。以下是如何配置这两个权限组的指南:
### worldbase 权限组
`worldbase` 权限组为世界中的建造者 (builder 组) 提供必要的权限。创建世界时,对应的世界权限组会自动继承这些权限。
我们建议为建造者添加世界建造权限(例如, essentials.build, buildcore.protect.*)、WorldEdit 权限等。
### apply 权限组
`apply` 权限组为拥有私人世界权限的玩家提供服务器范围内的权限。世界创建时创建的权限组将继承 `apply`。
您可以为公共材质库或将玩家作为成员托管地图配置 `apply` 权限组的权限。
此步骤是可选的。
1. **添加权限**: 类似于上面的命令,您只需要将相应的权限节点添加到 apply 组。
## 配置文件
MapManager 的配置文件 `MapManagerConfig.yml` 提供了全局设置选项:
```yaml
!MapManagerConfig #配置文件的标记,请勿修改
global:
exploded: null # 是否全局启用爆炸伤害。选项:true, false, null
physical: null # 是否全局启用物理效果。选项:true, false, null
```
exploded: 控制是否允许爆炸伤害效果。null 值表示遵守每个世界的设置。
physical: 控制是否允许物理效果(例如方块掉落)。null 值表示遵守每个世界的设置。
## 命令
以下是 MapManager 注册的所有命令。
* /world admins
列出世界中的所有管理员。
* /world admin
将管理员添加到或从世界中移除。
* /world builders
列出世界中的所有建造者。
* /world builder
将建造者添加到或从世界中移除。
* /world visitors
列出世界中的所有访客。
* /world visitor
将访客添加到或从世界中移除。
提示:使用 "*" 填充 以使世界公共化。
* /world physics [info|true|false]
* info 或 null - 显示世界中是否开启了物理效果。
* true - 开启物理效果
* false - 关闭物理效果
* /world explosion [info|true|false]
* info 或 null - 显示世界中是否开启了爆炸效果。
* true - 开启爆炸效果。
* false - 关闭爆炸效果。
* /world pvp [info|true|false]
* info 或 null - 显示世界中是否允许 PvP。
* true - 开启 PvP。
* false - 关闭 PvP。
* /world kick
将玩家从您的世界中踢出。
* /world setname
设置世界名称。
* /world setspawn
设置生成点。
* /world reload
需要 "mapmanager.administrator" 权限。
重新加载配置文件。
* /import n:\ a:\[alias\] c:\[color\] g:\ o:\
需要 "mapmanager.command.import" 权限。
导入和初始化世界。
* /delete [world]
需要 "mapmanager.command.delete" 权限。
删除世界。
* /write
需要 "worldmanager.command.write" 权限。
打印所有世界的信息。
## 开发
### 依赖
Maven
```xml
sonatype
https://oss.sonatype.org/content/groups/public/
work.alsace.mapmanager
MapManager-Core
3.0
provided
```
Gradle (kotlin)
```kts
maven(url = "https://oss.sonatype.org/content/groups/public/")
compileOnly("work.alsace.mapmanager:MapManager-Core:3.0")
```
### JavaDoc
[JavaDoc](https://www.alsace.team/MapManager/javadoc/)
### 如何集成 MapManager-Core
```java
MapManager mapManagerCore = ((MapManager) Objects
.requireNonNull(Bukkit.getServer()
.getPluginManager()
.getPlugin("MapManager-Core"));
```
[文档](https://alsaceteam.feishu.cn/wiki/KFLewAQZiiHhRFkXhRQcaQmMn2c)