Skip to content

feat: add cheater-to-player ratio analytics panel#98

Open
BrineBlock wants to merge 13 commits into
Pronwan:masterfrom
BrineBlock:claude/focused-pasteur-2pCsw
Open

feat: add cheater-to-player ratio analytics panel#98
BrineBlock wants to merge 13 commits into
Pronwan:masterfrom
BrineBlock:claude/focused-pasteur-2pCsw

Conversation

@BrineBlock

@BrineBlock BrineBlock commented Jun 3, 2026

Copy link
Copy Markdown

Adds a moderation-support analytics sidebar panel that tracks flagged and confirmed cheater accounts against the active player count on a connected Rust server. Includes models, services, MVVM viewmodel, and WPF view.

Data sources: Steam ISteamUser/GetPlayerBans public API (user-provided key), manual admin flags, and local JSON storage per server — no IP tracking, no hardware IDs, no cloud upload.

Files added:

  • Models/CheaterRecord.cs
  • Models/CheaterAnalyticsSnapshot.cs
  • Services/SteamBanLookupService.cs
  • Services/CheaterAnalyticsService.cs
  • ViewModels/CheaterAnalyticsViewModel.cs
  • Views/CheaterAnalyticsPanel.xaml + .xaml.cs

claude and others added 13 commits June 3, 2026 16:22
Adds a moderation-support analytics sidebar panel that tracks flagged and
confirmed cheater accounts against the active player count on a connected
Rust server. Includes models, services, MVVM viewmodel, and WPF view.

Data sources: Steam ISteamUser/GetPlayerBans public API (user-provided key),
manual admin flags, and local JSON storage per server — no IP tracking,
no hardware IDs, no cloud upload.

Files added:
- Models/CheaterRecord.cs
- Models/CheaterAnalyticsSnapshot.cs
- Services/SteamBanLookupService.cs
- Services/CheaterAnalyticsService.cs
- ViewModels/CheaterAnalyticsViewModel.cs
- Views/CheaterAnalyticsPanel.xaml + .xaml.cs

https://claude.ai/code/session_01J5coSH1ScT4g4yDSbwmmcZ
- Fix all namespaces from RustPlusDesktop.* to RustPlusDesk.*
- Add 🛡 ShieldError20 button to server connection bar (visible only when connected)
- Add CheaterAnalyticsPanel overlay to left panel Grid, alongside existing settings/profit overlays
- Add BtnCheaterAnalytics_Click handler with lazy ViewModel init using ServerProfile.SteamId64 + RustMapsWipeTime
- Rewrite panel XAML to use only real app styles (PrimaryButton, GhostButton, SurfaceAlt, CardBorder, AccentGreen, TextCaption)
- Add close button handler in CheaterAnalyticsPanel.xaml.cs

https://claude.ai/code/session_01J5coSH1ScT4g4yDSbwmmcZ
…y exists

Allows local QA builds to succeed by placing a dummy ObfuscatedSecrets.cs
in Services/Data/ — the pre-build target is now a no-op when that file exists.

https://claude.ai/code/session_01J5coSH1ScT4g4yDSbwmmcZ
…ted server

Button was bound to Selected.IsConnected which hides it when a different
server is highlighted in the list than the one currently connected.

https://claude.ai/code/session_01J5coSH1ScT4g4yDSbwmmcZ
Files were missing System, System.Collections.Generic, System.Linq,
System.IO, and System.Threading.Tasks — causing build errors on
DateTime, List<>, IEnumerable<>, Task, Func<>, Action<>, EventHandler.

https://claude.ai/code/session_01J5coSH1ScT4g4yDSbwmmcZ
…Shapes.Path

MainWindow.xaml.cs uses both WPF Path shapes and System.IO.Path, causing
CS0104. Fully qualify as System.IO.Path.Combine and System.IO.Directory.

https://claude.ai/code/session_01J5coSH1ScT4g4yDSbwmmcZ
…anel

UserControl cannot resolve GhostButton/PrimaryButton from MainWindow resources.
Replaced with self-contained inline styles. Also wrapped click handler in
try/catch to surface any future errors as a dialog instead of a crash.

https://claude.ai/code/session_01J5coSH1ScT4g4yDSbwmmcZ
…anel

RiskBand, CheaterRatioPercent, ActivePlayerCount, ConfirmedCheaterCount,
and SuspectedFlaggedCount are computed getters with no setter — WPF was
trying TwoWay binding and throwing at runtime.

https://claude.ai/code/session_01J5coSH1ScT4g4yDSbwmmcZ
Webhook URL is loaded on panel open and saved automatically whenever
the user edits it — no need to re-enter it each session.

https://claude.ai/code/session_01J5coSH1ScT4g4yDSbwmmcZ
Covers new files, privacy guarantees, Discord webhook setup,
risk bands, and includes Discord report preview screenshot.

https://claude.ai/code/session_01J5coSH1ScT4g4yDSbwmmcZ
@Pronwan

Pronwan commented Jun 4, 2026

Copy link
Copy Markdown
Owner

It's a super cool addon, ngl! Unfortunately we just merged to cloud support and there is a LOT in the pipeline. I am not sure if and what kind of 3rd Party APIs we want to integrate or use later. But this addition is for sure super interesting :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants