@armoury/fivem-roleplay-gamemode-server 0.0.0-stage → 1.0.12
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/dist/cjs/server/index.js +54 -0
- package/dist/cjs/server/services/businesses/index.js +17 -0
- package/dist/cjs/server/services/businesses/server-business.service.js +56 -0
- package/dist/cjs/server/services/index.js +18 -0
- package/dist/cjs/server/services/items/index.js +17 -0
- package/dist/cjs/server/services/items/server-items.service.js +104 -0
- package/dist/esm/server/index.js +37 -0
- package/dist/esm/server/services/businesses/index.js +1 -0
- package/dist/esm/server/services/businesses/server-business.service.js +53 -0
- package/dist/esm/server/services/index.js +2 -0
- package/dist/esm/server/services/items/index.js +1 -0
- package/dist/esm/server/services/items/server-items.service.js +98 -0
- package/dist/types/server/index.d.ts +7 -0
- package/dist/types/server/services/businesses/index.d.ts +1 -0
- package/dist/types/server/services/businesses/server-business.service.d.ts +10 -0
- package/dist/types/server/services/index.d.ts +2 -0
- package/dist/types/server/services/items/index.d.ts +1 -0
- package/dist/types/server/services/items/server-items.service.d.ts +22 -0
- package/package.json +33 -5
- package/README.md +0 -3
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
25
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
26
|
+
};
|
|
27
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
28
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
29
|
+
if (ar || !(i in from)) {
|
|
30
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
31
|
+
ar[i] = from[i];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
35
|
+
};
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.bootstrap = bootstrap;
|
|
38
|
+
var fivem_framework_server_1 = require("@armoury/fivem-framework-server");
|
|
39
|
+
var services_1 = require("./services");
|
|
40
|
+
var BUILT_IN_PROVIDERS = [
|
|
41
|
+
{
|
|
42
|
+
provide: 'items',
|
|
43
|
+
useValue: null,
|
|
44
|
+
multi: true,
|
|
45
|
+
},
|
|
46
|
+
services_1.ServerBusinessService,
|
|
47
|
+
];
|
|
48
|
+
function bootstrap(entryPoint, options) {
|
|
49
|
+
var _a;
|
|
50
|
+
if (options === void 0) { options = {}; }
|
|
51
|
+
return (0, fivem_framework_server_1.bootstrap)(entryPoint, __assign(__assign({}, options), { providers: __spreadArray(__spreadArray([], BUILT_IN_PROVIDERS, true), ((_a = options.providers) !== null && _a !== void 0 ? _a : []), true) }));
|
|
52
|
+
}
|
|
53
|
+
__exportStar(require("./services"), exports);
|
|
54
|
+
__exportStar(require("@armoury/fivem-roleplay-gamemode-common"), exports);
|
|
@@ -0,0 +1,17 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./server-business.service"), exports);
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ServerBusinessService = void 0;
|
|
13
|
+
var fivem_framework_server_1 = require("@armoury/fivem-framework-server");
|
|
14
|
+
var injection_js_1 = require("injection-js");
|
|
15
|
+
var rxjs_1 = require("rxjs");
|
|
16
|
+
var fivem_roleplay_gamemode_common_1 = require("@armoury/fivem-roleplay-gamemode-common");
|
|
17
|
+
var ServerBusinessService = /** @class */ (function () {
|
|
18
|
+
function ServerBusinessService() {
|
|
19
|
+
this._onPlayerInteractRequest$ = new rxjs_1.Subject();
|
|
20
|
+
this._name = Cfx.Server.GetCurrentResourceName().split('-').slice(1).join('-').replace('/', '').toLowerCase();
|
|
21
|
+
if (!Cfx.Server.GetCurrentResourceName().includes('businesses-')) {
|
|
22
|
+
console.error("You are using a Business-specific service but the resource's name does NOT comply with the naming 'businesses-<businessNameStripped>'. The resource may not work properly.");
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(ServerBusinessService.prototype, "onPlayerInteractRequest$", {
|
|
26
|
+
get: function () {
|
|
27
|
+
return this._onPlayerInteractRequest$.asObservable();
|
|
28
|
+
},
|
|
29
|
+
enumerable: false,
|
|
30
|
+
configurable: true
|
|
31
|
+
});
|
|
32
|
+
Object.defineProperty(ServerBusinessService.prototype, "name", {
|
|
33
|
+
get: function () {
|
|
34
|
+
return this._name;
|
|
35
|
+
},
|
|
36
|
+
enumerable: false,
|
|
37
|
+
configurable: true
|
|
38
|
+
});
|
|
39
|
+
ServerBusinessService.prototype.onPlayerInteractRequest = function (business) {
|
|
40
|
+
// TODO: Do stuff
|
|
41
|
+
var player = Cfx.source;
|
|
42
|
+
this._onPlayerInteractRequest$.next({ by: player, business: business });
|
|
43
|
+
};
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, fivem_framework_server_1.EventListener)({ eventName: "".concat(Cfx.Server.GetCurrentResourceName(), ":interact-request") }),
|
|
46
|
+
__metadata("design:type", Function),
|
|
47
|
+
__metadata("design:paramtypes", [fivem_roleplay_gamemode_common_1.Business]),
|
|
48
|
+
__metadata("design:returntype", void 0)
|
|
49
|
+
], ServerBusinessService.prototype, "onPlayerInteractRequest", null);
|
|
50
|
+
ServerBusinessService = __decorate([
|
|
51
|
+
(0, injection_js_1.Injectable)(),
|
|
52
|
+
__metadata("design:paramtypes", [])
|
|
53
|
+
], ServerBusinessService);
|
|
54
|
+
return ServerBusinessService;
|
|
55
|
+
}());
|
|
56
|
+
exports.ServerBusinessService = ServerBusinessService;
|
|
@@ -0,0 +1,18 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./businesses"), exports);
|
|
18
|
+
__exportStar(require("./items"), exports);
|
|
@@ -0,0 +1,17 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./server-items.service"), exports);
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
15
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
16
|
+
if (ar || !(i in from)) {
|
|
17
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
18
|
+
ar[i] = from[i];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
22
|
+
};
|
|
23
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
24
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.ItemTransferOptions = exports.ServerItemsService = void 0;
|
|
28
|
+
var injection_js_1 = require("injection-js");
|
|
29
|
+
var clone_deep_1 = __importDefault(require("clone-deep"));
|
|
30
|
+
var ServerItemsService = /** @class */ (function () {
|
|
31
|
+
function ServerItemsService(_items) {
|
|
32
|
+
var _a;
|
|
33
|
+
this._items = _items;
|
|
34
|
+
this._items = (_a = _items.filter(function (item) { return !!item; })) !== null && _a !== void 0 ? _a : [];
|
|
35
|
+
var cacheAdderFunc = Cfx.exports['armoury-roleplay'].addToItemCache;
|
|
36
|
+
if (!cacheAdderFunc) {
|
|
37
|
+
console.error("[Armoury (".concat(Cfx.Server.GetCurrentResourceName(), "):] Could not find a valid export for registering items to the global cache. Did you forget to load the 'armoury-roleplay' resource?"));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (this._items.length) {
|
|
41
|
+
console.log("[Armoury (".concat(Cfx.Server.GetCurrentResourceName(), "):] This resource contains registered items. Registering these items globally.. (").concat(this._items.map(function (item) { return item.identifier; }).join(', '), ")"));
|
|
42
|
+
cacheAdderFunc.apply(void 0, this._items);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
console.log("[Armoury (".concat(Cfx.Server.GetCurrentResourceName(), "):] This resource does not register any new items. (this might be an issue if you were actually planning to register items to the global cache)"));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
ServerItemsService_1 = ServerItemsService;
|
|
49
|
+
Object.defineProperty(ServerItemsService.prototype, "onItemTransfer$", {
|
|
50
|
+
get: function () {
|
|
51
|
+
return this._onItemTransfer$.asObservable();
|
|
52
|
+
},
|
|
53
|
+
enumerable: false,
|
|
54
|
+
configurable: true
|
|
55
|
+
});
|
|
56
|
+
ServerItemsService.prototype.transfer = function (from, to, item, amount, options) {
|
|
57
|
+
if (amount === void 0) { amount = item.amount; }
|
|
58
|
+
if (!from.has(item.identifier)) {
|
|
59
|
+
console.error("Tried to transfer item with identifier (".concat(item.identifier, ") from stash (").concat(from.name, ") to (").concat(to.name, "), but stash (").concat(from.name, ") has no such item in it."));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
var copy = amount >= item.amount ? item : (0, clone_deep_1.default)(item, true);
|
|
63
|
+
amount = Math.min(amount, item.amount);
|
|
64
|
+
from.consume(item, amount);
|
|
65
|
+
to.add(copy.empty().add(amount));
|
|
66
|
+
return true;
|
|
67
|
+
};
|
|
68
|
+
ServerItemsService.withDefaults = function () {
|
|
69
|
+
return ({
|
|
70
|
+
provide: ServerItemsService_1,
|
|
71
|
+
useFactory: function (items) { return new ServerItemsService_1(items || []); },
|
|
72
|
+
deps: ['items'],
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
ServerItemsService.withItems = function () {
|
|
76
|
+
var items = [];
|
|
77
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
78
|
+
items[_i] = arguments[_i];
|
|
79
|
+
}
|
|
80
|
+
return __spreadArray(__spreadArray([], items.map(function (item) { return ({
|
|
81
|
+
provide: 'items',
|
|
82
|
+
useValue: new item(),
|
|
83
|
+
multi: true,
|
|
84
|
+
}); }), true), [
|
|
85
|
+
ServerItemsService_1.withDefaults()
|
|
86
|
+
], false);
|
|
87
|
+
};
|
|
88
|
+
var ServerItemsService_1;
|
|
89
|
+
ServerItemsService = ServerItemsService_1 = __decorate([
|
|
90
|
+
(0, injection_js_1.Injectable)(),
|
|
91
|
+
__param(0, (0, injection_js_1.Optional)()),
|
|
92
|
+
__param(0, (0, injection_js_1.Inject)('items')),
|
|
93
|
+
__metadata("design:paramtypes", [Array])
|
|
94
|
+
], ServerItemsService);
|
|
95
|
+
return ServerItemsService;
|
|
96
|
+
}());
|
|
97
|
+
exports.ServerItemsService = ServerItemsService;
|
|
98
|
+
var ItemTransferOptions = /** @class */ (function () {
|
|
99
|
+
function ItemTransferOptions() {
|
|
100
|
+
this.emitEvent = true;
|
|
101
|
+
}
|
|
102
|
+
return ItemTransferOptions;
|
|
103
|
+
}());
|
|
104
|
+
exports.ItemTransferOptions = ItemTransferOptions;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
13
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
14
|
+
if (ar || !(i in from)) {
|
|
15
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
16
|
+
ar[i] = from[i];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
20
|
+
};
|
|
21
|
+
import { bootstrap as ɵbootstrap } from '@armoury/fivem-framework-server';
|
|
22
|
+
import { ServerBusinessService } from './services';
|
|
23
|
+
var BUILT_IN_PROVIDERS = [
|
|
24
|
+
{
|
|
25
|
+
provide: 'items',
|
|
26
|
+
useValue: null,
|
|
27
|
+
multi: true,
|
|
28
|
+
},
|
|
29
|
+
ServerBusinessService,
|
|
30
|
+
];
|
|
31
|
+
export function bootstrap(entryPoint, options) {
|
|
32
|
+
var _a;
|
|
33
|
+
if (options === void 0) { options = {}; }
|
|
34
|
+
return ɵbootstrap(entryPoint, __assign(__assign({}, options), { providers: __spreadArray(__spreadArray([], BUILT_IN_PROVIDERS, true), ((_a = options.providers) !== null && _a !== void 0 ? _a : []), true) }));
|
|
35
|
+
}
|
|
36
|
+
export * from './services';
|
|
37
|
+
export * from '@armoury/fivem-roleplay-gamemode-common';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './server-business.service';
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { EventListener } from '@armoury/fivem-framework-server';
|
|
11
|
+
import { Injectable } from 'injection-js';
|
|
12
|
+
import { Subject } from 'rxjs';
|
|
13
|
+
import { Business } from '@armoury/fivem-roleplay-gamemode-common';
|
|
14
|
+
var ServerBusinessService = /** @class */ (function () {
|
|
15
|
+
function ServerBusinessService() {
|
|
16
|
+
this._onPlayerInteractRequest$ = new Subject();
|
|
17
|
+
this._name = Cfx.Server.GetCurrentResourceName().split('-').slice(1).join('-').replace('/', '').toLowerCase();
|
|
18
|
+
if (!Cfx.Server.GetCurrentResourceName().includes('businesses-')) {
|
|
19
|
+
console.error("You are using a Business-specific service but the resource's name does NOT comply with the naming 'businesses-<businessNameStripped>'. The resource may not work properly.");
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
Object.defineProperty(ServerBusinessService.prototype, "onPlayerInteractRequest$", {
|
|
23
|
+
get: function () {
|
|
24
|
+
return this._onPlayerInteractRequest$.asObservable();
|
|
25
|
+
},
|
|
26
|
+
enumerable: false,
|
|
27
|
+
configurable: true
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(ServerBusinessService.prototype, "name", {
|
|
30
|
+
get: function () {
|
|
31
|
+
return this._name;
|
|
32
|
+
},
|
|
33
|
+
enumerable: false,
|
|
34
|
+
configurable: true
|
|
35
|
+
});
|
|
36
|
+
ServerBusinessService.prototype.onPlayerInteractRequest = function (business) {
|
|
37
|
+
// TODO: Do stuff
|
|
38
|
+
var player = Cfx.source;
|
|
39
|
+
this._onPlayerInteractRequest$.next({ by: player, business: business });
|
|
40
|
+
};
|
|
41
|
+
__decorate([
|
|
42
|
+
EventListener({ eventName: "".concat(Cfx.Server.GetCurrentResourceName(), ":interact-request") }),
|
|
43
|
+
__metadata("design:type", Function),
|
|
44
|
+
__metadata("design:paramtypes", [Business]),
|
|
45
|
+
__metadata("design:returntype", void 0)
|
|
46
|
+
], ServerBusinessService.prototype, "onPlayerInteractRequest", null);
|
|
47
|
+
ServerBusinessService = __decorate([
|
|
48
|
+
Injectable(),
|
|
49
|
+
__metadata("design:paramtypes", [])
|
|
50
|
+
], ServerBusinessService);
|
|
51
|
+
return ServerBusinessService;
|
|
52
|
+
}());
|
|
53
|
+
export { ServerBusinessService };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './server-items.service';
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
14
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
15
|
+
if (ar || !(i in from)) {
|
|
16
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
17
|
+
ar[i] = from[i];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
21
|
+
};
|
|
22
|
+
import { Inject, Injectable, Optional } from "injection-js";
|
|
23
|
+
import cloneDeep from "clone-deep";
|
|
24
|
+
var ServerItemsService = /** @class */ (function () {
|
|
25
|
+
function ServerItemsService(_items) {
|
|
26
|
+
var _a;
|
|
27
|
+
this._items = _items;
|
|
28
|
+
this._items = (_a = _items.filter(function (item) { return !!item; })) !== null && _a !== void 0 ? _a : [];
|
|
29
|
+
var cacheAdderFunc = Cfx.exports['armoury-roleplay'].addToItemCache;
|
|
30
|
+
if (!cacheAdderFunc) {
|
|
31
|
+
console.error("[Armoury (".concat(Cfx.Server.GetCurrentResourceName(), "):] Could not find a valid export for registering items to the global cache. Did you forget to load the 'armoury-roleplay' resource?"));
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (this._items.length) {
|
|
35
|
+
console.log("[Armoury (".concat(Cfx.Server.GetCurrentResourceName(), "):] This resource contains registered items. Registering these items globally.. (").concat(this._items.map(function (item) { return item.identifier; }).join(', '), ")"));
|
|
36
|
+
cacheAdderFunc.apply(void 0, this._items);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
console.log("[Armoury (".concat(Cfx.Server.GetCurrentResourceName(), "):] This resource does not register any new items. (this might be an issue if you were actually planning to register items to the global cache)"));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
ServerItemsService_1 = ServerItemsService;
|
|
43
|
+
Object.defineProperty(ServerItemsService.prototype, "onItemTransfer$", {
|
|
44
|
+
get: function () {
|
|
45
|
+
return this._onItemTransfer$.asObservable();
|
|
46
|
+
},
|
|
47
|
+
enumerable: false,
|
|
48
|
+
configurable: true
|
|
49
|
+
});
|
|
50
|
+
ServerItemsService.prototype.transfer = function (from, to, item, amount, options) {
|
|
51
|
+
if (amount === void 0) { amount = item.amount; }
|
|
52
|
+
if (!from.has(item.identifier)) {
|
|
53
|
+
console.error("Tried to transfer item with identifier (".concat(item.identifier, ") from stash (").concat(from.name, ") to (").concat(to.name, "), but stash (").concat(from.name, ") has no such item in it."));
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
var copy = amount >= item.amount ? item : cloneDeep(item, true);
|
|
57
|
+
amount = Math.min(amount, item.amount);
|
|
58
|
+
from.consume(item, amount);
|
|
59
|
+
to.add(copy.empty().add(amount));
|
|
60
|
+
return true;
|
|
61
|
+
};
|
|
62
|
+
ServerItemsService.withDefaults = function () {
|
|
63
|
+
return ({
|
|
64
|
+
provide: ServerItemsService_1,
|
|
65
|
+
useFactory: function (items) { return new ServerItemsService_1(items || []); },
|
|
66
|
+
deps: ['items'],
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
ServerItemsService.withItems = function () {
|
|
70
|
+
var items = [];
|
|
71
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
72
|
+
items[_i] = arguments[_i];
|
|
73
|
+
}
|
|
74
|
+
return __spreadArray(__spreadArray([], items.map(function (item) { return ({
|
|
75
|
+
provide: 'items',
|
|
76
|
+
useValue: new item(),
|
|
77
|
+
multi: true,
|
|
78
|
+
}); }), true), [
|
|
79
|
+
ServerItemsService_1.withDefaults()
|
|
80
|
+
], false);
|
|
81
|
+
};
|
|
82
|
+
var ServerItemsService_1;
|
|
83
|
+
ServerItemsService = ServerItemsService_1 = __decorate([
|
|
84
|
+
Injectable(),
|
|
85
|
+
__param(0, Optional()),
|
|
86
|
+
__param(0, Inject('items')),
|
|
87
|
+
__metadata("design:paramtypes", [Array])
|
|
88
|
+
], ServerItemsService);
|
|
89
|
+
return ServerItemsService;
|
|
90
|
+
}());
|
|
91
|
+
export { ServerItemsService };
|
|
92
|
+
var ItemTransferOptions = /** @class */ (function () {
|
|
93
|
+
function ItemTransferOptions() {
|
|
94
|
+
this.emitEvent = true;
|
|
95
|
+
}
|
|
96
|
+
return ItemTransferOptions;
|
|
97
|
+
}());
|
|
98
|
+
export { ItemTransferOptions };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type BootstrapOptions } from '@armoury/fivem-framework-server';
|
|
2
|
+
import type { Provider } from 'injection-js';
|
|
3
|
+
export declare function bootstrap<T extends {
|
|
4
|
+
new (...args: any[]): any;
|
|
5
|
+
} & Provider>(entryPoint: T, options?: BootstrapOptions): Promise<InstanceType<T>>;
|
|
6
|
+
export * from './services';
|
|
7
|
+
export * from '@armoury/fivem-roleplay-gamemode-common';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './server-business.service';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Observable, Subject } from 'rxjs';
|
|
2
|
+
import { Business, IBusinessInteractRequest } from '@armoury/fivem-roleplay-gamemode-common';
|
|
3
|
+
export declare class ServerBusinessService {
|
|
4
|
+
protected _onPlayerInteractRequest$: Subject<IBusinessInteractRequest>;
|
|
5
|
+
get onPlayerInteractRequest$(): Observable<IBusinessInteractRequest>;
|
|
6
|
+
protected _name: string;
|
|
7
|
+
get name(): string;
|
|
8
|
+
constructor();
|
|
9
|
+
onPlayerInteractRequest(business: Business): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './server-items.service';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Provider } from "injection-js";
|
|
2
|
+
import { Observable, Subject } from "rxjs";
|
|
3
|
+
import { IItemBase, IItemTransfer, Item, ItemStash } from "@armoury/fivem-roleplay-gamemode-common";
|
|
4
|
+
export declare class ServerItemsService {
|
|
5
|
+
private readonly _items?;
|
|
6
|
+
protected _onItemTransfer$: Subject<IItemTransfer>;
|
|
7
|
+
get onItemTransfer$(): Observable<IItemTransfer>;
|
|
8
|
+
constructor(_items?: Item<IItemBase>[]);
|
|
9
|
+
transfer<T extends IItemBase, V extends T>(from: ItemStash<T>, to: ItemStash<T>, item: V, amount?: number, options?: IItemTransferOptions): boolean;
|
|
10
|
+
static withDefaults(): Provider;
|
|
11
|
+
static withItems<T extends {
|
|
12
|
+
new (...args: any[]): any;
|
|
13
|
+
}>(...items: T[]): Provider[];
|
|
14
|
+
}
|
|
15
|
+
export interface IItemTransferOptions {
|
|
16
|
+
emitEvent?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface ItemTransferOptions extends IItemTransferOptions {
|
|
19
|
+
}
|
|
20
|
+
export declare class ItemTransferOptions {
|
|
21
|
+
emitEvent: boolean;
|
|
22
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,34 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@armoury/fivem-roleplay-gamemode-server",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
1
|
+
{
|
|
2
|
+
"name": "@armoury/fivem-roleplay-gamemode-server",
|
|
3
|
+
"version": "1.0.12",
|
|
4
|
+
"description": "Server APIs for the Armoury FiveM roleplay gamemode",
|
|
5
|
+
"main": "dist/cjs/server/index.js",
|
|
6
|
+
"module": "dist/esm/server/index.js",
|
|
7
|
+
"types": "dist/types/server/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/types/server/index.d.ts",
|
|
11
|
+
"import": "./dist/esm/server/index.js",
|
|
12
|
+
"require": "./dist/cjs/server/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": ["dist"],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "npm run build:cjs && npm run build:esm && npm run build:types",
|
|
18
|
+
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
19
|
+
"build:esm": "tsc -p tsconfig.esm.json",
|
|
20
|
+
"build:types": "tsc -p tsconfig.types.json"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"clone-deep": "^4.0.1",
|
|
24
|
+
"injection-js": "^2.4.0",
|
|
25
|
+
"rxjs": "^7.8.1"
|
|
26
|
+
},
|
|
27
|
+
"peerDependencies": {
|
|
28
|
+
"@armoury/fivem-framework-server": "^1.0.12",
|
|
29
|
+
"@armoury/fivem-roleplay-gamemode-common": "1.0.12"
|
|
30
|
+
},
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"access": "public"
|
|
33
|
+
}
|
|
6
34
|
}
|
package/README.md
DELETED