- 版权类型
- 原创
- 插件中文名称
- 城镇种族
- 插件英文名称
- Racial town
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- 语言支持
- 中文(简体)
- 前置组件
- Placeholderapi
- 适配版本(Java)
- 1.21
[MD]
# HotelRoom - 城镇领地 × 种族进化 RPG 插件
---
## 📌 插件概述
**HotelRoom** 是一款专为 Minecraft Paper 服务器打造的高质量 RPG 增强插件,将**城镇领地管理**与**种族进化系统**完美融合。玩家可以在建设家园的同时,体验不同种族的独特成长路线,打造沉浸式的生存冒险体验。
**开源地址**:https://github.com/JSGDJD/Racial_Town
---
## ✨ 核心功能
### 🏠 城镇领地系统
完整的领地管理系统,支持三种领地类型:
| 类型 | 说明 | 适用场景 |
|------|------|----------|
| **私有领地** | 玩家专属私人空间,完整保护 | 个人住宅、私人仓库 |
| **公共领地** | 多人共享区域,支持领取 | 公寓楼、社区住宅 |
| **官方领地** | 服务器官方管理区域 | 商店、办公区、公共设施 |
**特色功能**:
- 🔒 完整的方块保护机制
- 👥 成员权限管理
- 🏆 荣誉门槛设置
- 💾 自动外观快照,重启后自动恢复
- 🗺️ 直观的 GUI 导航界面
---
### 🧬 种族进化系统
丰富的种族系统,让每个玩家都有独特的成长路线:
**种族特性**:
- 🧝 多种族选择(人类、精灵、矮人等)
- 📈 等级成长系统,属性随等级提升
- 🔄 种族进化路线,解锁新能力
- 🎨 种族专属外观变化
- 🎙️ 种族专属语音聊天频道
**成长机制**:
- 击杀怪物获取种族经验
- 完成任务获得额外经验奖励
- 种族进化解锁强力技能
---
### ⚔️ 自定义属性系统
强大的属性系统,支持 20+ 种属性:
**攻击属性**:
| 属性 | 说明 |
|------|------|
| 物理伤害 | 增加普通攻击伤害 |
| 魔法伤害 | 增加魔法攻击伤害 |
| 暴击率 | 触发暴击的概率 |
| 暴击伤害 | 暴击时的伤害倍率 |
| 护甲穿透 | 无视目标护甲值 |
| 魔法穿透 | 无视目标魔法防御 |
**防御属性**:
| 属性 | 说明 |
|------|------|
| 物理防御 | 减少受到的物理伤害 |
| 魔法防御 | 减少受到的魔法伤害 |
| 护甲值 | 基础护甲减伤 |
| 闪避率 | 完全闪避攻击的概率 |
| 格挡率 | 格挡攻击的概率 |
**生存属性**:
| 属性 | 说明 |
|------|------|
| 生命值 | 最大生命值上限 |
| 生命恢复 | 每秒恢复生命值 |
| 生命偷取 | 攻击时恢复生命 |
| 魔法值 | 魔法值上限 |
| 魔法恢复 | 每秒恢复魔法值 |
**辅助属性**:
| 属性 | 说明 |
|------|------|
| 移动速度 | 移动速度加成 |
| 攻击速度 | 攻击频率加成 |
| 冷却缩减 | 技能冷却减少 |
| 经验加成 | 获取经验增加 |
| 掉落加成 | 物品掉落率增加 |
**装备属性**:
- 支持在物品 Lore 中添加属性
- 装备穿戴自动生效
- 支持百分比和固定值加成
---
### 👨👩👧👦 家族系统
完整的家族社交系统:
**家族功能**:
- 🏰 创建家族,建立势力
- 👥 邀请成员,壮大队伍
- 📊 家族等级,解锁特权
- 💬 家族聊天,专属频道
- 🎯 家族职位,权限管理
**职位体系**:
| 职位 | 权限 |
|------|------|
| 族长 | 完全管理权限 |
| 副族长 | 邀请/踢出成员 |
| 成员 | 基础家族功能 |
---
## 🎮 命令大全
### 领地命令
```
/hrlist - 打开领地列表与导航
/hotelroom [子命令] - 主命令
/createhotel <名称> [system] - 创建领地(管理员)
/createpublichotel <名称> - 创建公共领地(管理员)
/createofficialhotel <类型> <名称> - 创建官方领地(管理员)
/givehotel <领地> <玩家> - 赠送领地(管理员)
/removehotel <领地> - 删除领地(管理员)
/abandon [领地] - 放弃领地
```
### 属性命令
```
/attr check [玩家] - 查看属性
/attr set <玩家> <属性> <值> - 设置属性(管理员)
/attr add <玩家> <属性> <值> - 增加属性(管理员)
/attr reset <玩家> - 重置属性(管理员)
/attr reload - 重载配置(管理员)
/attr item add <属性> <值> - 给物品添加属性(管理员)
/attr item remove <行号> - 移除物品属性(管理员)
/attr item list - 查看物品属性列表
```
### 种族命令
```
/racegui - 打开种族进化界面
/changerace <种族> - 切换种族
/racevoice - 种族语音聊天
/raceexp give <玩家> <数量> - 给予种族经验(管理员)
/raceexp set <玩家> <等级> - 设置种族等级(管理员)
/raceexp check <玩家> - 查看种族信息(管理员)
```
### 家族命令
```
/family - 打开家族主界面
/family create <名称> - 创建家族
/family invite <玩家> - 邀请玩家
/family kick <玩家> - 踢出成员
/family leave - 退出家族
/family info - 查看家族信息
```
---
## 🔌 API 与 PAPI 变量
### PlaceholderAPI 变量
**玩家相关**:
```
%hotelroom_player_honor% - 玩家荣誉值
%hotelroom_player_health% - 当前血量
%hotelroom_player_max_health% - 最大血量
%hotelroom_player_health_percent% - 血量百分比
```
**属性相关**:
```
%hotelroom_attr_<属性名>% - 指定属性值
%hotelroom_all_attributes% - 所有属性列表
```
**领地相关**:
```
%hotelroom_in_land% - 是否在领地内
%hotelroom_land_name% - 当前领地名称
%hotelroom_land_owner% - 领地主人
%hotelroom_land_honor% - 领地荣誉门槛
%hotelroom_in_public_hotel% - 是否在公共酒店内
%hotelroom_public_members_count% - 公共领地成员数量
```
**种族相关**:
```
%hotelroom_race% - 当前种族名称
%hotelroom_race_name% - 种族内部ID
%hotelroom_is_race_<种族>% - 是否为指定种族
```
**家族相关**:
```
%hotelroom_family_name% - 家族名称
%hotelroom_family_position% - 家族职位
%hotelroom_family_level% - 家族等级
%hotelroom_family_member_count% - 成员数量
```
**怪物相关**:
```
%hotelroom_mob_health% - 瞄准怪物当前血量
%hotelroom_mob_max_health% - 瞄准怪物最大血量
%hotelroom_mob_health_percent% - 瞄准怪物血量百分比
%hotelroom_mob_name% - 瞄准怪物名称
```
### 开发者 API
```java
// 获取属性管理器
AttributeManager manager = AttributeManager.getInstance();
// 获取玩家属性
PlayerAttribute attr = manager.getPlayerAttribute(player.getUniqueId());
double damage = attr.getAttribute("physical_damage");
// 设置玩家属性
manager.setPlayerAttributeValue(uuid, "physical_damage", 50.0);
manager.refreshPlayerAttributes(player);
// 获取领地信息
HotelInfo hotel = SelectionMgr.HOTELS.get("领地名称");
if (hotel != null) {
UUID owner = hotel.owner;
boolean isPublic = hotel.isPublic;
Location[] corners = hotel.corners;
}
// 检查玩家是否在领地内
HotelInfo currentHotel = ProtectionListener.getHotelAt(player.getLocation());
```
---
## ⚙️ 配置文件
### 文件结构
```
plugins/HotelRoom/
├── config.yml # 主配置文件
├── hotels.db # SQLite 数据库
├── attributes/
│ └── attributes.yml # 属性系统配置
└── races/
├── human.yml # 人类种族配置
├── elf.yml # 精灵种族配置
└── dwarf.yml # 矮人种族配置
```
### 自定义属性配置
```yaml
custom-attributes:
true_damage:
display-name: "§c⚡ 真实伤害"
default-value: 0.0
min-value: 0.0
max-value: 1000.0
type: offensive
trigger: on_attack
formula: "damage + {true_damage}"
ignore-defense: true
description: "造成无视防御的额外伤害"
```
---
## 📋 权限列表
| 权限 | 描述 | 默认 |
|------|------|------|
| `hotelroom.admin` | 管理员权限 | OP |
| `hotelroom.attr.others` | 查看他人属性 | OP |
| `hotelroom.race.gui` | 使用种族进化GUI | 所有人 |
| `hr.family.use` | 使用家族系统 | 所有人 |
| `hr.family.create` | 创建家族 | 所有人 |
| `hr.family.admin` | 家族管理员 | OP |
| `hr.family.invite` | 邀请家族成员 | OP |
| `hr.family.kick` | 踢出家族成员 | OP |
---
## 📥 安装指南
### 环境要求
- **服务端**:Paper 1.21.4 或更高版本
- **Java**:JDK 21 或更高版本
- **可选依赖**:
- PlaceholderAPI(推荐)
- MythicMobs(可选)
- CustomMoney(可选)
### 安装步骤
1. 下载最新版本的 HotelRoom.jar
2. 将文件放入服务器的 `plugins` 文件夹
3. 启动服务器,等待配置文件生成
4. 根据需要修改配置文件
5. 使用 `/attr reload` 重载配置或重启服务器
---
## 💬 支持与反馈
- **问题反馈**:请通过 GitHub Issues 提交
- **功能建议**:欢迎在 Discussions 中讨论
- **使用问题**:请先查阅文档
[/MD]