Skip to content
/ emily Public
forked from NTUT-NPC/emily

北科程式設計研究社 (NPC) 的 Discord 社群管理工具,舊 Emily 的 Discord.js 重製版。

Notifications You must be signed in to change notification settings

NPC-GO/emily

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Emily

北科程式設計研究社 (NPC) 的 Discord 社群管理工具,舊 Emily 的 Discord.js 重製版。專案結構是基於 書呆大學長

功能

身份組群組 (Metaroles)

利用指令製作由多個身份組組成的身份組,便於管理權限。例如透過自動產生「幹部」身份組群組來同時管理所有歷屆幹部身份組。

社員 (Membership)

透過對話框填寫資料,並分配身份組,自動化社員加入流程;幹部可於後臺管理社員的加入請求。

開發

請依照慣例式提交規範用中文或英文寫提交說明。

技術棧

  • Bun: JavaScript 執行環境和套件管理工具
  • Discord.js:Discord API 的 Node.js 實作
  • TypeScript:JavaScript 的超集,提供型別檢查和其他語言功能
  • Prisma:資料庫存取工具
  • Pino:日誌工具

斜線指令

所有斜線指令位於 src/commandsindex.tstypes.ts 除外)。要增加斜線指令,請在 src/commands 新增一個預設匯出 Command 型別的檔案。Command 型別可以在 src/commands/types.ts 找到。

部屬

你可以用 Dockerfileexamples 目錄的各種範例 compose.yaml 在 Docker 部屬這個機器人。大略步驟如下:

git clone https://github.com/NTUT-NPC/emily
cd emily
cp examples/compose.prod.yaml compose.yaml
cp examples/.env .
# 用文字編輯器填寫 `.env` 檔案
docker compose up -d

由於一個 Bun 的問題,資料庫遷移可能不會執行,導致 prisma 找不到 emily 資料庫。此時你需要手動執行 bun x prisma migrate deploy 後再試一次。

Discord Developers 網站建立一個機器人。啟用 Privileged Gateway Intents 中的 Presence IntentServer Members Intent

最後,用邀請連結來將機器人加入您的Discord伺服器。將「你的_Client_ID」替換為您機器人的 Client ID:

https://discord.com/api/oauth2/authorize?client_id=你的_Client_ID&permissions=268437504&scope=bot%20applications.commands

About

北科程式設計研究社 (NPC) 的 Discord 社群管理工具,舊 Emily 的 Discord.js 重製版。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 97.1%
  • Dockerfile 1.5%
  • JavaScript 1.4%