h1z1-server 0.22.1-0 → 0.22.2-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 (76) hide show
  1. package/.prettierignore +1 -0
  2. package/data/2016/dataSources/ServerItemDefinitions.json +18 -1
  3. package/data/defaultDatabase/shared/servers.json +23 -0
  4. package/data/kotk/sampleData/single_player_server.json +19 -0
  5. package/package.json +7 -6
  6. package/scripts/demo/ZoneServer2016.js +0 -1
  7. package/scripts/demo/loginserver2016.js +0 -1
  8. package/scripts/genPacketsInterfaces.ts +3 -4
  9. package/scripts/genPacketsNames.ts +7 -1
  10. package/src/clients/soeclient.js +316 -318
  11. package/src/packets/ClientProtocol/ClientProtocol_1080/base.ts +3533 -3533
  12. package/src/packets/ClientProtocol/ClientProtocol_1080/character.ts +567 -567
  13. package/src/packets/ClientProtocol/ClientProtocol_1080/clientUpdate.ts +383 -383
  14. package/src/packets/ClientProtocol/ClientProtocol_1080/command.ts +699 -679
  15. package/src/packets/ClientProtocol/ClientProtocol_1080/construction.ts +86 -86
  16. package/src/packets/ClientProtocol/ClientProtocol_1080/mount.ts +86 -86
  17. package/src/packets/ClientProtocol/ClientProtocol_1080/referenceData.ts +1076 -1076
  18. package/src/packets/ClientProtocol/ClientProtocol_1080/shared.ts +2 -2
  19. package/src/packets/ClientProtocol/ClientProtocol_1080/vehicle.ts +10 -1
  20. package/src/packets/ClientProtocol/ClientProtocol_1080/wallOfData.ts +49 -49
  21. package/src/packets/ClientProtocol/ClientProtocol_1080/weapon.ts +8 -1
  22. package/src/packets/ClientProtocol/ClientProtocol_860/base.ts +7 -1
  23. package/src/packets/LoginUdp/LoginUdp_11/loginpackets.ts +519 -471
  24. package/src/packets/LoginUdp/LoginUdp_9/loginpackets.ts +441 -441
  25. package/src/servers/GatewayServer/gatewayserver.ts +124 -133
  26. package/src/servers/H1emuServer/h1emuLoginServer.ts +57 -57
  27. package/src/servers/H1emuServer/h1emuZoneServer.ts +115 -115
  28. package/src/servers/H1emuServer/shared/h1emuclient.ts +29 -29
  29. package/src/servers/H1emuServer/shared/h1emuserver.ts +116 -115
  30. package/src/servers/LoginServer/loginclient.ts +19 -18
  31. package/src/servers/LoginServer/loginserver.ts +406 -348
  32. package/src/servers/LoginServer/workers/httpServer.ts +122 -122
  33. package/src/servers/SoeServer/soeinputstream.ts +16 -13
  34. package/src/servers/SoeServer/soeoutputstream.ts +119 -127
  35. package/src/servers/SoeServer/soeserver.ts +41 -49
  36. package/src/servers/ZoneServer2015/zoneserver.ts +34 -50
  37. package/src/servers/ZoneServer2016/classes/baseentity.ts +75 -75
  38. package/src/servers/ZoneServer2016/classes/basefullcharacter.ts +376 -376
  39. package/src/servers/ZoneServer2016/classes/baselightweightcharacter.ts +107 -107
  40. package/src/servers/ZoneServer2016/classes/basesimplenpc.ts +45 -45
  41. package/src/servers/ZoneServer2016/classes/character.ts +283 -283
  42. package/src/servers/ZoneServer2016/classes/constructionDoor.ts +3 -2
  43. package/src/servers/ZoneServer2016/classes/constructionParentEntity.ts +8 -8
  44. package/src/servers/ZoneServer2016/classes/craftmanager.ts +277 -215
  45. package/src/servers/ZoneServer2016/classes/doorentity.ts +140 -140
  46. package/src/servers/ZoneServer2016/classes/simpleConstruction.ts +4 -4
  47. package/src/servers/ZoneServer2016/classes/temporaryentity.ts +28 -28
  48. package/src/servers/ZoneServer2016/classes/vehicle.ts +1 -0
  49. package/src/servers/ZoneServer2016/classes/worlddatamanager.ts +433 -433
  50. package/src/servers/ZoneServer2016/classes/worldobjectmanager.ts +1 -1
  51. package/src/servers/ZoneServer2016/classes/zoneclient.ts +82 -82
  52. package/src/servers/ZoneServer2016/commands/commandhandler.ts +39 -18
  53. package/src/servers/ZoneServer2016/commands/commands.ts +1 -1
  54. package/src/servers/ZoneServer2016/commands/dev.ts +26 -16
  55. package/src/servers/ZoneServer2016/commands/internalcommands.ts +82 -82
  56. package/src/servers/ZoneServer2016/commands/types.ts +15 -15
  57. package/src/servers/ZoneServer2016/data/Recipes.ts +2054 -0
  58. package/src/servers/ZoneServer2016/enums.ts +159 -9
  59. package/src/servers/ZoneServer2016/zonepackethandlers.ts +1981 -2195
  60. package/src/servers/ZoneServer2016/zoneserver.ts +368 -133
  61. package/src/servers/shared/functions.ts +43 -43
  62. package/src/servers/shared/workers/udpServerWorker.ts +88 -83
  63. package/src/types/LoginUdp_11packets.ts +15 -23
  64. package/src/types/LoginUdp_9packets.ts +13 -24
  65. package/src/types/gatewaypackets.ts +8 -10
  66. package/src/types/loginserver.ts +27 -78
  67. package/src/types/packets.ts +5 -2531
  68. package/src/types/soeserver.ts +18 -40
  69. package/src/types/zone2015packets.ts +596 -889
  70. package/src/types/zone2016packets.ts +517 -733
  71. package/src/types/zoneserver.ts +11 -109
  72. package/src/utils/enums.ts +18 -0
  73. package/src/utils/processErrorHandling.ts +49 -49
  74. package/src/utils/utils.ts +8 -0
  75. package/data/2016/sampleData/recipes.json +0 -3058
  76. package/src/types/gatewayserver.ts +0 -34
@@ -0,0 +1 @@
1
+ src/types/**/*
@@ -143493,6 +143493,7 @@
143493
143493
  "PICKUP_EFFECT": 5153
143494
143494
  },
143495
143495
  "3445": {
143496
+ "NAME": "Frostbite",
143496
143497
  "ID": 3445,
143497
143498
  "CODE_FACTORY_NAME": "Weapon",
143498
143499
  "NAME_ID": 14139,
@@ -143568,6 +143569,7 @@
143568
143569
  "PICKUP_EFFECT": 5157
143569
143570
  },
143570
143571
  "3446": {
143572
+ "NAME": "Blaze",
143571
143573
  "ID": 3446,
143572
143574
  "CODE_FACTORY_NAME": "Weapon",
143573
143575
  "NAME_ID": 14141,
@@ -143716,6 +143718,7 @@
143716
143718
  "SCRAP_VALUE_OVERRIDE": 5
143717
143719
  },
143718
143720
  "3448": {
143721
+ "NAME": "Nagafen's Rage",
143719
143722
  "ID": 3448,
143720
143723
  "CODE_FACTORY_NAME": "Weapon",
143721
143724
  "NAME_ID": 14145,
@@ -143791,6 +143794,7 @@
143791
143794
  "PICKUP_EFFECT": 5157
143792
143795
  },
143793
143796
  "3449": {
143797
+ "NAME": "Purge",
143794
143798
  "ID": 3449,
143795
143799
  "CODE_FACTORY_NAME": "Weapon",
143796
143800
  "NAME_ID": 14147,
@@ -143866,6 +143870,7 @@
143866
143870
  "PICKUP_EFFECT": 5156
143867
143871
  },
143868
143872
  "3450": {
143873
+ "NAME": "Reaper",
143869
143874
  "ID": 3450,
143870
143875
  "CODE_FACTORY_NAME": "Weapon",
143871
143876
  "NAME_ID": 14154,
@@ -143880,7 +143885,7 @@
143880
143885
  "PROFILE_OVERRIDE": 0,
143881
143886
  "NO_TRADE": 0,
143882
143887
  "SINGLE_USE": 0,
143883
- "MODEL_NAME": "",
143888
+ "MODEL_NAME": "Weapon_M24_3P.adr",
143884
143889
  "GENDER_USAGE": 0,
143885
143890
  "TEXTURE_ALIAS": "",
143886
143891
  "SHADER_PARAMETER_GROUP_ID": 0,
@@ -144163,6 +144168,7 @@
144163
144168
  "WORLD_MODEL_ID": 9952
144164
144169
  },
144165
144170
  "3455": {
144171
+ "NAME": "Prototype Mechanism",
144166
144172
  "ID": 3455,
144167
144173
  "CODE_FACTORY_NAME": "Generic",
144168
144174
  "NAME_ID": 14160,
@@ -144237,6 +144243,7 @@
144237
144243
  "PICKUP_EFFECT": 5151
144238
144244
  },
144239
144245
  "3456": {
144246
+ "NAME": "Prototype Trigger Assembly",
144240
144247
  "ID": 3456,
144241
144248
  "CODE_FACTORY_NAME": "Generic",
144242
144249
  "NAME_ID": 14162,
@@ -144311,6 +144318,7 @@
144311
144318
  "PICKUP_EFFECT": 5151
144312
144319
  },
144313
144320
  "3457": {
144321
+ "NAME": "Prototype Receiver",
144314
144322
  "ID": 3457,
144315
144323
  "CODE_FACTORY_NAME": "Generic",
144316
144324
  "NAME_ID": 14164,
@@ -144385,6 +144393,7 @@
144385
144393
  "PICKUP_EFFECT": 5151
144386
144394
  },
144387
144395
  "3458": {
144396
+ "NAME": "Hotwire",
144388
144397
  "ID": 3458,
144389
144398
  "CODE_FACTORY_NAME": "Generic",
144390
144399
  "NAME_ID": 14166,
@@ -144459,6 +144468,7 @@
144459
144468
  "PICKUP_EFFECT": 5151
144460
144469
  },
144461
144470
  "3459": {
144471
+ "NAME": "Hotwire",
144462
144472
  "ID": 3459,
144463
144473
  "CODE_FACTORY_NAME": "Generic",
144464
144474
  "NAME_ID": 14166,
@@ -144533,6 +144543,7 @@
144533
144543
  "PICKUP_EFFECT": 5151
144534
144544
  },
144535
144545
  "3460": {
144546
+ "NAME": "Vehicle Key",
144536
144547
  "ID": 3460,
144537
144548
  "CODE_FACTORY_NAME": "Generic",
144538
144549
  "NAME_ID": 14018,
@@ -167350,6 +167361,7 @@
167350
167361
  "SCRAP_VALUE_OVERRIDE": 200
167351
167362
  },
167352
167363
  "3775": {
167364
+ "NAME": "Plastic Shard",
167353
167365
  "ID": 3775,
167354
167366
  "CODE_FACTORY_NAME": "Generic",
167355
167367
  "NAME_ID": 15140,
@@ -167424,6 +167436,7 @@
167424
167436
  "PICKUP_EFFECT": 5151
167425
167437
  },
167426
167438
  "3777": {
167439
+ "NAME": "Weapon Workbench",
167427
167440
  "ID": 3777,
167428
167441
  "CODE_FACTORY_NAME": "EquippableContainer",
167429
167442
  "NAME_ID": 15145,
@@ -167497,6 +167510,7 @@
167497
167510
  "SCRAP_VALUE_OVERRIDE": 0
167498
167511
  },
167499
167512
  "3778": {
167513
+ "NAME": "Weapon Workbench",
167500
167514
  "ID": 3778,
167501
167515
  "CODE_FACTORY_NAME": "Generic",
167502
167516
  "NAME_ID": 15145,
@@ -167571,6 +167585,7 @@
167571
167585
  "PICKUP_EFFECT": 5151
167572
167586
  },
167573
167587
  "3779": {
167588
+ "NAME": "Lead Alloy",
167574
167589
  "ID": 3779,
167575
167590
  "CODE_FACTORY_NAME": "Generic",
167576
167591
  "NAME_ID": 15148,
@@ -167645,6 +167660,7 @@
167645
167660
  "PICKUP_EFFECT": 5151
167646
167661
  },
167647
167662
  "3780": {
167663
+ "NAME": "Brass Shard",
167648
167664
  "ID": 3780,
167649
167665
  "CODE_FACTORY_NAME": "Generic",
167650
167666
  "NAME_ID": 15150,
@@ -169338,6 +169354,7 @@
169338
169354
  "SCRAP_VALUE_OVERRIDE": 200
169339
169355
  },
169340
169356
  "3805": {
169357
+ "NAME": "Refined Gunpowder",
169341
169358
  "ID": 3805,
169342
169359
  "CODE_FACTORY_NAME": "Generic",
169343
169360
  "NAME_ID": 15614,
@@ -14,6 +14,8 @@
14
14
  "populationData": "<Population ServerCapacity=\"0\" PingAddress=\"127.0.0.1:1117\" Rulesets=\"PvE\"><factionlist IsList=\"1\"><faction Id=\"1\" Percent=\"0\" TargetPopPct=\"0\" RewardBuff=\"52\" XPBuff=\"52\" PercentAvg=\"0\"/><faction Id=\"2\" Percent=\"0\" TargetPopPct=\"1\" RewardBuff=\"0\" XPBuff=\"0\" PercentAvg=\"0\"/><faction Id=\"3\" Percent=\"0\" TargetPopPct=\"1\" RewardBuff=\"0\" XPBuff=\"0\" PercentAvg=\"1\"/></factionlist></Population>",
15
15
  "allowedAccess": false,
16
16
  "populationNumber": 0,
17
+ "maxPopulationNumber": 100,
18
+ "gameVersion": 1,
17
19
  "serverVersionTag": "2015"
18
20
  },
19
21
  {
@@ -31,6 +33,27 @@
31
33
  "populationData": "<Population ServerCapacity=\"0\" PingAddress=\"127.0.0.1:1117\" Rulesets=\"PvE\"><factionlist IsList=\"1\"><faction Id=\"1\" Percent=\"0\" TargetPopPct=\"0\" RewardBuff=\"52\" XPBuff=\"52\" PercentAvg=\"0\"/><faction Id=\"2\" Percent=\"0\" TargetPopPct=\"1\" RewardBuff=\"0\" XPBuff=\"0\" PercentAvg=\"0\"/><faction Id=\"3\" Percent=\"0\" TargetPopPct=\"1\" RewardBuff=\"0\" XPBuff=\"0\" PercentAvg=\"1\"/></factionlist></Population>",
32
34
  "allowedAccess": true,
33
35
  "populationNumber": 0,
36
+ "maxPopulationNumber": 100,
37
+ "gameVersion": 2,
34
38
  "serverVersionTag": "2016"
39
+ },
40
+ {
41
+ "serverId": 3,
42
+ "serverState": 2,
43
+ "serverAddress": "localhost:1117",
44
+ "locked": false,
45
+ "name": "",
46
+ "nameId": 193,
47
+ "description": "",
48
+ "descriptionId": 193,
49
+ "reqFeatureId": 0,
50
+ "serverInfo": "<ServerInfo Region=\"CharacterCreate.RegionEu\" Subregion=\"UI.SubregionEu\" IsRecommended=\"1\" IsRecommendedVS=\"0\" IsRecommendedNC=\"0\" IsRecommendedTR=\"0\" />",
51
+ "populationLevel": 0,
52
+ "populationData": "<Population PctCap=\"0\" PingAdr=\"127.0.0.1:1117\" Rulesets=\"\" Mode=\"0\" IsLogin=\"1\" IsWL=\"0\" IsEvt=\"0\" PL=\"0\" DC=\"LVS\" PopLock=\"0\" GP=\"100\" BP=\"175\" MaxPop=\"4000\" Subregion=\"US\"><Fac IsList=\"1\"/></Population>",
53
+ "allowedAccess": true,
54
+ "populationNumber": 0,
55
+ "maxPopulationNumber": 100,
56
+ "gameVersion": 3,
57
+ "serverVersionTag": "KOTK"
35
58
  }
36
59
  ]
@@ -0,0 +1,19 @@
1
+ {
2
+ "serverId": 1,
3
+ "serverState": 2,
4
+ "serverAddress": "localhost:1117",
5
+ "locked": false,
6
+ "name": "",
7
+ "nameId": 193,
8
+ "description": "",
9
+ "descriptionId": 193,
10
+ "reqFeatureId": 0,
11
+ "serverInfo": "<ServerInfo Region=\"CharacterCreate.RegionEu\" Subregion=\"UI.SubregionEu\" IsRecommended=\"1\" IsRecommendedVS=\"0\" IsRecommendedNC=\"0\" IsRecommendedTR=\"0\" />",
12
+ "populationLevel": 0,
13
+ "populationData": "<Population PctCap=\"0\" PingAdr=\"127.0.0.1:1117\" Rulesets=\"\" Mode=\"0\" IsLogin=\"1\" IsWL=\"0\" IsEvt=\"0\" PL=\"0\" DC=\"LVS\" PopLock=\"0\" GP=\"100\" BP=\"175\" MaxPop=\"4000\" Subregion=\"US\"><Fac IsList=\"1\"/></Population>",
14
+ "allowedAccess": true,
15
+ "populationNumber": 0,
16
+ "maxPopulationNumber": 100,
17
+ "gameVersion": 3,
18
+ "serverVersionTag": "KOTK"
19
+ }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "h1z1-server",
3
- "version": "0.22.1-0",
3
+ "version": "0.22.2-0",
4
4
  "description": "Library for emulating h1z1 servers",
5
5
  "author": "Quentin Gruber <quentingruber@gmail.com> (http://github.com/quentingruber)",
6
6
  "license": "GPL-3.0-only",
7
7
  "main": "h1z1-server.js",
8
8
  "engines": {
9
- "node": ">=0.16.0 <19"
9
+ "node": ">=0.16.0 <20"
10
10
  },
11
11
  "bin": {
12
12
  "h1z1-server-demo": "scripts/h1z1-server-demo.js",
@@ -14,8 +14,8 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "debug": "4.3.4",
17
- "h1emu-core": "0.9.3",
18
- "h1z1-dataschema": "1.5.12",
17
+ "h1emu-core": "1.0.0",
18
+ "h1z1-dataschema": "1.7.0",
19
19
  "mongodb": "4.7.0",
20
20
  "typescript": "4.7.2"
21
21
  },
@@ -32,9 +32,9 @@
32
32
  "typedoc": "0.23.15"
33
33
  },
34
34
  "scripts": {
35
- "gen-packets-types": "npx ts-node ./scripts/genPacketsNames.ts && npx prettier -w ./src/types/packets.ts",
35
+ "gen-packets-types": "npx ts-node ./scripts/genPacketsNames.ts",
36
36
  "gen-model-textures": "npx ts-node ./scripts/genModelTextures.ts",
37
- "gen-packets-interfaces": "npx ts-node ./scripts/genPacketsInterfaces.ts",
37
+ "gen-packets-interfaces": "npx ts-node ./scripts/genPacketsInterfaces.ts ",
38
38
  "fix-signatures": "npx ts-node ./scripts/fixSignatures.ts && npm run prettier_sources",
39
39
  "gen-doc": "npx typedoc",
40
40
  "lint": "npx eslint src",
@@ -61,6 +61,7 @@
61
61
  "postinstall": "npm run build",
62
62
  "publish_release": "git push --tags && git push origin dev && git push origin master && git checkout dev && npm run publish_release-next",
63
63
  "publish_release-next": "npm version prerelease && git add * && git commit -m 'publish-a-next-version' && npm publish --tag next && git push origin dev",
64
+ "check_prettier": "prettier --check ./src && prettier --check ./tests && prettier --check ./benchmarks",
64
65
  "prettier_sources": "prettier --write ./src && prettier --write ./tests && prettier --write ./benchmarks"
65
66
  },
66
67
  "repository": {
@@ -1,4 +1,3 @@
1
- process.env.DEBUG = "ZoneServer";
2
1
  const H1Z1servers = require("../../h1z1-server");
3
2
  var Zone = new H1Z1servers.ZoneServer2016(
4
3
  1117,
@@ -1,4 +1,3 @@
1
- process.env.DEBUG = "*";
2
1
  const H1Z1servers = require("../../h1z1-server");
3
2
  var server = new H1Z1servers.LoginServer(
4
3
  1115, // <- server port
@@ -23,13 +23,12 @@ const typeMap: Record<string, string> = {
23
23
  array8: "any[]",
24
24
  int64string: "string",
25
25
  uint64string: "string",
26
- floatvector3: "number[]",
27
- floatvector4: "number[]",
26
+ floatvector3: "Float32Array",
27
+ floatvector4: "Float32Array",
28
28
  byteswithlength: "any", // todo
29
29
  string: "string",
30
30
  boolean: "boolean",
31
31
  };
32
-
33
32
  function getSchemaBody(schema: any) {
34
33
  let bodyInterfaceString = "";
35
34
  schema.forEach((element: any) => {
@@ -51,7 +50,7 @@ function getSchemaBody(schema: any) {
51
50
  }
52
51
 
53
52
  function writeInterface(packets: any, name: string) {
54
- let packetsInterfaces = "";
53
+ let packetsInterfaces = "/* prettier-ignore */ \n";
55
54
  const packetsIntercacesNames:string[] = []
56
55
  Object.values(packets).forEach((packet: any) => {
57
56
  const { schema } = packet;
@@ -10,6 +10,12 @@ const packetsFiles: any = {
10
10
  ...Object.keys(h1z1packets2015.PacketTypes),
11
11
  ...Object.keys(h1z1packets2016.PacketTypes),
12
12
  ],
13
+ h1z1PacketsType2015: [
14
+ ...Object.keys(h1z1packets2015.PacketTypes),
15
+ ],
16
+ h1z1PacketsType2016: [
17
+ ...Object.keys(h1z1packets2016.PacketTypes),
18
+ ],
13
19
  loginPacketsType: [
14
20
  ...Object.keys(loginpackets2015.PacketTypes),
15
21
  ...Object.keys(loginpackets2016.PacketTypes),
@@ -17,7 +23,7 @@ const packetsFiles: any = {
17
23
  };
18
24
 
19
25
  const typePath: string = "./src/types/packets.ts";
20
- let steamString = ""; // should use a streamWriter but i'm lazy
26
+ let steamString = "/* prettier-ignore */ \n"; // should use a streamWriter but i'm lazy
21
27
  Object.keys(packetsFiles).forEach((packetsFileName) => {
22
28
  const packetsFile: string[] = packetsFiles[packetsFileName];
23
29
  steamString += `export type ${packetsFileName} = `;