mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-02-04 17:22:16 +01:00
console quality of life
This commit is contained in:
@@ -2,11 +2,11 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math/rand"
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
"math/rand"
|
|
||||||
|
|
||||||
"erupe-ce/config"
|
"erupe-ce/config"
|
||||||
"erupe-ce/server/channelserver"
|
"erupe-ce/server/channelserver"
|
||||||
@@ -38,7 +38,11 @@ func main() {
|
|||||||
// Load the configuration.
|
// Load the configuration.
|
||||||
erupeConfig, err := config.LoadConfig()
|
erupeConfig, err := config.LoadConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Fatal("Failed to load config", zap.Error(err))
|
preventClose(fmt.Sprintf("Failed to load config: %s", err.Error()))
|
||||||
|
}
|
||||||
|
|
||||||
|
if erupeConfig.Database.Password == "" {
|
||||||
|
preventClose("Database password is blank")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Discord bot
|
// Discord bot
|
||||||
@@ -51,14 +55,14 @@ func main() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Fatal("Failed to create discord bot", zap.Error(err))
|
preventClose(fmt.Sprintf("Failed to create Discord bot: %s", err.Error()))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Discord bot
|
// Discord bot
|
||||||
err = bot.Start()
|
err = bot.Start()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Fatal("Failed to starts discord bot", zap.Error(err))
|
preventClose(fmt.Sprintf("Failed to start Discord bot: %s", err.Error()))
|
||||||
}
|
}
|
||||||
|
|
||||||
discordBot = bot
|
discordBot = bot
|
||||||
@@ -78,13 +82,13 @@ func main() {
|
|||||||
|
|
||||||
db, err := sqlx.Open("postgres", connectString)
|
db, err := sqlx.Open("postgres", connectString)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Fatal("Failed to open sql database", zap.Error(err))
|
preventClose(fmt.Sprintf("Failed to open SQL database: %s", err.Error()))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test the DB connection.
|
// Test the DB connection.
|
||||||
err = db.Ping()
|
err = db.Ping()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Fatal("Failed to ping database", zap.Error(err))
|
preventClose(fmt.Sprintf("Failed to ping database: %s", err.Error()))
|
||||||
}
|
}
|
||||||
logger.Info("Connected to database")
|
logger.Info("Connected to database")
|
||||||
|
|
||||||
@@ -111,7 +115,7 @@ func main() {
|
|||||||
})
|
})
|
||||||
err = launcherServer.Start()
|
err = launcherServer.Start()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Fatal("Failed to start launcher server", zap.Error(err))
|
preventClose(fmt.Sprintf("Failed to start launcher server: %s", err.Error()))
|
||||||
}
|
}
|
||||||
logger.Info("Started launcher server")
|
logger.Info("Started launcher server")
|
||||||
|
|
||||||
@@ -124,7 +128,7 @@ func main() {
|
|||||||
})
|
})
|
||||||
err = entranceServer.Start()
|
err = entranceServer.Start()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Fatal("Failed to start entrance server", zap.Error(err))
|
preventClose(fmt.Sprintf("Failed to start entrance server: %s", err.Error()))
|
||||||
}
|
}
|
||||||
logger.Info("Started entrance server")
|
logger.Info("Started entrance server")
|
||||||
|
|
||||||
@@ -137,7 +141,7 @@ func main() {
|
|||||||
})
|
})
|
||||||
err = signServer.Start()
|
err = signServer.Start()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Fatal("Failed to start sign server", zap.Error(err))
|
preventClose(fmt.Sprintf("Failed to start sign server: %s", err.Error()))
|
||||||
}
|
}
|
||||||
logger.Info("Started sign server")
|
logger.Info("Started sign server")
|
||||||
|
|
||||||
@@ -149,19 +153,19 @@ func main() {
|
|||||||
for _, ee := range erupeConfig.Entrance.Entries {
|
for _, ee := range erupeConfig.Entrance.Entries {
|
||||||
rand.Seed(time.Now().UnixNano())
|
rand.Seed(time.Now().UnixNano())
|
||||||
// Randomly generate a season for the World
|
// Randomly generate a season for the World
|
||||||
season := rand.Intn(3)+1
|
season := rand.Intn(3) + 1
|
||||||
for _, ce := range ee.Channels {
|
for _, ce := range ee.Channels {
|
||||||
sid := (4096 + si * 256) + (16 + ci)
|
sid := (4096 + si*256) + (16 + ci)
|
||||||
c := *channelserver.NewServer(&channelserver.Config{
|
c := *channelserver.NewServer(&channelserver.Config{
|
||||||
ID: uint16(sid),
|
ID: uint16(sid),
|
||||||
Logger: logger.Named("channel-"+fmt.Sprint(count)),
|
Logger: logger.Named("channel-" + fmt.Sprint(count)),
|
||||||
ErupeConfig: erupeConfig,
|
ErupeConfig: erupeConfig,
|
||||||
DB: db,
|
DB: db,
|
||||||
DiscordBot: discordBot,
|
DiscordBot: discordBot,
|
||||||
})
|
})
|
||||||
err = c.Start(int(ce.Port))
|
err = c.Start(int(ce.Port))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Fatal("Failed to start channel", zap.Error(err))
|
preventClose(fmt.Sprintf("Failed to start channel server: %s", err.Error()))
|
||||||
} else {
|
} else {
|
||||||
channelQuery += fmt.Sprintf("INSERT INTO servers (server_id, season, current_players) VALUES (%d, %d, 0);", sid, season)
|
channelQuery += fmt.Sprintf("INSERT INTO servers (server_id, season, current_players) VALUES (%d, %d, 0);", sid, season)
|
||||||
channels = append(channels, &c)
|
channels = append(channels, &c)
|
||||||
@@ -197,3 +201,17 @@ func main() {
|
|||||||
|
|
||||||
time.Sleep(1 * time.Second)
|
time.Sleep(1 * time.Second)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func wait() {
|
||||||
|
for {
|
||||||
|
time.Sleep(time.Millisecond * 100)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func preventClose(text string) {
|
||||||
|
fmt.Println("\nFailed to start Erupe:\n" + text)
|
||||||
|
go wait()
|
||||||
|
fmt.Println("\nPress Enter/Return to exit...")
|
||||||
|
fmt.Scanln()
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user