You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
3.3 KiB
111 lines
3.3 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using ProxyCore;
|
|
using ProxyCore.Output;
|
|
using ProxyCore.Scripting;
|
|
|
|
namespace StayAlive
|
|
{
|
|
public class StayAlive : Plugin
|
|
{
|
|
public StayAlive()
|
|
: base("stayalive", "Stay logged in")
|
|
{
|
|
Author = "Duckbat";
|
|
Version = 4;
|
|
Description = "Automatically stays logged in.";
|
|
UpdateUrl = "www.duckbat.com/plugins/update.stayalive.txt";
|
|
Website = "code.google.com/p/proxymud/";
|
|
|
|
Config = new StayAliveConfig();
|
|
|
|
RegisterTrigger("autologin.name", "What be thy name, adventurer?", TriggerUsername);
|
|
RegisterTrigger("autologin.pass", "Existing profile loaded - please enter your password.", TriggerPassword);
|
|
}
|
|
|
|
public override void OnConnect()
|
|
{
|
|
base.OnConnect();
|
|
|
|
CanEnterUsername = 1;
|
|
}
|
|
|
|
private bool TriggerUsername(TriggerData t)
|
|
{
|
|
if(CanEnterUsername != 1)
|
|
return false;
|
|
|
|
string n = Config.GetString("AutoLogin.User", "").Trim();
|
|
if(string.IsNullOrEmpty(n))
|
|
{
|
|
CanEnterUsername = 0;
|
|
return false;
|
|
}
|
|
|
|
string p = Config.GetString("AutoLogin.Pass", "").Trim();
|
|
if(string.IsNullOrEmpty(p))
|
|
{
|
|
CanEnterUsername = 0;
|
|
return false;
|
|
}
|
|
|
|
CanEnterUsername = 2;
|
|
World.Instance.Execute(n, false);
|
|
return false;
|
|
}
|
|
|
|
private bool TriggerPassword(TriggerData t)
|
|
{
|
|
if(CanEnterUsername != 2)
|
|
return false;
|
|
|
|
string p = Config.GetString("AutoLogin.Pass", "").Trim();
|
|
if(string.IsNullOrEmpty(p))
|
|
{
|
|
CanEnterUsername = 0;
|
|
return false;
|
|
}
|
|
|
|
CanEnterUsername = 0;
|
|
World.Instance.Execute(p, false);
|
|
|
|
World.Instance.Execute("", false);
|
|
return false;
|
|
}
|
|
|
|
private int CanEnterUsername = 0;
|
|
|
|
public override void OnLoadedConfig(bool Success)
|
|
{
|
|
base.OnLoadedConfig(Success);
|
|
|
|
string n = Config.GetString("StayAlive.Line", "@wYour eyes glaze over.");
|
|
if(string.IsNullOrEmpty(n))
|
|
return;
|
|
|
|
RegisterTrigger("line", n, TriggerLine, TriggerFlags.NotRegex);
|
|
}
|
|
|
|
private bool TriggerLine(TriggerData t)
|
|
{
|
|
World.Instance.Execute(Config.GetString("StayAlive.Command", ""), false);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public class StayAliveConfig : ConfigFile
|
|
{
|
|
protected override void OnCreated()
|
|
{
|
|
base.OnCreated();
|
|
|
|
CreateSetting("StayAlive.Command", "", "What to send to MUD when we receive line about being idle. You can leave this blank to just send enter key.");
|
|
CreateSetting("StayAlive.Line", "@wYour eyes glaze over.", "On what line do we send command? Default: \"@wYour eyes glaze over.\"");
|
|
CreateSetting("AutoLogin.User", "", "User name to automatically log in with. Leave blank to disable this feature.");
|
|
CreateSetting("AutoLogin.Pass", "", "Password to automatically log in with. Leave blank to disable this feature.");
|
|
}
|
|
}
|
|
}
|