updaye database , and model

This commit is contained in:
Jay
2019-07-02 10:05:26 +00:00
parent 462804ed07
commit 30d38d6d20
5 changed files with 95 additions and 34 deletions
+81
View File
@@ -2,6 +2,7 @@ package discord
import (
dsmodel "dorisbot/models/discord"
pubmodel "dorisbot/models/public"
"log"
"github.com/bwmarrin/discordgo"
@@ -35,6 +36,86 @@ func messageCreateEvt(s *discordgo.Session, evt *discordgo.MessageCreate) {
return
}
// discord server not init
if server == nil {
cmds, err := pubmodel.GetGlobalCommand(cmd)
if err != nil {
log.Println("get command fail :: ", err)
return
}
if len(cmds) == 0 {
log.Printf("no command found {%s}\n", cmd)
return
}
c := cmds[0]
if c.RequireInit {
log.Printf("{%s} require init server\n", cmd)
return
}
if c.RequireManage {
ginfo, err := s.Guild(guildID)
if err != nil {
log.Println("get guild info err :: ", err)
return
}
if ginfo.OwnerID != uid {
log.Printf("{%s} require manage permission\n", cmd)
return
}
}
// TODO: command parser
} else {
cmds, err := pubmodel.GetCommandByPlatformBinding(cmd, server.ID, "discord")
if err != nil {
log.Println("get command err :: ", err)
return
}
if len(cmds) == 0 {
log.Printf("no command found {%s}\n", cmd)
return
}
c := cmds[0]
// TODO: check user role group
if c.RequireManage && server.Owner != uid {
roles, err := server.GetRoleList()
if err != nil {
log.Println("get server role err :: ", err)
return
}
rolePass := false
if len(roles) > 0 {
uinfo, err := s.GuildMember(guildID, uid)
if err != nil {
log.Println("get guild user info err :: ", err)
return
}
if len(uinfo.Roles) > 0 {
allPass := false
for _, it := range roles {
if allPass {
break
}
for _, rid := range uinfo.Roles {
if it.RoleID == rid {
rolePass = true
break
}
}
}
}
}
if !rolePass {
log.Printf("{%s} require manage role\n", cmd)
return
}
}
// TODO: command parser
}
}
func guildMemberAddEvt(s *discordgo.Session, evt *discordgo.GuildMemberAdd) {}