/play <url>— putar audio dari URL YouTube, masuk ke antrean/queue— lihat antrean musik yang sedang berjalan/stop— hentikan playback dan kosongkan antrean/musik [aksi]— kontrol koneksi voice channel (gabung/keluar/status)/meme— kirim meme acak ke channel
- Runtime: Node.js 22, Ruby 3.2.2
- Discord (Node.js): discord.js 14, @discordjs/voice
- Discord (Ruby): discordrb 3.5
- Eksternal: yt-dlp, ffmpeg
pal/
├── src/ Implementasi Node.js (discord.js)
│ ├── commands/ Handler slash command
│ ├── voice/ Manajemen koneksi voice
│ ├── config.js Pembacaan environment variable terpusat
│ └── index.js Entry point
├── lib/ Implementasi Ruby (discordrb)
│ └── pal/
│ ├── commands/ Handler command Ruby
│ └── ...
├── test/ Test suite Ruby (Minitest)
├── bin/
│ └── pal CLI entry point Ruby
├── .env.example Template environment variable
└── package.json
Prasyarat sistem:
brew install yt-dlp ffmpeg ruby@3.2 # macOS
echo 'export PATH="/opt/homebrew/opt/ruby@3.2/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc-
Clone repositori:
git clone https://github.com/franzxml/pal.git && cd pal
-
Install dependency:
npm install bundle install
-
Salin template environment dan isi nilainya:
cp .env.example .env
-
Jalankan bot:
npm start
| Perintah | Keterangan |
|---|---|
npm start |
Jalankan bot Discord (Node.js) |
npm run lint |
Periksa kode JavaScript dengan ESLint |
npm run voice:report |
Cek status dependency voice (ffmpeg, opus) |
bundle exec rake test |
Jalankan seluruh test suite Ruby |
bundle exec rubocop |
Lint kode Ruby |