Files
Administration/SM64 ROM Manager.ProgressUpdater/DiscordSettingsDialog.cs

123 lines
4.1 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Telerik.WinControls;
using Telerik.WinControls.UI;
namespace SM64_ROM_Manager.ProgressUpdater
{
public partial class DiscordSettingsDialog : RadForm
{
private readonly Settings settings;
public DiscordSettingsDialog(Settings settings)
{
InitializeComponent();
this.settings = settings;
RadTextBoxControl_DiscordBotToken.Text = settings.DiscordBotToken;
RadTextBoxControl_ImageBaseURL.Text = settings.DiscordMsgBaseURL;
RadTextBoxControl_UrlExtraCounterParamName.Text = settings.DiscordMsgParamCounter;
RadCheckBox_EnableDiscordUpload.Checked = settings.DiscordUploadEnabled;
}
private void TextBoxX_BotToken_TextChanged(object sender, EventArgs e)
{
settings.DiscordBotToken = RadTextBoxControl_DiscordBotToken.Text.Trim();
}
private void TextBoxX_ImgBaseURL_TextChanged(object sender, EventArgs e)
{
settings.DiscordMsgBaseURL = RadTextBoxControl_ImageBaseURL.Text.Trim();
}
private void TextBoxX_UrlExtraCounterParam_TextChanged(object sender, EventArgs e)
{
settings.DiscordMsgParamCounter = RadTextBoxControl_UrlExtraCounterParamName.Text.Trim();
}
private void ButtonX1_Click(object sender, EventArgs e)
{
radWaitingBar1.StartWaiting();
RadButton_LoadServersAndChannels.Enabled = false;
var dmgr = new DiscordMgr(settings);
bool hasError = false;
dmgr.LoggedMsg += (ssender, msg, isError) => { if (hasError) hasError = true; };
dmgr.Start();
while (!dmgr.IsReady && !hasError)
{
Application.DoEvents();
}
if (hasError)
{
RadMessageBox.Show("Entwender deaktiviert oder Token ist falsch.", string.Empty, MessageBoxButtons.OK, RadMessageIcon.Error);
}
else
{
radTreeView1.BeginUpdate();
radTreeView1.Nodes.Clear();
foreach (var guild in dmgr.Client.Guilds)
{
var nGuild = new RadTreeNode()
{
Name = "g" + guild.Id,
Text = guild.Name,
Tag = guild.Id,
Expanded = true
};
foreach (var channel in guild.TextChannels)
{
var nChannel = new RadTreeNode()
{
Name = "c" + channel.Id,
Text = "#" + channel.Name,
Tag = channel.Id
};
nGuild.Nodes.Add(nChannel);
}
radTreeView1.Nodes.Add(nGuild);
}
radTreeView1.EndUpdate();
radTreeView1.Refresh();
dmgr.Stop();
}
radWaitingBar1.StopWaiting();
}
private void RadTreeView1_SelectedNodeChanged(object sender, RadTreeViewEventArgs e)
{
if (e.Node.Name.StartsWith("c"))
{
settings.DiscordChannelID = (ulong)e.Node.Tag;
settings.DiscordGuildID = (ulong)e.Node.Parent.Tag;
}
}
private void CheckBoxX_EnableDiscordUpload_CheckedChanged(object sender, EventArgs e)
{
settings.DiscordUploadEnabled = RadCheckBox_EnableDiscordUpload.Checked;
}
private void RadWaitingBar1_WaitingStarted(object sender, EventArgs e)
{
RadButton_LoadServersAndChannels.Enabled = false;
}
private void RadWaitingBar1_WaitingStopped(object sender, EventArgs e)
{
RadButton_LoadServersAndChannels.Enabled = true;
}
}
}