285 lines
6.1 KiB
C#
285 lines
6.1 KiB
C#
#region Header
|
|
// Vorspire _,-'/-'/ DiscordBotUI.cs
|
|
// . __,-; ,'( '/
|
|
// \. `-.__`-._`:_,-._ _ , . ``
|
|
// `:-._,------' ` _,`--` -: `_ , ` ,' :
|
|
// `---..__,,--' (C) 2017 ` -'. -'
|
|
// # Vita-Nex [http://core.vita-nex.com] #
|
|
// {o)xxx|===============- # -===============|xxx(o}
|
|
// # The MIT License (MIT) #
|
|
#endregion
|
|
|
|
#region References
|
|
using System;
|
|
using System.Drawing;
|
|
|
|
using Server;
|
|
using Server.Commands;
|
|
using Server.Gumps;
|
|
|
|
using VitaNex.SuperGumps;
|
|
#endregion
|
|
|
|
namespace VitaNex.Modules.Discord
|
|
{
|
|
public class DiscordBotUI : SuperGump
|
|
{
|
|
public DiscordBotUI(Mobile user)
|
|
: base(user)
|
|
{ }
|
|
|
|
protected override void CompileLayout(SuperGumpLayout layout)
|
|
{
|
|
base.CompileLayout(layout);
|
|
|
|
const int w = 600, h = 400;
|
|
|
|
layout.Add("bg", () => AddBackground(0, 0, w, h, SupportsUltimaStore ? 40000 : 9270));
|
|
|
|
layout.Add(
|
|
"title",
|
|
() =>
|
|
{
|
|
var label = "Discord Bot Settings";
|
|
|
|
label = label.WrapUOHtmlBig();
|
|
label = label.WrapUOHtmlCenter();
|
|
label = label.WrapUOHtmlColor(Color.Gold, false);
|
|
|
|
AddHtml(15, 10, w - 30, 40, label, false, false);
|
|
});
|
|
|
|
layout.Add(
|
|
"webhook/live",
|
|
() =>
|
|
{
|
|
var label = "Live Webhook";
|
|
|
|
label = label.WrapUOHtmlRight();
|
|
label = label.WrapUOHtmlColor(Color.Gold, false);
|
|
|
|
const int ww = (w - 30) / 4;
|
|
|
|
AddHtml(15, 40, ww, 40, label, false, false);
|
|
|
|
AddImageTiled(15 + (ww + 10), 40, (w - 30) - (ww + 10), 20, 2624);
|
|
|
|
AddTextEntry(
|
|
15 + (ww + 15),
|
|
40,
|
|
(w - 30) - (ww + 20),
|
|
20,
|
|
TextHue,
|
|
DiscordBot.GetWebhookUri(false),
|
|
(e, t) => DiscordBot.SetWebhook(t, false));
|
|
});
|
|
|
|
layout.Add(
|
|
"webhook/debug",
|
|
() =>
|
|
{
|
|
var label = "Debug Webhook";
|
|
|
|
label = label.WrapUOHtmlRight();
|
|
label = label.WrapUOHtmlColor(Color.Gold, false);
|
|
|
|
const int ww = (w - 30) / 4;
|
|
|
|
AddHtml(15, 60, ww, 40, label, false, false);
|
|
|
|
AddImageTiled(15 + (ww + 10), 60, (w - 30) - (ww + 10), 20, 2624);
|
|
|
|
AddTextEntry(
|
|
15 + (ww + 15),
|
|
60,
|
|
(w - 30) - (ww + 20),
|
|
20,
|
|
TextHue,
|
|
DiscordBot.GetWebhookUri(true),
|
|
(e, t) => DiscordBot.SetWebhook(t, true));
|
|
});
|
|
|
|
layout.Add(
|
|
"options",
|
|
() =>
|
|
{
|
|
var xx = 15;
|
|
var yy = 90;
|
|
|
|
const int ww = (w - 30) / 4;
|
|
|
|
var col = DiscordBot.CMOptions.FilterSaves ? Color.LawnGreen : Color.OrangeRed;
|
|
|
|
AddHtmlButton(
|
|
xx,
|
|
yy,
|
|
ww,
|
|
25,
|
|
b =>
|
|
{
|
|
DiscordBot.CMOptions.FilterSaves = !DiscordBot.CMOptions.FilterSaves;
|
|
Refresh(true);
|
|
},
|
|
"Saves Filter".WrapUOHtmlCenter(),
|
|
col,
|
|
Color.Black,
|
|
Color.Silver,
|
|
1);
|
|
|
|
xx += ww;
|
|
|
|
col = DiscordBot.CMOptions.FilterRepeat ? Color.LawnGreen : Color.OrangeRed;
|
|
|
|
AddHtmlButton(
|
|
xx,
|
|
yy,
|
|
ww,
|
|
25,
|
|
b =>
|
|
{
|
|
DiscordBot.CMOptions.FilterRepeat = !DiscordBot.CMOptions.FilterRepeat;
|
|
Refresh(true);
|
|
},
|
|
"Repeat Filter".WrapUOHtmlCenter(),
|
|
col,
|
|
Color.Black,
|
|
col,
|
|
1);
|
|
|
|
xx = 15;
|
|
yy += 35;
|
|
|
|
col = DiscordBot.CMOptions.HandleBroadcast ? Color.LawnGreen : Color.OrangeRed;
|
|
|
|
AddHtmlButton(
|
|
xx,
|
|
yy,
|
|
ww,
|
|
25,
|
|
b =>
|
|
{
|
|
DiscordBot.CMOptions.HandleBroadcast = !DiscordBot.CMOptions.HandleBroadcast;
|
|
Refresh(true);
|
|
},
|
|
"Handle Broadcasts".WrapUOHtmlCenter(),
|
|
col,
|
|
Color.Black,
|
|
Color.Silver,
|
|
1);
|
|
|
|
xx += ww;
|
|
|
|
col = DiscordBot.CMOptions.HandleNotify ? Color.LawnGreen : Color.OrangeRed;
|
|
|
|
AddHtmlButton(
|
|
xx,
|
|
yy,
|
|
ww,
|
|
25,
|
|
b =>
|
|
{
|
|
DiscordBot.CMOptions.HandleNotify = !DiscordBot.CMOptions.HandleNotify;
|
|
Refresh(true);
|
|
},
|
|
"Handle Notifications".WrapUOHtmlCenter(),
|
|
col,
|
|
Color.Black,
|
|
col,
|
|
1);
|
|
|
|
xx += ww;
|
|
|
|
col = DiscordBot.CMOptions.HandleBattles ? Color.LawnGreen : Color.OrangeRed;
|
|
|
|
AddHtmlButton(
|
|
xx,
|
|
yy,
|
|
ww,
|
|
25,
|
|
b =>
|
|
{
|
|
DiscordBot.CMOptions.HandleBattles = !DiscordBot.CMOptions.HandleBattles;
|
|
Refresh(true);
|
|
},
|
|
"Handle PvP Battles".WrapUOHtmlCenter(),
|
|
col,
|
|
Color.Black,
|
|
col,
|
|
1);
|
|
|
|
xx += ww;
|
|
|
|
col = DiscordBot.CMOptions.HandleStatus ? Color.LawnGreen : Color.OrangeRed;
|
|
|
|
AddHtmlButton(
|
|
xx,
|
|
yy,
|
|
ww,
|
|
25,
|
|
b =>
|
|
{
|
|
DiscordBot.CMOptions.HandleStatus = !DiscordBot.CMOptions.HandleStatus;
|
|
Refresh(true);
|
|
},
|
|
"Handle Server Status".WrapUOHtmlCenter(),
|
|
col,
|
|
Color.Black,
|
|
col,
|
|
1);
|
|
|
|
xx = 15;
|
|
yy += 35;
|
|
|
|
AddHtmlButton(
|
|
xx,
|
|
yy,
|
|
ww,
|
|
25,
|
|
b =>
|
|
{
|
|
Refresh();
|
|
User.SendGump(new PropertiesGump(User, DiscordBot.CMOptions));
|
|
},
|
|
"Module Config".WrapUOHtmlCenter(),
|
|
Color.Gold,
|
|
Color.Black,
|
|
Color.Gold,
|
|
1);
|
|
|
|
xx = 0;
|
|
yy += 35;
|
|
|
|
AddBackground(xx, yy, w, h - yy, SupportsUltimaStore ? 40000 : 9270);
|
|
|
|
xx += 15;
|
|
yy += 10;
|
|
|
|
var label = "Information";
|
|
|
|
label = label.WrapUOHtmlBig();
|
|
label = label.WrapUOHtmlCenter();
|
|
label = label.WrapUOHtmlColor(Color.Gold, false);
|
|
|
|
AddHtml(xx, yy, w - 30, 40, label, false, false);
|
|
|
|
yy += 35;
|
|
|
|
label = Information;
|
|
|
|
label = label.WrapUOHtmlColor(Color.PaleGoldenrod, false);
|
|
|
|
AddHtml(xx, yy, w - 30, (h - 20) - yy, label, false, true);
|
|
});
|
|
}
|
|
|
|
public const string WebhooksUri = "https://support.discordapp.com/hc/en-us/articles/228383668-Intro-to-Webhooks";
|
|
|
|
public static readonly string Information = //
|
|
"Configure Webhooks to use when sending messages to Discord.\n" +
|
|
"Discord - Intro to Webhooks".WrapUOHtmlUrl(WebhooksUri) +
|
|
"\n\nThe Debug Webhook will be used when the Discord Bot is in Debug Mode, otherwise, the Live Webhook is used.\n" +
|
|
"Make sure to use a fully qualified URL when update your Webhook settings.\n\nYou may use the " +
|
|
CommandSystem.Prefix + "Discord command to send messages directly to Discord.\n" +
|
|
"Messages sent this way will not be subject to filtering.\n\n";
|
|
}
|
|
} |