SecondBot/CLI/CliExitOnLogout.cs
Madpeterz 1ad87071c5 new discord-v control overlay
allows you to log in and out the bot via discord
2021-01-04 10:32:30 +00:00

72 lines
2.3 KiB
C#

using BetterSecondBot.HttpServer;
using BetterSecondBotShared.IO;
using BetterSecondBotShared.Json;
using BetterSecondBotShared.logs;
using BetterSecondBotShared.Static;
using BSB.bottypes;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using static BetterSecondBot.Program;
namespace BetterSecondBot
{
public class CliExitOnLogout
{
public bool Exited { get { return exitBot; } }
protected bool exitBot = false;
public SecondBot Bot;
protected void keep_alive()
{
while (Bot.KillMe == false)
{
string NewStatusMessage = Bot.GetStatus();
if (NewStatusMessage != Bot.LastStatusMessage)
{
NewStatusMessage = NewStatusMessage.Trim();
if (NewStatusMessage.Replace(" ", "") != "")
{
Bot.LastStatusMessage = NewStatusMessage;
Bot.Log2File(LogFormater.Status(Bot.LastStatusMessage, false), ConsoleLogLogLevel.Status);
}
}
Thread.Sleep(1000);
}
Bot.GetClient.Network.Logout();
}
public CliExitOnLogout(JsonConfig Config, bool as_docker, bool use_self_keep_alive)
{
exitBot = false;
LogFormater.Status("Mode: Cli [Basic]");
if (helpers.botRequired(Config) == true)
{
Bot = new SecondBot();
Bot.Setup(Config, AssemblyInfo.GetGitHash());
if(as_docker == true)
{
Bot.AsDocker();
}
Bot.Start();
if (Config.Http_Enable == true)
{
SecondBotHttpServer my_http_server = new SecondBotHttpServer();
my_http_server.StartHttpServer(Bot, Config);
}
if(use_self_keep_alive == true)
{
keep_alive();
}
}
else
{
LogFormater.Warn("Required settings missing");
}
if (use_self_keep_alive == true)
{
exitBot = true;
}
}
}
}