public void ClusterConnect()
 {
     while (Cluster == null)
     {
         try
         {
             Cluster = ProxyClient.Create <ICluster>(m_RemoteURI);
             if (!Information.IsNothing(Cluster))
             {
                 WorldServerConfiguration configuration = WorldServiceLocator._ConfigurationProvider.GetConfiguration();
                 if (Cluster.Connect(LocalURI, configuration.Maps.Select(_Closure_0024__._0024I13_002D0 ??= x => Conversions.ToUInteger(x)).ToList()))
                 {
                     break;
                 }
                 Cluster.Disconnect(LocalURI, configuration.Maps.Select(_Closure_0024__._0024I13_002D1 ??= x => Conversions.ToUInteger(x)).ToList());
             }
         }
         catch (Exception ex)
         {
             ProjectData.SetProjectError(ex);
             Exception e = ex;
             WorldServiceLocator._WorldServer.Log.WriteLine(LogType.FAILED, "Unable to connect to cluster. [{0}]", e.Message);
             ProjectData.ClearProjectError();
         }
         Cluster = null;
         Thread.Sleep(3000);
     }
     WorldServiceLocator._WorldServer.Log.WriteLine(LogType.SUCCESS, "Contacted cluster [{0}]", m_RemoteURI);
 }
Exemplo n.º 2
0
 public void ClusterConnect()
 {
     while (Cluster == null)
     {
         try
         {
             Cluster = ProxyClient.Create <ICluster>(m_RemoteURI);
             if (Cluster != null)
             {
                 WorldServerConfiguration configuration = WorldServiceLocator._ConfigurationProvider.GetConfiguration();
                 if (Cluster.Connect(LocalURI, configuration.Maps.Select(x => Conversions.ToUInteger(x)).ToList()))
                 {
                     break;
                 }
                 Cluster.Disconnect(LocalURI, configuration.Maps.Select(x => Conversions.ToUInteger(x)).ToList());
             }
         }
         catch (Exception ex)
         {
             Exception e = ex;
             WorldServiceLocator._WorldServer.Log.WriteLine(LogType.FAILED, "Unable to connect to cluster. [{0}]", e.Message);
         }
         Cluster = null;
         Thread.Sleep(3000);
     }
     WorldServiceLocator._WorldServer.Log.WriteLine(LogType.SUCCESS, "Contacted cluster [{0}]", m_RemoteURI);
 }
            public bool InstanceCanCreate(int Type)
            {
                WorldServerConfiguration configuration = WorldServiceLocator._ConfigurationProvider.GetConfiguration();

                return(Type switch
                {
                    3 => configuration.CreateBattlegrounds,
                    1 => configuration.CreatePartyInstances,
                    2 => configuration.CreateRaidInstances,
                    0 => configuration.CreateOther,
                    _ => false,
                });
            public WorldServerClass(DataStoreProvider dataStoreProvider)
            {
                _flagStopListen = false;
                LastCPUTime     = 0.0;
                UsageCPU        = 0f;
                Cluster         = null;
                WorldServerConfiguration configuration = WorldServiceLocator._ConfigurationProvider.GetConfiguration();

                m_RemoteURI = $"http://{configuration.ClusterConnectHost}:{configuration.ClusterConnectPort}";
                LocalURI    = $"http://{configuration.LocalConnectHost}:{configuration.LocalConnectPort}";
                Cluster     = null;
                WorldServiceLocator._WS_Network.LastPing = WorldServiceLocator._NativeMethods.timeGetTime("");
                m_Connection           = new Timer(CheckConnection, null, 10000, 10000);
                m_TimerCPU             = new Timer(CheckCPU, null, 1000, 1000);
                this.dataStoreProvider = dataStoreProvider;
            }