split some greet message logic
This commit is contained in:
parent
4919edad8e
commit
4db45cf3b2
@ -3,6 +3,7 @@ using Discord.Commands;
|
|||||||
using NadekoBot.Attributes;
|
using NadekoBot.Attributes;
|
||||||
using NadekoBot.Extensions;
|
using NadekoBot.Extensions;
|
||||||
using NadekoBot.Services;
|
using NadekoBot.Services;
|
||||||
|
using NadekoBot.Services.Database;
|
||||||
using NadekoBot.Services.Database.Models;
|
using NadekoBot.Services.Database.Models;
|
||||||
using NLog;
|
using NLog;
|
||||||
using System;
|
using System;
|
||||||
@ -129,21 +130,27 @@ namespace NadekoBot.Modules.Administration
|
|||||||
{
|
{
|
||||||
var channel = (ITextChannel)umsg.Channel;
|
var channel = (ITextChannel)umsg.Channel;
|
||||||
|
|
||||||
GuildConfig conf;
|
var enabled = await ServerGreetCommands.SetGreetDel(channel.Guild.Id).ConfigureAwait(false);
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
|
||||||
{
|
|
||||||
conf = uow.GuildConfigs.For(channel.Guild.Id);
|
|
||||||
conf.AutoDeleteGreetMessages = !conf.AutoDeleteGreetMessages;
|
|
||||||
uow.GuildConfigs.Update(conf);
|
|
||||||
await uow.CompleteAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (conf.AutoDeleteGreetMessages)
|
if (enabled)
|
||||||
await channel.SendMessageAsync("`Automatic deletion of greet messages has been enabled.`").ConfigureAwait(false);
|
await channel.SendMessageAsync("`Automatic deletion of greet messages has been enabled.`").ConfigureAwait(false);
|
||||||
else
|
else
|
||||||
await channel.SendMessageAsync("`Automatic deletion of greet messages has been disabled.`").ConfigureAwait(false);
|
await channel.SendMessageAsync("`Automatic deletion of greet messages has been disabled.`").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static async Task<bool> SetGreetDel(ulong id, bool? value = null)
|
||||||
|
{
|
||||||
|
bool enabled;
|
||||||
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
|
{
|
||||||
|
var conf = uow.GuildConfigs.For(id);
|
||||||
|
enabled = conf.AutoDeleteGreetMessages = value ?? !conf.AutoDeleteGreetMessages;
|
||||||
|
uow.GuildConfigs.Update(conf);
|
||||||
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
[RequireContext(ContextType.Guild)]
|
[RequireContext(ContextType.Guild)]
|
||||||
[RequirePermission(GuildPermission.ManageGuild)]
|
[RequirePermission(GuildPermission.ManageGuild)]
|
||||||
@ -151,20 +158,26 @@ namespace NadekoBot.Modules.Administration
|
|||||||
{
|
{
|
||||||
var channel = (ITextChannel)umsg.Channel;
|
var channel = (ITextChannel)umsg.Channel;
|
||||||
|
|
||||||
GuildConfig conf;
|
var enabled = await ServerGreetCommands.SetGreet(channel.Guild.Id, channel.Id).ConfigureAwait(false);
|
||||||
|
|
||||||
|
if (enabled)
|
||||||
|
await channel.SendMessageAsync("Greeting messages enabled on this channel.").ConfigureAwait(false);
|
||||||
|
else
|
||||||
|
await channel.SendMessageAsync("Greeting messages disabled.").ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static async Task<bool> SetGreet(ulong guildId, ulong channelId, bool? value = null)
|
||||||
|
{
|
||||||
|
bool enabled;
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
{
|
{
|
||||||
conf = uow.GuildConfigs.For(channel.Guild.Id);
|
var conf = uow.GuildConfigs.For(guildId);
|
||||||
conf.SendChannelGreetMessage = !conf.SendChannelGreetMessage;
|
enabled = conf.SendChannelGreetMessage = value ?? !conf.SendChannelGreetMessage;
|
||||||
conf.GreetMessageChannelId = channel.Id;
|
conf.GreetMessageChannelId = channelId;
|
||||||
uow.GuildConfigs.Update(conf);
|
uow.GuildConfigs.Update(conf);
|
||||||
await uow.CompleteAsync();
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
return enabled;
|
||||||
if (conf.SendChannelGreetMessage)
|
|
||||||
await channel.SendMessageAsync("Greet announcements enabled on this channel.").ConfigureAwait(false);
|
|
||||||
else
|
|
||||||
await channel.SendMessageAsync("Greet announcements disabled.").ConfigureAwait(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -174,28 +187,44 @@ namespace NadekoBot.Modules.Administration
|
|||||||
{
|
{
|
||||||
var channel = (ITextChannel)umsg.Channel;
|
var channel = (ITextChannel)umsg.Channel;
|
||||||
|
|
||||||
GuildConfig conf;
|
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
|
||||||
{
|
|
||||||
conf = uow.GuildConfigs.For(channel.Guild.Id);
|
|
||||||
if (!string.IsNullOrWhiteSpace(text))
|
|
||||||
{
|
|
||||||
conf.ChannelGreetMessageText = text.SanitizeMentions();
|
|
||||||
uow.GuildConfigs.Update(conf);
|
|
||||||
await uow.CompleteAsync();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(text))
|
if (string.IsNullOrWhiteSpace(text))
|
||||||
{
|
{
|
||||||
await channel.SendMessageAsync("`Current greet message:` " + conf.ChannelGreetMessageText.SanitizeMentions());
|
GuildConfig config;
|
||||||
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
|
{
|
||||||
|
config = uow.GuildConfigs.For(channel.Guild.Id);
|
||||||
|
}
|
||||||
|
await channel.SendMessageAsync("`Current greet message:` " + config.ChannelGreetMessageText?.SanitizeMentions());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var sendGreetEnabled = ServerGreetCommands.SetGreetMessage(channel.Guild.Id, ref text);
|
||||||
|
|
||||||
await channel.SendMessageAsync("New greet message set.").ConfigureAwait(false);
|
await channel.SendMessageAsync("New greet message set.").ConfigureAwait(false);
|
||||||
if (!conf.SendChannelGreetMessage)
|
if (!sendGreetEnabled)
|
||||||
await channel.SendMessageAsync("Enable greet messsages by typing `.greet`").ConfigureAwait(false);
|
await channel.SendMessageAsync("Enable greet messsages by typing `.greet`").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool SetGreetMessage(ulong guildId, ref string message)
|
||||||
|
{
|
||||||
|
message = message?.SanitizeMentions();
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(message))
|
||||||
|
throw new ArgumentNullException(nameof(message));
|
||||||
|
|
||||||
|
bool greetMsgEnabled;
|
||||||
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
|
{
|
||||||
|
var conf = uow.GuildConfigs.For(guildId);
|
||||||
|
conf.ChannelGreetMessageText = message;
|
||||||
|
greetMsgEnabled = conf.SendChannelGreetMessage;
|
||||||
|
|
||||||
|
uow.GuildConfigs.Update(conf);
|
||||||
|
uow.Complete();
|
||||||
|
}
|
||||||
|
return greetMsgEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
[RequireContext(ContextType.Guild)]
|
[RequireContext(ContextType.Guild)]
|
||||||
[RequirePermission(GuildPermission.ManageGuild)]
|
[RequirePermission(GuildPermission.ManageGuild)]
|
||||||
@ -203,21 +232,27 @@ namespace NadekoBot.Modules.Administration
|
|||||||
{
|
{
|
||||||
var channel = (ITextChannel)umsg.Channel;
|
var channel = (ITextChannel)umsg.Channel;
|
||||||
|
|
||||||
GuildConfig conf;
|
var enabled = await ServerGreetCommands.SetGreetDm(channel.Guild.Id).ConfigureAwait(false);
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
|
||||||
{
|
|
||||||
conf = uow.GuildConfigs.For(channel.Guild.Id);
|
|
||||||
conf.SendDmGreetMessage = !conf.SendDmGreetMessage;
|
|
||||||
uow.GuildConfigs.Update(conf);
|
|
||||||
await uow.CompleteAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (conf.SendDmGreetMessage)
|
if (enabled)
|
||||||
await channel.SendMessageAsync("Greet announcements enabled on this channel.").ConfigureAwait(false);
|
await channel.SendMessageAsync("DM Greet announcements enabled.").ConfigureAwait(false);
|
||||||
else
|
else
|
||||||
await channel.SendMessageAsync("Greet announcements disabled.").ConfigureAwait(false);
|
await channel.SendMessageAsync("Greet announcements disabled.").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static async Task<bool> SetGreetDm(ulong guildId, bool? value = null)
|
||||||
|
{
|
||||||
|
bool enabled;
|
||||||
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
|
{
|
||||||
|
var conf = uow.GuildConfigs.For(guildId);
|
||||||
|
enabled = conf.SendDmGreetMessage = value ?? !conf.SendDmGreetMessage;
|
||||||
|
uow.GuildConfigs.Update(conf);
|
||||||
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
[RequireContext(ContextType.Guild)]
|
[RequireContext(ContextType.Guild)]
|
||||||
[RequirePermission(GuildPermission.ManageGuild)]
|
[RequirePermission(GuildPermission.ManageGuild)]
|
||||||
@ -225,26 +260,42 @@ namespace NadekoBot.Modules.Administration
|
|||||||
{
|
{
|
||||||
var channel = (ITextChannel)umsg.Channel;
|
var channel = (ITextChannel)umsg.Channel;
|
||||||
|
|
||||||
GuildConfig conf;
|
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
|
||||||
{
|
|
||||||
conf = uow.GuildConfigs.For(channel.Guild.Id);
|
|
||||||
if (!string.IsNullOrWhiteSpace(text))
|
|
||||||
{
|
|
||||||
conf.DmGreetMessageText = text;
|
|
||||||
uow.GuildConfigs.Update(conf);
|
|
||||||
await uow.CompleteAsync();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(text))
|
if (string.IsNullOrWhiteSpace(text))
|
||||||
{
|
{
|
||||||
await channel.SendMessageAsync("`Current DM greet message:` " + conf.DmGreetMessageText);
|
GuildConfig config;
|
||||||
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
|
{
|
||||||
|
config = uow.GuildConfigs.For(channel.Guild.Id);
|
||||||
|
}
|
||||||
|
await channel.SendMessageAsync("`Current DM greet message:` " + config.ChannelGreetMessageText?.SanitizeMentions());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var sendGreetEnabled = ServerGreetCommands.SetGreetMessage(channel.Guild.Id, ref text);
|
||||||
|
|
||||||
await channel.SendMessageAsync("New DM greet message set.").ConfigureAwait(false);
|
await channel.SendMessageAsync("New DM greet message set.").ConfigureAwait(false);
|
||||||
if (!conf.SendDmGreetMessage)
|
if (!sendGreetEnabled)
|
||||||
await channel.SendMessageAsync("Enable DM greet messsages by typing `.greetdm`").ConfigureAwait(false);
|
await channel.SendMessageAsync($"Enable DM greet messsages by typing `{NadekoBot.ModulePrefixes[typeof(Administration).Name]}greetdm`").ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool SetGreetDmMessage(ulong guildId, ref string message)
|
||||||
|
{
|
||||||
|
message = message?.SanitizeMentions();
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(message))
|
||||||
|
throw new ArgumentNullException(nameof(message));
|
||||||
|
|
||||||
|
bool greetMsgEnabled;
|
||||||
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
|
{
|
||||||
|
var conf = uow.GuildConfigs.For(guildId);
|
||||||
|
conf.ChannelGreetMessageText = message;
|
||||||
|
greetMsgEnabled = conf.SendChannelGreetMessage;
|
||||||
|
|
||||||
|
uow.GuildConfigs.Update(conf);
|
||||||
|
uow.Complete();
|
||||||
|
}
|
||||||
|
return greetMsgEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -254,22 +305,28 @@ namespace NadekoBot.Modules.Administration
|
|||||||
{
|
{
|
||||||
var channel = (ITextChannel)umsg.Channel;
|
var channel = (ITextChannel)umsg.Channel;
|
||||||
|
|
||||||
GuildConfig conf;
|
var enabled = await ServerGreetCommands.SetBye(channel.Guild.Id, channel.Id).ConfigureAwait(false);
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
|
||||||
{
|
|
||||||
conf = uow.GuildConfigs.For(channel.Guild.Id);
|
|
||||||
conf.SendChannelByeMessage = !conf.SendChannelByeMessage;
|
|
||||||
conf.ByeMessageChannelId = channel.Id;
|
|
||||||
uow.GuildConfigs.Update(conf);
|
|
||||||
await uow.CompleteAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (conf.SendChannelByeMessage)
|
if (enabled)
|
||||||
await channel.SendMessageAsync("Bye announcements enabled on this channel.").ConfigureAwait(false);
|
await channel.SendMessageAsync("Bye announcements enabled on this channel.").ConfigureAwait(false);
|
||||||
else
|
else
|
||||||
await channel.SendMessageAsync("Bye announcements disabled.").ConfigureAwait(false);
|
await channel.SendMessageAsync("Bye announcements disabled.").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static async Task<bool> SetBye(ulong guildId, ulong channelId, bool? value = null)
|
||||||
|
{
|
||||||
|
bool enabled;
|
||||||
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
|
{
|
||||||
|
var conf = uow.GuildConfigs.For(guildId);
|
||||||
|
enabled = conf.SendChannelByeMessage = value ?? !conf.SendChannelByeMessage;
|
||||||
|
conf.ByeMessageChannelId = channelId;
|
||||||
|
uow.GuildConfigs.Update(conf);
|
||||||
|
await uow.CompleteAsync();
|
||||||
|
}
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
[RequireContext(ContextType.Guild)]
|
[RequireContext(ContextType.Guild)]
|
||||||
[RequirePermission(GuildPermission.ManageGuild)]
|
[RequirePermission(GuildPermission.ManageGuild)]
|
||||||
@ -277,26 +334,42 @@ namespace NadekoBot.Modules.Administration
|
|||||||
{
|
{
|
||||||
var channel = (ITextChannel)umsg.Channel;
|
var channel = (ITextChannel)umsg.Channel;
|
||||||
|
|
||||||
GuildConfig conf;
|
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
|
||||||
{
|
|
||||||
conf = uow.GuildConfigs.For(channel.Guild.Id);
|
|
||||||
if (!string.IsNullOrWhiteSpace(text))
|
|
||||||
{
|
|
||||||
conf.ChannelByeMessageText = text.SanitizeMentions();
|
|
||||||
uow.GuildConfigs.Update(conf);
|
|
||||||
await uow.CompleteAsync();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(text))
|
if (string.IsNullOrWhiteSpace(text))
|
||||||
{
|
{
|
||||||
await channel.SendMessageAsync("`Current bye message:` " + conf.ChannelByeMessageText.SanitizeMentions());
|
GuildConfig config;
|
||||||
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
|
{
|
||||||
|
config = uow.GuildConfigs.For(channel.Guild.Id);
|
||||||
|
}
|
||||||
|
await channel.SendMessageAsync("`Current bye message:` " + config.ChannelByeMessageText?.SanitizeMentions());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var sendByeEnabled = ServerGreetCommands.SetByeMessage(channel.Guild.Id, ref text);
|
||||||
|
|
||||||
await channel.SendMessageAsync("New bye message set.").ConfigureAwait(false);
|
await channel.SendMessageAsync("New bye message set.").ConfigureAwait(false);
|
||||||
if (!conf.SendChannelByeMessage)
|
if (!sendByeEnabled)
|
||||||
await channel.SendMessageAsync("Enable bye messsages by typing `.bye`").ConfigureAwait(false);
|
await channel.SendMessageAsync($"Enable bye messsages by typing `{NadekoBot.ModulePrefixes[typeof(Administration).Name]}bye`").ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool SetByeMessage(ulong guildId, ref string message)
|
||||||
|
{
|
||||||
|
message = message?.SanitizeMentions();
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(message))
|
||||||
|
throw new ArgumentNullException(nameof(message));
|
||||||
|
|
||||||
|
bool byeMsgEnabled;
|
||||||
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
|
{
|
||||||
|
var conf = uow.GuildConfigs.For(guildId);
|
||||||
|
conf.ChannelByeMessageText = message;
|
||||||
|
byeMsgEnabled = conf.SendChannelByeMessage;
|
||||||
|
|
||||||
|
uow.GuildConfigs.Update(conf);
|
||||||
|
uow.Complete();
|
||||||
|
}
|
||||||
|
return byeMsgEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -306,21 +379,27 @@ namespace NadekoBot.Modules.Administration
|
|||||||
{
|
{
|
||||||
var channel = (ITextChannel)umsg.Channel;
|
var channel = (ITextChannel)umsg.Channel;
|
||||||
|
|
||||||
GuildConfig conf;
|
var enabled = await ServerGreetCommands.SetByeDel(channel.Guild.Id).ConfigureAwait(false);
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
|
||||||
{
|
|
||||||
conf = uow.GuildConfigs.For(channel.Guild.Id);
|
|
||||||
conf.AutoDeleteByeMessages = !conf.AutoDeleteByeMessages;
|
|
||||||
uow.GuildConfigs.Update(conf);
|
|
||||||
await uow.CompleteAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (conf.AutoDeleteByeMessages)
|
if (enabled)
|
||||||
await channel.SendMessageAsync("`Automatic deletion of bye messages has been enabled.`").ConfigureAwait(false);
|
await channel.SendMessageAsync("`Automatic deletion of bye messages has been enabled.`").ConfigureAwait(false);
|
||||||
else
|
else
|
||||||
await channel.SendMessageAsync("`Automatic deletion of bye messages has been disabled.`").ConfigureAwait(false);
|
await channel.SendMessageAsync("`Automatic deletion of bye messages has been disabled.`").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static async Task<bool> SetByeDel(ulong id, bool? value = null)
|
||||||
|
{
|
||||||
|
bool enabled;
|
||||||
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
|
{
|
||||||
|
var conf = uow.GuildConfigs.For(id);
|
||||||
|
enabled = conf.AutoDeleteByeMessages = value ?? !conf.AutoDeleteByeMessages;
|
||||||
|
uow.GuildConfigs.Update(conf);
|
||||||
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -10,7 +10,7 @@ namespace NadekoBot.Modules
|
|||||||
protected CommandService _commands { get; }
|
protected CommandService _commands { get; }
|
||||||
protected ShardedDiscordClient _client { get; }
|
protected ShardedDiscordClient _client { get; }
|
||||||
protected Logger _log { get; }
|
protected Logger _log { get; }
|
||||||
private string _prefix { get; }
|
protected string _prefix { get; }
|
||||||
|
|
||||||
public DiscordModule(ILocalization loc, CommandService cmds, ShardedDiscordClient client)
|
public DiscordModule(ILocalization loc, CommandService cmds, ShardedDiscordClient client)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user