mirror of
https://github.com/mgerb/ServerStatus
synced 2026-01-09 18:52:50 +00:00
added embedded messages resolves #9
This commit is contained in:
@@ -2,22 +2,32 @@ package serverstatus
|
||||
|
||||
import (
|
||||
"log"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/anvie/port-scanner"
|
||||
"github.com/bwmarrin/discordgo"
|
||||
"github.com/mgerb/serverstatus/bot"
|
||||
"github.com/mgerb/serverstatus/config"
|
||||
"github.com/mgerb/ServerStatus/bot"
|
||||
"github.com/mgerb/ServerStatus/config"
|
||||
)
|
||||
|
||||
const (
|
||||
red = 0xf4425c
|
||||
green = 0x42f477
|
||||
blue = 0x42adf4
|
||||
)
|
||||
|
||||
// Start - start port scanner and bot listeners
|
||||
func Start() {
|
||||
//set each server status as online to start
|
||||
for i, _ := range config.Config.Servers {
|
||||
for i := range config.Config.Servers {
|
||||
config.Config.Servers[i].Online = true
|
||||
}
|
||||
|
||||
err := bot.Session.UpdateStatus(0, config.Config.GameStatus)
|
||||
|
||||
sendMessageToRooms(blue, "Server Status", "Bot started! Type !ServerStatus to see the status of your servers :smiley:", false)
|
||||
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
@@ -43,9 +53,9 @@ func scanServers() {
|
||||
serverUp := serverScanner.IsOpen(server.Port) //check if the port is open
|
||||
|
||||
if serverUp && serverUp != prevServerUp {
|
||||
sendMessage(config.Config.RoleToNotify + " " + server.Name + " is now online!")
|
||||
sendMessageToRooms(green, server.Name, "Is now online :smiley:", true)
|
||||
} else if !serverUp && serverUp != prevServerUp {
|
||||
sendMessage(config.Config.RoleToNotify + " " + server.Name + " went offline!")
|
||||
sendMessageToRooms(red, server.Name, "Has gone offline :frowning2:", true)
|
||||
}
|
||||
|
||||
config.Config.Servers[index].Online = serverUp
|
||||
@@ -55,13 +65,28 @@ func scanServers() {
|
||||
}
|
||||
}
|
||||
|
||||
func sendMessage(message string) {
|
||||
func sendMessageToRooms(color int, title, description string, mentionRoles bool) {
|
||||
for _, roomID := range config.Config.RoomIDList {
|
||||
bot.Session.ChannelMessageSend(roomID, message)
|
||||
if mentionRoles {
|
||||
content := strings.Join(config.Config.RolesToNotify, " ")
|
||||
bot.Session.ChannelMessageSend(roomID, content)
|
||||
}
|
||||
sendEmbededMessage(roomID, color, title, description)
|
||||
}
|
||||
}
|
||||
|
||||
// This function will be called every time a new
|
||||
func sendEmbededMessage(roomID string, color int, title, description string) {
|
||||
|
||||
embed := &discordgo.MessageEmbed{
|
||||
Color: color,
|
||||
Title: title,
|
||||
Description: description,
|
||||
}
|
||||
|
||||
bot.Session.ChannelMessageSendEmbed(roomID, embed)
|
||||
}
|
||||
|
||||
// MessageHandler will be called every time a new
|
||||
// message is created on any channel that the autenticated bot has access to.
|
||||
func MessageHandler(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||
|
||||
@@ -73,9 +98,9 @@ func MessageHandler(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||
if m.Content == "!ServerStatus" {
|
||||
for _, server := range config.Config.Servers {
|
||||
if server.Online {
|
||||
s.ChannelMessageSend(m.ChannelID, server.Name+" is online!")
|
||||
sendEmbededMessage(m.ChannelID, green, server.Name, "Online!")
|
||||
} else {
|
||||
s.ChannelMessageSend(m.ChannelID, server.Name+" is down!")
|
||||
sendEmbededMessage(m.ChannelID, red, server.Name, "Offline!")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user