public override bool OnKeyDown(Keys key) { if (DisableKeyboard) { return(false); } else if (key == Keys.Enter) { if (ClientProtocol.Join(PlayerName)) { // Disables keyboard DisableKeyboard = !DisableKeyboard; // Adds player name to domain EntityUtility.CreateMessage(Domain, PlayerName, 0, 0, 16); // Enablers state change after delay Task.Factory.StartNew(async() => { await Task.Delay(2000); ChangeState = true; }); // Display a message to the client var input = InputBox.GetComponent <Input>(); input.Message = "Joined server succesful"; } else { PlayerName = string.Empty; var input = InputBox.GetComponent <Input>(); input.Message = "Invalid username"; } return(true); } else if (key == Keys.Back) { if (PlayerName.Length > 0) { PlayerName = PlayerName.Remove(PlayerName.Length - 1); var input = InputBox.GetComponent <Input>(); input.Message = PlayerName; } return(true); } else if (key == Keys.Space) { PlayerName += " "; var input = InputBox.GetComponent <Input>(); input.Message = PlayerName; return(true); } else { string keyData = key.ToString(); if (KeyboardInputValidator.isValid(keyData) && PlayerName.Length < 20) { PlayerName = (KeyboardInputValidator.dict.ContainsKey(keyData) ? PlayerName += KeyboardInputValidator.dict[keyData] : PlayerName += keyData); var input = InputBox.GetComponent <Input>(); input.Message = PlayerName; return(true); } return(false); } }