@nodemod/core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +60 -0
  2. package/dist/core/cmd.d.ts +148 -0
  3. package/dist/core/cmd.d.ts.map +1 -0
  4. package/dist/core/cmd.js +177 -0
  5. package/dist/core/cmd.js.map +1 -0
  6. package/dist/core/menu.d.ts +300 -0
  7. package/dist/core/menu.d.ts.map +1 -0
  8. package/dist/core/menu.js +449 -0
  9. package/dist/core/menu.js.map +1 -0
  10. package/dist/core/msg.d.ts +300 -0
  11. package/dist/core/msg.d.ts.map +1 -0
  12. package/dist/core/msg.js +374 -0
  13. package/dist/core/msg.js.map +1 -0
  14. package/dist/core/resource.d.ts +137 -0
  15. package/dist/core/resource.d.ts.map +1 -0
  16. package/dist/core/resource.js +171 -0
  17. package/dist/core/resource.js.map +1 -0
  18. package/dist/core/sound.d.ts +262 -0
  19. package/dist/core/sound.d.ts.map +1 -0
  20. package/dist/core/sound.js +300 -0
  21. package/dist/core/sound.js.map +1 -0
  22. package/dist/enhanced/entity.d.ts +263 -0
  23. package/dist/enhanced/entity.d.ts.map +1 -0
  24. package/dist/enhanced/entity.js +447 -0
  25. package/dist/enhanced/entity.js.map +1 -0
  26. package/dist/enhanced/events.d.ts +257 -0
  27. package/dist/enhanced/events.d.ts.map +1 -0
  28. package/dist/enhanced/events.js +350 -0
  29. package/dist/enhanced/events.js.map +1 -0
  30. package/dist/enhanced/player.d.ts +272 -0
  31. package/dist/enhanced/player.d.ts.map +1 -0
  32. package/dist/enhanced/player.js +389 -0
  33. package/dist/enhanced/player.js.map +1 -0
  34. package/dist/enhanced/trace.d.ts +198 -0
  35. package/dist/enhanced/trace.d.ts.map +1 -0
  36. package/dist/enhanced/trace.js +311 -0
  37. package/dist/enhanced/trace.js.map +1 -0
  38. package/dist/index.d.ts +88 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +120 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/native/cvar.d.ts +49 -0
  43. package/dist/native/cvar.d.ts.map +1 -0
  44. package/dist/native/cvar.js +169 -0
  45. package/dist/native/cvar.js.map +1 -0
  46. package/dist/native/file.d.ts +221 -0
  47. package/dist/native/file.d.ts.map +1 -0
  48. package/dist/native/file.js +353 -0
  49. package/dist/native/file.js.map +1 -0
  50. package/dist/types/dll.d.ts +109 -0
  51. package/dist/types/engine.d.ts +319 -0
  52. package/dist/types/enums.d.ts +434 -0
  53. package/dist/types/events.d.ts +2432 -0
  54. package/dist/types/index.d.ts +38 -0
  55. package/dist/types/structures.d.ts +1144 -0
  56. package/dist/utils/util.d.ts +202 -0
  57. package/dist/utils/util.d.ts.map +1 -0
  58. package/dist/utils/util.js +318 -0
  59. package/dist/utils/util.js.map +1 -0
  60. package/package.json +167 -0
package/dist/index.js ADDED
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ // Core modules - Original specialized functionality
7
+ const cmd_1 = __importDefault(require("./core/cmd"));
8
+ const menu_1 = __importDefault(require("./core/menu"));
9
+ const msg_1 = __importDefault(require("./core/msg"));
10
+ const resource_1 = __importDefault(require("./core/resource"));
11
+ const sound_1 = __importDefault(require("./core/sound"));
12
+ // Native modules - Direct nodemod API wrappers
13
+ const cvar_1 = __importDefault(require("./native/cvar"));
14
+ const file_1 = __importDefault(require("./native/file"));
15
+ // Enhanced modules - Build upon core/native functionality
16
+ const events_1 = __importDefault(require("./enhanced/events"));
17
+ const player_1 = __importDefault(require("./enhanced/player"));
18
+ const entity_1 = __importDefault(require("./enhanced/entity"));
19
+ const trace_1 = __importDefault(require("./enhanced/trace"));
20
+ // Utility modules - Helper functions
21
+ const util_1 = __importDefault(require("./utils/util"));
22
+ /**
23
+ * Main NodeMod Core class providing unified access to all NodeMod services
24
+ *
25
+ * This class serves as the central hub for all NodeMod functionality, providing
26
+ * easy access to various services including messaging, entity management,
27
+ * player utilities, and Half-Life engine interactions.
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * // Access the global nodemodCore instance
32
+ * nodemodCore.util.messageAll("Hello world!");
33
+ * nodemodCore.player.getAll().forEach(player => {
34
+ * console.log(`Player: ${player.name}`);
35
+ * });
36
+ * ```
37
+ */
38
+ class NodemodCore {
39
+ /** Console variable management service */
40
+ cvar;
41
+ /** File system operations service */
42
+ file;
43
+ /** Network messaging service */
44
+ msg;
45
+ /** General utility functions */
46
+ util;
47
+ /** Sound management service */
48
+ sound;
49
+ /** Command registration and handling service */
50
+ cmd;
51
+ /** Resource management service */
52
+ resource;
53
+ /** Menu creation and display service */
54
+ menu;
55
+ /** Event handling service */
56
+ events;
57
+ /** Player management and utilities */
58
+ player;
59
+ /** Entity management and utilities */
60
+ entity;
61
+ /** Trace and collision detection service */
62
+ trace;
63
+ // Direct access to nodemod properties for power developers
64
+ /** Current working directory of the game server */
65
+ get cwd() { return nodemod.cwd; }
66
+ /** Current map name */
67
+ get mapname() { return nodemod.mapname; }
68
+ /** Current server time */
69
+ get time() { return nodemod.time; }
70
+ /** Array of all connected player entities */
71
+ get players() { return nodemod.players; }
72
+ // Utility functions
73
+ /**
74
+ * Get the message ID for a user message name
75
+ * @param msgName The name of the user message
76
+ * @returns The message ID
77
+ */
78
+ getUserMsgId(msgName) { return nodemod.getUserMsgId(msgName); }
79
+ /**
80
+ * Get the message name for a user message ID
81
+ * @param msgId The message ID
82
+ * @returns The message name
83
+ */
84
+ getUserMsgName(msgId) { return nodemod.getUserMsgName(msgId); }
85
+ /**
86
+ * Set the metamod result for the current hook
87
+ * @param result The metamod result constant
88
+ */
89
+ setMetaResult(result) { return nodemod.setMetaResult(result); }
90
+ /**
91
+ * Continue server execution (used with metamod hooks)
92
+ */
93
+ continueServer() { return nodemod.continueServer(); }
94
+ constructor() {
95
+ // Initialize native services (no dependencies)
96
+ this.cvar = new cvar_1.default();
97
+ this.file = new file_1.default();
98
+ // Initialize msg service (self-contained)
99
+ this.msg = new msg_1.default();
100
+ // Initialize util service with msg dependency
101
+ this.util = new util_1.default(this.msg);
102
+ // Now that util is ready, inject it back into msg for entity conversion
103
+ this.msg.setUtilService(this.util);
104
+ // Initialize remaining services with dependencies
105
+ this.sound = new sound_1.default(this.util);
106
+ this.cmd = new cmd_1.default();
107
+ this.resource = new resource_1.default();
108
+ this.menu = new menu_1.default(this.msg, this.util);
109
+ this.events = new events_1.default();
110
+ this.player = new player_1.default(this.util, this.msg, this.sound);
111
+ this.entity = new entity_1.default(this.util);
112
+ this.trace = new trace_1.default();
113
+ }
114
+ }
115
+ const nodemodCore = new NodemodCore();
116
+ // ES Module default export for modern imports
117
+ exports.default = nodemodCore;
118
+ // CommonJS export for backward compatibility
119
+ module.exports = nodemodCore;
120
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ export interface CVarInfo extends nodemod.Cvar {
2
+ description?: string;
3
+ }
4
+ export interface CVarWrapper {
5
+ name: string;
6
+ value: string;
7
+ float: number;
8
+ int: number;
9
+ bool: boolean;
10
+ reset(): void;
11
+ setDirect(value: string | number): void;
12
+ }
13
+ export type CVarChangeCallback = (currentValue: string, lastValue: string, name: string) => void;
14
+ export default class NodemodCVar {
15
+ private registeredCVars;
16
+ register(name: string, defaultValue?: string, flags?: number, description?: string): void;
17
+ getString(name: string): string;
18
+ getFloat(name: string): number;
19
+ getInt(name: string): number;
20
+ getBool(name: string): boolean;
21
+ setString(name: string, value: string | number): void;
22
+ setFloat(name: string, value: string | number): void;
23
+ setInt(name: string, value: string | number): void;
24
+ setBool(name: string, value: boolean): void;
25
+ setDirect(name: string, value: string | number): void;
26
+ getPointer(name: string): nodemod.Cvar;
27
+ exists(name: string): boolean;
28
+ getRegistered(): Map<string, CVarInfo>;
29
+ wrap(name: string): CVarWrapper | null;
30
+ setMultiple(cvars: {
31
+ [key: string]: string | number;
32
+ }): void;
33
+ getMultiple(names: string[]): {
34
+ [key: string]: string;
35
+ };
36
+ get mp_friendlyfire(): CVarWrapper | null;
37
+ get mp_timelimit(): CVarWrapper | null;
38
+ get mp_fraglimit(): CVarWrapper | null;
39
+ get hostname(): CVarWrapper | null;
40
+ get maxplayers(): CVarWrapper | null;
41
+ get sv_gravity(): CVarWrapper | null;
42
+ get sv_cheats(): CVarWrapper | null;
43
+ get pausable(): CVarWrapper | null;
44
+ get sv_lan(): CVarWrapper | null;
45
+ get sv_region(): CVarWrapper | null;
46
+ initializeServerCVars(): void;
47
+ watchVariable(name: string, callback: CVarChangeCallback, interval?: number): () => void;
48
+ }
49
+ //# sourceMappingURL=cvar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cvar.d.ts","sourceRoot":"","sources":["../../src/native/cvar.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAS,SAAQ,OAAO,CAAC,IAAI;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,IAAI,IAAI,CAAC;IACd,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAGjG,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,OAAO,CAAC,eAAe,CAA+B;IAGtD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,EAAE,KAAK,GAAE,MAAU,EAAE,WAAW,GAAE,MAAW,GAAG,IAAI;IAepG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAK/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAK9B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAK5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAM9B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKrD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKpD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMlD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAK3C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMrD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI;IAKtC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAU7B,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;IAKtC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAwDtC,WAAW,CAAC,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI;IAM5D,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IASvD,IAAI,eAAe,IAAI,WAAW,GAAG,IAAI,CAAyC;IAClF,IAAI,YAAY,IAAI,WAAW,GAAG,IAAI,CAAsC;IAC5E,IAAI,YAAY,IAAI,WAAW,GAAG,IAAI,CAAsC;IAC5E,IAAI,QAAQ,IAAI,WAAW,GAAG,IAAI,CAAkC;IACpE,IAAI,UAAU,IAAI,WAAW,GAAG,IAAI,CAAoC;IACxE,IAAI,UAAU,IAAI,WAAW,GAAG,IAAI,CAAoC;IACxE,IAAI,SAAS,IAAI,WAAW,GAAG,IAAI,CAAmC;IACtE,IAAI,QAAQ,IAAI,WAAW,GAAG,IAAI,CAAkC;IACpE,IAAI,MAAM,IAAI,WAAW,GAAG,IAAI,CAAgC;IAChE,IAAI,SAAS,IAAI,WAAW,GAAG,IAAI,CAAmC;IAGtE,qBAAqB,IAAI,IAAI;IAa7B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,GAAE,MAAa,GAAG,MAAM,IAAI;CAa/F"}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // Console variable management utilities
4
+ class NodemodCVar {
5
+ registeredCVars = new Map();
6
+ // Register a new console variable
7
+ register(name, defaultValue = '', flags = 0, description = '') {
8
+ const cvar = {
9
+ name,
10
+ string: defaultValue,
11
+ flags,
12
+ value: parseFloat(defaultValue) || 0,
13
+ description,
14
+ next: null
15
+ };
16
+ nodemod.eng.cVarRegister(cvar);
17
+ this.registeredCVars.set(name, cvar);
18
+ }
19
+ // Get console variable value as string
20
+ getString(name) {
21
+ return nodemod.eng.cVarGetString(name);
22
+ }
23
+ // Get console variable value as float
24
+ getFloat(name) {
25
+ return nodemod.eng.cVarGetFloat(name);
26
+ }
27
+ // Get console variable value as integer
28
+ getInt(name) {
29
+ return Math.floor(this.getFloat(name));
30
+ }
31
+ // Get console variable value as boolean
32
+ getBool(name) {
33
+ const value = this.getFloat(name);
34
+ return value !== 0;
35
+ }
36
+ // Set console variable value as string
37
+ setString(name, value) {
38
+ nodemod.eng.cVarSetString(name, String(value));
39
+ }
40
+ // Set console variable value as float
41
+ setFloat(name, value) {
42
+ nodemod.eng.cVarSetFloat(name, typeof value === 'number' ? value : parseFloat(value));
43
+ }
44
+ // Set console variable value as integer
45
+ setInt(name, value) {
46
+ const intValue = typeof value === 'number' ? value : parseInt(value.toString());
47
+ this.setFloat(name, intValue);
48
+ }
49
+ // Set console variable value as boolean
50
+ setBool(name, value) {
51
+ this.setFloat(name, value ? 1 : 0);
52
+ }
53
+ // Directly set console variable (bypasses some checks)
54
+ setDirect(name, value) {
55
+ const cvar = nodemod.eng.cVarGetPointer(name);
56
+ nodemod.eng.cvarDirectSet(cvar, String(value));
57
+ }
58
+ // Get console variable pointer
59
+ getPointer(name) {
60
+ return nodemod.eng.cVarGetPointer(name);
61
+ }
62
+ // Check if console variable exists
63
+ exists(name) {
64
+ try {
65
+ const value = this.getString(name);
66
+ return value !== null && value !== undefined;
67
+ }
68
+ catch {
69
+ return false;
70
+ }
71
+ }
72
+ // Get all registered console variables
73
+ getRegistered() {
74
+ return new Map(this.registeredCVars);
75
+ }
76
+ // Create console variable wrapper with utility methods
77
+ wrap(name) {
78
+ if (!this.exists(name)) {
79
+ return null;
80
+ }
81
+ const self = this;
82
+ return {
83
+ name,
84
+ get value() {
85
+ return nodemod.eng.cVarGetString(name);
86
+ },
87
+ set value(val) {
88
+ nodemod.eng.cVarSetString(name, String(val));
89
+ },
90
+ get float() {
91
+ return nodemod.eng.cVarGetFloat(name);
92
+ },
93
+ set float(val) {
94
+ nodemod.eng.cVarSetFloat(name, val);
95
+ },
96
+ get int() {
97
+ return Math.floor(nodemod.eng.cVarGetFloat(name));
98
+ },
99
+ set int(val) {
100
+ nodemod.eng.cVarSetFloat(name, val);
101
+ },
102
+ get bool() {
103
+ return nodemod.eng.cVarGetFloat(name) !== 0;
104
+ },
105
+ set bool(val) {
106
+ nodemod.eng.cVarSetFloat(name, val ? 1 : 0);
107
+ },
108
+ reset() {
109
+ const registered = self.registeredCVars.get(name);
110
+ if (registered) {
111
+ nodemod.eng.cVarSetString(name, registered.string);
112
+ }
113
+ },
114
+ setDirect(value) {
115
+ const cvar = nodemod.eng.cVarGetPointer(name);
116
+ nodemod.eng.cvarDirectSet(cvar, String(value));
117
+ }
118
+ };
119
+ }
120
+ // Batch operations
121
+ setMultiple(cvars) {
122
+ for (const [name, value] of Object.entries(cvars)) {
123
+ this.setString(name, value);
124
+ }
125
+ }
126
+ getMultiple(names) {
127
+ const results = {};
128
+ for (const name of names) {
129
+ results[name] = this.getString(name);
130
+ }
131
+ return results;
132
+ }
133
+ // Predefined common CVars with utility methods
134
+ get mp_friendlyfire() { return this.wrap('mp_friendlyfire'); }
135
+ get mp_timelimit() { return this.wrap('mp_timelimit'); }
136
+ get mp_fraglimit() { return this.wrap('mp_fraglimit'); }
137
+ get hostname() { return this.wrap('hostname'); }
138
+ get maxplayers() { return this.wrap('maxplayers'); }
139
+ get sv_gravity() { return this.wrap('sv_gravity'); }
140
+ get sv_cheats() { return this.wrap('sv_cheats'); }
141
+ get pausable() { return this.wrap('pausable'); }
142
+ get sv_lan() { return this.wrap('sv_lan'); }
143
+ get sv_region() { return this.wrap('sv_region'); }
144
+ // Create common server CVars
145
+ initializeServerCVars() {
146
+ const commonCVars = [
147
+ { name: 'nodemod_version', value: '1.0.0', flags: 4 /* nodemod.FCVAR.SERVER */, description: 'NodeMod version' },
148
+ { name: 'nodemod_debug', value: '0', flags: 4 /* nodemod.FCVAR.SERVER */, description: 'NodeMod debug mode' },
149
+ { name: 'nodemod_enabled', value: '1', flags: 4 /* nodemod.FCVAR.SERVER */, description: 'NodeMod enabled' }
150
+ ];
151
+ commonCVars.forEach(cvar => {
152
+ this.register(cvar.name, cvar.value, cvar.flags, cvar.description);
153
+ });
154
+ }
155
+ // Console variable change monitoring
156
+ watchVariable(name, callback, interval = 1000) {
157
+ let lastValue = this.getString(name);
158
+ const watchInterval = setInterval(() => {
159
+ const currentValue = this.getString(name);
160
+ if (currentValue !== lastValue) {
161
+ callback(currentValue, lastValue, name);
162
+ lastValue = currentValue;
163
+ }
164
+ }, interval);
165
+ return () => clearInterval(watchInterval);
166
+ }
167
+ }
168
+ exports.default = NodemodCVar;
169
+ //# sourceMappingURL=cvar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cvar.js","sourceRoot":"","sources":["../../src/native/cvar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,221 @@
1
+ /**
2
+ * File buffer interface providing convenient access to loaded file data.
3
+ */
4
+ export interface FileBuffer {
5
+ /** Convert buffer to string with optional encoding */
6
+ toString(encoding?: string): string;
7
+ /** Size of the buffer in bytes */
8
+ length: number;
9
+ }
10
+ /**
11
+ * Result of a file loading operation with metadata.
12
+ */
13
+ export interface FileLoadResult {
14
+ /** Raw file buffer data or null if load failed */
15
+ buffer: number[] | null;
16
+ /** File size in bytes */
17
+ size: number;
18
+ /** Whether the file exists */
19
+ exists: boolean;
20
+ }
21
+ /**
22
+ * File system change event information.
23
+ */
24
+ export interface FileWatchEvent {
25
+ /** Name of the file that changed */
26
+ filename: string;
27
+ /** Type of change event */
28
+ event: 'change';
29
+ /** Previous file size in bytes */
30
+ oldSize: number;
31
+ /** New file size in bytes */
32
+ newSize: number;
33
+ /** Timestamp when change was detected */
34
+ timestamp: number;
35
+ }
36
+ /** Callback function for file watch events */
37
+ export type FileWatchCallback = (event: FileWatchEvent) => void;
38
+ /** Callback function for processing loaded file data */
39
+ export type FileLoadCallback<T> = (buffer: FileBuffer | null, length?: number) => T;
40
+ /**
41
+ * File system utilities for Half-Life engine providing safe file operations with automatic memory management.
42
+ * Supports loading game resources, configuration files, and provides path utilities for Half-Life directory structure.
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * // Load and read a configuration file
47
+ * const config = nodemodCore.file.loadConfig('server.cfg');
48
+ * if (config) {
49
+ * console.log(`Max players: ${config['maxplayers']}`);
50
+ * }
51
+ *
52
+ * // Check if a sound file exists
53
+ * if (nodemodCore.file.isValidSoundFile('weapons/ak47-1.wav')) {
54
+ * console.log('Sound file is available');
55
+ * }
56
+ *
57
+ * // Load file with automatic cleanup
58
+ * const content = nodemodCore.file.readText('motd.txt');
59
+ * if (content) {
60
+ * console.log('MOTD:', content);
61
+ * }
62
+ *
63
+ * // Watch a file for changes
64
+ * const stopWatching = nodemodCore.file.watch('banned.cfg', (event) => {
65
+ * console.log(`Banned list updated: ${event.newSize} bytes`);
66
+ * });
67
+ * ```
68
+ */
69
+ export default class NodemodFile {
70
+ /**
71
+ * Loads a file into memory and returns the raw buffer.
72
+ * Remember to call free() when done to prevent memory leaks.
73
+ *
74
+ * @param filename - Path to the file to load
75
+ * @returns Raw file buffer as number array, or null if loading failed
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * const buffer = nodemodCore.file.load('maps/de_dust2.bsp');
80
+ * if (buffer) {
81
+ * console.log(`Loaded ${buffer.length} bytes`);
82
+ * // Don't forget to free the buffer!
83
+ * nodemodCore.file.free(buffer);
84
+ * }
85
+ * ```
86
+ */
87
+ load(filename: string): number[] | null;
88
+ free(buffer: number[] | null | any): void;
89
+ getSize(filename: string): number;
90
+ compareTime(filename1: string, filename2: string): number;
91
+ exists(filename: string): boolean;
92
+ loadWithCleanup<T>(filename: string, callback: FileLoadCallback<T>): T | null;
93
+ /**
94
+ * Reads a file as text with automatic memory management.
95
+ * Handles encoding detection and cleanup automatically.
96
+ *
97
+ * @param filename - Path to the text file to read
98
+ * @returns File content as string, or null if reading failed
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * // Read server configuration
103
+ * const motd = nodemodCore.file.readText('motd.txt');
104
+ * if (motd) {
105
+ * console.log('Message of the Day:', motd);
106
+ * }
107
+ *
108
+ * // Read map list
109
+ * const mapList = nodemodCore.file.readText('mapcycle.txt');
110
+ * if (mapList) {
111
+ * const maps = mapList.split('\\n').filter(line => line.trim());
112
+ * console.log('Available maps:', maps);
113
+ * }
114
+ * ```
115
+ */
116
+ readText(filename: string): string | null;
117
+ getGameDir(): string;
118
+ joinPath(...parts: string[]): string;
119
+ normalizePath(path: string): string;
120
+ getExtension(filename: string): string;
121
+ getBasename(filename: string): string;
122
+ getDirectory(filename: string): string;
123
+ buildResourcePath(type: string, name: string): string;
124
+ resourceExists(type: string, name: string): boolean;
125
+ loadResource(type: string, name: string): number[] | null;
126
+ loadMultiple(filenames: string[]): {
127
+ [key: string]: FileLoadResult;
128
+ };
129
+ freeMultiple(buffers: number[][] | {
130
+ [key: string]: FileLoadResult | number[];
131
+ }): void;
132
+ isValidModelFile(filename: string): boolean;
133
+ isValidSoundFile(filename: string): boolean;
134
+ isValidMapFile(filename: string): boolean;
135
+ /**
136
+ * Loads and parses a configuration file with key=value format.
137
+ * Supports comments starting with // or # and handles empty lines.
138
+ *
139
+ * @param filename - Name of the configuration file
140
+ * @returns Parsed configuration object, or null if loading failed
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * // Load server configuration
145
+ * const config = nodemodCore.file.loadConfig('server.cfg');
146
+ * if (config) {
147
+ * const maxPlayers = parseInt(config['maxplayers'] || '16');
148
+ * const serverName = config['hostname'] || 'Unnamed Server';
149
+ * console.log(`Server: ${serverName}, Max Players: ${maxPlayers}`);
150
+ * }
151
+ *
152
+ * // Load custom plugin config
153
+ * const pluginConfig = nodemodCore.file.loadConfig('myplugin.cfg');
154
+ * if (pluginConfig?.enabled === '1') {
155
+ * console.log('Plugin is enabled');
156
+ * }
157
+ * ```
158
+ */
159
+ loadConfig(filename: string): {
160
+ [key: string]: string;
161
+ } | null;
162
+ /**
163
+ * Monitors a file for changes using periodic polling.
164
+ * Returns a function to stop monitoring.
165
+ *
166
+ * @param filename - File to monitor
167
+ * @param callback - Function called when file changes
168
+ * @param interval - Check interval in milliseconds (default: 1000)
169
+ * @returns Function to stop monitoring
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * // Watch configuration file for changes
174
+ * const stopWatching = nodemodCore.file.watch('server.cfg', (event) => {
175
+ * console.log(`Config changed! Old size: ${event.oldSize}, New size: ${event.newSize}`);
176
+ * // Reload configuration
177
+ * const newConfig = nodemodCore.file.loadConfig('server.cfg');
178
+ * });
179
+ *
180
+ * // Stop watching after 10 minutes
181
+ * setTimeout(() => {
182
+ * stopWatching();
183
+ * console.log('Stopped watching file');
184
+ * }, 600000);
185
+ * ```
186
+ */
187
+ watch(filename: string, callback: FileWatchCallback, interval?: number): () => void;
188
+ /**
189
+ * Common Half-Life server file paths.
190
+ */
191
+ static PATHS: {
192
+ /** Main server configuration file */
193
+ CONFIG: string;
194
+ /** Banned players list */
195
+ BANNED: string;
196
+ /** IP ban list */
197
+ LISTIP: string;
198
+ /** Map rotation cycle */
199
+ MAPCYCLE: string;
200
+ /** Message of the day */
201
+ MOTD: string;
202
+ };
203
+ /**
204
+ * Valid file extensions for different resource types.
205
+ */
206
+ static EXTENSIONS: {
207
+ /** Model file extensions */
208
+ MODEL: string[];
209
+ /** Sound file extensions */
210
+ SOUND: string[];
211
+ /** Map file extensions */
212
+ MAP: string[];
213
+ /** Image file extensions */
214
+ IMAGE: string[];
215
+ /** Sprite file extensions */
216
+ SPRITE: string[];
217
+ /** Configuration file extensions */
218
+ CONFIG: string[];
219
+ };
220
+ }
221
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/native/file.ts"],"names":[],"mappings":"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"}