Removed the need to ping the target server first. May reduce load times for high latency people
This commit is contained in:
@@ -13,7 +13,7 @@ namespace SeamlessClientPlugin.SeamlessTransfer
|
||||
public class ServerPing
|
||||
{
|
||||
|
||||
private static WorldRequest Request;
|
||||
private static WorldRequest Request { get { return Transfer.WorldRequest; } }
|
||||
private static Transfer Transfer;
|
||||
|
||||
|
||||
@@ -21,7 +21,6 @@ namespace SeamlessClientPlugin.SeamlessTransfer
|
||||
{
|
||||
// We need to first ping the server to make sure its running and so we can get a connection
|
||||
Transfer = ClientTransfer;
|
||||
Request = Transfer.WorldRequest;
|
||||
|
||||
|
||||
if (Transfer.TargetServerID == 0)
|
||||
@@ -30,40 +29,24 @@ namespace SeamlessClientPlugin.SeamlessTransfer
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
MyGameServerItem E = new MyGameServerItem();
|
||||
E.ConnectionString = Transfer.IPAdress;
|
||||
E.SteamID = Transfer.TargetServerID;
|
||||
E.Name = Transfer.ServerName;
|
||||
|
||||
|
||||
|
||||
|
||||
SeamlessClient.TryShow("Beginning Redirect to server: " + Transfer.TargetServerID);
|
||||
MyGameService.OnPingServerResponded += PingResponded;
|
||||
MyGameService.OnPingServerFailedToRespond += FailedToRespond;
|
||||
|
||||
MyGameService.PingServer(Transfer.IPAdress);
|
||||
}
|
||||
|
||||
private static void PingResponded(object sender, MyGameServerItem e)
|
||||
{
|
||||
//If server ping was successful we need to begin the switching proccess
|
||||
UnRegisterEvents();
|
||||
|
||||
SeamlessClient.TryShow($"{e.Name} was successfully pinged!");
|
||||
SwitchServers Switcher = new SwitchServers(e, Request.DeserializeWorldData());
|
||||
SwitchServers Switcher = new SwitchServers(E, Request.DeserializeWorldData());
|
||||
Switcher.BeginSwitch();
|
||||
// LoadServer.LoadWorldData(e, Request.DeserializeWorldData());
|
||||
}
|
||||
|
||||
// MyGameService.OnPingServerResponded += PingResponded;
|
||||
//MyGameService.OnPingServerFailedToRespond += FailedToRespond;
|
||||
|
||||
private static void FailedToRespond(object sender, EventArgs e)
|
||||
{
|
||||
// If the target server failed to respond, we need to exit/return to menu
|
||||
UnRegisterEvents();
|
||||
}
|
||||
|
||||
|
||||
private static void UnRegisterEvents()
|
||||
{
|
||||
//Un-register ping events
|
||||
MyGameService.OnPingServerResponded -= PingResponded;
|
||||
MyGameService.OnPingServerFailedToRespond -= FailedToRespond;
|
||||
//MyGameService.PingServer(Transfer.IPAdress);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user