finished plugin system base
This commit is contained in:
60
plugin_src/autojoinroles/data.go
Normal file
60
plugin_src/autojoinroles/data.go
Normal file
@@ -0,0 +1,60 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func setAutoJoinRole(guildID string, option string, roleID string) bool {
|
||||
var role_exists bool
|
||||
var autojoinroles_exists bool
|
||||
err := db.QueryRow("SELECT EXISTS (SELECT 1 FROM autojoinroles WHERE guild_id = $1)", guildID).Scan(&autojoinroles_exists)
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
}
|
||||
err = db.QueryRow("SELECT EXISTS (SELECT 1 FROM autojoinroles WHERE guild_id = $1 AND "+option+"_role IS NOT NULL AND "+option+"_role != '')", guildID).Scan(&role_exists)
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
}
|
||||
if autojoinroles_exists {
|
||||
_, err = db.Exec("UPDATE autojoinroles SET "+option+"_role = $1 WHERE guild_id = $2", roleID, guildID)
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
}
|
||||
} else {
|
||||
_, err = db.Exec("INSERT INTO autojoinroles (guild_id, "+option+"_role) VALUES ($1, $2)", guildID, roleID)
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
}
|
||||
}
|
||||
return role_exists
|
||||
}
|
||||
|
||||
func purgeUnusedAutoJoinRoles(guildID string) {
|
||||
_, err := db.Exec("DELETE FROM autojoinroles WHERE guild_id = $1 AND user_role = '' OR user_role IS NULL AND bot_role = '' OR bot_role IS NULL", guildID)
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
func getAutoJoinRole(guildID string, isBot bool) string {
|
||||
var isBotString string
|
||||
var role string
|
||||
if isBot {
|
||||
isBotString = "bot"
|
||||
} else {
|
||||
isBotString = "user"
|
||||
}
|
||||
var exists bool
|
||||
err := db.QueryRow("SELECT EXISTS (SELECT 1 FROM autojoinroles WHERE guild_id = $1)", guildID).Scan(&exists)
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
return role
|
||||
}
|
||||
if exists {
|
||||
err = db.QueryRow("SELECT "+isBotString+"_role FROM autojoinroles WHERE guild_id = $1", guildID).Scan(&role)
|
||||
if err != nil {
|
||||
logrus.Error(err, guildID)
|
||||
}
|
||||
}
|
||||
return role
|
||||
}
|
Reference in New Issue
Block a user