예제 #1
0
        public RotatingStatusService(BaseSocketClient socket, Queue <string> statuses = null)
        {
            StatusValues = statuses ?? new Queue <string>();
            Socket       = socket;

            rotationTimer = new Timer(async _ =>
            {
                if (StatusValues.Count <= 0)
                {
                    return;
                }

                var status = StatusValues.Dequeue();
                if (status.EqualsIgnoreCase(Socket.Activity?.Name ?? ""))
                {
                    return;
                }

                StatusValues.Enqueue(status);
                await Socket.SetGameAsync(await VariableFormatting.FormatStatus(Socket, status));
            },
                                      null,
                                      Timeout.Infinite,
                                      Timeout.Infinite);
        }
예제 #2
0
 protected override Task ExecuteAsync(CancellationToken stoppingToken)
 {
     return(_client.SetGameAsync($"{_botOptions.Value.DefaultCommandPrefix}help | {_webOptions.Value.WebsiteShorthand}"));
 }
 public virtual Task SetGameAsync(string name, string?streamUrl = null, ActivityType type = ActivityType.Playing)
 {
     return(_baseSocketClient.SetGameAsync(name, streamUrl, type));
 }