TerraOceanPlugin/GoBot/discord/modules/messageutil.go

79 lines
2.0 KiB
Go

2019-10-12 09:45:43 +07:00
package modules
import (
"fmt"
"github.com/bwmarrin/discordgo"
"TerraOceanBot/discord/config"
)
func enforceDM(s *discordgo.Session, m *discordgo.MessageCreate) bool {
if m.GuildID != "" {
//This command can only be used in DM to protect the invite creator.
s.ChannelMessageDelete(m.ChannelID, m.ID)
s.ChannelMessageSend(
m.ChannelID,
m.Author.Mention()+",这个指令只能在私信中使用。\n"+m.Author.Mention()+", this command can only be used in DM.",
)
return false
}
return true
}
func membersOnly(s *discordgo.Session, m *discordgo.MessageCreate) bool {
member, err := s.GuildMember(config.GuildID, m.Author.ID)
if err != nil {
s.ChannelMessageSend(
m.ChannelID,
m.Author.Mention()+",请在成为会员后才使用这个指令。\n"+m.Author.Mention()+", please use this command after you become a member.",
)
return false
}
for _, v := range member.Roles {
if v == config.MemberRoleID {
return true
}
}
s.ChannelMessageSend(
m.ChannelID,
m.Author.Mention()+",请在成为会员后才使用这个指令。\n"+m.Author.Mention()+", please use this command after you become a member.",
)
return false
}
func nonMembersOnly(s *discordgo.Session, m *discordgo.MessageCreate) bool {
member, err := s.GuildMember(config.GuildID, m.Author.ID)
if err != nil {
return false
}
for _, v := range member.Roles {
if v == config.MemberRoleID {
s.ChannelMessageSend(
m.ChannelID,
m.Author.Mention()+",该指令只能被非会员使用。\n"+m.Author.Mention()+", this command can only be used by non-member.",
)
return false
}
}
return true
}
func sendPrivateMessage(s *discordgo.Session, recipient, message string) error {
channel, err := s.UserChannelCreate(recipient)
if err != nil {
return err
}
_, err = s.ChannelMessageSend(channel.ID, message)
return err
}
func auditLog(s *discordgo.Session, message string) {
_, err := s.ChannelMessageSend(config.AuditChannel, message)
if err != nil {
fmt.Println("==Audit Log==")
fmt.Println(message)
fmt.Println(err)
}
}