public BwoinkPanel(BwoinkSystem bwoinkSys, NetUserId userId) { RobustXamlLoader.Load(this); _bwoinkSystem = bwoinkSys; ChannelId = userId; OnVisibilityChanged += c => { if (c.Visible) { Unread = 0; } }; SenderLineEdit.OnTextEntered += Input_OnTextEntered; }
public BwoinkWindow(BwoinkSystem bs) { RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); _bwoinkSystem = bs; _adminManager.AdminStatusUpdated += FixButtons; FixButtons(); ChannelSelector.OnSelectionChanged += sel => { _currentPlayer = sel; if (sel is not null) { SwitchToChannel(sel.SessionId); Title = $"{sel.CharacterName} / {sel.Username}"; } foreach (var li in ChannelSelector.PlayerItemList) { li.Text = FormatTabTitle(li); } }; ChannelSelector.DecoratePlayer += (PlayerInfo pl, ItemList.Item li) => { li.Text = FormatTabTitle(li, pl); }; ChannelSelector.Comparison = (a, b) => { var aChannelExists = _bwoinkSystem.TryGetChannel(a.SessionId, out var ach); var bChannelExists = _bwoinkSystem.TryGetChannel(b.SessionId, out var bch); if (!aChannelExists && !bChannelExists) { return(0); } if (!aChannelExists) { return(1); } if (!bChannelExists) { return(-1); } return(bch !.LastMessage.CompareTo(ach !.LastMessage)); }; // ew Ban.OnPressed += _ => { var bw = new BanWindow(); bw.OnPlayerSelectionChanged(_currentPlayer); bw.Open(); }; Kick.OnPressed += _ => { if (!TryConfirm(Kick)) { return; } // TODO: Reason field if (_currentPlayer is not null) { _console.ExecuteCommand($"kick \"{_currentPlayer.Username}\""); } }; Teleport.OnPressed += _ => { if (_currentPlayer is not null) { _console.ExecuteCommand($"tpto \"{_currentPlayer.Username}\""); } }; Respawn.OnPressed += _ => { if (!TryConfirm(Respawn)) { return; } if (_currentPlayer is not null) { _console.ExecuteCommand($"respawn \"{_currentPlayer.Username}\""); } }; }