コード例 #1
0
        internal static string GetDecryptedString(string EncryptedText)
        {
            string DecryptionPassword = ServerMain.getInstance().EncryptionPassword;
            string DecryptedText      = new EncryptedKeyProvider().GetDecryptedString(EncryptedText, DecryptionPassword);

            return(DecryptedText);
        }
コード例 #2
0
ファイル: SecurityController.cs プロジェクト: hesed7/hitpan
        public static void  SetSecurityTokenSeed(string seed)
        {
            string EncryptionPassword = ServerMain.getInstance().EncryptionPassword;
            string SecurityTokenSeed  = new EncryptedKeyProvider().GetEncryptedString(seed, EncryptionPassword);

            File.AppendAllText(string.Format("{0}\\securityTokenSeed.seed", Environment.CurrentDirectory), SecurityTokenSeed);
        }
コード例 #3
0
        public static void LoginHandler(Socket Client, ref Client clientM)
        {
            ServerMain.ServerLogger("Requested to Login", "Client");

            //Receive Login Type (Customer || Vendor)
            int LoginType = Convert.ToInt32(Receive.ReceiveMessage(Client));

            Thread.Sleep(300);

            string username = Receive.ReceiveMessage(Client);

            Send.SendMessage(Client, GetUserSalt(username, LoginType));

            string clientHashedPassword = Receive.ReceiveMessage(Client);

            //If Login is Correct send back sucess message
            if (CheckUserCredentials(username, clientHashedPassword, LoginType) == true)
            {
                clientM.SToken = ServerMain.GenerateSessiontoken();
                Send.SendMessage(Client, clientM.SToken);
                if (LoginType == 0)
                {
                    Send.SendUserInfo(Client, GetUserInfo(username, clientM));
                    return;
                }
                Send.SendVendorInfo(Client, GetVendorInfo(username, clientM));
                return;
            }

            //Otherwise Return -1 as userID
            Send.SendUserInfo(Client, InvalidCredentials());
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: corefan/yad2
 static void Main(string[] args)
 {
     _sm          = new ServerMain();
     _clients     = new ClientConn[clientNo];
     _askCounters = new TurnAskTimeCounter[clientNo];
     for (int i = 0; i < clientNo; ++i)
     {
         _clients[i] = new ClientConn();
         _clients[i].InitConnection("127.0.0.1", 1734);
         _askCounters[i]             = new TurnAskTimeCounter();
         _clients[i].MessageSend    += new MessageEventHandler(_askCounters[i].OnMessageSend);
         _clients[i].MessageReceive += new MessageEventHandler(_askCounters[i].OnMessageRecieve);
         InitSend(i);
     }
     _clients[0].SendMessage(CreateCreateGameMessage());
     for (int i = 1; i < clientNo; ++i)
     {
         _clients[i].SendMessage(CreateJoinMessage());
     }
     Thread.Sleep(1000);
     for (int i = 0; i < clientNo; ++i)
     {
         _clients[i].SendMessage(MessageFactory.Create(MessageType.StartGame));
     }
     for (int i = 0; i < clientNo; ++i)
     {
         ClientSendingThread cst = new ClientSendingThread(_clients[i]);
         Thread th = new Thread(new ThreadStart(cst.ThreadProcess));
         th.Start();
     }
 }
コード例 #5
0
        private async void StartAsync([NotNull] ServerMain main, CancellationToken simulatorToken, CancellationToken mainToken)
        {
            if (main == null)
            {
                throw new ArgumentNullException(nameof(main));
            }

            while (!simulatorToken.IsCancellationRequested && !mainToken.IsCancellationRequested)
            {
                try
                {
                    await main.StartAsync(mainToken);
                }
                catch (Exception e)
                {
                    _logger.WriteError(e.ToString());
                    _logger.WriteWarning("Sleep 10 seconds before restart..");
                    await Task.Delay(TimeSpan.FromSeconds(10), simulatorToken);
                }

                if (!mainToken.IsCancellationRequested)
                {
                    _logger.WriteWarning("Restarting simulator..");
                }
            }
        }
コード例 #6
0
    private void Awake()
    {
        Server = new ServerMain();
        GameObject canvas = GameObject.Find("Canvas");

        serverStartBtn = canvas.transform.Find("ServerStart").GetComponent <Button>();
        serverStartBtn.onClick.AddListener(onClick);
    }
コード例 #7
0
ファイル: HostServer.cs プロジェクト: luisvsm/NetCodeJamCode
    public static void Main(string[] args)
    {
        Console.WriteLine("Starting game server :)");

        gameServer = new ServerMain();
        gameServer.Start(HostIP);
        CreateHostBuilder(args).Build().Run();
    }
コード例 #8
0
ファイル: Player.cs プロジェクト: shuidong/Voxalia
 /// <summary>
 /// Kicks the player with a given message.
 /// </summary>
 /// <param name="message">The kick message</param>
 public void Kick(string message)
 {
     tdisco = true;
     ServerMain.DespawnPlayer(this);
     Network.TickMe = false;
     ServerMain.Announce("Player " + Username + " disconnected: " + message);
     Send(new KickPacketOut(message));
     Network.InternalSocket.Close(2);
 }
コード例 #9
0
ファイル: WebServiceManager.cs プロジェクト: hesed7/hitpan
 public void SetCommonSetting(CommonSettingsVO CommonSetting)
 {
     this.CommonSetting                  = CommonSetting;
     ServerConsole                       = ServerMain.getInstance();
     ServerConsole.certPassword          = CommonSetting.certPassword;
     ServerConsole.certPath              = CommonSetting.certPath;
     ServerConsole.MessageCredentialType = CommonSetting.MessageCredentialType;
     ServerConsole.UseMirrorAlram        = CommonSetting.UseMirrorAlram;
     ServerConsole.SetSecurityToken(CommonSetting.SecurityTokenSeed);
 }
コード例 #10
0
 internal SecurityController()
 {
     try
     {
         this.securityTokenSeed = ServerMain.getInstance().SecurityTokenSeed;
     }
     catch (Exception)
     {
         this.securityTokenSeed = "12344321";
     }
 }
コード例 #11
0
ファイル: LocalServer.cs プロジェクト: luisvsm/NetCodeJamCode
    public void StartServer()
    {
        if (localServer == null)
        {
            localServer = new ServerMain();

            localServerThread = new Thread(new ThreadStart(StartServerWithTryCatch));
            localServerThread.Start();

            Debug.Log("[LocalServer] Started Server.");
        }
    }
コード例 #12
0
 public JObject AccountRefer(string accountName, out int sc)
 {
     foreach (var ac in users)
     {
         if (accountName == ac.Name)
         {
             sc = 201; return(ac.ToJObject());
         }
     }
     sc = 409;
     return(ServerMain.messagejson("アカウントが見つかりませんでした"));
 }
コード例 #13
0
ファイル: SecurityController.cs プロジェクト: hesed7/hitpan
 public SecurityController()
 {
     try
     {
         string EncryptionPassword = ServerMain.getInstance().EncryptionPassword;
         this.securityTokenSeed = File.ReadAllText(string.Format("{0}\\securityTokenSeed.seed", Environment.CurrentDirectory), Encoding.UTF8);
         this.securityTokenSeed = new EncryptedKeyProvider().GetDecryptedString(securityTokenSeed, EncryptionPassword);
     }
     catch (Exception)
     {
         this.securityTokenSeed = "!@#$4321$#@!";
     }
 }
コード例 #14
0
ファイル: LocalServer.cs プロジェクト: luisvsm/NetCodeJamCode
 public void StopServer()
 {
     if (localServerThread != null)
     {
         localServerThread.Abort();
         localServerThread = null;
     }
     if (localServer != null)
     {
         localServer.Stop();
         localServer = null;
     }
 }
コード例 #15
0
 public JObject DeleteFusen(string accountID, string fusenID, out int statusCode)
 {
     foreach (Data f in fusens)
     {
         if (f.fusenID == fusenID && f.userID == accountID)
         {
             statusCode = 200;
             fusens.Remove(f);
             return(f.ToJObject());
         }
     }
     statusCode = 409;
     return(ServerMain.messagejson("該当する付箋が見つかりませんでした"));
 }
コード例 #16
0
        public override void StartServerSide(ICoreServerAPI Api)
        {
            sapi = Api;
            sapi.Event.PlayerJoin += (player) =>
            {
                ServerMain server       = (sapi.World as ServerMain);
                var        PlayerGroups = server.GetField <ServerMain, ServerSystem[]>("Systems").OfType <ServerySystemPlayerGroups>().Single();
                var        serverAdmin  = (object)(new ServerPlayer(server, ServerWorldPlayerData.CreateNew("!!!ImmersionAdmin", "!!!ImmersionAdmin")));
                if (!PlayerGroups.PlayerGroupsByUid.Any(g => g.Value.Name == "suplayer"))
                {
                    PlayerGroups.CallMethod("CmdCreategroup", (object)(serverAdmin), (object)0, new CmdArgs("suplayer"));
                }
                var group = PlayerGroups.PlayerGroupsByUid.Where(t => t.Value.Name == "suplayer").Single().Value;
                if (player.Privileges.Contains(Privilege.ban))
                {
                    server.PlayerDataManager.PlayerDataByUid[player.PlayerUID].JoinGroup(group, EnumPlayerGroupMemberShip.Op);
                }
                else
                {
                    server.PlayerDataManager.PlayerDataByUid[player.PlayerUID].JoinGroup(group, EnumPlayerGroupMemberShip.Member);
                }

                server.PlayerDataManager.playerDataDirty   = true;
                server.PlayerDataManager.playerGroupsDirty = true;
            };

            sapi.RegisterCommand("setmaterial", "Set the material of currently looked at chiseled block", "[block code]", (player, groupId, args) =>
            {
                BlockPos pos          = player.CurrentBlockSelection.Position;
                BlockEntityChisel bet = sapi.World.BlockAccessor.GetBlockEntity(pos) as BlockEntityChisel;
                Block block           = sapi.World.GetBlock(new AssetLocation(args.PopWord()));

                if (bet == null)
                {
                    player.SendMessage(groupId, "Not looking at a chiseled block. Must look at one to set its material", EnumChatType.CommandError);
                    return;
                }
                if (block == null)
                {
                    player.SendMessage(groupId, "Did not supply a valid block code", EnumChatType.CommandError);
                    return;
                }

                bet.MaterialIds = new int[] { block.Id };
                bet.MarkDirty(true);
                player.SendMessage(groupId, "Material set.", EnumChatType.CommandError);
            }
                                 , Privilege.controlserver);
        }
コード例 #17
0
            public JObject AccountCreate(string accountName, out int statusCode)
            {
                statusCode = 200;
                foreach (var ac in users)
                {
                    if (accountName == ac.Name)
                    {
                        statusCode = 409;
                        return(ServerMain.messagejson("このアカウント名は既に使われています"));
                    }
                }
                string id   = Guid.NewGuid().ToString("N").Substring(0, 12);
                var    user = new User(accountName, id);

                users.Add(user);
                return(user.ToJObject());
            }
コード例 #18
0
        /// <summary>
        /// Central program entry point.
        /// Decides whether to lauch the server or the client.
        /// </summary>
        /// <param name="args">The command line arguments</param>
        static void Main(string[] args)
        {
            ConsoleHandle = Process.GetCurrentProcess().MainWindowHandle;
            SysConsole.Init();
            LaunchFlags    = new List <char>();
            LaunchSettings = new List <KeyValuePair <string, string> >();
            bool in_setting = false;

            for (int i = 0; i < args.Length; i++)
            {
                if (args[i].StartsWith("--") && args[i].Length > 2)
                {
                    in_setting = true;
                    Console.WriteLine("Found setting " + args[i].Substring(2));
                    LaunchSettings.Add(new KeyValuePair <string, string>(args[i].Substring(2), ""));
                }
                else if (args[i].StartsWith("-") && args[i].Length > 1)
                {
                    for (int x = 1; x < args[i].Length; x++)
                    {
                        Console.WriteLine("Found flag " + args[i][x]);
                        LaunchFlags.Add(args[i][x]);
                    }
                    in_setting = false;
                }
                else if (in_setting)
                {
                    KeyValuePair <string, string> kvp = LaunchSettings[LaunchSettings.Count - 1];
                    LaunchSettings.RemoveAt(LaunchSettings.Count - 1);
                    Console.WriteLine("Found setting argument, " + kvp.Key + " is now " + kvp.Value + (kvp.Value.Length > 0 ? " " : "") + args[i]);
                    LaunchSettings.Add(new KeyValuePair <string, string>(kvp.Key, kvp.Value + (kvp.Value.Length > 0 ? " ": "") + args[i]));
                }
            }
#if CLIENT
            if (args.Length > 0 && args[0] == "server")
            {
                ServerMain.Init();
            }
            else
            {
                ClientMain.Init();
            }
#else
            ServerMain.Init();
#endif
        }
コード例 #19
0
 public JObject UpdateFusen(string accountID, string fusenID, JObject fusenData, out int statusCode)
 {
     foreach (var f in fusens)
     {
         if (f.fusenID == fusenID && f.userID == accountID)
         {
             f.title    = fusenData["title"].Value <string>();
             f.tag      = fusenData["tag"].ToObject <string[]>();
             f.text     = fusenData["text"].Value <string>();
             f.color    = fusenData["color"].Value <string>();
             statusCode = 200;
             return(fusenData);
         }
     }
     statusCode = 409;
     return(ServerMain.messagejson("該当する付箋が見つかりません"));
 }
コード例 #20
0
        internal void Start()
        {
            using (var simulatorCancellation = new CancellationTokenSource())
                using (var main = new ServerMain(_logger))
                {
                    while (!simulatorCancellation.IsCancellationRequested)
                    {
                        using (var mainCancellation = new CancellationTokenSource())
                        {
                            StartAsync(main, simulatorCancellation.Token, mainCancellation.Token);
                            ShowKeyPressRequest();

                            var runRequested = false;
                            while (!simulatorCancellation.IsCancellationRequested && !runRequested)
                            {
                                var keyPressed = Console.ReadKey(true).Key;
                                switch (keyPressed)
                                {
                                case ConsoleKey.S:
                                    if (_currentState == ProgramState.Running)
                                    {
                                        mainCancellation.Cancel();
                                        _currentState = ProgramState.Stopped;
                                        ShowKeyPressRequest();
                                    }
                                    break;

                                case ConsoleKey.R:
                                    if (_currentState == ProgramState.Stopped)
                                    {
                                        _currentState = ProgramState.Running;
                                        runRequested  = true;
                                    }
                                    break;

                                case ConsoleKey.Q:
                                    mainCancellation.Cancel();
                                    simulatorCancellation.Cancel();
                                    break;
                                }
                            }
                        }
                    }
                }
        }
コード例 #21
0
        public static void LoginHandler(Socket Client)
        {
            ServerMain.ServerLogger("Requested to Login", "Client");

            //Receive Client Information
            string username = Receive.ReceiveMessage(Client);
            string password = Receive.ReceiveMessage(Client);

            //If Login is Correct send back sucess message
            if (CheckUserCredentials(username, password) == true)
            {
                Send.SendUserInfo(Client, GetUserInfo(username));
                return;
            }

            //Otherwise Return -1 as userID
            Send.SendUserInfo(Client, InvalidCredentials());
        }
コード例 #22
0
ファイル: Categories.cs プロジェクト: DanyaalA/FeedMe
        private static void CategoryHandler(Socket Client)
        {
            ServerMain.ServerLogger("Requested Category List", "Vendor");

            //Receive Client Information
            string vendorID = Receive.ReceiveMessage(Client);

            DataTable DT = DAL.ExecCommand($@"SELECT category FROM items
                                            WHERE VendorID = {vendorID}
                                            GROUP BY category
                                            ORDER BY category ASC;");

            List <String> CategoryList = new List <String>();

            foreach (DataRow CRow in DT.Rows)
            {
                CategoryList.Add(CRow[0].ToString());
            }

            //CategoryList.Count
        }
コード例 #23
0
 public HandlerRoleCastSkill(HandlerType type, ServerMain agent) : base(type, agent)
 {
 }
コード例 #24
0
 public HandlerSyncPos(HandlerType type, ServerMain agent) : base(type, agent)
 {
 }
コード例 #25
0
ファイル: DBFileManager.cs プロジェクト: hesed7/hitpan
 internal void BackupNow(string URL, string BackupPath)
 {
     ServerMain.getInstance().DBBackup(URL, BackupPath);
 }
コード例 #26
0
ファイル: Connection.cs プロジェクト: shuidong/Voxalia
        /// <summary>
        /// Ticks the socket.
        /// </summary>
        public void Tick()
        {
            if (!TickMe)
            {
                return;
            }
            int av = InternalSocket.Available;

            if (av > 0)
            {
                if (received + av > Max)
                {
                    InternalSocket.Close();
                    TickMe = false;
                }
                received += InternalSocket.Receive(recd, received, av, SocketFlags.None);
                if (Step == 0)
                {
                    if (received > 4)
                    {
                        if (recd[0] == 'G' &&
                            recd[1] == 'E' &&
                            recd[2] == 'T' &&
                            recd[3] == ' ')
                        {
                            // TODO: Try for 'GET '
                            SysConsole.Output(OutputType.INFO, "Connection (" + InternalSocket.RemoteEndPoint.ToString()
                                              + ") discarded: invalid header (GET).");
                            InternalSocket.Close();
                            TickMe = false;
                        }
                        else if (recd[0] == 'P' &&
                                 recd[1] == 'O' &&
                                 recd[2] == 'S' &&
                                 recd[3] == 'T' &&
                                 recd[4] == ' ')
                        {
                            // TODO: Try for 'POST '
                            SysConsole.Output(OutputType.INFO, "Connection (" + InternalSocket.RemoteEndPoint.ToString()
                                              + ") discarded: invalid header (POST).");
                            InternalSocket.Close();
                            TickMe = false;
                        }
                        else if (recd[0] == 'H' &&
                                 recd[1] == 'E' &&
                                 recd[2] == 'A' &&
                                 recd[3] == 'D' &&
                                 recd[4] == ' ')
                        {
                            // TODO: Try for 'HEAD '
                            SysConsole.Output(OutputType.INFO, "Connection (" + InternalSocket.RemoteEndPoint.ToString()
                                              + ") discarded: invalid header (HEAD).");
                            InternalSocket.Close();
                            TickMe = false;
                        }
                        else if (recd[0] == 'V' &&
                                 recd[1] == 'O' &&
                                 recd[2] == 'X' &&
                                 recd[3] == '_' &&
                                 recd[4] == ' ')
                        {
                            // Try for 'VOX_ '
                            int pos = -1;
                            for (int i = 0; i < received; i++)
                            {
                                if (recd[i] == '\n')
                                {
                                    pos = i;
                                }
                            }
                            if (pos > 0)
                            {
                                string   datastr = Utilities.encoding.GetString(recd, 0, pos);
                                string[] split   = datastr.Split('\r');
                                if (split.Length == 5)
                                {
                                    // VOX_ \rUsername\rEntrykey\rHost\rPort\n
                                    string username = split[1];
                                    string entrykey = split[2];
                                    string host     = split[3];
                                    string port     = split[4];
                                    byte[] temp     = new byte[Max];
                                    Array.Copy(recd, pos + 1, temp, 0, Max - (pos + 1));
                                    received -= pos + 1;
                                    recd      = temp;
                                    Step      = 1;
                                    if (!Utilities.ValidateUsername(username))
                                    {
                                        SysConsole.Output(OutputType.INFO, "Connection (" + InternalSocket.RemoteEndPoint.ToString()
                                                          + ") discarded: entirely invalid username (" + username + ") [probably an edited client].");
                                        InternalSocket.Close();
                                        TickMe = false;
                                    }
                                    else
                                    {
                                        player                   = new Player(this);
                                        player.Username          = username;
                                        player.ConnectedHost     = host;
                                        player.ConnectedPort     = port;
                                        player.ConnectionKey     = entrykey;
                                        player.JoinTime          = ServerMain.GlobalTickTime;
                                        player.LastPing          = ServerMain.GlobalTickTime;
                                        player.LastSecondaryPing = ServerMain.GlobalTickTime;
                                        InternalSocket.Send(FileHandler.encoding.GetBytes("ACCEPT\n"));
                                        // ServerMain.SpawnPlayer(player);
                                        ServerMain.WaitingPlayers.Add(player);
                                        SysConsole.Output(OutputType.INFO, "Connection (" + InternalSocket.RemoteEndPoint.ToString()
                                                          + ") accepted: Username="******", connected to " + host + ":" + port);
                                        IsChunkNetwork = false;
                                    }
                                }
                                else if (split.Length == 2)
                                {
                                    // VOX_ \rEntrykey\n
                                    string key  = split[1];
                                    byte[] temp = new byte[Max];
                                    Array.Copy(recd, pos + 1, temp, 0, Max - (pos + 1));
                                    received -= pos + 1;
                                    recd      = temp;
                                    Step      = 1;
                                    player    = null;
                                    for (int i = 0; i < ServerMain.WaitingPlayers.Count; i++)
                                    {
                                        if (ServerMain.WaitingPlayers[i].ConnectionKey == key)
                                        {
                                            player = ServerMain.WaitingPlayers[i];
                                            break;
                                        }
                                    }
                                    if (player == null)
                                    {
                                        SysConsole.Output(OutputType.INFO, "Connection (" + InternalSocket.RemoteEndPoint.ToString()
                                                          + ") discarded: invalid header (VOX_ secondary with unknown key).");
                                        InternalSocket.Close();
                                        TickMe = false;
                                    }
                                    else
                                    {
                                        InternalSocket.Send(FileHandler.encoding.GetBytes("ACCEPT\n"));
                                        ServerMain.WaitingPlayers.Remove(player);
                                        player.ChunkNetwork = this;
                                        ServerMain.SpawnPlayer(player);
                                        IsChunkNetwork = true;
                                        SysConsole.Output(OutputType.INFO, "Connection (" + InternalSocket.RemoteEndPoint.ToString()
                                                          + ") accepted: Username="******", now joining!");
                                    }
                                }
                                else
                                {
                                    SysConsole.Output(OutputType.INFO, "Connection (" + InternalSocket.RemoteEndPoint.ToString()
                                                      + ") discarded: invalid header (VOX_ with invalid parameters).");
                                    InternalSocket.Close();
                                    TickMe = false;
                                }
                            }
                        }
                        else
                        {
                            SysConsole.Output(OutputType.INFO, "Connection (" + InternalSocket.RemoteEndPoint.ToString()
                                              + ") discarded: invalid header (unknown).");
                            InternalSocket.Close();
                            TickMe = false;
                        }
                    }
                }
                else if (Step == 1)
                {
                    if (received > 4)
                    {
                        while (true)
                        {
                            int  len  = BitConverter.ToInt32(recd, 0);
                            byte type = recd[4];
                            if (received - 5 >= len)
                            {
                                byte[] data = new byte[len];
                                if (len > 0)
                                {
                                    Array.Copy(recd, 5, data, 0, len);
                                }
                                received -= 5 + len;
                                byte[] newdata = new byte[Max];
                                if (received > 0)
                                {
                                    Array.Copy(recd, 5 + len, newdata, 0, received);
                                }
                                recd = newdata;
                                AbstractPacketIn packet;
                                switch (type)
                                {
                                case 1:
                                    packet = new PingPacketIn(player, IsChunkNetwork);
                                    break;

                                case 2:
                                    packet = new MoveKeysPacketIn(player, IsChunkNetwork);
                                    break;

                                case 3:
                                    packet = new CommandPacketIn(player, IsChunkNetwork);
                                    break;

                                case 4:
                                    packet = new SelectionPacketIn(player, IsChunkNetwork);
                                    break;

                                case 255:
                                    packet = new DisconnectPacketIn(player, IsChunkNetwork);
                                    return;

                                default:
                                    player.Kick("Invalid packet " + (int)type);
                                    return;
                                }
                                try
                                {
                                    if (packet.ReadBytes(data))
                                    {
                                        if (packet is PingPacketIn)
                                        {
                                            packet.Apply();
                                        }
                                        else
                                        {
                                            lock (player.Packets)
                                            {
                                                player.Packets.Add(packet);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        player.Kick("Impure packet " + (int)type);
                                    }
                                }
                                catch (Exception ex)
                                {
                                    SysConsole.Output(OutputType.ERROR, "Networking / player / receive packet: " + ex.ToString());
                                    player.Kick("Invalid packet " + (int)type);
                                }
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                }
            }
        }
コード例 #27
0
ファイル: main.cs プロジェクト: raxptor/oldcube
    public static void Main(string[] args)
    {
        ServerMain sm = new ServerMain();

        sm.Run(args);
    }
コード例 #28
0
 public HandlerRoleCreate(HandlerType type, ServerMain agent) : base(type, agent)
 {
 }
コード例 #29
0
 public static ICoreServerAPI AsApi(this ServerMain game)
 {
     return((ICoreServerAPI)game.Api);
 }
コード例 #30
0
 public void StartServer()
 {
     _serverProcess = new ServerMain();
 }