discord
discord 是非常优秀的聊天工具,游戏开黑还有非常多的开发组也在使用discord作为沟通聊天工具
第三方库:github.com/andersfylling/disgord
package main
import (
"github.com/go-redis/redis/v7"
"github.com/zhaojunlike/logger"
"os"
"zhaojunlike/cacher"
"zhaojunlike/snkrs/discord"
)
var rds = cacher.NewGtCache(&redis.Options{
Addr: "",
Password: xx",
DB: 0,
})
func init() {
_ = logger.SetLogger(`
{
"File": {
"filename": "./logs/discord/app.log",
"level": "TRAC",
"daily": true,
"maxlines": -1,
"maxsize": 1,
"maxdays": -1,
"append": true,
"permit": "0660"
}
}
`)
}
func main() {
config, err := discord.GetConfigFromConfigFile("./conf/config.discord.json")
if err != nil {
panic(err)
}
var opt = &discord.DisOption{
Brand: config.Brand,
Version: config.Version,
BotToken: config.BotToken, //dev
Proxy: config.Proxy,
Rds: rds,
}
var bot = discord.NewDisBot(opt)
defer bot.Destroy()
err = bot.Start()
if err != nil {
logger.Error("Start 失败:", err)
os.Exit(-1)
}
logger.Crit("Discord Notice Bot 启动成功,版本:%v", config.Version)
_ = bot.GetClient().DisconnectOnInterrupt() //接受退出指令
}
Discrod 包装结构体
type DisBot struct {
opt *DisOption
client *disgord.Client
rds *cacher.GtCache
}
func NewDisBot(opt *DisOption) *DisBot {
var bot = &DisBot{opt: opt}
var conf = disgord.Config{
BotToken: opt.BotToken,
Logger: disgord.DefaultLogger(false), // debug=false
}
if opt.Proxy != "" {
conf.Proxy, _ = proxy.SOCKS5("tcp", opt.Proxy, nil, nil)
}
bot.client = disgord.New(conf)
bot.rds = opt.Rds
return bot
}
func (bot *DisBot) Start() error {
var err = bot.client.Connect(context.Background())
if err != nil {
return err
}
go bot.listenPublish()
bot.client.On(disgord.EvtMessageCreate, bot.printMessage)
bot.client.On(disgord.EvtReady, func() {
})
return nil
}