DeukBot4/DeukBot4/MessageHandlers/CommandHandler/Commands/GeneralCommands.cs

122 lines
4.8 KiB
C#
Raw Normal View History

2018-03-29 17:39:23 +00:00
using System;
using System.Threading.Tasks;
2018-03-28 23:34:48 +00:00
using DeukBot4.MessageHandlers.CommandHandler.RequestStructure;
using DeukBot4.MessageHandlers.Permissions;
2018-03-30 14:33:42 +00:00
using DeukBot4.Utilities;
2018-03-29 17:39:23 +00:00
using Discord;
2018-03-28 23:34:48 +00:00
namespace DeukBot4.MessageHandlers.CommandHandler
{
public class GeneralCommands : CommandContainerBase
{
public override string Name => "General";
2018-03-29 17:39:23 +00:00
[Command("info", PermissionLevel.Everyone)]
public async Task Info(CommandRequest request)
{
var embed = new EmbedBuilder
{
Author = new EmbedAuthorBuilder()
{
Name = "DeukBot",
Url = "https://gitlab.com/Deukhoofd/DeukBot4/tree/master/DeukBot4/MessageHandlers/CommandHandler"
},
Color = Color.Gold,
Title = "Deukbot Info",
Description = "A bot designed by Deukhoofd for use on the Epsilon server",
Timestamp = DateTime.UtcNow
};
embed.AddField("Software", "Deukbot 4.0", true);
embed.AddField("Creator", "Deukhoofd#7361", true);
await request.OriginalMessage.Channel.SendMessageAsync("", embed: embed.Build());
}
2018-03-28 23:34:48 +00:00
[Command("ping", PermissionLevel.Everyone)]
[CommandHelp("Simple Ping Pong Response", "Generates a simple Pong response when triggered")]
public async Task Ping(CommandRequest request)
{
await request.OriginalMessage.Channel.SendMessageAsync("Pong");
}
[Command("help", PermissionLevel.Everyone)]
[CommandParameters(new []{ParameterMatcher.ParameterType.Word})]
[CommandHelp("Displays a list of commands for the bot",
@"Allows you to see all commands you can use for your permission level, along with a description.
usage:
``help`` for a list of all commands useable for you.
``help`` [command name] for more detailed info on a specific command. Note that you need to be able to use the command to get this info."
)]
public async Task Help(CommandRequest request)
{
if (request.Parameters.Length == 0)
{
await request.OriginalMessage.Channel.SendMessageAsync(
HelpCommandGenerator.GenerateFullHelp(request.RequestPermissions));
}
else
{
2018-03-30 12:51:38 +00:00
await request.OriginalMessage.Channel.SendMessageAsync("", embed:
HelpCommandGenerator.GenerateSpecificHelp(request.Parameters[0].AsString(),
request.RequestPermissions));
2018-03-28 23:34:48 +00:00
}
}
2018-03-30 14:33:42 +00:00
[Command("whatdoyouthinkdeukbot", PermissionLevel.Everyone)]
[Command("whatdoyouthink", PermissionLevel.Everyone)]
[CommandParameters(ParameterMatcher.ParameterType.Remainder)]
public async Task BotOpinion(CommandRequest request)
{
var random = new Random();
var positive = random.Next(-20, 80) < (int) request.RequestPermissions;
var extend = request.Parameters[0].AsString().ToLowerInvariant();
if (extend.Contains("kill") || extend.Contains("suicide"))
{
await request.OriginalMessage.Channel.SendMessageAsync("That sounds like a bad idea to me");
return;
}
if (extend.Contains("ban"))
{
if (extend.Contains("deuk"))
{
positive = false;
}
else
{
await request.OriginalMessage.Channel.SendMessageAsync("Absolutely, ban the fucker!");
return;
}
}
if (positive)
{
await request.OriginalMessage.Channel.SendMessageAsync(PositiveOpinions.Choice(random));
}
else
{
await request.OriginalMessage.Channel.SendMessageAsync(NegativeOpinions.Choice(random));
}
}
private static readonly string[] PositiveOpinions = new[]
{
"I think you should go for it!",
"You can do it!",
"That sounds like a good idea to me!",
"Sure do it",
"Always remember there are people who love you",
"love u bb"
};
private static readonly string[] NegativeOpinions = new[]
{
"I do not care for your pathetic worries humanoid. Leave me alone.",
"Absolutely not, who do you even think you are?",
"Ask me another time. Maybe I'll care then.",
"Too hungover atm, don't feel like answering questions.",
"Confirmation Received. Installing Cryptominers on your PC.",
"Fuck off please thanks.",
"If you don't get a brain within 15 minutes I'm legally allowed to ban you."
};
2018-03-28 23:34:48 +00:00
}
}