@rebornteam/reborn-api 4.5.0 → 4.6.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.
@@ -92,6 +92,7 @@ docs/PageableMode.md
92
92
  docs/PlayerApi.md
93
93
  docs/PlayerGetPlayerInformation.md
94
94
  docs/PlayerSessionEndRequest.md
95
+ docs/PlayerSessionEndResponse.md
95
96
  docs/PlayerSessionStartRequest.md
96
97
  docs/PlayerSessionStartResponse.md
97
98
  docs/PlayerSessionsApi.md
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- ## @rebornteam/reborn-api@4.5.0
1
+ ## @rebornteam/reborn-api@4.6.0
2
2
 
3
3
  This generator creates TypeScript/JavaScript client that utilizes [axios](https://github.com/axios/axios). The generated Node module can be used in the following environments:
4
4
 
@@ -36,7 +36,7 @@ navigate to the folder of your consuming project and run one of the following co
36
36
  _published:_
37
37
 
38
38
  ```
39
- npm install @rebornteam/reborn-api@4.5.0 --save
39
+ npm install @rebornteam/reborn-api@4.6.0 --save
40
40
  ```
41
41
 
42
42
  _unPublished (not recommended):_
@@ -200,6 +200,7 @@ Class | Method | HTTP request | Description
200
200
  - [PageableMode](docs/PageableMode.md)
201
201
  - [PlayerGetPlayerInformation](docs/PlayerGetPlayerInformation.md)
202
202
  - [PlayerSessionEndRequest](docs/PlayerSessionEndRequest.md)
203
+ - [PlayerSessionEndResponse](docs/PlayerSessionEndResponse.md)
203
204
  - [PlayerSessionStartRequest](docs/PlayerSessionStartRequest.md)
204
205
  - [PlayerSessionStartResponse](docs/PlayerSessionStartResponse.md)
205
206
  - [PunishmentGetPunishmentResponse](docs/PunishmentGetPunishmentResponse.md)
package/api.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * Reborn API
5
5
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
6
6
  *
7
- * The version of the OpenAPI document: 4.5.0
7
+ * The version of the OpenAPI document: 4.6.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -1537,6 +1537,43 @@ export interface PlayerSessionEndRequest {
1537
1537
  */
1538
1538
  'serverSessionId': string;
1539
1539
  }
1540
+ /**
1541
+ * Result of POST /v1/player-session/end. Confirms whether a session was closed and returns that session\'s lifetime plus the player\'s refreshed aggregate stats.
1542
+ */
1543
+ export interface PlayerSessionEndResponse {
1544
+ /**
1545
+ * Player Minecraft UUID, echoed from the request
1546
+ */
1547
+ 'playerUuid': string;
1548
+ /**
1549
+ * Server session id the player was on, echoed from the request
1550
+ */
1551
+ 'serverSessionId': string;
1552
+ /**
1553
+ * True when an active session was found and closed by this call; false on a no-op (no active session existed, e.g. a duplicate/retried end event).
1554
+ */
1555
+ 'sessionClosed': boolean;
1556
+ /**
1557
+ * Id of the session that was closed. Null on a no-op.
1558
+ */
1559
+ 'sessionId'?: string | null;
1560
+ /**
1561
+ * When the closed session was opened (ISO-8601). Null on a no-op.
1562
+ */
1563
+ 'startedAt'?: string | null;
1564
+ /**
1565
+ * When the session was closed (ISO-8601), i.e. now. Null on a no-op.
1566
+ */
1567
+ 'endedAt'?: string | null;
1568
+ /**
1569
+ * Length of the closed session in seconds (endedAt - startedAt). Null on a no-op.
1570
+ */
1571
+ 'durationSeconds'?: number | null;
1572
+ /**
1573
+ * Player\'s aggregate session stats, recomputed after this session was closed (so the just-ended session is included in the totals).
1574
+ */
1575
+ 'sessionStats': AdminPlayerSessionStats;
1576
+ }
1540
1577
  /**
1541
1578
  * Unified player-join request. Runs the full authorization check (VPN, bypass, punishments) and conditionally opens a player_session for the allowed players.
1542
1579
  */
@@ -7038,7 +7075,7 @@ export class PlayerApi extends BaseAPI {
7038
7075
  export const PlayerSessionsApiAxiosParamCreator = function (configuration?: Configuration) {
7039
7076
  return {
7040
7077
  /**
7041
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
7078
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
7042
7079
  * @summary Close the active player session
7043
7080
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
7044
7081
  * @param {*} [options] Override http request option.
@@ -7064,6 +7101,7 @@ export const PlayerSessionsApiAxiosParamCreator = function (configuration?: Conf
7064
7101
  await setBearerAuthToObject(localVarHeaderParameter, configuration)
7065
7102
 
7066
7103
  localVarHeaderParameter['Content-Type'] = 'application/json';
7104
+ localVarHeaderParameter['Accept'] = 'application/json';
7067
7105
 
7068
7106
  setSearchParams(localVarUrlObj, localVarQueryParameter);
7069
7107
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
@@ -7124,13 +7162,13 @@ export const PlayerSessionsApiFp = function(configuration?: Configuration) {
7124
7162
  const localVarAxiosParamCreator = PlayerSessionsApiAxiosParamCreator(configuration)
7125
7163
  return {
7126
7164
  /**
7127
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
7165
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
7128
7166
  * @summary Close the active player session
7129
7167
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
7130
7168
  * @param {*} [options] Override http request option.
7131
7169
  * @throws {RequiredError}
7132
7170
  */
7133
- async end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
7171
+ async end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PlayerSessionEndResponse>> {
7134
7172
  const localVarAxiosArgs = await localVarAxiosParamCreator.end(playerSessionEndRequest, options);
7135
7173
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
7136
7174
  const localVarOperationServerBasePath = operationServerMap['PlayerSessionsApi.end']?.[localVarOperationServerIndex]?.url;
@@ -7159,13 +7197,13 @@ export const PlayerSessionsApiFactory = function (configuration?: Configuration,
7159
7197
  const localVarFp = PlayerSessionsApiFp(configuration)
7160
7198
  return {
7161
7199
  /**
7162
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
7200
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
7163
7201
  * @summary Close the active player session
7164
7202
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
7165
7203
  * @param {*} [options] Override http request option.
7166
7204
  * @throws {RequiredError}
7167
7205
  */
7168
- end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): AxiosPromise<void> {
7206
+ end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): AxiosPromise<PlayerSessionEndResponse> {
7169
7207
  return localVarFp.end(playerSessionEndRequest, options).then((request) => request(axios, basePath));
7170
7208
  },
7171
7209
  /**
@@ -7186,7 +7224,7 @@ export const PlayerSessionsApiFactory = function (configuration?: Configuration,
7186
7224
  */
7187
7225
  export class PlayerSessionsApi extends BaseAPI {
7188
7226
  /**
7189
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
7227
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
7190
7228
  * @summary Close the active player session
7191
7229
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
7192
7230
  * @param {*} [options] Override http request option.
package/base.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * Reborn API
5
5
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
6
6
  *
7
- * The version of the OpenAPI document: 4.5.0
7
+ * The version of the OpenAPI document: 4.6.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/common.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * Reborn API
5
5
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
6
6
  *
7
- * The version of the OpenAPI document: 4.5.0
7
+ * The version of the OpenAPI document: 4.6.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/configuration.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * Reborn API
4
4
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
5
5
  *
6
- * The version of the OpenAPI document: 4.5.0
6
+ * The version of the OpenAPI document: 4.6.0
7
7
  *
8
8
  *
9
9
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/api.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
4
4
  *
5
- * The version of the OpenAPI document: 4.5.0
5
+ * The version of the OpenAPI document: 4.6.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -1485,6 +1485,43 @@ export interface PlayerSessionEndRequest {
1485
1485
  */
1486
1486
  'serverSessionId': string;
1487
1487
  }
1488
+ /**
1489
+ * Result of POST /v1/player-session/end. Confirms whether a session was closed and returns that session\'s lifetime plus the player\'s refreshed aggregate stats.
1490
+ */
1491
+ export interface PlayerSessionEndResponse {
1492
+ /**
1493
+ * Player Minecraft UUID, echoed from the request
1494
+ */
1495
+ 'playerUuid': string;
1496
+ /**
1497
+ * Server session id the player was on, echoed from the request
1498
+ */
1499
+ 'serverSessionId': string;
1500
+ /**
1501
+ * True when an active session was found and closed by this call; false on a no-op (no active session existed, e.g. a duplicate/retried end event).
1502
+ */
1503
+ 'sessionClosed': boolean;
1504
+ /**
1505
+ * Id of the session that was closed. Null on a no-op.
1506
+ */
1507
+ 'sessionId'?: string | null;
1508
+ /**
1509
+ * When the closed session was opened (ISO-8601). Null on a no-op.
1510
+ */
1511
+ 'startedAt'?: string | null;
1512
+ /**
1513
+ * When the session was closed (ISO-8601), i.e. now. Null on a no-op.
1514
+ */
1515
+ 'endedAt'?: string | null;
1516
+ /**
1517
+ * Length of the closed session in seconds (endedAt - startedAt). Null on a no-op.
1518
+ */
1519
+ 'durationSeconds'?: number | null;
1520
+ /**
1521
+ * Player\'s aggregate session stats, recomputed after this session was closed (so the just-ended session is included in the totals).
1522
+ */
1523
+ 'sessionStats': AdminPlayerSessionStats;
1524
+ }
1488
1525
  /**
1489
1526
  * Unified player-join request. Runs the full authorization check (VPN, bypass, punishments) and conditionally opens a player_session for the allowed players.
1490
1527
  */
@@ -4189,7 +4226,7 @@ export declare class PlayerApi extends BaseAPI {
4189
4226
  */
4190
4227
  export declare const PlayerSessionsApiAxiosParamCreator: (configuration?: Configuration) => {
4191
4228
  /**
4192
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4229
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
4193
4230
  * @summary Close the active player session
4194
4231
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
4195
4232
  * @param {*} [options] Override http request option.
@@ -4210,13 +4247,13 @@ export declare const PlayerSessionsApiAxiosParamCreator: (configuration?: Config
4210
4247
  */
4211
4248
  export declare const PlayerSessionsApiFp: (configuration?: Configuration) => {
4212
4249
  /**
4213
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4250
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
4214
4251
  * @summary Close the active player session
4215
4252
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
4216
4253
  * @param {*} [options] Override http request option.
4217
4254
  * @throws {RequiredError}
4218
4255
  */
4219
- end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
4256
+ end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PlayerSessionEndResponse>>;
4220
4257
  /**
4221
4258
  * Single round-trip the game server / proxy makes when a player joins. Runs the full authorization check (VPN detection, bypass tiers, punishment propagation, active-ban evaluation) and — only if allowed — opens (or re-attaches to) a player_session row. Replaces the older two-call flow (`GET /v1/connection/details` followed by a session-open POST). `/v1/connection/details` remains available for admin / debugging use but is deprecated for player-join purposes. Idempotent at the session-open step: a duplicate join request returns the existing active session\'s id instead of creating a duplicate row. Response shape: - `connectionResult` — always populated; carries ALLOWED / BANNED / VPN_DETECTED etc. plus a formatted kick message when denied. - `sessionId` / `startedAt` — populated only when the join was allowed. - Connection context (IP, location, VPN%, bypass) for display + logging. - `playerInformation`, `activePunishments` — full player history at join time. - `sessionStats` — total seconds played / days active / currently-online, useful for game-server-side welcome messages.
4222
4259
  * @summary Player join — unified authorization + session-open
@@ -4231,13 +4268,13 @@ export declare const PlayerSessionsApiFp: (configuration?: Configuration) => {
4231
4268
  */
4232
4269
  export declare const PlayerSessionsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
4233
4270
  /**
4234
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4271
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
4235
4272
  * @summary Close the active player session
4236
4273
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
4237
4274
  * @param {*} [options] Override http request option.
4238
4275
  * @throws {RequiredError}
4239
4276
  */
4240
- end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
4277
+ end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): AxiosPromise<PlayerSessionEndResponse>;
4241
4278
  /**
4242
4279
  * Single round-trip the game server / proxy makes when a player joins. Runs the full authorization check (VPN detection, bypass tiers, punishment propagation, active-ban evaluation) and — only if allowed — opens (or re-attaches to) a player_session row. Replaces the older two-call flow (`GET /v1/connection/details` followed by a session-open POST). `/v1/connection/details` remains available for admin / debugging use but is deprecated for player-join purposes. Idempotent at the session-open step: a duplicate join request returns the existing active session\'s id instead of creating a duplicate row. Response shape: - `connectionResult` — always populated; carries ALLOWED / BANNED / VPN_DETECTED etc. plus a formatted kick message when denied. - `sessionId` / `startedAt` — populated only when the join was allowed. - Connection context (IP, location, VPN%, bypass) for display + logging. - `playerInformation`, `activePunishments` — full player history at join time. - `sessionStats` — total seconds played / days active / currently-online, useful for game-server-side welcome messages.
4243
4280
  * @summary Player join — unified authorization + session-open
@@ -4252,13 +4289,13 @@ export declare const PlayerSessionsApiFactory: (configuration?: Configuration, b
4252
4289
  */
4253
4290
  export declare class PlayerSessionsApi extends BaseAPI {
4254
4291
  /**
4255
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4292
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
4256
4293
  * @summary Close the active player session
4257
4294
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
4258
4295
  * @param {*} [options] Override http request option.
4259
4296
  * @throws {RequiredError}
4260
4297
  */
4261
- end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
4298
+ end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<PlayerSessionEndResponse, any, {}>>;
4262
4299
  /**
4263
4300
  * Single round-trip the game server / proxy makes when a player joins. Runs the full authorization check (VPN detection, bypass tiers, punishment propagation, active-ban evaluation) and — only if allowed — opens (or re-attaches to) a player_session row. Replaces the older two-call flow (`GET /v1/connection/details` followed by a session-open POST). `/v1/connection/details` remains available for admin / debugging use but is deprecated for player-join purposes. Idempotent at the session-open step: a duplicate join request returns the existing active session\'s id instead of creating a duplicate row. Response shape: - `connectionResult` — always populated; carries ALLOWED / BANNED / VPN_DETECTED etc. plus a formatted kick message when denied. - `sessionId` / `startedAt` — populated only when the join was allowed. - Connection context (IP, location, VPN%, bypass) for display + logging. - `playerInformation`, `activePunishments` — full player history at join time. - `sessionStats` — total seconds played / days active / currently-online, useful for game-server-side welcome messages.
4264
4301
  * @summary Player join — unified authorization + session-open
package/dist/api.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * Reborn API
6
6
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
7
7
  *
8
- * The version of the OpenAPI document: 4.5.0
8
+ * The version of the OpenAPI document: 4.6.0
9
9
  *
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4940,7 +4940,7 @@ exports.PlayerApi = PlayerApi;
4940
4940
  const PlayerSessionsApiAxiosParamCreator = function (configuration) {
4941
4941
  return {
4942
4942
  /**
4943
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4943
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
4944
4944
  * @summary Close the active player session
4945
4945
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
4946
4946
  * @param {*} [options] Override http request option.
@@ -4963,6 +4963,7 @@ const PlayerSessionsApiAxiosParamCreator = function (configuration) {
4963
4963
  // http bearer authentication required
4964
4964
  yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
4965
4965
  localVarHeaderParameter['Content-Type'] = 'application/json';
4966
+ localVarHeaderParameter['Accept'] = 'application/json';
4966
4967
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
4967
4968
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4968
4969
  localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
@@ -5016,7 +5017,7 @@ const PlayerSessionsApiFp = function (configuration) {
5016
5017
  const localVarAxiosParamCreator = (0, exports.PlayerSessionsApiAxiosParamCreator)(configuration);
5017
5018
  return {
5018
5019
  /**
5019
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
5020
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
5020
5021
  * @summary Close the active player session
5021
5022
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
5022
5023
  * @param {*} [options] Override http request option.
@@ -5057,7 +5058,7 @@ const PlayerSessionsApiFactory = function (configuration, basePath, axios) {
5057
5058
  const localVarFp = (0, exports.PlayerSessionsApiFp)(configuration);
5058
5059
  return {
5059
5060
  /**
5060
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
5061
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
5061
5062
  * @summary Close the active player session
5062
5063
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
5063
5064
  * @param {*} [options] Override http request option.
@@ -5084,7 +5085,7 @@ exports.PlayerSessionsApiFactory = PlayerSessionsApiFactory;
5084
5085
  */
5085
5086
  class PlayerSessionsApi extends base_1.BaseAPI {
5086
5087
  /**
5087
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
5088
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
5088
5089
  * @summary Close the active player session
5089
5090
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
5090
5091
  * @param {*} [options] Override http request option.
package/dist/base.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
4
4
  *
5
- * The version of the OpenAPI document: 4.5.0
5
+ * The version of the OpenAPI document: 4.6.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/base.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * Reborn API
6
6
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
7
7
  *
8
- * The version of the OpenAPI document: 4.5.0
8
+ * The version of the OpenAPI document: 4.6.0
9
9
  *
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/common.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
4
4
  *
5
- * The version of the OpenAPI document: 4.5.0
5
+ * The version of the OpenAPI document: 4.6.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/common.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * Reborn API
6
6
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
7
7
  *
8
- * The version of the OpenAPI document: 4.5.0
8
+ * The version of the OpenAPI document: 4.6.0
9
9
  *
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
4
4
  *
5
- * The version of the OpenAPI document: 4.5.0
5
+ * The version of the OpenAPI document: 4.6.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * Reborn API
5
5
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
6
6
  *
7
- * The version of the OpenAPI document: 4.5.0
7
+ * The version of the OpenAPI document: 4.6.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/esm/api.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
4
4
  *
5
- * The version of the OpenAPI document: 4.5.0
5
+ * The version of the OpenAPI document: 4.6.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -1485,6 +1485,43 @@ export interface PlayerSessionEndRequest {
1485
1485
  */
1486
1486
  'serverSessionId': string;
1487
1487
  }
1488
+ /**
1489
+ * Result of POST /v1/player-session/end. Confirms whether a session was closed and returns that session\'s lifetime plus the player\'s refreshed aggregate stats.
1490
+ */
1491
+ export interface PlayerSessionEndResponse {
1492
+ /**
1493
+ * Player Minecraft UUID, echoed from the request
1494
+ */
1495
+ 'playerUuid': string;
1496
+ /**
1497
+ * Server session id the player was on, echoed from the request
1498
+ */
1499
+ 'serverSessionId': string;
1500
+ /**
1501
+ * True when an active session was found and closed by this call; false on a no-op (no active session existed, e.g. a duplicate/retried end event).
1502
+ */
1503
+ 'sessionClosed': boolean;
1504
+ /**
1505
+ * Id of the session that was closed. Null on a no-op.
1506
+ */
1507
+ 'sessionId'?: string | null;
1508
+ /**
1509
+ * When the closed session was opened (ISO-8601). Null on a no-op.
1510
+ */
1511
+ 'startedAt'?: string | null;
1512
+ /**
1513
+ * When the session was closed (ISO-8601), i.e. now. Null on a no-op.
1514
+ */
1515
+ 'endedAt'?: string | null;
1516
+ /**
1517
+ * Length of the closed session in seconds (endedAt - startedAt). Null on a no-op.
1518
+ */
1519
+ 'durationSeconds'?: number | null;
1520
+ /**
1521
+ * Player\'s aggregate session stats, recomputed after this session was closed (so the just-ended session is included in the totals).
1522
+ */
1523
+ 'sessionStats': AdminPlayerSessionStats;
1524
+ }
1488
1525
  /**
1489
1526
  * Unified player-join request. Runs the full authorization check (VPN, bypass, punishments) and conditionally opens a player_session for the allowed players.
1490
1527
  */
@@ -4189,7 +4226,7 @@ export declare class PlayerApi extends BaseAPI {
4189
4226
  */
4190
4227
  export declare const PlayerSessionsApiAxiosParamCreator: (configuration?: Configuration) => {
4191
4228
  /**
4192
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4229
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
4193
4230
  * @summary Close the active player session
4194
4231
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
4195
4232
  * @param {*} [options] Override http request option.
@@ -4210,13 +4247,13 @@ export declare const PlayerSessionsApiAxiosParamCreator: (configuration?: Config
4210
4247
  */
4211
4248
  export declare const PlayerSessionsApiFp: (configuration?: Configuration) => {
4212
4249
  /**
4213
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4250
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
4214
4251
  * @summary Close the active player session
4215
4252
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
4216
4253
  * @param {*} [options] Override http request option.
4217
4254
  * @throws {RequiredError}
4218
4255
  */
4219
- end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
4256
+ end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PlayerSessionEndResponse>>;
4220
4257
  /**
4221
4258
  * Single round-trip the game server / proxy makes when a player joins. Runs the full authorization check (VPN detection, bypass tiers, punishment propagation, active-ban evaluation) and — only if allowed — opens (or re-attaches to) a player_session row. Replaces the older two-call flow (`GET /v1/connection/details` followed by a session-open POST). `/v1/connection/details` remains available for admin / debugging use but is deprecated for player-join purposes. Idempotent at the session-open step: a duplicate join request returns the existing active session\'s id instead of creating a duplicate row. Response shape: - `connectionResult` — always populated; carries ALLOWED / BANNED / VPN_DETECTED etc. plus a formatted kick message when denied. - `sessionId` / `startedAt` — populated only when the join was allowed. - Connection context (IP, location, VPN%, bypass) for display + logging. - `playerInformation`, `activePunishments` — full player history at join time. - `sessionStats` — total seconds played / days active / currently-online, useful for game-server-side welcome messages.
4222
4259
  * @summary Player join — unified authorization + session-open
@@ -4231,13 +4268,13 @@ export declare const PlayerSessionsApiFp: (configuration?: Configuration) => {
4231
4268
  */
4232
4269
  export declare const PlayerSessionsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
4233
4270
  /**
4234
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4271
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
4235
4272
  * @summary Close the active player session
4236
4273
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
4237
4274
  * @param {*} [options] Override http request option.
4238
4275
  * @throws {RequiredError}
4239
4276
  */
4240
- end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
4277
+ end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): AxiosPromise<PlayerSessionEndResponse>;
4241
4278
  /**
4242
4279
  * Single round-trip the game server / proxy makes when a player joins. Runs the full authorization check (VPN detection, bypass tiers, punishment propagation, active-ban evaluation) and — only if allowed — opens (or re-attaches to) a player_session row. Replaces the older two-call flow (`GET /v1/connection/details` followed by a session-open POST). `/v1/connection/details` remains available for admin / debugging use but is deprecated for player-join purposes. Idempotent at the session-open step: a duplicate join request returns the existing active session\'s id instead of creating a duplicate row. Response shape: - `connectionResult` — always populated; carries ALLOWED / BANNED / VPN_DETECTED etc. plus a formatted kick message when denied. - `sessionId` / `startedAt` — populated only when the join was allowed. - Connection context (IP, location, VPN%, bypass) for display + logging. - `playerInformation`, `activePunishments` — full player history at join time. - `sessionStats` — total seconds played / days active / currently-online, useful for game-server-side welcome messages.
4243
4280
  * @summary Player join — unified authorization + session-open
@@ -4252,13 +4289,13 @@ export declare const PlayerSessionsApiFactory: (configuration?: Configuration, b
4252
4289
  */
4253
4290
  export declare class PlayerSessionsApi extends BaseAPI {
4254
4291
  /**
4255
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4292
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
4256
4293
  * @summary Close the active player session
4257
4294
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
4258
4295
  * @param {*} [options] Override http request option.
4259
4296
  * @throws {RequiredError}
4260
4297
  */
4261
- end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
4298
+ end(playerSessionEndRequest: PlayerSessionEndRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<PlayerSessionEndResponse, any, {}>>;
4262
4299
  /**
4263
4300
  * Single round-trip the game server / proxy makes when a player joins. Runs the full authorization check (VPN detection, bypass tiers, punishment propagation, active-ban evaluation) and — only if allowed — opens (or re-attaches to) a player_session row. Replaces the older two-call flow (`GET /v1/connection/details` followed by a session-open POST). `/v1/connection/details` remains available for admin / debugging use but is deprecated for player-join purposes. Idempotent at the session-open step: a duplicate join request returns the existing active session\'s id instead of creating a duplicate row. Response shape: - `connectionResult` — always populated; carries ALLOWED / BANNED / VPN_DETECTED etc. plus a formatted kick message when denied. - `sessionId` / `startedAt` — populated only when the join was allowed. - Connection context (IP, location, VPN%, bypass) for display + logging. - `playerInformation`, `activePunishments` — full player history at join time. - `sessionStats` — total seconds played / days active / currently-online, useful for game-server-side welcome messages.
4264
4301
  * @summary Player join — unified authorization + session-open
package/dist/esm/api.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * Reborn API
5
5
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
6
6
  *
7
- * The version of the OpenAPI document: 4.5.0
7
+ * The version of the OpenAPI document: 4.6.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4888,7 +4888,7 @@ export class PlayerApi extends BaseAPI {
4888
4888
  export const PlayerSessionsApiAxiosParamCreator = function (configuration) {
4889
4889
  return {
4890
4890
  /**
4891
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4891
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
4892
4892
  * @summary Close the active player session
4893
4893
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
4894
4894
  * @param {*} [options] Override http request option.
@@ -4911,6 +4911,7 @@ export const PlayerSessionsApiAxiosParamCreator = function (configuration) {
4911
4911
  // http bearer authentication required
4912
4912
  yield setBearerAuthToObject(localVarHeaderParameter, configuration);
4913
4913
  localVarHeaderParameter['Content-Type'] = 'application/json';
4914
+ localVarHeaderParameter['Accept'] = 'application/json';
4914
4915
  setSearchParams(localVarUrlObj, localVarQueryParameter);
4915
4916
  let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4916
4917
  localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
@@ -4963,7 +4964,7 @@ export const PlayerSessionsApiFp = function (configuration) {
4963
4964
  const localVarAxiosParamCreator = PlayerSessionsApiAxiosParamCreator(configuration);
4964
4965
  return {
4965
4966
  /**
4966
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
4967
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
4967
4968
  * @summary Close the active player session
4968
4969
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
4969
4970
  * @param {*} [options] Override http request option.
@@ -5003,7 +5004,7 @@ export const PlayerSessionsApiFactory = function (configuration, basePath, axios
5003
5004
  const localVarFp = PlayerSessionsApiFp(configuration);
5004
5005
  return {
5005
5006
  /**
5006
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
5007
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
5007
5008
  * @summary Close the active player session
5008
5009
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
5009
5010
  * @param {*} [options] Override http request option.
@@ -5029,7 +5030,7 @@ export const PlayerSessionsApiFactory = function (configuration, basePath, axios
5029
5030
  */
5030
5031
  export class PlayerSessionsApi extends BaseAPI {
5031
5032
  /**
5032
- * Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
5033
+ * Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
5033
5034
  * @summary Close the active player session
5034
5035
  * @param {PlayerSessionEndRequest} playerSessionEndRequest
5035
5036
  * @param {*} [options] Override http request option.
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
4
4
  *
5
- * The version of the OpenAPI document: 4.5.0
5
+ * The version of the OpenAPI document: 4.6.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/esm/base.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * Reborn API
5
5
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
6
6
  *
7
- * The version of the OpenAPI document: 4.5.0
7
+ * The version of the OpenAPI document: 4.6.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
4
4
  *
5
- * The version of the OpenAPI document: 4.5.0
5
+ * The version of the OpenAPI document: 4.6.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * Reborn API
5
5
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
6
6
  *
7
- * The version of the OpenAPI document: 4.5.0
7
+ * The version of the OpenAPI document: 4.6.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
4
4
  *
5
- * The version of the OpenAPI document: 4.5.0
5
+ * The version of the OpenAPI document: 4.6.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -3,7 +3,7 @@
3
3
  * Reborn API
4
4
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
5
5
  *
6
- * The version of the OpenAPI document: 4.5.0
6
+ * The version of the OpenAPI document: 4.6.0
7
7
  *
8
8
  *
9
9
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
4
4
  *
5
- * The version of the OpenAPI document: 4.5.0
5
+ * The version of the OpenAPI document: 4.6.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/esm/index.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * Reborn API
5
5
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
6
6
  *
7
- * The version of the OpenAPI document: 4.5.0
7
+ * The version of the OpenAPI document: 4.6.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Reborn API
3
3
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
4
4
  *
5
- * The version of the OpenAPI document: 4.5.0
5
+ * The version of the OpenAPI document: 4.6.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * Reborn API
6
6
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
7
7
  *
8
- * The version of the OpenAPI document: 4.5.0
8
+ * The version of the OpenAPI document: 4.6.0
9
9
  *
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -0,0 +1,35 @@
1
+ # PlayerSessionEndResponse
2
+
3
+ Result of POST /v1/player-session/end. Confirms whether a session was closed and returns that session\'s lifetime plus the player\'s refreshed aggregate stats.
4
+
5
+ ## Properties
6
+
7
+ Name | Type | Description | Notes
8
+ ------------ | ------------- | ------------- | -------------
9
+ **playerUuid** | **string** | Player Minecraft UUID, echoed from the request | [default to undefined]
10
+ **serverSessionId** | **string** | Server session id the player was on, echoed from the request | [default to undefined]
11
+ **sessionClosed** | **boolean** | True when an active session was found and closed by this call; false on a no-op (no active session existed, e.g. a duplicate/retried end event). | [default to undefined]
12
+ **sessionId** | **string** | Id of the session that was closed. Null on a no-op. | [optional] [default to undefined]
13
+ **startedAt** | **string** | When the closed session was opened (ISO-8601). Null on a no-op. | [optional] [default to undefined]
14
+ **endedAt** | **string** | When the session was closed (ISO-8601), i.e. now. Null on a no-op. | [optional] [default to undefined]
15
+ **durationSeconds** | **number** | Length of the closed session in seconds (endedAt - startedAt). Null on a no-op. | [optional] [default to undefined]
16
+ **sessionStats** | [**AdminPlayerSessionStats**](AdminPlayerSessionStats.md) | Player\&#39;s aggregate session stats, recomputed after this session was closed (so the just-ended session is included in the totals). | [default to undefined]
17
+
18
+ ## Example
19
+
20
+ ```typescript
21
+ import { PlayerSessionEndResponse } from '@rebornteam/reborn-api';
22
+
23
+ const instance: PlayerSessionEndResponse = {
24
+ playerUuid,
25
+ serverSessionId,
26
+ sessionClosed,
27
+ sessionId,
28
+ startedAt,
29
+ endedAt,
30
+ durationSeconds,
31
+ sessionStats,
32
+ };
33
+ ```
34
+
35
+ [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
@@ -8,9 +8,9 @@ All URIs are relative to *https://api.smsh.sh*
8
8
  |[**start**](#start) | **POST** /v1/player-session/start | Player join — unified authorization + session-open|
9
9
 
10
10
  # **end**
11
- > end(playerSessionEndRequest)
11
+ > PlayerSessionEndResponse end(playerSessionEndRequest)
12
12
 
13
- Closes the active session for a (playerUuid, serverSessionId) pair. No-op if no active session is found, so duplicate end events from a retry don\'t error.
13
+ Closes the active session for a (playerUuid, serverSessionId) pair and returns an acknowledgment: whether a session was actually closed, that session\'s start / end / duration, and the player\'s aggregate session stats recomputed after the close. No-op if no active session is found — `sessionClosed` is false and the per-session fields are null (stats are still returned) — so duplicate end events from a retry don\'t error.
14
14
 
15
15
  ### Example
16
16
 
@@ -40,7 +40,7 @@ const { status, data } = await apiInstance.end(
40
40
 
41
41
  ### Return type
42
42
 
43
- void (empty response body)
43
+ **PlayerSessionEndResponse**
44
44
 
45
45
  ### Authorization
46
46
 
@@ -49,13 +49,13 @@ void (empty response body)
49
49
  ### HTTP request headers
50
50
 
51
51
  - **Content-Type**: application/json
52
- - **Accept**: Not defined
52
+ - **Accept**: application/json
53
53
 
54
54
 
55
55
  ### HTTP response details
56
56
  | Status code | Description | Response headers |
57
57
  |-------------|-------------|------------------|
58
- |**204** | Session closed (or no-op if no active session) | - |
58
+ |**200** | End handled. Inspect &#x60;sessionClosed&#x60; to tell whether a session was actually closed. | - |
59
59
  |**401** | Unauthorized | - |
60
60
 
61
61
  [[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)
package/index.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * Reborn API
5
5
  * The Reborn API serves as the central backend for the platform, orchestrating secure communication between game clients and data services. This API supports two authentication methods: - **OAuth 2.0 Client Credentials**: For programmatic API access - **Discord SSO Bearer Token**: For admin endpoints requiring Discord authentication
6
6
  *
7
- * The version of the OpenAPI document: 4.5.0
7
+ * The version of the OpenAPI document: 4.6.0
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rebornteam/reborn-api",
3
- "version": "4.5.0",
3
+ "version": "4.6.0",
4
4
  "description": "OpenAPI client for @rebornteam/reborn-api",
5
5
  "author": "OpenAPI-Generator Contributors",
6
6
  "repository": {