Finished the Embed rebuild of Snapple.cs.
This commit is contained in:
1 parent
b33494e01f
commit
1e26a5f56c
2 files changed
+1095
-12
No files matched your search
File diff suppressed because it is too large.
Load diff
@@ -1,51 +1,132 @@
|
|||||||
using DSharpPlus.CommandsNext;
|
using DSharpPlus.CommandsNext;
|
||||||
using DSharpPlus.CommandsNext.Attributes;
|
using DSharpPlus.CommandsNext.Attributes;
|
||||||
|
using DSharpPlus.Entities;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
|
||||||
namespace StarsiegeBot
|
namespace StarsiegeBot
|
||||||
{
|
{
|
||||||
|
[Group("snapple")]
|
||||||
class SnappleFacts : BaseCommandModule
|
class SnappleFacts : BaseCommandModule
|
||||||
{
|
{
|
||||||
private readonly List<string> facts;
|
private List<string> facts;
|
||||||
|
private bool IsEnabled;
|
||||||
|
|
||||||
public SnappleFacts()
|
public SnappleFacts()
|
||||||
{
|
{
|
||||||
Console.WriteLine("Snapple Commands Loaded");
|
Console.WriteLine("Snapple Commands Loaded");
|
||||||
string json = File.ReadAllText("snapple.json");
|
IsEnabled = Load();
|
||||||
facts = JsonConvert.DeserializeObject<List<string>>(json);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("snapple"), Description("Get a Snapple \"Real Fact\".")]
|
[GroupCommand, Description("Get a Snapple \"Real Fact\".")]
|
||||||
public async Task Snapplefact(CommandContext ctx, [Description("[Optional] A Snapple Fact ID")] int snapId = -1)
|
public async Task Snapplefact(CommandContext ctx, [Description("[Optional] A Snapple Fact ID")] int snapId = -1)
|
||||||
{
|
{
|
||||||
await ctx.TriggerTypingAsync();
|
await ctx.TriggerTypingAsync();
|
||||||
|
string output;
|
||||||
snapId--;
|
snapId--;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await ctx.RespondAsync(facts[snapId]);
|
output = facts[snapId]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
await ctx.RespondAsync(facts[Program.rnd.Next(0, facts.Count)]);
|
output = facts[Program.rnd.Next(0, facts.Count)];
|
||||||
}
|
}
|
||||||
|
await ctx.RespondAsync(StartEmbed(output));
|
||||||
//await ctx.RespondAsync("**Warning:** The Id's used here, are not the same as Snapple's fact numbers! (We renumbered them when we imported them.)");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("snapplecount"), Description("Get a Snapple \"Real Fact\".")]
|
[Command("count"), Description("Get a Snapple \"Real Fact\".")]
|
||||||
public async Task SnappleCount(CommandContext ctx)
|
public async Task SnappleCount(CommandContext ctx)
|
||||||
{
|
{
|
||||||
await ctx.TriggerTypingAsync();
|
await ctx.TriggerTypingAsync();
|
||||||
await ctx.RespondAsync(facts.Count + " facts in the Snapple \"Real Facts\" Bank");
|
DiscordEmbedBuilder embed = StartEmbed(facts.Count + " facts in the Snapple \"Real Facts\" Bank");
|
||||||
|
await ctx.RespondAsync(embed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Command("load"), RequireOwner]
|
||||||
|
public async Task Load(CommandContext ctx)
|
||||||
|
{
|
||||||
|
await ctx.TriggerTypingAsync();
|
||||||
|
DiscordEmbedBuilder embed = StartEmbed("Reloading Snapple Facts");
|
||||||
|
embed.AddField("Old", (IsEnabled ? "Enabled" : "Disabled"));
|
||||||
|
_ = Load();
|
||||||
|
embed.AddField("New", (IsEnabled ? "Enabled" : "Disabled"));
|
||||||
|
await ctx.RespondAsync(embed);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Command("toggle")]
|
||||||
|
public async Task Enable (CommandContext ctx, [RemainingText]string isEnabled = null)
|
||||||
|
{
|
||||||
|
// trigger the typing.
|
||||||
|
await ctx.TriggerTypingAsync();
|
||||||
|
// lower case teh input.
|
||||||
|
isEnabled = isEnabled.ToLower();
|
||||||
|
string[] turnOn = { "on", "true", "1" };
|
||||||
|
string[] turnOff = { "off", "false", "0" };
|
||||||
|
//start our response.
|
||||||
|
DiscordEmbedBuilder embed = StartEmbed("Snapple Toggle");
|
||||||
|
embed.AddField("Old", (IsEnabled ? "Enabled" : "Disabled"));
|
||||||
|
// check for file.
|
||||||
|
if (File.Exists("snapple.json"))
|
||||||
|
{
|
||||||
|
// compare desired input against on or off values.
|
||||||
|
if (turnOn.Contains(isEnabled))
|
||||||
|
{
|
||||||
|
IsEnabled = true;
|
||||||
|
embed.AddField("New", (IsEnabled ? "Enabled" : "Disabled"));
|
||||||
|
}
|
||||||
|
else if (turnOff.Contains(isEnabled))
|
||||||
|
{
|
||||||
|
IsEnabled = false;
|
||||||
|
embed.AddField("New", (IsEnabled ? "Enabled" : "Disabled"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
embed.AddField("New", (IsEnabled ? "Enabled" : "Disabled"));
|
||||||
|
embed.WithFooter(":warning: Invalid command given.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
IsEnabled = false;
|
||||||
|
embed.AddField("New", (IsEnabled ? "Enabled" : "Disabled"));
|
||||||
|
embed.WithFooter(":warning: snapple.json file is missing, and it can not be enabled.");
|
||||||
|
}
|
||||||
|
await ctx.RespondAsync(embed);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private DiscordEmbedBuilder StartEmbed(string desc)
|
||||||
|
{
|
||||||
|
DiscordEmbedBuilder embed = new DiscordEmbedBuilder
|
||||||
|
{
|
||||||
|
Description = desc,
|
||||||
|
Color = Program.colours[Program.rnd.Next(0, Program.colours.Length)]
|
||||||
|
};
|
||||||
|
return embed;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool Load()
|
||||||
|
{
|
||||||
|
bool ret;
|
||||||
|
if (File.Exists("snapple.json"))
|
||||||
|
{
|
||||||
|
string json = File.ReadAllText("snapple.json");
|
||||||
|
facts = JsonConvert.DeserializeObject<List<string>>(json);
|
||||||
|
ret = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ret = false;
|
||||||
|
}
|
||||||
|
IsEnabled = ret;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user