public void Handle(World world)
{
Position = 0;
String name = ReadS();
String password = ReadS();
Byte ID = (Byte)ReadByte();
world.Name = name;
Log.Info("RegisterWorld", name + " tries to register.");
IPEndPoint address = (IPEndPoint)world.tcp.Client.RemoteEndPoint;
if (ID != 0)
{
if (Program.worlds.Contains(ID) == false)
{
Log.Succes("RegisterWorld", name + " was registered! World ID: " + ID);
world.Id = ID;
world.Send(new LW.RegisterSuccess(ID));
Program.worlds.Add(ID);
}
else
{
Log.Error("RegisterWorld", "World server with ID " + ID + " already exists!");
world.tcp.Close();
}
}
else
{
Log.Error("RegisterWorld", name + ": wrong host or password - " + address.Address.ToString() + "@" + password);
Log.Info("RegisterWorld", name + " will be disconnected in 5 seconds");
Thread.Sleep(5 * 1000);
world.tcp.Close();
}
}