Initial Structure

master
DustyP 5 years ago
parent 3c63d0ece2
commit 6ade91132d

@ -0,0 +1,20 @@
FROM golang:1.14-alpine as dev
WORKDIR /go/src/dice
COPY ./go.mod .
#COPY ./go.sum .
RUN go mod download
COPY . .
RUN go install github.com/dustinpianalto/dice
CMD [ "go", "run", "main.go"]
from alpine
WORKDIR /bin
COPY --from=dev /go/bin/dice ./dice
CMD [ "dice" ]

@ -0,0 +1,3 @@
module github.com/dustinpianalto/dice
go 1.15

@ -0,0 +1,97 @@
package main
import (
"log"
"os"
"os/signal"
"syscall"
"github.com/bwmarrin/discordgo"
"github.com/dustinpianalto/disgoman"
)
var (
Token string
)
//func init() {
// flag.StringVar(&Token, "t", "", "Bot Token")
// flag.Parse()
//}
func main() {
Token = os.Getenv("DISCORDGO_TOKEN")
dg, err := discordgo.New("Bot " + Token)
if err != nil {
log.Println("There was an error when creating the Discord Session, ", err)
return
}
dg.State.MaxMessageCount = 100
//prefixes := []string{
// "Go.",
//}
owners := []string{
"351794468870946827",
}
// Arguments are:
// prefixes - []string
// owner ids - []string
// ignore bots - bool
// check perms - bool
handler := disgoman.CommandManager{
Prefixes: getPrefixes,
Owners: owners,
StatusManager: disgoman.GetDefaultStatusManager(),
ErrorChannel: make(chan disgoman.CommandError, 10),
Commands: make(map[string]*disgoman.Command),
IgnoreBots: true,
CheckPermissions: false,
}
// Add Command Handlers
exts.AddCommandHandlers(&handler)
//if _, ok := handler.Commands["help"]; !ok {
// handler.AddDefaultHelpCommand()
//}
dg.AddHandler(handler.OnMessage)
dg.AddHandler(handler.StatusManager.OnReady)
err = dg.Open()
if err != nil {
log.Println("There was an error opening the connection, ", err)
return
}
// Start the Error handler in a goroutine
go ErrorHandler(handler.ErrorChannel)
log.Println("The Bot is now running.")
sc := make(chan os.Signal, 1)
signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt, os.Kill)
<-sc
log.Println("Shutting Down...")
err = dg.Close()
if err != nil {
log.Println(err)
}
}
func getPrefixes(guildID string) []string {
return []string{"/", "\\"}
}
func ErrorHandler(ErrorChan chan disgoman.CommandError) {
for ce := range ErrorChan {
msg := ce.Message
if msg == "" {
msg = ce.Error.Error()
}
_, _ = ce.Context.Send(msg)
log.Println(ce.Error)
}
}
Loading…
Cancel
Save