private void FindNewMaster(ulong handle) { IEnumerable <Simulator> _AllSimulators = AllSimulators; SimRegion R = SimRegion.GetRegion(handle); lock (_AllSimulators) { foreach (var simulator in _AllSimulators) { if (simulator.Client == client.gridClient) { continue; } if (simulator.Handle != handle) { continue; } GridClient cl = simulator.Client; R.SetMaster(cl); BotClient bc = BotClientFor(cl); if (SimRegion.IsMaster(simulator, bc.gridClient)) { bc.WorldSystem.MasteringRegions.Add(handle); } else { bc.WorldSystem.MasteringRegions.Add(handle); } Debug("Found a strong new client for region " + R + " as " + cl); return; } foreach (var simulator in _AllSimulators) { // if (simulator.Client == client.gridClient) continue; if (simulator.Handle != handle) { continue; } GridClient cl = simulator.Client; BotClient bc = BotClientFor(cl); if (SimRegion.IsMaster(simulator, bc.gridClient)) { bc.WorldSystem.MasteringRegions.Add(handle); } if (!cl.Network.Simulators.Contains(simulator)) { continue; } R.SetMaster(cl); Debug("Found a new client for region " + R + " as " + cl); return; } } Debug("UHT OH, No client is Mastering for region " + R); }