mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-13 07:25:03 +01:00
Implemented the ability to enable and disable commands in configuration as well as increased scope of the config to the entire project.
This commit is contained in:
54
main.go
54
main.go
@@ -20,8 +20,6 @@ import (
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
var erupeConfig *config.Config
|
||||
|
||||
// Temporary DB auto clean on startup for quick development & testing.
|
||||
func cleanDB(db *sqlx.DB) {
|
||||
_ = db.MustExec("DELETE FROM guild_characters")
|
||||
@@ -39,25 +37,19 @@ func main() {
|
||||
|
||||
logger.Info("Starting Erupe")
|
||||
|
||||
// Load the configuration.
|
||||
erupeConfig, err = config.LoadConfig()
|
||||
if err != nil {
|
||||
preventClose(fmt.Sprintf("Failed to load config: %s", err.Error()))
|
||||
}
|
||||
|
||||
if erupeConfig.Database.Password == "" {
|
||||
if config.ErupeConfig.Database.Password == "" {
|
||||
preventClose("Database password is blank")
|
||||
}
|
||||
|
||||
if net.ParseIP(erupeConfig.Host) == nil {
|
||||
ips, _ := net.LookupIP(erupeConfig.Host)
|
||||
if net.ParseIP(config.ErupeConfig.Host) == nil {
|
||||
ips, _ := net.LookupIP(config.ErupeConfig.Host)
|
||||
for _, ip := range ips {
|
||||
if ip != nil {
|
||||
erupeConfig.Host = ip.String()
|
||||
config.ErupeConfig.Host = ip.String()
|
||||
break
|
||||
}
|
||||
}
|
||||
if net.ParseIP(erupeConfig.Host) == nil {
|
||||
if net.ParseIP(config.ErupeConfig.Host) == nil {
|
||||
preventClose("Invalid host address")
|
||||
}
|
||||
}
|
||||
@@ -65,10 +57,10 @@ func main() {
|
||||
// Discord bot
|
||||
var discordBot *discordbot.DiscordBot = nil
|
||||
|
||||
if erupeConfig.Discord.Enabled {
|
||||
if config.ErupeConfig.Discord.Enabled {
|
||||
bot, err := discordbot.NewDiscordBot(discordbot.Options{
|
||||
Logger: logger,
|
||||
Config: erupeConfig,
|
||||
Config: config.ErupeConfig,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
@@ -91,11 +83,11 @@ func main() {
|
||||
// Create the postgres DB pool.
|
||||
connectString := fmt.Sprintf(
|
||||
"host=%s port=%d user=%s password=%s dbname= %s sslmode=disable",
|
||||
erupeConfig.Database.Host,
|
||||
erupeConfig.Database.Port,
|
||||
erupeConfig.Database.User,
|
||||
erupeConfig.Database.Password,
|
||||
erupeConfig.Database.Database,
|
||||
config.ErupeConfig.Database.Host,
|
||||
config.ErupeConfig.Database.Port,
|
||||
config.ErupeConfig.Database.User,
|
||||
config.ErupeConfig.Database.Password,
|
||||
config.ErupeConfig.Database.Database,
|
||||
)
|
||||
|
||||
db, err := sqlx.Open("postgres", connectString)
|
||||
@@ -117,7 +109,7 @@ func main() {
|
||||
_ = db.MustExec("UPDATE characters SET cafe_time=0")
|
||||
|
||||
// Clean the DB if the option is on.
|
||||
if erupeConfig.DevMode && erupeConfig.DevModeOptions.CleanDB {
|
||||
if config.ErupeConfig.DevMode && config.ErupeConfig.DevModeOptions.CleanDB {
|
||||
logger.Info("Cleaning DB")
|
||||
cleanDB(db)
|
||||
logger.Info("Done cleaning DB")
|
||||
@@ -127,13 +119,13 @@ func main() {
|
||||
|
||||
// Launcher HTTP server.
|
||||
var launcherServer *launcherserver.Server
|
||||
if erupeConfig.DevMode && erupeConfig.DevModeOptions.EnableLauncherServer {
|
||||
if config.ErupeConfig.DevMode && config.ErupeConfig.DevModeOptions.EnableLauncherServer {
|
||||
launcherServer = launcherserver.NewServer(
|
||||
&launcherserver.Config{
|
||||
Logger: logger.Named("launcher"),
|
||||
ErupeConfig: erupeConfig,
|
||||
ErupeConfig: config.ErupeConfig,
|
||||
DB: db,
|
||||
UseOriginalLauncherFiles: erupeConfig.Launcher.UseOriginalLauncherFiles,
|
||||
UseOriginalLauncherFiles: config.ErupeConfig.Launcher.UseOriginalLauncherFiles,
|
||||
})
|
||||
err = launcherServer.Start()
|
||||
if err != nil {
|
||||
@@ -146,7 +138,7 @@ func main() {
|
||||
entranceServer := entranceserver.NewServer(
|
||||
&entranceserver.Config{
|
||||
Logger: logger.Named("entrance"),
|
||||
ErupeConfig: erupeConfig,
|
||||
ErupeConfig: config.ErupeConfig,
|
||||
DB: db,
|
||||
})
|
||||
err = entranceServer.Start()
|
||||
@@ -159,7 +151,7 @@ func main() {
|
||||
signServer := signserver.NewServer(
|
||||
&signserver.Config{
|
||||
Logger: logger.Named("sign"),
|
||||
ErupeConfig: erupeConfig,
|
||||
ErupeConfig: config.ErupeConfig,
|
||||
DB: db,
|
||||
})
|
||||
err = signServer.Start()
|
||||
@@ -173,18 +165,18 @@ func main() {
|
||||
si := 0
|
||||
ci := 0
|
||||
count := 1
|
||||
for _, ee := range erupeConfig.Entrance.Entries {
|
||||
for _, ee := range config.ErupeConfig.Entrance.Entries {
|
||||
for i, ce := range ee.Channels {
|
||||
sid := (4096 + si*256) + (16 + ci)
|
||||
c := *channelserver.NewServer(&channelserver.Config{
|
||||
ID: uint16(sid),
|
||||
Logger: logger.Named("channel-" + fmt.Sprint(count)),
|
||||
ErupeConfig: erupeConfig,
|
||||
ErupeConfig: config.ErupeConfig,
|
||||
DB: db,
|
||||
DiscordBot: discordBot,
|
||||
})
|
||||
if ee.IP == "" {
|
||||
c.IP = erupeConfig.Host
|
||||
c.IP = config.ErupeConfig.Host
|
||||
} else {
|
||||
c.IP = ee.IP
|
||||
}
|
||||
@@ -223,7 +215,7 @@ func main() {
|
||||
}
|
||||
signServer.Shutdown()
|
||||
entranceServer.Shutdown()
|
||||
if erupeConfig.DevModeOptions.EnableLauncherServer {
|
||||
if config.ErupeConfig.DevModeOptions.EnableLauncherServer {
|
||||
launcherServer.Shutdown()
|
||||
}
|
||||
|
||||
@@ -237,7 +229,7 @@ func wait() {
|
||||
}
|
||||
|
||||
func preventClose(text string) {
|
||||
if erupeConfig.DisableSoftCrash {
|
||||
if config.ErupeConfig.DisableSoftCrash {
|
||||
os.Exit(0)
|
||||
}
|
||||
fmt.Println("\nFailed to start Erupe:\n" + text)
|
||||
|
||||
Reference in New Issue
Block a user