@rebornteam/reborn-api 3.2.1 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/.openapi-generator/FILES +70 -4
  2. package/README.md +103 -8
  3. package/api.ts +4362 -455
  4. package/base.ts +1 -1
  5. package/common.ts +1 -1
  6. package/configuration.ts +1 -1
  7. package/dist/api.d.ts +2735 -394
  8. package/dist/api.js +3171 -444
  9. package/dist/base.d.ts +1 -1
  10. package/dist/base.js +1 -1
  11. package/dist/common.d.ts +1 -1
  12. package/dist/common.js +1 -1
  13. package/dist/configuration.d.ts +1 -1
  14. package/dist/configuration.js +1 -1
  15. package/dist/esm/api.d.ts +2735 -394
  16. package/dist/esm/api.js +3146 -439
  17. package/dist/esm/base.d.ts +1 -1
  18. package/dist/esm/base.js +1 -1
  19. package/dist/esm/common.d.ts +1 -1
  20. package/dist/esm/common.js +1 -1
  21. package/dist/esm/configuration.d.ts +1 -1
  22. package/dist/esm/configuration.js +1 -1
  23. package/dist/esm/index.d.ts +1 -1
  24. package/dist/esm/index.js +1 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.js +1 -1
  27. package/docs/AdminAltAccount.md +27 -0
  28. package/docs/AdminAltExemption.md +31 -0
  29. package/docs/AdminAltGraph.md +27 -0
  30. package/docs/AdminAltGraphEdge.md +25 -0
  31. package/docs/AdminAltGraphNode.md +29 -0
  32. package/docs/AdminApplyPunishmentResult.md +4 -4
  33. package/docs/AdminAsyncJob.md +49 -0
  34. package/docs/AdminAsyncJobArtifactMeta.md +23 -0
  35. package/docs/AdminAsyncJobStartResponse.md +21 -0
  36. package/docs/AdminAuditLogApi.md +141 -0
  37. package/docs/AdminAuditLogEntry.md +33 -0
  38. package/docs/AdminBulkRevokeRequest.md +25 -0
  39. package/docs/AdminBulkRevokeResponse.md +21 -0
  40. package/docs/AdminConnectionCheckResult.md +4 -0
  41. package/docs/AdminConnectionsApi.md +154 -39
  42. package/docs/AdminCreateAltExemptionRequest.md +23 -0
  43. package/docs/AdminCreatePlayerNoteRequest.md +21 -0
  44. package/docs/AdminDashboardConnectionResponse.md +4 -2
  45. package/docs/AdminJobsApi.md +230 -0
  46. package/docs/AdminPlayerDetailResponse.md +4 -4
  47. package/docs/AdminPlayerNote.md +31 -0
  48. package/docs/AdminPlayerPunishmentResponse.md +51 -0
  49. package/docs/AdminPlayerReport.md +39 -0
  50. package/docs/AdminPlayerSession.md +31 -0
  51. package/docs/AdminPlayerSessionStats.md +29 -0
  52. package/docs/AdminPlayerSummary.md +2 -4
  53. package/docs/AdminPlayersApi.md +1043 -19
  54. package/docs/AdminPunishmentEvaluation.md +4 -8
  55. package/docs/AdminPunishmentTargets.md +23 -0
  56. package/docs/AdminPunishmentsApi.md +179 -21
  57. package/docs/AdminReportTarget.md +23 -0
  58. package/docs/AdminReportsApi.md +123 -0
  59. package/docs/AdminResolveReportRequest.md +21 -0
  60. package/docs/AdminSetAggressiveModeImmunityRequest.md +21 -0
  61. package/docs/AdminTrustFactorBreakdown.md +61 -0
  62. package/docs/AdminTrustFactorHistoryEntry.md +23 -0
  63. package/docs/AdminTrustFactorImpact.md +23 -0
  64. package/docs/AdminUpdatePunishmentRequest.md +35 -0
  65. package/docs/ChatApi.md +4 -4
  66. package/docs/ConnectionApi.md +4 -4
  67. package/docs/ConnectionGetConnectionDetailsResponse.md +5 -1
  68. package/docs/ConnectionResult.md +1 -1
  69. package/docs/CreateReportRequest.md +27 -0
  70. package/docs/CreateReportResponse.md +23 -0
  71. package/docs/CursoredPageAdminAuditLogEntry.md +38 -0
  72. package/docs/CursoredPageable.md +30 -0
  73. package/docs/JobStatus.md +17 -0
  74. package/docs/PageAdminAltAccount.md +36 -0
  75. package/docs/PageAdminAltExemption.md +36 -0
  76. package/docs/PageAdminAsyncJob.md +36 -0
  77. package/docs/PageAdminAuditLogEntry.md +36 -0
  78. package/docs/PageAdminDashboardConnectionResponse.md +36 -0
  79. package/docs/PageAdminPlayerNote.md +36 -0
  80. package/docs/PageAdminPlayerPunishmentResponse.md +36 -0
  81. package/docs/PageAdminPlayerReport.md +36 -0
  82. package/docs/PageAdminPlayerSession.md +36 -0
  83. package/docs/PageAdminPlayerSummary.md +36 -0
  84. package/docs/PageAdminPunishmentListItem.md +36 -0
  85. package/docs/PagePunishmentGetPunishmentResponse.md +36 -0
  86. package/docs/Pageable.md +28 -0
  87. package/docs/PageableMode.md +12 -0
  88. package/docs/PlayerGetPlayerInformation.md +5 -3
  89. package/docs/PlayerSessionEndRequest.md +23 -0
  90. package/docs/PlayerSessionStartRequest.md +27 -0
  91. package/docs/PlayerSessionStartResponse.md +51 -0
  92. package/docs/PlayerSessionsApi.md +116 -0
  93. package/docs/PunishmentApi.md +22 -24
  94. package/docs/PunishmentSource.md +11 -0
  95. package/docs/PunishmentType.md +1 -0
  96. package/docs/ReportApi.md +64 -0
  97. package/docs/ReportCategory.md +17 -0
  98. package/docs/SliceAdminAltAccount.md +32 -0
  99. package/docs/SliceAdminAltExemption.md +32 -0
  100. package/docs/SliceAdminAsyncJob.md +32 -0
  101. package/docs/SliceAdminAuditLogEntry.md +32 -0
  102. package/docs/SliceAdminDashboardConnectionResponse.md +32 -0
  103. package/docs/SliceAdminPlayerNote.md +32 -0
  104. package/docs/SliceAdminPlayerPunishmentResponse.md +32 -0
  105. package/docs/SliceAdminPlayerReport.md +32 -0
  106. package/docs/SliceAdminPlayerSession.md +32 -0
  107. package/docs/SliceAdminPlayerSummary.md +32 -0
  108. package/docs/SliceAdminPunishmentListItem.md +32 -0
  109. package/docs/SlicePunishmentGetPunishmentResponse.md +32 -0
  110. package/docs/Sort.md +20 -0
  111. package/docs/SortOrder.md +26 -0
  112. package/docs/SortOrderDirection.md +10 -0
  113. package/index.ts +1 -1
  114. package/package.json +1 -1
  115. package/docs/AdminBackfillLocationResponse.md +0 -25
  116. package/docs/AdminPagedConnectionResponse.md +0 -29
  117. package/docs/AdminPagedPlayerResponse.md +0 -29
  118. package/docs/AdminPagedPunishmentResponse.md +0 -29
@@ -4,13 +4,868 @@ All URIs are relative to *https://api.smsh.sh*
4
4
 
5
5
  |Method | HTTP request | Description|
6
6
  |------------- | ------------- | -------------|
7
+ |[**addAltExemption**](#addaltexemption) | **POST** /admin/player/{uuid}/alt-exemption | Add an alt exemption|
8
+ |[**backfillUsernames**](#backfillusernames) | **POST** /admin/player/backfill-usernames | Start a username backfill job|
9
+ |[**bulkRevokePropagated**](#bulkrevokepropagated) | **POST** /admin/player/player-punishment/bulk-revoke | Bulk-revoke PROPAGATED links by source|
10
+ |[**createPlayerNote**](#createplayernote) | **POST** /admin/player/{uuid}/note | Create a staff note on a player|
11
+ |[**deletePlayerNote**](#deleteplayernote) | **DELETE** /admin/player/{uuid}/note/{noteId} | Soft-delete a staff note|
12
+ |[**getAltGraph**](#getaltgraph) | **GET** /admin/player/{uuid}/alt-graph | Alt-graph traversal rooted at a player|
7
13
  |[**getPlayer**](#getplayer) | **GET** /admin/player/{uuid} | Get player detail|
14
+ |[**getPlayerAlts**](#getplayeralts) | **GET** /admin/player/{uuid}/alts | List a player\'s alt accounts|
15
+ |[**getPlayerConnections**](#getplayerconnections) | **GET** /admin/player/{uuid}/connections | List a player\'s connection history|
16
+ |[**getPlayerPunishments**](#getplayerpunishments) | **GET** /admin/player/{uuid}/player-punishments | List a player\'s full punishment history|
17
+ |[**getSessionStats**](#getsessionstats) | **GET** /admin/player/{uuid}/session-stats | Get a player\'s aggregate session stats|
18
+ |[**listAltExemptions**](#listaltexemptions) | **GET** /admin/player/{uuid}/alt-exemption | List a player\'s alt exemptions|
19
+ |[**listPlayerNotes**](#listplayernotes) | **GET** /admin/player/{uuid}/notes | List staff notes on a player|
8
20
  |[**listPlayers**](#listplayers) | **GET** /admin/player | List players|
21
+ |[**listSessions**](#listsessions) | **GET** /admin/player/{uuid}/sessions | List a player\'s session history|
22
+ |[**removeAltExemption**](#removealtexemption) | **DELETE** /admin/player/{uuid}/alt-exemption/{altPlayerUuid} | Remove an alt exemption|
23
+ |[**revokePropagatedLink**](#revokepropagatedlink) | **DELETE** /admin/player/{uuid}/player-punishment/{playerPunishmentId} | Revoke a propagated punishment link|
24
+ |[**setAggressiveModeImmunity**](#setaggressivemodeimmunity) | **PATCH** /admin/player/{uuid}/aggressive-mode-immunity | Toggle aggressive-mode immunity|
25
+ |[**trustFactorBreakdown**](#trustfactorbreakdown) | **GET** /admin/player/{uuid}/trust-factor-breakdown | Trust factor breakdown for a player|
26
+ |[**trustFactorHistory**](#trustfactorhistory) | **GET** /admin/player/{uuid}/trust-factor-history | Trust factor history for a player|
27
+
28
+ # **addAltExemption**
29
+ > addAltExemption(adminCreateAltExemptionRequest)
30
+
31
+ Mark another player as a known-legitimate associate (e.g. roommate). The relationship is stored symmetrically: subsequent aggressive-mode propagation skips this pair as an alt source in either direction. Finer-grained than the per-player aggressive_mode_immunity flag.
32
+
33
+ ### Example
34
+
35
+ ```typescript
36
+ import {
37
+ AdminPlayersApi,
38
+ Configuration,
39
+ AdminCreateAltExemptionRequest
40
+ } from '@rebornteam/reborn-api';
41
+
42
+ const configuration = new Configuration();
43
+ const apiInstance = new AdminPlayersApi(configuration);
44
+
45
+ let uuid: string; //Player Minecraft UUID (default to undefined)
46
+ let adminCreateAltExemptionRequest: AdminCreateAltExemptionRequest; //
47
+
48
+ const { status, data } = await apiInstance.addAltExemption(
49
+ uuid,
50
+ adminCreateAltExemptionRequest
51
+ );
52
+ ```
53
+
54
+ ### Parameters
55
+
56
+ |Name | Type | Description | Notes|
57
+ |------------- | ------------- | ------------- | -------------|
58
+ | **adminCreateAltExemptionRequest** | **AdminCreateAltExemptionRequest**| | |
59
+ | **uuid** | [**string**] | Player Minecraft UUID | defaults to undefined|
60
+
61
+
62
+ ### Return type
63
+
64
+ void (empty response body)
65
+
66
+ ### Authorization
67
+
68
+ [DiscordAuth](../README.md#DiscordAuth)
69
+
70
+ ### HTTP request headers
71
+
72
+ - **Content-Type**: application/json
73
+ - **Accept**: Not defined
74
+
75
+
76
+ ### HTTP response details
77
+ | Status code | Description | Response headers |
78
+ |-------------|-------------|------------------|
79
+ |**201** | Exemption created (or already existed; idempotent) | - |
80
+ |**400** | Cannot exempt a player from themselves | - |
81
+ |**404** | Either UUID does not match a known player | - |
82
+ |**401** | Unauthorized | - |
83
+ |**403** | Forbidden - Moderator role required | - |
84
+
85
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
86
+
87
+ # **backfillUsernames**
88
+ > AdminAsyncJobStartResponse backfillUsernames()
89
+
90
+ Submits an async job that walks every player row whose username is NULL and calls the Mojang profile API to resolve it. The job upserts both the player.username column and a player_username_history row. Returns immediately with a job id — poll GET /admin/job/{id} for progress and DELETE /admin/job/{id} to cancel. The final Admin_BackfillUsernamesResponse (processed/succeeded/failed counts) lands in the job\'s result_payload on COMPLETED. Mojang rate-limits at ~1 req/sec; a backfill of many rows can run for a while — cancel is honoured between rows.
91
+
92
+ ### Example
93
+
94
+ ```typescript
95
+ import {
96
+ AdminPlayersApi,
97
+ Configuration
98
+ } from '@rebornteam/reborn-api';
99
+
100
+ const configuration = new Configuration();
101
+ const apiInstance = new AdminPlayersApi(configuration);
102
+
103
+ const { status, data } = await apiInstance.backfillUsernames();
104
+ ```
105
+
106
+ ### Parameters
107
+ This endpoint does not have any parameters.
108
+
109
+
110
+ ### Return type
111
+
112
+ **AdminAsyncJobStartResponse**
113
+
114
+ ### Authorization
115
+
116
+ [DiscordAuth](../README.md#DiscordAuth)
117
+
118
+ ### HTTP request headers
119
+
120
+ - **Content-Type**: Not defined
121
+ - **Accept**: application/json
122
+
123
+
124
+ ### HTTP response details
125
+ | Status code | Description | Response headers |
126
+ |-------------|-------------|------------------|
127
+ |**202** | Job accepted; poll /admin/job/{id} for progress | - |
128
+ |**401** | Unauthorized | - |
129
+ |**403** | Forbidden - Moderator role required | - |
130
+
131
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
132
+
133
+ # **bulkRevokePropagated**
134
+ > AdminBulkRevokeResponse bulkRevokePropagated(adminBulkRevokeRequest)
135
+
136
+ Soft-revokes every currently active PROPAGATED player_punishment row whose source matches the supplied id. Exactly one of sourcePlayerId / sourceConnectionId must be set. Useful when staff identify a single source as a false positive (e.g. shared NAT, legitimate roommate) and want to undo every link it caused in one operation.
137
+
138
+ ### Example
139
+
140
+ ```typescript
141
+ import {
142
+ AdminPlayersApi,
143
+ Configuration,
144
+ AdminBulkRevokeRequest
145
+ } from '@rebornteam/reborn-api';
146
+
147
+ const configuration = new Configuration();
148
+ const apiInstance = new AdminPlayersApi(configuration);
149
+
150
+ let adminBulkRevokeRequest: AdminBulkRevokeRequest; //
151
+
152
+ const { status, data } = await apiInstance.bulkRevokePropagated(
153
+ adminBulkRevokeRequest
154
+ );
155
+ ```
156
+
157
+ ### Parameters
158
+
159
+ |Name | Type | Description | Notes|
160
+ |------------- | ------------- | ------------- | -------------|
161
+ | **adminBulkRevokeRequest** | **AdminBulkRevokeRequest**| | |
162
+
163
+
164
+ ### Return type
165
+
166
+ **AdminBulkRevokeResponse**
167
+
168
+ ### Authorization
169
+
170
+ [DiscordAuth](../README.md#DiscordAuth)
171
+
172
+ ### HTTP request headers
173
+
174
+ - **Content-Type**: application/json
175
+ - **Accept**: application/json
176
+
177
+
178
+ ### HTTP response details
179
+ | Status code | Description | Response headers |
180
+ |-------------|-------------|------------------|
181
+ |**200** | Bulk revoke complete; response carries the number of rows updated | - |
182
+ |**400** | Both or neither source field supplied | - |
183
+ |**401** | Unauthorized | - |
184
+ |**403** | Forbidden - Moderator role required | - |
185
+
186
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
187
+
188
+ # **createPlayerNote**
189
+ > AdminPlayerNote createPlayerNote(adminCreatePlayerNoteRequest)
190
+
191
+ Appends a free-form note (1–4000 chars). Notes are not editable — to revise, post a new one and soft-delete the old.
192
+
193
+ ### Example
194
+
195
+ ```typescript
196
+ import {
197
+ AdminPlayersApi,
198
+ Configuration,
199
+ AdminCreatePlayerNoteRequest
200
+ } from '@rebornteam/reborn-api';
201
+
202
+ const configuration = new Configuration();
203
+ const apiInstance = new AdminPlayersApi(configuration);
204
+
205
+ let uuid: string; //Player Minecraft UUID (default to undefined)
206
+ let adminCreatePlayerNoteRequest: AdminCreatePlayerNoteRequest; //
207
+
208
+ const { status, data } = await apiInstance.createPlayerNote(
209
+ uuid,
210
+ adminCreatePlayerNoteRequest
211
+ );
212
+ ```
213
+
214
+ ### Parameters
215
+
216
+ |Name | Type | Description | Notes|
217
+ |------------- | ------------- | ------------- | -------------|
218
+ | **adminCreatePlayerNoteRequest** | **AdminCreatePlayerNoteRequest**| | |
219
+ | **uuid** | [**string**] | Player Minecraft UUID | defaults to undefined|
220
+
221
+
222
+ ### Return type
223
+
224
+ **AdminPlayerNote**
225
+
226
+ ### Authorization
227
+
228
+ [DiscordAuth](../README.md#DiscordAuth)
229
+
230
+ ### HTTP request headers
231
+
232
+ - **Content-Type**: application/json
233
+ - **Accept**: application/json
234
+
235
+
236
+ ### HTTP response details
237
+ | Status code | Description | Response headers |
238
+ |-------------|-------------|------------------|
239
+ |**201** | Note created | - |
240
+ |**404** | Player not found | - |
241
+ |**401** | Unauthorized | - |
242
+ |**403** | Forbidden - Moderator role required | - |
243
+
244
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
245
+
246
+ # **deletePlayerNote**
247
+ > deletePlayerNote()
248
+
249
+ Marks the note as deleted but keeps the row for audit. Idempotent — 404 if already deleted or unknown id.
250
+
251
+ ### Example
252
+
253
+ ```typescript
254
+ import {
255
+ AdminPlayersApi,
256
+ Configuration
257
+ } from '@rebornteam/reborn-api';
258
+
259
+ const configuration = new Configuration();
260
+ const apiInstance = new AdminPlayersApi(configuration);
261
+
262
+ let uuid: string; //Player Minecraft UUID (routing only) (default to undefined)
263
+ let noteId: number; //Note id (default to undefined)
264
+
265
+ const { status, data } = await apiInstance.deletePlayerNote(
266
+ uuid,
267
+ noteId
268
+ );
269
+ ```
270
+
271
+ ### Parameters
272
+
273
+ |Name | Type | Description | Notes|
274
+ |------------- | ------------- | ------------- | -------------|
275
+ | **uuid** | [**string**] | Player Minecraft UUID (routing only) | defaults to undefined|
276
+ | **noteId** | [**number**] | Note id | defaults to undefined|
277
+
278
+
279
+ ### Return type
280
+
281
+ void (empty response body)
282
+
283
+ ### Authorization
284
+
285
+ [DiscordAuth](../README.md#DiscordAuth)
286
+
287
+ ### HTTP request headers
288
+
289
+ - **Content-Type**: Not defined
290
+ - **Accept**: Not defined
291
+
292
+
293
+ ### HTTP response details
294
+ | Status code | Description | Response headers |
295
+ |-------------|-------------|------------------|
296
+ |**204** | Note deleted | - |
297
+ |**404** | Note not found or already deleted | - |
298
+ |**401** | Unauthorized | - |
299
+ |**403** | Forbidden - Moderator role required | - |
300
+
301
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
302
+
303
+ # **getAltGraph**
304
+ > AdminAltGraph getAltGraph()
305
+
306
+ Returns the connection-shared player graph reachable from this player within {depth} hops. Mirrors the propagation walk used by ALT_PROPAGATION_SWEEP — promiscuous (likely shared-NAT) connections are pruned, alt-exemption rows cut the graph at exempted players. Depth is clamped server-side at 5. Used by the admin Graph tab to render an interactive explorer.
307
+
308
+ ### Example
309
+
310
+ ```typescript
311
+ import {
312
+ AdminPlayersApi,
313
+ Configuration
314
+ } from '@rebornteam/reborn-api';
315
+
316
+ const configuration = new Configuration();
317
+ const apiInstance = new AdminPlayersApi(configuration);
318
+
319
+ let uuid: string; //Player Minecraft UUID (default to undefined)
320
+ let depth: number; //Hop depth to walk. 1=direct alts only; 5=full sticky-trap radius. Default 2. (optional) (default to 2)
321
+
322
+ const { status, data } = await apiInstance.getAltGraph(
323
+ uuid,
324
+ depth
325
+ );
326
+ ```
327
+
328
+ ### Parameters
329
+
330
+ |Name | Type | Description | Notes|
331
+ |------------- | ------------- | ------------- | -------------|
332
+ | **uuid** | [**string**] | Player Minecraft UUID | defaults to undefined|
333
+ | **depth** | [**number**] | Hop depth to walk. 1=direct alts only; 5=full sticky-trap radius. Default 2. | (optional) defaults to 2|
334
+
335
+
336
+ ### Return type
337
+
338
+ **AdminAltGraph**
339
+
340
+ ### Authorization
341
+
342
+ [DiscordAuth](../README.md#DiscordAuth)
343
+
344
+ ### HTTP request headers
345
+
346
+ - **Content-Type**: Not defined
347
+ - **Accept**: application/json
348
+
349
+
350
+ ### HTTP response details
351
+ | Status code | Description | Response headers |
352
+ |-------------|-------------|------------------|
353
+ |**200** | Graph traversal complete | - |
354
+ |**401** | Unauthorized | - |
355
+ |**403** | Forbidden - Moderator role required | - |
356
+
357
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
9
358
 
10
359
  # **getPlayer**
11
360
  > AdminPlayerDetailResponse getPlayer()
12
361
 
13
- Returns full detail for a single player including all known usernames and punishment scoring.
362
+ Returns full detail for a single player including all known usernames and punishment scoring.
363
+
364
+ ### Example
365
+
366
+ ```typescript
367
+ import {
368
+ AdminPlayersApi,
369
+ Configuration
370
+ } from '@rebornteam/reborn-api';
371
+
372
+ const configuration = new Configuration();
373
+ const apiInstance = new AdminPlayersApi(configuration);
374
+
375
+ let uuid: string; //Player Minecraft UUID (default to undefined)
376
+
377
+ const { status, data } = await apiInstance.getPlayer(
378
+ uuid
379
+ );
380
+ ```
381
+
382
+ ### Parameters
383
+
384
+ |Name | Type | Description | Notes|
385
+ |------------- | ------------- | ------------- | -------------|
386
+ | **uuid** | [**string**] | Player Minecraft UUID | defaults to undefined|
387
+
388
+
389
+ ### Return type
390
+
391
+ **AdminPlayerDetailResponse**
392
+
393
+ ### Authorization
394
+
395
+ [DiscordAuth](../README.md#DiscordAuth)
396
+
397
+ ### HTTP request headers
398
+
399
+ - **Content-Type**: Not defined
400
+ - **Accept**: application/json
401
+
402
+
403
+ ### HTTP response details
404
+ | Status code | Description | Response headers |
405
+ |-------------|-------------|------------------|
406
+ |**200** | Player detail retrieved successfully | - |
407
+ |**404** | Player not found | - |
408
+ |**401** | Unauthorized | - |
409
+ |**403** | Forbidden - Moderator role required | - |
410
+
411
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
412
+
413
+ # **getPlayerAlts**
414
+ > PageAdminAltAccount getPlayerAlts()
415
+
416
+ Other players who have been seen on at least one of this player\'s historical connections. Sorted by shared-connection count desc, then last seen desc.
417
+
418
+ ### Example
419
+
420
+ ```typescript
421
+ import {
422
+ AdminPlayersApi,
423
+ Configuration,
424
+ Pageable
425
+ } from '@rebornteam/reborn-api';
426
+
427
+ const configuration = new Configuration();
428
+ const apiInstance = new AdminPlayersApi(configuration);
429
+
430
+ let uuid: string; //Player Minecraft UUID (default to undefined)
431
+ let pageable: Pageable; // (default to undefined)
432
+
433
+ const { status, data } = await apiInstance.getPlayerAlts(
434
+ uuid,
435
+ pageable
436
+ );
437
+ ```
438
+
439
+ ### Parameters
440
+
441
+ |Name | Type | Description | Notes|
442
+ |------------- | ------------- | ------------- | -------------|
443
+ | **uuid** | [**string**] | Player Minecraft UUID | defaults to undefined|
444
+ | **pageable** | **Pageable** | | defaults to undefined|
445
+
446
+
447
+ ### Return type
448
+
449
+ **PageAdminAltAccount**
450
+
451
+ ### Authorization
452
+
453
+ [DiscordAuth](../README.md#DiscordAuth)
454
+
455
+ ### HTTP request headers
456
+
457
+ - **Content-Type**: Not defined
458
+ - **Accept**: application/json
459
+
460
+
461
+ ### HTTP response details
462
+ | Status code | Description | Response headers |
463
+ |-------------|-------------|------------------|
464
+ |**200** | Alt list retrieved successfully | - |
465
+ |**401** | Unauthorized | - |
466
+ |**403** | Forbidden - Moderator role required | - |
467
+
468
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
469
+
470
+ # **getPlayerConnections**
471
+ > PageAdminDashboardConnectionResponse getPlayerConnections()
472
+
473
+ Paginated list of every connection this player has used (latest first). Same shape as the dashboard connection list, suitable for an infinite-scroll panel inside the player detail modal.
474
+
475
+ ### Example
476
+
477
+ ```typescript
478
+ import {
479
+ AdminPlayersApi,
480
+ Configuration,
481
+ Pageable
482
+ } from '@rebornteam/reborn-api';
483
+
484
+ const configuration = new Configuration();
485
+ const apiInstance = new AdminPlayersApi(configuration);
486
+
487
+ let uuid: string; //Player Minecraft UUID (default to undefined)
488
+ let pageable: Pageable; // (default to undefined)
489
+
490
+ const { status, data } = await apiInstance.getPlayerConnections(
491
+ uuid,
492
+ pageable
493
+ );
494
+ ```
495
+
496
+ ### Parameters
497
+
498
+ |Name | Type | Description | Notes|
499
+ |------------- | ------------- | ------------- | -------------|
500
+ | **uuid** | [**string**] | Player Minecraft UUID | defaults to undefined|
501
+ | **pageable** | **Pageable** | | defaults to undefined|
502
+
503
+
504
+ ### Return type
505
+
506
+ **PageAdminDashboardConnectionResponse**
507
+
508
+ ### Authorization
509
+
510
+ [DiscordAuth](../README.md#DiscordAuth)
511
+
512
+ ### HTTP request headers
513
+
514
+ - **Content-Type**: Not defined
515
+ - **Accept**: application/json
516
+
517
+
518
+ ### HTTP response details
519
+ | Status code | Description | Response headers |
520
+ |-------------|-------------|------------------|
521
+ |**200** | Connection history retrieved successfully | - |
522
+ |**401** | Unauthorized | - |
523
+ |**403** | Forbidden - Moderator role required | - |
524
+
525
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
526
+
527
+ # **getPlayerPunishments**
528
+ > PageAdminPlayerPunishmentResponse getPlayerPunishments()
529
+
530
+ Paginated list of every player_punishment row for this player — DIRECT and PROPAGATED, active and revoked. Includes the transfer_note explaining why each propagated link was inserted and the revocation audit trail. The admin UI uses this to render a punishment-history section inside the player detail modal.
531
+
532
+ ### Example
533
+
534
+ ```typescript
535
+ import {
536
+ AdminPlayersApi,
537
+ Configuration,
538
+ Pageable
539
+ } from '@rebornteam/reborn-api';
540
+
541
+ const configuration = new Configuration();
542
+ const apiInstance = new AdminPlayersApi(configuration);
543
+
544
+ let uuid: string; //Player Minecraft UUID (default to undefined)
545
+ let pageable: Pageable; // (default to undefined)
546
+
547
+ const { status, data } = await apiInstance.getPlayerPunishments(
548
+ uuid,
549
+ pageable
550
+ );
551
+ ```
552
+
553
+ ### Parameters
554
+
555
+ |Name | Type | Description | Notes|
556
+ |------------- | ------------- | ------------- | -------------|
557
+ | **uuid** | [**string**] | Player Minecraft UUID | defaults to undefined|
558
+ | **pageable** | **Pageable** | | defaults to undefined|
559
+
560
+
561
+ ### Return type
562
+
563
+ **PageAdminPlayerPunishmentResponse**
564
+
565
+ ### Authorization
566
+
567
+ [DiscordAuth](../README.md#DiscordAuth)
568
+
569
+ ### HTTP request headers
570
+
571
+ - **Content-Type**: Not defined
572
+ - **Accept**: application/json
573
+
574
+
575
+ ### HTTP response details
576
+ | Status code | Description | Response headers |
577
+ |-------------|-------------|------------------|
578
+ |**200** | Punishment history retrieved | - |
579
+ |**401** | Unauthorized | - |
580
+ |**403** | Forbidden - Moderator role required | - |
581
+
582
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
583
+
584
+ # **getSessionStats**
585
+ > AdminPlayerSessionStats getSessionStats()
586
+
587
+ Single-row summary: total seconds played, session count, distinct days active, most recent session start, and whether the player is currently online. Computed on demand from player_session. Feeds the trust factor system.
588
+
589
+ ### Example
590
+
591
+ ```typescript
592
+ import {
593
+ AdminPlayersApi,
594
+ Configuration
595
+ } from '@rebornteam/reborn-api';
596
+
597
+ const configuration = new Configuration();
598
+ const apiInstance = new AdminPlayersApi(configuration);
599
+
600
+ let uuid: string; //Player Minecraft UUID (default to undefined)
601
+
602
+ const { status, data } = await apiInstance.getSessionStats(
603
+ uuid
604
+ );
605
+ ```
606
+
607
+ ### Parameters
608
+
609
+ |Name | Type | Description | Notes|
610
+ |------------- | ------------- | ------------- | -------------|
611
+ | **uuid** | [**string**] | Player Minecraft UUID | defaults to undefined|
612
+
613
+
614
+ ### Return type
615
+
616
+ **AdminPlayerSessionStats**
617
+
618
+ ### Authorization
619
+
620
+ [DiscordAuth](../README.md#DiscordAuth)
621
+
622
+ ### HTTP request headers
623
+
624
+ - **Content-Type**: Not defined
625
+ - **Accept**: application/json
626
+
627
+
628
+ ### HTTP response details
629
+ | Status code | Description | Response headers |
630
+ |-------------|-------------|------------------|
631
+ |**200** | Stats retrieved | - |
632
+ |**401** | Unauthorized | - |
633
+ |**403** | Forbidden - Moderator role required | - |
634
+
635
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
636
+
637
+ # **listAltExemptions**
638
+ > PageAdminAltExemption listAltExemptions()
639
+
640
+ Paginated list of the player\'s known-legitimate-associate exemptions. The list reflects rows where this player is the source side (player_id = this); since exemptions are stored symmetrically the reciprocal rows exist too.
641
+
642
+ ### Example
643
+
644
+ ```typescript
645
+ import {
646
+ AdminPlayersApi,
647
+ Configuration,
648
+ Pageable
649
+ } from '@rebornteam/reborn-api';
650
+
651
+ const configuration = new Configuration();
652
+ const apiInstance = new AdminPlayersApi(configuration);
653
+
654
+ let uuid: string; //Player Minecraft UUID (default to undefined)
655
+ let pageable: Pageable; // (default to undefined)
656
+
657
+ const { status, data } = await apiInstance.listAltExemptions(
658
+ uuid,
659
+ pageable
660
+ );
661
+ ```
662
+
663
+ ### Parameters
664
+
665
+ |Name | Type | Description | Notes|
666
+ |------------- | ------------- | ------------- | -------------|
667
+ | **uuid** | [**string**] | Player Minecraft UUID | defaults to undefined|
668
+ | **pageable** | **Pageable** | | defaults to undefined|
669
+
670
+
671
+ ### Return type
672
+
673
+ **PageAdminAltExemption**
674
+
675
+ ### Authorization
676
+
677
+ [DiscordAuth](../README.md#DiscordAuth)
678
+
679
+ ### HTTP request headers
680
+
681
+ - **Content-Type**: Not defined
682
+ - **Accept**: application/json
683
+
684
+
685
+ ### HTTP response details
686
+ | Status code | Description | Response headers |
687
+ |-------------|-------------|------------------|
688
+ |**200** | Exemption list retrieved | - |
689
+ |**401** | Unauthorized | - |
690
+ |**403** | Forbidden - Moderator role required | - |
691
+
692
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
693
+
694
+ # **listPlayerNotes**
695
+ > PageAdminPlayerNote listPlayerNotes()
696
+
697
+ Paginated, newest first. Soft-deleted notes are included; the UI styles them as struck-through.
698
+
699
+ ### Example
700
+
701
+ ```typescript
702
+ import {
703
+ AdminPlayersApi,
704
+ Configuration,
705
+ Pageable
706
+ } from '@rebornteam/reborn-api';
707
+
708
+ const configuration = new Configuration();
709
+ const apiInstance = new AdminPlayersApi(configuration);
710
+
711
+ let uuid: string; //Player Minecraft UUID (default to undefined)
712
+ let pageable: Pageable; // (default to undefined)
713
+
714
+ const { status, data } = await apiInstance.listPlayerNotes(
715
+ uuid,
716
+ pageable
717
+ );
718
+ ```
719
+
720
+ ### Parameters
721
+
722
+ |Name | Type | Description | Notes|
723
+ |------------- | ------------- | ------------- | -------------|
724
+ | **uuid** | [**string**] | Player Minecraft UUID | defaults to undefined|
725
+ | **pageable** | **Pageable** | | defaults to undefined|
726
+
727
+
728
+ ### Return type
729
+
730
+ **PageAdminPlayerNote**
731
+
732
+ ### Authorization
733
+
734
+ [DiscordAuth](../README.md#DiscordAuth)
735
+
736
+ ### HTTP request headers
737
+
738
+ - **Content-Type**: Not defined
739
+ - **Accept**: application/json
740
+
741
+
742
+ ### HTTP response details
743
+ | Status code | Description | Response headers |
744
+ |-------------|-------------|------------------|
745
+ |**200** | Notes retrieved | - |
746
+ |**401** | Unauthorized | - |
747
+ |**403** | Forbidden - Moderator role required | - |
748
+
749
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
750
+
751
+ # **listPlayers**
752
+ > PageAdminPlayerSummary listPlayers()
753
+
754
+ Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
755
+
756
+ ### Example
757
+
758
+ ```typescript
759
+ import {
760
+ AdminPlayersApi,
761
+ Configuration,
762
+ Pageable
763
+ } from '@rebornteam/reborn-api';
764
+
765
+ const configuration = new Configuration();
766
+ const apiInstance = new AdminPlayersApi(configuration);
767
+
768
+ let pageable: Pageable; // (default to undefined)
769
+ let search: string; //Optional search string matched against UUID or username (case-insensitive substring) (optional) (default to undefined)
770
+
771
+ const { status, data } = await apiInstance.listPlayers(
772
+ pageable,
773
+ search
774
+ );
775
+ ```
776
+
777
+ ### Parameters
778
+
779
+ |Name | Type | Description | Notes|
780
+ |------------- | ------------- | ------------- | -------------|
781
+ | **pageable** | **Pageable** | | defaults to undefined|
782
+ | **search** | [**string**] | Optional search string matched against UUID or username (case-insensitive substring) | (optional) defaults to undefined|
783
+
784
+
785
+ ### Return type
786
+
787
+ **PageAdminPlayerSummary**
788
+
789
+ ### Authorization
790
+
791
+ [DiscordAuth](../README.md#DiscordAuth)
792
+
793
+ ### HTTP request headers
794
+
795
+ - **Content-Type**: Not defined
796
+ - **Accept**: application/json
797
+
798
+
799
+ ### HTTP response details
800
+ | Status code | Description | Response headers |
801
+ |-------------|-------------|------------------|
802
+ |**200** | Player list retrieved successfully | - |
803
+ |**401** | Unauthorized | - |
804
+ |**403** | Forbidden - Moderator role required | - |
805
+
806
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
807
+
808
+ # **listSessions**
809
+ > PageAdminPlayerSession listSessions()
810
+
811
+ Paginated history of player_session rows (active + closed), newest first. Each row records one visit by this player to one game server. Used by the admin player detail view and as the underlying data for the session-stats aggregate.
812
+
813
+ ### Example
814
+
815
+ ```typescript
816
+ import {
817
+ AdminPlayersApi,
818
+ Configuration,
819
+ Pageable
820
+ } from '@rebornteam/reborn-api';
821
+
822
+ const configuration = new Configuration();
823
+ const apiInstance = new AdminPlayersApi(configuration);
824
+
825
+ let uuid: string; //Player Minecraft UUID (default to undefined)
826
+ let pageable: Pageable; // (default to undefined)
827
+
828
+ const { status, data } = await apiInstance.listSessions(
829
+ uuid,
830
+ pageable
831
+ );
832
+ ```
833
+
834
+ ### Parameters
835
+
836
+ |Name | Type | Description | Notes|
837
+ |------------- | ------------- | ------------- | -------------|
838
+ | **uuid** | [**string**] | Player Minecraft UUID | defaults to undefined|
839
+ | **pageable** | **Pageable** | | defaults to undefined|
840
+
841
+
842
+ ### Return type
843
+
844
+ **PageAdminPlayerSession**
845
+
846
+ ### Authorization
847
+
848
+ [DiscordAuth](../README.md#DiscordAuth)
849
+
850
+ ### HTTP request headers
851
+
852
+ - **Content-Type**: Not defined
853
+ - **Accept**: application/json
854
+
855
+
856
+ ### HTTP response details
857
+ | Status code | Description | Response headers |
858
+ |-------------|-------------|------------------|
859
+ |**200** | Session history retrieved | - |
860
+ |**401** | Unauthorized | - |
861
+ |**403** | Forbidden - Moderator role required | - |
862
+
863
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
864
+
865
+ # **removeAltExemption**
866
+ > removeAltExemption()
867
+
868
+ Delete the symmetric exemption pair between two players. Both directions are removed.
14
869
 
15
870
  ### Example
16
871
 
@@ -24,9 +879,126 @@ const configuration = new Configuration();
24
879
  const apiInstance = new AdminPlayersApi(configuration);
25
880
 
26
881
  let uuid: string; //Player Minecraft UUID (default to undefined)
882
+ let altPlayerUuid: string; //UUID of the alt to remove from exemption (default to undefined)
27
883
 
28
- const { status, data } = await apiInstance.getPlayer(
29
- uuid
884
+ const { status, data } = await apiInstance.removeAltExemption(
885
+ uuid,
886
+ altPlayerUuid
887
+ );
888
+ ```
889
+
890
+ ### Parameters
891
+
892
+ |Name | Type | Description | Notes|
893
+ |------------- | ------------- | ------------- | -------------|
894
+ | **uuid** | [**string**] | Player Minecraft UUID | defaults to undefined|
895
+ | **altPlayerUuid** | [**string**] | UUID of the alt to remove from exemption | defaults to undefined|
896
+
897
+
898
+ ### Return type
899
+
900
+ void (empty response body)
901
+
902
+ ### Authorization
903
+
904
+ [DiscordAuth](../README.md#DiscordAuth)
905
+
906
+ ### HTTP request headers
907
+
908
+ - **Content-Type**: Not defined
909
+ - **Accept**: Not defined
910
+
911
+
912
+ ### HTTP response details
913
+ | Status code | Description | Response headers |
914
+ |-------------|-------------|------------------|
915
+ |**204** | Exemption(s) deleted; or no rows existed | - |
916
+ |**404** | Either UUID does not match a known player | - |
917
+ |**401** | Unauthorized | - |
918
+ |**403** | Forbidden - Moderator role required | - |
919
+
920
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
921
+
922
+ # **revokePropagatedLink**
923
+ > revokePropagatedLink()
924
+
925
+ Soft-deletes a single player_punishment row that was inserted by aggressive-mode propagation. The source punishment record is untouched — only the link between this player and that punishment is removed from enforcement. Rejected with 404 if the row is DIRECT (the original punishment record) or already revoked.
926
+
927
+ ### Example
928
+
929
+ ```typescript
930
+ import {
931
+ AdminPlayersApi,
932
+ Configuration
933
+ } from '@rebornteam/reborn-api';
934
+
935
+ const configuration = new Configuration();
936
+ const apiInstance = new AdminPlayersApi(configuration);
937
+
938
+ let uuid: string; //Player Minecraft UUID (for routing/audit context; the link id is the source of truth) (default to undefined)
939
+ let playerPunishmentId: number; //player_punishment row id (default to undefined)
940
+
941
+ const { status, data } = await apiInstance.revokePropagatedLink(
942
+ uuid,
943
+ playerPunishmentId
944
+ );
945
+ ```
946
+
947
+ ### Parameters
948
+
949
+ |Name | Type | Description | Notes|
950
+ |------------- | ------------- | ------------- | -------------|
951
+ | **uuid** | [**string**] | Player Minecraft UUID (for routing/audit context; the link id is the source of truth) | defaults to undefined|
952
+ | **playerPunishmentId** | [**number**] | player_punishment row id | defaults to undefined|
953
+
954
+
955
+ ### Return type
956
+
957
+ void (empty response body)
958
+
959
+ ### Authorization
960
+
961
+ [DiscordAuth](../README.md#DiscordAuth)
962
+
963
+ ### HTTP request headers
964
+
965
+ - **Content-Type**: Not defined
966
+ - **Accept**: Not defined
967
+
968
+
969
+ ### HTTP response details
970
+ | Status code | Description | Response headers |
971
+ |-------------|-------------|------------------|
972
+ |**204** | Link revoked | - |
973
+ |**404** | Link not found, already revoked, or DIRECT (cannot revoke a non-propagated link via this endpoint) | - |
974
+ |**401** | Unauthorized | - |
975
+ |**403** | Forbidden - Moderator role required | - |
976
+
977
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
978
+
979
+ # **setAggressiveModeImmunity**
980
+ > AdminPlayerDetailResponse setAggressiveModeImmunity(adminSetAggressiveModeImmunityRequest)
981
+
982
+ Sets whether a player is exempt from aggressive-mode propagation. Flipping the flag ON also bulk-revokes every currently active PROPAGATED link for the player in the same transaction, so the player\'s enforcement state immediately reflects the cleared status. Flipping back to OFF re-enables propagation but does NOT un-revoke previously-revoked links.
983
+
984
+ ### Example
985
+
986
+ ```typescript
987
+ import {
988
+ AdminPlayersApi,
989
+ Configuration,
990
+ AdminSetAggressiveModeImmunityRequest
991
+ } from '@rebornteam/reborn-api';
992
+
993
+ const configuration = new Configuration();
994
+ const apiInstance = new AdminPlayersApi(configuration);
995
+
996
+ let uuid: string; //Player Minecraft UUID (default to undefined)
997
+ let adminSetAggressiveModeImmunityRequest: AdminSetAggressiveModeImmunityRequest; //
998
+
999
+ const { status, data } = await apiInstance.setAggressiveModeImmunity(
1000
+ uuid,
1001
+ adminSetAggressiveModeImmunityRequest
30
1002
  );
31
1003
  ```
32
1004
 
@@ -34,6 +1006,7 @@ const { status, data } = await apiInstance.getPlayer(
34
1006
 
35
1007
  |Name | Type | Description | Notes|
36
1008
  |------------- | ------------- | ------------- | -------------|
1009
+ | **adminSetAggressiveModeImmunityRequest** | **AdminSetAggressiveModeImmunityRequest**| | |
37
1010
  | **uuid** | [**string**] | Player Minecraft UUID | defaults to undefined|
38
1011
 
39
1012
 
@@ -45,6 +1018,60 @@ const { status, data } = await apiInstance.getPlayer(
45
1018
 
46
1019
  [DiscordAuth](../README.md#DiscordAuth)
47
1020
 
1021
+ ### HTTP request headers
1022
+
1023
+ - **Content-Type**: application/json
1024
+ - **Accept**: application/json
1025
+
1026
+
1027
+ ### HTTP response details
1028
+ | Status code | Description | Response headers |
1029
+ |-------------|-------------|------------------|
1030
+ |**200** | Immunity flag updated; returns the refreshed player detail | - |
1031
+ |**404** | Player not found | - |
1032
+ |**401** | Unauthorized | - |
1033
+ |**403** | Forbidden - Moderator role required | - |
1034
+
1035
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
1036
+
1037
+ # **trustFactorBreakdown**
1038
+ > AdminTrustFactorBreakdown trustFactorBreakdown()
1039
+
1040
+ Returns every subtotal (bonuses / penalties) and the underlying signal counts that fed compute_trust_factor for this player. The {@code finalScore} matches what GET /admin/player/{uuid} returns; this endpoint adds the per-component detail. Used by the admin UI \"why is this score what it is?\" tooltip. Informational only — trust factor never auto-escalates punishments.
1041
+
1042
+ ### Example
1043
+
1044
+ ```typescript
1045
+ import {
1046
+ AdminPlayersApi,
1047
+ Configuration
1048
+ } from '@rebornteam/reborn-api';
1049
+
1050
+ const configuration = new Configuration();
1051
+ const apiInstance = new AdminPlayersApi(configuration);
1052
+
1053
+ let uuid: string; //Player Minecraft UUID (default to undefined)
1054
+
1055
+ const { status, data } = await apiInstance.trustFactorBreakdown(
1056
+ uuid
1057
+ );
1058
+ ```
1059
+
1060
+ ### Parameters
1061
+
1062
+ |Name | Type | Description | Notes|
1063
+ |------------- | ------------- | ------------- | -------------|
1064
+ | **uuid** | [**string**] | Player Minecraft UUID | defaults to undefined|
1065
+
1066
+
1067
+ ### Return type
1068
+
1069
+ **AdminTrustFactorBreakdown**
1070
+
1071
+ ### Authorization
1072
+
1073
+ [DiscordAuth](../README.md#DiscordAuth)
1074
+
48
1075
  ### HTTP request headers
49
1076
 
50
1077
  - **Content-Type**: Not defined
@@ -54,17 +1081,17 @@ const { status, data } = await apiInstance.getPlayer(
54
1081
  ### HTTP response details
55
1082
  | Status code | Description | Response headers |
56
1083
  |-------------|-------------|------------------|
57
- |**200** | Player detail retrieved successfully | - |
1084
+ |**200** | Breakdown computed | - |
58
1085
  |**404** | Player not found | - |
59
1086
  |**401** | Unauthorized | - |
60
1087
  |**403** | Forbidden - Moderator role required | - |
61
1088
 
62
1089
  [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
63
1090
 
64
- # **listPlayers**
65
- > AdminPagedPlayerResponse listPlayers()
1091
+ # **trustFactorHistory**
1092
+ > AdminTrustFactorHistoryEntry trustFactorHistory()
66
1093
 
67
- Returns up to 500 players ordered by most recently seen. Optionally filter by UUID or username substring.
1094
+ Returns one snapshot per day (oldest first) over the requested window. Useful for trend visualization. The daily snapshot job runs at 03:00 UTC; days with no row indicate the snapshot job didn\'t run that day (e.g., outage).
68
1095
 
69
1096
  ### Example
70
1097
 
@@ -77,14 +1104,12 @@ import {
77
1104
  const configuration = new Configuration();
78
1105
  const apiInstance = new AdminPlayersApi(configuration);
79
1106
 
80
- let page: number; //Page number (1-indexed) (default to 1)
81
- let limit: number; //Page size (default to 50)
82
- let search: string; //Optional search string matched against UUID or username (case-insensitive substring) (optional) (default to undefined)
1107
+ let uuid: string; //Player Minecraft UUID (default to undefined)
1108
+ let days: number; //Window in days (default 30, max 365) (optional) (default to 30)
83
1109
 
84
- const { status, data } = await apiInstance.listPlayers(
85
- page,
86
- limit,
87
- search
1110
+ const { status, data } = await apiInstance.trustFactorHistory(
1111
+ uuid,
1112
+ days
88
1113
  );
89
1114
  ```
90
1115
 
@@ -92,14 +1117,13 @@ const { status, data } = await apiInstance.listPlayers(
92
1117
 
93
1118
  |Name | Type | Description | Notes|
94
1119
  |------------- | ------------- | ------------- | -------------|
95
- | **page** | [**number**] | Page number (1-indexed) | defaults to 1|
96
- | **limit** | [**number**] | Page size | defaults to 50|
97
- | **search** | [**string**] | Optional search string matched against UUID or username (case-insensitive substring) | (optional) defaults to undefined|
1120
+ | **uuid** | [**string**] | Player Minecraft UUID | defaults to undefined|
1121
+ | **days** | [**number**] | Window in days (default 30, max 365) | (optional) defaults to 30|
98
1122
 
99
1123
 
100
1124
  ### Return type
101
1125
 
102
- **AdminPagedPlayerResponse**
1126
+ **AdminTrustFactorHistoryEntry**
103
1127
 
104
1128
  ### Authorization
105
1129
 
@@ -114,7 +1138,7 @@ const { status, data } = await apiInstance.listPlayers(
114
1138
  ### HTTP response details
115
1139
  | Status code | Description | Response headers |
116
1140
  |-------------|-------------|------------------|
117
- |**200** | Player list retrieved successfully | - |
1141
+ |**200** | History retrieved | - |
118
1142
  |**401** | Unauthorized | - |
119
1143
  |**403** | Forbidden - Moderator role required | - |
120
1144