Skip to content

v1.6.0: 事件重構模組化、整合經濟與RPG金幣、補全小遊戲、新增AI冒險奇遇、客服單與日記助手#3

Open
yanggu0413 wants to merge 2 commits into
kairo0916:mainfrom
yanggu0413:v1.6.0
Open

v1.6.0: 事件重構模組化、整合經濟與RPG金幣、補全小遊戲、新增AI冒險奇遇、客服單與日記助手#3
yanggu0413 wants to merge 2 commits into
kairo0916:mainfrom
yanggu0413:v1.6.0

Conversation

@yanggu0413

Copy link
Copy Markdown

概述

本 Pull Request (PR) 請求將 `v1.6.0` 分支合併至 `main`。本版本基於先前 v1.5.1 版進行了重構,包含事件監聽器拆分模組化、整合經濟與 RPG 系統、補全小遊戲以及全新功能實作。本 PR 不含任何私訊 (DM) 相關異動,僅在伺服器環境下正常運作,確保底層與使用體驗的純淨。

主要變更

  1. 核心架構模組化與重構

    • 將 `bot.js` 從原先的 2,300+ 行精簡至約 150 行。
    • 實作了自動化的 動態事件載入器 (Event Loader),將事件監聽器獨立拆分至 `events/` 資料夾中(如 `ready.js`、`messageCreate.js` 等)。
    • 將 AI 運作的核心代理、額度扣除及圖片視覺分析邏輯抽離至 `modules/aiAgent.js`。
    • 提取通用 Discord 訊息處理工具至 `utils/discordUtils.js`。
  2. 修復搜尋系統 Bug

    • 修復了網頁搜尋在無 Google Custom Search API Key 時直接阻擋的缺陷,現在會自動流暢地 Fallback 至免金鑰的 DuckDuckGo 搜尋解析。
  3. RPG 存檔安全重構與經濟系統合併

    • 廢除原先全服共用單一 `rpg_players` Document 的不安全設計,重構為以用戶為單位的個別 Document 儲存(位於 `user_data` 的 `rpg` 欄位),徹底防範 Race Conditions 與 16MB 的資料上限崩潰。
    • 合併 RPG 金幣餘額 `p.gold` 與全局的 `/經濟` 金幣系統,玩家在 RPG 中掙得或花費的金幣會即時連動全局金幣。
  4. 補全 `/遊戲` 中的維護中小遊戲

    • 實作了 拉霸機數字炸彈21點1a2b 遊戲,支援金幣下注與扣除。
    • 實作了 AI 20問:由 AI (Gemini/Cohere) 擔任是非題裁判與主持人,限制回答「是/否/可能/無關」,讓玩家猜謎。
  5. 全新 `/rpg` 原生斜線指令組

    • 將 legacy 舊文字指令全部移植為 `/rpg` 原生斜線指令(創建、狀態、商店、購買、出售、轉職、治療、強化、贈送、行動)。
    • 新增 `/rpg 冒險`:AI 奇遇與動態故事生成系統!AI 會結合玩家狀態與職業現場編造劇本,並提供三個選項按鈕,玩家點擊後由 AI 判定抉擇結果與獎懲。
    • 新增 `/rpg 教學`:新手指引與全 12 種職業技能與屬性玩法說明。
  6. 補全客服單 (Ticket) 後端邏輯

    • 點擊設定面板的按鈕後,會自動在指定分類下創建限權的 `ticket-成員名稱` 客服頻道,並配有「關閉客服單」按鈕,點擊後會倒數 5 秒自動刪除並記錄日誌。
  7. 補全與修復 AI 日記助手

    • 實作了日記 Modal 提交後的 AI 寫日記與存檔邏輯。調用 Gemini 3.0 Flash 結合 `prompt.txt` 中可愛傲嬌的「雲喵」口吻撰寫情感細緻的第一人稱日記。
    • 移除了 API 限制的 `maxTokens` 設定,防止 Gemini 在進行思考過程時耗光 Token 導致內文被截斷。
  8. 修復系統日誌與本地資料庫寫入 Bug

    • 導出日誌函數 `logSystemEventToChannel` 以修復使用指令時的崩潰。
    • 為本地 JSON 資料庫補充 `insertOne` 方法,確保在沒有 MongoDB 時,日記等新功能依然能流暢在本地進行 JSON 文件存檔。
  9. 本地開發優化

    • 將依賴 `@discordjs/opus` 替換為純 JS 的 `opusscript`,免除 Windows 等本地開發環境因缺乏 C++ 編譯鏈導致 dependencies 安裝報錯。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants