diff --git a/Makefile b/Makefile index f5f9aff..6a2158e 100644 --- a/Makefile +++ b/Makefile @@ -52,6 +52,13 @@ else TYPECHECK := endif +RACE ?= off +ifeq ($(RACE), on) + RACEDETECTOR := -race +else + RACEDETECTOR := +endif + npm: $(info installing npm dependencies) npm install @@ -91,7 +98,7 @@ compile: $(GOBINARY) mod download $(info Building) mkdir -p build - $(GOBINARY) build -ldflags="$(LDFLAGS)" $(TAGS) -o build/jfa-go + $(GOBINARY) build $(RACEDETECTOR) -ldflags="$(LDFLAGS)" $(TAGS) -o build/jfa-go compress: upx --lzma build/jfa-go diff --git a/discord.go b/discord.go index 43c2ebf..4027a9e 100644 --- a/discord.go +++ b/discord.go @@ -77,11 +77,17 @@ func (d *DiscordDaemon) run() { d.app.err.Printf("Discord: Failed to start daemon: %v", err) return } - // Sometimes bot.State isn't populated quick enough + // Wait for everything to populate, it's slow sometimes. for d.bot.State == nil { continue } + for d.bot.State.User == nil { + continue + } d.username = d.bot.State.User.Username + for d.bot.State.Guilds == nil { + continue + } // Choose the last guild (server), for now we don't really support multiple anyway d.guildID = d.bot.State.Guilds[len(d.bot.State.Guilds)-1].ID guild, err := d.bot.Guild(d.guildID)