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日

相关推荐
爱加班的猫6 小时前
深入理解防抖与节流
前端·javascript
自由日记6 小时前
学习中小牢骚1
前端·javascript·css
泽泽爱旅行7 小时前
业务场景-opener.focus() 不聚焦解决
前端
VOLUN7 小时前
Vue3 选择弹窗工厂函数:高效构建可复用数据选择组件
前端·javascript·vue.js
ErMao7 小时前
深入理解let、const和var
前端
IT_陈寒7 小时前
SpringBoot 3.2新特性实战:这5个隐藏功能让开发效率翻倍🚀
前端·人工智能·后端
涛哥AI编程7 小时前
【AI编程干货】Token成为硬通货后,我的7000字Claude Code精算准则
前端·ai编程
IT_陈寒7 小时前
Vue3性能优化实战:这5个技巧让我的应用加载速度提升70% 🚀
前端·人工智能·后端
天天摸鱼的java工程师7 小时前
别再写那些重复代码了!8年Java老兵教你用 Hutool 提升开发效率
java·后端