DeukBot4/DeukBot4/MessageHandlers/CommandHandler/Commands/OwnerCommands.cs

70 lines
2.6 KiB
C#
Raw Normal View History

2019-08-17 13:32:04 +00:00
using System;
using System.Threading.Tasks;
2018-05-18 11:36:20 +00:00
using DeukBot4.MessageHandlers.CommandHandler.RequestStructure;
using DeukBot4.MessageHandlers.Permissions;
using Discord;
namespace DeukBot4.MessageHandlers.CommandHandler
{
public class OwnerCommands : CommandContainerBase
{
public override string Name => "Owner";
[Command("send", PermissionLevel.BotCreator)]
[CommandParameters(ParameterMatcher.ParameterType.Number, ParameterMatcher.ParameterType.Remainder)]
public async Task SendMessage(CommandRequest request)
{
if (request.Parameters.Length < 2)
return;
var channelId = request.Parameters[0].AsUlong();
if (!channelId.HasValue)
{
await request.SendSimpleEmbed("Send", $"Invalid channel ID: {request.Parameters[0].AsString()}");
2018-05-18 11:36:20 +00:00
return;
}
if (!(Program.Client.GetChannel(channelId.Value) is IMessageChannel channelFind))
{
await request.SendSimpleEmbed("Send", $"Can't find channel: {channelId.Value}");
2018-05-18 11:36:20 +00:00
return;
}
await channelFind.SendMessageAsync(request.Parameters[1].AsString());
}
[Command("dm", PermissionLevel.BotCreator)]
[CommandParameters(ParameterMatcher.ParameterType.Number, ParameterMatcher.ParameterType.Remainder)]
2019-01-31 10:52:08 +00:00
public async Task DmMessage(CommandRequest request)
2018-05-18 11:36:20 +00:00
{
if (request.Parameters.Length < 2)
return;
var channelId = request.Parameters[0].AsUlong();
if (!channelId.HasValue)
{
await request.SendSimpleEmbed("DM", $"Invalid channel ID: {request.Parameters[0].AsString()}");
2018-05-18 11:36:20 +00:00
return;
}
var user = Program.Client.GetUser(channelId.Value);
if (user == null)
{
await request.SendSimpleEmbed("DM", $"Can't find user: {channelId.Value}");
2018-05-18 11:36:20 +00:00
return;
}
var channel = await user.GetOrCreateDMChannelAsync();
if (channel == null)
{
await request.SendSimpleEmbed("DM", $"Can't create channel");
2018-05-18 11:36:20 +00:00
return;
}
await channel.SendMessageAsync(request.Parameters[1].AsString());
}
2019-08-17 13:32:04 +00:00
[Command("exit", PermissionLevel.BotCreator)]
public async Task ExitBot(CommandRequest request)
{
2019-08-17 13:37:22 +00:00
Console.WriteLine($"Bot exit was requested by {request.OriginalMessage.Author.Username}.");
2019-08-17 13:32:04 +00:00
Environment.Exit(0);
}
2018-05-18 11:36:20 +00:00
}
}