protected override void OnGuildStatusChanged(GuildStatusChangedEventModel changeArgs) { //Don't need to get the guild list if we're guildless. if (changeArgs.IsGuildless) { return; } UnityAsyncHelper.UnityMainThreadContext.PostAsync(async() => { var rosterResponseModel = await SocialService.GetGuildListAsync(); if (!rosterResponseModel.isSuccessful) { if (Logger.IsWarnEnabled) { Logger.Warn($"Failed to query guild roster. Reason: {rosterResponseModel.ResultCode}"); } return; } //Now we can publish the roster. foreach (int rosterCharacterId in rosterResponseModel.Result.GuildedCharacterIds) { NetworkEntityGuid characterGuid = NetworkEntityGuidBuilder.New() .WithType(EntityType.Player) .WithId(rosterCharacterId) .Build(); //This is a hidden join, or the alerts would be spammed. GuildJoinEventPublisher.PublishEvent(this, new CharacterJoinedGuildEventArgs(characterGuid, true)); } }); }