public static void TryGetToken() { if (Disabled || InitRunning) { return; } CanTryToken = false; ApplicationManager.GetOAuth2Token((Result result, ref OAuth2Token token) => { try { if (result == Result.Ok) // You may now use this token against Discord's HTTP API { Token = token; Randomizer.Log($"Token for the user: {token.AccessToken}. Expires in {token.Expires}. Session ID: {WebSocketClient.SessionId}", false); } else { Randomizer.Log($"Got: {result}, token is ${token.AccessToken}", false); Token = token; } } catch (Exception e) { if (e is ResultException re) { Randomizer.Debug($"Got result {re.Result} when grabbing token"); } else { Randomizer.Error("appManager", e); } } }); }
public static User?GetUser() { if (Disabled || InitRunning) { return(null); } try { return(UserManager.GetCurrentUser()); } catch (Exception e) { if (e is ResultException re) { if (re.Result != Result.NotFound) { Randomizer.Log($"Result {re.Result} on GetUser, returning null", false); } if (CanTryToken) { Randomizer.Debug("Discord user not found. Attempting to get token..."); new Thread(() => TryGetToken()).Start(); } return(null); } Randomizer.Error("GetUser", e, false); return(null); } }
public static void ResolveUberStateChange(UberState state, UberValue old) { try { UberId key = state.GetUberId(); if (!UberStates.TryGetValue(key, out UberState oldState)) { oldState = state.Clone(); oldState.Value = old; UberStates.Add(key, oldState); } UberValue value = state.Value; if (value.Int == old.Int) { return; } var oldValFmt = old.FmtVal(state.Type); // get this now because we overwrite the value by reference if (ShouldRevert(state)) { Randomizer.Log($"Reverting state change of {state.Name} from {oldValFmt} to {state.FmtVal()}", false); oldState.Write(); return; } HandleSpecial(state); UberStates[key].Value = state.Value; var pos = InterOp.get_position(); bool found = false; if (value.Int > 0) { var id = state.GetUberId(); if (SkipUberStateMapCount.GetOrElse(key, 0) > 0) { var p = id.toCond().Pickup().Concat(id.toCond(state.ValueAsInt()).Pickup()); if (p.NonEmpty) { SkipUberStateMapCount[key] -= 1; Randomizer.Log($"Suppressed granting {p} from {id}={state.ValueAsInt()}. Will suppress {SkipUberStateMapCount[key]} more times", false, "DEBUG"); return; } } found = SeedController.OnUberState(state); } if (SyncedUberStates.Contains(key)) { Randomizer.Client.SendUpdate(key, state.ValueAsFloat()); } BonusItemController.OnUberState(state); var zone = ZoneType.Void; if (InterOp.get_game_state() == GameState.Game) { zone = InterOp.get_player_area().toZone(); } if (!NeedsNewGameInit && (value.Int == 0 || !found) && !(state.GroupName == "statsUberStateGroup" || state.GroupName == "achievementsGroup" || state.GroupID == 8 || state.GroupID == 10)) { Randomizer.Debug($"State change: {state.GroupName}.{state.Name} ({state.GroupID}|{state.ID}) {state.Type} {oldValFmt}->{state.FmtVal()} at ({Math.Round(pos.X)}, {Math.Round(pos.Y)}) in {zone}"); } //Randomizer.Debug($"{state.GroupName}.{state.Name}, {state.GroupID}, {state.ID}, {state.Type}, {oldValFmt}, {state.FmtVal()}, {zone}, {Math.Round(pos.X)},{Math.Round(pos.Y)}"); } catch (Exception e) { Randomizer.Error($"USC.Update {state}", e); } }