Compare commits
3 commits
1b6e35cd6c
...
965a976d44
Author | SHA1 | Date | |
---|---|---|---|
965a976d44 | |||
4ac0ab6a77 | |||
2be910aaf3 |
4 changed files with 29 additions and 26 deletions
|
@ -4,6 +4,8 @@ import (
|
||||||
"github.com/bwmarrin/discordgo"
|
"github.com/bwmarrin/discordgo"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// type messageRun func(s *discordgo.Session, m *discordgo.MessageCreate)
|
||||||
|
|
||||||
type DetailedDescription struct {
|
type DetailedDescription struct {
|
||||||
Usage string
|
Usage string
|
||||||
Examples []string
|
Examples []string
|
||||||
|
@ -17,15 +19,21 @@ type Command struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type DiscommandStruct struct {
|
type DiscommandStruct struct {
|
||||||
Commands map[string]Command
|
Commands map[string]Command
|
||||||
Aliases map[string]string
|
Aliases map[string]string
|
||||||
|
messageRuns map[string]interface{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func new() *DiscommandStruct {
|
func new() *DiscommandStruct {
|
||||||
discommand := DiscommandStruct{}
|
discommand := DiscommandStruct{
|
||||||
discommand.Commands = make(map[string]Command)
|
Commands: map[string]Command{},
|
||||||
discommand.Aliases = make(map[string]string)
|
Aliases: map[string]string{},
|
||||||
|
messageRuns: map[string]interface{}{},
|
||||||
|
}
|
||||||
|
|
||||||
discommand.loadCommands(HelpCommand)
|
discommand.loadCommands(HelpCommand)
|
||||||
|
|
||||||
|
discommand.addMessageRun(HelpCommand.Name, HelpCommand.helpMessageRun)
|
||||||
return &discommand
|
return &discommand
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,12 +46,13 @@ func (d *DiscommandStruct) loadCommands(command Command) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *DiscommandStruct) addMessageRun(name string, run func(s *discordgo.Session, m *discordgo.MessageCreate)) {
|
||||||
|
d.messageRuns[name] = run
|
||||||
|
}
|
||||||
|
|
||||||
func (d *DiscommandStruct) MessageRun(command string, s *discordgo.Session, m *discordgo.MessageCreate) {
|
func (d *DiscommandStruct) MessageRun(command string, s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||||
// 극한의 하드코딩 으아악
|
// 더욱 나아진
|
||||||
switch command {
|
d.messageRuns[command].(func(s *discordgo.Session, m *discordgo.MessageCreate))(s, m)
|
||||||
case "도움말":
|
|
||||||
HelpCommand.MessageRun(s, m)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var Discommand *DiscommandStruct = new()
|
var Discommand *DiscommandStruct = new()
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
package commands
|
package commands
|
||||||
|
|
||||||
import "github.com/bwmarrin/discordgo"
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/bwmarrin/discordgo"
|
||||||
|
)
|
||||||
|
|
||||||
var HelpCommand Command = Command{
|
var HelpCommand Command = Command{
|
||||||
Name: "도움말",
|
Name: "도움말",
|
||||||
|
@ -12,6 +16,7 @@ var HelpCommand Command = Command{
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Command) MessageRun(s *discordgo.Session, m *discordgo.MessageCreate) {
|
func (c *Command) helpMessageRun(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||||
|
fmt.Println(c.Name)
|
||||||
s.ChannelMessageSend(m.ChannelID, "asdf")
|
s.ChannelMessageSend(m.ChannelID, "asdf")
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ import (
|
||||||
"github.com/joho/godotenv"
|
"github.com/joho/godotenv"
|
||||||
)
|
)
|
||||||
|
|
||||||
var MUFFIN_VERSION = "0.0.0-gopher_canary.250324a"
|
var MUFFIN_VERSION = "0.0.0-gopher_canary.250325a"
|
||||||
|
|
||||||
type botConfig struct {
|
type botConfig struct {
|
||||||
Token string
|
Token string
|
||||||
|
|
|
@ -44,7 +44,6 @@ func MessageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||||
var learnDatas []databases.Learn
|
var learnDatas []databases.Learn
|
||||||
var filter bson.D
|
var filter bson.D
|
||||||
|
|
||||||
ch := make(chan bool)
|
|
||||||
x := rand.Intn(5)
|
x := rand.Intn(5)
|
||||||
|
|
||||||
channel, _ := s.Channel(m.ChannelID)
|
channel, _ := s.Channel(m.ChannelID)
|
||||||
|
@ -76,18 +75,8 @@ func MessageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||||
log.Fatalln(err)
|
log.Fatalln(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
go func() {
|
tCur.All(context.TODO(), &datas)
|
||||||
defer func() {
|
lCur.All(context.TODO(), &learnDatas)
|
||||||
tCur.Close(context.TODO())
|
|
||||||
lCur.Close(context.TODO())
|
|
||||||
}()
|
|
||||||
|
|
||||||
tCur.All(context.TODO(), &datas)
|
|
||||||
lCur.All(context.TODO(), &learnDatas)
|
|
||||||
ch <- true
|
|
||||||
}()
|
|
||||||
|
|
||||||
<-ch
|
|
||||||
|
|
||||||
if x > 2 && len(learnDatas) != 0 {
|
if x > 2 && len(learnDatas) != 0 {
|
||||||
data := learnDatas[rand.Intn(len(learnDatas))]
|
data := learnDatas[rand.Intn(len(learnDatas))]
|
||||||
|
|
Loading…
Reference in a new issue