Greet commands now function without delay?
This commit is contained in:
parent
f552e03e24
commit
612eb22154
@ -26,83 +26,85 @@ namespace NadekoBot.Modules.Administration
|
|||||||
_log = LogManager.GetCurrentClassLogger();
|
_log = LogManager.GetCurrentClassLogger();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task UserLeft(IGuildUser user)
|
private Task UserLeft(IGuildUser user)
|
||||||
{
|
{
|
||||||
_log.Info("Left: User Left");
|
var leftTask = Task.Run(async () =>
|
||||||
GuildConfig conf;
|
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
|
||||||
{
|
{
|
||||||
conf = uow.GuildConfigs.For(user.Guild.Id);
|
GuildConfig conf;
|
||||||
}
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
_log.Info("Left: Got unit of work");
|
{
|
||||||
|
conf = uow.GuildConfigs.For(user.Guild.Id);
|
||||||
|
}
|
||||||
|
|
||||||
if (!conf.SendChannelByeMessage) return;
|
if (!conf.SendChannelByeMessage) return;
|
||||||
var channel = (await user.Guild.GetTextChannelsAsync()).SingleOrDefault(c => c.Id == conf.ByeMessageChannelId);
|
var channel = (await user.Guild.GetTextChannelsAsync()).SingleOrDefault(c => c.Id == conf.ByeMessageChannelId);
|
||||||
_log.Info("Left: Found channel");
|
|
||||||
if (channel == null) //maybe warn the server owner that the channel is missing
|
|
||||||
return;
|
|
||||||
|
|
||||||
var msg = conf.ChannelByeMessageText.Replace("%user%", "**" + user.Username + "**");
|
if (channel == null) //maybe warn the server owner that the channel is missing
|
||||||
if (string.IsNullOrWhiteSpace(msg))
|
return;
|
||||||
return;
|
|
||||||
|
|
||||||
_log.Info("Left: Sending");
|
var msg = conf.ChannelByeMessageText.Replace("%user%", "**" + user.Username + "**");
|
||||||
var toDelete = await channel.SendMessageAsync(msg).ConfigureAwait(false);
|
if (string.IsNullOrWhiteSpace(msg))
|
||||||
if (conf.AutoDeleteByeMessages)
|
return;
|
||||||
{
|
|
||||||
_log.Info("Left: Sent, waiting for delete");
|
var toDelete = await channel.SendMessageAsync(msg).ConfigureAwait(false);
|
||||||
await Task.Delay(conf.AutoDeleteGreetMessagesTimer * 1000).ConfigureAwait(false); // 5 minutes
|
if (conf.AutoDeleteByeMessages)
|
||||||
_log.Info("Left: Deleted");
|
{
|
||||||
await toDelete.DeleteAsync().ConfigureAwait(false);
|
var t = Task.Run(async () =>
|
||||||
}
|
{
|
||||||
|
await Task.Delay(conf.AutoDeleteGreetMessagesTimer * 1000).ConfigureAwait(false); // 5 minutes
|
||||||
|
await toDelete.DeleteAsync().ConfigureAwait(false);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task UserJoined(IGuildUser user)
|
private Task UserJoined(IGuildUser user)
|
||||||
{
|
{
|
||||||
_log.Info("Joined: User joined");
|
var joinedTask = Task.Run(async () =>
|
||||||
GuildConfig conf;
|
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
|
||||||
{
|
{
|
||||||
conf = uow.GuildConfigs.For(user.Guild.Id);
|
GuildConfig conf;
|
||||||
}
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
|
|
||||||
_log.Info("Joined: Got unit of work");
|
|
||||||
if (conf.SendChannelGreetMessage)
|
|
||||||
{
|
|
||||||
var channel = (await user.Guild.GetTextChannelsAsync()).SingleOrDefault(c => c.Id == conf.GreetMessageChannelId);
|
|
||||||
_log.Info("Joined: Found required channel");
|
|
||||||
if (channel != null) //maybe warn the server owner that the channel is missing
|
|
||||||
{
|
{
|
||||||
var msg = conf.ChannelGreetMessageText.Replace("%user%", "**" + user.Username + "**");
|
conf = uow.GuildConfigs.For(user.Guild.Id);
|
||||||
if (!string.IsNullOrWhiteSpace(msg))
|
}
|
||||||
|
|
||||||
|
if (conf.SendChannelGreetMessage)
|
||||||
|
{
|
||||||
|
var channel = (await user.Guild.GetTextChannelsAsync()).SingleOrDefault(c => c.Id == conf.GreetMessageChannelId);
|
||||||
|
if (channel != null) //maybe warn the server owner that the channel is missing
|
||||||
{
|
{
|
||||||
_log.Info("Joined: Sending message");
|
var msg = conf.ChannelGreetMessageText.Replace("%user%", user.Username).Replace("%server%", user.Guild.Name);
|
||||||
var toDelete = await channel.SendMessageAsync(msg).ConfigureAwait(false);
|
if (!string.IsNullOrWhiteSpace(msg))
|
||||||
_log.Info("Joined: Message sent");
|
|
||||||
if (conf.AutoDeleteGreetMessages)
|
|
||||||
{
|
{
|
||||||
_log.Info("Joined: Waiting to delete");
|
var toDelete = await channel.SendMessageAsync(msg).ConfigureAwait(false);
|
||||||
await Task.Delay(conf.AutoDeleteGreetMessagesTimer * 1000).ConfigureAwait(false); // 5 minutes
|
if (conf.AutoDeleteGreetMessages)
|
||||||
await toDelete.DeleteAsync().ConfigureAwait(false);
|
{
|
||||||
_log.Info("Joined: Deleted");
|
var t = Task.Run(async () =>
|
||||||
|
{
|
||||||
|
await Task.Delay(conf.AutoDeleteGreetMessagesTimer * 1000).ConfigureAwait(false); // 5 minutes
|
||||||
|
await toDelete.DeleteAsync().ConfigureAwait(false);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (conf.SendDmGreetMessage)
|
if (conf.SendDmGreetMessage)
|
||||||
{
|
|
||||||
var channel = await user.CreateDMChannelAsync();
|
|
||||||
|
|
||||||
if (channel != null)
|
|
||||||
{
|
{
|
||||||
var msg = conf.DmGreetMessageText.Replace("%user%", "**" + user.Username + "**");
|
var channel = await user.CreateDMChannelAsync();
|
||||||
if (!string.IsNullOrWhiteSpace(msg))
|
|
||||||
|
if (channel != null)
|
||||||
{
|
{
|
||||||
var toDelete = await channel.SendMessageAsync(msg).ConfigureAwait(false);
|
var msg = conf.DmGreetMessageText.Replace("%user%", user.Username).Replace("%server%", user.Guild.Name);
|
||||||
|
if (!string.IsNullOrWhiteSpace(msg))
|
||||||
|
{
|
||||||
|
await channel.SendMessageAsync(msg).ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
[LocalizedCommand, LocalizedDescription, LocalizedSummary]
|
[LocalizedCommand, LocalizedDescription, LocalizedSummary]
|
||||||
@ -227,7 +229,7 @@ namespace NadekoBot.Modules.Administration
|
|||||||
}
|
}
|
||||||
await channel.SendMessageAsync("New DM greet message set.").ConfigureAwait(false);
|
await channel.SendMessageAsync("New DM greet message set.").ConfigureAwait(false);
|
||||||
if (!conf.SendDmGreetMessage)
|
if (!conf.SendDmGreetMessage)
|
||||||
await channel.SendMessageAsync("Enable DM greet messsages by typing `.greet`").ConfigureAwait(false);
|
await channel.SendMessageAsync("Enable DM greet messsages by typing `.greetdm`").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
[LocalizedCommand, LocalizedDescription, LocalizedSummary]
|
[LocalizedCommand, LocalizedDescription, LocalizedSummary]
|
||||||
|
Loading…
Reference in New Issue
Block a user