Skip to content

ian171/BuildShowCase

Repository files navigation

BuildShowcase

Paper 1.21+ 建筑展示与审核系统插件
适用于自由建筑服务器的「提交 → 审核 → 展示 → 下载」完整工作流


📌 插件简介

BuildShowcase 是一个基于 Paper 1.21+ 的 Minecraft 服务器插件,用于支持玩家在世界中自由建筑,并在完成后:

  1. 通过命令提交建筑申请
  2. 管理员在线审核建筑
  3. 审核通过后将建筑:
    • 生成到展示世界中进行轮播展示(未完成)
    • 提供结构文件下载链接(HTTP/HTTPS)

插件强调 高性能、低侵入、API 优先,并与主流服务器插件生态良好兼容。


✨ 核心功能

🧱 玩家侧

  • 自由建筑(不强制地皮)
  • 通过 WorldEdit 选择区域
  • 使用 /buildsubmit 提交建筑
  • 自动导出结构文件(.schem
  • 结构文件命名规则: 玩家名_yyyyMMdd_HHmmss.schem

🛠 管理员侧

  • /buildreview list
  • 显示:编号 / 玩家名 / 提交时间 / 状态
  • /buildreview approve <id>
  • 通过审核
  • 自动生成建筑到展示世界
  • /buildreview reject <id>
  • 拒绝审核(可扩展原因)
  • 审核状态实时更新

🌍 展示系统

  • 独立 展示世界(showcase)
  • 自动排列建筑(网格 / 轮播)
  • 支持大规模结构展示
  • 不影响主世界 TPS

📦 结构文件管理

  • 使用 FAWE / WorldEdit API
  • 结构以 .schem 格式导出
  • 不复制方块,仅导出结构文件
  • 支持管理员下载原始结构

🌐 HTTP 下载服务器(Netty)

  • 插件内置 Netty HTTP 文件服务器
  • 端口默认:8081
  • 提供结构文件下载链接
  • 支持:
  • 浏览器
  • curl
  • CDN / Nginx 反向代理
  • 服务器端不启用 HTTPS
  • HTTPS 交由网关(Nginx / OpenResty)处理

示例下载地址: http://dl.example.com/Alex_20260107_150412.schem


🗄 数据持久化

  • 使用 SQLite
  • 自动建表 / 自动迁移(缺列自动补)

🧪 性能设计

  • 结构导出 / 粘贴 异步执行

  • Netty 下载独立线程池

  • 展示世界与主世界解耦

  • SQLite 使用单连接 + 同步队列

  • 无 Tick 注入 / 无监听滥用

About

初次提交

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages