• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
弧光监狱插件

原创 Endstone 弧光监狱插件 v0.0.1.1

请登录后获取
版权类型
原创
版权链接
https://github.com/DEVILENMO/EndstoneMC-ARC-Prison-Plugin
语言支持
多语言
前置组件
EndStone
适配版本(基岩)
  1. 最新版本
[MD] # 弧光监狱插件 (ARC Prison Plugin) [![版本](https://img.shields.io/badge/版本-0.0.1-blue.svg)](https://github.com/EndstoneMC/python-example-plugin) [![EndStone](https://img.shields.io/badge/EndStone-0.10+-green.svg)](https://github.com/EndstoneMC/endstone) [![Python](https://img.shields.io/badge/Python-3.8+-yellow.svg)](https://www.python.org/) - 一个功能完整的 Minecraft 服务器监狱管理系统,基于 EndStone 框架开发。为您的服务器提供专业级的法律制裁和监狱管理功能。 ## 🎯 功能特性 ### 📋 核心功能 - **完整监狱系统**: 支持玩家关押、释放、刑期管理 - **智能UI面板**: 直观的图形化管理界面,支持关押和释放操作 - **位置管理**: 设置监狱位置和出狱点,支持跨维度传送 - **自动监控**: 10秒定时检查,防止玩家逃离监狱范围 - **行为限制**: 完全阻止坐牢玩家的破坏性操作 - **多维度支持**: 支持主世界、下界、末地等多个维度 ### 🔒 安全防护 - **全方位拦截**: 破坏方块、放置方块、交互操作、命令使用 - **智能监控**: 实时检查玩家位置,超出范围自动传送回监狱 - **防逃系统**: 维度检查 + 曼哈顿距离限制(20格范围) - **权限管理**: OP权限豁免,便于管理操作 - **自动释放**: 刑期到期自动释放并传送到出狱点 ### 🌐 多语言支持 - **中英双语**: 完整的多语言界面支持 - **动态加载**: 支持运行时语言配置切换 - **可扩展**: 易于添加新语言包 ## 📦 安装说明 1. 下载插件文件到服务器的 `plugins` 目录 2. 重启服务器或使用插件管理器重新加载 3. 插件将自动创建必要的数据库和配置文件 4. 使用 `/setprisonpos prison` 设置监狱位置开始使用 ## 📋 指令详解 ### 基础指令 | 指令 | 权限要求 | 语法 | 功能描述 | |------|----------|------|----------| | `/prison` | 所有玩家 | `/prison` | 打开监狱管理面板,查看当前坐牢玩家状态 | | `/setprisonpos` | OP | `/setprisonpos [prison\|release]` | 设置监狱位置或出狱位置 | | `/jail` | OP | `/jail <玩家名> <时间(分钟)> [原因]` | 将指定玩家关入监狱 | ### 指令详细说明 #### `/prison` - 监狱管理面板 - **普通玩家**: 查看当前所有坐牢玩家的信息,包括剩余刑期和入狱原因 - **OP管理员**: 除查看功能外,还可以: - 通过UI界面关押在线玩家 - 通过UI界面释放在押犯人 - 可视化设置坐牢时长和原因 #### `/setprisonpos` - 位置设置 ```bash /setprisonpos prison # 将当前位置设为监狱坐标 /setprisonpos release # 将当前位置设为出狱点坐标(可选) ``` - 支持跨维度设置 - 监狱位置为必需设置,出狱位置为可选 - 如果未设置出狱位置,释放时玩家将留在原地 #### `/jail` - 关押指令 ```bash /jail Steve 60 恶意破坏建筑 # 关押Steve 60分钟,原因:恶意破坏建筑 /jail Alex 120 # 关押Alex 120分钟,无具体原因 ``` - 时间单位为分钟,必须为正整数 - 原因为可选参数,未填写时显示"未指定原因" - 关押成功后会向全服广播消息 ## 🔧 API 接口文档 插件提供完整的 API 接口供其他开发者调用: ### 核心检查接口 #### `api_is_player_imprisoned(player_name: str) -> bool` 检查指定玩家是否正在坐牢 ```python # 检查玩家是否在监狱中 is_jailed = prison_plugin.api_is_player_imprisoned("Steve") if is_jailed: print("Steve 正在坐牢") ``` #### `api_get_player_prison_info(player_name: str) -> dict | None` 获取指定玩家的详细坐牢信息 ```python info = prison_plugin.api_get_player_prison_info("Steve") if info: print(f"玩家: {info['player_name']}") print(f"剩余时间: {info['remaining_minutes']} 分钟") print(f"入狱原因: {info['reason']}") print(f"执行者: {info['jailed_by']}") ``` **返回数据结构:** ```python { 'player_name': str, # 玩家姓名 'prison_time': str, # 入狱时间 'sentence_duration': int, # 原始刑期(分钟) 'sentence_end_time': str, # 刑期结束时间 'remaining_minutes': int, # 剩余时间(分钟) 'reason': str, # 入狱原因 'jailed_by': str # 执行关押的管理员 } ``` ### 管理操作接口 #### `api_jail_player(player_name: str, duration_minutes: int, reason: str, jailed_by: str) -> bool` 将指定玩家关入监狱 ```python success = prison_plugin.api_jail_player( player_name="Steve", duration_minutes=60, reason="违反服务器规则", jailed_by="Admin" ) if success: print("关押成功") ``` #### `api_release_player(player_name: str) -> bool` 手动释放指定玩家 ```python success = prison_plugin.api_release_player("Steve") if success: print("释放成功") ``` ### 批量查询接口 #### `api_get_all_imprisoned_players() -> list` 获取当前所有坐牢玩家的信息列表 ```python prisoners = prison_plugin.api_get_all_imprisoned_players() print(f"当前共有 {len(prisoners)} 名玩家在坐牢") for prisoner in prisoners: print(f"玩家: {prisoner['player_name']}") print(f"剩余: {prisoner['remaining_hours']}小时{prisoner['remaining_minutes_mod']}分钟") print(f"在线: {'是' if prisoner['is_online'] else '否'}") print("---") ``` **返回数据结构:** ```python [ { 'player_name': str, # 玩家姓名 'player_uuid': str, # 玩家UUID 'prison_time': str, # 入狱时间 'sentence_duration': int, # 原始刑期(分钟) 'sentence_end_time': str, # 刑期结束时间 'remaining_minutes': int, # 剩余总分钟数 'remaining_hours': int, # 剩余小时数 'remaining_minutes_mod': int, # 剩余分钟数(去除小时后的余数) 'reason': str, # 入狱原因 'jailed_by': str, # 执行关押的管理员 'is_online': bool # 玩家是否在线 }, # ... 更多玩家数据 ] ``` ### API 使用示例 ```python # 完整的监狱管理示例 class MyPlugin(Plugin): def on_enable(self): # 获取监狱插件实例 self.prison = self.server.plugin_manager.get_plugin("arc_prison") def punish_player(self, player_name: str): # 检查玩家是否已经在坐牢 if self.prison.api_is_player_imprisoned(player_name): return "玩家已经在坐牢中" # 关押玩家30分钟 success = self.prison.api_jail_player( player_name=player_name, duration_minutes=30, reason="自动检测到违规行为", jailed_by="AutoSystem" ) return "关押成功" if success else "关押失败" def get_prison_status(self): # 获取所有在押犯人 prisoners = self.prison.api_get_all_imprisoned_players() status = { 'total_prisoners': len(prisoners), 'online_prisoners': len([p for p in prisoners if p['is_online']]), 'prisoners_list': prisoners } return status ``` ## 📊 数据存储 插件使用 SQLite 数据库进行数据持久化: ### 数据库表结构 #### `prison_positions` - 位置信息表 - `prison_x/y/z` - 监狱坐标 - `prison_dimension` - 监狱维度 - `release_x/y/z` - 出狱点坐标 - `release_dimension` - 出狱点维度 - `set_by` - 设置者 - `set_time` - 设置时间 #### `prisoners` - 囚犯信息表 - `player_name` - 玩家姓名 - `player_uuid` - 玩家UUID - `prison_time` - 入狱时间 - `sentence_duration` - 刑期时长 - `sentence_end_time` - 刑期结束时间 - `reason` - 入狱原因 - `jailed_by` - 执行者 - `is_active` - 是否在服刑中 **数据库文件位置**: `plugins/ARCPrison/prison.db` ## ⚙️ 配置文件 ### 语言文件配置 语言文件位于:`plugins/ARCPrison/` - `CN.txt` - 中文语言包 - `EN.txt` - 英文语言包 ### 自定义语言文本 您可以编辑语言文件来自定义所有游戏内提示信息: ```ini # CN.txt 示例 PRISON_PANEL_TITLE=§6监狱管理系统 JAIL_SUCCESS=§a成功将玩家 §7{0} §a关入监狱 §7{1} §a分钟 RELEASE_SUCCESS=§a成功释放玩家 §c{0} # ... 更多配置项 ``` ## 🛡️ 系统要求 - **EndStone**: 0.10 或更高版本 - **Python**: 3.8 或更高版本 - **操作系统**: Windows, Linux, macOS - **内存**: 建议至少 512MB 可用内存 - **存储**: 约 10MB 磁盘空间 ## 🎮 使用场景 ### 服务器管理 - 处理恶意玩家和违规行为 - 临时隔离问题玩家 - 维护服务器秩序 ### 角色扮演服务器 - 实现完整的法律制裁系统 - 增强游戏沉浸感 - 支持复杂的社会系统 ### 小游戏服务器 - 失败惩罚机制 - 临时禁赛功能 - 反作弊措施 ## 📝 更新日志 ### v0.0.1 (当前版本) - ✨ 完整的监狱管理系统 - 🎨 可视化管理面板(关押+释放功能) - 🌍 多语言支持(中英双语) - 🔒 自动监控防逃系统 - 🔌 完整的API接口 - 📊 SQLite数据库存储 - 🚀 跨维度传送支持 ## 🤝 贡献指南 我们欢迎所有形式的贡献! ### 报告问题 - 使用 GitHub Issues 报告 bug - 提供详细的错误信息和复现步骤 - 包含服务器版本和插件版本信息 ### 功能建议 - 在 Issues 中提出新功能建议 - 详细描述功能需求和使用场景 - 讨论实现方案的可行性 ### 代码贡献 - Fork 项目并创建功能分支 - 遵循现有代码风格 - 添加必要的测试和文档 - 提交 Pull Request ## 📄 许可证 本项目采用 [MIT 许可证](LICENSE)。您可以自由使用、修改和分发此软件。 ## 📞 技术支持 如遇到问题或需要帮助: - 📧 邮箱:DEVILENMO@gmail.com - 🐛 提交 GitHub Issue - 💬 参与项目讨论 --- **弧光监狱插件** - 让您的 Minecraft 服务器拥有完善的法律制裁系统! ⚖️ *Built with ❤️ for the Minecraft community* [/MD]
作者
DEVILENMO
价格
50.00金粒
下载
13
查看
1,186
首次发布
最后更新

评分

0.00 星 0 次评分

DEVILENMO 的其他资源

最新更新

  1. 错误修复

    修复了对事件的监听失败问题
后退
顶部 底部