internal static string GetDecryptedString(string EncryptedText) { string DecryptionPassword = ServerMain.getInstance().EncryptionPassword; string DecryptedText = new EncryptedKeyProvider().GetDecryptedString(EncryptedText, DecryptionPassword); return(DecryptedText); }
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); }
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()); }
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(); } }
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.."); } } }
private void Awake() { Server = new ServerMain(); GameObject canvas = GameObject.Find("Canvas"); serverStartBtn = canvas.transform.Find("ServerStart").GetComponent <Button>(); serverStartBtn.onClick.AddListener(onClick); }
public static void Main(string[] args) { Console.WriteLine("Starting game server :)"); gameServer = new ServerMain(); gameServer.Start(HostIP); CreateHostBuilder(args).Build().Run(); }
/// <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); }
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); }
internal SecurityController() { try { this.securityTokenSeed = ServerMain.getInstance().SecurityTokenSeed; } catch (Exception) { this.securityTokenSeed = "12344321"; } }
public void StartServer() { if (localServer == null) { localServer = new ServerMain(); localServerThread = new Thread(new ThreadStart(StartServerWithTryCatch)); localServerThread.Start(); Debug.Log("[LocalServer] Started Server."); } }
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("アカウントが見つかりませんでした")); }
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$#@!"; } }
public void StopServer() { if (localServerThread != null) { localServerThread.Abort(); localServerThread = null; } if (localServer != null) { localServer.Stop(); localServer = null; } }
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("該当する付箋が見つかりませんでした")); }
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); }
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()); }
/// <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 }
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("該当する付箋が見つかりません")); }
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; } } } } } }
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()); }
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 }
public HandlerRoleCastSkill(HandlerType type, ServerMain agent) : base(type, agent) { }
public HandlerSyncPos(HandlerType type, ServerMain agent) : base(type, agent) { }
internal void BackupNow(string URL, string BackupPath) { ServerMain.getInstance().DBBackup(URL, BackupPath); }
/// <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; } } } } } }
public static void Main(string[] args) { ServerMain sm = new ServerMain(); sm.Run(args); }
public HandlerRoleCreate(HandlerType type, ServerMain agent) : base(type, agent) { }
public static ICoreServerAPI AsApi(this ServerMain game) { return((ICoreServerAPI)game.Api); }
public void StartServer() { _serverProcess = new ServerMain(); }