forked from chanbakjsd/TerraOceanPlugin
go: Initial Commit
Added a few commands that can be used by an admin to send or edit messages as the bot.master
parent
d2b6a6009e
commit
eb20b6aa9a
@ -0,0 +1 @@
|
||||
token.txt
|
@ -0,0 +1,40 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/bwmarrin/discordgo"
|
||||
)
|
||||
|
||||
//adminID is my Discord user ID (chanbakjsd#7968).
|
||||
const adminID = "218983355746746369"
|
||||
|
||||
func sendAs(s *discordgo.Session, m *discordgo.MessageCreate, command []string) {
|
||||
if m.Author.ID != adminID {
|
||||
return
|
||||
}
|
||||
if len(command) < 3 {
|
||||
return
|
||||
}
|
||||
message := strings.SplitN(m.Content, " ", 3)
|
||||
msg, err := s.ChannelMessageSend(message[1], message[2])
|
||||
if err != nil {
|
||||
s.ChannelMessageSend(m.ChannelID, err.Error())
|
||||
}
|
||||
s.ChannelMessageSend(m.ChannelID, "The message has been sent. Discord ID: "+msg.ID)
|
||||
}
|
||||
|
||||
func editAs(s *discordgo.Session, m *discordgo.MessageCreate, command []string) {
|
||||
if m.Author.ID != adminID {
|
||||
return
|
||||
}
|
||||
if len(command) < 4 {
|
||||
return
|
||||
}
|
||||
message := strings.SplitN(m.Content, " ", 4)
|
||||
_, err := s.ChannelMessageEdit(message[1], message[2], message[3])
|
||||
if err != nil {
|
||||
s.ChannelMessageSend(m.ChannelID, err.Error())
|
||||
}
|
||||
s.ChannelMessageSend(m.ChannelID, "The message has been edited.")
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
module TerraOceanBot
|
||||
|
||||
go 1.13
|
||||
|
||||
require github.com/bwmarrin/discordgo v0.19.0
|
@ -0,0 +1,6 @@
|
||||
github.com/bwmarrin/discordgo v0.19.0 h1:kMED/DB0NR1QhRcalb85w0Cu3Ep2OrGAqZH1R5awQiY=
|
||||
github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q=
|
||||
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
|
||||
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
||||
golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16 h1:y6ce7gCWtnH+m3dCjzQ1PCuwl28DDIc3VNnvY29DlIA=
|
||||
golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
@ -0,0 +1,45 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"os/signal"
|
||||
"strings"
|
||||
"syscall"
|
||||
|
||||
"github.com/bwmarrin/discordgo"
|
||||
)
|
||||
|
||||
func main() {
|
||||
token, _ := ioutil.ReadFile("token.txt")
|
||||
dg, err := discordgo.New("Bot " + strings.TrimSpace(string(token)))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
dg.AddHandler(messageCreate)
|
||||
if err := dg.Open(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
fmt.Println("Bot is now running. Press CTRL-C to exit.")
|
||||
sc := make(chan os.Signal, 1)
|
||||
signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt, os.Kill)
|
||||
<-sc
|
||||
|
||||
dg.Close()
|
||||
}
|
||||
|
||||
func messageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||
if m.Author.ID == s.State.User.ID {
|
||||
return
|
||||
}
|
||||
|
||||
command := strings.Split(m.Content, " ")
|
||||
switch command[0] {
|
||||
case "!sendas":
|
||||
sendAs(s, m, command)
|
||||
case "!editas":
|
||||
editAs(s, m, command)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue