Compare commits
2 Commits
dev/26.1
...
0a45be832b
| Author | SHA1 | Date | |
|---|---|---|---|
| 0a45be832b | |||
| 376d63e906 |
21
.github/workflows/release.yml
vendored
21
.github/workflows/release.yml
vendored
@@ -11,25 +11,28 @@ permissions:
|
|||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 检出代码
|
- name: 检出代码
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: 设置 Java
|
- name: 设置 Java 21
|
||||||
uses: actions/setup-java@v4
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
java-version: '21'
|
java-version: '21'
|
||||||
distribution: 'temurin'
|
distribution: 'temurin'
|
||||||
cache: maven
|
cache: gradle
|
||||||
|
|
||||||
- name: 构建插件
|
- name: 授予执行权限
|
||||||
run: mvn clean package -B
|
run: chmod +x gradlew
|
||||||
|
|
||||||
|
- name: 构建全部版本
|
||||||
|
run: ./gradlew buildAllVersions
|
||||||
|
|
||||||
- name: 创建发行版
|
- name: 创建发行版
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
with:
|
with:
|
||||||
files: target/essentialsc-*.jar
|
files: build/libs/EssentialsC*.jar
|
||||||
generate_release_notes: true
|
generate_release_notes: true
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
8
.gitignore
vendored
8
.gitignore
vendored
@@ -4,7 +4,7 @@
|
|||||||
# Log files
|
# Log files
|
||||||
*.log
|
*.log
|
||||||
|
|
||||||
# Package Files
|
# Package files
|
||||||
*.jar
|
*.jar
|
||||||
*.war
|
*.war
|
||||||
*.nar
|
*.nar
|
||||||
@@ -50,14 +50,14 @@ bin/
|
|||||||
# VS Code
|
# VS Code
|
||||||
.vscode/
|
.vscode/
|
||||||
|
|
||||||
# macOS
|
# System files
|
||||||
.DS_Store
|
.DS_Store
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
|
||||||
# Test server (不要上传测试服务器文件)
|
# 测试服务器目录
|
||||||
test-server/
|
test-server/
|
||||||
|
|
||||||
# Reference files (不要上传参考资料)
|
# 参考资料目录
|
||||||
references/
|
references/
|
||||||
|
|
||||||
# Plugin build output
|
# Plugin build output
|
||||||
|
|||||||
260
README.md
260
README.md
@@ -1,189 +1,157 @@
|
|||||||
# EssentialsC
|
# EssentialsC
|
||||||
|
|
||||||
> 一个轻量级的 Paper 服务器插件,灵感来自 CMI,但更加精简、易用且现代化。
|
轻量、现代、面向 Paper 服务端的基础功能插件,灵感来自 CMI,但更聚焦于常用能力与模块化构建。
|
||||||
|
|
||||||
[](https://github.com/Coldsmiles/EssentialsC/releases)
|
[](https://github.com/Coldsmiles/EssentialsC/releases)
|
||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
[](https://papermc.io/)
|
[](https://papermc.io/)
|
||||||
[](https://www.oracle.com/java/)
|
[](https://adoptium.net/)
|
||||||
|
|
||||||
## ✨ 核心特性
|
## 项目定位
|
||||||
|
|
||||||
### 🎯 随身功能方块
|
- 最低支持版本为 `Paper 1.21.11`
|
||||||
随时随地打开各种功能性方块,无需放置实体方块:
|
- 已适配 `Paper 26.1.2`
|
||||||
- **工作台** (`/workbench`, `/wb`)
|
- 构建环境固定为 `Java 21`
|
||||||
- **铁砧** (`/anvil`)
|
- 配置与文本分离:行为配置放在 `config.yml`,提示文本放在 `lang/`
|
||||||
- **制图台** (`/cartographytable`, `/ct`)
|
- 支持模块裁剪,便于按需构建不同版本
|
||||||
- **砂轮** (`/grindstone`, `/gs`)
|
|
||||||
- **织布机** (`/loom`)
|
|
||||||
- **锻造台** (`/smithingtable`, `/st`)
|
|
||||||
- **切石机** (`/stonecutter`, `/sc`)
|
|
||||||
- **末影箱** (`/enderchest`, `/ec`)
|
|
||||||
|
|
||||||
### 📦 智能容器管理
|
## 主要功能
|
||||||
- **潜影盒快捷打开** - 潜行+右键直接打开(类似 CMI)
|
|
||||||
- ✅ 支持自定义标题(可配置)
|
|
||||||
- ✅ 防刷物品机制(快照验证 + 数量检查)
|
|
||||||
- ✅ 防止套娃(不能放入另一个潜影盒)
|
|
||||||
- ✅ 异常恢复(物品丢失自动掉落)
|
|
||||||
|
|
||||||
### 🔧 实用工具
|
### 便捷方块
|
||||||
- **帽子** (`/hat`) - 将手中物品戴在头上
|
|
||||||
- **自杀** (`/suicide`, `/die`) - 快速自杀
|
|
||||||
- **飞行** (`/fly`) - 切换飞行模式
|
|
||||||
- **修复** (`/repair`, `/rep`) - 修复手中或所有物品
|
|
||||||
- **饱食** (`/feed`) - 补满饱食度
|
|
||||||
|
|
||||||
### 💚 生存辅助
|
- `/workbench` `(/wb)`
|
||||||
- **治疗** (`/heal`) - 恢复生命值和饱食度
|
- `/anvil`
|
||||||
- **隐身** (`/vanish`, `/v`) - 管理员隐身模式
|
- `/cartographytable` `(/ct, /cartography)`
|
||||||
|
- `/grindstone` `(/gs)`
|
||||||
|
- `/loom`
|
||||||
|
- `/smithingtable` `(/st, /smithing)`
|
||||||
|
- `/stonecutter` `(/sc)`
|
||||||
|
- `/enderchest` `(/ec)`
|
||||||
|
- `/essc blocks` 打开便捷菜单
|
||||||
|
|
||||||
### 📊 管理功能
|
### 玩家功能
|
||||||
- **玩家查询** (`/seen`, `/info`) - 查看玩家上线时间和信息
|
|
||||||
- **功能方块菜单** (`/essc blocks`) - GUI 方块集合面板
|
|
||||||
- **配置重载** (`/essc reload`) - 重新加载配置文件
|
|
||||||
|
|
||||||
---
|
- `/fly`
|
||||||
|
- `/nightvision` `(/nv)`
|
||||||
|
- `/glow`
|
||||||
|
- `/heal`
|
||||||
|
- `/feed`
|
||||||
|
- `/repair` `(/rep)`
|
||||||
|
- `/hat`
|
||||||
|
- `/suicide` `(/die)`
|
||||||
|
- `/vanish` `(/v)`
|
||||||
|
- `/seen` `(/info)`
|
||||||
|
- `/tpsbar`
|
||||||
|
- `/essc admin` 管理模式切换
|
||||||
|
|
||||||
## 🌍 多语言支持
|
### 其它功能
|
||||||
|
|
||||||
- ✅ 完整的中文和英文配置
|
- Shift + 右键快捷打开潜影盒
|
||||||
- ✅ 方块标题自动跟随客户端语言
|
- 潜影盒交互保护,尽量避免刷物品、吞物品和嵌套放入问题
|
||||||
- ✅ 可自定义所有消息文本
|
- 管理模式独立背包、装备栏与状态切换
|
||||||
|
- Enderman 掉落方块控制
|
||||||
|
- JEI 配方同步修复
|
||||||
|
|
||||||
## ⚡ 权限系统
|
## 构建变体
|
||||||
|
|
||||||
- ✅ 精细的权限管理
|
项目目前提供三个常用构建版本:
|
||||||
- ✅ 帮助菜单智能显示(只显示有权限的命令)
|
|
||||||
- ✅ 默认仅 OP 可用,可通过权限插件授权
|
|
||||||
- ✅ CMI 风格的命令别名支持
|
|
||||||
|
|
||||||
## 📦 快速开始
|
| 版本 | 产物名 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 标准版 | `EssentialsC-<version>.jar` | 默认版本,不包含 `mob-drops` 模块 |
|
||||||
|
| 完整版 | `EssentialsC-all-<version>.jar` | 包含全部模块 |
|
||||||
|
| 精简版 | `EssentialsC-lite-<version>.jar` | 仅排除 `blocks` 模块,保留 `mob-drops` |
|
||||||
|
|
||||||
### 系统要求
|
如果需要进一步裁剪模块,也可以使用自定义构建参数生成 `custom` 版本。
|
||||||
- **服务器**: Paper 1.21+
|
|
||||||
- **Java**: 21+
|
|
||||||
|
|
||||||
### 安装步骤
|
## 安装说明
|
||||||
1. 下载最新版本的 [`essentialsc-*.jar`](https://github.com/Coldsmiles/EssentialsC/releases)
|
|
||||||
2. 将文件放入服务器的 `plugins` 文件夹
|
|
||||||
3. 重启服务器
|
|
||||||
4. 编辑 `plugins/EssentialsC/config.yml` 配置语言
|
|
||||||
5. (可选)使用权限插件为玩家授予相应权限
|
|
||||||
|
|
||||||
## 🎮 命令列表
|
1. 从 [Releases](https://github.com/Coldsmiles/EssentialsC/releases) 下载所需版本。
|
||||||
|
2. 将插件放入服务端的 `plugins/` 目录。
|
||||||
|
3. 启动一次服务端以生成配置文件。
|
||||||
|
4. 按需修改 `plugins/EssentialsC/config.yml` 与 `plugins/EssentialsC/lang/` 下的语言文件。
|
||||||
|
5. 如有需要,使用权限插件为玩家授权。
|
||||||
|
|
||||||
### 基础命令
|
## 配置说明
|
||||||
| 命令 | 说明 |
|
|
||||||
|------|------|
|
|
||||||
| `/essc help` | 显示帮助菜单(根据权限动态显示) |
|
|
||||||
| `/essc reload` | 重载配置(管理员) |
|
|
||||||
| `/essc blocks` | 打开功能方块菜单 |
|
|
||||||
|
|
||||||
### 功能方块命令
|
当前配置结构以“行为配置”和“文本配置”分离为原则:
|
||||||
| 命令 | 别名 | 说明 |
|
|
||||||
|------|------|------|
|
|
||||||
| `/workbench` | `/wb` | 打开工作台 |
|
|
||||||
| `/anvil` | - | 打开铁砧 |
|
|
||||||
| `/cartographytable` | `/ct` | 打开制图台 |
|
|
||||||
| `/grindstone` | `/gs` | 打开砂轮 |
|
|
||||||
| `/loom` | - | 打开织布机 |
|
|
||||||
| `/smithingtable` | `/st` | 打开锻造台 |
|
|
||||||
| `/stonecutter` | `/sc` | 打开切石机 |
|
|
||||||
| `/enderchest` | `/ec` | 打开末影箱 |
|
|
||||||
|
|
||||||
### 其他命令
|
- `config.yml`
|
||||||
| 命令 | 别名 | 说明 |
|
- 语言选择
|
||||||
|------|------|------|
|
- 管理模式行为
|
||||||
| `/hat` | - | 将手中物品戴在头上 |
|
- JEI 同步开关
|
||||||
| `/suicide` | `/die` | 自杀 |
|
- 掉落控制
|
||||||
| `/fly` | - | 切换飞行模式 |
|
- TPSBar 模式
|
||||||
| `/heal` | - | 恢复生命值和饱食度 |
|
- 便捷菜单布局
|
||||||
| `/vanish` | `/v` | 切换隐身模式(管理员) |
|
- `lang/zh_CN.yml`、`lang/en_US.yml`
|
||||||
| `/seen` | `/info` | 查看玩家信息(管理员) |
|
- 命令反馈
|
||||||
| `/feed` | - | 补满饱食度 |
|
- 帮助信息
|
||||||
| `/repair` | `/rep` | 修复手中或所有物品 |
|
- 菜单文本
|
||||||
|
- 管理模式文本
|
||||||
|
- TPSBar 文本
|
||||||
|
|
||||||
> 💡 **提示**: 使用 `/repair all` 可以修复背包中的所有物品
|
配置文件包含 `config-version`,后续如有结构升级,可基于版本号进行迁移与重建。
|
||||||
|
|
||||||
## ⚙️ 配置说明
|
## 权限示例
|
||||||
|
|
||||||
### config.yml
|
常用权限节点:
|
||||||
```yaml
|
|
||||||
# 语言设置 (en_US, zh_CN)
|
|
||||||
language: "zh_CN"
|
|
||||||
|
|
||||||
# 通用设置
|
```text
|
||||||
settings:
|
essentialsc.command.blocks
|
||||||
enable-feedback: true # 启用命令反馈消息
|
essentialsc.command.workbench
|
||||||
|
essentialsc.command.enderchest
|
||||||
# 潜影盒设置
|
essentialsc.command.fly
|
||||||
shulkerbox:
|
essentialsc.command.nightvision
|
||||||
default-title: "&e潜影盒" # 默认标题(支持颜色代码)
|
essentialsc.command.glow
|
||||||
|
essentialsc.command.heal
|
||||||
|
essentialsc.command.feed
|
||||||
|
essentialsc.command.repair
|
||||||
|
essentialsc.command.vanish
|
||||||
|
essentialsc.command.seen
|
||||||
|
essentialsc.command.admin
|
||||||
|
essentialsc.command.tpsbar
|
||||||
|
essentialsc.shulkerbox.open
|
||||||
|
essentialsc.mobdrops.enderman
|
||||||
|
essentialsc.*
|
||||||
```
|
```
|
||||||
|
|
||||||
### 自定义语言
|
具体默认值与完整节点以 `paper-plugin.yml` 为准。
|
||||||
编辑 `plugins/EssentialsC/lang/` 目录下的语言文件来自定义所有消息文本。
|
|
||||||
|
|
||||||
## 🔐 权限节点
|
## 从源码构建
|
||||||
|
|
||||||
所有命令默认需要 OP 权限。使用权限插件授予权限:
|
|
||||||
|
|
||||||
### 基础权限
|
|
||||||
```
|
|
||||||
essentialsc.command.workbench # 工作台
|
|
||||||
essentialsc.command.anvil # 铁砧
|
|
||||||
essentialsc.command.cartographytable # 制图台
|
|
||||||
essentialsc.command.grindstone # 砂轮
|
|
||||||
essentialsc.command.loom # 织布机
|
|
||||||
essentialsc.command.smithingtable # 锻造台
|
|
||||||
essentialsc.command.stonecutter # 切石机
|
|
||||||
essentialsc.command.enderchest # 末影箱
|
|
||||||
essentialsc.command.hat # 帽子
|
|
||||||
essentialsc.command.suicide # 自杀
|
|
||||||
essentialsc.command.fly # 飞行
|
|
||||||
essentialsc.command.heal # 治疗
|
|
||||||
essentialsc.command.vanish # 隐身
|
|
||||||
essentialsc.command.seen # 玩家查询
|
|
||||||
essentialsc.command.feed # 饱食度
|
|
||||||
essentialsc.command.repair # 修复
|
|
||||||
essentialsc.shulkerbox.open # 潜行+右键潜影盒
|
|
||||||
```
|
|
||||||
|
|
||||||
### 管理权限
|
|
||||||
```
|
|
||||||
essentialsc.command.blocks # 功能方块菜单
|
|
||||||
essentialsc.command.reload # 重载配置
|
|
||||||
essentialsc.command.help # 帮助(默认开放)
|
|
||||||
```
|
|
||||||
|
|
||||||
### 通配符
|
|
||||||
```
|
|
||||||
essentialsc.* # 所有权限
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🔨 从源码构建
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/Coldsmiles/EssentialsC.git
|
git clone https://github.com/Coldsmiles/EssentialsC.git
|
||||||
cd EssentialsC
|
cd EssentialsC
|
||||||
./gradlew build
|
./gradlew buildAllVersions
|
||||||
```
|
```
|
||||||
|
|
||||||
编译后的文件位于 `build/libs/essentialsc-*.jar`
|
Windows 可使用:
|
||||||
|
|
||||||
## 🤝 贡献
|
```powershell
|
||||||
|
.\gradlew.bat buildAllVersions
|
||||||
|
```
|
||||||
|
|
||||||
欢迎提交 Issue 和 Pull Request!
|
构建产物输出到 `build/libs/`。
|
||||||
|
|
||||||
## 📄 许可证
|
常用任务:
|
||||||
|
|
||||||
本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件
|
```bash
|
||||||
|
./gradlew shadowJarStandard
|
||||||
|
./gradlew shadowJarAll
|
||||||
|
./gradlew shadowJarLite
|
||||||
|
```
|
||||||
|
|
||||||
## 👨💻 作者
|
## 开发说明
|
||||||
- GitHub: [@Coldsmiles](https://github.com/Coldsmiles)
|
|
||||||
- 网站: www.infstar.cn
|
|
||||||
|
|
||||||
## ⭐ 支持
|
- 使用 `paperweight-userdev` 进行 Paper 开发
|
||||||
|
- 运行时通过反射加载可选模块,避免裁剪版本因类缺失而启动失败
|
||||||
|
- 发布流程基于 GitHub Actions 和 Gradle Wrapper
|
||||||
|
|
||||||
如果觉得这个插件对你有帮助,请考虑在 GitHub 上给它一个 Star!
|
## 许可证
|
||||||
|
|
||||||
|
本项目基于 [MIT License](LICENSE) 开源。
|
||||||
|
|
||||||
|
## 仓库
|
||||||
|
|
||||||
|
- GitHub: <https://github.com/Coldsmiles/EssentialsC>
|
||||||
|
- Gitea: <https://git.infstar.cn/InfStarMC/EssentialsC>
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
pluginManagement {
|
pluginManagement {
|
||||||
repositories {
|
repositories {
|
||||||
// 阿里云 Gradle 插件镜像(优先)
|
// 阿里云 Gradle 插件镜像,优先使用以提升国内拉取稳定性
|
||||||
maven {
|
maven {
|
||||||
name = 'aliyun-gradle-plugin'
|
name = 'aliyun-gradle-plugin'
|
||||||
url = uri('https://maven.aliyun.com/repository/gradle-plugin')
|
url = uri('https://maven.aliyun.com/repository/gradle-plugin')
|
||||||
}
|
}
|
||||||
// Gradle 官方插件仓库
|
// Gradle 官方插件仓库
|
||||||
gradlePluginPortal()
|
gradlePluginPortal()
|
||||||
// PaperMC 官方仓库(用于 paperweight 插件)
|
// PaperMC 官方仓库,用于解析 paperweight 插件
|
||||||
maven {
|
maven {
|
||||||
name = 'papermc'
|
name = 'papermc'
|
||||||
url = uri('https://repo.papermc.io/repository/maven-public/')
|
url = uri('https://repo.papermc.io/repository/maven-public/')
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: EssentialsC
|
name: EssentialsC
|
||||||
description: 适用于 Paper 服务端的轻量基础插件。
|
description: 适用于 Paper 服务端的轻量基础功能插件。
|
||||||
version: ${version}
|
version: ${version}
|
||||||
|
|
||||||
main: cn.infstar.essentialsC.EssentialsC
|
main: cn.infstar.essentialsC.EssentialsC
|
||||||
@@ -69,7 +69,7 @@ permissions:
|
|||||||
description: 允许使用 /feed
|
description: 允许使用 /feed
|
||||||
default: op
|
default: op
|
||||||
essentialsc.command.feed.others:
|
essentialsc.command.feed.others:
|
||||||
description: 允许为其他玩家补食
|
description: 允许为其他玩家补充饥饿值
|
||||||
default: op
|
default: op
|
||||||
essentialsc.command.repair:
|
essentialsc.command.repair:
|
||||||
description: 允许使用 /repair
|
description: 允许使用 /repair
|
||||||
@@ -86,11 +86,14 @@ permissions:
|
|||||||
essentialsc.command.reload:
|
essentialsc.command.reload:
|
||||||
description: 允许使用 /essc reload
|
description: 允许使用 /essc reload
|
||||||
default: op
|
default: op
|
||||||
|
essentialsc.command.tpsbar:
|
||||||
|
description: 允许使用 /tpsbar
|
||||||
|
default: op
|
||||||
essentialsc.shulkerbox.open:
|
essentialsc.shulkerbox.open:
|
||||||
description: 允许通过 Shift+右键快捷打开潜影盒
|
description: 允许通过 Shift+右键快捷打开潜影盒
|
||||||
default: op
|
default: op
|
||||||
essentialsc.mobdrops.enderman:
|
essentialsc.mobdrops.enderman:
|
||||||
description: 允许控制末影人掉落
|
description: 允许控制末影人掉落方块
|
||||||
default: op
|
default: op
|
||||||
essentialsc.*:
|
essentialsc.*:
|
||||||
description: 授予 EssentialsC 的全部权限
|
description: 授予 EssentialsC 的全部权限
|
||||||
@@ -121,5 +124,6 @@ permissions:
|
|||||||
essentialsc.command.admin: true
|
essentialsc.command.admin: true
|
||||||
essentialsc.command.help: true
|
essentialsc.command.help: true
|
||||||
essentialsc.command.reload: true
|
essentialsc.command.reload: true
|
||||||
|
essentialsc.command.tpsbar: true
|
||||||
essentialsc.shulkerbox.open: true
|
essentialsc.shulkerbox.open: true
|
||||||
essentialsc.mobdrops.enderman: true
|
essentialsc.mobdrops.enderman: true
|
||||||
|
|||||||
Reference in New Issue
Block a user