Asthenia 发表于 前天 16:42

AsPermission:开源的轻量级权限插件

本帖最后由 Asthenia 于 2025-7-31 21:38 编辑

<p align="center"> ❤️ 由 Asthenia</p>
源代码:Asthenia0412/AsPermission: 一款开源的支持RBAC权限模型的Minecraft权限插件
源代码:Asthenia0412/AsPermission: 一款开源的支持RBAC权限模型的Minecraft权限插件
源代码:Asthenia0412/AsPermission: 一款开源的支持RBAC权限模型的Minecraft权限插件
源代码:Asthenia0412/AsPermission: 一款开源的支持RBAC权限模型的Minecraft权限插件
源代码:Asthenia0412/AsPermission: 一款开源的支持RBAC权限模型的Minecraft权限插件
# AsPermission - Minecraft RBAC 权限管理系统

!(https://img.shields.io/badge/Minecraft-1.21.8-green)
!(https://img.shields.io/badge/Java-21-blue)
!(https://img.shields.io/badge/License-MIT-orange)

## 📖 项目简介

AsPermission 是一个基于 RBAC (基于角色的访问控制) 模型的 Minecraft 权限管理系统插件,专为 Paper 服务端设计。提供细粒度的权限控制和高效的数据持久化存储。

## ✨ 核心特性

### 🛡️ RBAC 权限模型

- **用户→权限组→权限** 三级权限结构
- 支持多级权限继承
- 动态权限实时更新

### 💾 数据持久化

- YAML 格式存储配置
- 自动保存用户权限组关联
- 权限组配置独立存储

### 🔌 开放 API

- 兼容 As 系列插件生态
- 提供完整的 JavaDoc 文档
- 支持事件监听和自定义扩展

## 🚀 快速开始

### 安装要求

- **Java 21+**
- **Paper 1.21.8** 服务端
- 至少 2MB 可用内存

### 安装步骤

1. 下载最新版本插件 JAR 文件
2. 放入服务器的 `plugins/` 目录
3. 重启服务器

## ⚙️ 命令列表

### 用户组管理命令

| 命令                                        | 描述             | 权限节点       |
| ------------------------------------------- | ---------------- | -------------- |
| `/perm addplayertogroup <玩家> <组名>`      | 添加玩家到权限组 | `asperm.admin` |
| `/perm deleteplayerfromgroup <玩家> <组名>` | 从组移除玩家   | `asperm.admin` |
| `/perm creategroup <组名>`                  | 创建新权限组   | `asperm.admin` |
| `/perm deletegroup <组名>`                  | 删除权限组       | `asperm.admin` |
| `/perm listgroups`                        | 列出所有权限组   | `asperm.use`   |
| `/perm listgroupplayers <组名>`             | 列出组内所有玩家 | `asperm.use`   |

### 权限管理命令

| 命令                                 | 描述               | 权限节点       |
| -------------------------------------- | ------------------ | -------------- |
| `/perm addpermission <组名> <权限>`    | 向组添加权限       | `asperm.admin` |
| `/perm deletepermission <组名> <权限>` | 从组移除权限       | `asperm.admin` |
| `/perm listpermissions <组名>`         | 列出组的所有权限   | `asperm.use`   |
| `/perm checkpermission <玩家> <权限>`| 检查玩家是否有权限 | `asperm.use`   |

### 系统命令

| 命令         | 描述         | 权限节点       |
| -------------- | ------------ | -------------- |
| `/perm reload` | 重载权限系统 | `asperm.admin` |
| `/perm help`   | 显示帮助信息 | `asperm.use`   |

## 📂 文件结构

```
plugins/AsPermission/
├── config.yml       # 主配置文件
├── groups/          # 权限组存储目录
│   ├── admin.yml
│   ├── default.yml
│   └── vip.yml
└── users.yml      # 用户数据文件
```

## 🛠️ 开发者指南

### Maven 配置

```
<repositories>
    <repository>
      <id>papermc</id>
      <url>https://repo.papermc.io/repository/maven-public/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
      <groupId>org.Asthenia</groupId>
      <artifactId>AsPermission</artifactId>
      <version>1.0.0</version>
      <scope>provided</scope>
    </dependency>
</dependencies>
```

### API 使用示例

```
// 检查玩家权限
boolean hasPerm = AsPermissionAPI.hasPermission(player, "minecraft.command.gamemode");

// 获取玩家所在组
Set<String> groups = AsPermissionAPI.getPlayerGroups(player);

// 检查玩家是否在组中
boolean isVIP = AsPermissionAPI.isPlayerInGroup(player, "vip");
```

## ⚠️ 注意事项

1. 使用阿里云镜像时需在

   ```
   settings.xml
   ```

    中添加:

   ```
   <mirrorOf>*,!papermc</mirrorOf>
   ```

2. 建议定期备份 `plugins/AsPermission/` 目录

3. 修改权限组后建议执行 `/perm reload`
------

<p align="center"> ❤️ 由 Asthenia 开发</p>





teddyxlandlee 发表于 前天 19:41

本帖最后由 teddyxlandlee 于 2025-7-31 19:45 编辑

你说这个插件是开源的,那么源码呢?

本项目采用 MIT License,详情请查看 LICENSE 文件。

另外你给出的 LICENSE 链接是腾讯元宝的链接,指向不存在的地址。我大概可以断定你使用AI写稿,然后忘记审稿了,因为这样的文件路径很像是 AI 工具页面的相对路径。

Asthenia 发表于 前天 21:38

teddyxlandlee 发表于 2025-7-31 19:41
你说这个插件是开源的,那么源码呢?




源代码在文档的最上方,文档的确是腾讯元宝生成的。

teddyxlandlee 发表于 前天 23:00

提醒一下哈,.gitignore一定要设置好,要不然仓库结构会很乱()
具体的可以上网搜(
页: [1]
查看完整版本: AsPermission:开源的轻量级权限插件