steamworks-ffi-node 0.2.2 → 0.3.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.
- package/README.md +20 -4
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/SteamLibraryLoader.d.ts +12 -0
- package/dist/internal/SteamLibraryLoader.d.ts.map +1 -1
- package/dist/internal/SteamLibraryLoader.js +18 -0
- package/dist/internal/SteamLibraryLoader.js.map +1 -1
- package/dist/internal/SteamStatsManager.d.ts +165 -0
- package/dist/internal/SteamStatsManager.d.ts.map +1 -0
- package/dist/internal/SteamStatsManager.js +545 -0
- package/dist/internal/SteamStatsManager.js.map +1 -0
- package/dist/steam.d.ts +65 -0
- package/dist/steam.d.ts.map +1 -1
- package/dist/steam.js +98 -0
- package/dist/steam.js.map +1 -1
- package/dist/types.d.ts +21 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -4,7 +4,9 @@ A production-ready TypeScript/JavaScript wrapper for the Steamworks SDK using Ko
|
|
|
4
4
|
|
|
5
5
|
> ✅ **No C++ Compilation Required**: Uses Koffi FFI for seamless installation without Visual Studio Build Tools!
|
|
6
6
|
|
|
7
|
-
> 🎉 **NEW: 100% Achievement API Coverage** - All 20 Steam achievement functions
|
|
7
|
+
> 🎉 **NEW: 100% Achievement API Coverage** - All 20 Steam achievement functions implemented! [See Documentation](https://github.com/ArtyProf/steamworks-ffi-node/blob/main/docs/ACHIEVEMENT_MANAGER.md)
|
|
8
|
+
|
|
9
|
+
> 🎉 **NEW: 100% Stats API Coverage** - All 13 Steam statistics functions implemented! [See Documentation](https://github.com/ArtyProf/steamworks-ffi-node/blob/main/docs/STATS_MANAGER.md)
|
|
8
10
|
|
|
9
11
|
## 🎯 Features
|
|
10
12
|
|
|
@@ -15,6 +17,10 @@ A production-ready TypeScript/JavaScript wrapper for the Steamworks SDK using Ko
|
|
|
15
17
|
- ✅ Friend comparisons (see friend achievements)
|
|
16
18
|
- ✅ Global statistics (unlock percentages, popularity sorting)
|
|
17
19
|
- ✅ Testing tools (reset stats/achievements)
|
|
20
|
+
- **Complete Stats API**: 100% coverage of Steam User Stats functionality (13/13 functions)
|
|
21
|
+
- ✅ User stats (get/set int/float, average rate tracking)
|
|
22
|
+
- ✅ Friend comparisons (compare stats with friends)
|
|
23
|
+
- ✅ Global statistics (worldwide aggregated data with history)
|
|
18
24
|
- **Real Steam Integration**: Direct FFI calls to Steamworks C++ SDK
|
|
19
25
|
- **Cross-Platform**: Windows, macOS, and Linux support
|
|
20
26
|
- **Batteries Included**: All Steamworks redistributables bundled - no SDK download needed!
|
|
@@ -60,6 +66,17 @@ if (initialized) {
|
|
|
60
66
|
// Check unlock status from Steam
|
|
61
67
|
const isUnlocked = await steam.isAchievementUnlocked('ACH_WIN_ONE_GAME');
|
|
62
68
|
console.log('Achievement unlocked:', isUnlocked);
|
|
69
|
+
|
|
70
|
+
// Track user statistics
|
|
71
|
+
const kills = await steam.getStatInt('total_kills') || 0;
|
|
72
|
+
await steam.setStatInt('total_kills', kills + 1);
|
|
73
|
+
|
|
74
|
+
// Get global statistics
|
|
75
|
+
await steam.requestGlobalStats(7);
|
|
76
|
+
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
77
|
+
steam.runCallbacks();
|
|
78
|
+
const globalKills = await steam.getGlobalStatInt('global.total_kills');
|
|
79
|
+
console.log('Total kills worldwide:', globalKills);
|
|
63
80
|
}
|
|
64
81
|
|
|
65
82
|
// Cleanup
|
|
@@ -100,10 +117,9 @@ For immediate testing, use Spacewar (App ID 480):
|
|
|
100
117
|
|
|
101
118
|
## 📚 API Documentation
|
|
102
119
|
|
|
103
|
-
|
|
120
|
+
Complete documentation for all APIs is available in the [docs folder](https://github.com/ArtyProf/steamworks-ffi-node/tree/main/docs):
|
|
104
121
|
|
|
105
|
-
|
|
106
|
-
- **[Achievement Manager API](https://github.com/ArtyProf/steamworks-ffi-node/blob/main/docs/AchievementManager.md)** - Complete achievement functionality (20 functions)
|
|
122
|
+
➡️ **[View Complete Documentation](https://github.com/ArtyProf/steamworks-ffi-node/blob/main/docs/README.md)**
|
|
107
123
|
|
|
108
124
|
## 🎮 Real Steam Integration
|
|
109
125
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import SteamworksSDK from './steam';
|
|
2
|
-
import { SteamAchievement, SteamInitOptions, SteamStatus, AchievementProgressLimits, UserAchievement, AchievementGlobalStats, AchievementWithIcon } from './types';
|
|
3
|
-
export { SteamAchievement, SteamInitOptions, SteamStatus, AchievementProgressLimits, UserAchievement, AchievementGlobalStats, AchievementWithIcon };
|
|
2
|
+
import { SteamAchievement, SteamInitOptions, SteamStatus, AchievementProgressLimits, UserAchievement, AchievementGlobalStats, AchievementWithIcon, SteamStat, GlobalStat, GlobalStatHistory, UserStat } from './types';
|
|
3
|
+
export { SteamAchievement, SteamInitOptions, SteamStatus, AchievementProgressLimits, UserAchievement, AchievementGlobalStats, AchievementWithIcon, SteamStat, GlobalStat, GlobalStatHistory, UserStat };
|
|
4
4
|
export default SteamworksSDK;
|
|
5
5
|
export { SteamworksSDK as Steam };
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,SAAS,CAAC;AACpC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,yBAAyB,EACzB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,SAAS,CAAC;AACpC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,yBAAyB,EACzB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACT,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,yBAAyB,EACzB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACT,CAAC;AAGF,eAAe,aAAa,CAAC;AAG7B,OAAO,EAAE,aAAa,IAAI,KAAK,EAAE,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAoC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAoC;AAkCV,gBAlCnB,eAAa,CAkCW;AAJ/B,0BAA0B;AAC1B,kBAAe,eAAa,CAAC"}
|
|
@@ -32,6 +32,18 @@ export declare class SteamLibraryLoader {
|
|
|
32
32
|
SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo: koffi.KoffiFunction;
|
|
33
33
|
SteamAPI_ISteamUserStats_GetAchievementAchievedPercent: koffi.KoffiFunction;
|
|
34
34
|
SteamAPI_ISteamUserStats_ResetAllStats: koffi.KoffiFunction;
|
|
35
|
+
SteamAPI_ISteamUserStats_GetStatInt32: koffi.KoffiFunction;
|
|
36
|
+
SteamAPI_ISteamUserStats_GetStatFloat: koffi.KoffiFunction;
|
|
37
|
+
SteamAPI_ISteamUserStats_SetStatInt32: koffi.KoffiFunction;
|
|
38
|
+
SteamAPI_ISteamUserStats_SetStatFloat: koffi.KoffiFunction;
|
|
39
|
+
SteamAPI_ISteamUserStats_UpdateAvgRateStat: koffi.KoffiFunction;
|
|
40
|
+
SteamAPI_ISteamUserStats_GetUserStatInt32: koffi.KoffiFunction;
|
|
41
|
+
SteamAPI_ISteamUserStats_GetUserStatFloat: koffi.KoffiFunction;
|
|
42
|
+
SteamAPI_ISteamUserStats_RequestGlobalStats: koffi.KoffiFunction;
|
|
43
|
+
SteamAPI_ISteamUserStats_GetGlobalStatInt64: koffi.KoffiFunction;
|
|
44
|
+
SteamAPI_ISteamUserStats_GetGlobalStatDouble: koffi.KoffiFunction;
|
|
45
|
+
SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64: koffi.KoffiFunction;
|
|
46
|
+
SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble: koffi.KoffiFunction;
|
|
35
47
|
/**
|
|
36
48
|
* Get platform-specific Steam library path
|
|
37
49
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SteamLibraryLoader.d.ts","sourceRoot":"","sources":["../../src/internal/SteamLibraryLoader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAgC;IAGzC,aAAa,EAAG,KAAK,CAAC,aAAa,CAAC;IACpC,iBAAiB,EAAG,KAAK,CAAC,aAAa,CAAC;IACxC,qBAAqB,EAAG,KAAK,CAAC,aAAa,CAAC;IAC5C,uBAAuB,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9C,4BAA4B,EAAG,KAAK,CAAC,aAAa,CAAC;IACnD,uBAAuB,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9C,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,uDAAuD,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9E,uCAAuC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9D,oDAAoD,EAAG,KAAK,CAAC,aAAa,CAAC;IAC3E,uCAAuC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9D,yCAAyC,EAAG,KAAK,CAAC,aAAa,CAAC;IAChE,mCAAmC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC1D,4CAA4C,EAAG,KAAK,CAAC,aAAa,CAAC;IACnE,8BAA8B,EAAG,KAAK,CAAC,aAAa,CAAC;IAGrD,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,oDAAoD,EAAG,KAAK,CAAC,aAAa,CAAC;IAG3E,0DAA0D,EAAG,KAAK,CAAC,aAAa,CAAC;IACjF,0DAA0D,EAAG,KAAK,CAAC,aAAa,CAAC;IAGjF,yCAAyC,EAAG,KAAK,CAAC,aAAa,CAAC;IAChE,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,wDAAwD,EAAG,KAAK,CAAC,aAAa,CAAC;IAG/E,4DAA4D,EAAG,KAAK,CAAC,aAAa,CAAC;IACnF,uDAAuD,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9E,2DAA2D,EAAG,KAAK,CAAC,aAAa,CAAC;IAClF,sDAAsD,EAAG,KAAK,CAAC,aAAa,CAAC;IAG7E,sCAAsC,EAAG,KAAK,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"SteamLibraryLoader.d.ts","sourceRoot":"","sources":["../../src/internal/SteamLibraryLoader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAgC;IAGzC,aAAa,EAAG,KAAK,CAAC,aAAa,CAAC;IACpC,iBAAiB,EAAG,KAAK,CAAC,aAAa,CAAC;IACxC,qBAAqB,EAAG,KAAK,CAAC,aAAa,CAAC;IAC5C,uBAAuB,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9C,4BAA4B,EAAG,KAAK,CAAC,aAAa,CAAC;IACnD,uBAAuB,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9C,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,uDAAuD,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9E,uCAAuC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9D,oDAAoD,EAAG,KAAK,CAAC,aAAa,CAAC;IAC3E,uCAAuC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9D,yCAAyC,EAAG,KAAK,CAAC,aAAa,CAAC;IAChE,mCAAmC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC1D,4CAA4C,EAAG,KAAK,CAAC,aAAa,CAAC;IACnE,8BAA8B,EAAG,KAAK,CAAC,aAAa,CAAC;IAGrD,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,oDAAoD,EAAG,KAAK,CAAC,aAAa,CAAC;IAG3E,0DAA0D,EAAG,KAAK,CAAC,aAAa,CAAC;IACjF,0DAA0D,EAAG,KAAK,CAAC,aAAa,CAAC;IAGjF,yCAAyC,EAAG,KAAK,CAAC,aAAa,CAAC;IAChE,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,wDAAwD,EAAG,KAAK,CAAC,aAAa,CAAC;IAG/E,4DAA4D,EAAG,KAAK,CAAC,aAAa,CAAC;IACnF,uDAAuD,EAAG,KAAK,CAAC,aAAa,CAAC;IAC9E,2DAA2D,EAAG,KAAK,CAAC,aAAa,CAAC;IAClF,sDAAsD,EAAG,KAAK,CAAC,aAAa,CAAC;IAG7E,sCAAsC,EAAG,KAAK,CAAC,aAAa,CAAC;IAO7D,qCAAqC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC5D,qCAAqC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC5D,qCAAqC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC5D,qCAAqC,EAAG,KAAK,CAAC,aAAa,CAAC;IAC5D,0CAA0C,EAAG,KAAK,CAAC,aAAa,CAAC;IAGjE,yCAAyC,EAAG,KAAK,CAAC,aAAa,CAAC;IAChE,yCAAyC,EAAG,KAAK,CAAC,aAAa,CAAC;IAGhE,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,2CAA2C,EAAG,KAAK,CAAC,aAAa,CAAC;IAClE,4CAA4C,EAAG,KAAK,CAAC,aAAa,CAAC;IACnE,kDAAkD,EAAG,KAAK,CAAC,aAAa,CAAC;IACzE,mDAAmD,EAAG,KAAK,CAAC,aAAa,CAAC;IAEjF;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,IAAI,IAAI,IAAI;IAuEZ;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,UAAU,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI;CAGrC"}
|
|
@@ -116,6 +116,24 @@ class SteamLibraryLoader {
|
|
|
116
116
|
this.SteamAPI_ISteamUserStats_GetAchievementAchievedPercent = this.steamLib.func('SteamAPI_ISteamUserStats_GetAchievementAchievedPercent', 'bool', ['void*', 'str', 'float*']);
|
|
117
117
|
// Reset stats
|
|
118
118
|
this.SteamAPI_ISteamUserStats_ResetAllStats = this.steamLib.func('SteamAPI_ISteamUserStats_ResetAllStats', 'bool', ['void*', 'bool']);
|
|
119
|
+
// ========================================
|
|
120
|
+
// Stats API Functions
|
|
121
|
+
// ========================================
|
|
122
|
+
// User stats (get/set)
|
|
123
|
+
this.SteamAPI_ISteamUserStats_GetStatInt32 = this.steamLib.func('SteamAPI_ISteamUserStats_GetStatInt32', 'bool', ['void*', 'str', 'int32*']);
|
|
124
|
+
this.SteamAPI_ISteamUserStats_GetStatFloat = this.steamLib.func('SteamAPI_ISteamUserStats_GetStatFloat', 'bool', ['void*', 'str', 'float*']);
|
|
125
|
+
this.SteamAPI_ISteamUserStats_SetStatInt32 = this.steamLib.func('SteamAPI_ISteamUserStats_SetStatInt32', 'bool', ['void*', 'str', 'int32']);
|
|
126
|
+
this.SteamAPI_ISteamUserStats_SetStatFloat = this.steamLib.func('SteamAPI_ISteamUserStats_SetStatFloat', 'bool', ['void*', 'str', 'float']);
|
|
127
|
+
this.SteamAPI_ISteamUserStats_UpdateAvgRateStat = this.steamLib.func('SteamAPI_ISteamUserStats_UpdateAvgRateStat', 'bool', ['void*', 'str', 'float', 'double']);
|
|
128
|
+
// Friend/user stats
|
|
129
|
+
this.SteamAPI_ISteamUserStats_GetUserStatInt32 = this.steamLib.func('SteamAPI_ISteamUserStats_GetUserStatInt32', 'bool', ['void*', 'uint64', 'str', 'int32*']);
|
|
130
|
+
this.SteamAPI_ISteamUserStats_GetUserStatFloat = this.steamLib.func('SteamAPI_ISteamUserStats_GetUserStatFloat', 'bool', ['void*', 'uint64', 'str', 'float*']);
|
|
131
|
+
// Global stats
|
|
132
|
+
this.SteamAPI_ISteamUserStats_RequestGlobalStats = this.steamLib.func('SteamAPI_ISteamUserStats_RequestGlobalStats', 'uint64', ['void*', 'int']);
|
|
133
|
+
this.SteamAPI_ISteamUserStats_GetGlobalStatInt64 = this.steamLib.func('SteamAPI_ISteamUserStats_GetGlobalStatInt64', 'bool', ['void*', 'str', 'int64*']);
|
|
134
|
+
this.SteamAPI_ISteamUserStats_GetGlobalStatDouble = this.steamLib.func('SteamAPI_ISteamUserStats_GetGlobalStatDouble', 'bool', ['void*', 'str', 'double*']);
|
|
135
|
+
this.SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64 = this.steamLib.func('SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64', 'int32', ['void*', 'str', 'int64*', 'uint32']);
|
|
136
|
+
this.SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble = this.steamLib.func('SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble', 'int32', ['void*', 'str', 'double*', 'uint32']);
|
|
119
137
|
}
|
|
120
138
|
/**
|
|
121
139
|
* Check if library is loaded
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SteamLibraryLoader.js","sourceRoot":"","sources":["../../src/internal/SteamLibraryLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAC7B,uCAAyB;AAEzB;;GAEG;AACH,MAAa,kBAAkB;IAA/B;QACU,aAAQ,GAA2B,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"SteamLibraryLoader.js","sourceRoot":"","sources":["../../src/internal/SteamLibraryLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { SteamLibraryLoader } from './SteamLibraryLoader';
|
|
2
|
+
import { SteamAPICore } from './SteamAPICore';
|
|
3
|
+
/**
|
|
4
|
+
* Manages Steam user statistics operations
|
|
5
|
+
* Handles getting/setting stats, global stats, and friend stats
|
|
6
|
+
*/
|
|
7
|
+
export declare class SteamStatsManager {
|
|
8
|
+
private libraryLoader;
|
|
9
|
+
private apiCore;
|
|
10
|
+
constructor(libraryLoader: SteamLibraryLoader, apiCore: SteamAPICore);
|
|
11
|
+
/**
|
|
12
|
+
* Get an integer stat value
|
|
13
|
+
*
|
|
14
|
+
* @param statName - Name of the stat to retrieve
|
|
15
|
+
* @returns The stat value, or null if not found/error
|
|
16
|
+
*
|
|
17
|
+
* Steamworks SDK Functions:
|
|
18
|
+
* - `SteamAPI_ISteamUserStats_GetStatInt32()` - Get int32 stat value
|
|
19
|
+
*/
|
|
20
|
+
getStatInt(statName: string): Promise<number | null>;
|
|
21
|
+
/**
|
|
22
|
+
* Get a float stat value
|
|
23
|
+
*
|
|
24
|
+
* @param statName - Name of the stat to retrieve
|
|
25
|
+
* @returns The stat value, or null if not found/error
|
|
26
|
+
*
|
|
27
|
+
* Steamworks SDK Functions:
|
|
28
|
+
* - `SteamAPI_ISteamUserStats_GetStatFloat()` - Get float stat value
|
|
29
|
+
*/
|
|
30
|
+
getStatFloat(statName: string): Promise<number | null>;
|
|
31
|
+
/**
|
|
32
|
+
* Set an integer stat value
|
|
33
|
+
*
|
|
34
|
+
* @param statName - Name of the stat to set
|
|
35
|
+
* @param value - Integer value to set
|
|
36
|
+
* @returns true if successful, false otherwise
|
|
37
|
+
*
|
|
38
|
+
* Steamworks SDK Functions:
|
|
39
|
+
* - `SteamAPI_ISteamUserStats_SetStatInt32()` - Set int32 stat value
|
|
40
|
+
* - `SteamAPI_ISteamUserStats_StoreStats()` - Store stats to Steam servers
|
|
41
|
+
* - `SteamAPI_RunCallbacks()` - Process Steam callbacks
|
|
42
|
+
*/
|
|
43
|
+
setStatInt(statName: string, value: number): Promise<boolean>;
|
|
44
|
+
/**
|
|
45
|
+
* Set a float stat value
|
|
46
|
+
*
|
|
47
|
+
* @param statName - Name of the stat to set
|
|
48
|
+
* @param value - Float value to set
|
|
49
|
+
* @returns true if successful, false otherwise
|
|
50
|
+
*
|
|
51
|
+
* Steamworks SDK Functions:
|
|
52
|
+
* - `SteamAPI_ISteamUserStats_SetStatFloat()` - Set float stat value
|
|
53
|
+
* - `SteamAPI_ISteamUserStats_StoreStats()` - Store stats to Steam servers
|
|
54
|
+
* - `SteamAPI_RunCallbacks()` - Process Steam callbacks
|
|
55
|
+
*/
|
|
56
|
+
setStatFloat(statName: string, value: number): Promise<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* Update an average rate stat
|
|
59
|
+
* This is used for stats like "average speed" or "kills per hour"
|
|
60
|
+
*
|
|
61
|
+
* @param statName - Name of the stat to update
|
|
62
|
+
* @param countThisSession - Count for this session
|
|
63
|
+
* @param sessionLength - Length of session in seconds
|
|
64
|
+
* @returns true if successful, false otherwise
|
|
65
|
+
*
|
|
66
|
+
* Steamworks SDK Functions:
|
|
67
|
+
* - `SteamAPI_ISteamUserStats_UpdateAvgRateStat()` - Update average rate stat
|
|
68
|
+
* - `SteamAPI_ISteamUserStats_StoreStats()` - Store stats to Steam servers
|
|
69
|
+
* - `SteamAPI_RunCallbacks()` - Process Steam callbacks
|
|
70
|
+
*/
|
|
71
|
+
updateAvgRateStat(statName: string, countThisSession: number, sessionLength: number): Promise<boolean>;
|
|
72
|
+
/**
|
|
73
|
+
* Request stats for another user (friend)
|
|
74
|
+
* Must be called before getting user stats
|
|
75
|
+
*
|
|
76
|
+
* @param steamId - Steam ID of the user (as string or BigInt)
|
|
77
|
+
* @returns true if request was sent, false otherwise
|
|
78
|
+
*
|
|
79
|
+
* Steamworks SDK Functions:
|
|
80
|
+
* - `SteamAPI_ISteamUserStats_RequestUserStats()` - Request user stats from Steam
|
|
81
|
+
*/
|
|
82
|
+
requestUserStats(steamId: string | bigint): Promise<boolean>;
|
|
83
|
+
/**
|
|
84
|
+
* Get an integer stat value for another user (friend)
|
|
85
|
+
* Must call requestUserStats() first and wait for callback
|
|
86
|
+
*
|
|
87
|
+
* @param steamId - Steam ID of the user
|
|
88
|
+
* @param statName - Name of the stat to retrieve
|
|
89
|
+
* @returns The stat value, or null if not found/error
|
|
90
|
+
*
|
|
91
|
+
* Steamworks SDK Functions:
|
|
92
|
+
* - `SteamAPI_ISteamUserStats_GetUserStatInt32()` - Get user's int32 stat value
|
|
93
|
+
*/
|
|
94
|
+
getUserStatInt(steamId: string | bigint, statName: string): Promise<number | null>;
|
|
95
|
+
/**
|
|
96
|
+
* Get a float stat value for another user (friend)
|
|
97
|
+
* Must call requestUserStats() first and wait for callback
|
|
98
|
+
*
|
|
99
|
+
* @param steamId - Steam ID of the user
|
|
100
|
+
* @param statName - Name of the stat to retrieve
|
|
101
|
+
* @returns The stat value, or null if not found/error
|
|
102
|
+
*
|
|
103
|
+
* Steamworks SDK Functions:
|
|
104
|
+
* - `SteamAPI_ISteamUserStats_GetUserStatFloat()` - Get user's float stat value
|
|
105
|
+
*/
|
|
106
|
+
getUserStatFloat(steamId: string | bigint, statName: string): Promise<number | null>;
|
|
107
|
+
/**
|
|
108
|
+
* Request global stats data from Steam
|
|
109
|
+
* Must be called before getting global stats
|
|
110
|
+
*
|
|
111
|
+
* @param historyDays - Number of days of history to retrieve (0-60)
|
|
112
|
+
* @returns true if request was sent, false otherwise
|
|
113
|
+
*
|
|
114
|
+
* Steamworks SDK Functions:
|
|
115
|
+
* - `SteamAPI_ISteamUserStats_RequestGlobalStats()` - Request global stats from Steam
|
|
116
|
+
*/
|
|
117
|
+
requestGlobalStats(historyDays?: number): Promise<boolean>;
|
|
118
|
+
/**
|
|
119
|
+
* Get a global stat value (int64)
|
|
120
|
+
* Must call requestGlobalStats() first and wait for callback
|
|
121
|
+
*
|
|
122
|
+
* @param statName - Name of the global stat to retrieve
|
|
123
|
+
* @returns The stat value, or null if not found/error
|
|
124
|
+
*
|
|
125
|
+
* Steamworks SDK Functions:
|
|
126
|
+
* - `SteamAPI_ISteamUserStats_GetGlobalStatInt64()` - Get global int64 stat value
|
|
127
|
+
*/
|
|
128
|
+
getGlobalStatInt(statName: string): Promise<bigint | null>;
|
|
129
|
+
/**
|
|
130
|
+
* Get a global stat value (double)
|
|
131
|
+
* Must call requestGlobalStats() first and wait for callback
|
|
132
|
+
*
|
|
133
|
+
* @param statName - Name of the global stat to retrieve
|
|
134
|
+
* @returns The stat value, or null if not found/error
|
|
135
|
+
*
|
|
136
|
+
* Steamworks SDK Functions:
|
|
137
|
+
* - `SteamAPI_ISteamUserStats_GetGlobalStatDouble()` - Get global double stat value
|
|
138
|
+
*/
|
|
139
|
+
getGlobalStatDouble(statName: string): Promise<number | null>;
|
|
140
|
+
/**
|
|
141
|
+
* Get global stat history (int64)
|
|
142
|
+
* Returns daily values for the stat, with [0] being today, [1] yesterday, etc.
|
|
143
|
+
*
|
|
144
|
+
* @param statName - Name of the global stat
|
|
145
|
+
* @param days - Number of days of history to retrieve (max 60)
|
|
146
|
+
* @returns Array of daily values, or null if error
|
|
147
|
+
*
|
|
148
|
+
* Steamworks SDK Functions:
|
|
149
|
+
* - `SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64()` - Get global stat history
|
|
150
|
+
*/
|
|
151
|
+
getGlobalStatHistoryInt(statName: string, days?: number): Promise<bigint[] | null>;
|
|
152
|
+
/**
|
|
153
|
+
* Get global stat history (double)
|
|
154
|
+
* Returns daily values for the stat, with [0] being today, [1] yesterday, etc.
|
|
155
|
+
*
|
|
156
|
+
* @param statName - Name of the global stat
|
|
157
|
+
* @param days - Number of days of history to retrieve (max 60)
|
|
158
|
+
* @returns Array of daily values, or null if error
|
|
159
|
+
*
|
|
160
|
+
* Steamworks SDK Functions:
|
|
161
|
+
* - `SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble()` - Get global stat history
|
|
162
|
+
*/
|
|
163
|
+
getGlobalStatHistoryDouble(statName: string, days?: number): Promise<number[] | null>;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=SteamStatsManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SteamStatsManager.d.ts","sourceRoot":"","sources":["../../src/internal/SteamStatsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,OAAO,CAAe;gBAElB,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY;IASpE;;;;;;;;OAQG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA8B1D;;;;;;;;OAQG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA8B5D;;;;;;;;;;;OAWG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqCnE;;;;;;;;;;;OAWG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqCrE;;;;;;;;;;;;;OAaG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0C5G;;;;;;;;;OASG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BlE;;;;;;;;;;OAUG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgCxF;;;;;;;;;;OAUG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAoC1F;;;;;;;;;OASG;IACG,kBAAkB,CAAC,WAAW,GAAE,MAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IA8BnE;;;;;;;;;OASG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA8BhE;;;;;;;;;OASG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA8BnE;;;;;;;;;;OAUG;IACG,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAqC3F;;;;;;;;;;OAUG;IACG,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;CAoC/F"}
|
|
@@ -0,0 +1,545 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.SteamStatsManager = void 0;
|
|
37
|
+
const koffi = __importStar(require("koffi"));
|
|
38
|
+
/**
|
|
39
|
+
* Manages Steam user statistics operations
|
|
40
|
+
* Handles getting/setting stats, global stats, and friend stats
|
|
41
|
+
*/
|
|
42
|
+
class SteamStatsManager {
|
|
43
|
+
constructor(libraryLoader, apiCore) {
|
|
44
|
+
this.libraryLoader = libraryLoader;
|
|
45
|
+
this.apiCore = apiCore;
|
|
46
|
+
}
|
|
47
|
+
// ========================================
|
|
48
|
+
// User Stats Operations (Get/Set)
|
|
49
|
+
// ========================================
|
|
50
|
+
/**
|
|
51
|
+
* Get an integer stat value
|
|
52
|
+
*
|
|
53
|
+
* @param statName - Name of the stat to retrieve
|
|
54
|
+
* @returns The stat value, or null if not found/error
|
|
55
|
+
*
|
|
56
|
+
* Steamworks SDK Functions:
|
|
57
|
+
* - `SteamAPI_ISteamUserStats_GetStatInt32()` - Get int32 stat value
|
|
58
|
+
*/
|
|
59
|
+
async getStatInt(statName) {
|
|
60
|
+
if (!this.apiCore.isInitialized()) {
|
|
61
|
+
console.warn('⚠️ Steam API not initialized');
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
const userStatsInterface = this.libraryLoader.SteamAPI_SteamUserStats_v013();
|
|
66
|
+
const valueOut = koffi.alloc('int32', 1);
|
|
67
|
+
const success = this.libraryLoader.SteamAPI_ISteamUserStats_GetStatInt32(userStatsInterface, statName, valueOut);
|
|
68
|
+
if (success) {
|
|
69
|
+
const value = koffi.decode(valueOut, 'int32');
|
|
70
|
+
console.log(`📊 Got stat "${statName}": ${value}`);
|
|
71
|
+
return value;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
console.warn(`⚠️ Failed to get stat: ${statName}`);
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
console.error(`❌ Error getting stat "${statName}":`, error.message);
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get a float stat value
|
|
85
|
+
*
|
|
86
|
+
* @param statName - Name of the stat to retrieve
|
|
87
|
+
* @returns The stat value, or null if not found/error
|
|
88
|
+
*
|
|
89
|
+
* Steamworks SDK Functions:
|
|
90
|
+
* - `SteamAPI_ISteamUserStats_GetStatFloat()` - Get float stat value
|
|
91
|
+
*/
|
|
92
|
+
async getStatFloat(statName) {
|
|
93
|
+
if (!this.apiCore.isInitialized()) {
|
|
94
|
+
console.warn('⚠️ Steam API not initialized');
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
try {
|
|
98
|
+
const userStatsInterface = this.libraryLoader.SteamAPI_SteamUserStats_v013();
|
|
99
|
+
const valueOut = koffi.alloc('float', 1);
|
|
100
|
+
const success = this.libraryLoader.SteamAPI_ISteamUserStats_GetStatFloat(userStatsInterface, statName, valueOut);
|
|
101
|
+
if (success) {
|
|
102
|
+
const value = koffi.decode(valueOut, 'float');
|
|
103
|
+
console.log(`📊 Got stat "${statName}": ${value}`);
|
|
104
|
+
return value;
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
console.warn(`⚠️ Failed to get stat: ${statName}`);
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
console.error(`❌ Error getting stat "${statName}":`, error.message);
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Set an integer stat value
|
|
118
|
+
*
|
|
119
|
+
* @param statName - Name of the stat to set
|
|
120
|
+
* @param value - Integer value to set
|
|
121
|
+
* @returns true if successful, false otherwise
|
|
122
|
+
*
|
|
123
|
+
* Steamworks SDK Functions:
|
|
124
|
+
* - `SteamAPI_ISteamUserStats_SetStatInt32()` - Set int32 stat value
|
|
125
|
+
* - `SteamAPI_ISteamUserStats_StoreStats()` - Store stats to Steam servers
|
|
126
|
+
* - `SteamAPI_RunCallbacks()` - Process Steam callbacks
|
|
127
|
+
*/
|
|
128
|
+
async setStatInt(statName, value) {
|
|
129
|
+
if (!this.apiCore.isInitialized()) {
|
|
130
|
+
console.warn('⚠️ Steam API not initialized');
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
try {
|
|
134
|
+
const userStatsInterface = this.libraryLoader.SteamAPI_SteamUserStats_v013();
|
|
135
|
+
const success = this.libraryLoader.SteamAPI_ISteamUserStats_SetStatInt32(userStatsInterface, statName, value);
|
|
136
|
+
if (success) {
|
|
137
|
+
// Store the stats to Steam servers
|
|
138
|
+
const stored = this.libraryLoader.SteamAPI_ISteamUserStats_StoreStats(userStatsInterface);
|
|
139
|
+
if (stored) {
|
|
140
|
+
console.log(`✅ Set stat "${statName}" to ${value}`);
|
|
141
|
+
// Process callbacks
|
|
142
|
+
this.libraryLoader.SteamAPI_RunCallbacks();
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
console.warn(`⚠️ Failed to store stat: ${statName}`);
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
console.warn(`⚠️ Failed to set stat: ${statName}`);
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
console.error(`❌ Error setting stat "${statName}":`, error.message);
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Set a float stat value
|
|
162
|
+
*
|
|
163
|
+
* @param statName - Name of the stat to set
|
|
164
|
+
* @param value - Float value to set
|
|
165
|
+
* @returns true if successful, false otherwise
|
|
166
|
+
*
|
|
167
|
+
* Steamworks SDK Functions:
|
|
168
|
+
* - `SteamAPI_ISteamUserStats_SetStatFloat()` - Set float stat value
|
|
169
|
+
* - `SteamAPI_ISteamUserStats_StoreStats()` - Store stats to Steam servers
|
|
170
|
+
* - `SteamAPI_RunCallbacks()` - Process Steam callbacks
|
|
171
|
+
*/
|
|
172
|
+
async setStatFloat(statName, value) {
|
|
173
|
+
if (!this.apiCore.isInitialized()) {
|
|
174
|
+
console.warn('⚠️ Steam API not initialized');
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
try {
|
|
178
|
+
const userStatsInterface = this.libraryLoader.SteamAPI_SteamUserStats_v013();
|
|
179
|
+
const success = this.libraryLoader.SteamAPI_ISteamUserStats_SetStatFloat(userStatsInterface, statName, value);
|
|
180
|
+
if (success) {
|
|
181
|
+
// Store the stats to Steam servers
|
|
182
|
+
const stored = this.libraryLoader.SteamAPI_ISteamUserStats_StoreStats(userStatsInterface);
|
|
183
|
+
if (stored) {
|
|
184
|
+
console.log(`✅ Set stat "${statName}" to ${value}`);
|
|
185
|
+
// Process callbacks
|
|
186
|
+
this.libraryLoader.SteamAPI_RunCallbacks();
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
console.warn(`⚠️ Failed to store stat: ${statName}`);
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
console.warn(`⚠️ Failed to set stat: ${statName}`);
|
|
196
|
+
return false;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
console.error(`❌ Error setting stat "${statName}":`, error.message);
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Update an average rate stat
|
|
206
|
+
* This is used for stats like "average speed" or "kills per hour"
|
|
207
|
+
*
|
|
208
|
+
* @param statName - Name of the stat to update
|
|
209
|
+
* @param countThisSession - Count for this session
|
|
210
|
+
* @param sessionLength - Length of session in seconds
|
|
211
|
+
* @returns true if successful, false otherwise
|
|
212
|
+
*
|
|
213
|
+
* Steamworks SDK Functions:
|
|
214
|
+
* - `SteamAPI_ISteamUserStats_UpdateAvgRateStat()` - Update average rate stat
|
|
215
|
+
* - `SteamAPI_ISteamUserStats_StoreStats()` - Store stats to Steam servers
|
|
216
|
+
* - `SteamAPI_RunCallbacks()` - Process Steam callbacks
|
|
217
|
+
*/
|
|
218
|
+
async updateAvgRateStat(statName, countThisSession, sessionLength) {
|
|
219
|
+
if (!this.apiCore.isInitialized()) {
|
|
220
|
+
console.warn('⚠️ Steam API not initialized');
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
223
|
+
try {
|
|
224
|
+
const userStatsInterface = this.libraryLoader.SteamAPI_SteamUserStats_v013();
|
|
225
|
+
const success = this.libraryLoader.SteamAPI_ISteamUserStats_UpdateAvgRateStat(userStatsInterface, statName, countThisSession, sessionLength);
|
|
226
|
+
if (success) {
|
|
227
|
+
// Store the stats to Steam servers
|
|
228
|
+
const stored = this.libraryLoader.SteamAPI_ISteamUserStats_StoreStats(userStatsInterface);
|
|
229
|
+
if (stored) {
|
|
230
|
+
console.log(`✅ Updated avg rate stat "${statName}": ${countThisSession} over ${sessionLength}s`);
|
|
231
|
+
// Process callbacks
|
|
232
|
+
this.libraryLoader.SteamAPI_RunCallbacks();
|
|
233
|
+
return true;
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
console.warn(`⚠️ Failed to store stat: ${statName}`);
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
console.warn(`⚠️ Failed to update avg rate stat: ${statName}`);
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
console.error(`❌ Error updating avg rate stat "${statName}":`, error.message);
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
// ========================================
|
|
251
|
+
// Friend/User Stats Operations
|
|
252
|
+
// ========================================
|
|
253
|
+
/**
|
|
254
|
+
* Request stats for another user (friend)
|
|
255
|
+
* Must be called before getting user stats
|
|
256
|
+
*
|
|
257
|
+
* @param steamId - Steam ID of the user (as string or BigInt)
|
|
258
|
+
* @returns true if request was sent, false otherwise
|
|
259
|
+
*
|
|
260
|
+
* Steamworks SDK Functions:
|
|
261
|
+
* - `SteamAPI_ISteamUserStats_RequestUserStats()` - Request user stats from Steam
|
|
262
|
+
*/
|
|
263
|
+
async requestUserStats(steamId) {
|
|
264
|
+
if (!this.apiCore.isInitialized()) {
|
|
265
|
+
console.warn('⚠️ Steam API not initialized');
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
try {
|
|
269
|
+
const userStatsInterface = this.libraryLoader.SteamAPI_SteamUserStats_v013();
|
|
270
|
+
const steamIdBigInt = typeof steamId === 'string' ? BigInt(steamId) : steamId;
|
|
271
|
+
const callHandle = this.libraryLoader.SteamAPI_ISteamUserStats_RequestUserStats(userStatsInterface, steamIdBigInt);
|
|
272
|
+
if (callHandle !== BigInt(0)) {
|
|
273
|
+
console.log(`📡 Requested stats for user: ${steamId}`);
|
|
274
|
+
return true;
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
console.warn(`⚠️ Failed to request user stats: ${steamId}`);
|
|
278
|
+
return false;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
catch (error) {
|
|
282
|
+
console.error(`❌ Error requesting user stats:`, error.message);
|
|
283
|
+
return false;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Get an integer stat value for another user (friend)
|
|
288
|
+
* Must call requestUserStats() first and wait for callback
|
|
289
|
+
*
|
|
290
|
+
* @param steamId - Steam ID of the user
|
|
291
|
+
* @param statName - Name of the stat to retrieve
|
|
292
|
+
* @returns The stat value, or null if not found/error
|
|
293
|
+
*
|
|
294
|
+
* Steamworks SDK Functions:
|
|
295
|
+
* - `SteamAPI_ISteamUserStats_GetUserStatInt32()` - Get user's int32 stat value
|
|
296
|
+
*/
|
|
297
|
+
async getUserStatInt(steamId, statName) {
|
|
298
|
+
if (!this.apiCore.isInitialized()) {
|
|
299
|
+
console.warn('⚠️ Steam API not initialized');
|
|
300
|
+
return null;
|
|
301
|
+
}
|
|
302
|
+
try {
|
|
303
|
+
const userStatsInterface = this.libraryLoader.SteamAPI_SteamUserStats_v013();
|
|
304
|
+
const steamIdBigInt = typeof steamId === 'string' ? BigInt(steamId) : steamId;
|
|
305
|
+
const valueOut = koffi.alloc('int32', 1);
|
|
306
|
+
const success = this.libraryLoader.SteamAPI_ISteamUserStats_GetUserStatInt32(userStatsInterface, steamIdBigInt, statName, valueOut);
|
|
307
|
+
if (success) {
|
|
308
|
+
const value = koffi.decode(valueOut, 'int32');
|
|
309
|
+
console.log(`📊 Got user stat "${statName}" for ${steamId}: ${value}`);
|
|
310
|
+
return value;
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
console.warn(`⚠️ Failed to get user stat: ${statName}`);
|
|
314
|
+
return null;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
catch (error) {
|
|
318
|
+
console.error(`❌ Error getting user stat "${statName}":`, error.message);
|
|
319
|
+
return null;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Get a float stat value for another user (friend)
|
|
324
|
+
* Must call requestUserStats() first and wait for callback
|
|
325
|
+
*
|
|
326
|
+
* @param steamId - Steam ID of the user
|
|
327
|
+
* @param statName - Name of the stat to retrieve
|
|
328
|
+
* @returns The stat value, or null if not found/error
|
|
329
|
+
*
|
|
330
|
+
* Steamworks SDK Functions:
|
|
331
|
+
* - `SteamAPI_ISteamUserStats_GetUserStatFloat()` - Get user's float stat value
|
|
332
|
+
*/
|
|
333
|
+
async getUserStatFloat(steamId, statName) {
|
|
334
|
+
if (!this.apiCore.isInitialized()) {
|
|
335
|
+
console.warn('⚠️ Steam API not initialized');
|
|
336
|
+
return null;
|
|
337
|
+
}
|
|
338
|
+
try {
|
|
339
|
+
const userStatsInterface = this.libraryLoader.SteamAPI_SteamUserStats_v013();
|
|
340
|
+
const steamIdBigInt = typeof steamId === 'string' ? BigInt(steamId) : steamId;
|
|
341
|
+
const valueOut = koffi.alloc('float', 1);
|
|
342
|
+
const success = this.libraryLoader.SteamAPI_ISteamUserStats_GetUserStatFloat(userStatsInterface, steamIdBigInt, statName, valueOut);
|
|
343
|
+
if (success) {
|
|
344
|
+
const value = koffi.decode(valueOut, 'float');
|
|
345
|
+
console.log(`📊 Got user stat "${statName}" for ${steamId}: ${value}`);
|
|
346
|
+
return value;
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
console.warn(`⚠️ Failed to get user stat: ${statName}`);
|
|
350
|
+
return null;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
catch (error) {
|
|
354
|
+
console.error(`❌ Error getting user stat "${statName}":`, error.message);
|
|
355
|
+
return null;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
// ========================================
|
|
359
|
+
// Global Stats Operations
|
|
360
|
+
// ========================================
|
|
361
|
+
/**
|
|
362
|
+
* Request global stats data from Steam
|
|
363
|
+
* Must be called before getting global stats
|
|
364
|
+
*
|
|
365
|
+
* @param historyDays - Number of days of history to retrieve (0-60)
|
|
366
|
+
* @returns true if request was sent, false otherwise
|
|
367
|
+
*
|
|
368
|
+
* Steamworks SDK Functions:
|
|
369
|
+
* - `SteamAPI_ISteamUserStats_RequestGlobalStats()` - Request global stats from Steam
|
|
370
|
+
*/
|
|
371
|
+
async requestGlobalStats(historyDays = 0) {
|
|
372
|
+
if (!this.apiCore.isInitialized()) {
|
|
373
|
+
console.warn('⚠️ Steam API not initialized');
|
|
374
|
+
return false;
|
|
375
|
+
}
|
|
376
|
+
try {
|
|
377
|
+
// Limit history days to 0-60
|
|
378
|
+
const days = Math.max(0, Math.min(60, historyDays));
|
|
379
|
+
const userStatsInterface = this.libraryLoader.SteamAPI_SteamUserStats_v013();
|
|
380
|
+
const callHandle = this.libraryLoader.SteamAPI_ISteamUserStats_RequestGlobalStats(userStatsInterface, days);
|
|
381
|
+
if (callHandle !== BigInt(0)) {
|
|
382
|
+
console.log(`📡 Requested global stats with ${days} days of history`);
|
|
383
|
+
return true;
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
console.warn(`⚠️ Failed to request global stats`);
|
|
387
|
+
return false;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
catch (error) {
|
|
391
|
+
console.error(`❌ Error requesting global stats:`, error.message);
|
|
392
|
+
return false;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Get a global stat value (int64)
|
|
397
|
+
* Must call requestGlobalStats() first and wait for callback
|
|
398
|
+
*
|
|
399
|
+
* @param statName - Name of the global stat to retrieve
|
|
400
|
+
* @returns The stat value, or null if not found/error
|
|
401
|
+
*
|
|
402
|
+
* Steamworks SDK Functions:
|
|
403
|
+
* - `SteamAPI_ISteamUserStats_GetGlobalStatInt64()` - Get global int64 stat value
|
|
404
|
+
*/
|
|
405
|
+
async getGlobalStatInt(statName) {
|
|
406
|
+
if (!this.apiCore.isInitialized()) {
|
|
407
|
+
console.warn('⚠️ Steam API not initialized');
|
|
408
|
+
return null;
|
|
409
|
+
}
|
|
410
|
+
try {
|
|
411
|
+
const userStatsInterface = this.libraryLoader.SteamAPI_SteamUserStats_v013();
|
|
412
|
+
const valueOut = koffi.alloc('int64', 1);
|
|
413
|
+
const success = this.libraryLoader.SteamAPI_ISteamUserStats_GetGlobalStatInt64(userStatsInterface, statName, valueOut);
|
|
414
|
+
if (success) {
|
|
415
|
+
const value = koffi.decode(valueOut, 'int64');
|
|
416
|
+
console.log(`🌍 Got global stat "${statName}": ${value}`);
|
|
417
|
+
return value;
|
|
418
|
+
}
|
|
419
|
+
else {
|
|
420
|
+
console.warn(`⚠️ Failed to get global stat: ${statName}`);
|
|
421
|
+
return null;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
catch (error) {
|
|
425
|
+
console.error(`❌ Error getting global stat "${statName}":`, error.message);
|
|
426
|
+
return null;
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Get a global stat value (double)
|
|
431
|
+
* Must call requestGlobalStats() first and wait for callback
|
|
432
|
+
*
|
|
433
|
+
* @param statName - Name of the global stat to retrieve
|
|
434
|
+
* @returns The stat value, or null if not found/error
|
|
435
|
+
*
|
|
436
|
+
* Steamworks SDK Functions:
|
|
437
|
+
* - `SteamAPI_ISteamUserStats_GetGlobalStatDouble()` - Get global double stat value
|
|
438
|
+
*/
|
|
439
|
+
async getGlobalStatDouble(statName) {
|
|
440
|
+
if (!this.apiCore.isInitialized()) {
|
|
441
|
+
console.warn('⚠️ Steam API not initialized');
|
|
442
|
+
return null;
|
|
443
|
+
}
|
|
444
|
+
try {
|
|
445
|
+
const userStatsInterface = this.libraryLoader.SteamAPI_SteamUserStats_v013();
|
|
446
|
+
const valueOut = koffi.alloc('double', 1);
|
|
447
|
+
const success = this.libraryLoader.SteamAPI_ISteamUserStats_GetGlobalStatDouble(userStatsInterface, statName, valueOut);
|
|
448
|
+
if (success) {
|
|
449
|
+
const value = koffi.decode(valueOut, 'double');
|
|
450
|
+
console.log(`🌍 Got global stat "${statName}": ${value}`);
|
|
451
|
+
return value;
|
|
452
|
+
}
|
|
453
|
+
else {
|
|
454
|
+
console.warn(`⚠️ Failed to get global stat: ${statName}`);
|
|
455
|
+
return null;
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
catch (error) {
|
|
459
|
+
console.error(`❌ Error getting global stat "${statName}":`, error.message);
|
|
460
|
+
return null;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* Get global stat history (int64)
|
|
465
|
+
* Returns daily values for the stat, with [0] being today, [1] yesterday, etc.
|
|
466
|
+
*
|
|
467
|
+
* @param statName - Name of the global stat
|
|
468
|
+
* @param days - Number of days of history to retrieve (max 60)
|
|
469
|
+
* @returns Array of daily values, or null if error
|
|
470
|
+
*
|
|
471
|
+
* Steamworks SDK Functions:
|
|
472
|
+
* - `SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64()` - Get global stat history
|
|
473
|
+
*/
|
|
474
|
+
async getGlobalStatHistoryInt(statName, days = 7) {
|
|
475
|
+
if (!this.apiCore.isInitialized()) {
|
|
476
|
+
console.warn('⚠️ Steam API not initialized');
|
|
477
|
+
return null;
|
|
478
|
+
}
|
|
479
|
+
try {
|
|
480
|
+
// Limit to 60 days
|
|
481
|
+
const numDays = Math.max(1, Math.min(60, days));
|
|
482
|
+
const userStatsInterface = this.libraryLoader.SteamAPI_SteamUserStats_v013();
|
|
483
|
+
const historyOut = koffi.alloc('int64', numDays);
|
|
484
|
+
const elementsReturned = this.libraryLoader.SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64(userStatsInterface, statName, historyOut, numDays);
|
|
485
|
+
if (elementsReturned > 0) {
|
|
486
|
+
const history = [];
|
|
487
|
+
for (let i = 0; i < elementsReturned; i++) {
|
|
488
|
+
history.push(koffi.decode(historyOut, 'int64', i));
|
|
489
|
+
}
|
|
490
|
+
console.log(`🌍 Got ${elementsReturned} days of history for "${statName}"`);
|
|
491
|
+
return history;
|
|
492
|
+
}
|
|
493
|
+
else {
|
|
494
|
+
console.warn(`⚠️ Failed to get global stat history: ${statName}`);
|
|
495
|
+
return null;
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
catch (error) {
|
|
499
|
+
console.error(`❌ Error getting global stat history "${statName}":`, error.message);
|
|
500
|
+
return null;
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Get global stat history (double)
|
|
505
|
+
* Returns daily values for the stat, with [0] being today, [1] yesterday, etc.
|
|
506
|
+
*
|
|
507
|
+
* @param statName - Name of the global stat
|
|
508
|
+
* @param days - Number of days of history to retrieve (max 60)
|
|
509
|
+
* @returns Array of daily values, or null if error
|
|
510
|
+
*
|
|
511
|
+
* Steamworks SDK Functions:
|
|
512
|
+
* - `SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble()` - Get global stat history
|
|
513
|
+
*/
|
|
514
|
+
async getGlobalStatHistoryDouble(statName, days = 7) {
|
|
515
|
+
if (!this.apiCore.isInitialized()) {
|
|
516
|
+
console.warn('⚠️ Steam API not initialized');
|
|
517
|
+
return null;
|
|
518
|
+
}
|
|
519
|
+
try {
|
|
520
|
+
// Limit to 60 days
|
|
521
|
+
const numDays = Math.max(1, Math.min(60, days));
|
|
522
|
+
const userStatsInterface = this.libraryLoader.SteamAPI_SteamUserStats_v013();
|
|
523
|
+
const historyOut = koffi.alloc('double', numDays);
|
|
524
|
+
const elementsReturned = this.libraryLoader.SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble(userStatsInterface, statName, historyOut, numDays);
|
|
525
|
+
if (elementsReturned > 0) {
|
|
526
|
+
const history = [];
|
|
527
|
+
for (let i = 0; i < elementsReturned; i++) {
|
|
528
|
+
history.push(koffi.decode(historyOut, 'double', i));
|
|
529
|
+
}
|
|
530
|
+
console.log(`🌍 Got ${elementsReturned} days of history for "${statName}"`);
|
|
531
|
+
return history;
|
|
532
|
+
}
|
|
533
|
+
else {
|
|
534
|
+
console.warn(`⚠️ Failed to get global stat history: ${statName}`);
|
|
535
|
+
return null;
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
catch (error) {
|
|
539
|
+
console.error(`❌ Error getting global stat history "${statName}":`, error.message);
|
|
540
|
+
return null;
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
exports.SteamStatsManager = SteamStatsManager;
|
|
545
|
+
//# sourceMappingURL=SteamStatsManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SteamStatsManager.js","sourceRoot":"","sources":["../../src/internal/SteamStatsManager.ts"],"names":[],"mappings":"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"}
|
package/dist/steam.d.ts
CHANGED
|
@@ -7,12 +7,14 @@ import { SteamAchievement, SteamInitOptions, SteamStatus, AchievementProgressLim
|
|
|
7
7
|
* - SteamLibraryLoader: Handles FFI library loading and function binding
|
|
8
8
|
* - SteamAPICore: Manages Steam API lifecycle (init, shutdown, callbacks)
|
|
9
9
|
* - SteamAchievementManager: Handles all achievement operations
|
|
10
|
+
* - SteamStatsManager: Handles all stats operations
|
|
10
11
|
*/
|
|
11
12
|
declare class SteamworksSDK {
|
|
12
13
|
private static instance;
|
|
13
14
|
private libraryLoader;
|
|
14
15
|
private apiCore;
|
|
15
16
|
private achievementManager;
|
|
17
|
+
private statsManager;
|
|
16
18
|
private constructor();
|
|
17
19
|
static getInstance(): SteamworksSDK;
|
|
18
20
|
/**
|
|
@@ -136,6 +138,69 @@ declare class SteamworksSDK {
|
|
|
136
138
|
* WARNING: This clears ALL user stats and achievements!
|
|
137
139
|
*/
|
|
138
140
|
resetAllStats(includeAchievements?: boolean): Promise<boolean>;
|
|
141
|
+
/**
|
|
142
|
+
* Get an integer stat value
|
|
143
|
+
*/
|
|
144
|
+
getStatInt(statName: string): Promise<number | null>;
|
|
145
|
+
/**
|
|
146
|
+
* Get a float stat value
|
|
147
|
+
*/
|
|
148
|
+
getStatFloat(statName: string): Promise<number | null>;
|
|
149
|
+
/**
|
|
150
|
+
* Set an integer stat value
|
|
151
|
+
*/
|
|
152
|
+
setStatInt(statName: string, value: number): Promise<boolean>;
|
|
153
|
+
/**
|
|
154
|
+
* Set a float stat value
|
|
155
|
+
*/
|
|
156
|
+
setStatFloat(statName: string, value: number): Promise<boolean>;
|
|
157
|
+
/**
|
|
158
|
+
* Update an average rate stat (e.g., kills per hour, average speed)
|
|
159
|
+
*/
|
|
160
|
+
updateAvgRateStat(statName: string, countThisSession: number, sessionLength: number): Promise<boolean>;
|
|
161
|
+
/**
|
|
162
|
+
* Request stats for another user (friend)
|
|
163
|
+
* Must be called before getting user stats
|
|
164
|
+
*/
|
|
165
|
+
requestUserStatsForStats(steamId: string | bigint): Promise<boolean>;
|
|
166
|
+
/**
|
|
167
|
+
* Get an integer stat value for another user (friend)
|
|
168
|
+
* Must call requestUserStatsForStats() first and wait for callback
|
|
169
|
+
*/
|
|
170
|
+
getUserStatInt(steamId: string | bigint, statName: string): Promise<number | null>;
|
|
171
|
+
/**
|
|
172
|
+
* Get a float stat value for another user (friend)
|
|
173
|
+
* Must call requestUserStatsForStats() first and wait for callback
|
|
174
|
+
*/
|
|
175
|
+
getUserStatFloat(steamId: string | bigint, statName: string): Promise<number | null>;
|
|
176
|
+
/**
|
|
177
|
+
* Request global stats data from Steam
|
|
178
|
+
* Must be called before getting global stats
|
|
179
|
+
* @param historyDays - Number of days of history to retrieve (0-60)
|
|
180
|
+
*/
|
|
181
|
+
requestGlobalStats(historyDays?: number): Promise<boolean>;
|
|
182
|
+
/**
|
|
183
|
+
* Get a global stat value (int64)
|
|
184
|
+
* Must call requestGlobalStats() first and wait for callback
|
|
185
|
+
*/
|
|
186
|
+
getGlobalStatInt(statName: string): Promise<bigint | null>;
|
|
187
|
+
/**
|
|
188
|
+
* Get a global stat value (double)
|
|
189
|
+
* Must call requestGlobalStats() first and wait for callback
|
|
190
|
+
*/
|
|
191
|
+
getGlobalStatDouble(statName: string): Promise<number | null>;
|
|
192
|
+
/**
|
|
193
|
+
* Get global stat history (int64)
|
|
194
|
+
* Returns daily values for the stat, with [0] being today, [1] yesterday, etc.
|
|
195
|
+
* @param days - Number of days of history to retrieve (max 60)
|
|
196
|
+
*/
|
|
197
|
+
getGlobalStatHistoryInt(statName: string, days?: number): Promise<bigint[] | null>;
|
|
198
|
+
/**
|
|
199
|
+
* Get global stat history (double)
|
|
200
|
+
* Returns daily values for the stat, with [0] being today, [1] yesterday, etc.
|
|
201
|
+
* @param days - Number of days of history to retrieve (max 60)
|
|
202
|
+
*/
|
|
203
|
+
getGlobalStatHistoryDouble(statName: string, days?: number): Promise<number[] | null>;
|
|
139
204
|
}
|
|
140
205
|
export default SteamworksSDK;
|
|
141
206
|
//# sourceMappingURL=steam.d.ts.map
|
package/dist/steam.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steam.d.ts","sourceRoot":"","sources":["../src/steam.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,yBAAyB,EACzB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"steam.d.ts","sourceRoot":"","sources":["../src/steam.ts"],"names":[],"mappings":"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"}
|
package/dist/steam.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const SteamLibraryLoader_1 = require("./internal/SteamLibraryLoader");
|
|
4
4
|
const SteamAPICore_1 = require("./internal/SteamAPICore");
|
|
5
5
|
const SteamAchievementManager_1 = require("./internal/SteamAchievementManager");
|
|
6
|
+
const SteamStatsManager_1 = require("./internal/SteamStatsManager");
|
|
6
7
|
/**
|
|
7
8
|
* Real Steamworks SDK implementation using Koffi FFI
|
|
8
9
|
* This connects directly to the actual Steam client and Steamworks SDK
|
|
@@ -11,6 +12,7 @@ const SteamAchievementManager_1 = require("./internal/SteamAchievementManager");
|
|
|
11
12
|
* - SteamLibraryLoader: Handles FFI library loading and function binding
|
|
12
13
|
* - SteamAPICore: Manages Steam API lifecycle (init, shutdown, callbacks)
|
|
13
14
|
* - SteamAchievementManager: Handles all achievement operations
|
|
15
|
+
* - SteamStatsManager: Handles all stats operations
|
|
14
16
|
*/
|
|
15
17
|
class SteamworksSDK {
|
|
16
18
|
constructor() {
|
|
@@ -18,6 +20,7 @@ class SteamworksSDK {
|
|
|
18
20
|
this.libraryLoader = new SteamLibraryLoader_1.SteamLibraryLoader();
|
|
19
21
|
this.apiCore = new SteamAPICore_1.SteamAPICore(this.libraryLoader);
|
|
20
22
|
this.achievementManager = new SteamAchievementManager_1.SteamAchievementManager(this.libraryLoader, this.apiCore);
|
|
23
|
+
this.statsManager = new SteamStatsManager_1.SteamStatsManager(this.libraryLoader, this.apiCore);
|
|
21
24
|
}
|
|
22
25
|
static getInstance() {
|
|
23
26
|
if (!SteamworksSDK.instance) {
|
|
@@ -193,6 +196,101 @@ class SteamworksSDK {
|
|
|
193
196
|
async resetAllStats(includeAchievements = false) {
|
|
194
197
|
return this.achievementManager.resetAllStats(includeAchievements);
|
|
195
198
|
}
|
|
199
|
+
// ========================================
|
|
200
|
+
// STATS API
|
|
201
|
+
// ========================================
|
|
202
|
+
// ===== USER STATS (GET/SET) =====
|
|
203
|
+
/**
|
|
204
|
+
* Get an integer stat value
|
|
205
|
+
*/
|
|
206
|
+
async getStatInt(statName) {
|
|
207
|
+
return this.statsManager.getStatInt(statName);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Get a float stat value
|
|
211
|
+
*/
|
|
212
|
+
async getStatFloat(statName) {
|
|
213
|
+
return this.statsManager.getStatFloat(statName);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Set an integer stat value
|
|
217
|
+
*/
|
|
218
|
+
async setStatInt(statName, value) {
|
|
219
|
+
return this.statsManager.setStatInt(statName, value);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Set a float stat value
|
|
223
|
+
*/
|
|
224
|
+
async setStatFloat(statName, value) {
|
|
225
|
+
return this.statsManager.setStatFloat(statName, value);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Update an average rate stat (e.g., kills per hour, average speed)
|
|
229
|
+
*/
|
|
230
|
+
async updateAvgRateStat(statName, countThisSession, sessionLength) {
|
|
231
|
+
return this.statsManager.updateAvgRateStat(statName, countThisSession, sessionLength);
|
|
232
|
+
}
|
|
233
|
+
// ===== FRIEND/USER STATS =====
|
|
234
|
+
/**
|
|
235
|
+
* Request stats for another user (friend)
|
|
236
|
+
* Must be called before getting user stats
|
|
237
|
+
*/
|
|
238
|
+
async requestUserStatsForStats(steamId) {
|
|
239
|
+
return this.statsManager.requestUserStats(steamId);
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Get an integer stat value for another user (friend)
|
|
243
|
+
* Must call requestUserStatsForStats() first and wait for callback
|
|
244
|
+
*/
|
|
245
|
+
async getUserStatInt(steamId, statName) {
|
|
246
|
+
return this.statsManager.getUserStatInt(steamId, statName);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Get a float stat value for another user (friend)
|
|
250
|
+
* Must call requestUserStatsForStats() first and wait for callback
|
|
251
|
+
*/
|
|
252
|
+
async getUserStatFloat(steamId, statName) {
|
|
253
|
+
return this.statsManager.getUserStatFloat(steamId, statName);
|
|
254
|
+
}
|
|
255
|
+
// ===== GLOBAL STATS =====
|
|
256
|
+
/**
|
|
257
|
+
* Request global stats data from Steam
|
|
258
|
+
* Must be called before getting global stats
|
|
259
|
+
* @param historyDays - Number of days of history to retrieve (0-60)
|
|
260
|
+
*/
|
|
261
|
+
async requestGlobalStats(historyDays = 0) {
|
|
262
|
+
return this.statsManager.requestGlobalStats(historyDays);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Get a global stat value (int64)
|
|
266
|
+
* Must call requestGlobalStats() first and wait for callback
|
|
267
|
+
*/
|
|
268
|
+
async getGlobalStatInt(statName) {
|
|
269
|
+
return this.statsManager.getGlobalStatInt(statName);
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Get a global stat value (double)
|
|
273
|
+
* Must call requestGlobalStats() first and wait for callback
|
|
274
|
+
*/
|
|
275
|
+
async getGlobalStatDouble(statName) {
|
|
276
|
+
return this.statsManager.getGlobalStatDouble(statName);
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Get global stat history (int64)
|
|
280
|
+
* Returns daily values for the stat, with [0] being today, [1] yesterday, etc.
|
|
281
|
+
* @param days - Number of days of history to retrieve (max 60)
|
|
282
|
+
*/
|
|
283
|
+
async getGlobalStatHistoryInt(statName, days = 7) {
|
|
284
|
+
return this.statsManager.getGlobalStatHistoryInt(statName, days);
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Get global stat history (double)
|
|
288
|
+
* Returns daily values for the stat, with [0] being today, [1] yesterday, etc.
|
|
289
|
+
* @param days - Number of days of history to retrieve (max 60)
|
|
290
|
+
*/
|
|
291
|
+
async getGlobalStatHistoryDouble(statName, days = 7) {
|
|
292
|
+
return this.statsManager.getGlobalStatHistoryDouble(statName, days);
|
|
293
|
+
}
|
|
196
294
|
}
|
|
197
295
|
exports.default = SteamworksSDK;
|
|
198
296
|
//# sourceMappingURL=steam.js.map
|
package/dist/steam.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steam.js","sourceRoot":"","sources":["../src/steam.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"steam.js","sourceRoot":"","sources":["../src/steam.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -36,4 +36,25 @@ export interface AchievementGlobalStats {
|
|
|
36
36
|
export interface AchievementWithIcon extends SteamAchievement {
|
|
37
37
|
iconHandle: number;
|
|
38
38
|
}
|
|
39
|
+
export interface SteamStat {
|
|
40
|
+
name: string;
|
|
41
|
+
value: number;
|
|
42
|
+
type: 'int' | 'float';
|
|
43
|
+
}
|
|
44
|
+
export interface GlobalStat {
|
|
45
|
+
name: string;
|
|
46
|
+
value: number;
|
|
47
|
+
type: 'int64' | 'double';
|
|
48
|
+
}
|
|
49
|
+
export interface GlobalStatHistory {
|
|
50
|
+
name: string;
|
|
51
|
+
history: number[];
|
|
52
|
+
type: 'int64' | 'double';
|
|
53
|
+
}
|
|
54
|
+
export interface UserStat {
|
|
55
|
+
steamId: string;
|
|
56
|
+
name: string;
|
|
57
|
+
value: number;
|
|
58
|
+
type: 'int' | 'float';
|
|
59
|
+
}
|
|
39
60
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAGD,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAGD,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,UAAU,EAAE,MAAM,CAAC;CACpB;AAOD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;CACvB;AAGD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC1B;AAGD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC1B;AAGD,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;CACvB"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "steamworks-ffi-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Real Steamworks SDK wrapper using FFI for Node.js/Electron - Full Steam Integration",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "tsc",
|
|
9
|
-
"
|
|
10
|
-
"test": "node test-complete-
|
|
9
|
+
"test:achievements": "node test-complete-achievements.js",
|
|
10
|
+
"test:stats": "node test-complete-stats.js",
|
|
11
11
|
"prepublishOnly": "npm run build"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|