gopenfusion/config/config.go
unknown d7445e0f0f Switched to redis/postgres, major refactoring
- loginMetadata is passed to shards through redis now
- shards announce they're alive via redis.AnnounceShard() which just
  populates a hashset keyed 'shards'
- login servers grab the 'shards' hashset and randomly picks a shard to
  pass the player to (for now)
- ./service shard && ./service login
- Many new environment variables, check config/config.go for more info.
  or for a tl;dr just read the Dockerfile for the required ones
- Shard and login services now run in different processes ! (and
  containers?? wooaaah)
2023-06-22 01:53:38 -05:00

80 lines
1.1 KiB
Go

package config
import (
"os"
"time"
)
/*
Available environment variables:
REDIS_ADDR
REDIS_USER
REDIS_PASS
DB_ADDR
DB_USER
DB_PASS
ANNOUNCE_IP
*/
const (
AEQUIP_COUNT = 9
AINVEN_COUNT = 50
ABANK_COUNT = 119
NANO_COUNT = 37
)
var (
SPAWN_X = 632032
SPAWN_Y = 187177
SPAWN_Z = -5500
LOGIN_PORT = 23000
SHARD_PORT = 23001
LOGIN_TIMEOUT = time.Second * 30
)
func getEnv(key string, fallback string) string {
if value, ok := os.LookupEnv(key); ok {
return value
}
return fallback
}
func GetMaxHP(level int) int {
return (925 + 75*(level))
}
func GetRedisAddr() string {
return getEnv("REDIS_ADDR", "localhost:6379")
}
func GetRedisCredentials() func() (string, string) {
return func() (string, string) {
return getEnv("REDIS_USER", ""), getEnv("REDIS_PASS", "")
}
}
func GetDBName() string {
return getEnv("DB_NAME", "postgres")
}
func GetDBAddr() string {
return getEnv("DB_ADDR", "localhost:5432")
}
func GetDBUser() string {
return getEnv("DB_USER", "postgres")
}
func GetDBPass() string {
return getEnv("DB_PASS", "")
}
// needed for shard
func GetAnnounceIP() string {
return getEnv("ANNOUNCE_IP", "127.0.0.1")
}