public void CreateDummyConnection() { // check if handler is empty, if so create an instance of it if (_handler == null) { Player player = new Player() { name = "", orderNumber = 1, ready = true, type = PlayerType.Host }; // create an instance of the servicebus handler _handler = new ServiceBusHandler(player, true); // initialise SessionCodeGenerator SessionCodeGenerator generator = new SessionCodeGenerator(); // Generade sessionCode string sessionCode = generator.GenerateSessionCode(); StaticResources.sessionCode = sessionCode; //_handler.program.CreateQueueConnection(PlayerType.Host); //_handler.program.QueueListner.MessageReceived += OnMessageReceived; } _handler.program.topic.MessageReceived += OnMessageReceived; }
private void Start_Host(object sender, RoutedEventArgs e) { // check if handler is empty, if so create an instance of it if (_handler == null) { // initialise SessionCodeGenerator SessionCodeGenerator generator = new SessionCodeGenerator(); // Generade sessionCode string sessionCode = generator.GenerateSessionCode(); StaticResources.sessionCode = sessionCode; // Set player data Player player = new Player(); player.name = tbName.Text; player.type = PlayerType.Host; player.orderNumber = 1; // create an instance of the servicebus handler _handler = new ServiceBusHandler(player, true); _handler.program.CreateQueueListner(PlayerType.Host); _handler.program.QueueListner.MessageReceived += OnQueueMessageReceived; _handler.program.topic.MessageReceived += OnTopicMessageReceived; } lblSession.Content = StaticResources.sessionCode; lv.ItemsSource = StaticResources.PlayerList; }
public async void OnGet() { TimerHandler.SetTimer(); TimerHandler.StartTimer(); if (StaticResources.PlayerList.Count() == 0) { dummy.SetDummyData(); } StaticResources.field.fieldNumber = StaticResources.user.orderNumber; if (ServiceBusHandler.program == null) { Player player = dummy.GetDummyPlayer(); //field-id doorgeven playerId = player; // initialise SessionCodeGenerator SessionCodeGenerator generator = new SessionCodeGenerator(); // Generade sessionCode StaticResources.sessionCode = generator.GenerateSessionCode(); await ServiceBusHandler.InitiateServiceBusHandler(player, true); } ServiceBusHandler.program.topic.MessageReceived += OnTopicMessageReceived; players = StaticResources.PlayerList; StaticResources.log.MyTurn = StaticResources.user.orderNumber == 1 ? true : false; }
/*long Millisecs(){ * return (long)(DateTime.Now - new DateTime(1970, 1, 1)).TotalMilliseconds; * }*/ private void cmdUser() { var time = DateTime.Now; var dt = time - sessionTime; // если ещё нет сессии или она устарела (> 10 мин) if (sessionId.IsNullOrWhiteSpace() || dt.TotalMinutes > 10f) { sessionId = SessionCodeGenerator.RandomAbc(16); sessionTime = time; WriteSessionPrefs(false); Log.Galaxy("galaxy. generate new session id"); } // USER <user_id> <user_password> <user_nick> <session_code> [<auth_code>] const string commandFormat = "USER {0} {1} {2} {3} {4}"; var loginCommand = string.Format(commandFormat, userId, userPass, userName, authCode, sessionId); SendToServer(loginCommand); }
public IActionResult CreateHost([FromBody] PlayerForUpdateDto player) { try { if (player == null) { _logger.LogError("Player object sent from client is null."); return(BadRequest("Player object is null")); } if (!ModelState.IsValid) { _logger.LogError("Invalid Player object sent from client."); return(BadRequest("Invalid model object")); } SessionCodeGenerator generator = new SessionCodeGenerator(); TopicCreator creator = new TopicCreator(); // create new session // start create new session code string session_code = ""; bool inUse = true; while (inUse) { session_code = generator.GenerateSessionCode(); inUse = _repository.SessionData.ValidateIfActive(session_code); } // end create new session code // start create new session SessionData sessionData = new SessionData(); sessionData.session_code = session_code; _repository.SessionData.CreateSession(sessionData); // end create new session // start create new topic TopicData data = creator.CreateNewTopic(session_code); data.sessionCode = session_code; _repository.TopicData.CreateTopic(data); _repository.Save(); // end create new topic // start create new player Player PlayerEntity = _mapper.Map <Player>(player); PlayerEntity.orderNumber = 1; PlayerEntity.session_id = sessionData.id; _repository.Player.CreatePlayer(PlayerEntity); _repository.Save(); // end create new player var session = _repository.SessionData.GetBySessionCodeWithDetails(session_code); SessionDataDto result = _mapper.Map <SessionDataDto>(session); return(Ok(result)); //return CreatedAtRoute("CategoryById", new { id = createdEntity.id }, createdEntity); } catch (Exception ex) { _logger.LogError($"Something went wrong inside CreateArtist action: {ex.Message}"); return(StatusCode(500, "Internal server error")); } }
void OnMessageReceivedInternal(string message) { message = message.Trim(); if (message == "") { return; } //log("<< '" + message + "'"); Log.Galaxy("<< " + message); GalaCommand c = new GalaCommand(message.Trim()); /*print("prefix: "+c.Prefix); * print("name: "+c.Name); * print("params: "+c.Parameters); * print("postfix: "+c.Postfix);*/ switch (c.Name) { case "HAAAPSI": // приветствие var code = c.Parameters[0]; authCode = SessionCodeGenerator.Generate(code); cmdIdent(); ReadPrefs(); if (!userPass.IsNullOrWhiteSpace()) { cmdUser(); } else { cmdRecover(); } break; case "REGISTER": // добро на вход userId = c.Parameters[0].Trim().ToInt(); userPass = c.Parameters[1].Trim(); userName = c.Parameters[2].Trim(); cmdUser(); planet.myUserId = userId; WriteUserPrefs(); break; case "999": // auth OK cmdAddons(); //PlayerPrefs.GetString("planetName", null); string s = null; //"pi100let"; var custom = ChatSettings.Me.CustomPlanetName; if (!custom.IsNullOrWhiteSpace()) { s = custom; } cmdJoin(s); break; case "PING": cmdPong(); break; case "353": // список юзеров. может быть несколько таких команд if (isWait353) { planet.Reset(); isWait353 = false; } planet.JoinUsers(c.Postfix); planet.SetName(c.Parameters[2]); break; case "366": isWait353 = true; OnEnterChannel(); break; case "860": // авторитет юзера / 860 8530196 161 1;aura/0_1;0;0;33 planet.ParseAuthority(c.Parameters); break; case "JOIN": // вход перса planet.JoinUser(c.Parameters); break; case "PART": // выход перса planet.PartUser(c.Parameters); break; case "451": // ошибки // входили с другого устройства, нужно войти по рековери cmdRecover(); break; case "452": case "432": case "433": case "601": case "403": MessageBox.Show("System Notice", c.Postfix); Disconnect(); break; case "471": // планета переполнена var msg = c.Postfix; if (!joinPlanetName.IsNullOrWhiteSpace()) { msg += " (" + joinPlanetName + ")"; // на спец. кнопку вешаем собитие повторного джоина Action onClick = () => { cmdJoin(joinPlanetName); MessageBox.Dismiss(); }; MessageBox.EnableSpecialButton("Try Again", onClick); } MessageBox.Show("System Notice", msg); //Disconnect(); break; case "473": MessageBox.Show("Fly", "Can't fly to closed planet!"); //Disconnect(); break; case "900": // инфа о планете planet.SetName(c.Parameters[0]); break; case "PRIVMSG": // инфа о планете AddMessage(c.Parameters[0].ToInt(), c.Postfix); break; case "332": // топик AddMessage(-1, "Subject: " + c.Postfix); break; case "ACTION": ParseAction(c); break; case "KICK": ParseKick(c); break; case "852": if (isWait852) { Reset852(); isWait852 = false; } Parse852(c); break; case "853": isWait852 = true; Prepare852(); break; default: break; } }