# MoeKoeMusic-Plugins 設計理念

起初在構建 MoeKoe Music 插件生態時,還沒有線上插件市場這個功能 後來在社區的建議下便有了這個插件市場 增加官方/社區插件倉庫以擴展產品功能 插件可以由社區開發,那插件市場應該怎麼管? 最直接的做法當然是把所有插件源碼都收進一個大倉庫裡。但這個方案越想越彆扭。每個插件都有自己的作者、自己的發佈節奏、自己的構建方式。把它們全塞進官方倉庫,不僅維護成本高,也會把責任邊界搞得很模糊。 所以這個倉庫最後沒有被設計成「插件源碼倉庫」,而是變成了一個「插件登記與索引倉庫」。它只做幾件事: 接收插件上架、更新、下架和舉報申請 自動做一輪基礎校驗和靜態識別 把人工審核通過時的插件快照記錄下來 維護客戶端可以讀取的 plugins.json 順手把 README 裡的插件列表更新出來,方便人看 一個可追溯的登記簿:誰提交的、審核的是哪個版本、下載地址是什麼、是否有網絡或文件權限,都落在一份清楚的數據裡。 市場索引,而不是源碼倉庫 倉庫根目錄最重要的文件是 plugins.json。它就是插件市場真正消費的數據源。 { "id": "custom-app-background", "name": "自定義背景圖", "description": "為MoeKoe Music提供自定義背景圖能力,支持透明度調節。", "iconUrl": "...", "version": "1.0.0", "minversion": "1.6.1", "...":"....", "buildRequired": false, "networkAccess": false, "fileAccess": false, "binaryContent": false, "snapshot": { "iconUrl": "...", "repository": "MoeKoeMusic/custom-app-background-plugin", "commitSha": "dbf72d38c8cf6b1d1cefdf8ce15798d565678995", "downloadUrl": "hxx.zip", "release": null } } 我不想讓市場記錄永遠指向插件倉庫「當前最新代碼」。因為作者今天提交的代碼,和審核那天看到的代碼,可能已經不是同一份東西了。插件市場真正應該承認的是:審核通過時的那個版本。 所以這個專案裡面有一個核心原則: 上架的不是一個會漂移的倉庫地址,而是一個已經鎖定的快照。 對於不需要編譯的插件,快照鎖到默認分支當時的 commit。對於需要編譯的插件,快照鎖到對應的 Release tag 和發行附件。這樣後面真出了問題,也能回頭知道當時到底審核了什麼。 Action 先跑,人最後拍板 用戶提交 Issue 時,需要選擇: ...

2026年6月20日 · 2 min · MoeJue

我用WebGL做18+遊戲,輸了「掉裝備」🔞

緊接上文:《同一個動畫,我用三種技術棧實現的區別?》 WebGL 二次元石頭剪刀布小遊戲。 規則很普通: 石頭 > 剪刀 剪刀 > 布 布 > 石頭 但有趣的是在於: 輸了會脫衣服。 對,就是這麼簡單粗暴。 起因其實是「我想研究精靈圖」 一開始我根本沒想做遊戲。 我只是想研究: atlas sprite 圖層疊加 動畫裁剪 這些東西。 然後想著:「總得有個實際應用場景吧?」 於是腦子一抽: 那乾脆做個二次元脫衣猜拳。 然後項目開始朝奇怪方向狂奔。 這個項目最麻煩的其實不是遊戲邏輯 石頭剪刀布規則簡單得離譜。 真正麻煩的是:衣服層級 因為角色不是:「一張完整圖片」 而是: 底圖 (防粿體被抓包,特意加密了) 衣服 A 衣服 B 衣服 C 配飾 遮擋層 不停疊。 「脫衣」其實是圖層管理 玩家贏了: 按設定好的順序移除一件衣服 電腦贏了: 再按逆序穿回來 聽起來簡單。 實際上會遇到一堆問題: 比如「不能瞬間露底圖」 這個特別關鍵。 如果你: 先刪舊衣服 再加新衣服 中間可能會閃出底圖。 於是視覺效果會特別怪。 所以我後來用了:reveal 覆蓋邏輯 新的層會立刻頂上。 盡量避免: 「裸體一幀閃現」。 雖然本身這項目看起來不正經 但至少技術上要優雅。 WebGL 在這裡真的很舒服 這個項目我最後選 WebGL 做。 原因很簡單:圖層太多。 ...

2026年6月13日 · 1 min · MoeJue

同一個動畫,我用三種技術棧實現的區別?

最近我做了個挺有意思的小實驗。 我把一個二次元角色的小動畫效果,分別用: WebGL Canvas 2D 純 DOM + CSS 實現了三遍。 效果本身不複雜: 眨眼 眉毛/下眼皮聯動 流汗輕微飄動 呆毛甩動 但真正有意思的,其實不是「做出來」。 而是: 同一個東西,用三種技術棧實現時,到底會差多少? 本質上就是一次「前端圖形學味很濃」的復刻實驗。 一開始只是想復刻一個呆毛動畫 靈感來源:https://tamanidamani.itch.io/nijikas-ahoge 我當時想法特別簡單:「如果是我,要怎麼實現?」 然後越做越上頭。最後直接演變成: 那我乾脆把 WebGL、Canvas2D、DOM 三種方案都做一遍算了。 於是倉庫就變成了現在這樣: canvas/ canvas2D/ dom/ 三個版本同效果實現。 先說結論 如果只讓我說一句話: WebGL 最強,但 Canvas2D 最舒服,DOM 最適合業務 1. WebGL 版本:最像「真正遊戲開發」 這個版本是最折騰的。 因為它本質上已經不是「前端動畫」了, 而是:GPU 圖形編程 它到底怎麼實現的? 核心思路其實就是: 底圖一層 精靈圖一層層貼 shader 控制繪製 JS 驅動動畫參數 比如: 呆毛旋轉 眨眼裁剪 alpha 混合 這些其實都在 GPU 那邊做。 你會開始接觸: uniform texture shader UV 頂點座標 紋理座標 然後人會逐漸失去笑容。 但 WebGL 真強 當元素一多的時候, WebGL 那種: 「完全不慌」 的感覺特別明顯。 尤其是: ...

2026年5月29日 · 2 min · MoeJue

杀死那个手写代码的人

最近寫程式碼的時候,我有一種很奇怪的感覺。 不是寫不動了,也不是不想寫,而是—— 好像越來越不需要我寫了。 以前一個功能,從需求到上線,基本是這樣的路徑: 我理解需求 → 設計方案 → 寫程式碼 → 除錯 → 改 bug → 上線 現在變成什麼樣? 我描述需求 → AI 寫程式碼 → AI 改 bug → 我看一眼 → 上線 中間那一大段「寫程式碼」的過程,突然變得很薄,甚至可以沒有。 這件事,一開始挺爽的。 但爽著爽著,會有一點不安。 過去程式設計師,除了「完成任務」後獲得的成就感,在整個寫程式碼的過程中也能體會到很多樂趣。 寫程式碼這件事,好像沒那麼重要了 我以前一直覺得,程式設計師最核心的能力,就是寫程式碼。 你寫得快不快、優不優雅、抽象得好不好,這些東西構成了「水準」的差異。 但現在,這套標準在慢慢失效。 很多程式碼,其實 AI 寫得比人快,也不一定比人差。 尤其是那種: CRUD 介面串接 常規邏輯處理 這些東西,AI 基本上是碾壓式效率。 有時候我自己寫了一段,還會下意識丟給 AI: 「你幫我優化一下」 結果它不僅優化了,還順手把我沒想到的情況補上了。 那一刻會有一點微妙—— 你開始分不清,這段程式碼到底是誰寫的。 更詭異的是:你開始不想自己寫了 這才是最危險的。 以前寫程式碼,是一種「控制感」: 每一行都是我敲出來的,我知道它為什麼這樣寫,也知道哪裡可能出問題。 但現在,當你習慣把問題丟給 AI,你會發現: 自己寫,反而變慢了。 甚至會有一種感覺: 「我為什麼要親自寫?」 這不是偷懶,這是效率的自然選擇。 就像你不會手算大整數一樣,你也不會再想手動寫那些「可以被自動完成」的程式碼。 程式設計師,正在變成另外一種角色 慢慢你會發現,你每天在做的事情變了。 不再是: ...

2026年5月5日 · 1 min · MoeJue

Web3 鏈上紅包 DApp

這是一個100%去中心化的區塊鏈紅包應用。用戶可以連接錢包,設定金額和數量發送紅包,然後透過連結分享給他人領取。所有資料和操作都基於區塊鏈,完全不需要中心化伺服器,整個過程安全、透明、可追溯。 如果你感興趣,可以在 GitHub 上看看我的程式碼:redpacket‑dapp 功能亮點 🧧 發送紅包: 連接錢包後,設定金額和數量發送紅包到區塊鏈 🎁 領取紅包: 透過分享連結,別人可以連接錢包直接從區塊鏈領取紅包 🔗 智能合約: 使用 Solidity 編寫的安全智能合約處理所有邏輯 🌐 多鏈支援: 支援本地測試網和 BSC 測試網 💼 Web3 整合: 使用 MetaMask 錢包連接 🚀 完全去中心化: 沒有後端伺服器,所有資料儲存在區塊鏈 技術棧 前端:React 19、React Router 6、TypeScript、Vite、Ethers v6 合約層:Hardhat、Solidity 0.8.x 工具:ESLint、Prettier 不需要後端: 零依賴伺服器 ❌ 快速啟動 # 1. 安裝專案依賴 npm install cd react-dapp && npm install && cd .. # 2. 啟動本地區塊鏈節點 npm run node # 3. 編譯智能合約 npx hardhat compile # 4. 部署智能合約 npm run deploy # 5. 啟動前端 npm run frontend 目錄結構 redpacket-web3/ ├─ contracts/ # Solidity 智能合約 │ └─ RedPacket.sol ├─ react-dapp/ # React + Vite 前端 │ ├─ src/ │ │ ├─ components/ # 通用組件(錢包按鈕、創建表單等) │ │ ├─ config/ # ABI、合約地址配置 │ │ ├─ hooks/ # 自定義 hooks(useWallet) │ │ ├─ pages/ # 頁面(Home、ClaimPacket) │ │ ├─ styles/ # 全域樣式 │ │ ├─ utils/ # Web3 工具函數 │ │ └─ App.tsx # 路由與佈局 │ ├─ .env.example # 前端所需環境變數說明 │ └─ package.json ├─ scripts/ │ └─ deploy.js # Hardhat 部署腳本(會自動寫入前端配置) ├─ hardhat.config.js └─ package.json # 根目錄腳本(Hardhat + 前端一鍵啟動) 使用指南 創建紅包 打開前端並點擊右上角「連接錢包」。 填寫紅包總金額與份數,應用會在前端隨機拆分金額。 提交後在 MetaMask 中確認交易,等待區塊確認。 成功後可複製系統生成的領取連結,分享給朋友。 領取紅包 打開分享連結(URL 帶有 /claim/{packetId})。 同樣先連接錢包,然後點擊「點擊領取」。 簽名確認後等待區塊打包,頁面會顯示結果與剩餘份數。 環境變數 dapp/.env(開發環境會自動忽略,請參考 .env.example) VITE_RPC_URL:前端直連節點 RPC,預設為 http://127.0.0.1:8545 VITE_CONTRACT_ADDRESS:可覆蓋部署腳本寫入的地址 VITE_CHAIN_ID:前端提示使用的鏈 ID(十六進制) root/.env:若需要在 Hardhat 中引用私鑰或 BSC RPC,可繼續沿用原有寫法。 智能合約(RedPacket.sol) 核心方法: ...

2026年1月10日 · 2 min · MoeJue

我不會AE,但是我會Code

✨ 緒山真尋的小窩 ✨ 🌸 歡迎來到緒山真尋的小窩 🌸 哇!你發現了我的秘密基地!(*≧ω≦) 這裡是緒山真尋的個人網站,充滿了可愛的動畫和有趣的內容!我會在這裡分享我喜歡的動畫、漫畫、遊戲和一些日常生活中的小確幸~ 💕 關於我 💕 我是緒山真尋,一個熱愛成人遊戲的家裡蹲廢柴尼特族。喜歡動畫、漫畫、輕小說和各種可愛的東西!最喜歡的顏色是粉色和淡藍色! ∩∩ (・ω・) <- 這是我! _| ⊃/(__ / └-(___/ 🎀 網站內容 🎀 🌟 精美動畫展示 📚 我的私房照 🎵 好聽的音樂 📷 日常生活的小片段 🌈 關於 🌈 🎭 演示: https://mahiro.moejue.cn/ 🏠 個人部落格: https://MoeJue.cn/ 🐱 GitHub: https://github.com/iAJue/Mahiro 📧 官方網站: https://onimai.jp/ 📝 版權聲明 📝 本網站由 @Moejue 設計和開發 網站中使用的所有動畫片段、漫畫圖片、角色形象及相關內容的版權均歸原作者(ねことうふ(Nekotofu))及其發行公司(Studio Bind、Ichijinsha)所有 如有侵權,請透過以上聯絡方式告知,我會立即刪除相關內容 GNU GENERAL PUBLIC LICENSE Version 2 Copyright © 2025 MoeJue. All rights reserved. 💌 特別感謝 💌 感謝所有喜歡緒山真尋的朋友們!(●’◡’●) ...

2025年8月23日 · 1 min · MoeJue

多鏈支援,真沒你想的那麼簡單

多鏈錢包整合的實踐反思 總算是空閒下來可以整理一下程式碼了,Web3 專案接入多鏈錢包連接功能,主要涉及 Ethereum、Polygon、BSC 和 Solana。乍一聽好像只是「多做幾套相容邏輯」的事,但真正落地後才發現,很多東西其實沒想得那麼簡單。 this.networkConfigs = { ethereum: { chainId: '0x1', // 1 chainName: 'Ethereum Mainnet', nativeCurrency: { name: 'Ethereum', symbol: 'ETH', decimals: 18 }, rpcUrls: ['https://eth-mainnet.public.blastapi.io'], blockExplorerUrls: ['https://etherscan.io'] }, polygon: { chainId: '0x89', // 137 chainName: 'Polygon Mainnet', nativeCurrency: { name: 'MATIC', symbol: 'MATIC', decimals: 18 }, rpcUrls: ['https://polygon-rpc.com'], blockExplorerUrls: ['https://polygonscan.com'] }, bsc: { chainId: '0x38', // 56 chainName: 'BNB Smart Chain', nativeCurrency: { name: 'BNB', symbol: 'BNB', decimals: 18 }, rpcUrls: ['https://bsc-dataseed.binance.org'], blockExplorerUrls: ['https://bscscan.com'] } } 多鏈並非簡單的「支援多個錢包」 最大的感受是:鏈不一樣,錢包互動方式也不一樣,連 SDK 的思維方式都不一樣。以太坊生態可以用統一的 Web3.js 處理很多邏輯,而到了 Solana,你會發現它完全是另一套系統:Provider 接入、連接流程、PublicKey 建構方式都不太一樣,甚至連網路延遲和穩定性都影響體驗。 ...

2025年7月5日 · 10 min · MoeJue

打造 macOS 風格的 Web 應用

專案概述 在當今的 Web 開發領域,使用者體驗和介面設計變得越來越重要。 Mac Web Vue Template 是一個受 macOS 設計啟發的現代優雅的 Vue.js Web 模板,它是一個基於 Vue.js 的現代化 Web 應用模板,其設計靈感來源於 macOS 的優雅介面。這個專案不僅提供了美觀的 UI 設計,還包含了完整的專案結構和最佳實踐。 線上演示 你可以透過造訪 WebAi 來體驗這個模板的實際效果。邀請碼(MoeJue) 核心特色 macOS 風格的 UI 設計 採用 macOS 的設計語言 精緻的毛玻璃效果 優雅的動畫過渡 現代化的技術棧 Vue.js 作為核心框架 Vite 作為建構工具 Pinia 進行狀態管理 Vue Router 處理路由 SCSS 預處理器 ES6+ 現代特性 響應式設計 完美適配各種螢幕尺寸 流暢的行動裝置體驗 專案結構解析 專案採用了清晰且模組化的目錄結構: src/ ├── assets/ # 靜態資源 ├── components/ # Vue 組件 │ ├── common/ # 通用組件 │ ├── system/ # 系統組件 │ └── apps/ # 應用組件 ├── views/ # 頁面視圖 ├── router/ # 路由配置 ├── stores/ # 狀態管理 └── utils/ # 工具函數 這種結構設計使得專案具有良好的可維護性和可擴展性。 ...

2025年5月11日 · 1 min · MoeJue

萌音商城移動端版本發售

專案介紹 萌音商城行動版是一個基於uniapp開發的多端商城系統,支援iOS、Android、H5及小程式等多個平台。系統採用PHP + MySQL + FastAdmin作為後端技術棧,實現了完整的電商功能。 核心功能 商品管理:分類、列表、詳情展示 購物流程:購物車、結算、支付、訂單管理 用戶系統:會員中心、個人資訊管理 多商戶模式:商戶獨立管理商品與訂單 發貨系統: 支援推送訂單至ERP(管家婆)系統處理 雙模式交易: 線上下單快遞發貨 線上下單到店自取/外送員配送 系統預覽 後台管理介面 小程式端介面 版本說明 目前版本為V1.0版,部分介面為預留規劃,將根據實際需求持續更新完善。由於尚未正式發布版本並上線小程式營運,因此目前沒有線上版本可供演示。 購買說明 價格:188元 (版本更新後將會視情況調整價格,請以實際價格為準) 內容:完整原始碼(含行動端和後台,無加密無授權) 推薦返利:推薦好友購買可獲20%返利 更新服務:終身免費更新 使用須知:禁止私自轉售,違規將停止更新服務 開發支援:原始碼含詳細註釋,方便二次開發 專案託管:程式碼託管於GitHub,更新日誌完整透明 多端支援: 需要自行編譯其他客戶端,基於微信小程式環境開發 聯繫方式 QQ交流群:點擊加入 由於沒有個人QQ連結,加群後請@群主諮詢購買事宜 專案滯銷了,請幫幫阿珏醬 線上演示 微信小程式端演示影片 後台演示環境請聯繫諮詢 微信小程式可聯繫添加體驗權限

2025年4月17日 · 1 min · MoeJue

一款開源簡潔高顏值的酷狗第三方客戶端V1.0.0 Beta

MoeKoe 音樂 一款開源、簡潔、高顏值的酷狗第三方客戶端 🌎 GitHub 儲存庫 | 📦️ 下載安裝包 | 💬 瀏覽部落格 前言 早在約 10 年前,當時我還在使用網頁版 QQ 時就已經開始使用酷狗音樂了(也是十多年的老粉絲了),所以這些年收藏的歌曲全部都在上面。後來我也嘗試開始使用網易雲或 QQ 音樂,也嘗試把酷狗的歌單匯入進去,但是效果都不盡理想。我聽的大多是日漫 OP,好多歌曲都沒辦法找到。 兜兜轉轉最後還是回到酷狗,但是在 Mac 端的酷狗,時常可能會出現不能播放的情況,雖說介面沒什麼功能,但也挺好的。在網友的推薦下,我現在一直是在酷狗的概念版上聽歌,並且是市面上為數不多能免費聽 VIP 歌曲的音樂播放軟體了,強力推薦。 我在我的個人介紹頁面說我特別喜歡聽歌,尤其是日漫 OP。怎麼證明呢?(之前我網頁版歌單也年久失修了)那就自己開發一個音樂播放器。 ✨ 特性 ✅ 使用 Vue.js 全家桶開發 🔴 酷狗帳號登入(掃碼/手機/帳號登入) 📃 支援歌詞顯示 📻 每日推薦歌曲 🚫🤝 無任何社交功能 🔗 官方伺服器直連,無任何第三方 API ✔️ 每日自動領取 VIP,登入即是 VIP 🎨 主題色切換 👋 啟動問候語 ⚙️ 多平台支援 🛠 更多特性開發中 待辦清單 [ ] 📺 支援 MV 播放 [ ] 🌚 自動切換淺色/深色模式 [ ] 👆 支援 Touch Bar [ ] 🖥️ 支援 PWA,可在 Chrome/Edge 中點擊網址列右邊的 ➕ 安裝到電腦 [ ] 🟥 支援 Last.fm Scrobble [ ] 🎧 支援 Mpris [ ] ⌨️ 自訂快捷鍵和全域快捷鍵 [ ] 🤟 多語言支援 [ ] 📻 桌面歌詞 [ ] ⚙️ 系統架構優化 [ ] 🎶 歌曲、歌單管理/收藏、取消收藏 📦️ 安裝 請造訪本專案的 Releases 頁面下載安裝包。 ...

2024年11月3日 · 2 min · MoeJue