90 lines
2.7 KiB
C#
90 lines
2.7 KiB
C#
using OpenMetaverse;
|
|
using SecondBotEvents.Config;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace SecondBotEvents.Services
|
|
{
|
|
internal class BotClient : service
|
|
{
|
|
public GridClient client = null;
|
|
public basic_config basicCfg = null;
|
|
public BotClient(EventsSecondBot setMaster) : base(setMaster)
|
|
{
|
|
basicCfg = new basic_config(master.fromEnv, master.fromFolder);
|
|
}
|
|
public override void start()
|
|
{
|
|
Console.WriteLine("Client service [Starting]");
|
|
login();
|
|
}
|
|
public override void stop()
|
|
{
|
|
Console.WriteLine("Client service [Stopping]");
|
|
resetClient();
|
|
}
|
|
|
|
protected void botLoggedOut(object o, LoggedOutEventArgs e)
|
|
{
|
|
Console.WriteLine("Client service ~ Logged out");
|
|
}
|
|
|
|
protected void botLoggedIn(object o, SimConnectedEventArgs e)
|
|
{
|
|
Console.WriteLine("Client service ~ Connected to sim: "+e.Simulator.Name);
|
|
}
|
|
|
|
protected void botLoseSim(object o, SimDisconnectedEventArgs e)
|
|
{
|
|
Console.WriteLine("Client service ~ Disconnected from sim: " + e.Simulator.Name);
|
|
}
|
|
|
|
protected void botDisconnected(object o, DisconnectedEventArgs e)
|
|
{
|
|
Console.WriteLine("Client service ~ Network lost: " + e.Message);
|
|
}
|
|
|
|
protected void botLoginStatus(object o, LoginProgressEventArgs e)
|
|
{
|
|
Console.WriteLine("Client service ~ Login status: " + e.Status.ToString());
|
|
}
|
|
|
|
protected void resetClient()
|
|
{
|
|
bool isRestart = false;
|
|
if (client != null)
|
|
{
|
|
client.Network.Logout();
|
|
isRestart = true;
|
|
}
|
|
client = null;
|
|
client = new GridClient();
|
|
master.triggerBotClientEvent(isRestart);
|
|
client.Network.SimConnected += botLoggedIn;
|
|
client.Network.LoggedOut += botLoggedOut;
|
|
client.Network.Disconnected += botDisconnected;
|
|
client.Network.SimDisconnected += botLoseSim;
|
|
client.Network.LoginProgress += botLoginStatus;
|
|
}
|
|
public void login()
|
|
{
|
|
resetClient();
|
|
LoginParams loginParams = new LoginParams(
|
|
client,
|
|
basicCfg.getFirstName(),
|
|
basicCfg.getLastName(),
|
|
basicCfg.getPassword(),
|
|
"secondbot",
|
|
master.getVersion()
|
|
);
|
|
if (basicCfg.getLoginURI() != "secondlife")
|
|
{
|
|
loginParams.URI = basicCfg.getLoginURI();
|
|
}
|
|
client.Network.BeginLogin(loginParams);
|
|
}
|
|
|
|
|
|
}
|
|
}
|