private void HandleUpdateServerInfo(UpdateServerInfo payload, PayloadWriter writer) { if (_server == null) { StatusMsg resultPayload1 = Payloads.CreatePayload <StatusMsg>(); resultPayload1.Errorcode = 3; resultPayload1.Errormsg = "No server"; resultPayload1.TicketId = payload.TicketId; SendReply(writer, resultPayload1); return; } _server.Name = payload.Name; _server.Description = payload.Description; _server.MaxPlayers = payload.MaxPlayers; _server.RoomId = payload.RoomId; _server.Level = payload.Level; _server.GameMode = payload.GameMode; _server.Hardcore = payload.Hardcore; _server.Running = payload.Running; _server.LockedConfig = payload.LockedConfig; _server.Data = payload.Data; SendServerUpdates(); StatusMsg resultPayload2 = Payloads.CreatePayload <StatusMsg>(); resultPayload2.Errorcode = 0; resultPayload2.Errormsg = null; resultPayload2.TicketId = payload.TicketId; SendReply(writer, resultPayload2); }
private void HandleGetServers(GetServers payload, PayloadWriter writer) { if (!ServerUpdateReceivers.TryAdd(Connection, Account.Id)) { StatusMsg resultPayload1 = Payloads.CreatePayload <StatusMsg>(); resultPayload1.Errorcode = 3; resultPayload1.Errormsg = "Can not get server list"; resultPayload1.TicketId = payload.TicketId; SendReply(writer, resultPayload1); return; } List <Server> servers = Program.Servers.GetServers(); uint ticketId = payload.TicketId; foreach (Server server in servers) { ServerInfo resultPayload1 = CreateServerInfoPayload(server, ticketId); SendReply(writer, resultPayload1); } StatusMsg resultPayload2 = Payloads.CreatePayload <StatusMsg>(); resultPayload2.Errorcode = 0; resultPayload2.Errormsg = null; resultPayload2.TicketId = payload.TicketId; SendReply(writer, resultPayload2); }
private void HandleGetCdKeys(GetCDKeys payload, PayloadWriter writer) { uint accountId = payload.UserId; if (accountId != Account.Id) { StatusMsg resultPayload1 = Payloads.CreatePayload <StatusMsg>(); resultPayload1.Errorcode = 1; resultPayload1.Errormsg = "Incorrect account"; resultPayload1.TicketId = payload.TicketId; SendReply(writer, resultPayload1); return; } SendCDKey resultPayload2 = Payloads.CreatePayload <SendCDKey>(); resultPayload2.UserId = accountId; resultPayload2.CdKey = "0000000000000000"; resultPayload2.Keypool = 1; resultPayload2.TicketId = payload.TicketId; SendReply(writer, resultPayload2); StatusMsg resultPayload3 = Payloads.CreatePayload <StatusMsg>(); resultPayload3.Errorcode = 0; resultPayload3.Errormsg = null; resultPayload3.TicketId = payload.TicketId; SendReply(writer, resultPayload3); }
internal async Task Reset() { Battle = new ColossoBattle(); if (autoTurn != null) { autoTurn.Dispose(); } if (resetIfNotActive != null) { resetIfNotActive.Dispose(); } foreach (var k in Messages.Keys) { await k.DeleteAsync(); } Messages.Clear(); if (EnemyMsg != null) { _ = EnemyMsg.ModifyAsync(c => { c.Content = $"Welcome to {Name} Battle!\n\nReact with <:Fight:536919792813211648> to join the {Name} Battle and press <:Battle:536954571256365096> when you are ready to battle!"; c.Embed = null; }); await EnemyMsg.RemoveAllReactionsAsync(); _ = EnemyMsg.AddReactionsAsync(new IEmote[] { Emote.Parse("<:Fight:536919792813211648>"), Emote.Parse("<:Battle:536954571256365096>") }); } if (StatusMsg != null) { _ = StatusMsg.DeleteAsync(); StatusMsg = null; } winsInARow = 0; LureCaps = 0; SetRandomEnemies(ColossoBattle.Team.B); autoTurn = new Timer() { Interval = 25000, AutoReset = false, Enabled = false }; autoTurn.Elapsed += OnTimerTicked; resetIfNotActive = new Timer() { Interval = 120000, AutoReset = false, Enabled = false }; resetIfNotActive.Elapsed += BattleWasNotStartetInTime; Console.WriteLine("Battle was reset."); }
private void HandlePayload157(Payload157 payload, PayloadWriter writer) { StatusMsg resultPayload = Payloads.CreatePayload <StatusMsg>(); resultPayload.Errorcode = 0; resultPayload.Errormsg = null; resultPayload.TicketId = payload.TicketId; SendReply(writer, resultPayload); }
private async Task WriteGameOver() { await Task.Delay(2000); var winners = Battle.GetTeam(Battle.GetWinner()); var text = $"{winners.FirstOrDefault().name}'s Party wins! Battle will reset shortly"; await StatusMsg.ModifyAsync(m => { m.Content = text; m.Embed = null; }); await Task.Delay(2000); await Reset(); }
internal async Task GameOver() { var winners = Battle.GetTeam(Battle.GetWinner()); if (Battle.SizeTeamB == 0) { Console.WriteLine("Game Over with no enemies existing."); } if (winners.First() is PlayerFighter) { winsInARow++; var wasMimic = Battle.TeamB.Any(e => e.name.Contains("Mimic")); winners.ConvertAll(s => (PlayerFighter)s).ForEach(async p => await ServerGames.UserWonBattle(p.avatar, winsInARow, LureCaps, p.battleStats, Diff, TextChannel, winners, wasMimic)); if (!IsEndless) { _ = WriteGameOver(); } else { Battle.TeamA.ForEach(p => { p.PPrecovery += (winsInARow <= 8 * 4 && winsInARow % 4 == 0) ? 1 : 0; p.RemoveNearlyAllConditions(); p.Buffs = new List <Buff>(); p.Heal((uint)(p.stats.HP * 5 / 100)); }); var text = $"{winners.First().name}'s Party wins Battle {winsInARow}! Battle will reset shortly"; await Task.Delay(2000); await StatusMsg.ModifyAsync(m => { m.Content = text; m.Embed = null; }); await Task.Delay(2000); Diff = (BattleDifficulty)Math.Min(4, 1 + winsInARow / stageLength); SetRandomEnemies(ColossoBattle.Team.B); Battle.turn = 0; _ = StartBattle(); } } else { if (IsEndless) { Diff = BattleDifficulty.Easy; } var losers = winners.First().battle.GetTeam(winners.First().enemies); losers.ConvertAll(s => (PlayerFighter)s).ForEach(async p => await ServerGames.UserLostBattle(p.avatar, Diff, TextChannel)); _ = WriteGameOver(); } }
private void HandleStopServerUpdates(StopServerUpdates payload, PayloadWriter writer) { uint accountId; ServerUpdateReceivers.TryRemove(Connection, out accountId); StatusMsg resultPayload = Payloads.CreatePayload <StatusMsg>(); resultPayload.Errorcode = 0; resultPayload.Errormsg = null; resultPayload.TicketId = payload.TicketId; SendReply(writer, resultPayload); }
private void ModemConfiguration_Load(object sender, EventArgs e) { try { ConnectionStatusDelegate = new StatusMsg(StatusUpdate); BindComPorts(); BindBaudRate(); BindDataBits(); BindParity(); BindStopBits(); DefaultSettings(); if (Constants.ConnectionStatus == Constants.Connectivity.Connected.ToString()) { statusMessage = "Connected to " + cboPortNo.SelectedItem.ToString(); // lblStatus.Text = "Connected to " + cboPortNo.SelectedItem.ToString(); lblColor = Color.Green; InvokeCheckConnection(); btnDisConnect.Enabled = true; btnConnect.Enabled = false; Constants.IsModemConnected = true; } else if (Constants.ConnectionStatus == Constants.Connectivity.Disconnected.ToString()) { statusMessage = "Not Connected"; lblColor = Color.Red; InvokeCheckConnection(); Constants.IsModemConnected = false; btnDisConnect.Enabled = false; btnConnect.Enabled = true; } else { statusMessage = "Not Connected"; lblColor = Color.Red; InvokeCheckConnection(); Constants.IsModemConnected = false; btnDisConnect.Enabled = false; btnConnect.Enabled = true; } } catch (Exception ex) { Logger.Logger.WriteLog(ex); } }
void Main(string argument) { if (dBlocks == null) { dBlocks = new DamagedBlocks(this, (IMyCockpit)GridTerminalSystem.GetBlockWithName(referenceBlockName)); } if (status == null) { status = new StatusMsg(this); } if (argument == "reset") { status.ClearMessages(); dBlocks.Reset(); status.DisplayAll(); } else if (argument.Contains("welders")) { int index = argument.IndexOf('s'); string number = argument.Substring(index + 1, argument.Length - index - 1); if (!int.TryParse(number, out weldersToActivate)) { status.WriteStatusHeader_Echo("Incorrect number of welders." + "\n" + "Format to modify number of welders:" + "\n" + "weldersN -> where N is any number WITHOUT decimal."); } else { status.ClearMessages(); status.WriteStatusHeader_Echo("Number of welders to activate changed to " + weldersToActivate.ToString()); dBlocks.UpdateNumberOfWelders(); dBlocks.Reset(); status.DisplayAll(); } } else { dBlocks.AddNewDamagedBlocks(); dBlocks.RemoveRepairedBlocks(); status.DisplayAll(); } }
private void HandleConnectToServer(ConnectToServer payload, PayloadWriter writer) { uint serverId = payload.ServerId; Server server = Program.Servers.Get(serverId); if (server == null) { StatusMsg resultPayload = Payloads.CreatePayload <StatusMsg>(); resultPayload.Errorcode = 1; resultPayload.Errormsg = "Unknown server"; resultPayload.TicketId = payload.TicketId; SendReply(writer, resultPayload); return; } byte[] nonce = Crypto.CreateNonce(); PlayerConnecting resultPayload2 = Payloads.CreatePayload <PlayerConnecting>(); resultPayload2.Nonce = nonce; resultPayload2.CharId = Account.Id; resultPayload2.Name = Account.PlayerName; resultPayload2.OwnerId = Account.Id; resultPayload2.OwnerName = Account.UserName; resultPayload2.GuildId = 0; resultPayload2.GuildName = null; resultPayload2.GuildRole = 0; resultPayload2.Data = _nicknameData; SendToLobbyConnection(server.ConnectionId, resultPayload2); ConnectToServerReply resultPayload3 = Payloads.CreatePayload <ConnectToServerReply>(); resultPayload3.PermId = Account.Id; resultPayload3.ServerId = serverId; resultPayload3.Ip = server.Ip; resultPayload3.Port = server.Port; resultPayload3.Nonce = nonce; resultPayload3.Errorcode = 0; resultPayload3.Errormsg = null; resultPayload3.TicketId = payload.TicketId; SendReply(writer, resultPayload3); }
/// <summary> /// it will load when control first time loading /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ucConnectToPort_Load(object sender, EventArgs e) { try { ConnectionStatusDelegate = new StatusMsg(StatusUpdate); ConnectButtonDelegate = new EnableControls(DisplayOfConnectButton); DisconnectButtonDelegate = new EnableControls(DisplayOfDisconnectButton); currentUCDelegate = new EnableControls(DisplayOfCurrentUC); BindPortControlDelegate = new BindPortControl(BindComPorts); MsgBoxDelegate = new MsgBoxDisplay(ShowMsgBox); BindBaudRate(); DefaultConnectedStatus(); } catch (Exception ex) { Logger.WriteLog(ex); } }
internal async Task showHelper(StatusMsg messageToShow, RoutedEventHandler btnHandler = null) { t.Interval = 30000; t.AutoReset = true; t.Elapsed += T_Elapsed; t.Start(); BoardHeader.Text = messageToShow.MsgHeader; BoardContent.Text = messageToShow.MsgContent; if (messageToShow.ShowBtn) //show button only if needed { BoardBtn.Visibility = Visibility.Visible; BoardBtn.Content = messageToShow.BtnContent; BoardBtn.Click += btnHandler; } if (messageToShow.MessageType == eStatusMsgType.PROCESS)//show animation { ProcessAnimationControl(true); } Show(); }
private void HandleGetUserInfo(GetUserInfo payload, PayloadWriter writer) { uint accountId = payload.UserId; if (accountId != Account.Id) { StatusMsg resultPayload1 = Payloads.CreatePayload <StatusMsg>(); resultPayload1.Errorcode = 1; resultPayload1.Errormsg = "Incorrect account"; resultPayload1.TicketId = payload.TicketId; SendReply(writer, resultPayload1); return; } SendUserInfo resultPayload2 = Payloads.CreatePayload <SendUserInfo>(); resultPayload2.UserId = accountId; resultPayload2.Name = Account.UserName; resultPayload2.Password = null; resultPayload2.Mail = Account.Email; resultPayload2.Banned = false; resultPayload2.Active = true; resultPayload2.Status = 2; resultPayload2.Data = Account.UserData; resultPayload2.Created = "2012-04-02 00:00:00+0:00"; resultPayload2.LastLogin = "******"; resultPayload2.TotalLogins = 1; resultPayload2.TicketId = payload.TicketId; SendReply(writer, resultPayload2); StatusMsg resultPayload3 = Payloads.CreatePayload <StatusMsg>(); resultPayload3.Errorcode = 0; resultPayload3.Errormsg = null; resultPayload3.TicketId = payload.TicketId; SendReply(writer, resultPayload3); }
private void HandleSelectNickname(SelectNickname payload, PayloadWriter writer) { uint playerId = payload.CharId; if (playerId != Account.Id) { StatusMsg resultPayload1 = Payloads.CreatePayload <StatusMsg>(); resultPayload1.Errorcode = 1; resultPayload1.Errormsg = "Incorrect account"; resultPayload1.TicketId = payload.TicketId; SendReply(writer, resultPayload1); return; } SelectNicknameReply resultPayload2 = Payloads.CreatePayload <SelectNicknameReply>(); resultPayload2.CharId = Account.Id; resultPayload2.Name = Account.PlayerName; resultPayload2.OwnerId = Account.Id; resultPayload2.OwnerName = Account.UserName; resultPayload2.GuildId = 0; resultPayload2.GuildName = null; resultPayload2.GuildRole = 0; resultPayload2.Status = 1; resultPayload2.ServerId = 0; resultPayload2.ServerName = null; resultPayload2.Data = _nicknameData; resultPayload2.TicketId = payload.TicketId; SendReply(writer, resultPayload2); StatusMsg resultPayload3 = Payloads.CreatePayload <StatusMsg>(); resultPayload3.Errorcode = 0; resultPayload3.Errormsg = null; resultPayload3.TicketId = payload.TicketId; SendReply(writer, resultPayload3); }
private async Task WriteStatus() { if (Battle.log.Count > 0 && Battle.turn > 0) { if (StatusMsg == null) { StatusMsg = await BattleChannel.SendMessageAsync(Battle.log.Aggregate("", (s, l) => s += l + "\n")); } else { await StatusMsg.ModifyAsync(c => c.Content = Battle.log.Aggregate("", (s, l) => s += l + "\n")); } } else { if (StatusMsg == null) { string msg = Messages.Values .Where(p => p is PlayerFighter) .Aggregate("", (s, v) => s += $"<@{((PlayerFighter)v).avatar.ID}>, "); StatusMsg = await BattleChannel.SendMessageAsync($"{msg}get in position!"); } } }
private void HandleConfirmNickname(ConfirmNickname payload, PayloadWriter writer) { uint accountId = payload.UserId; if (accountId != Account.Id) { StatusMsg resultPayload1 = Payloads.CreatePayload <StatusMsg>(); resultPayload1.Errorcode = 1; resultPayload1.Errormsg = "Incorrect account"; resultPayload1.TicketId = payload.TicketId; SendReply(writer, resultPayload1); return; } string mail = payload.Mail; if (mail != null) { Program.Accounts.SetEmail(Database.Connection, accountId, mail); Account.Email = mail; } byte[] nicknameData = payload.Data; if (nicknameData != null) { Program.Accounts.SetUserData(Database.Connection, accountId, nicknameData); Account.UserData = nicknameData; } StatusMsg resultPayload2 = Payloads.CreatePayload <StatusMsg>(); resultPayload2.Errorcode = 0; resultPayload2.Errormsg = null; resultPayload2.TicketId = payload.TicketId; SendReply(writer, resultPayload2); }
public void SendLoginMsg(string username, string password) { client.Send((short)MsgId.Login, new LoginMsg() { AccountName = username, AccountPassword = Sha256(password) }, (callbackStatus, reader) => { if (callbackStatus == CallbackStatus.Ok) { StatusMsg msg = reader.ReadMessage <StatusMsg>(); loginResponse = msg.Text; loginSucessful = true; //This will always be true for prototyping Debug.Log(msg.Text); } if (callbackStatus == CallbackStatus.Error) { Debug.LogError("Callback Error: Login error"); } if (callbackStatus == CallbackStatus.Timeout) { Debug.LogError("Callback Error: Login attempt timed out"); } }); }
public void DisplayMsg(String Msg) { // This function displays a message to the status window. StatusMsg.AppendText(Msg + "\r\n"); }
private void HandleRegisterUser(RegisterUser payload, PayloadWriter writer) { byte[] loginCipher = payload.Cipher; byte[] result = Crypto.HandleUser(loginCipher, _sharedSecret); Program.LogDebug($" User: {Serializer.DumpBytes(result)}"); MemoryStream stream = new MemoryStream(result); BinaryReader reader = new BinaryReader(stream); bool invalid = false; byte[] nameBytes = null; int nameLength = reader.ReadByte(); if (nameLength < 32) { nameBytes = reader.ReadBytes(nameLength); } else { invalid = true; } byte[] passwordBytes = null; if (!invalid) { int passwordLength = reader.ReadByte(); if (nameLength < 32) { passwordBytes = reader.ReadBytes(passwordLength); } else { invalid = true; } } byte[] cdKey = null; if (!invalid) { int keysLength = reader.ReadByte(); int keyPool = reader.ReadByte(); int keyLength = reader.ReadByte(); if (keysLength != 1 || keyPool != 1 || keyLength != 16) { invalid = true; } else { cdKey = reader.ReadBytes(keyLength); } } if (invalid) { StatusMsg resultPayload1 = Payloads.CreatePayload <StatusMsg>(); resultPayload1.Errorcode = 3; resultPayload1.Errormsg = "Encryption failure"; resultPayload1.TicketId = payload.TicketId; SendReply(writer, resultPayload1); return; } string name = Encoding.ASCII.GetString(nameBytes); byte[] password = Crypto.HashPassword(passwordBytes); uint id = Program.Accounts.Create(Database.Connection, name, password, cdKey); if (id == 0) { StatusMsg resultPayload1 = Payloads.CreatePayload <StatusMsg>(); resultPayload1.Errorcode = 1; resultPayload1.Errormsg = "Username already in use"; resultPayload1.TicketId = payload.TicketId; SendReply(writer, resultPayload1); return; } Account = Program.Accounts.Get(Database.Connection, name); if (Account == null) { StatusMsg resultPayload1 = Payloads.CreatePayload <StatusMsg>(); resultPayload1.Errorcode = 1; resultPayload1.Errormsg = "Account not created"; resultPayload1.TicketId = payload.TicketId; SendReply(writer, resultPayload1); return; } byte[] secret = Crypto.HandleSessionKey(Crypto.CreateSecretKey(), _sharedSecret); LoginReplyCipher resultPayload2 = Payloads.CreatePayload <LoginReplyCipher>(); resultPayload2.PermId = Account.Id; resultPayload2.Cipher = secret; resultPayload2.TicketId = payload.TicketId; SendReply(writer, resultPayload2); Program.Log($"Account created for {name}"); }
private void HandleLoginServer(LoginServer payload, PayloadWriter writer) { byte[] loginCipher = payload.Cipher; byte[] result = Crypto.HandleUser(loginCipher, _sharedSecret); Program.LogDebug($" User: {Serializer.DumpBytes(result)}"); MemoryStream stream = new MemoryStream(result); BinaryReader reader = new BinaryReader(stream); bool invalid = false; byte[] nameBytes = null; int nameLength = reader.ReadByte(); if (nameLength < 32) { nameBytes = reader.ReadBytes(nameLength); } else { invalid = true; } byte[] passwordBytes = null; if (!invalid) { int passwordLength = reader.ReadByte(); if (nameLength < 32) { passwordBytes = reader.ReadBytes(passwordLength); } else { invalid = true; } } if (invalid) { StatusMsg resultPayload1 = Payloads.CreatePayload <StatusMsg>(); resultPayload1.Errorcode = 3; resultPayload1.Errormsg = "Encryption failure"; resultPayload1.TicketId = payload.TicketId; SendReply(writer, resultPayload1); return; } string name = Encoding.ASCII.GetString(nameBytes); byte[] password = Crypto.HashPassword(passwordBytes); Account = Program.Accounts.Get(Database.Connection, name); if (Account == null) { StatusMsg resultPayload1 = Payloads.CreatePayload <StatusMsg>(); resultPayload1.Errorcode = 1; resultPayload1.Errormsg = "Account not found"; resultPayload1.TicketId = payload.TicketId; SendReply(writer, resultPayload1); return; } if (!Serializer.CompareArrays(password, Account.Password)) { StatusMsg resultPayload1 = Payloads.CreatePayload <StatusMsg>(); resultPayload1.Errorcode = 1; resultPayload1.Errormsg = "Wrong password"; resultPayload1.TicketId = payload.TicketId; SendReply(writer, resultPayload1); return; } byte[] secret = Crypto.HandleSessionKey(Crypto.CreateSecretKey(), _sharedSecret); LoginReplyCipher resultPayload = Payloads.CreatePayload <LoginReplyCipher>(); resultPayload.PermId = Account.Id; resultPayload.Cipher = secret; resultPayload.TicketId = payload.TicketId; SendReply(writer, resultPayload); Program.Log($"Server logged in for user {name}"); }