moved dmfoward commands to selfcommands
This commit is contained in:
parent
a89ca8d185
commit
64d43fed74
@ -1,96 +0,0 @@
|
|||||||
using Discord;
|
|
||||||
using Discord.Commands;
|
|
||||||
using Discord.WebSocket;
|
|
||||||
using NadekoBot.Attributes;
|
|
||||||
using NadekoBot.Extensions;
|
|
||||||
using NadekoBot.Services;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace NadekoBot.Modules.Administration
|
|
||||||
{
|
|
||||||
public partial class Administration
|
|
||||||
{
|
|
||||||
[Group]
|
|
||||||
public class DmForwardCommands : NadekoSubmodule
|
|
||||||
{
|
|
||||||
private static volatile bool _forwardDMs;
|
|
||||||
private static volatile bool _forwardDMsToAllOwners;
|
|
||||||
|
|
||||||
private static readonly object _locker = new object();
|
|
||||||
|
|
||||||
static DmForwardCommands()
|
|
||||||
{
|
|
||||||
|
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
|
||||||
{
|
|
||||||
var config = uow.BotConfig.GetOrCreate();
|
|
||||||
_forwardDMs = config.ForwardMessages;
|
|
||||||
_forwardDMsToAllOwners = config.ForwardToAllOwners;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
|
||||||
[OwnerOnly]
|
|
||||||
public async Task ForwardMessages()
|
|
||||||
{
|
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
|
||||||
{
|
|
||||||
var config = uow.BotConfig.GetOrCreate();
|
|
||||||
lock(_locker)
|
|
||||||
_forwardDMs = config.ForwardMessages = !config.ForwardMessages;
|
|
||||||
uow.Complete();
|
|
||||||
}
|
|
||||||
if (_forwardDMs)
|
|
||||||
await ReplyConfirmLocalized("fwdm_start").ConfigureAwait(false);
|
|
||||||
else
|
|
||||||
await ReplyConfirmLocalized("fwdm_stop").ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
|
||||||
[OwnerOnly]
|
|
||||||
public async Task ForwardToAll()
|
|
||||||
{
|
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
|
||||||
{
|
|
||||||
var config = uow.BotConfig.GetOrCreate();
|
|
||||||
lock(_locker)
|
|
||||||
_forwardDMsToAllOwners = config.ForwardToAllOwners = !config.ForwardToAllOwners;
|
|
||||||
uow.Complete();
|
|
||||||
}
|
|
||||||
if (_forwardDMsToAllOwners)
|
|
||||||
await ReplyConfirmLocalized("fwall_start").ConfigureAwait(false);
|
|
||||||
else
|
|
||||||
await ReplyConfirmLocalized("fwall_stop").ConfigureAwait(false);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static async Task HandleDmForwarding(SocketMessage msg, List<IDMChannel> ownerChannels)
|
|
||||||
{
|
|
||||||
if (_forwardDMs && ownerChannels.Any())
|
|
||||||
{
|
|
||||||
var title =
|
|
||||||
GetTextStatic("dm_from", NadekoBot.Localization.DefaultCultureInfo,
|
|
||||||
typeof(Administration).Name.ToLowerInvariant()) + $" [{msg.Author}]({msg.Author.Id})";
|
|
||||||
if (_forwardDMsToAllOwners)
|
|
||||||
{
|
|
||||||
await Task.WhenAll(ownerChannels.Where(ch => ch.Recipient.Id != msg.Author.Id)
|
|
||||||
.Select(ch => ch.SendConfirmAsync(title, msg.Content))).ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var firstOwnerChannel = ownerChannels.First();
|
|
||||||
if (firstOwnerChannel.Recipient.Id != msg.Author.Id)
|
|
||||||
try { await firstOwnerChannel.SendConfirmAsync(title, msg.Content).ConfigureAwait(false); }
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
// ignored
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -3,11 +3,13 @@ using Discord.Commands;
|
|||||||
using NadekoBot.Attributes;
|
using NadekoBot.Attributes;
|
||||||
using NadekoBot.Extensions;
|
using NadekoBot.Extensions;
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Discord.WebSocket;
|
||||||
|
using NadekoBot.Services;
|
||||||
|
|
||||||
namespace NadekoBot.Modules.Administration
|
namespace NadekoBot.Modules.Administration
|
||||||
{
|
{
|
||||||
@ -16,6 +18,82 @@ namespace NadekoBot.Modules.Administration
|
|||||||
[Group]
|
[Group]
|
||||||
public class SelfCommands : NadekoSubmodule
|
public class SelfCommands : NadekoSubmodule
|
||||||
{
|
{
|
||||||
|
private static volatile bool _forwardDMs;
|
||||||
|
private static volatile bool _forwardDMsToAllOwners;
|
||||||
|
|
||||||
|
private static readonly object _locker = new object();
|
||||||
|
|
||||||
|
static SelfCommands()
|
||||||
|
{
|
||||||
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
|
{
|
||||||
|
var config = uow.BotConfig.GetOrCreate();
|
||||||
|
_forwardDMs = config.ForwardMessages;
|
||||||
|
_forwardDMsToAllOwners = config.ForwardToAllOwners;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
|
[OwnerOnly]
|
||||||
|
public async Task ForwardMessages()
|
||||||
|
{
|
||||||
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
|
{
|
||||||
|
var config = uow.BotConfig.GetOrCreate();
|
||||||
|
lock (_locker)
|
||||||
|
_forwardDMs = config.ForwardMessages = !config.ForwardMessages;
|
||||||
|
uow.Complete();
|
||||||
|
}
|
||||||
|
if (_forwardDMs)
|
||||||
|
await ReplyConfirmLocalized("fwdm_start").ConfigureAwait(false);
|
||||||
|
else
|
||||||
|
await ReplyConfirmLocalized("fwdm_stop").ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
|
[OwnerOnly]
|
||||||
|
public async Task ForwardToAll()
|
||||||
|
{
|
||||||
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
|
{
|
||||||
|
var config = uow.BotConfig.GetOrCreate();
|
||||||
|
lock (_locker)
|
||||||
|
_forwardDMsToAllOwners = config.ForwardToAllOwners = !config.ForwardToAllOwners;
|
||||||
|
uow.Complete();
|
||||||
|
}
|
||||||
|
if (_forwardDMsToAllOwners)
|
||||||
|
await ReplyConfirmLocalized("fwall_start").ConfigureAwait(false);
|
||||||
|
else
|
||||||
|
await ReplyConfirmLocalized("fwall_stop").ConfigureAwait(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static async Task HandleDmForwarding(SocketMessage msg, List<IDMChannel> ownerChannels)
|
||||||
|
{
|
||||||
|
if (_forwardDMs && ownerChannels.Any())
|
||||||
|
{
|
||||||
|
var title =
|
||||||
|
GetTextStatic("dm_from", NadekoBot.Localization.DefaultCultureInfo,
|
||||||
|
typeof(Administration).Name.ToLowerInvariant()) + $" [{msg.Author}]({msg.Author.Id})";
|
||||||
|
if (_forwardDMsToAllOwners)
|
||||||
|
{
|
||||||
|
await Task.WhenAll(ownerChannels.Where(ch => ch.Recipient.Id != msg.Author.Id)
|
||||||
|
.Select(ch => ch.SendConfirmAsync(title, msg.Content))).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var firstOwnerChannel = ownerChannels.First();
|
||||||
|
if (firstOwnerChannel.Recipient.Id != msg.Author.Id)
|
||||||
|
try { await firstOwnerChannel.SendConfirmAsync(title, msg.Content).ConfigureAwait(false); }
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
// ignored
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
[OwnerOnly]
|
[OwnerOnly]
|
||||||
public async Task ConnectShard(int shardid)
|
public async Task ConnectShard(int shardid)
|
||||||
@ -148,7 +226,7 @@ namespace NadekoBot.Modules.Administration
|
|||||||
if (ids.Length != 2)
|
if (ids.Length != 2)
|
||||||
return;
|
return;
|
||||||
var sid = ulong.Parse(ids[0]);
|
var sid = ulong.Parse(ids[0]);
|
||||||
var server = NadekoBot.Client.GetGuilds().Where(s => s.Id == sid).FirstOrDefault();
|
var server = NadekoBot.Client.GetGuilds().FirstOrDefault(s => s.Id == sid);
|
||||||
|
|
||||||
if (server == null)
|
if (server == null)
|
||||||
return;
|
return;
|
||||||
@ -156,7 +234,7 @@ namespace NadekoBot.Modules.Administration
|
|||||||
if (ids[1].ToUpperInvariant().StartsWith("C:"))
|
if (ids[1].ToUpperInvariant().StartsWith("C:"))
|
||||||
{
|
{
|
||||||
var cid = ulong.Parse(ids[1].Substring(2));
|
var cid = ulong.Parse(ids[1].Substring(2));
|
||||||
var ch = server.TextChannels.Where(c => c.Id == cid).FirstOrDefault();
|
var ch = server.TextChannels.FirstOrDefault(c => c.Id == cid);
|
||||||
if (ch == null)
|
if (ch == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@ -166,7 +244,7 @@ namespace NadekoBot.Modules.Administration
|
|||||||
else if (ids[1].ToUpperInvariant().StartsWith("U:"))
|
else if (ids[1].ToUpperInvariant().StartsWith("U:"))
|
||||||
{
|
{
|
||||||
var uid = ulong.Parse(ids[1].Substring(2));
|
var uid = ulong.Parse(ids[1].Substring(2));
|
||||||
var user = server.Users.Where(u => u.Id == uid).FirstOrDefault();
|
var user = server.Users.FirstOrDefault(u => u.Id == uid);
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
@ -273,7 +273,7 @@ namespace NadekoBot.Services
|
|||||||
|
|
||||||
await msg.Channel.SendMessageAsync(Help.DMHelpString).ConfigureAwait(false);
|
await msg.Channel.SendMessageAsync(Help.DMHelpString).ConfigureAwait(false);
|
||||||
|
|
||||||
await DmForwardCommands.HandleDmForwarding(msg, ownerChannels).ConfigureAwait(false);
|
await SelfCommands.HandleDmForwarding(msg, ownerChannels).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user