@@ -16,6 +16,9 @@ export interface TelemetryData {
1616 ramUsage : number ;
1717 totalRam : number ;
1818 cpuUsage : number ;
19+ cpuModel : string ;
20+ cpuCores : number ;
21+ cpuThreads : number ;
1922 uptime : number ;
2023 onlinePlayers : number ;
2124 maxPlayers : number ;
@@ -45,9 +48,12 @@ function createTelemetryStore() {
4548 ramUsage : 0 ,
4649 totalRam : 0 ,
4750 cpuUsage : 0 ,
51+ cpuModel : 'Unknown' ,
52+ cpuCores : 0 ,
53+ cpuThreads : 0 ,
4854 uptime : 0 ,
4955 onlinePlayers : 0 ,
50- maxPlayers : 100 ,
56+ maxPlayers : 0 ,
5157 tps : 20 ,
5258 storageUsed : undefined ,
5359 tpsHistory : [ ]
@@ -92,7 +98,10 @@ function createTelemetryStore() {
9298 socket . onmessage = ( event ) => {
9399 try {
94100 const payload = JSON . parse ( event . data ) ;
95- if ( payload . type === 'Metric' ) {
101+ if ( payload . type === 'Handshake' ) {
102+ // Handshake: one-time system info and config
103+ updateHandshake ( payload . data ) ;
104+ } else if ( payload . type === 'Metric' ) {
96105 updateMetrics ( payload . data ) ;
97106 }
98107 } catch ( e ) {
@@ -113,13 +122,44 @@ function createTelemetryStore() {
113122 } ;
114123 }
115124
125+ function updateHandshake ( data : {
126+ system ?: {
127+ cpu_model ?: string ;
128+ cpu_cores ?: number ;
129+ cpu_threads ?: number ;
130+ } ;
131+ config ?: {
132+ max_players ?: number ;
133+ } ;
134+ } ) {
135+ // System info
136+ if ( data . system ) {
137+ if ( data . system . cpu_model !== undefined ) {
138+ state . data . cpuModel = data . system . cpu_model ;
139+ }
140+ if ( data . system . cpu_cores !== undefined ) {
141+ state . data . cpuCores = data . system . cpu_cores ;
142+ }
143+ if ( data . system . cpu_threads !== undefined ) {
144+ state . data . cpuThreads = data . system . cpu_threads ;
145+ }
146+ }
147+ // Config
148+ if ( data . config ) {
149+ if ( data . config . max_players !== undefined ) {
150+ state . data . maxPlayers = data . config . max_players ;
151+ }
152+ }
153+ }
154+
116155 function updateMetrics ( data : {
117156 ram_usage ?: number ;
118157 total_ram ?: number ;
119158 cpu_usage ?: number ;
120159 uptime ?: number ;
121160 online_players ?: number ;
122161 max_players ?: number ;
162+ player_count ?: number ;
123163 tps ?: number ;
124164 storage_used ?: number ;
125165 disk_type ?: string ;
@@ -136,6 +176,9 @@ function createTelemetryStore() {
136176 if ( data . uptime !== undefined ) {
137177 state . data . uptime = data . uptime ;
138178 }
179+ if ( data . player_count !== undefined ) {
180+ state . data . onlinePlayers = data . player_count ;
181+ }
139182 if ( data . online_players !== undefined ) {
140183 state . data . onlinePlayers = data . online_players ;
141184 }
0 commit comments