PlayerFeedback 插件开发日志

PlayerFeedback 插件开发日志

项目概述

插件名称 : PlayerFeedback (玩家反馈系统)
版本 : 1.0-SNAPSHOT
开发语言 : Kotlin
目标平台 : Spigot/Paper 1.21+
开发时间: 2025年11月

功能设计

🎯 核心功能模块

1. 反馈提交系统
  • 功能描述: 玩家可以通过命令或GUI界面提交各种类型的反馈
  • 实现方式 :
    • 命令: /feedback <类型> <内容>
    • GUI界面: /feedback 打开反馈界面
  • 反馈类型 :
    • 🐛 Bug报告 (bug)
    • 💡 建议 (suggestion)
    • 🚨 举报 (report)
    • ❓ 问题咨询 (question)
    • 👍 表扬 (praise)
    • 📝 其他 (other)
1.1 反馈互动评价系统
  • 功能描述: 玩家可以对其他玩家的反馈进行评价和支持
  • 评价类型 :
    • 正面评价 :
      • 👍 赞同 (agree) - "说出了我的心声"
      • ❤️ 支持 (support) - "我也遇到了这个问题"
      • 💡 有用 (helpful) - "这个建议很有价值"
      • 🔥 重要 (important) - "这个问题很紧急"
    • 负面评价 :
      • 👎 不赞同 (disagree) - "我不认同这个观点"
      • 无关 (irrelevant) - "这个反馈与服务器无关"
      • 🚫 重复 (duplicate) - "这个问题已经有人反馈过了"
      • ⚠️ 误导 (misleading) - "这个信息不准确或有误导性"
  • 评价功能 :
    • 每个玩家对每个反馈只能评价一次
    • 可以修改自己的评价
    • 显示评价统计和玩家列表
2. 反馈管理系统
📋 玩家命令系统
  • 基础命令:

    • /feedback - 打开反馈主界面
    • /feedback <类型> <内容> - 快速提交反馈
    • /feedback my - 查看个人反馈历史
    • /feedback view <ID> - 查看指定反馈详情
    • /feedback reply <ID> <消息> - 回复反馈对话
    • /feedback close <ID> - 玩家主动关闭反馈
  • 评价互动命令:

    • /feedback rate <ID> <类型> - 对反馈进行评价
    • /feedback unrate <ID> - 取消对反馈的评价
    • /feedback view <ID> - 打开反馈评价界面
    • /feedback ratings <ID> - 查看反馈的所有评价列表
    • /feedback hot - 查看热门反馈 (高评分反馈)
  • 讨论系统命令:

    • /feedback discuss <ID> - 打开反馈讨论界面
    • /feedback comment <ID> <讨论内容> - 对反馈发表讨论
    • /feedback discussions <ID> [页码] - 查看反馈的讨论列表 (支持分页)
🛠️ 管理员命令系统
  • 基础管理命令:

    • /feedbackadmin - 打开管理主界面
    • /feedbackadmin list [筛选条件] - 查看反馈列表
    • /feedbackadmin view <ID> - 查看详细反馈
    • /feedbackadmin reply <ID> <回复内容> - 回复反馈
    • /feedbackadmin status <ID> <状态> - 更改反馈状态
    • /feedbackadmin assign <ID> <管理员> - 分配给其他管理员
    • /feedbackadmin tag <ID> <标签> - 添加标签
    • /feedbackadmin delete <ID> - 删除反馈
  • 高级筛选命令:

    • /feedbackadmin filter player <玩家名> - 按玩家筛选
    • /feedbackadmin filter type <类型> - 按类型筛选
    • /feedbackadmin filter status <状态> - 按状态筛选
    • /feedbackadmin filter time <时间范围> - 按时间筛选
    • /feedbackadmin search <关键词> - 关键词搜索
    • /feedbackadmin player <玩家名> - 查看指定玩家的所有反馈
  • 统计和报告命令:

    • /feedbackadmin stats - 查看反馈统计
    • /feedbackadmin hot - 查看热门反馈排行
    • /feedbackadmin trending - 查看趋势反馈 (最近评价多的)
    • /feedbackadmin export [条件] - 导出反馈数据
    • /feedbackadmin report daily/weekly/monthly - 生成报告
📊 反馈状态系统
  • 状态流转 :
    • 🟡 待处理 (pending) → 🔵 处理中 / 🔴 已拒绝
    • 🔵 处理中 (processing) → 🟢 已解决 / 🟡 待处理 / 🔴 已拒绝
    • 🟢 已解决 (resolved) → ⚪ 已关闭 / 🔵 处理中 (重新打开)
    • 🔴 已拒绝 (rejected) → ⚪ 已关闭 / 🔵 处理中 (重新审核)
    • 已关闭 (closed) → 🔵 处理中 (重新打开)
3. 数据存储系统
  • 存储方式: 本地文件存储 (优先考虑简单性和可靠性)
  • 存储格式 :
    • 主要存储 : SQLite数据库 (本地 feedbacks.db 文件)
    • 配置存储 : YAML配置文件 (config.yml)
    • 缓存存储: 内存缓存 + 本地临时文件
    • 备份存储: 定期本地备份文件
4. 互动对话系统
💬 多轮对话机制
  • 对话特性:

    • 支持玩家和管理员之间的多轮对话
    • 每条消息都有时间戳和发送者标识
    • 支持消息引用和回复
    • 自动保存对话历史
  • 互动流程:

    复制代码
    玩家提交反馈 → 管理员查看并回复 → 玩家收到通知 → 玩家继续对话 → 循环直到解决
  • 对话功能:

    • 📝 消息发送: 支持文本消息 (未来可扩展图片)
    • 🔔 实时通知: 新消息实时推送给相关人员
    • 📖 消息状态: 已读/未读状态跟踪
    • 🏷️ 消息标签: 重要消息可添加标签
    • 📎 消息引用: 可引用之前的消息进行回复
🔔 通知系统
  • 玩家通知:

    • ✅ 反馈提交成功通知
    • 💬 管理员回复通知 (实时 + 上线提醒)
    • 📊 反馈状态变更通知
    • 🎯 重要消息优先通知
    • 📱 离线消息汇总 (玩家上线时)
  • 管理员通知:

    • 🆕 新反馈提交通知
    • 💬 玩家回复通知
    • ⏰ 长时间未处理提醒
    • 📊 每日反馈统计提醒
    • 🚨 紧急反馈优先通知
📨 消息模板系统
  • 快速回复模板:

    yaml 复制代码
    templates:
      acknowledge: "感谢您的反馈,我们已经收到并开始处理。"
      investigating: "我们正在调查这个问题,请耐心等待。"
      need_more_info: "请提供更多详细信息以便我们更好地帮助您。"
      resolved: "问题已解决,请确认是否还有其他需要帮助的地方。"
      rejected: "很抱歉,经过评估后我们无法采纳这个建议。"
  • 自动回复机制:

    • 反馈提交后自动发送确认消息
    • 状态变更时自动通知相关人员
    • 长时间无回复自动发送提醒
5. GUI界面系统
🎮 玩家端界面设计

A. 反馈主界面 (/feedback)

  • 界面布局: 6x9 (54格) 主界面

  • 功能区域:

    复制代码
    [新建反馈] [我的反馈] [热门反馈] [帮助说明] [    ] [    ] [    ] [    ] [关闭]
    [Bug报告 ] [功能建议] [玩家举报] [问题咨询] [服务表扬] [其他反馈] [    ] [    ] [    ]
    [🔍筛选条件🔍] [📅时间: 全部] [🔄排序: 最新] [    ] [    ] [    ] [    ] [    ] [    ]
    [📝反馈1] [📝反馈2] [📝反馈3] [📝反馈4] [📝反馈5] [📝反馈6] [📝反馈7] [📝反馈8] [📝反馈9]
    [📝反馈10] [📝反馈11] [📝反馈12] [📝反馈13] [📝反馈14] [📝反馈15] [📝反馈16] [📝反馈17] [📝反馈18]
    [上一页  ] [    ] [    ] [    ] [    ] [    ] [    ] [    ] [下一页]
  • 筛选排序功能:

    • 🔍 筛选按钮 (统一筛选控制):

      • 🖱️ 左键点击: 切换筛选类型 (时间→状态→类型→评分→时间...)
      • 🖱️ 右键点击: 切换当前筛选类型的子选项
    • 📅 时间筛选选项:

      • 全部 → 今日 → 本周 → 本月 → (循环)
    • 📊 状态筛选选项:

      • 全部 → 🟡待处理 → 🔵处理中 → 🟢已解决 → 🔴已拒绝 → ⚪已关闭 → (循环)
    • 🏷️ 类型筛选选项:

      • 全部 → 🐛Bug报告 → 💡建议 → 🚨举报 → ❓问题 → 👍表扬 → 📝其他 → (循环)
    • ⭐ 评分筛选选项:

      • 全部 → 高评分(8+) → 中评分(5-8) → 低评分(<5) → 无评分 → (循环)
    • 🔄 排序方式:

      • 最新优先 → 最旧优先 → 评分最高 → 评价最多 → 热度最高(按总评价数) → (循环)
  • 界面交互设计:

    • 🔍 筛选按钮交互 :
      • 显示格式: [📅时间: 全部] (图标+类型+当前值)
      • 🖱️ 左键: 切换筛选类型 (时间→状态→类型→评分)
      • 🖱️ 右键: 切换当前类型的子选项
      • 💡 悬浮提示: "左键切换类型 | 右键切换选项"
    • 🔄 排序按钮交互 :
      • 显示格式: [🔄排序: 最新]
      • 🖱️ 点击: 循环切换排序方式
    • 📋 反馈卡片 : 每个格子显示一个反馈 [📝反馈标题]
    • 🖱️ 鼠标悬浮显示详细信息 :
      • 反馈完整标题和内容预览 (最多150字符)
      • 反馈类型图标、作者名称、提交时间
      • 当前状态和处理进度
      • 评价统计 (👍正面/👎负面数量、总热度)
      • 讨论参与人数和最新讨论时间
      • 管理员回复状态 (是否有未读回复)
    • 🖱️ 鼠标点击操作 :
      • 左键: 打开反馈评价界面
      • 右键: 打开反馈讨论界面
    • 📄 分页导航: 支持翻页查看更多反馈

B. 个人反馈界面 (/feedback my)

  • 界面功能 :
    • 📋 反馈列表显示 (支持分页)
    • 🔍 状态筛选 (全部/待处理/处理中/已解决/已拒绝)
    • 📅 时间排序 (最新/最旧)
    • 🏷️ 类型筛选 (Bug/建议/举报等)
  • 反馈卡片信息 :
    • 反馈ID、类型图标、标题
    • 状态颜色标识
    • 创建时间、最后更新时间
    • 未读回复提示 (红点标识)

C. 反馈详情界面

  • 对话式界面设计 :

    复制代码
    ┌─────────────────────────────────────────┐
    │ 反馈 #001 - Bug报告                      │
    │ 状态: 🔵处理中  热度: 🔥47票           │
    │ 创建时间: 2025-11-03 14:30              │
    │ 👍正面: 👍12 ❤️8 💡15 🔥5 (共40票)      │
    │ 👎负面: 👎3 ❌1 🚫2 ⚠️1 (共7票)        │
    │ 📊评分: 8.5/10  赞同率: 85.1%           │
    ├─────────────────────────────────────────┤
    │ 👤 玩家消息 (14:30)                     │
    │ 服务器在挖矿时经常卡顿,特别是在深层...   │
    ├─────────────────────────────────────────┤
    │ 👨‍💼 管理员回复 (15:45)                  │
    │ 我们已经收到你的反馈,正在调查这个问题... │
    ├─────────────────────────────────────────┤
    │ 👤 玩家追加 (16:20)                     │
    │ 问题还是存在,而且现在连放置方块都卡...   │
    ├─────────────────────────────────────────┤
    │ 正面评价: [👍赞同] [❤️支持] [💡有用] [🔥重要] │
    │ 负面评价: [👎不赞同] [❌无关] [🚫重复] [⚠️误导] │
    │ [继续对话] [查看评价] [查看相关] [返回]   │
    └─────────────────────────────────────────┘

D. 反馈评价界面 (左键点击任意反馈打开)

  • 触发方式: 鼠标悬浮到反馈 → 左键点击打开评价界面

  • 界面布局: 6x9 (54格) 评价界面

  • 功能区域:

    复制代码
    [📝反馈内容] [👤作者: PlayerName] [📅时间: 11-03 14:30] [📊状态: 🔵处理中] [📋他的反馈] [讨论区] [    ] [返回]
    [反馈标题: "服务器挖矿卡顿问题"] [反馈详细内容显示区域...] [    ] [    ] [    ] [    ] [    ] [    ]
    [👍正面评价👍] [玩家A: 👍赞同] [玩家B: ❤️支持] [玩家C: 💡有用] [玩家D: 🔥重要] [玩家E: 👍赞同] [更多...] [    ]
    [👎负面评价👎] [玩家F: 👎不赞同] [玩家G: ❌无关] [玩家H: 🚫重复] [    ] [    ] [    ] [    ] [    ]
    [📊评价统计📊] [👍40票 85%] [👎7票 15%] [总分: 8.5/10] [热度: 🔥47票] [查看全部评价] [    ] [    ]
    [我的操作] [👍赞同] [❤️支持] [💡有用] [🔥重要] [👎不赞同] [❌无关] [🚫重复] [⚠️误导]
  • 界面元素设计:

    • 📋 第一行信息栏 :
      • 📝 反馈内容: 点击查看完整反馈内容
      • 👤 作者信息: 显示反馈作者名称
      • 📅 反馈时间: 显示提交时间
      • 📊 反馈状态: 显示当前处理状态
      • 📋 他的反馈: 点击查看该作者的所有反馈历史
      • 🔗 讨论区: 切换到讨论界面
    • 📝 反馈详情区: 显示反馈标题和详细内容
    • 👥 评价玩家区 : 使用命名牌显示评价玩家列表
      • 正面评价区: 绿色命名牌显示 "玩家名: 👍赞同"
      • 负面评价区: 红色命名牌显示 "玩家名: 👎不赞同"
    • 📊 评价统计区 : 显示评价统计数据
      • 正面/负面评价数量和比例
      • 综合评分和热度显示
      • [查看全部评价] 按钮 - 打开完整评价列表界面
    • 🎮 操作按钮区: 玩家可以进行评价的按钮
    • 📄 分页显示 :
      • 每行显示有限数量的评价,用 [更多...] 表示还有更多
      • 点击 [更多...][查看全部评价] 查看完整列表

E. 反馈讨论界面 (右键点击任意反馈打开)

  • 触发方式: 鼠标悬浮到反馈 → 右键点击打开讨论界面

  • 界面布局: 6x9 (54格) 讨论界面

  • 功能区域:

    复制代码
    [📝反馈内容] [👤作者: PlayerName] [📅时间: 11-03 14:30] [📊状态: 🔵处理中] [📋他的反馈] [评价区] [    ] [返回]
    [👤玩家A] [👤玩家B] [👤玩家C] [👤玩家D] [👤玩家E] [👤玩家F] [👤玩家G] [👤玩家H] [👤玩家I]
    [👤玩家J] [👤玩家K] [👤玩家L] [👤玩家M] [👤玩家N] [👤玩家O] [👤玩家P] [👤玩家Q] [👤玩家R]
    [👤玩家S] [👤玩家T] [👤玩家U] [👤玩家V] [👤玩家W] [👤玩家X] [👤玩家Y] [👤玩家Z] [    ]
    [👤管理员A] [👤管理员B] [    ] [    ] [    ] [    ] [    ] [    ] [    ]
    [    ] [    ] [    ] [    ] [    ] [    ] [    ] [    ] [    ]
    [上一页] [    ] [    ] [    ] [    ] [    ] [    ] [    ] [下一页]
    [💬发表讨论] [🔄刷新] [📅按时间排序] [👤按玩家筛选] [    ] [    ] [    ] [    ] [    ]
  • 界面元素设计:

    • 📋 第一行信息栏 :
      • 📝 反馈内容: 点击查看完整反馈内容
      • 👤 作者信息: 显示反馈作者名称
      • 📅 反馈时间: 显示提交时间
      • 📊 反馈状态: 显示当前处理状态
      • 📋 他的反馈: 点击查看该作者的所有反馈历史
      • 🔗 评价区: 切换到评价界面
    • 💭 讨论内容区 : (第2-6行) 显示参与讨论的玩家
      • 每个格子显示一个玩家: [👤玩家名]
      • 按玩家发表讨论的时间排序 (默认最早发言在前)
      • 使用命名牌或玩家头颅显示
      • 🖱️ 鼠标悬浮显示详细信息 :
        • 玩家名称和发言时间
        • 完整的讨论内容
        • 该玩家在此反馈下的发言次数
        • 最后发言时间
      • 🖱️ 点击操作: 点击玩家可查看该玩家的所有反馈
    • 📄 分页控制区 : (第7行)
      • [上一页][下一页] 按钮
      • 每页显示最多45个玩家 (5行×9列)
    • 🎮 操作按钮区 : (第8行) 玩家操作功能
      • 💬发表讨论: 发表新的讨论发言
      • 🔄刷新: 刷新讨论内容
      • 📅按时间排序: 切换时间排序 (最早发言/最晚发言)
      • 👤按玩家筛选: 筛选特定玩家或管理员

G. 热门反馈界面 (/feedback hot)

  • 界面功能 :
    • 📈 按评分排序显示热门反馈
    • 🔥 显示趋势反馈 (最近评价增长快的)
    • 📊 评价统计可视化显示
    • 🏆 本周/本月热门反馈排行榜
  • 排序选项 :
    • 综合评分排序 (默认)
    • 总评价数排序
    • 最近热度排序
    • 特定类型评价排序 (如最多"重要"评价)
🛠️ 管理员端界面设计

A. 反馈管理主界面 (/feedbackadmin)

  • 高级筛选系统 :
    • 📅 时间筛选: 今天/本周/本月/自定义时间段
    • 👤 玩家筛选: 输入玩家名或UUID
    • 🏷️ 类型筛选: Bug/建议/举报等
    • 📊 状态筛选: 待处理/处理中/已解决等
    • 🔥 热度筛选: 按总评价数量筛选
    • 🔍 关键词搜索: 标题和内容搜索
  • 排序选项 :
    • 时间排序 (最新优先/最旧优先)
    • 热度排序 (高热度优先/按总评价数排序)
    • 状态排序 (待处理优先)
    • 玩家排序 (按玩家名字母顺序)

B. 反馈处理界面

  • 快速操作栏 :

    复制代码
    [回复消息] [更改状态] [添加标签] [转交他人] [删除反馈]
  • 状态管理 :

    • 🟡 标记为待处理
    • 🔵 标记为处理中 (自动分配给当前管理员)
    • 🟢 标记为已解决 (需要填写解决方案)
    • 🔴 标记为已拒绝 (需要填写拒绝理由)
    • ⚪ 关闭反馈 (归档处理)

C. 批量操作界面

  • 支持多选反馈进行批量操作
  • 批量状态更改
  • 批量分配给其他管理员
  • 批量添加标签

D. 玩家反馈历史界面

  • 触发方式: 点击任意反馈中的玩家名称
  • 界面功能 :
    • 📊 显示该玩家的所有历史反馈
    • 📈 玩家反馈统计信息 (总数/已解决/待处理等)
    • 🕐 按时间排序显示反馈列表
    • 🏷️ 反馈类型分布统计
    • ⭐ 玩家反馈质量评级 (可选功能)
  • 快速操作 :
    • 🔍 在该玩家的反馈中搜索关键词
    • 📋 批量处理该玩家的待处理反馈
    • 📝 为该玩家添加备注标签
    • 🚫 设置该玩家的反馈限制 (如果需要)
6. 权限系统
  • 玩家权限 :
    • playerfeedback.submit - 提交反馈
    • playerfeedback.view.own - 查看自己的反馈
    • playerfeedback.view.others - 查看其他玩家的反馈
    • playerfeedback.rate - 对反馈进行评价
    • playerfeedback.rate.view - 查看反馈评价详情
  • 管理员权限 :
    • playerfeedback.admin - 管理员基础权限
    • playerfeedback.admin.view - 查看所有反馈
    • playerfeedback.admin.reply - 回复反馈
    • playerfeedback.admin.manage - 管理反馈状态
    • playerfeedback.admin.delete - 删除反馈
7. 配置系统
  • config.yml 配置项 :

    yaml 复制代码
    # 本地存储配置
    storage:
      # 主数据库
      database:
        type: sqlite
        file: feedbacks.db
        path: "plugins/PlayerFeedback/data/"
        
      # 备份设置
      backup:
        enabled: true
        interval_hours: 24
        max_backups: 7
        backup_path: "plugins/PlayerFeedback/backups/"
        
      # 缓存设置
      cache:
        enabled: true
        max_size: 100
        expire_minutes: 30
        
      # 日志设置
      logging:
        enabled: true
        log_path: "plugins/PlayerFeedback/logs/"
        max_log_files: 10
    
    # 反馈限制
    limits:
      max_content_length: 500
      max_title_length: 100
      cooldown_seconds: 300
      max_pending_per_player: 5
      max_interactions_per_feedback: 50
      max_daily_feedbacks_per_player: 10
      
    # 评价系统设置
    rating_system:
      enabled: true
      allow_self_rating: false # 不允许给自己的反馈评价
      allow_rating_change: true # 允许修改评价
      min_rating_level: 0 # 最低等级才能评价 (0=所有玩家)
      
      # 评分权重配置
      rating_weights:
        # 正面评价权重 (正数)
        agree: 1.0      # 赞同权重
        support: 1.2    # 支持权重 (稍高,表示问题确实存在)
        helpful: 1.5    # 有用权重 (更高,表示建议有价值)
        important: 2.0  # 重要权重 (最高,表示紧急问题)
        # 负面评价权重 (负数,会降低评分)
        disagree: -0.8   # 不赞同权重
        irrelevant: -1.5 # 无关权重 (较高负权重)
        duplicate: -1.0  # 重复权重
        misleading: -2.0 # 误导权重 (最高负权重)
      
      # 热度计算设置
      hotness_calculation:
        enabled: true
        update_interval_minutes: 10  # 每10分钟更新一次热度
        formula: "total_ratings"     # 热度 = 总评价数 (正面+负面)
      
    
    # 通知设置
    notifications:
      # 管理员通知
      admin_new_feedback: true
      admin_player_reply: true
      admin_long_pending_reminder_hours: 24
      admin_daily_stats: true
      
      # 玩家通知
      player_reply_notification: true
      player_status_change: true
      player_offline_message_summary: true
      
      # 广播设置
      broadcast_resolved_count: true
      broadcast_new_feedback_count: false
    
    # GUI设置
    gui:
      main_title: "玩家反馈系统"
      admin_title: "反馈管理系统"
      personal_title: "我的反馈"
      rating_title: "反馈评价区"
      discussion_title: "反馈讨论区"
      size: 54
      auto_refresh_seconds: 30
      feedbacks_per_page: 18  # 主界面每页显示的反馈数量 (2行×9列)
      
      # 鼠标交互设置
      mouse_interaction:
        enable_hover_preview: true    # 启用悬浮预览
        left_click_action: "rating"   # 左键打开评价界面
        right_click_action: "discuss" # 右键打开讨论界面
        hover_delay_ms: 500          # 悬浮延迟时间(毫秒)
        show_click_hints: true       # 显示点击提示
      
      # 界面颜色配置
      colors:
        pending: "YELLOW"
        processing: "BLUE"
        resolved: "GREEN"
        rejected: "RED"
        closed: "GRAY"
        positive_rating: "GREEN"    # 正面评价颜色
        negative_rating: "RED"      # 负面评价颜色
        neutral_comment: "GRAY"     # 中性评论颜色
      
      # 评价界面设置
      rating_interface:
        preview_ratings_per_row: 5  # 每行预览显示的评价数量
        use_player_heads: false     # 暂时使用命名牌,后续改为玩家头颅
        show_rating_time: true      # 显示评价时间
        group_by_type: true         # 按评价类型分组显示
        show_statistics: true       # 显示评价统计数据
        enable_view_all: true       # 启用查看全部功能
      
      # 讨论界面设置
      discussion_interface:
        players_per_page: 45        # 每页显示的玩家数量 (5行×9列)
        use_player_heads: false     # 暂时使用命名牌,后续改为玩家头颅
        max_comment_length: 200     # 最大讨论内容长度
        default_sort: "first_comment_time_asc"  # 默认排序: 按首次发言时间
        enable_player_filter: true  # 启用按玩家筛选功能
        
        # 鼠标悬浮设置
        hover_tooltip:
          enabled: true             # 启用悬浮提示
          delay_ms: 500            # 悬浮延迟时间(毫秒)
          show_player_name: true   # 显示玩家名称
          show_comment_time: true  # 显示发言时间
          show_comment_content: true # 显示讨论内容
          show_comment_count: true # 显示发言次数
          show_last_comment_time: true # 显示最后发言时间
          max_content_length: 100  # 悬浮框中内容最大长度
    
    # 筛选和搜索设置
    filters:
      enable_time_filter: true
      enable_player_filter: true
      enable_type_filter: true
      enable_status_filter: true
      enable_rating_filter: true      # 启用评分筛选
      enable_keyword_search: true
      
      # 主界面筛选设置
      main_interface_filters:
        show_filter_button: true      # 显示筛选按钮
        show_sort_button: true        # 显示排序按钮
        remember_last_filter: true    # 记住上次筛选条件
        show_hover_hints: true        # 显示悬浮提示
        
        # 筛选类型循环顺序
        filter_type_cycle:
          - "time"       # 时间筛选
          - "status"     # 状态筛选
          - "type"       # 类型筛选
          - "rating"     # 评分筛选
        
        # 时间筛选选项 (简化)
        time_filter_options:
          - "all"        # 全部
          - "today"      # 今日
          - "week"       # 本周
          - "month"      # 本月
        
        # 状态筛选选项
        status_filter_options:
          - "all"        # 全部
          - "pending"    # 待处理
          - "processing" # 处理中
          - "resolved"   # 已解决
          - "rejected"   # 已拒绝
          - "closed"     # 已关闭
        
        # 类型筛选选项
        type_filter_options:
          - "all"        # 全部
          - "bug"        # Bug报告
          - "suggestion" # 建议
          - "report"     # 举报
          - "question"   # 问题
          - "praise"     # 表扬
          - "other"      # 其他
        
        # 评分筛选选项
        rating_filter_options:
          - "all"        # 全部
          - "high"       # 高评分 (8+)
          - "medium"     # 中评分 (5-8)
          - "low"        # 低评分 (<5)
          - "none"       # 无评分
      
      # 排序设置
      sorting:
        default_sort: "time_desc"     # 默认排序方式
        available_sorts:
          - "time_desc"    # 最新优先
          - "time_asc"     # 最旧优先
          - "rating_desc"  # 评分最高
          - "ratings_desc" # 评价最多
          - "hot_desc"     # 热度最高
    
    # 互动系统设置
    interactions:
      enable_multi_round: true
      enable_message_templates: true
      enable_auto_reply: true
      enable_message_reference: true
      max_message_length: 300
      
      # 自动回复设置
      auto_replies:
        feedback_submitted: true
        status_changed: true
        long_pending_reminder: true
    
    # 权限设置
    permissions:
      # 玩家权限
      player_submit_feedback: "playerfeedback.submit"
      player_view_own: "playerfeedback.view.own"
      player_reply: "playerfeedback.reply"
      
      # 管理员权限
      admin_base: "playerfeedback.admin"
      admin_view_all: "playerfeedback.admin.view"
      admin_reply: "playerfeedback.admin.reply"
      admin_manage: "playerfeedback.admin.manage"
      admin_delete: "playerfeedback.admin.delete"
      admin_export: "playerfeedback.admin.export"
    
    # 消息模板配置
    message_templates:
      # 系统消息
      prefix: "&7[&6反馈系统&7] "
      feedback_submitted: "&a反馈提交成功!反馈ID: &e#{id}"
      feedback_updated: "&b反馈 &e#{id} &b状态已更新为: &f{status}"
      new_reply: "&a您有新的反馈回复!反馈ID: &e#{id}"
      
      # 快速回复模板
      quick_replies:
        acknowledge: "&a感谢您的反馈,我们已经收到并开始处理。"
        investigating: "&e我们正在调查这个问题,请耐心等待。"
        need_more_info: "&c请提供更多详细信息以便我们更好地帮助您。"
        resolved: "&a问题已解决,请确认是否还有其他需要帮助的地方。"
        rejected: "&c很抱歉,经过评估后我们无法采纳这个建议。"
        
      # 状态变更消息
      status_messages:
        pending: "&e您的反馈正在等待处理"
        processing: "&b您的反馈正在处理中"
        resolved: "&a您的反馈已经解决"
        rejected: "&c您的反馈已被拒绝"
        closed: "&7您的反馈已关闭"
    
    # 统计和报告设置
    statistics:
      enable_daily_stats: true
      enable_weekly_report: true
      enable_monthly_report: true
      auto_cleanup_days: 365 # 自动清理365天前的已关闭反馈
      
    # 性能设置
    performance:
      cache_size: 100
      async_database_operations: true
      batch_notification_size: 10

🛠️ 技术实现计划

第一阶段: 基础框架 (预计2-3天)
  • 项目结构搭建
  • 数据库连接和表结构创建
  • 基础命令框架
  • 权限系统集成
  • 配置文件加载
第二阶段: 核心功能 (预计3-4天)
  • 反馈提交功能实现
  • 数据存储和查询
  • 基础管理命令
  • 反馈状态管理
第三阶段: GUI界面 (预计2-3天)
  • 玩家反馈GUI设计
  • 管理员管理GUI
  • 界面交互逻辑
第四阶段: 高级功能 (预计2-3天)
  • 通知系统
  • 反馈统计
  • 数据导出功能
  • 性能优化
第五阶段: 测试和优化 (预计1-2天)
  • 功能测试
  • 性能测试
  • Bug修复
  • 文档完善

📋 开发进度

2025年11月3日 - 项目启动
  • ✅ 项目需求分析完成
  • ✅ 功能设计文档编写 (第一版)
  • ✅ 开发计划制定
  • ✅ 界面设计和互动系统设计完成
  • ✅ 数据库结构设计完成
  • ✅ 配置系统设计完成
  • 🔄 准备开始基础框架开发
更新内容 (下午)
  • ✅ 添加了反馈主界面和个人反馈界面设计
  • ✅ 设计了高级筛选系统 (时间/玩家/类型/状态/评分)
  • ✅ 增加了多轮对话互动机制
  • ✅ 完善了管理员和玩家的互动流程
  • ✅ 扩展了数据库结构以支持对话记录
  • ✅ 设计了消息模板和自动回复系统

🎨 用户体验设计

🎮 玩家使用流程

基础反馈流程:

  1. 玩家输入 /feedback 打开反馈主界面
  2. 选择反馈类型 (Bug/建议/举报等) 或点击"新建反馈"
  3. 在聊天中输入反馈标题和内容
  4. 系统自动保存并分配ID,发送确认消息
  5. 玩家可通过 /feedback my 查看个人反馈历史

主界面筛选排序流程:

  1. 玩家打开反馈主界面,看到筛选按钮: [📅时间: 全部] 和排序按钮: [🔄排序: 最新]
  2. 使用统一筛选按钮进行筛选:
    • 🖱️ 左键点击筛选按钮 : 切换筛选类型
      • 📅时间 → 📊状态 → 🏷️类型 → ⭐评分 → (循环)
    • 🖱️ 右键点击筛选按钮 : 切换当前类型的选项
      • 时间: 全部 → 今日 → 本周 → 本月 → (循环)
      • 状态: 全部 → 待处理 → 处理中 → 已解决 → 已拒绝 → 已关闭 → (循环)
      • 类型: 全部 → Bug → 建议 → 举报 → 问题 → 表扬 → 其他 → (循环)
      • 评分: 全部 → 高评分 → 中评分 → 低评分 → 无评分 → (循环)
  3. 点击排序按钮切换排序方式: 最新 → 最旧 → 评分最高 → 评价最多 → 热度最高(总评价数) → (循环)
  4. 筛选条件实时生效,反馈列表自动更新
  5. 系统记住上次的筛选条件,下次打开时保持

互动对话流程:

  1. 玩家收到管理员回复通知
  2. 点击通知或使用 /feedback view <ID> 查看对话
  3. 使用 /feedback reply <ID> <消息> 继续对话
  4. 实时查看对话历史和状态变化
  5. 问题解决后确认或继续讨论
🛠️ 管理员处理流程

日常管理流程:

  1. 收到新反馈通知 (游戏内 + 可选外部通知)
  2. 使用 /feedbackadmin 打开管理界面
  3. 通过筛选器快速定位需要处理的反馈
  4. 点击反馈查看详情和对话历史
  5. 使用快速回复模板或自定义回复
  6. 更新反馈状态
  7. 设置跟进提醒或分配给其他管理员

高效筛选流程:

  1. 按热度排序查看热门反馈
  2. 按时间筛选查看今日/本周新反馈
  3. 按玩家筛选处理特定玩家的问题
  4. 按状态筛选批量处理待解决反馈
  5. 使用关键词搜索查找相关问题

玩家历史查看流程:

  1. 在反馈列表中点击任意玩家名称
  2. 自动跳转到该玩家的反馈历史界面
  3. 查看玩家的反馈统计和历史记录
  4. 可以在该玩家的反馈中进行搜索和筛选
  5. 批量处理该玩家的相关反馈

反馈评价互动流程:

  1. 玩家浏览反馈列表,发现感兴趣的反馈
  2. 点击查看反馈详情
  3. 根据反馈内容选择合适的评价类型:
    • 正面评价: 赞同/支持/有用/重要 (提升反馈评分)
    • 负面评价: 不赞同/无关/重复/误导 (降低反馈评分)
  4. 系统记录评价并实时更新反馈的评分统计
  5. 高评分反馈自动获得更高热度和曝光度

反馈鼠标交互导航流程:

  1. 玩家在反馈列表中悬浮到感兴趣的反馈
  2. 系统显示交互提示: "左键-评价区 | 右键-讨论区"
  3. 根据需求选择不同的交互方式:
    • 🖱️ 左键点击 → 打开反馈评价界面
    • 🖱️ 右键点击 → 打开反馈讨论界面
  4. 两个界面都显示统一的第一行信息栏:
    • 📝 反馈内容 | 👤 作者 | 📅 时间 | 📊 状态 | 📋 他的反馈

反馈评价界面使用流程:

  1. 查看反馈的评价统计和分布
  2. 浏览其他玩家的评价预览 (每行显示5个评价)
  3. 点击 [更多...][查看全部评价] 查看完整评价列表
  4. 查看评价统计数据 (正面/负面比例、总分、热度)
  5. 点击评价按钮给出自己的评价
  6. 实时查看评价统计的变化

反馈讨论界面使用流程:

  1. 右键点击反馈直接进入讨论界面
  2. 查看参与讨论的玩家列表 (每页最多45个玩家,按首次发言时间排序)
  3. 🖱️ 鼠标悬浮 到任意玩家查看详细信息:
    • 玩家名称和首次发言时间
    • 完整的讨论内容
    • 该玩家的发言次数
    • 最后发言时间
  4. 🖱️ 点击玩家查看该玩家的所有反馈历史
  5. 使用 [上一页] / [下一页] 浏览更多参与讨论的玩家
  6. 点击 [📅按时间排序] 切换排序方式 (最早发言/最晚发言)
  7. 点击 [👤按玩家筛选] 筛选特定类型玩家 (普通玩家/管理员)
  8. 点击 [💬发表讨论] 发表自己的讨论内容
  9. 点击 [🔄刷新] 获取最新讨论内容
  10. 点击 [评价区] 切换到评价界面

作者反馈历史查看流程:

  1. 在任意界面点击 [📋他的反馈] 按钮
  2. 打开该作者的反馈历史界面,显示:
    • 📊 该玩家的反馈统计 (总数/已解决/待处理)
    • 📋 按时间排序的反馈列表
    • 🏷️ 反馈类型分布统计
    • ⭐ 反馈质量评级 (基于评价数据)
  3. 可以直接点击历史反馈进入对应的评价或讨论界面
  4. 支持在该玩家的反馈中进行搜索和筛选
💬 互动体验设计

对话界面特色:

  • 📱 类似聊天软件的对话气泡设计
  • 🕐 清晰的时间戳和发送者标识
  • 🔔 未读消息红点提示
  • 📎 消息引用和回复功能
  • 🏷️ 重要消息标签高亮

快速操作设计:

  • 🚀 一键快速回复常用模板
  • ⚡ 状态快速切换按钮
  • 📊 批量操作选择框
  • 🔍 实时搜索和筛选
  • 👤 点击玩家名称查看该玩家所有反馈
  • 🖱️ 鼠标悬浮显示交互提示
  • 🖱️ 左键/右键快速进入不同界面
  • 📋 第一行信息栏快速导航
  • 🔄 筛选排序快速操作 :
    • 🖱️ 左键筛选按钮切换筛选类型
    • 🖱️ 右键筛选按钮切换选项值
    • 🖱️ 点击排序按钮循环切换排序
    • 💡 悬浮显示操作提示
    • 📊 实时预览筛选结果数量
    • 💾 自动记住上次筛选设置
  • 📱 移动端友好的界面布局

🔧 依赖库计划

  • SQLite JDBC: 本地数据库连接 (轻量级,无需外部数据库)
  • Libby: 依赖管理 (已集成)
  • Adventure API: 现代化文本组件 (可选,用于更好的消息显示)

💾 本地存储优势

  • 🚀 零配置: 无需配置外部数据库,开箱即用
  • 📁 便携性: 所有数据存储在插件目录,易于备份和迁移
  • 🔒 安全性: 数据完全在本地,不依赖网络连接
  • ⚡ 性能: 本地文件访问速度快,延迟低
  • 🛠️ 维护: 简单的文件操作,易于维护和调试
  • 💰 成本: 无需额外的数据库服务器成本

📊 预期效果

  • 提高服务器管理效率
  • 增强玩家参与度
  • 建立良好的沟通桥梁
  • 收集有价值的改进建议
  • 及时处理问题和投诉

🚀 后续扩展计划

  • Web端管理界面
  • 反馈数据分析
  • 自动分类系统
  • 多语言支持
  • 与Discord机器人集成

开发笔记

技术选择说明

  • Kotlin: 相比Java更简洁,空安全特性,开发效率高
  • SQLite: 轻量级本地数据库,无需额外配置,数据可靠性高
  • 本地文件存储: 避免网络依赖,提高系统稳定性和响应速度
  • GUI: 使用Bukkit原生Inventory系统,兼容性好,性能稳定

设计理念

  • 简单易用: 玩家操作步骤最少化
  • 功能完整: 覆盖反馈处理全流程
  • 性能优先: 异步处理,不影响服务器性能
  • 可扩展性: 模块化设计,便于后续功能添加

最后更新: 2025年11月3日

相关推荐
寻星探路9 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
崔庆才丨静觅10 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
曹牧11 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
passerby606111 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了11 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅11 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅11 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
爬山算法12 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
七夜zippoe12 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann