bot: periodically update game status
This commit is contained in:
		| @@ -2,6 +2,7 @@ using System; | ||||
| using System.Data; | ||||
| using System.Linq; | ||||
| using System.Reflection; | ||||
| using System.Threading; | ||||
| using System.Threading.Tasks; | ||||
| using Dapper; | ||||
| using Discord; | ||||
| @@ -75,6 +76,7 @@ namespace PluralKit.Bot | ||||
|         private CommandService _commands; | ||||
|         private IDbConnection _connection; | ||||
|         private ProxyService _proxy; | ||||
|         private Timer _updateTimer; | ||||
|  | ||||
|         public Bot(IServiceProvider services, IDiscordClient client, CommandService commands, IDbConnection connection, ProxyService proxy) | ||||
|         { | ||||
| @@ -98,11 +100,18 @@ namespace PluralKit.Bot | ||||
|             _client.MessageDeleted += _proxy.HandleMessageDeletedAsync; | ||||
|         } | ||||
|  | ||||
|         private Task Ready() | ||||
|         private async Task UpdatePeriodic() | ||||
|         { | ||||
|             // Method called every 60 seconds | ||||
|             await _client.SetGameAsync($"pk;help | in {_client.Guilds.Count} servers"); | ||||
|         } | ||||
|  | ||||
|         private async Task Ready() | ||||
|         { | ||||
|             _updateTimer = new Timer((_) => Task.Run(this.UpdatePeriodic), null, 0, 60*1000); | ||||
|  | ||||
|             Console.WriteLine($"Shard #{_client.ShardId} connected to {_client.Guilds.Sum(g => g.Channels.Count)} channels in {_client.Guilds.Count} guilds."); | ||||
|             Console.WriteLine($"PluralKit started as {_client.CurrentUser.Username}#{_client.CurrentUser.Discriminator} ({_client.CurrentUser.Id})."); | ||||
|             return Task.CompletedTask; | ||||
|         } | ||||
|  | ||||
|         private async Task CommandExecuted(Optional<CommandInfo> cmd, ICommandContext ctx, IResult _result) | ||||
|   | ||||
| @@ -21,7 +21,7 @@ namespace PluralKit.Bot.Commands | ||||
|             if (system == null) system = Context.SenderSystem; | ||||
|             if (system == null) return NO_SYSTEM_ERROR; | ||||
|  | ||||
|             await Context.Channel.SendMessageAsync(embed: await EmbedService.CreateEmbed(system)); | ||||
|             await Context.Channel.SendMessageAsync(embed: await EmbedService.CreateSystemEmbed(system)); | ||||
|             return PKResult.Success(); | ||||
|         } | ||||
|  | ||||
| @@ -33,7 +33,7 @@ namespace PluralKit.Bot.Commands | ||||
|  | ||||
|             var system = await Systems.Create(systemName); | ||||
|             await Systems.Link(system, Context.User.Id); | ||||
|              | ||||
|  | ||||
|             await ReplyAsync("Your system has been created. Type `pk;system` to view it, and type `pk;help` for more information about commands you can use now."); | ||||
|             return PKResult.Success(); | ||||
|         } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user