- 版权类型
- 原创
- 插件中文名称
- 固定登录点
- 插件英文名称
- LoginLocation
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- Folia
- Purpur
- 语言支持
- 多语言
- 适配版本(Java)
- 最新版本
- 26.x
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
- 1.15
- 1.14
- 1.13
- 1.12
- 1.11
- 1.10
- 1.9
- 1.8
[MD]> 一个用于固定首次登录地点、支持跨世界传送的 Minecraft 服务器插件。
---
## 简介
LoginLocation 是一款轻量级的 Minecraft 服务器管理插件,主要用于控制玩家的首次登录位置和重生位置。适用于需要统一新手出生点、管理多世界传送、或需要固定玩家重生位置的服务器。
**核心功能:**
- 首次登录自动传送到全局出生点
- 死亡重生到全局出生点
- 新玩家自动传送开关
- GUI 管理面板
- 全消息可自定义(语言配置文件)
- 支持控制台和玩家命令
- 兼容 Multiverse 等多世界插件
---
## 安装说明
### 环境要求
| 项目 | 要求 |
|------|------|
| 服务端核心 | Bukkit / Spigot / Paper |
| Java 版本 | 8 及以上 |
| Minecraft 版本 | 1.8 - 1.26.2 |
### 安装步骤
1. 下载 `login-location-1.0.0.jar` 文件
2. 将 jar 文件放入服务器的 `plugins/` 目录
3. 启动或重启服务器
4. 插件会自动生成配置文件 `plugins/LoginLocation/config.yml` 和 `plugins/LoginLocation/messages.yml`
### 首次配置
1. 进入服务器,在你想要设置为出生点的位置站好
2. 执行命令 `/ll setspawn` 设置全局出生点
3. 执行 `/ll status` 确认出生点已配置成功

---
## 命令
| 命令 | 描述 | 权限 | 可用位置 |
|------|------|------|----------|
| `/ll spawn` | 传送到全局出生点 | `loginlocation.use` | 玩家 |
| `/ll setspawn` | 将当前位置设置为全局出生点 | `loginlocation.setspawn` | 玩家 |
| `/ll setspawn.world <世界名>` | 设置指定世界的出生点 | `loginlocation.setspawn` | 玩家/控制台 |
| `/ll info [玩家名]` | 查看玩家登录地点信息 | `loginlocation.info` | 玩家/控制台 |
| `/ll gui` | 打开 GUI 管理面板 | `loginlocation.admin` | 玩家 |
| `/ll status` | 查看插件状态 | `loginlocation.use` | 玩家/控制台 |
| `/ll toggle` | 开启/关闭插件 | `loginlocation.admin` | 玩家/控制台 |
| `/ll worldspawn <true\|false>` | 新玩家自动传送开关 | `loginlocation.admin` | 玩家/控制台 |
| `/ll reload` | 重新加载配置文件 | `loginlocation.admin` | 玩家/控制台 |
| `/ll about` | 查看插件信息 | 无 | 玩家/控制台 |

# 命令示例
### 设置出生点(站在想要的位置执行)
/ll setspawn
### 设置指定世界的出生点(控制台执行)
/ll setspawn.world world_nether

### 查询玩家登录信息
/ll info Steve

### 打开管理面板
/ll gui
### 开启新玩家自动传送
/ll worldspawn true
### 关闭新玩家自动传送
/ll worldspawn false

### 重载配置
/ll reload

---
## GUI 管理面板
使用 `/ll gui` 命令打开管理面板,包含以下功能按钮:
| 按钮 | 功能 | 权限 |
|------|------|------|
| **重载配置** | 重新加载插件配置文件 | `loginlocation.admin` |
| **插件状态** | 开启/关闭插件 | `loginlocation.admin` |
| **查询玩家** | 点击后在聊天栏输入玩家名查询信息 | `loginlocation.info` |
| **设置出生点** | 将当前位置设置为全局出生点 | `loginlocation.setspawn` |
| **传送到出生点** | 立即传送到全局出生点 | `loginlocation.use` |
| **插件状态** | 查看详细状态信息 | `loginlocation.use` |

---
## 权限组
| 权限节点 | 描述 | 默认值 |
|----------|------|--------|
| `loginlocation.use` | 使用基本命令(spawn、status) | `true` |
| `loginlocation.admin` | 管理员权限(gui、reload、toggle、worldspawn) | `op` |
| `loginlocation.setspawn` | 设置出生点权限 | `op` |
| `loginlocation.info` | 查看玩家登录地点信息 | `true` |
---
## 配置文件说明
### config.yml - 主配置文件
配置文件路径:`plugins/LoginLocation/config.yml`
```yaml
# 插件是否启用
plugin-enabled: true
# 是否在死亡时重生到全局出生点
respawn-at-global-spawn: true
# 新玩家自动传送到出生点
worldspawn: true
# 出生点设置(由 /ll setspawn 命令自动设置)
spawn:
configured: false
world: world
x: 0.0
y: 64.0
z: 0.0
yaw: 0.0
pitch: 0.0
# 音效设置
sounds:
enabled: true
gui-open: "BLOCK_NOTE_BLOCK_PLING"
gui-click: "UI_BUTTON_CLICK"
teleport: "ENTITY_ENDERMAN_TELEPORT"
first-login: "ENTITY_PLAYER_LEVELUP"
set-spawn: "BLOCK_NOTE_BLOCK_BELL"
error: "ENTITY_VILLAGER_NO"
# 日志设置
logging:
log-player-login: true
log-teleport: true
log-spawn-set: true
```
#### 配置项说明
| 配置项 | 类型 | 说明 |
|--------|------|------|
| `plugin-enabled` | boolean | 插件总开关 |
| `respawn-at-global-spawn` | boolean | 死亡后是否重生到全局出生点 |
| `worldspawn` | boolean | 新玩家是否自动传送到出生点 |
| `sounds.enabled` | boolean | 是否启用音效 |
| `logging.*` | boolean | 是否记录各类日志 |
---
### messages.yml - 语言配置文件
配置文件路径:`plugins/LoginLocation/messages.yml`
所有玩家可见的消息都可以在这里自定义,支持:
- **颜色代码**:使用 `&` 加颜色代码(如 `&a` 绿色、`&c` 红色、`&f` 白色)
- **变量替换**:使用 `{变量名}` 格式
#### 可用变量列表
| 变量 | 说明 | 使用场景 |
|------|------|----------|
| `{world}` | 世界名 | 出生点设置、玩家信息 |
| `{x}` `{y}` `{z}` | 坐标 | 出生点设置、玩家信息 |
| `{player}` | 玩家名 | 玩家信息、查询 |
| `{uuid}` | 玩家UUID | 玩家信息 |
| `{count}` | 玩家数据数量 | 重载配置 |
| `{status}` | 状态值 | 插件状态 |
| `{last_online}` | 最后在线时间 | 离线玩家信息 |
| `{version}` | 插件版本 | 关于信息 |
| `{author}` | 作者 | 关于信息 |
| `{command}` | 命令 | 控制台提示 |
#### 颜色代码参考
| 代码 | 颜色 | 代码 | 颜色 |
|------|------|------|------|
| `&0` | 黑色 | `&8` | 深灰色 |
| `&1` | 深蓝色 | `&9` | 蓝色 |
| `&2` | 深绿色 | `&a` | 绿色 |
| `&3` | 湖蓝色 | `&b` | 天蓝色 |
| `&4` | 深红色 | `&c` | 红色 |
| `&5` | 紫色 | `&d` | 粉色 |
| `&6` | 金色 | `&e` | 黄色 |
| `&7` | 灰色 | `&f` | 白色 |
---
## 依赖插件
### 必需依赖
| 插件 | 说明 |
|------|------|
| Bukkit / Spigot / Paper | 服务端核心 |
### 可选依赖
| 插件 | 说明 |
|------|------|
| Multiverse-Core | 多世界管理,用于跨世界传送 |
| LuckPerms | 权限管理,用于精细控制权限组 |
---
## 使用流程
1. 将插件放入 `plugins/` 目录并重启服务器
2. 使用 `/ll setspawn` 设置全局出生点
3. 使用 `/ll worldspawn true` 开启新玩家自动传送
4. 可选:配置 `messages.yml` 自定义消息
5. 玩家首次登录时会自动传送到出生点
6. 玩家死亡后会重生到出生点
7. 使用 `/ll gui` 打开管理面板进行管理
---
## 常见问题
### Q: 出生点设置后不生效?
A: 请检查 `/ll status` 中"出生点配置"是否显示"已配置"。如果显示"未配置",请重新执行 `/ll setspawn`。
### Q: 新玩家登录没有传送到出生点?
A: 可能是以下原因:
- 出生点未配置(执行 `/ll status` 检查)
- 插件未启用(执行 `/ll status` 检查)
- 新玩家自动传送未开启(执行 `/ll worldspawn true` 开启)
- 其他插件冲突(检查控制台报错)
### Q: 如何关闭新玩家自动传送?
A: 执行 `/ll worldspawn false` 即可关闭。
### Q: 如何重置玩家的首次登录记录?
A: 删除 `plugins/LoginLocation/playerdata.yml` 中对应玩家的数据,或删除整个文件重置所有玩家数据。
---
## 构建
```bash
mvn clean package
```
构建后的 jar 文件位于 `target/login-location-1.0.0.jar`。
---
## 作者
**sixweek**
- QQ: 3857490475
---
## 许可证
MIT License
[/MD]