Skip to content

Disaster 灾难玩法

概述

Disaster 是一个基于 Bukkit/Spigot 的 Minecraft 灾难小游戏插件。玩家需要在随机发生的各种灾难中生存下来,游戏提供了房间系统、多种灾难类型、物品系统和多语言支持等功能。

核心特性

  • 房间系统:支持多房间创建、加入、退出,自动管理游戏生命周期
  • 灾难系统:包含 30+ 种随机灾难事件,分为主要灾难和次要灾难
  • 物品系统:特殊物品和装备生成,帮助玩家在灾难中生存
  • 命令系统:完整的游戏管理命令,支持权限控制
  • 多语言系统:支持中文、英文等多种语言
  • 事件监听:处理玩家交互、游戏保护、聊天等事件

系统架构

┌─────────────────────────────────────────────────────────┐
│                    disaster (主类)                       │
├─────────────────────────────────────────────────────────┤
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐  │
│  │ RoomManager  │  │ DisasterMgr  │  │  ItemManager │  │
│  └──────┬───────┘  └──────┬───────┘  └──────┬───────┘  │
│         │                 │                 │           │
│  ┌──────▼───────┐  ┌──────▼───────┐  ┌──────▼───────┐  │
│  │    Room      │  │   Disaster   │  │  Items       │  │
│  │  (房间实例)  │  │  (灾难基类)  │  │ (物品系统)   │  │
│  └──────────────┘  └──────┬───────┘  └──────────────┘  │
│                           │                             │
│                    ┌──────▼───────┐                     │
│                    │  Disaster    │                     │
│                    │  Types (30+) │                     │
│                    └──────────────┘                     │
├─────────────────────────────────────────────────────────┤
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐  │
│  │  CommandMgr  │  │  LangManager │  │  Listeners   │  │
│  └──────────────┘  └──────────────┘  └──────────────┘  │
└─────────────────────────────────────────────────────────┘

文档目录

文档描述
房间系统房间创建、管理、玩家加入/退出、游戏流程控制
灾难系统灾难基类、灾难管理器、30+ 种灾难类型详解
物品系统物品生成、特殊道具、装备掉落机制
命令系统命令注册、权限管理、子命令实现
多语言系统语言文件加载、文本翻译、占位符替换
事件监听系统游戏事件、玩家交互、保护机制

快速开始

游戏流程

  1. 创建房间:玩家使用 /disaster create/disaster join 加入游戏
  2. 等待阶段:房间等待足够玩家加入,显示 ActionBar 信息
  3. 倒计时:达到最小玩家数后开始倒计时(默认 30 秒)
  4. 游戏开始
    • 随机分配出生点
    • 关闭自然生命恢复
    • 开始灾难倒计时(默认 12 秒)
  5. 灾难爆发
    • 随机选择主要灾难(100% 概率)
    • 30% 概率追加次要灾难
    • 每隔一定时间(默认 60 秒)触发新灾难
  6. 游戏结束
    • 时间结束(默认 3 分钟)
    • 或所有玩家被淘汰
    • 判定胜利者并发放奖励

配置参数

yaml
# 游戏配置
minPlayers: 1          # 最小玩家数
maxPlayers: 16         # 最大玩家数
countdownTime: 30      # 倒计时时间(秒)
gameTime: 180          # 游戏时间(秒,默认 3 分钟)
disasterCountdownTime: 12  # 灾难爆发倒计时(秒)
disasterInterval: 60   # 灾难间隔时间(秒)

# 房间配置
room-prefix: "disaster-"  # 房间世界前缀
Language: "en_us"       # 默认语言

技术栈

  • 平台:Bukkit/Spigot 1.20+
  • 语言:Java 21
  • 构建工具:Gradle
  • 依赖
    • Easy4Form(表单库)
    • Bukkit API
    • Spigot API

相关链接