Categorygithub.com/josephcopenhaver/melody-bot
repository
0.0.0-20241030165803-1a7056bd3adf
Repository: https://github.com/josephcopenhaver/melody-bot.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

melody-bot

My discord bot

build steps:

mage shell # can prefix with "NOBUILD=y" to avoid rebuilding the shell container
mage build

configure stack:

to create/edit a environment file for ENV=test:

code ./secrets/test.env

create stack (with new build):

mage up

create stack (with old build):

NOBUILD=y mage up

teardown stack

mage down

cleanup build output and volumes

mage clean

required bot permissions

  • General
    • Read Messages/ViewChannels: To understand who is in which channels.
  • Text
    • Send Messages: To send bot status and async task updates messages.
    • Embed Links: To provide richer message context and content.
    • Add Reactions: To inform the interacting users of their request's status.
  • Voice
    • Connect: To control which channel the bot joins for playback.
    • Speak: To playback audio track selections to users.
  • Result Bitmask: 3165248
  • Privileged Gateway Intents
    • Server Members: To receive guild membership events such as people getting removed from the server and all the channels.
    • Message Content: To ensure when people fully type a command and do not autocomplete the bot name prefix part of the command, the bot still can view the message contents.

supported bot commands

output of "@bot help" in a guild channel or "help" when talking to the bot in a DM:

---
#
# help:
#

cache-url:
  usage: cache <url>
  description: process music from a video url for playing at a future time

clear cache:
  usage: clear cache
  description: stops all players and clears files in the audio cache

clear-playlist:
  usage: clear playlist
  description: removes all tracks in the playlist: alias for reset

echo:
  usage: echo <message>
  description: responds with the same message provided

help:
  usage: help
  description: enumerates each bot command, it's syntax, and what the command does

join-channel:
  usage: join <channel_name>
  description: makes the bot join a specific voice channel

next:
  usage: <next|skip>
  description: move playback to the next track in the playlist

pause:
  usage: pause
  description: pauses playback and remember position in the current track; can be resumed

ping:
  usage: ping
  description: responds with pong message

play:
  usage: play <url>
  description: append track from youtube url to the playlist

previous:
  usage: <previous|prev>
  description: move playback to the previous track in the playlist

remove-track:
  usage: remove <track_url>
  description: removes a track from the playlist

repeat:
  usage: repeat
  description: cycles playlist repeat mode between ["repeating", "not repeating"]

reset:
  usage: reset
  description: resets player state back to defaults: stops playback and clears the playlist

restart-track:
  usage: restart track
  description: if playback is in the middle of a track, rewind to the start of the track

resume:
  usage: <resume|unpause|play>
  description: if stopped or paused, resumes playback

set-text-channel:
  usage: set text channel
  description: bot sends system text messages to the guild channel that this command is issued from

show-playlist:
  usage: show playlist
  description: prints the current playlist

stop:
  usage: stop
  description: stops playback of current track and rewinds to the beginning of the current track