gofmt all the things
This commit is contained in:
parent
6e7229d787
commit
4566ffc230
|
@ -4,6 +4,7 @@ Updates are listed in reverse chronological order.
|
|||
### 1.4 (dev)
|
||||
- a copy of each deleted message is now send via DM to the author (suggested by CommanderLook)
|
||||
- seasonal fluff
|
||||
- finally use gofmt
|
||||
|
||||
### 1.3
|
||||
- use global array of pointers to commands to allow easier modification and avoid unnecessary memcpy
|
||||
|
|
32
command.go
32
command.go
|
@ -4,10 +4,10 @@ import (
|
|||
"fmt"
|
||||
"github.com/bwmarrin/discordgo"
|
||||
"github.com/deckarep/golang-set"
|
||||
"strings"
|
||||
"time"
|
||||
"log"
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
type CommandType int
|
||||
|
@ -20,13 +20,13 @@ const (
|
|||
CommandTypeContains CommandType = 3
|
||||
)
|
||||
|
||||
/*
|
||||
/*
|
||||
This struct represents a command object.
|
||||
The options should be self-explanatory, but they are also explained in the readme.
|
||||
A struct can be initialized by passing any number of its attributes as parameters.
|
||||
Everything not set will be set to the go-usual defaults ("" for string, 0 for int, false for bool, nil for the rest)
|
||||
Any command that has a Trigger is valid (but useless if nothing else is specified)
|
||||
*/
|
||||
*/
|
||||
type Command struct {
|
||||
Trigger string // must be specified
|
||||
Output string // no output if unspecified
|
||||
|
@ -45,7 +45,6 @@ type Command struct {
|
|||
UsersOnCooldown mapset.Set // don’t set this manually (it’s overwritten anyway)
|
||||
}
|
||||
|
||||
|
||||
// Performs basic input validation on a given command and adds it to the global command array
|
||||
func registerCommand(command Command) {
|
||||
if command.Trigger == "" {
|
||||
|
@ -59,13 +58,13 @@ func registerCommand(command Command) {
|
|||
commands = append(commands, &command)
|
||||
}
|
||||
|
||||
/*
|
||||
/*
|
||||
Any message that the bot can read is evaluated here.
|
||||
The message is matched against each of the command triggers depending on the respective match type.
|
||||
If one of the commands matches, execute that command and return.
|
||||
Only one command can be executed per message. Earlier defined commands take precedence.
|
||||
This is a deliberate choice (for now).
|
||||
*/
|
||||
*/
|
||||
func evaluateMessage(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||
if m.Author.ID == s.State.User.ID {
|
||||
log.Printf("<Self> %s", m.Content)
|
||||
|
@ -105,10 +104,10 @@ func evaluateMessage(s *discordgo.Session, m *discordgo.MessageCreate) {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
/*
|
||||
Executes the given command on the given message and session.
|
||||
Sets command cooldowns if necessary and also clears them again.
|
||||
*/
|
||||
*/
|
||||
func executeCommand(session *discordgo.Session, message *discordgo.MessageCreate, command *Command) {
|
||||
if isAdmin(message.Author) || // no restrictions for admins
|
||||
(!command.AdminOnly && (isDM(session, message) || !command.UsersOnCooldown.Contains(message.Author.ID)) &&
|
||||
|
@ -161,12 +160,12 @@ func generateReply(message *discordgo.MessageCreate, command *Command) string {
|
|||
return output
|
||||
}
|
||||
|
||||
/*
|
||||
/*
|
||||
Any message passed to this method will be redirected to config.ModChannel.
|
||||
This is useful for anonymous complaints or similar messages.
|
||||
*/
|
||||
*/
|
||||
func redirectComplaint(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||
embed := &discordgo.MessageEmbed {
|
||||
embed := &discordgo.MessageEmbed{
|
||||
Author: &discordgo.MessageEmbedAuthor{},
|
||||
Color: 0xbb0000,
|
||||
Description: m.Content,
|
||||
|
@ -178,7 +177,7 @@ func redirectComplaint(s *discordgo.Session, m *discordgo.MessageCreate) {
|
|||
|
||||
// copy paste programming btw :haHAA:
|
||||
func redirectComplaintToDM(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||
embed := &discordgo.MessageEmbed {
|
||||
embed := &discordgo.MessageEmbed{
|
||||
Author: &discordgo.MessageEmbedAuthor{},
|
||||
Color: 0xbb0000,
|
||||
Description: m.Content,
|
||||
|
@ -236,13 +235,13 @@ func getHelpEmbed() *discordgo.MessageEmbed {
|
|||
Author: &discordgo.MessageEmbedAuthor{},
|
||||
Color: 0xffb90f,
|
||||
Description: "__Hilfe__",
|
||||
Fields: []*discordgo.MessageEmbedField {
|
||||
&discordgo.MessageEmbedField {
|
||||
Fields: []*discordgo.MessageEmbedField{
|
||||
&discordgo.MessageEmbedField{
|
||||
Name: "__Commands__",
|
||||
Value: commandList,
|
||||
Inline: true,
|
||||
},
|
||||
&discordgo.MessageEmbedField {
|
||||
&discordgo.MessageEmbedField{
|
||||
Name: "__Bugs__",
|
||||
Value: fmt.Sprintf("Bei Fragen zum Bot, Vorschlägen, Bugs etc. wende dich bitte an <@%s> oder öffne eine Issue auf https://git.kageru.moe/kageru/discord-selphybot.", config.Admins[0]),
|
||||
Inline: true,
|
||||
|
@ -254,4 +253,3 @@ func getHelpEmbed() *discordgo.MessageEmbed {
|
|||
}
|
||||
return embed
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"encoding/json"
|
||||
"os"
|
||||
)
|
||||
|
||||
type Embed struct {
|
||||
|
@ -29,7 +29,6 @@ type Config struct {
|
|||
RoleCommands map[string]string
|
||||
}
|
||||
|
||||
|
||||
func readConfig() Config {
|
||||
file, _ := os.Open("config.json")
|
||||
conf := Config{}
|
||||
|
@ -37,4 +36,3 @@ func readConfig() Config {
|
|||
file.Close()
|
||||
return conf
|
||||
}
|
||||
|
||||
|
|
|
@ -52,4 +52,3 @@ func onDM(s *discordgo.Session, m *discordgo.MessageCreate) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/bwmarrin/discordgo"
|
||||
"log"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func unlockUser(s *discordgo.Session, id string) {
|
||||
|
|
14
main.go
14
main.go
|
@ -2,11 +2,11 @@ package main
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"os/signal"
|
||||
"os"
|
||||
"syscall"
|
||||
"log"
|
||||
"github.com/bwmarrin/discordgo"
|
||||
"log"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
var config = readConfig()
|
||||
|
@ -28,7 +28,7 @@ func main() {
|
|||
return
|
||||
}
|
||||
|
||||
f, err := os.OpenFile("selphybot.log", os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
|
||||
f, err := os.OpenFile("selphybot.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
|
||||
if err != nil {
|
||||
fmt.Println("Error opening log file:\n", err)
|
||||
}
|
||||
|
@ -68,8 +68,7 @@ func addCommands() {
|
|||
registerCommand(Command{Trigger: "/o\\", Output: "\\o/", Type: CommandTypeFullMatch, Cooldown: 10})
|
||||
registerCommand(Command{Trigger: "!heil", Output: "(ノ・ェ・)ノ Selphy (ノ・ェ・)ノ", Type: CommandTypeFullMatch, Cooldown: 30})
|
||||
registerCommand(Command{Trigger: "ayy", Output: "lmao", Type: CommandTypeFullMatch, Cooldown: 0})
|
||||
registerCommand(Command{Trigger: "<:selphyPadoru:525766188240732180>", Output: "<:selphypadoru:526644596558659594> Padoru <:selphypadoru:526644596558659594> Padoru <:selphypadoru:526644596558659594> Pado Padoru <:selphypadoru:526644596558659594>", Type: CommandTypeFullMatch, Cooldown: 10800})
|
||||
registerCommand(Command{Trigger: "<:selphyDango:507979223244341267>", Output: "<:dango:430669469799677953> :notes: Dango Daikazoku :notes: <:dango:430669469799677953>", Type: CommandTypeFullMatch, Cooldown: 10800})
|
||||
registerCommand(Command{Trigger: "<:selphyDango:531594585424527370>", Output: "<:dango:430669469799677953> :notes: Dango Daikazoku :notes: <:dango:430669469799677953>", Type: CommandTypeFullMatch, Cooldown: 10800})
|
||||
registerCommand(Command{Trigger: "praise the sun", Output: "If only I could be so grossly incandescent \\\\[T]/", Type: CommandTypeContains, IgnoreCase: true, Cooldown: 85600})
|
||||
|
||||
// Information
|
||||
|
@ -86,4 +85,3 @@ func addCommands() {
|
|||
fmt.Printf("Successfully initialized %d commands\n", len(commands))
|
||||
log.Printf("Successfully initialized %d commands", len(commands))
|
||||
}
|
||||
|
||||
|
|
10
welcome.go
10
welcome.go
|
@ -1,22 +1,22 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"github.com/bwmarrin/discordgo"
|
||||
"fmt"
|
||||
"github.com/bwmarrin/discordgo"
|
||||
)
|
||||
|
||||
func getWelcomeEmbed() *discordgo.MessageEmbed {
|
||||
return &discordgo.MessageEmbed {
|
||||
return &discordgo.MessageEmbed{
|
||||
Author: &discordgo.MessageEmbedAuthor{},
|
||||
Color: 0xffb90f,
|
||||
Description: config.WelcomeEmbed.Message,
|
||||
Fields: []*discordgo.MessageEmbedField {
|
||||
&discordgo.MessageEmbedField {
|
||||
Fields: []*discordgo.MessageEmbedField{
|
||||
&discordgo.MessageEmbedField{
|
||||
Name: config.WelcomeEmbed.QuestionsTitle,
|
||||
Value: config.WelcomeEmbed.QuestionsText,
|
||||
Inline: true,
|
||||
},
|
||||
&discordgo.MessageEmbedField {
|
||||
&discordgo.MessageEmbedField{
|
||||
Name: config.WelcomeEmbed.BugsTitle,
|
||||
Value: fmt.Sprintf(config.WelcomeEmbed.BugsText, config.Admins[0]),
|
||||
Inline: true,
|
||||
|
|
Loading…
Reference in New Issue
Block a user