Update BetterAtHome.cs

improvements to be less bad
This commit is contained in:
Madpeterz 2021-02-16 08:26:45 +00:00
parent 0d6e7cba4d
commit dcc4544355

View file

@ -26,7 +26,7 @@ namespace BetterSecondbot.BetterAtHome
controler = setcontroler; controler = setcontroler;
this.configfile = configfile; this.configfile = configfile;
attach_events(); attach_events();
controler.Bot.SetBetterAtHomeAction("Standby"); SetBetterAtHomeAction("Standby");
foreach (string a in this.configfile.Basic_HomeRegions) foreach (string a in this.configfile.Basic_HomeRegions)
{ {
string[] bits = helpers.ParseSLurl(a); string[] bits = helpers.ParseSLurl(a);
@ -52,7 +52,7 @@ namespace BetterSecondbot.BetterAtHome
homeregionIndexer = -1; homeregionIndexer = -1;
LastTeleportEvent = 0; LastTeleportEvent = 0;
LastLoginEvent = helpers.UnixTimeNow(); LastLoginEvent = helpers.UnixTimeNow();
controler.Bot.SetBetterAtHomeAction("Event cooldown"); SetBetterAtHomeAction("Event cooldown");
} }
protected void NextHomeRegionRequest(object o, NextHomeRegionArgs e) protected void NextHomeRegionRequest(object o, NextHomeRegionArgs e)
@ -70,7 +70,7 @@ namespace BetterSecondbot.BetterAtHome
else if(e.Status == LoginStatus.ConnectingToLogin) else if(e.Status == LoginStatus.ConnectingToLogin)
{ {
LoggingIn = true; LoggingIn = true;
controler.Bot.SetBetterAtHomeAction("Waiting for login to finish"); SetBetterAtHomeAction("Waiting for login to finish");
} }
else if(e.Status == LoginStatus.Success) else if(e.Status == LoginStatus.Success)
{ {
@ -79,24 +79,79 @@ namespace BetterSecondbot.BetterAtHome
} }
} }
protected bool hasBasicBot()
{
if (controler == null)
{
return false;
}
if (controler.Bot == null)
{
return false;
}
return true;
}
protected bool hasBot()
{
if(hasBasicBot() == false)
{
return false;
}
if (controler.Bot.GetClient == null)
{
return false;
}
if (controler.Bot.GetClient.Network == null)
{
return false;
}
return true;
}
protected bool connected()
{
if(hasBot() == false)
{
return false;
}
if(LoggingIn == true)
{
return false;
}
if (LoggedIn == false)
{
return false;
}
return controler.Bot.GetClient.Network.Connected;
}
protected void SetBetterAtHomeAction(string message)
{
if(hasBasicBot() == true)
{
controler.Bot.SetBetterAtHomeAction(message);
}
}
protected void StatusPing(object o, StatusMessageEvent e) protected void StatusPing(object o, StatusMessageEvent e)
{ {
if(LoggedIn == true) if (hasBasicBot() == false)
{
return; // no bot (cant do anything)
}
if (connected() == true)
{ {
LoggedInAction(); LoggedInAction();
return;
} }
else if(LoggingIn == false) if (LoggingIn == true)
{ {
if(LoginFailed == false) SetBetterAtHomeAction("Logging in");
{ return;
controler.Bot.SetBetterAtHomeAction("Standby");
} }
else
{
LoggedOutActions(); LoggedOutActions();
} }
}
}
protected string simname = ""; protected string simname = "";
protected void ChangedSim(object o, SimChangedEventArgs e) protected void ChangedSim(object o, SimChangedEventArgs e)
@ -118,58 +173,68 @@ namespace BetterSecondbot.BetterAtHome
protected void LoggedOutActions() protected void LoggedOutActions()
{ {
controler.Bot.SetBetterAtHomeAction("LoggedOutActions"); SetBetterAtHomeAction("Logged Out Actions");
if (controler.Bot.KillMe == true) if (controler.Bot.KillMe == true)
{ {
controler.Bot.SetBetterAtHomeAction("Marked for death"); SetBetterAtHomeAction("Marked for death");
return;
}
controler.Bot.SetBetterAtHomeAction("Attempt to recover");
if (StartingLogin == true)
{
controler.Bot.SetBetterAtHomeAction("Starting Login");
return; return;
} }
long dif = helpers.UnixTimeNow() - LastLoginEvent; long dif = helpers.UnixTimeNow() - LastLoginEvent;
if (dif < 25) if (dif < 60)
{ {
controler.Bot.SetBetterAtHomeAction("Waiting for login lockout"); SetBetterAtHomeAction("[DC] Waiting for login lockout");
return; return;
} }
controler.Bot.SetBetterAtHomeAction("Attempting login"); dif = helpers.UnixTimeNow() - LastTeleportEvent;
if (dif < 60)
{
SetBetterAtHomeAction("[DC] Waiting for Teleport lockout");
return;
}
if (controler.Bot.KillMe == true)
{
SetBetterAtHomeAction("[DC] Marked for death");
return;
}
SetBetterAtHomeAction("[DC] Attempt to recover");
if (StartingLogin == true)
{
SetBetterAtHomeAction("[DC] Starting Login");
return;
}
SetBetterAtHomeAction("[DC] Attempting login");
StartingLogin = true; StartingLogin = true;
controler.Bot.Start(); controler.Bot.Start();
} }
protected void LoggedInAction() protected void LoggedInAction()
{ {
controler.Bot.SetBetterAtHomeAction("LoggedInAction"); SetBetterAtHomeAction("Logged In Actions");
if (controler.Bot.KillMe == true) if (controler.Bot.KillMe == true)
{ {
controler.Bot.SetBetterAtHomeAction("Marked for death"); SetBetterAtHomeAction("Marked for death");
return; return;
} }
long dif = helpers.UnixTimeNow() - LastLoginEvent; long dif = helpers.UnixTimeNow() - LastLoginEvent;
if (dif < 25) if (dif < 25)
{ {
controler.Bot.SetBetterAtHomeAction("Waiting for Login cooldown"); SetBetterAtHomeAction("Waiting for Login cooldown");
return; return;
} }
dif = helpers.UnixTimeNow() - LastTeleportEvent; dif = helpers.UnixTimeNow() - LastTeleportEvent;
if (dif < 120) if (dif < 120)
{ {
controler.Bot.SetBetterAtHomeAction("Waiting for Teleport lockout"); SetBetterAtHomeAction("Waiting for Teleport lockout");
return; return;
} }
if(homeRegions.Count == 0) if(homeRegions.Count == 0)
{ {
controler.Bot.SetBetterAtHomeAction("No home regions"); SetBetterAtHomeAction("No home regions");
return; return;
} }
if (IsAtHome() == true) if (IsAtHome() == true)
{ {
controler.Bot.SetBetterAtHomeAction("AtHome"); SetBetterAtHomeAction("AtHome");
return; return;
} }
gotoNextHomeRegion(false); gotoNextHomeRegion(false);
@ -181,13 +246,13 @@ namespace BetterSecondbot.BetterAtHome
{ {
if (homeRegions.Count == 0) if (homeRegions.Count == 0)
{ {
controler.Bot.SetBetterAtHomeAction("No home regions"); SetBetterAtHomeAction("No home regions");
return; return;
} }
homeregionIndexer++; homeregionIndexer++;
if (homeregionIndexer >= homeRegions.Count) if (homeregionIndexer >= homeRegions.Count)
{ {
controler.Bot.SetBetterAtHomeAction("Attempted all home regions restarting list"); SetBetterAtHomeAction("Attempted all home regions restarting list");
homeregionIndexer = -1; homeregionIndexer = -1;
LastTeleportEvent = helpers.UnixTimeNow(); LastTeleportEvent = helpers.UnixTimeNow();
if(force == true) if(force == true)
@ -196,7 +261,7 @@ namespace BetterSecondbot.BetterAtHome
} }
return; return;
} }
controler.Bot.SetBetterAtHomeAction("Teleporting to home region: " + homeRegions[homeregionIndexer] + ""); SetBetterAtHomeAction("Teleporting to home region: " + homeRegions[homeregionIndexer] + "");
LastTeleportEvent = helpers.UnixTimeNow(); LastTeleportEvent = helpers.UnixTimeNow();
controler.Bot.TeleportWithSLurl(configfile.Basic_HomeRegions[homeregionIndexer]); controler.Bot.TeleportWithSLurl(configfile.Basic_HomeRegions[homeregionIndexer]);
} }