ServerNews

一个新闻公告系统插件,允许发布和管理服务器新闻,以书籍形式显示。它支持多语言、交互内容和自动通知功能。

资源图片
# ServerNews ## 插件介绍 一个专为 Minecraft 服务器设计的公告系统插件,允许管理员发布和管理服务器新闻,以精美排版的书籍形式展示给玩家。 该插件支持多语言(根据客户端语言设置自动切换),支持交互内容,并提供自动通知功能。 兼容 Folia、Paper、Bukkit、Purpur、Spigot 和其他服务器核心。 ## 特性 - 📖 以书籍形式展示新闻内容 - 🔔 玩家登录时自动通知未读新闻 - 🌍 默认支持中文和英文;可以在 `messages.yml` 中添加其他语言 - 🔗 支持 URL 链接和命令交互 - 📊 新闻统计跟踪 - 📅 自动清除过期的阅读记录 - 🎨 支持颜色代码和 HEX 颜色 - 📱 兼容 PlaceholderAPI 占位符 > **注意**:使用 PlaceholderAPI 功能需要安装 PlaceholderAPI ## 使用方法 ### 玩家命令 | 命令 | 描述 | 权限 | 默认 | |---------|-------------|------------|---------| | `/news` | 打开新闻书籍 | `servernews.use` | ✅ 所有玩家可用 | ### 管理员命令 | 命令 | 描述 | 示例 | 权限 | |---------|-------------|---------|------------| | `/newsadmin` | 显示管理员帮助菜单 | `/newsadmin` | `servernews.admin` | | `/newsadmin help` | 显示详细帮助 | `/newsadmin help` | `servernews.admin` | | `/newsadmin reload` | 重新加载配置文件 | `/newsadmin reload` | `servernews.admin` | | `/newsadmin add <标题> <内容> [选项]` | 添加新闻,带有可选功能 | 参考以下示例 | `servernews.admin` | | `/newsadmin remove <索引>` | 根据索引删除新闻 | `/newsadmin remove 0` | `servernews.admin` | | `/newsadmin list` | 列表所有新闻及其详细信息 | `/newsadmin list` | `servernews.admin` | | `/newsadmin stats` | 显示全面的新闻统计信息 | `/newsadmin stats` | `servernews.admin` | ### 高级添加命令选项 `add` 命令支持几个可选参数以增强新闻功能: #### 基本用法: ``` /newsadmin add "新闻标题" "新闻内容在此处" ``` #### 带 URL 链接: ``` /newsadmin add "更新通知" "请查看我们的网站以获取详细信息" -url https://example.com ``` #### 带命令执行: ``` /newsadmin add "服务器活动" "点击加入活动!" -cmd /warp event ``` #### 带悬停文字: ``` /newsadmin add "重要" "服务器维护计划" -hover "悬停获取更多信息" ``` #### 组合功能: ``` /newsadmin add "新特性" "多个交互元素" -url https://example.com -cmd /help -hover "点击查看网站或悬停查看命令" ``` #### 选项详情: - **`-url <链接>`**: 添加可点击的 URL 链接(必须以 http:// 或 https:// 开头) - **`-cmd <命令>`**: 添加可点击的命令(必须以 / 开头) - **`-hover <文本>`**: 添加悬停提示文字(可以包含空格和颜色代码) > **提示**: > - 选项可以以任意顺序使用 > - URL 和命令不能一起使用(命令优先) > - 使用引号括起来包含空格的文本 > - 您可以直接编辑 `news.yml`,之后使用 `/newsadmin reload` ### 权限列表 | 权限节点 | 描述 | 默认 | 备注 | |-----------------|-------------|---------|--------| | `servernews.use` | 允许使用 `/news` 命令 | `true` | 所有玩家可以查看新闻 | | `servernews.admin` | 授予访问管理员命令的权限 | `op` | 完全的管理员控制权 | | `servernews.*` | 授予所有与新闻相关的权限 | `op` | 包括所有权限 | ## 配置文件 ### config.yml ```yaml # 最多存储的新闻项目数 max-news: 10 # 自动通知设置 auto-notification: # 玩家加入后的延迟(以tick为单位,20 tick = 1 秒) delay-ticks: 60 ``` ### `news.yml` 以以下格式存储所有新闻条目: ```yaml news: - title: "新闻标题" content: "新闻内容(支持颜色代码和占位符)" date: "2024-01-15 14:30" url: "https://example.com" # 可选:可点击的 URL command: "/spawn" # 可选:可点击的命令 hover: "带有 &acolors 的悬停文字" # 可选:悬停提示 - title: "另一则新闻" content: "更多新闻内容在此处" date: "2024-01-14 12:00" # 可选字段可以省略 ``` ### `messages.yml` 包含不同语言的所有可翻译消息。插件会自动检测玩家语言并使用适当的消息。 ## 命令示例 ### 添加带颜色的新闻 ```bash # 基本带颜色的新闻 /newsadmin add "&6&l服务器更新" "&a已添加新功能!&b请查看它们。" # 使用 HEX 颜色 /newsadmin add "&#FF0000重要通知" "�FF00一切正常运作!" # 使用 PlaceholderAPI /newsadmin add "欢迎 %player_name%" "您已经游戏了 %player_time% 小时" ``` ### 管理示例 ```bash # 列表所有当前新闻 /newsadmin list # 删除第一则新闻(索引 0) /newsadmin remove 0 # 查看详细统计信息 /newsadmin stats # 手动编辑后重新加载 /newsadmin reload ``` ## 常见问题解答 ### Q: 如何添加带颜色的新闻? **A:** 使用 `&` 加上颜色代码或 HEX 颜色代码: - `&a` 用于绿色文本 - `&#FF0000` 用于红色文本(HEX 颜色代码) - `&l` 用于粗体,`&o` 用于斜体,`&n` 用于下划线 ### Q: 为什么新闻书籍无法打开? **A:** 请检查以下事项: 1. 玩家有 `servernews.use` 权限 2. 服务器控制台中没有错误日志 3. `news.yml` 中新闻数据格式正确 4. 插件已正确加载并启用 ### Q: 如何增加新闻限制? **A:** 在 `config.yml` 中修改 `max-news` 的值,然后重新加载插件。 ### Q: 我可以使用 PlaceholderAPI 占位符吗? **A:** 是的!安装 PlaceholderAPI,并在新闻标题、内容和悬停文本中使用任何占位符。例如: - `%player_name%` - 玩家姓名 - `%server_name%` - 服务器名称 - `%player_time%` - 游戏时间 ### Q: 自动通知是如何工作的? **A:** 插件跟踪每个玩家上次查看新闻的时间。当他们加入时,如果有更新的新闻可用,他们将在配置的延迟后收到可点击的通知。