ArenaRegenerator

处理竞技场保存、重生以及使用WorldEdit或FAWE进行完全可定制的小游戏逻辑。

资源图片

# ArenaRegenerator ![Java](https://img.shields.io/badge/Java-21-blue) ![License](https://img.shields.io/github/license/Woodstop/ArenaRegenerator) ![Release](https://img.shields.io/github/v/release/Woodstop/ArenaRegenerator) ![Issues](https://img.shields.io/github/issues/Woodstop/ArenaRegenerator) # **ArenaRegenerator 插件** ArenaRegenerator 是一个 Minecraft 服务器插件,用于处理竞技场保存、重置和完整的迷你游戏逻辑,使用 WorldEdit 或 FAWE。 该插件管理和再生 WorldEdit 或 FAWE 定义的竞技场。包括完整的迷你游戏支持(例如,大厅、倒计时、游戏状态、胜利检测)和交互式告示牌以方便使用。 ## **目录** 1. [功能](#features) 2. [依赖项](#dependencies) 3. [安装](#installation) 4. [用法](#usage) * [交互式告示牌](#interactive-signs) * [命令和权限](#commands-and-permissions) 5. [示例配置](#example-configuration) 6. [数据存储](#data-storage) 7. [从源代码构建](#building-from-source) 8. [支持与贡献](#support--contribution) ## **功能** * 竞技场管理: - 将 WorldEdit 选择保存为竞技场。 - 立即清除或再生竞技场。 - 列出、删除和查看已保存竞技场的详细信息。 * 迷你游戏系统: - **大厅系统**: 玩家可以加入竞技场的大厅并等待足够数量的玩家。 - **倒计时**: 当达到最小玩家数时,可以配置的倒计时开始。 - **游戏开始**: 玩家从大厅移动到游戏生成点,清空物品栏(可配置),并设置游戏模式。 - **游戏结束**: 游戏在设置的持续时间结束后或满足胜利条件(例如,最后一个玩家存活)时结束。玩家被传送到外部,恢复状态(可配置),并且竞技场被重置。 - **旁观者模式**: 游戏期间离开竞技场边界的玩家可以移动到旁观者模式。 - **可配置规则**: 设置最小/最大玩家数、游戏持续时间、大厅倒计时、加入时的物品和游戏模式、允许破坏或放置哪些方块以及每竞技场伤害防护。 * 交互式告示牌: - 通过 `[RegenArena]` 告示牌点击再生竞技场 - 通过 `[JoinArena]` 告示牌加入迷你游戏竞技场 - 通过 `[LeaveArena]` 告示牌离开迷你游戏竞技场 ### /arena save 和 /arena info

### /arena clear 和 /arena regen

### Arena Regen 告示牌

### Join Arena 告示牌

### 迷你游戏逻辑

## **依赖项** 此插件需要你的服务器上安装 **WorldEdit** 或 **FastAsyncWorldEdit (FAWE)**。 * [下载 WorldEdit](https://dev.bukkit.org/projects/worldedit/files) * [下载 FAWE](https://www.spigotmc.org/resources/fastasyncworldedit.13932/) **重要提示:** 你的服务器上只能安装这两个插件之一 (WorldEdit 或 FAWE)。同时安装它们可能导致冲突。 ## **安装** 1. 从 [releases](https://github.com/Woodstop/ArenaRegenerator/releases) 页面下载最新的 `ArenaRegenerator-X.X.X.jar`(或自行编译)。 2. 下载与你的服务器版本兼容的 **WorldEdit** 或 **FastAsyncWorldEdit (FAWE)**。 3. 将 `ArenaRegenerator-X.X.X.jar` 和你选择的 WorldEdit/FAWE JAR 放入服务器的 plugins/ 文件夹中。 4. 重新启动服务器。 ## **用法** ### **交互式告示牌** 创建告示牌以自动再生竞技场、加入迷你游戏或离开迷你游戏。 1. 放置告示牌。 2. 第一行:`[RegenArena]` 或 `[JoinArena]` 或 `[LeaveArena]`。 3. 第二行:你的竞技场名称。 4. 具有适当权限的玩家可以点击使用。 5. 默认 10 秒冷却时间; `arenaregenerator.sign.bypass` 覆盖。 ## **命令和权限** 命令使用 `/arena` 前缀。 别名 `/ar` 也可用。 将 `` 替换为你想要的竞技场名称。 `` 可以是 `lobby`、`exit`、`spectator` 或 `game`。 | **权限节点** | **描述** | **命令** | |--------------------------------------|----------------------------------------------------------------------|-------------------------------------------------------| | `arenaregenerator.regen` | 允许使用再生功能 | `/arena regen ` | | `arenaregenerator.save` | 允许保存竞技场 | `/arena save ` | | `arenaregenerator.list` | 允许列出已保存的竞技场 | `/arena list` | | `arenaregenerator.delete` | 允许删除竞技场 | `/arena delete ` | | `arenaregenerator.clear` | 允许清除竞技场而不删除方案 | `/arena clear ` | | `arenaregenerator.info` | 允许查看当前竞技场的信息 | `/arena info ` | | `arenaregenerator.select` | 允许为竞技场选择区域 | `/arena select ` | | `arenaregenerator.setspawn` | 允许为迷你游戏设置大厅、出口、旁观者和游戏生成点 | `/arena setspawn [spawnName]` | | `arenaregenerator.delspawn` | 允许删除迷你游戏的生成点 | `/arena delspawn [spawnName]` | | `arenaregenerator.join` | 允许加入迷你游戏竞技场 | `/arena join ` | | `arenaregenerator.leave` | 允许离开迷你游戏竞技场 | `/arena leave` | | `arenaregenerator.reload` | 允许重新加载插件配置 | `/arena reload` | | `arenaregenerator.sign.create.regen` | 允许玩家创建 `[RegenArena]` 告示牌 | *创建带有标签的告示牌* | | `arenaregenerator.sign.create.join` | 允许玩家创建 `[JoinArena]` 告示牌 | *创建带有标签的告示牌* | | `arenaregenerator.sign.create.use` | 允许玩家创建 `[LeaveArena]` 告示牌 | *创建带有标签的告示牌* | | `arenaregenerator.sign.use.regen` | 允许玩家使用 `[RegenArena]` 告示牌 | *点击 `[RegenArena]` 告示牌* | | `arenaregenerator.sign.use.join` | 允许玩家使用 `[JoinArena]` 告示牌 | *点击 `[JoinArena]` 告示牌* | | `arenaregenerator.sign.use.leave` | 允许玩家使用 `[LeaveArena]` 告示牌 | *点击 `[LeaveArena]` 告示牌* | | `arenaregenerator.sign.bypass` | 允许玩家绕过告示牌冷却时间 | *重复点击告示牌* | | `arenaregenerator.sign.break` | 允许玩家破坏交互式告示牌 | *破坏告示牌方块* | ## **示例配置** ``` # ArenaRegenerator 插件配置 # 使用 ArenaRegenerator 告示牌(例如,[JoinArena]、[RegenArena])的秒级冷却时间。 # 设置为 -1 以完全禁用冷却时间。 sign-use-cooldown-seconds: -1 # 迷你游戏竞技场配置 # 定义将用作迷你游戏的每个竞技场的设置。 minigames: # 示例竞技场配置 arena_1: enabled: false # 是否可以使用此竞技场作为迷你游戏 min-players: 2 # 启动游戏所需的最小玩家数 max-players: 8 # 竞技场允许的最大玩家数 game-duration-seconds: 180 # 游戏持续时间(例如,3 分钟) lobby-countdown-seconds: 10 # 当达到最小玩家数时开始倒计时 # 玩家状态还原 # 如果为 true,在加入前将保存玩家的物品栏、生命值、食物、游戏模式和确切位置, # 并在离开/游戏结束时还原。 # 如果定义了出口生成点,则会覆盖玩家的最后一个位置。 restore-player-state-on-exit: true # 是否在加入时清空玩家的物品栏 clear-inventory-on-join: true # 以 "MATERIAL_NAME" 或 "MATERIAL_NAME:AMOUNT" 的形式列出要给予加入的物品 give-item-on-join: - DIAMOND_SHOVEL - STONE_AXE:1 # 示例:数量为 1 的石斧 - LEATHER_HELMET - LEATHER_CHESTPLATE - LEATHER_LEGGINGS - LEATHER_BOOTS - COOKED_BEEF:16 # 示例:16 个熟牛排 game-mode-on-join: SURVIVAL # SURVIVAL, ADVENTURE, CREATIVE, SPECTATOR # 允许玩家在竞技场中破坏的方块列表 breakable-blocks: - SNOW_BLOCK - ICE - GLASS # 允许玩家在竞技场中放置的方块列表 placeable-blocks: - COBBLESTONE - DIRT - SAND prevent-damage: true # 阻止对玩家的任何伤害 item-drops: true # 允许方块掉落物品 prevent-item-durability-loss: true # 阻止物品耐久度损失 winner-rewards: # 给赢得游戏的玩家奖励。 使用 %player% 指定获胜玩家。 commands: - "give %player% diamond 3" - "eco give %player% 100" ``` ## **数据存储** 插件存储: * 竞技场元数据和生成点:位于 `plugins/ArenaRegenerator/arenas.json`。 此文件包含每个已保存竞技场的原点、世界以及所有配置的大厅、出口、旁观者和命名游戏生成点。 * 方案文件:位于 `plugins/ArenaRegenerator/schematics/`。 这些是每个已保存竞技场的 WorldEdit 方案文件 (.schem)。 * 迷你游戏配置:位于 `plugins/ArenaRegenerator/config.yml`。 此文件定义了哪些已保存竞技场用作迷你游戏(例如,最小/最大玩家数、游戏持续时间、特定游戏规则)。 ## **从源代码构建** 要从源代码构建: 1. 克隆存储库。 2. 确保 Java 21 和 JAVA\_HOME 已设置。 3. 使用 Maven 构建 (`mvn clean package`)。 编译后的 JAR 将位于 `target/` 目录中。 ## **支持与贡献** 如果遇到问题、有建议或希望贡献,请访问 [GitHub 存储库](https://github.com/Woodstop/ArenaRegenerator)。