yolkbot 1.3.11 → 1.4.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 (65) hide show
  1. package/README.md +7 -7
  2. package/browser/build/global.js +1 -123
  3. package/browser/build/module.js +1 -123
  4. package/dist/api.js +1 -3
  5. package/dist/bot/GamePlayer.js +1 -3
  6. package/dist/bot.js +1 -3
  7. package/dist/comm/CommIn.js +1 -3
  8. package/dist/comm/CommOut.js +1 -3
  9. package/dist/comm/index.js +1 -3
  10. package/dist/constants/CloseCode.js +1 -3
  11. package/dist/constants/CommCode.js +1 -3
  12. package/dist/constants/challenges.js +1 -3
  13. package/dist/constants/guns.js +1 -3
  14. package/dist/constants/index.js +1 -3
  15. package/dist/constants/items.js +1 -3
  16. package/dist/constants/maps.js +1 -3
  17. package/dist/constants/regions.js +1 -3
  18. package/dist/dispatches/BanPlayerDispatch.js +1 -3
  19. package/dist/dispatches/BootPlayerDispatch.js +1 -3
  20. package/dist/dispatches/ChatDispatch.js +1 -3
  21. package/dist/dispatches/FireDispatch.js +1 -3
  22. package/dist/dispatches/GameOptionsDispatch.js +1 -3
  23. package/dist/dispatches/GoToAmmoDispatch.js +1 -3
  24. package/dist/dispatches/GoToCoopDispatch.js +1 -3
  25. package/dist/dispatches/GoToGrenadeDispatch.js +1 -3
  26. package/dist/dispatches/GoToPlayerDispatch.js +1 -3
  27. package/dist/dispatches/GoToSpatulaDispatch.js +1 -3
  28. package/dist/dispatches/LookAtDispatch.js +1 -3
  29. package/dist/dispatches/LookAtPosDispatch.js +1 -3
  30. package/dist/dispatches/MeleeDispatch.js +1 -3
  31. package/dist/dispatches/MovementDispatch.js +1 -3
  32. package/dist/dispatches/PauseDispatch.js +1 -3
  33. package/dist/dispatches/ReloadDispatch.js +1 -3
  34. package/dist/dispatches/ReportPlayerDispatch.js +1 -3
  35. package/dist/dispatches/ResetGameDispatch.js +1 -3
  36. package/dist/dispatches/SaveLoadoutDispatch.js +1 -3
  37. package/dist/dispatches/SpawnDispatch.js +1 -3
  38. package/dist/dispatches/SwapWeaponDispatch.js +1 -3
  39. package/dist/dispatches/SwitchTeamDispatch.js +1 -3
  40. package/dist/dispatches/ThrowGrenadeDispatch.js +1 -3
  41. package/dist/dispatches/index.js +1 -3
  42. package/dist/env/fetch.js +10 -12
  43. package/dist/env/globals.js +1 -3
  44. package/dist/index.js +2 -10
  45. package/dist/matchmaker.js +1 -3
  46. package/dist/pathing/astar.js +1 -3
  47. package/dist/pathing/binaryheap.js +1 -3
  48. package/dist/pathing/mapnode.js +1 -3
  49. package/dist/socket.js +1 -3
  50. package/dist/types/api.d.ts +1 -1
  51. package/dist/types/matchmaker.d.ts +1 -1
  52. package/dist/types/wasm/bytes.d.ts +1 -0
  53. package/dist/types/wasm/direct.d.ts +3 -0
  54. package/dist/types/wasm/legacy.d.ts +63 -0
  55. package/dist/types/wasm/util.d.ts +9 -0
  56. package/dist/util.js +1 -3
  57. package/dist/wasm/bytes.js +1 -3
  58. package/dist/wasm/direct.js +1 -0
  59. package/dist/wasm/legacy.js +1 -0
  60. package/dist/wasm/util.js +1 -0
  61. package/package.json +17 -8
  62. package/dist/types/wasm/wrapper.d.ts +0 -10
  63. package/dist/wasm/imports.js +0 -125
  64. package/dist/wasm/utils.js +0 -3
  65. package/dist/wasm/wrapper.js +0 -3
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- const e=[{filename:"aqueduct",hash:"11dp765kifr",name:"Aqueduct",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"backstage",hash:"9dsromfqr1",name:"Backstage",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"bastion",hash:"uuwh7401no",name:"Bastion",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"bedrock",hash:"yqbkimntiu",name:"Bedrock",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"biohazard",hash:"kzarr9ebqx",name:"BioHazard",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"18"},{filename:"blender",hash:"1vvfxp9rt8u",name:"Blender",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"blue",hash:"2e7izzo70bk",name:"Blue",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"blueh",hash:"1tlp4a53c5g",name:"Blue Up",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"14"},{filename:"bridge",hash:"20vcy8e1ev0",name:"Bridge",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"6"},{filename:"canyon",hash:"2avqtv9ygk1",name:"Canyon",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"canyonh",hash:"1k338pkqet2",name:"Canyon After Dark",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"cash",hash:"1427gfre8ma",name:"Cash",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"castle",hash:"2d2tcz2mw7e",name:"Castle",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"castleArena",hash:"9dhs3kms6l",name:"Castle Arena",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"8"},{filename:"catacombs",hash:"2el91jtcun0",name:"Catacombs",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"chickenItza",hash:"hyjqbat0i3",name:"Chicken Itza",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"cluckgrounds",hash:"1h9z3hj51g5",name:"Cluckgrounds",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"16"},{filename:"cluckgroundsh",hash:"ftblp6r5pi",name:"Chrome Cluckgrounds",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"16"},{filename:"cobalt",hash:"1c9fg9re2mf",name:"Cobalt",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"creak",hash:"l2pzui2f6o",name:"Creak",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"crossed",hash:"ead3tcf30r",name:"Crossed",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"crossedh",hash:"11obqwowjh9",name:"Crossed after dark",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"crowsnest",hash:"1ze2s5zr9bm",name:"Crowsnest",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"8"},{filename:"crowsnesth",hash:"skib4jqt36",name:"Crowsnest After Dark",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"8"},{filename:"deathpit",hash:"1cc9cvjf607",name:"Death Pit",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"dirt",hash:"1u3k5nfvwuh",name:"Dirt",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"dirt2",hash:"494aka3mb4",name:"Dirt 2",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"dirtbase",hash:"6e9r2y7dxk",name:"Dirt Base",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"10"},{filename:"downfall",hash:"26g5aj8aruc",name:"Downfall",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"18"},{filename:"duelPyramid",hash:"vmg0rj2e3b",name:"Duel Pyramid",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"6"},{filename:"eggcrates",hash:"j0i36e808n",name:"Eggcrates",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"6"},{filename:"enchanted",hash:"1igxtcyetaw",name:"Enchanted",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"16"},{filename:"exposure",hash:"15hv3cme1fh",name:"Exposure",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"facility",hash:"18djbmo35ru",name:"Facility",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"feedlot",hash:"iuj8rc7kyh",name:"Feedlot",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"16"},{filename:"field",hash:"e4aszuch87",name:"Field",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"10"},{filename:"fortFlip",hash:"1w1b6dkalc2",name:"Fort Flip",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"foundation",hash:"11y636vc64b",name:"Foundation",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"fourQuarters",hash:"1a0w7vbz8is",name:"Four Quarters",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"10"},{filename:"greenhouse",hash:"ffvpjhqou6",name:"Greenhouse",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"growler",hash:"1izyni7tb1e",name:"Growler",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"haunted",hash:"2dma8z1jdev",name:"Haunted",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"16"},{filename:"helix",hash:"i2sl4vsg3h",name:"Helix",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"hydro",hash:"8znnxbxfss",name:"Hydro",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"indigo",hash:"1vrzzn6ym9q",name:"Indigo",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"inmates",hash:"19wzahko4nm",name:"Inmates",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"jailbreak",hash:"2a3blmd9hf4",name:"Jail Break",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"jinx",hash:"24u6pohagnj",name:"Jinx",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"junction",hash:"bkca8j2ppd",name:"Junction",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"kingsCourt",hash:"aq1t2lsjza",name:"King's Court",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"lunarmodule",hash:"1448aqjdqvl",name:"Lunar Module",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"mansion",hash:"nqhtvwj3fo",name:"Mansion",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"mazerunner",hash:"j16i30k9dz",name:"Maze Runner",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"metamorph",hash:"l9o69l8e1b",name:"Metamorph",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"14"},{filename:"moonbase",hash:"1yzocf1mex3",name:"Moonbase",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"mudGulch",hash:"kto278skze",name:"Mud Gulch",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"nextdoor",hash:"s2i5za1kx9",name:"Nextdoor",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"orbital",hash:"76g9ms7t5o",name:"Orbital",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"outer",hash:"w1biqokp89",name:"Outer Reach",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"overcooked",hash:"29ca98hgdeh",name:"Overcooked",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"palaceSiege",hash:"1enghs5hsxe",name:"Palace Siege",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"quarry",hash:"2crjk106pa",name:"Quarry",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"quarryh",hash:"smnueqn94r",name:"Quarry After Dark",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"14"},{filename:"queenscourt",hash:"raudy4h9pv",name:"Queen's Court",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"raceway",hash:"1a3eo6xaoju",name:"Raceway",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"rameses",hash:"177jt4j8so9",name:"Rameses",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"16"},{filename:"rats",hash:"13r2oqql8se",name:"Rats",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"relic",hash:"lxzknz53a2",name:"Relic",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"rivals",hash:"26fkvcef2h6",name:"Rivals",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"6"},{filename:"road",hash:"2h312vlocd",name:"Road",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"roadh",hash:"oncbwn9rua",name:"Road After Dark",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"ruins",hash:"3ycs8z9bcu",name:"Ruins",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"scales",hash:"101v5lpkv1s",name:"Scales",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"shadyglen",hash:"2d0d4bj7aq3",name:"Shady Glen",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"shellville",hash:"fdgmkbfe7n",name:"Shellville",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"16"},{filename:"shipyard",hash:"1n1sptszksq",name:"Shipyard",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"skyScratcher",hash:"1th1c8epp95",name:"Sky Scratcher",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"spaceFactory",hash:"10802a2az0f",name:"Space Factory",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"10"},{filename:"spacearena",hash:"k9zf5lqzze",name:"Space Arena",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"14"},{filename:"sparta",hash:"274wwdyll9w",name:"Sparta",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"spellbound",hash:"1curtd0i4ls",name:"Spellbound",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"stage",hash:"1zn44r9jb3t",name:"Stage",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"starship",hash:"27xerc3smw5",name:"Starship",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"staxarena",hash:"1jid8ffda0z",name:"Stax Arena",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"6"},{filename:"teggtris",hash:"1y4rswkkv3l",name:"Teggtris",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"temple",hash:"bp6twwct9v",name:"Temple",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"18"},{filename:"timetwist",hash:"1ad75xyk2rv",name:"Timetwist",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"trainyard",hash:"2e1w70fjqet",name:"Trainyard",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"treefort",hash:"14a9akanqms",name:"Tree Fort",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"6"},{filename:"twoTowers",hash:"2asidv5c0ff",name:"Two Towers",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"twoTowersh",hash:"29x5w95f3fw",name:"Two More Towers",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"uncovered",hash:"bxrd0zdvtn",name:"Uncovered",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"12"},{filename:"vert",hash:"25a9ikled77",name:"Vert",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"wimble",hash:"13smnxheae1",name:"Wimble",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"wonderland",hash:"5n6ixyepvy",name:"Wonderland",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"wreckage",hash:"nkiu4z6uj1",name:"Wreckage",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"yolkido",hash:"pttsmqw7xj",name:"Yolkido Garrison",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"zoomies",hash:"3vitx32ce8",name:"Zoomies",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"}];export{e as Maps};
1
+ export const Maps=[{filename:"aqueduct",hash:"11dp765kifr",name:"Aqueduct",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"backstage",hash:"9dsromfqr1",name:"Backstage",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"bastion",hash:"uuwh7401no",name:"Bastion",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"bedrock",hash:"yqbkimntiu",name:"Bedrock",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"biohazard",hash:"kzarr9ebqx",name:"BioHazard",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"18"},{filename:"blender",hash:"1vvfxp9rt8u",name:"Blender",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"blue",hash:"2e7izzo70bk",name:"Blue",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"blueh",hash:"1tlp4a53c5g",name:"Blue Up",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"14"},{filename:"bridge",hash:"20vcy8e1ev0",name:"Bridge",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"6"},{filename:"canyon",hash:"2avqtv9ygk1",name:"Canyon",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"canyonh",hash:"1k338pkqet2",name:"Canyon After Dark",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"cash",hash:"1427gfre8ma",name:"Cash",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"castle",hash:"2d2tcz2mw7e",name:"Castle",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"castleArena",hash:"9dhs3kms6l",name:"Castle Arena",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"8"},{filename:"catacombs",hash:"2el91jtcun0",name:"Catacombs",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"chickenItza",hash:"hyjqbat0i3",name:"Chicken Itza",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"cluckgrounds",hash:"1h9z3hj51g5",name:"Cluckgrounds",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"16"},{filename:"cluckgroundsh",hash:"ftblp6r5pi",name:"Chrome Cluckgrounds",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"16"},{filename:"cobalt",hash:"1c9fg9re2mf",name:"Cobalt",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"creak",hash:"l2pzui2f6o",name:"Creak",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"crossed",hash:"ead3tcf30r",name:"Crossed",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"crossedh",hash:"11obqwowjh9",name:"Crossed after dark",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"crowsnest",hash:"1ze2s5zr9bm",name:"Crowsnest",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"8"},{filename:"crowsnesth",hash:"skib4jqt36",name:"Crowsnest After Dark",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"8"},{filename:"deathpit",hash:"1cc9cvjf607",name:"Death Pit",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"dirt",hash:"1u3k5nfvwuh",name:"Dirt",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"dirt2",hash:"494aka3mb4",name:"Dirt 2",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"dirtbase",hash:"6e9r2y7dxk",name:"Dirt Base",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"10"},{filename:"downfall",hash:"26g5aj8aruc",name:"Downfall",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"18"},{filename:"duelPyramid",hash:"vmg0rj2e3b",name:"Duel Pyramid",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"6"},{filename:"eggcrates",hash:"j0i36e808n",name:"Eggcrates",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"6"},{filename:"enchanted",hash:"1igxtcyetaw",name:"Enchanted",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"16"},{filename:"exposure",hash:"15hv3cme1fh",name:"Exposure",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"facility",hash:"18djbmo35ru",name:"Facility",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"feedlot",hash:"iuj8rc7kyh",name:"Feedlot",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"16"},{filename:"field",hash:"e4aszuch87",name:"Field",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"10"},{filename:"fortFlip",hash:"1w1b6dkalc2",name:"Fort Flip",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"foundation",hash:"11y636vc64b",name:"Foundation",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"fourQuarters",hash:"1a0w7vbz8is",name:"Four Quarters",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"10"},{filename:"greenhouse",hash:"ffvpjhqou6",name:"Greenhouse",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"growler",hash:"1izyni7tb1e",name:"Growler",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"haunted",hash:"2dma8z1jdev",name:"Haunted",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"16"},{filename:"helix",hash:"i2sl4vsg3h",name:"Helix",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"hydro",hash:"8znnxbxfss",name:"Hydro",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"indigo",hash:"1vrzzn6ym9q",name:"Indigo",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"inmates",hash:"19wzahko4nm",name:"Inmates",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"jailbreak",hash:"2a3blmd9hf4",name:"Jail Break",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"jinx",hash:"24u6pohagnj",name:"Jinx",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"junction",hash:"bkca8j2ppd",name:"Junction",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"kingsCourt",hash:"aq1t2lsjza",name:"King's Court",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"lunarmodule",hash:"1448aqjdqvl",name:"Lunar Module",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"mansion",hash:"nqhtvwj3fo",name:"Mansion",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"mazerunner",hash:"j16i30k9dz",name:"Maze Runner",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"metamorph",hash:"l9o69l8e1b",name:"Metamorph",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"14"},{filename:"moonbase",hash:"1yzocf1mex3",name:"Moonbase",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"mudGulch",hash:"kto278skze",name:"Mud Gulch",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"nextdoor",hash:"s2i5za1kx9",name:"Nextdoor",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"orbital",hash:"76g9ms7t5o",name:"Orbital",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"outer",hash:"w1biqokp89",name:"Outer Reach",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"overcooked",hash:"29ca98hgdeh",name:"Overcooked",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"palaceSiege",hash:"1enghs5hsxe",name:"Palace Siege",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"quarry",hash:"2crjk106pa",name:"Quarry",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"quarryh",hash:"smnueqn94r",name:"Quarry After Dark",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"14"},{filename:"queenscourt",hash:"raudy4h9pv",name:"Queen's Court",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"raceway",hash:"1a3eo6xaoju",name:"Raceway",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"rameses",hash:"177jt4j8so9",name:"Rameses",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"16"},{filename:"rats",hash:"13r2oqql8se",name:"Rats",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"relic",hash:"lxzknz53a2",name:"Relic",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"rivals",hash:"26fkvcef2h6",name:"Rivals",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"6"},{filename:"road",hash:"2h312vlocd",name:"Road",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"roadh",hash:"oncbwn9rua",name:"Road After Dark",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"14"},{filename:"ruins",hash:"3ycs8z9bcu",name:"Ruins",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"scales",hash:"101v5lpkv1s",name:"Scales",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"shadyglen",hash:"2d0d4bj7aq3",name:"Shady Glen",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"shellville",hash:"fdgmkbfe7n",name:"Shellville",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"16"},{filename:"shipyard",hash:"1n1sptszksq",name:"Shipyard",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"skyScratcher",hash:"1th1c8epp95",name:"Sky Scratcher",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"spaceFactory",hash:"10802a2az0f",name:"Space Factory",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"10"},{filename:"spacearena",hash:"k9zf5lqzze",name:"Space Arena",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"14"},{filename:"sparta",hash:"274wwdyll9w",name:"Sparta",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"spellbound",hash:"1curtd0i4ls",name:"Spellbound",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"stage",hash:"1zn44r9jb3t",name:"Stage",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"starship",hash:"27xerc3smw5",name:"Starship",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"staxarena",hash:"1jid8ffda0z",name:"Stax Arena",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"6"},{filename:"teggtris",hash:"1y4rswkkv3l",name:"Teggtris",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"temple",hash:"bp6twwct9v",name:"Temple",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"18"},{filename:"timetwist",hash:"1ad75xyk2rv",name:"Timetwist",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"trainyard",hash:"2e1w70fjqet",name:"Trainyard",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"treefort",hash:"14a9akanqms",name:"Tree Fort",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"6"},{filename:"twoTowers",hash:"2asidv5c0ff",name:"Two Towers",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"twoTowersh",hash:"29x5w95f3fw",name:"Two More Towers",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"both",numPlayers:"18"},{filename:"uncovered",hash:"bxrd0zdvtn",name:"Uncovered",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!1},availability:"private",numPlayers:"12"},{filename:"vert",hash:"25a9ikled77",name:"Vert",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"12"},{filename:"wimble",hash:"13smnxheae1",name:"Wimble",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"wonderland",hash:"5n6ixyepvy",name:"Wonderland",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"wreckage",hash:"nkiu4z6uj1",name:"Wreckage",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"yolkido",hash:"pttsmqw7xj",name:"Yolkido Garrison",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"},{filename:"zoomies",hash:"3vitx32ce8",name:"Zoomies",modes:{FFA:!0,Teams:!0,Spatula:!0,King:!0},availability:"private",numPlayers:"18"}];
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- const s=[{id:"germany",sub:"egs-static-live-germany-287o43bv"},{id:"santiago",sub:"egs-static-live-santiago-1s5w3cdc"},{id:"singapore",sub:"egs-static-live-singapore-5r545eei"},{id:"sydney",sub:"egs-static-live-sydney-302pa99o"},{id:"uscentral",sub:"egs-static-live-uscentral-451sa2ap"},{id:"useast",sub:"egs-static-live-useast-191w3fe4"},{id:"uswest",sub:"egs-static-live-uswest-192r5xds"}];export{s as Regions};
1
+ export const Regions=[{id:"germany",sub:"egs-static-live-germany-287o43bv"},{id:"santiago",sub:"egs-static-live-santiago-1s5w3cdc"},{id:"singapore",sub:"egs-static-live-singapore-5r545eei"},{id:"sydney",sub:"egs-static-live-sydney-302pa99o"},{id:"uscentral",sub:"egs-static-live-uscentral-451sa2ap"},{id:"useast",sub:"egs-static-live-useast-191w3fe4"},{id:"uswest",sub:"egs-static-live-uswest-192r5xds"}];
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var o=Object.defineProperty;var n=(r,e)=>o(r,"name",{value:e,configurable:!0});import a from"../comm/CommOut.js";import s from"../constants/CommCode.js";import{BanDuration as u}from"../constants/index.js";class c{static{n(this,"BanPlayerDispatch")}constructor(e,t,i=""){this.uniqueId=e,this.duration=t,this.reason=i}validate(e){return!(typeof this.uniqueId!="string"||typeof this.reason!="string"||typeof this.duration!="number"||!Object.values(u).some(t=>this.duration===t)||!(e.account.adminRoles&4))}check(){return!0}execute(e){const t=new a;t.packInt8(s.banPlayer),t.packString(this.uniqueId),t.packString(this.reason),t.packInt8(this.duration),t.send(e.game.socket)}}var h=c;export{c as BanPlayerDispatch,h as default};
1
+ import n from"../comm/CommOut.js";import i from"../constants/CommCode.js";import{BanDuration as o}from"../constants/index.js";export class BanPlayerDispatch{constructor(e,t,r=""){this.uniqueId=e;this.duration=t;this.reason=r}validate(e){if(typeof this.uniqueId!=="string"||typeof this.reason!=="string")return!1;if(typeof this.duration!=="number"||!Object.values(o).some((t)=>this.duration===t))return!1;if(!(e.account.adminRoles&4))return!1;return!0}check(){return!0}execute(e){const t=new n;t.packInt8(i.banPlayer);t.packString(this.uniqueId);t.packString(this.reason);t.packInt8(this.duration);t.send(e.game.socket)}}export default BanPlayerDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var o=Object.defineProperty;var u=(r,e)=>o(r,"name",{value:e,configurable:!0});import i from"../comm/CommOut.js";import n from"../constants/CommCode.js";class s{static{u(this,"BootPlayerDispatch")}constructor(e){this.uniqueId=e}validate(e){return typeof this.uniqueId=="string"&&e.game.isGameOwner&&Object.values(e.players).find(t=>t.uniqueId===this.uniqueId)}check(){return!0}execute(e){const t=new i;t.packInt8(n.bootPlayer),t.packString(this.uniqueId),t.send(e.game.socket)}}var d=s;export{s as BootPlayerDispatch,d as default};
1
+ import u from"../comm/CommOut.js";import r from"../constants/CommCode.js";export class BootPlayerDispatch{constructor(e){this.uniqueId=e}validate(e){return typeof this.uniqueId==="string"&&e.game.isGameOwner&&Object.values(e.players).find((t)=>t.uniqueId===this.uniqueId)}check(){return!0}execute(e){const t=new u;t.packInt8(r.bootPlayer);t.packString(this.uniqueId);t.send(e.game.socket)}}export default BootPlayerDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var r=Object.defineProperty;var a=(s,e)=>r(s,"name",{value:e,configurable:!0});import i from"../comm/CommOut.js";import n from"../constants/CommCode.js";class c{static{a(this,"ChatDispatch")}constructor(e){this.msg=e}validate(){return!(typeof this.msg!="string"||this.msg.length<1||this.msg.length>64)}check(e){return!(!e.state?.inGame||!e.game.isPrivate&&!e.account.adminRoles&&e.state.chatLines>=2||!e.game.isPrivate&&!e.account.emailVerified&&!e.account.isAged)}execute(e){e.state.chatLines++;const t=new i;t.packInt8(n.chat),t.packString(this.msg),t.send(e.game.socket)}}var g=c;export{c as ChatDispatch,g as default};
1
+ import s from"../comm/CommOut.js";import r from"../constants/CommCode.js";export class ChatDispatch{constructor(e){this.msg=e}validate(){if(typeof this.msg!=="string")return!1;if(this.msg.length<1||this.msg.length>64)return!1;return!0}check(e){if(!e.state?.inGame)return!1;if(!e.game.isPrivate&&!e.account.adminRoles&&e.state.chatLines>=2)return!1;if(!e.game.isPrivate&&!e.account.emailVerified&&!e.account.isAged)return!1;return!0}execute(e){e.state.chatLines++;const t=new s;t.packInt8(r.chat);t.packString(this.msg);t.send(e.game.socket)}}export default ChatDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var s=Object.defineProperty;var a=(t,e)=>s(t,"name",{value:e,configurable:!0});class n{static{a(this,"FireDispatch")}constructor(e){this.amount=e||1}validate(){return this.amount>=1}check(e){return e.me.playing&&!e.state.reloading&&!e.state.swappingGun&&!e.state.usingMelee&&e.me.weapons[e.me.activeGun].ammo.rounds>=this.amount}execute(e){e.state.shotsFired+=this.amount||1}}var u=n;export{n as FireDispatch,u as default};
1
+ export class FireDispatch{constructor(e){this.amount=e||1}validate(){return this.amount>=1}check(e){return e.me.playing&&!e.state.reloading&&!e.state.swappingGun&&!e.state.usingMelee&&e.me.weapons[e.me.activeGun].ammo.rounds>=this.amount}execute(e){e.state.shotsFired+=this.amount||1}}export default FireDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var o=Object.defineProperty;var t=(i,e)=>o(i,"name",{value:e,configurable:!0});const h=Array.from({length:4},(i,e)=>(e+1)*.25),r=Array.from({length:9},(i,e)=>e*.25),l=Array.from({length:17},(i,e)=>e*.25),s=t((i,e)=>typeof i<"u"?i:e,"whichever");class g{static{t(this,"GameOptionsDispatch")}constructor(e){this.changes=e}#e(e){const a={};return a.gravity=s(this.changes.gravity,e.game.options.gravity),a.damage=s(this.changes.damage,e.game.options.damage),a.healthRegen=s(this.changes.healthRegen,e.game.options.healthRegen),a.locked=s(this.changes.locked,e.game.options.locked),a.noTeamChange=s(this.changes.noTeamChange,e.game.options.noTeamChange),a.noTeamShuffle=s(this.changes.noTeamShuffle,e.game.options.noTeamShuffle),a.weaponsDisabled=[s(this.changes.disableEggk,e.game.options.weaponsDisabled[0]),s(this.changes.disableScrambler,e.game.options.weaponsDisabled[1]),s(this.changes.disableFreeRanger,e.game.options.weaponsDisabled[2]),s(this.changes.disableRPG,e.game.options.weaponsDisabled[3]),s(this.changes.disableWhipper,e.game.options.weaponsDisabled[4]),s(this.changes.disableCrackshot,e.game.options.weaponsDisabled[5]),s(this.changes.disableTriHard,e.game.options.weaponsDisabled[6])],this.changes.toDisable&&Array.isArray(this.changes.toDisable)&&this.changes.toDisable.forEach(n=>a.weaponsDisabled[n]=!0),this.changes.toEnable&&Array.isArray(this.changes.toEnable)&&this.changes.toEnable.forEach(n=>a.weaponsDisabled[n]=!1),this.changes.rawWeaponsDisabled&&Array.isArray(this.changes.rawWeaponsDisabled)&&this.changes.rawWeaponsDisabled.length===7&&(a.weaponsDisabled=this.changes.rawWeaponsDisabled.map(n=>!!n)),a.mustUseSecondary=a.weaponsDisabled.every(n=>n),a}validate(e){const a=this.#e(e);return!(!h.includes(a.gravity)||!r.includes(a.damage)||!l.includes(a.healthRegen)||typeof a.locked!="boolean"||typeof a.noTeamChange!="boolean"||typeof a.noTeamShuffle!="boolean"||!Array.isArray(a.weaponsDisabled)||a.weaponsDisabled.length!==7||a.weaponsDisabled.some(n=>typeof n!="boolean"))}check(e){return e.game.isGameOwner}execute(e){e.game.options=this.#e(e),e.updateGameOptions()}}var p=g;export{g as GameOptionsDispatch,p as default};
1
+ const i=Array.from({length:4},(a,e)=>(e+1)*0.25),t=Array.from({length:9},(a,e)=>e*0.25),o=Array.from({length:17},(a,e)=>e*0.25),s=(a,e)=>typeof a>"u"?e:a;export class GameOptionsDispatch{constructor(a){this.changes=a}#e(a){const e={};e.gravity=s(this.changes.gravity,a.game.options.gravity);e.damage=s(this.changes.damage,a.game.options.damage);e.healthRegen=s(this.changes.healthRegen,a.game.options.healthRegen);e.locked=s(this.changes.locked,a.game.options.locked);e.noTeamChange=s(this.changes.noTeamChange,a.game.options.noTeamChange);e.noTeamShuffle=s(this.changes.noTeamShuffle,a.game.options.noTeamShuffle);e.weaponsDisabled=[s(this.changes.disableEggk,a.game.options.weaponsDisabled[0]),s(this.changes.disableScrambler,a.game.options.weaponsDisabled[1]),s(this.changes.disableFreeRanger,a.game.options.weaponsDisabled[2]),s(this.changes.disableRPG,a.game.options.weaponsDisabled[3]),s(this.changes.disableWhipper,a.game.options.weaponsDisabled[4]),s(this.changes.disableCrackshot,a.game.options.weaponsDisabled[5]),s(this.changes.disableTriHard,a.game.options.weaponsDisabled[6])];if(this.changes.toDisable&&Array.isArray(this.changes.toDisable))this.changes.toDisable.forEach((n)=>e.weaponsDisabled[n]=!0);if(this.changes.toEnable&&Array.isArray(this.changes.toEnable))this.changes.toEnable.forEach((n)=>e.weaponsDisabled[n]=!1);if(this.changes.rawWeaponsDisabled&&Array.isArray(this.changes.rawWeaponsDisabled)&&this.changes.rawWeaponsDisabled.length===7)e.weaponsDisabled=this.changes.rawWeaponsDisabled.map((n)=>!!n);e.mustUseSecondary=e.weaponsDisabled.every((n)=>n);return e}validate(a){const e=this.#e(a);if(!i.includes(e.gravity))return!1;if(!t.includes(e.damage))return!1;if(!o.includes(e.healthRegen))return!1;if(typeof e.locked!=="boolean")return!1;if(typeof e.noTeamChange!=="boolean")return!1;if(typeof e.noTeamShuffle!=="boolean")return!1;if(!Array.isArray(e.weaponsDisabled))return!1;if(e.weaponsDisabled.length!==7)return!1;if(e.weaponsDisabled.some((n)=>typeof n!=="boolean"))return!1;return!0}check(a){return a.game.isGameOwner}execute(a){a.game.options=this.#e(a);a.updateGameOptions()}}export default GameOptionsDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var d=Object.defineProperty;var h=(a,t)=>d(a,"name",{value:t,configurable:!0});import f from"../pathing/astar.js";class u{static{h(this,"GoToAmmoDispatch")}validate(t){return t.intents.includes(t.Intents.PATHFINDING)}check(t){return t.me.playing&&t.game.collectables[0].length}execute(t){this.pather=new f(t.pathing.nodeList);let n=200,i=null;for(const e of t.game.collectables[0]){const s=e.x-t.me.position.x,o=e.y-t.me.position.y,r=e.z-t.me.position.z,c=Math.sqrt(s*s+o*o+r*r);c<n&&(n=c,i=e)}const p=Object.entries(t.me.position).map(e=>Math.floor(e[1])),l=Object.entries(i).map(e=>Math.floor(e[1])),m=t.pathing.nodeList.at(...p),g=t.pathing.nodeList.at(...l);if(t.pathing.activePath=this.pather.path(m,g),!t.pathing.activePath)return t.processError("no path found");if(t.pathing.activePath.length<2)return t.processError("path too short");t.pathing.followingPath=!0,t.pathing.activeNode=t.pathing.activePath[1],t.pathing.activeNodeIdx=1}}var P=u;export{u as GoToAmmoDispatch,P as default};
1
+ import g from"../pathing/astar.js";export class GoToAmmoDispatch{validate(t){return t.intents.includes(t.Intents.PATHFINDING)}check(t){return t.me.playing&&t.game.collectables[0].length}execute(t){this.pather=new g(t.pathing.nodeList);let n=200,a=null;for(const e of t.game.collectables[0]){const i=e.x-t.me.position.x,s=e.y-t.me.position.y,o=e.z-t.me.position.z,r=Math.sqrt(i*i+s*s+o*o);if(r<n){n=r;a=e}}const c=Object.entries(t.me.position).map((e)=>Math.floor(e[1])),h=Object.entries(a).map((e)=>Math.floor(e[1])),p=t.pathing.nodeList.at(...c),l=t.pathing.nodeList.at(...h);t.pathing.activePath=this.pather.path(p,l);if(!t.pathing.activePath)return t.processError("no path found");if(t.pathing.activePath.length<2)return t.processError("path too short");t.pathing.followingPath=!0;t.pathing.activeNode=t.pathing.activePath[1];t.pathing.activeNodeIdx=1}}export default GoToAmmoDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var m=Object.defineProperty;var p=(n,t)=>m(n,"name",{value:t,configurable:!0});import f from"../pathing/astar.js";class u{static{p(this,"GoToCoopDispatch")}validate(t){return t.intents.includes(t.Intents.PATHFINDING)}check(t){return t.me.playing&&t.game.zoneNumber&&t.game.activeZone}execute(t){this.pather=new f(t.pathing.nodeList);let a=200,i=null;for(const e of t.game.activeZone){const o=e.x-t.me.position.x,s=e.y-t.me.position.y,r=e.z-t.me.position.z,c=Math.sqrt(o*o+s*s+r*r);c<a&&(a=c,i=e)}const h=Object.entries(t.me.position).map(e=>Math.floor(e[1])),g=Object.entries(i).map(e=>Math.floor(e[1])),d=t.pathing.nodeList.at(...h),l=t.pathing.nodeList.at(...g);if(t.pathing.activePath=this.pather.path(d,l),!t.pathing.activePath)return t.processError("no path found");if(t.pathing.activePath.length<2)return t.processError("path too short");t.pathing.followingPath=!0,t.pathing.activeNode=t.pathing.activePath[1],t.pathing.activeNodeIdx=1}}var N=u;export{u as GoToCoopDispatch,N as default};
1
+ import d from"../pathing/astar.js";export class GoToCoopDispatch{validate(t){return t.intents.includes(t.Intents.PATHFINDING)}check(t){return t.me.playing&&t.game.zoneNumber&&t.game.activeZone}execute(t){this.pather=new d(t.pathing.nodeList);let n=200,a=null;for(const e of t.game.activeZone){const i=e.x-t.me.position.x,s=e.y-t.me.position.y,o=e.z-t.me.position.z,r=Math.sqrt(i*i+s*s+o*o);if(r<n){n=r;a=e}}const c=Object.entries(t.me.position).map((e)=>Math.floor(e[1])),h=Object.entries(a).map((e)=>Math.floor(e[1])),p=t.pathing.nodeList.at(...c),g=t.pathing.nodeList.at(...h);t.pathing.activePath=this.pather.path(p,g);if(!t.pathing.activePath)return t.processError("no path found");if(t.pathing.activePath.length<2)return t.processError("path too short");t.pathing.followingPath=!0;t.pathing.activeNode=t.pathing.activePath[1];t.pathing.activeNodeIdx=1}}export default GoToCoopDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var m=Object.defineProperty;var h=(n,t)=>m(n,"name",{value:t,configurable:!0});import f from"../pathing/astar.js";class u{static{h(this,"GoToGrenadeDispatch")}validate(t){return t.intents.includes(t.Intents.PATHFINDING)}check(t){return t.me.playing&&t.game.collectables[1].length}execute(t){this.pather=new f(t.pathing.nodeList);let a=200,i=null;for(const e of t.game.collectables[1]){const s=e.x-t.me.position.x,r=e.y-t.me.position.y,o=e.z-t.me.position.z,c=Math.sqrt(s*s+r*r+o*o);c<a&&(a=c,i=e)}const p=Object.entries(t.me.position).map(e=>Math.floor(e[1])),l=Object.entries(i).map(e=>Math.floor(e[1])),d=t.pathing.nodeList.at(...p),g=t.pathing.nodeList.at(...l);if(t.pathing.activePath=this.pather.path(d,g),!t.pathing.activePath)return t.processError("no path found");if(t.pathing.activePath.length<2)return t.processError("path too short");t.pathing.followingPath=!0,t.pathing.activeNode=t.pathing.activePath[1],t.pathing.activeNodeIdx=1}}var P=u;export{u as GoToGrenadeDispatch,P as default};
1
+ import g from"../pathing/astar.js";export class GoToGrenadeDispatch{validate(t){return t.intents.includes(t.Intents.PATHFINDING)}check(t){return t.me.playing&&t.game.collectables[1].length}execute(t){this.pather=new g(t.pathing.nodeList);let n=200,a=null;for(const e of t.game.collectables[1]){const i=e.x-t.me.position.x,s=e.y-t.me.position.y,r=e.z-t.me.position.z,o=Math.sqrt(i*i+s*s+r*r);if(o<n){n=o;a=e}}const c=Object.entries(t.me.position).map((e)=>Math.floor(e[1])),h=Object.entries(a).map((e)=>Math.floor(e[1])),p=t.pathing.nodeList.at(...c),l=t.pathing.nodeList.at(...h);t.pathing.activePath=this.pather.path(p,l);if(!t.pathing.activePath)return t.processError("no path found");if(t.pathing.activePath.length<2)return t.processError("path too short");t.pathing.followingPath=!0;t.pathing.activeNode=t.pathing.activePath[1];t.pathing.activeNodeIdx=1}}export default GoToGrenadeDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var o=Object.defineProperty;var n=(r,t)=>o(r,"name",{value:t,configurable:!0});import c from"../pathing/astar.js";class d{static{n(this,"GoToPlayerDispatch")}idOrName;constructor(t){this.idOrName=t}validate(t){return!t.intents.includes(t.Intents.PATHFINDING)||!this.idOrName?!1:!!(t.players[this.idOrName.toString()]||t.players.find(i=>i.name===this.idOrName))}check(t){if(!t.me.playing)return!1;const e=t.players[this.idOrName.toString()]||t.players.find(i=>i.name===this.idOrName);return e&&e.playing&&e.position&&e.position.x}execute(t){this.pather=new c(t.pathing.nodeList);const e=t.players[this.idOrName.toString()]||t.players.find(a=>a.name===this.idOrName),i=Object.entries(t.me.position).map(a=>Math.floor(a[1])),s=Object.entries(e.position).map(a=>Math.floor(a[1])),h=t.pathing.nodeList.at(...i),p=t.pathing.nodeList.at(...s);if(t.pathing.activePath=this.pather.path(h,p),!t.pathing.activePath)return t.processError("no path found");if(t.pathing.activePath.length<2)return t.processError("path too short");t.pathing.followingPath=!0,t.pathing.activeNode=t.pathing.activePath[1],t.pathing.activeNodeIdx=1}}var m=d;export{d as GoToPlayerDispatch,m as default};
1
+ import h from"../pathing/astar.js";export class GoToPlayerDispatch{idOrName;constructor(t){this.idOrName=t}validate(t){if(!t.intents.includes(t.Intents.PATHFINDING))return!1;if(!this.idOrName)return!1;return!!(t.players[this.idOrName.toString()]||t.players.find((i)=>i.name===this.idOrName))}check(t){if(!t.me.playing)return!1;const e=t.players[this.idOrName.toString()]||t.players.find((i)=>i.name===this.idOrName);return e&&e.playing&&e.position&&e.position.x}execute(t){this.pather=new h(t.pathing.nodeList);const e=t.players[this.idOrName.toString()]||t.players.find((a)=>a.name===this.idOrName),i=Object.entries(t.me.position).map((a)=>Math.floor(a[1])),r=Object.entries(e.position).map((a)=>Math.floor(a[1])),n=t.pathing.nodeList.at(...i),s=t.pathing.nodeList.at(...r);t.pathing.activePath=this.pather.path(n,s);if(!t.pathing.activePath)return t.processError("no path found");if(t.pathing.activePath.length<2)return t.processError("path too short");t.pathing.followingPath=!0;t.pathing.activeNode=t.pathing.activePath[1];t.pathing.activeNodeIdx=1}}export default GoToPlayerDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var h=Object.defineProperty;var i=(e,t)=>h(e,"name",{value:t,configurable:!0});import o from"../pathing/astar.js";class c{static{i(this,"GoToSpatulaDispatch")}validate(t){return t.intents.includes(t.Intents.PATHFINDING)}check(t){return t.me.playing&&t.game.spatula&&t.game.spatula.coords&&t.game.spatula.coords.x}execute(t){this.pather=new o(t.pathing.nodeList);const n=Object.entries(t.me.position).map(a=>Math.floor(a[1])),r=Object.entries(t.game.spatula.coords).map(a=>Math.floor(a[1])),s=t.pathing.nodeList.at(...n),p=t.pathing.nodeList.at(...r);if(t.pathing.activePath=this.pather.path(s,p),!t.pathing.activePath)return t.processError("no path found");if(t.pathing.activePath.length<2)return t.processError("path too short");t.pathing.followingPath=!0,t.pathing.activeNode=t.pathing.activePath[1],t.pathing.activeNodeIdx=1}}var l=c;export{c as GoToSpatulaDispatch,l as default};
1
+ import s from"../pathing/astar.js";export class GoToSpatulaDispatch{validate(t){return t.intents.includes(t.Intents.PATHFINDING)}check(t){return t.me.playing&&t.game.spatula&&t.game.spatula.coords&&t.game.spatula.coords.x}execute(t){this.pather=new s(t.pathing.nodeList);const e=Object.entries(t.me.position).map((a)=>Math.floor(a[1])),n=Object.entries(t.game.spatula.coords).map((a)=>Math.floor(a[1])),i=t.pathing.nodeList.at(...e),r=t.pathing.nodeList.at(...n);t.pathing.activePath=this.pather.path(i,r);if(!t.pathing.activePath)return t.processError("no path found");if(t.pathing.activePath.length<2)return t.processError("path too short");t.pathing.followingPath=!0;t.pathing.activeNode=t.pathing.activePath[1];t.pathing.activeNodeIdx=1}}export default GoToSpatulaDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var p=Object.defineProperty;var n=(i,t)=>p(i,"name",{value:t,configurable:!0});const h=n((i,t)=>(i%t+t)%t,"mod"),d=Math.PI*2,s=n(i=>Math.round(i*8192)/8192,"setPrecision"),l=n(i=>s(h(Math.atan2(-i.x,-i.z),d)),"calculateYaw"),y=n(i=>s(Math.atan2(i.y,Math.hypot(i.x,i.z))),"calculatePitch");class m{static{n(this,"LookAtDispatch")}idOrName;constructor(t){this.idOrName=t}validate(t){return!!(t.players[this.idOrName.toString()]||t.players.find(e=>e.name===this.idOrName))}check(t){if(!t.me.playing)return!1;const a=t.players[this.idOrName.toString()]||t.players.find(e=>e.name===this.idOrName);return a&&a.playing&&a.position&&a.position.x}execute(t){const a=t.players[this.idOrName.toString()]||t.players.find(c=>c.name===this.idOrName),e={x:a.position.x-t.me.position.x,y:a.position.y-t.me.position.y-.05,z:a.position.z-t.me.position.z},r=l(e),o=y(e);t.state.yaw=r,t.state.pitch=o}}var u=m;export{m as LookAtDispatch,u as default};
1
+ const o=(t,i)=>(t%i+i)%i,c=Math.PI*2,e=(t)=>Math.round(t*8192)/8192,p=(t)=>e(o(Math.atan2(-t.x,-t.z),c)),h=(t)=>e(Math.atan2(t.y,Math.hypot(t.x,t.z)));export class LookAtDispatch{idOrName;constructor(t){this.idOrName=t}validate(t){return!!(t.players[this.idOrName.toString()]||t.players.find((a)=>a.name===this.idOrName))}check(t){if(!t.me.playing)return!1;const i=t.players[this.idOrName.toString()]||t.players.find((a)=>a.name===this.idOrName);return i&&i.playing&&i.position&&i.position.x}execute(t){const i=t.players[this.idOrName.toString()]||t.players.find((r)=>r.name===this.idOrName),a={x:i.position.x-t.me.position.x,y:i.position.y-t.me.position.y-0.05,z:i.position.z-t.me.position.z},n=p(a),s=h(a);t.state.yaw=n;t.state.pitch=s}}export default LookAtDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var n=Object.defineProperty;var o=(s,t)=>n(s,"name",{value:t,configurable:!0});const h=o((s,t)=>(s%t+t)%t,"mod"),p=Math.PI*2,a=o(s=>Math.round(s*8192)/8192,"setPrecision"),r=o(s=>a(h(Math.atan2(-s.x,-s.z),p)),"calculateYaw"),x=o(s=>a(Math.atan2(s.y,Math.hypot(s.x,s.z))),"calculatePitch");class y{static{o(this,"LookAtPosDispatch")}constructor(t){this.pos=t}validate(){return this.pos&&this.pos.x&&this.pos.y&&this.pos.z}check(t){return t.me.playing}execute(t){const c={x:this.pos.x-t.me.position.x,y:this.pos.y-t.me.position.y,z:this.pos.z-t.me.position.z},i=r(c),e=x(c);t.state.yaw=i,t.state.pitch=e}}var u=y;export{y as LookAtPosDispatch,u as default};
1
+ const i=(t,s)=>(t%s+s)%s,e=Math.PI*2,o=(t)=>Math.round(t*8192)/8192,n=(t)=>o(i(Math.atan2(-t.x,-t.z),e)),h=(t)=>o(Math.atan2(t.y,Math.hypot(t.x,t.z)));export class LookAtPosDispatch{constructor(t){this.pos=t}validate(){return this.pos&&this.pos.x&&this.pos.y&&this.pos.z}check(t){return t.me.playing}execute(t){const s={x:this.pos.x-t.me.position.x,y:this.pos.y-t.me.position.y,z:this.pos.z-t.me.position.z},c=n(s),a=h(s);t.state.yaw=c;t.state.pitch=a}}export default LookAtPosDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var n=Object.defineProperty;var u=(t,e)=>n(t,"name",{value:e,configurable:!0});import a from"../comm/CommOut.js";import i from"../constants/CommCode.js";import{GunEquipTime as m}from"../constants/index.js";class r{static{u(this,"MeleeDispatch")}validate(){return!0}check(e){return e.me.playing&&!e.state.reloading&&!e.state.swappingGun&&!e.state.usingMelee}execute(e){const s=new a;s.packInt8(i.melee),s.send(e.game.socket),e.usingMelee=!0,setTimeout(()=>{e.usingMelee=!1,e.swappingGun=!0,setTimeout(()=>{e.swappingGun=!1},.5*m)},100/3*17)}}var c=r;export{r as MeleeDispatch,c as default};
1
+ import z from"../comm/CommOut.js";import A from"../constants/CommCode.js";import{GunEquipTime as B}from"../constants/index.js";export class MeleeDispatch{validate(){return!0}check(f){return f.me.playing&&!f.state.reloading&&!f.state.swappingGun&&!f.state.usingMelee}execute(f){const w=new z;w.packInt8(A.melee);w.send(f.game.socket);f.usingMelee=!0;setTimeout(()=>{f.usingMelee=!1;f.swappingGun=!0;setTimeout(()=>{f.swappingGun=!1},0.5*B)},566.6666666666667)}}export default MeleeDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var n=Object.defineProperty;var r=(i,e)=>n(i,"name",{value:e,configurable:!0});import{Movement as t}from"../constants/index.js";class o{static{r(this,"MovementDispatch")}constructor(e){typeof e=="number"?this.inputKeys=e:typeof e==typeof[]&&(this.inputKeys=e.reduce((s,f)=>s|f,0))}validate(){return!(typeof this.inputKeys!="number"||this.inputKeys&t.Forward&&this.inputKeys&t.Backward||this.inputKeys&t.Left&&this.inputKeys&t.Right)}check(e){return e.me.playing}execute(e){e.state.controlKeys=this.inputKeys}}var a=o;export{o as MovementDispatch,a as default};
1
+ import{Movement as t}from"../constants/index.js";export class MovementDispatch{constructor(e){if(typeof e==="number")this.inputKeys=e;else if(typeof e==="object")this.inputKeys=e.reduce((r,i)=>r|i,0)}validate(){if(typeof this.inputKeys!=="number")return!1;if(this.inputKeys&t.Forward&&this.inputKeys&t.Backward)return!1;if(this.inputKeys&t.Left&&this.inputKeys&t.Right)return!1;return!0}check(e){return e.me.playing}execute(e){e.state.controlKeys=this.inputKeys}}export default MovementDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var o=Object.defineProperty;var m=(t,e)=>o(t,"name",{value:e,configurable:!0});import r from"../comm/CommOut.js";import s from"../constants/CommCode.js";class u{static{m(this,"PauseDispatch")}validate(){return!0}check(e){return e.me.playing}execute(e){const a=new r;a.packInt8(s.pause),a.send(e.game.socket),setTimeout(()=>e.me.playing=!1,3e3)}}var i=u;export{u as PauseDispatch,i as default};
1
+ import m from"../comm/CommOut.js";import o from"../constants/CommCode.js";export class PauseDispatch{validate(){return!0}check(e){return e.me.playing}execute(e){const t=new m;t.packInt8(o.pause);t.send(e.game.socket);setTimeout(()=>e.me.playing=!1,3000)}}export default PauseDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var i=Object.defineProperty;var s=(o,e)=>i(o,"name",{value:e,configurable:!0});import c from"../comm/CommOut.js";import l from"../constants/CommCode.js";class d{static{s(this,"ReloadDispatch")}validate(){return!0}check(e){return e.me.playing&&!e.state.reloading&&!e.state.swappingGun&&!e.state.usingMelee}execute(e){const t=new c;t.packInt8(l.reload),t.send(e.game.socket);const a=e.me.weapons[e.me.activeGun];if(a.ammo){const n=Math.min(Math.min(a.ammo.capacity,a.ammo.reload)-a.ammo.rounds,a.ammo.store);a.ammo.rounds+=n,a.ammo.store-=n}e.emit("playerReload",e.me,a);const m=e.me.weapons[e.me.activeGun],r=m.ammo.rounds<1;e.state.reloading=!0,setTimeout(()=>e.state.reloading=!1,r?m.longReloadTime:m.shortReloadTime)}}var f=d;export{d as ReloadDispatch,f as default};
1
+ import s from"../comm/CommOut.js";import r from"../constants/CommCode.js";export class ReloadDispatch{validate(){return!0}check(e){return e.me.playing&&!e.state.reloading&&!e.state.swappingGun&&!e.state.usingMelee}execute(e){const o=new s;o.packInt8(r.reload);o.send(e.game.socket);const a=e.me.weapons[e.me.activeGun];if(a.ammo){const n=Math.min(Math.min(a.ammo.capacity,a.ammo.reload)-a.ammo.rounds,a.ammo.store);a.ammo.rounds+=n;a.ammo.store-=n}e.emit("playerReload",e.me,a);const m=e.me.weapons[e.me.activeGun],t=m.ammo.rounds<1;e.state.reloading=!0;setTimeout(()=>e.state.reloading=!1,t?m.longReloadTime:m.shortReloadTime)}}export default ReloadDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var n=Object.defineProperty;var a=(s,e)=>n(s,"name",{value:e,configurable:!0});import o from"../comm/CommOut.js";import h from"../constants/CommCode.js";class m{static{a(this,"ReportPlayerDispatch")}constructor(e,t={}){this.idOrName=e,this.reasons=[!!t.cheating,!!t.harassment,!!t.offensive,!!t.other],this.reasons.includes(!0)||(this.reasons[3]=!0);for(let r=0;r<this.reasons.length;r++)this.reasons[r]===!0&&(this.reasonInt|=1<<r)}validate(){return!(this.reasons.every(t=>t===!1)||!(bot.players[this.idOrName.toString()]||bot.players.find(t=>t.name===this.idOrName)))}check(e){return e.state.inGame?!!(e.players[this.idOrName.toString()]||e.players.find(r=>r.name===this.idOrName)):!1}execute(e){const t=e.players[this.idOrName.toString()]||e.players.find(i=>i.name===this.idOrName),r=new o;r.packInt8(h.reportPlayer),r.packString(t.uniqueId),r.packInt8(this.reasonInt),r.send(e.game.socket)}}var u=m;export{m as ReportPlayerDispatch,u as default};
1
+ import x from"../comm/CommOut.js";import z from"../constants/CommCode.js";export class ReportPlayerDispatch{constructor(q,v={}){this.idOrName=q;this.reasons=[!!v.cheating,!!v.harassment,!!v.offensive,!!v.other];if(!this.reasons.includes(!0))this.reasons[3]=!0;for(let k=0;k<this.reasons.length;k++)if(this.reasons[k]===!0)this.reasonInt|=1<<k}validate(q){if(this.reasons.every((k)=>k===!1))return!1;if(!(q.players[this.idOrName.toString()]||q.players.find((k)=>k.name===this.idOrName)))return!1;return!0}check(q){if(!q.state.inGame)return!1;return!!(q.players[this.idOrName.toString()]||q.players.find((k)=>k.name===this.idOrName))}execute(q){const v=q.players[this.idOrName.toString()]||q.players.find((w)=>w.name===this.idOrName),k=new x;k.packInt8(z.reportPlayer);k.packString(v.uniqueId);k.packInt8(this.reasonInt);k.send(q.game.socket)}}export default ReportPlayerDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var r=Object.defineProperty;var o=(m,e)=>r(m,"name",{value:e,configurable:!0});import a from"../comm/CommOut.js";import c from"../constants/CommCode.js";import{GameAction as n}from"../constants/index.js";class s{static{o(this,"ResetGameDispatch")}validate(){return!0}check(e){return e.game.isGameOwner}execute(e){const t=new a;t.packInt8(c.gameAction),t.packInt8(n.Reset),t.send(e.game.socket)}}var f=s;export{s as ResetGameDispatch,f as default};
1
+ import o from"../comm/CommOut.js";import m from"../constants/CommCode.js";import{GameAction as r}from"../constants/index.js";export class ResetGameDispatch{validate(){return!0}check(e){return e.game.isGameOwner}execute(e){const t=new o;t.packInt8(m.gameAction);t.packInt8(r.Reset);t.send(e.game.socket)}}export default ResetGameDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var o=Object.defineProperty;var m=(n,e)=>o(n,"name",{value:e,configurable:!0});import f from"../comm/CommOut.js";import u from"../constants/CommCode.js";import{findItemById as t,GunList as h,ItemType as l}from"../constants/index.js";const i=m(n=>t(n)&&t(n).unlock==="default","isDefault"),I=m((n,e)=>t(n)&&t(n).item_type_id===e,"isType");class p{static{m(this,"SaveLoadoutDispatch")}constructor(e){this.changes={classIdx:e.gunId,hatId:e.hatId,stampId:e.stampId,grenadeId:e.grenadeId,meleeId:e.meleeId,colorIdx:e.eggColor,primaryId:e.primaryIds,secondaryId:e.secondaryIds},this.changes=Object.fromEntries(Object.entries(this.changes).filter(([,s])=>!!s))}validate(e){const s=this.changes;if(s.colorIdx&&s.colorIdx>=7&&!e.account.vip||s.colorIdx&&s.colorIdx>=14||I(s.hatId,l.Hat)&&!i(s.hatId)&&!e.account.ownedItemIds.includes(s.hatId)||I(s.stampId,l.Stamp)&&!i(s.stampId)&&!e.account.ownedItemIds.includes(s.stampId)||I(s.grenadeId,l.Grenade)&&!i(s.grenadeId)&&!e.account.ownedItemIds.includes(s.grenadeId)||I(s.meleeId,l.Melee)&&!i(s.meleeId)&&!e.account.ownedItemIds.includes(s.meleeId)||typeof s.classIdx=="number"&&s.classIdx>6||s.classIdx<0)return!1;if(this.changes.primaryId)for(let c=0;c<7;c++){const d=this.changes.primaryId[c];if(!I(d,ItemTypes.Primary)||!i(d)&&!e.account.ownedItemIds.includes(d))return!1}if(this.changes.secondaryId)for(let c=0;c<7;c++){const d=this.changes.secondaryId[c];if(!I(d,ItemTypes.Secondary)||!i(d)&&!e.account.ownedItemIds.includes(d))return!1}return!0}check(e){return!e.me.playing}execute(e){e.me&&this.changes.classIdx&&this.changes.classIdx!==e.me.selectedGun&&(e.me.weapons[0]=new h[this.changes.classIdx]),e.state.weaponIdx=this.changes.classIdx||e.state.weaponIdx;const s={...e.account.loadout,...this.changes},c=e.api.queryServices({cmd:"saveLoadout",save:!0,firebaseId:e.account.firebaseId,sessionId:e.account.sessionId,loadout:s});e.account.loadout=s,e.me&&c.then(()=>{if(e.state.inGame){const r=new f;r.packInt8(u.changeCharacter),r.packInt8(this.changes?.classIdx||e.me.selectedGun),r.send(e.game.socket)}const d=e.intents.includes(e.Intents.COSMETIC_DATA);Object.entries(this.changes).forEach(([r,a])=>{r==="classIdx"?e.me.selectedGun=a:r==="hatId"?e.me.character.hat=d?t(a):a:r==="stampId"?e.me.character.stamp=d?t(a):a:r==="grenadeId"?e.me.character.grenade=d?t(a):a:r==="meleeId"?e.me.character.melee=d?t(a):a:r==="colorIdx"?e.me.character.eggColor=a:r==="primaryId"?e.me.character.primaryGun=d?t(a[e.me.selectedGun]):a:r==="secondaryId"&&(e.me.character.secondaryGun=d?t(a[e.me.selectedGun]):a)})})}}var G=p;export{p as SaveLoadoutDispatch,G as default};
1
+ import W from"../comm/CommOut.js";import X from"../constants/CommCode.js";import{findItemById as J,GunList as Z,ItemType as N}from"../constants/index.js";const Q=(q)=>J(q)&&J(q).unlock==="default",U=(q,z)=>J(q)&&J(q).item_type_id===z;export class SaveLoadoutDispatch{constructor(q){this.changes={classIdx:q.gunId,hatId:q.hatId,stampId:q.stampId,grenadeId:q.grenadeId,meleeId:q.meleeId,colorIdx:q.eggColor,primaryId:q.primaryIds,secondaryId:q.secondaryIds};this.changes=Object.fromEntries(Object.entries(this.changes).filter(([,z])=>!!z))}validate(q){const z=this.changes;if(z.colorIdx&&z.colorIdx>=7&&!q.account.vip)return!1;if(z.colorIdx&&z.colorIdx>=14)return!1;if(U(z.hatId,N.Hat)&&!Q(z.hatId)&&!q.account.ownedItemIds.includes(z.hatId))return!1;if(U(z.stampId,N.Stamp)&&!Q(z.stampId)&&!q.account.ownedItemIds.includes(z.stampId))return!1;if(U(z.grenadeId,N.Grenade)&&!Q(z.grenadeId)&&!q.account.ownedItemIds.includes(z.grenadeId))return!1;if(U(z.meleeId,N.Melee)&&!Q(z.meleeId)&&!q.account.ownedItemIds.includes(z.meleeId))return!1;if(typeof z.classIdx==="number"&&z.classIdx>6||z.classIdx<0)return!1;if(this.changes.primaryId)for(let M=0;M<7;M++){const E=this.changes.primaryId[M];if(!U(E,N.Primary)||!Q(E)&&!q.account.ownedItemIds.includes(E))return!1}if(this.changes.secondaryId)for(let M=0;M<7;M++){const E=this.changes.secondaryId[M];if(!U(E,N.Secondary)||!Q(E)&&!q.account.ownedItemIds.includes(E))return!1}return!0}check(q){return!q.me.playing}execute(q){if(q.me&&this.changes.classIdx&&this.changes.classIdx!==q.me.selectedGun)q.me.weapons[0]=new Z[this.changes.classIdx];q.state.weaponIdx=this.changes.classIdx||q.state.weaponIdx;const z={...q.account.loadout,...this.changes},M=q.api.queryServices({cmd:"saveLoadout",save:!0,firebaseId:q.account.firebaseId,sessionId:q.account.sessionId,loadout:z});q.account.loadout=z;if(q.me)M.then(()=>{if(q.state.inGame){const H=new W;H.packInt8(X.changeCharacter);H.packInt8(this.changes?.classIdx||q.me.selectedGun);H.send(q.game.socket)}const E=q.intents.includes(q.Intents.COSMETIC_DATA);Object.entries(this.changes).forEach(([H,F])=>{if(H==="classIdx")q.me.selectedGun=F;else if(H==="hatId")q.me.character.hat=E?J(F):F;else if(H==="stampId")q.me.character.stamp=E?J(F):F;else if(H==="grenadeId")q.me.character.grenade=E?J(F):F;else if(H==="meleeId")q.me.character.melee=E?J(F):F;else if(H==="colorIdx")q.me.character.eggColor=F;else if(H==="primaryId")q.me.character.primaryGun=E?J(F[q.me.selectedGun]):F;else if(H==="secondaryId")q.me.character.secondaryGun=E?J(F[q.me.selectedGun]):F})})}}export default SaveLoadoutDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var a=Object.defineProperty;var n=(t,e)=>a(t,"name",{value:e,configurable:!0});import s from"../comm/CommOut.js";import u from"../constants/CommCode.js";class f{static{n(this,"SpawnDispatch")}validate(){return!0}check(e){return!(e.me.playing||e.lastDeathTime+6e3<Date.now()||e.intents.includes(e.Intents.OBSERVE_GAME))}execute(e){const r=new s;r.packInt8(u.requestRespawn),r.send(e.game.socket),e.state.buffer=[]}}var l=f;export{f as SpawnDispatch,l as default};
1
+ import r from"../comm/CommOut.js";import n from"../constants/CommCode.js";export class SpawnDispatch{validate(){return!0}check(e){if(e.me.playing)return!1;if(e.lastDeathTime+6000<Date.now())return!1;if(e.intents.includes(e.Intents.OBSERVE_GAME))return!1;return!0}execute(e){const t=new r;t.packInt8(n.requestRespawn);t.send(e.game.socket);e.state.buffer=[]}}export default SpawnDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var m=Object.defineProperty;var p=(n,e)=>m(n,"name",{value:e,configurable:!0});import o from"../comm/CommOut.js";import u from"../constants/CommCode.js";class s{static{p(this,"SwapWeaponDispatch")}constructor(e){this.manualWeapon=e}validate(){return typeof this.manualWeapon=="number"||this.manualWeapon===void 0}check(e){return e.me.playing&&!e.state.reloading&&!e.state.swappingGun&&!e.state.usingMelee}execute(e){let t=+!e.me.activeGun;typeof this.manualWeapon=="number"&&(t=this.manualWeapon),e.me.activeGun=t;const a=new o;a.packInt8(u.swapWeapon),a.packInt8(e.me.activeGun),a.send(e.game.socket)}}var l=s;export{s as SwapWeaponDispatch,l as default};
1
+ import t from"../comm/CommOut.js";import m from"../constants/CommCode.js";export class SwapWeaponDispatch{constructor(e){this.manualWeapon=e}validate(){return typeof this.manualWeapon==="number"||typeof this.manualWeapon>"u"}check(e){return e.me.playing&&!e.state.reloading&&!e.state.swappingGun&&!e.state.usingMelee}execute(e){let n=+!e.me.activeGun;if(typeof this.manualWeapon==="number")n=this.manualWeapon;e.me.activeGun=n;const a=new t;a.packInt8(m.swapWeapon);a.packInt8(e.me.activeGun);a.send(e.game.socket)}}export default SwapWeaponDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var l=Object.defineProperty;var i=(r,e)=>l(r,"name",{value:e,configurable:!0});import f from"../comm/CommOut.js";import u from"../constants/CommCode.js";class c{static{i(this,"SwitchTeamDispatch")}validate(){return!0}check(e){if(!e.state.inGame||e.me.playing||e.game.gameModeId===0||e.intents.includes(e.Intents.OBSERVE_GAME))return!1;if(e.game.isPrivate)return!e.game.options.noTeamChange;const t=e.players,n=e.me.team,s=t.filter(a=>a.team===n).length,m=t.filter(a=>a.team!==n).length;return!(m>s||s===m)}execute(e){const t=new f;t.packInt8(u.switchTeam),t.send(e.game.socket)}}var g=c;export{c as SwitchTeamDispatch,g as default};
1
+ import B from"../comm/CommOut.js";import E from"../constants/CommCode.js";export class SwitchTeamDispatch{validate(){return!0}check(f){if(!f.state.inGame||f.me.playing)return!1;if(f.game.gameModeId===0)return!1;if(f.intents.includes(f.Intents.OBSERVE_GAME))return!1;if(f.game.isPrivate)return!f.game.options.noTeamChange;const k=f.players,x=f.me.team,z=k.filter((q)=>q.team===x).length,A=k.filter((q)=>q.team!==x).length;if(A>z)return!1;if(z===A)return!1;return!0}execute(f){const k=new B;k.packInt8(E.switchTeam);k.send(f.game.socket)}}export default SwitchTeamDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var a=Object.defineProperty;var o=(r,e)=>a(r,"name",{value:e,configurable:!0});import s from"../comm/CommOut.js";import p from"../constants/CommCode.js";class n{static{o(this,"ThrowGrenadeDispatch")}constructor(e=1){this.power=e}validate(){return typeof this.power=="number"&&this.power>=0&&this.power<=1}check(e){return e.me.playing&&!e.state.reloading&&!e.state.swappingGun&&!e.state.usingMelee}execute(e){const t=new s;t.packInt8(p.throwGrenade),t.packFloat(this.power),t.send(e.game.socket)}}var u=n;export{n as ThrowGrenadeDispatch,u as default};
1
+ import r from"../comm/CommOut.js";import o from"../constants/CommCode.js";export class ThrowGrenadeDispatch{constructor(e=1){this.power=e}validate(){return typeof this.power==="number"&&this.power>=0&&this.power<=1}check(e){return e.me.playing&&!e.state.reloading&&!e.state.swappingGun&&!e.state.usingMelee}execute(e){const t=new r;t.packInt8(o.throwGrenade);t.packFloat(this.power);t.send(e.game.socket)}}export default ThrowGrenadeDispatch;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- import o from"./BanPlayerDispatch.js";import t from"./BootPlayerDispatch.js";import r from"./ChatDispatch.js";import p from"./FireDispatch.js";import m from"./GameOptionsDispatch.js";import i from"./GoToAmmoDispatch.js";import a from"./GoToCoopDispatch.js";import e from"./GoToGrenadeDispatch.js";import s from"./GoToPlayerDispatch.js";import h from"./GoToSpatulaDispatch.js";import c from"./LookAtDispatch.js";import f from"./LookAtPosDispatch.js";import D from"./MeleeDispatch.js";import G from"./MovementDispatch.js";import l from"./PauseDispatch.js";import n from"./ReloadDispatch.js";import T from"./ReportPlayerDispatch.js";import P from"./ResetGameDispatch.js";import d from"./SaveLoadoutDispatch.js";import S from"./SpawnDispatch.js";import u from"./SwapWeaponDispatch.js";import w from"./SwitchTeamDispatch.js";import y from"./ThrowGrenadeDispatch.js";var Q={BanPlayerDispatch:o,BootPlayerDispatch:t,ChatDispatch:r,FireDispatch:p,GameOptionsDispatch:m,GoToAmmoDispatch:i,GoToCoopDispatch:a,GoToGrenadeDispatch:e,GoToPlayerDispatch:s,GoToSpatulaDispatch:h,LookAtDispatch:c,LookAtPosDispatch:f,MeleeDispatch:D,MovementDispatch:G,PauseDispatch:l,ReloadDispatch:n,ReportPlayerDispatch:T,ResetGameDispatch:P,SaveLoadoutDispatch:d,SpawnDispatch:S,SwapWeaponDispatch:u,SwitchTeamDispatch:w,ThrowGrenadeDispatch:y};export{o as BanPlayerDispatch,t as BootPlayerDispatch,r as ChatDispatch,p as FireDispatch,m as GameOptionsDispatch,i as GoToAmmoDispatch,a as GoToCoopDispatch,e as GoToGrenadeDispatch,s as GoToPlayerDispatch,h as GoToSpatulaDispatch,c as LookAtDispatch,f as LookAtPosDispatch,D as MeleeDispatch,G as MovementDispatch,l as PauseDispatch,n as ReloadDispatch,T as ReportPlayerDispatch,P as ResetGameDispatch,d as SaveLoadoutDispatch,S as SpawnDispatch,u as SwapWeaponDispatch,w as SwitchTeamDispatch,y as ThrowGrenadeDispatch,Q as default};
1
+ import BanPlayerDispatch from"./BanPlayerDispatch.js";import BootPlayerDispatch from"./BootPlayerDispatch.js";import ChatDispatch from"./ChatDispatch.js";import FireDispatch from"./FireDispatch.js";import GameOptionsDispatch from"./GameOptionsDispatch.js";import GoToAmmoDispatch from"./GoToAmmoDispatch.js";import GoToCoopDispatch from"./GoToCoopDispatch.js";import GoToGrenadeDispatch from"./GoToGrenadeDispatch.js";import GoToPlayerDispatch from"./GoToPlayerDispatch.js";import GoToSpatulaDispatch from"./GoToSpatulaDispatch.js";import LookAtDispatch from"./LookAtDispatch.js";import LookAtPosDispatch from"./LookAtPosDispatch.js";import MeleeDispatch from"./MeleeDispatch.js";import MovementDispatch from"./MovementDispatch.js";import PauseDispatch from"./PauseDispatch.js";import ReloadDispatch from"./ReloadDispatch.js";import ReportPlayerDispatch from"./ReportPlayerDispatch.js";import ResetGameDispatch from"./ResetGameDispatch.js";import SaveLoadoutDispatch from"./SaveLoadoutDispatch.js";import SpawnDispatch from"./SpawnDispatch.js";import SwapWeaponDispatch from"./SwapWeaponDispatch.js";import SwitchTeamDispatch from"./SwitchTeamDispatch.js";import ThrowGrenadeDispatch from"./ThrowGrenadeDispatch.js";export{BanPlayerDispatch,BootPlayerDispatch,ChatDispatch,FireDispatch,GameOptionsDispatch,GoToAmmoDispatch,GoToCoopDispatch,GoToGrenadeDispatch,GoToPlayerDispatch,GoToSpatulaDispatch,LookAtDispatch,LookAtPosDispatch,MeleeDispatch,MovementDispatch,PauseDispatch,ReloadDispatch,ReportPlayerDispatch,ResetGameDispatch,SaveLoadoutDispatch,SpawnDispatch,SwapWeaponDispatch,SwitchTeamDispatch,ThrowGrenadeDispatch};export default {BanPlayerDispatch,BootPlayerDispatch,ChatDispatch,FireDispatch,GameOptionsDispatch,GoToAmmoDispatch,GoToCoopDispatch,GoToGrenadeDispatch,GoToPlayerDispatch,GoToSpatulaDispatch,LookAtDispatch,LookAtPosDispatch,MeleeDispatch,MovementDispatch,PauseDispatch,ReloadDispatch,ReportPlayerDispatch,ResetGameDispatch,SaveLoadoutDispatch,SpawnDispatch,SwapWeaponDispatch,SwitchTeamDispatch,ThrowGrenadeDispatch};
package/dist/env/fetch.js CHANGED
@@ -1,17 +1,15 @@
1
- /* eslint-disable */
2
-
3
- var U=Object.defineProperty;var l=(r,e)=>U(r,"name",{value:e,configurable:!0});import P from"node:dns";import v from"node:net";import F from"node:tls";const Y=l(r=>{if(!r)return null;const e=new URL(r);return{host:e.hostname,port:parseInt(e.port),user:e.username,pass:e.password,remoteResolve:e.protocol==="socks5h:"}},"parseProxyUrl"),I=l((r,{method:e,pathname:H,destHost:w,destPort:x,headers:d,body:s},L)=>{let B="";for(const[h,t]of Object.entries(d))B+=`${h}: ${t}\r
4
- `;s&&!("Content-Length"in d)&&(B+=`Content-Length: ${Buffer.byteLength(s)}\r
5
- `);let k=`${e} ${H} HTTP/1.1\r
6
- Host: ${w}${x!==80&&x!==443?":"+x:""}\r
7
- ${B}Connection: close\r
1
+ const P=(f)=>{if(!f)return null;const r=new URL(f);return{host:r.hostname,port:parseInt(r.port),user:r.username,pass:r.password,remoteResolve:r.protocol==="socks5h:"}},C=(f,{method:r,pathname:H,destHost:y,destPort:x,headers:B,body:e},$)=>{let g="";for(const[p,s]of Object.entries(B))g+=`${p}: ${s}\r
2
+ `;if(e&&!("Content-Length"in B))g+=`Content-Length: ${Buffer.byteLength(e)}\r
3
+ `;let k=`${r} ${H} HTTP/1.1\r
4
+ Host: ${y}${x!==80&&x!==443?`:${x}`:""}\r
5
+ ${g}Connection: close\r
8
6
  \r
9
- `;s&&(k+=s),r.write(k);let i="";r.on("data",h=>{if(i+=h.toString(),/transfer-encoding:\s*chunked/i.test(i))i.includes(`\r
7
+ `;if(e)k+=e;f.write(k);let c="";f.on("data",(p)=>{c+=p.toString();if(/transfer-encoding:\s*chunked/i.test(c)){if(c.includes(`\r
10
8
  0\r
11
9
  \r
12
- `)&&r.end();else{const t=i.match(/content-length:\s*(\d+)/i);if(t){const n=parseInt(t[1],10),o=i.indexOf(`\r
10
+ `))f.end()}else{const s=c.match(/content-length:\s*(?<len>\d+)/i);if(s){const h=parseInt(s.groups.len,10),w=c.indexOf(`\r
13
11
  \r
14
- `)+4;i.slice(o).length>=n&&r.end()}}}),r.on("end",()=>{const h=/transfer-encoding:\s*chunked/i.test(i);let t=i.split(`\r
12
+ `)+4;if(c.slice(w).length>=h)f.end()}}});f.on("end",()=>{const p=/transfer-encoding:\s*chunked/i.test(c);let s=c.split(`\r
15
13
  \r
16
- `)[1];if(h){const n=t,o=[];let f=0;for(;f<n.length;){const g=n.indexOf(`\r
17
- `,f);if(g===-1)break;const $=n.slice(f,g).trim(),y=parseInt($,16);if(y===0)break;f=g+2,o.push(n.slice(f,f+y)),f+=y+2}t=o.join("")}L({json:l(()=>JSON.parse(t),"json"),text:l(()=>t,"text")})})},"sendHttpRequest"),z=l((r,{method:e="GET",proxy:H,headers:w={},body:x=null}={})=>new Promise((d,s)=>{const{hostname:L,port:B,pathname:k,protocol:i,search:h}=new URL(r),t=i==="https:",n=B?parseInt(B):t?443:80,o=L,f=k+h,g=Y(H);if(!g)return P.lookup(o,(m,c)=>{if(m)throw m;const u=(t?F.connect:v.connect)(n,c,t?{servername:o}:void 0,()=>{I(u,{method:e,pathname:f,destHost:o,destPort:n,headers:w,body:x},d)});u.on("error",a=>{throw a})});const{host:$,port:y,user:R,pass:q,remoteResolve:S}=g,O=l(m=>{const c=v.connect(y,$,()=>{R&&q?c.write(Buffer.from([5,1,2])):c.write(Buffer.from([5,1,0]))}),C=l(()=>{let a;if(S){const p=Buffer.from(o);a=Buffer.concat([Buffer.from([5,1,0,3,p.length]),p,Buffer.from([n>>8&255,n&255])])}else{const p=Buffer.from(m.split(".").map(Number));a=Buffer.concat([Buffer.from([5,1,0,1]),p,Buffer.from([n>>8&255,n&255])])}c.write(a)},"sendConnect");let u=0;c.on("data",a=>{if(u===0)if(R&&q){if(a[1]!==2)return s("You tried to add authencation to a proxy that does not support username/password.");const p=Buffer.from(R),b=Buffer.from(q),T=Buffer.concat([Buffer.from([1,p.length]),p,Buffer.from([b.length]),b]);c.write(T),u=.5}else{if(a[1]!==0)return s("You tried to use a proxy that requires authentication. Add authentication to your proxy URL.");u=1,C()}else if(u===.5){if(a[1]!==0)return s("Your input proxy username/password was incorrect.");u=1,C()}else if(u===1){if(a[1]!==0)return s("SOCKS5 proxy connection failed :(");if(t){const p=F.connect({socket:c,servername:o},()=>{I(p,{method:e,pathname:f,destHost:o,destPort:n,headers:w,body:x},d)});p.on("error",s)}else I(c,{method:e,pathname:f,destHost:o,destPort:n,headers:w,body:x},d);u=2}}),c.on("error",s)},"connect");S?O():P.lookup(o,(m,c)=>{if(m)return s(m);O(c)})}),"iFetch");var J=z;export{J as default};
14
+ `)[1];if(p){const h=s,w=[];let n=0;while(n<h.length){const t=h.indexOf(`\r
15
+ `,n);if(t===-1)break;const i=h.slice(n,t).trim(),d=parseInt(i,16);if(d===0)break;n=t+2;w.push(h.slice(n,n+d));n+=d+2}s=w.join("")}$({json:()=>JSON.parse(s),text:()=>s})})},N=(f,{method:r="GET",proxy:H,headers:y={},body:x=null}={})=>new Promise((B,e)=>{if(typeof process>"u"||!process.getBuiltinModule)throw Error("iFetch can only be used in Node.js-like environments.");const $=process.getBuiltinModule("node:dns"),g=process.getBuiltinModule("node:net"),k=process.getBuiltinModule("node:tls"),{hostname:c,port:p,pathname:s,protocol:h,search:w}=new URL(f),n=h==="https:",t=p?parseInt(p):n?443:80,i=c,d=s+w,I=P(H);if(!I)return $.lookup(i,(m,o)=>{if(m)throw m;const u=(n?k.connect:g.connect)(t,o,n?{servername:i}:null,()=>{C(u,{method:r,pathname:d,destHost:i,destPort:t,headers:y,body:x},B)});u.on("error",(l)=>{throw l})});const{host:O,port:v,user:L,pass:R,remoteResolve:S}=I,b=(m)=>{const o=g.connect(v,O,()=>{if(L&&R)o.write(Buffer.from([5,1,2]));else o.write(Buffer.from([5,1,0]))}),q=()=>{let l;if(S){const a=Buffer.from(i);l=Buffer.concat([Buffer.from([5,1,0,3,a.length]),a,Buffer.from([t>>8&255,t&255])])}else{const a=Buffer.from(m.split(".").map(Number));l=Buffer.concat([Buffer.from([5,1,0,1]),a,Buffer.from([t>>8&255,t&255])])}o.write(l)};let u=0;o.on("data",(l)=>{if(u===0)if(L&&R){if(l[1]!==2)return e("You tried to add authencation to a proxy that does not support username/password.");const a=Buffer.from(L),M=Buffer.from(R),F=Buffer.concat([Buffer.from([1,a.length]),a,Buffer.from([M.length]),M]);o.write(F);u=0.5}else{if(l[1]!==0)return e("You tried to use a proxy that requires authentication. Add authentication to your proxy URL.");u=1;q()}else if(u===0.5){if(l[1]!==0)return e("Your input proxy username/password was incorrect.");u=1;q()}else if(u===1){if(l[1]!==0)return e("SOCKS5 proxy connection failed :(");if(n){const a=k.connect({socket:o,servername:i},()=>{C(a,{method:r,pathname:d,destHost:i,destPort:t,headers:y,body:x},B)});a.on("error",e)}else C(o,{method:r,pathname:d,destHost:i,destPort:t,headers:y,body:x},B);u=2}});o.on("error",e)};if(S)b();else $.lookup(i,(m,o)=>{if(m)return e(m);b(o)})});export default N;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- import r from"./fetch.js";const e={},o=typeof window<"u"&&typeof HTMLElement<"u",n=typeof WebSocketPair<"u"&&typeof Cloudflare<"u",t=typeof process<"u"&&process.moduleLoadList?.length>0,i=typeof Deno<"u"&&typeof navigator<"u"&&navigator.userAgent?.startsWith("Deno/"),s=typeof Bun<"u"&&typeof navigator<"u"&&navigator.userAgent?.startsWith("Bun/");if(!o&&!n&&!t&&!i&&!s)throw new Error("yolkbot doesn't know how to run in this environment. Please open an issue on GitHub with information on where you run yolkbot.");e.isBrowser=o,e.isIsolated=!t&&!i&&!s,e.fetch=o||n?globalThis.fetch:r,e.WebSocket=o||n?globalThis.WebSocket:(await import("wwws")).WWWebSocket;var f=e;export{f as default};
1
+ import r from"./fetch.js";const e={},o=typeof window<"u"&&typeof HTMLElement<"u",n=typeof WebSocketPair<"u"&&typeof Cloudflare<"u",s=typeof process<"u"&&process.moduleLoadList?.length>0,t=typeof process<"u"&&!!process.versions?.deno,i=typeof process<"u"&&!!process.versions?.bun;if(!o&&!n&&!s&&!t&&!i)throw Error("yolkbot doesn't know how to run in this environment. Please open an issue on GitHub with information on where you run yolkbot.");e.isBrowser=o;e.isIsolated=!s&&!t&&!i;import{WWWebSocket as d}from"wwws";e.fetch=o||n?globalThis.fetch:r;e.WebSocket=o||n?globalThis.WebSocket:d;export default e;
package/dist/index.js CHANGED
@@ -1,10 +1,2 @@
1
- /* eslint-disable */
2
-
3
- const t="\x1B[31m",n="\x1B[32m",o="\x1B[0m";console[typeof window<"u"?"log":"error"](t+`
4
- how NOT to import a bot:
5
- import Bot from "yolkbot";
6
- `+o+n+`
7
- how to PROPERLY import a bot:
8
- import Bot from "yolkbot/bot";
9
- please adjust your code.
10
- `+o);
1
+ const o="\x1B[31m",t="\x1B[32m",r="\x1B[0m";console.error(["\x1B[31m","how NOT to import yolkbot:",'> import yolkbot from "yolkbot";',"\x1B[32m","how to PROPERLY import yolkbot:",'> import yolkbot from "yolkbot/bot";',"please adjust your code.","\x1B[0m"].join(`
2
+ `));
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var h=Object.defineProperty;var r=(c,s)=>h(c,"name",{value:s,configurable:!0});import f from"./api.js";import{validate as d}from"./wasm/wrapper.js";import l from"./env/globals.js";import L from"./socket.js";class g{static{r(this,"Matchmaker")}connected=!1;onceConnected=[];regionList=[];proxy=null;sessionId="";onListeners=new Map;onceListeners=new Map;#e=!1;#t=!1;constructor(s={}){this.#e=s.noExitOnError||!1,s.instance||(s.instance="shellshock.io"),s.protocol||(s.protocol="wss"),s.api?this.api=s.api:this.api=new f({proxy:s.proxy,protocol:s.protocol,instance:s.instance,connectionTimeout:s.connectionTimeout}),s.sessionId||s.noLogin?this.sessionId=s.sessionId:this.#n(),s.proxy&&l.isBrowser?this.#i("proxies do not work and hence are not supported in the browser"):s.proxy&&(this.proxy=s.proxy),this.#o(s.instance,s.protocol,s.noLogin,s.connectionTimeout)}async#o(s,i,e,t){if(this.ws=new L(`${i}://${s}/matchmaker/`,this.proxy),this.ws.connectionTimeout=t||5e3,!await this.ws.tryConnect())return this.#i("WebSocket did not connect...");this.ws.onmessage=o=>{const n=JSON.parse(o.data);if(n.command==="validateUUID")return this.ws.send(JSON.stringify({command:"validateUUID",hash:d(n.uuid)}));this.#s("msg",n)},this.ws.onclose=()=>{this.connected=!1,this.#t||this.#o(s,i,e,t)},this.connected=!0,(this.sessionId||e)&&this.onceConnected.forEach(o=>o())}async#n(){const s=await this.api.loginAnonymously();(!s||typeof s=="string")&&this.#s("authFail",s),this.sessionId=s.sessionId,this.connected&&this.onceConnected.forEach(i=>i())}send(s){this.ws.send(JSON.stringify(s))}async waitForConnect(){return new Promise(s=>{this.connected?s():this.onceConnected.push(s)})}async getRegions(){await this.waitForConnect();const s=this;return new Promise(i=>{const e=r(t=>{t.command==="regionList"&&(this.regionList=t.regionList,this.off("msg",e),i(t.regionList))},"listener");this.on("msg",e),this.ws.onerror=t=>s.#i("failed to get regions",t),this.ws.send(JSON.stringify({command:"regionList"}))})}close(){this.#t=!0,this.connected=!1,this.ws.close()}on(s,i){this.onListeners.has(s)||this.onListeners.set(s,[]),this.onListeners.get(s).push(i)}once(s,i){this.onceListeners.has(s)||this.onceListeners.set(s,[]),this.onceListeners.get(s).push(i)}off(s,i){this.onListeners.has(s)&&this.onListeners.set(s,this.onListeners.get(s).filter(e=>e!==i)),this.onceListeners.has(s)&&this.onceListeners.set(s,this.onceListeners.get(s).filter(e=>e!==i))}#s(s,...i){this.onListeners.has(s)&&this.onListeners.get(s).forEach(e=>e(...i)),this.onceListeners.has(s)&&(this.onceListeners.get(s).forEach(e=>e(...i)),this.onceListeners.delete(s))}#i(s){this.onListeners.has("error")?this.#s("error",s):(console.error(s),this.#e||process.exit(1))}}var I=g;export{g as Matchmaker,I as default};
1
+ import r from"./api.js";import{validate as h}from"./wasm/direct.js";import c from"./env/globals.js";import f from"./socket.js";export class Matchmaker{connected=!1;onceConnected=[];regionList=[];proxy=null;sessionId="";onListeners=new Map;onceListeners=new Map;#e=!1;#t=!1;constructor(s={}){this.#e=s.noExitOnError||!1;if(!s.instance)s.instance="shellshock.io";if(!s.protocol)s.protocol="wss";if(s.api)this.api=s.api;else this.api=new r({proxy:s.proxy,protocol:s.protocol,instance:s.instance,connectionTimeout:s.connectionTimeout});if(s.sessionId||s.noLogin)this.sessionId=s.sessionId;else this.#n();if(s.proxy&&c.isBrowser)this.#i("proxies do not work and hence are not supported in the browser");else if(s.proxy)this.proxy=s.proxy;this.#o(s.instance,s.protocol,s.noLogin,s.connectionTimeout)}async#o(s,i,e,t){this.ws=new f(`${i}://${s}/matchmaker/`,this.proxy);this.ws.connectionTimeout=t||5000;if(!await this.ws.tryConnect())return this.#i("WebSocket did not connect...");this.ws.onmessage=(o)=>{const n=JSON.parse(o.data);if(n.command==="validateUUID")return this.ws.send(JSON.stringify({command:"validateUUID",hash:h(n.uuid)}));this.#s("msg",n)};this.ws.onclose=()=>{this.connected=!1;if(!this.#t)this.#o(s,i,e,t)};this.connected=!0;if(this.sessionId||e)this.onceConnected.forEach((o)=>o())}async#n(){const s=await this.api.loginAnonymously();if(!s||typeof s==="string")this.#s("authFail",s);this.sessionId=s.sessionId;if(this.connected)this.onceConnected.forEach((i)=>i())}send(s){this.ws.send(JSON.stringify(s))}async waitForConnect(){return new Promise((s)=>{if(this.connected)s();else this.onceConnected.push(s)})}async getRegions(){await this.waitForConnect();const s=this;return new Promise((i)=>{const e=(t)=>{if(t.command==="regionList"){this.regionList=t.regionList;this.off("msg",e);i(t.regionList)}};this.on("msg",e);this.ws.onerror=(t)=>s.#i("failed to get regions",t);this.ws.send(JSON.stringify({command:"regionList"}))})}close(){this.#t=!0;this.connected=!1;this.ws.close()}on(s,i){if(!this.onListeners.has(s))this.onListeners.set(s,[]);this.onListeners.get(s).push(i)}once(s,i){if(!this.onceListeners.has(s))this.onceListeners.set(s,[]);this.onceListeners.get(s).push(i)}off(s,i){if(this.onListeners.has(s))this.onListeners.set(s,this.onListeners.get(s).filter((e)=>e!==i));if(this.onceListeners.has(s))this.onceListeners.set(s,this.onceListeners.get(s).filter((e)=>e!==i))}#s(s,...i){if(this.onListeners.has(s))this.onListeners.get(s).forEach((e)=>e(...i));if(this.onceListeners.has(s)){this.onceListeners.get(s).forEach((e)=>e(...i));this.onceListeners.delete(s)}}#i(s){if(this.onListeners.has("error"))this.#s("error",s);else if(this.#e)console.error(s);else throw Error(s)}}export default Matchmaker;
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var p=Object.defineProperty;var a=(n,e)=>p(n,"name",{value:e,configurable:!0});import{BinaryHeap as f}from"./binaryheap.js";class g{static{a(this,"AStar")}constructor(e){this.list=e}heuristic(e,i){return Math.abs(e.x-i.x)+Math.abs(e.y-i.y)+Math.abs(e.z-i.z)}reversePath(e){const i=[];for(;e.parent;)i.push(e),e=e.parent;return i.reverse(),i}path(e,i){this.list.clean();const r=new f(s=>s.f),c=[];for(e.h=this.heuristic(e,i),e.g=0,e.f=e.g+e.h,r.push(e);r.size()!==0;){const s=r.pop();if(s===i)return this.reversePath(s);c.push(s);const o=s.links;for(let h=0;h<o.length;h++){const t=o[h];if(c.includes(t))continue;const l=s.g+1,u=t.visited;(!u||l<t.g)&&(t.visited=!0,t.parent=s,t.g=l,t.h=this.heuristic(t.position,i.position),t.f=t.g+t.h,u?r.rescoreElement(t):r.push(t))}}return null}}export{g as default};
1
+ import{BinaryHeap as l}from"./binaryheap.js";export default class AStar{constructor(e){this.list=e}heuristic(e,t){return Math.abs(e.x-t.x)+Math.abs(e.y-t.y)+Math.abs(e.z-t.z)}reversePath(e){const t=[];while(e.parent){t.push(e);e=e.parent}t.reverse();return t}path(e,t){this.list.clean();const n=new l((s)=>s.f),r=[];e.h=this.heuristic(e,t);e.g=0;e.f=e.g+e.h;n.push(e);while(n.size()!==0){const s=n.pop();if(s===t)return this.reversePath(s);r.push(s);const c=s.links;for(let h=0;h<c.length;h++){const i=c[h];if(r.includes(i))continue;const a=s.g+1,o=i.visited;if(!o||a<i.g){i.visited=!0;i.parent=s;i.g=a;i.h=this.heuristic(i.position,t.position);i.f=i.g+i.h;if(o)n.rescoreElement(i);else n.push(i)}}}return null}}
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var b=Object.defineProperty;var u=(r,t)=>b(r,"name",{value:t,configurable:!0});class p{static{u(this,"BinaryHeap")}constructor(t){this.content=[],this.scoreFunction=t}push(t){this.content.push(t),this.bubbleUp(this.content.length-1)}rescoreElement(t){this.sinkDown(this.content.indexOf(t))}pop(){const t=this.content[0],e=this.content.pop();return this.content.length>0&&(this.content[0]=e,this.sinkDown(0)),t}remove(t){const e=this.content.length;for(let n=0;n<e;n++){if(this.content[n]!==t)continue;const i=this.content.pop();if(n===e-1)break;this.content[n]=i,this.bubbleUp(n),this.sinkDown(n);break}}size(){return this.content.length}bubbleUp(t){const e=this.content[t],n=this.scoreFunction(e);for(;t>0;){const i=Math.floor((t+1)/2)-1,o=this.content[i];if(n>=this.scoreFunction(o))break;this.content[i]=e,this.content[t]=o,t=i}}includes(t){return this.content.includes(t)}sinkDown(t){const e=this.content.length,n=this.content[t],i=this.scoreFunction(n);for(;;){const o=(t+1)*2,c=o-1;let s=null,h;if(c<e){const l=this.content[c];h=this.scoreFunction(l),h<i&&(s=c)}if(o<e){const l=this.content[o];this.scoreFunction(l)<(s===null?i:h)&&(s=o)}if(s===null)break;this.content[t]=this.content[s],this.content[s]=n,t=s}}}var a=p;export{p as BinaryHeap,a as default};
1
+ class BinaryHeap{constructor(b){this.content=[];this.scoreFunction=b}push(b){this.content.push(b);this.bubbleUp(this.content.length-1)}rescoreElement(b){this.sinkDown(this.content.indexOf(b))}pop(){const b=this.content[0],j=this.content.pop();if(this.content.length>0){this.content[0]=j;this.sinkDown(0)}return b}remove(b){const j=this.content.length;for(let f=0;f<j;f++){if(this.content[f]!==b)continue;const k=this.content.pop();if(f===j-1)break;this.content[f]=k;this.bubbleUp(f);this.sinkDown(f);break}}size(){return this.content.length}bubbleUp(b){const j=this.content[b],f=this.scoreFunction(j);while(b>0){const k=Math.floor((b+1)/2)-1,q=this.content[k];if(f>=this.scoreFunction(q))break;this.content[k]=j;this.content[b]=q;b=k}}includes(b){return this.content.includes(b)}sinkDown(b){const j=this.content.length,f=this.content[b],k=this.scoreFunction(f);while(!0){const q=(b+1)*2,x=q-1;let v=null,z;if(x<j){const A=this.content[x];z=this.scoreFunction(A);if(z<k)v=x}if(q<j){const A=this.content[q];if(this.scoreFunction(A)<(v===null?k:z))v=q}if(v===null)break;this.content[b]=this.content[v];this.content[v]=f;b=v}}}export default BinaryHeap;export{BinaryHeap};
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var d=Object.defineProperty;var f=(c,t)=>d(c,"name",{value:t,configurable:!0});class u{static{f(this,"MapNode")}constructor(t,i){this.x=i.x,this.y=i.y,this.z=i.z,this.positionStr=`${this.x},${this.y},${this.z}`,this.position={x:this.x,y:this.y,z:this.z},this.meshType=t.split(".").pop(),this.f=0,this.g=0,this.h=0,this.visited=null,this.parent=null,this.closed=null,this.links=[],this.isStair()&&(i.ry?this.ry=i.ry:this.ry=0)}isFull(){return this.meshType==="full"}canWalkThrough(){return this.meshType==="none"||this.meshType==="ladder"}canWalkOn(){return this.meshType==="full"}isLadder(){return this.meshType==="ladder"}isStair(){return this.meshType==="wedge"}isAir(){return this.meshType==="none"}canLink(t,i){const r=this.x-t.x,s=this.z-t.z,e=this.y-t.y,h=Math.abs(r),n=Math.abs(e),l=Math.abs(s);if(h+n+l===0||h+l>1||this.isFull()||t.isFull())return!1;const o=i.at(this.x,this.y-1,this.z),y=i.at(t.x,t.y-1,t.z);if(!o||!y)return!1;const a={0:{x:0,z:-1},1:{x:-1,z:0},2:{x:0,z:1},3:{x:1,z:0}};switch(this.meshType){case"none":return!!(e===1&&t.canWalkThrough()||(o.canWalkOn()||o.isLadder())&&(t.meshType==="none"||t.meshType==="ladder"&&n===0||t.meshType==="wedge"&&e===0&&r===-a[t.ry].x&&s===-a[t.ry].z));case"ladder":return!!(n===1&&t.canWalkThrough()||n===0&&o.canWalkOn()||t.meshType==="ladder"&&(n===1||o.canWalkOn()&&y.canWalkOn()));case"wedge":return this.x+a[this.ry].x===t.x&&this.z+a[this.ry].z===t.z&&this.y+1===t.y||this.x-a[this.ry].x===t.x&&this.z-a[this.ry].z===t.z&&(this.y===t.y||this.y-1===t.y);default:return!1}}flatCenter(){return{x:this.x+.5,y:this.y+0,z:this.z+.5}}flatRadialDistance(t){const i=this.flatCenter();return Math.hypot(i.x-t.x,i.z-t.z)}}class M{static{f(this,"NodeList")}list=[];constructor(t){const i={};for(const s of Object.keys(t.data))for(const e of t.data[s])i[e.x<<16|e.y<<8|e.z]=!0,this.list.push(new u(s,e));for(let s=0;s<t.width;s++)for(let e=0;e<t.height;e++)for(let h=0;h<t.depth;h++)i[s<<16|e<<8|h]||this.list.push(new u("SPECIAL.air.none",{x:s,y:e,z:h}));const r=new Map;for(const s of this.list)r.set(s.positionStr,s);for(const s of this.list){const e=[{x:s.x+1,y:s.y,z:s.z},{x:s.x-1,y:s.y,z:s.z},{x:s.x,y:s.y+1,z:s.z},{x:s.x,y:s.y-1,z:s.z},{x:s.x,y:s.y,z:s.z+1},{x:s.x,y:s.y,z:s.z-1}];for(const h of e){const n=`${h.x},${h.y},${h.z}`,l=r.get(n);l&&s.canLink(l,this)&&s.links.push(l)}}}at(t,i,r){if(!this.nodeMap){this.nodeMap=new Map;for(const e of this.list){const h=`${e.x},${e.y},${e.z}`;this.nodeMap.set(h,e)}}const s=`${t},${i},${r}`;return this.nodeMap.get(s)}clean(){for(const t of this.list)t.f=0,t.g=0,t.h=0,t.visited=null,t.parent=null,t.closed=null}hasLineOfSight(t,i){const r=i.x-t.x,s=i.y-t.y,e=i.z-t.z,h=Math.max(Math.abs(r),Math.abs(s),Math.abs(e)),n=r/h,l=s/h,o=e/h;let y=t.x,a=t.y,x=t.z;for(let z=0;z<=h;z++){const p=this.at(Math.round(y),Math.round(a),Math.round(x));if(p&&p.isFull())return!1;y+=n,a+=l,x+=o}return!0}}var T=u;export{u as MapNode,M as NodeList,T as default};
1
+ class MapNode{constructor(t,i){this.x=i.x;this.y=i.y;this.z=i.z;this.positionStr=`${this.x},${this.y},${this.z}`;this.position={x:this.x,y:this.y,z:this.z};this.meshType=t.split(".").pop();this.f=0;this.g=0;this.h=0;this.visited=null;this.parent=null;this.closed=null;this.links=[];if(this.isStair())if(i.ry)this.ry=i.ry;else this.ry=0}isFull(){return this.meshType==="full"}canWalkThrough(){return this.meshType==="none"||this.meshType==="ladder"}canWalkOn(){return this.meshType==="full"}isLadder(){return this.meshType==="ladder"}isStair(){return this.meshType==="wedge"}isAir(){return this.meshType==="none"}canLink(t,i){const r=this.x-t.x,s=this.z-t.z,e=this.y-t.y,h=Math.abs(r),n=Math.abs(e),a=Math.abs(s);if(h+n+a===0||h+a>1||this.isFull()||t.isFull())return!1;const y=i.at(this.x,this.y-1,this.z),o=i.at(t.x,t.y-1,t.z);if(!y||!o)return!1;const l={0:{x:0,z:-1},1:{x:-1,z:0},2:{x:0,z:1},3:{x:1,z:0}};switch(this.meshType){case"none":if(e===1&&t.canWalkThrough())return!0;if(y.canWalkOn()||y.isLadder()){if(t.meshType==="none"||t.meshType==="ladder"&&n===0||t.meshType==="wedge"&&e===0&&r===-l[t.ry].x&&s===-l[t.ry].z)return!0}return!1;case"ladder":if(n===1&&t.canWalkThrough())return!0;if(n===0&&y.canWalkOn())return!0;if(t.meshType==="ladder"&&(n===1||y.canWalkOn()&&o.canWalkOn()))return!0;return!1;case"wedge":if(this.x+l[this.ry].x===t.x&&this.z+l[this.ry].z===t.z&&this.y+1===t.y)return!0;if(this.x-l[this.ry].x===t.x&&this.z-l[this.ry].z===t.z&&(this.y===t.y||this.y-1===t.y))return!0;return!1;default:return!1}}flatCenter(){return{x:this.x+0.5,y:this.y+0,z:this.z+0.5}}flatRadialDistance(t){const i=this.flatCenter();return Math.hypot(i.x-t.x,i.z-t.z)}}class NodeList{list=[];constructor(t){const i={};for(const s of Object.keys(t.data))for(const e of t.data[s]){i[e.x<<16|e.y<<8|e.z]=!0;this.list.push(new MapNode(s,e))}for(let s=0;s<t.width;s++)for(let e=0;e<t.height;e++)for(let h=0;h<t.depth;h++)if(!i[s<<16|e<<8|h])this.list.push(new MapNode("SPECIAL.air.none",{x:s,y:e,z:h}));const r=new Map;for(const s of this.list)r.set(s.positionStr,s);for(const s of this.list){const e=[{x:s.x+1,y:s.y,z:s.z},{x:s.x-1,y:s.y,z:s.z},{x:s.x,y:s.y+1,z:s.z},{x:s.x,y:s.y-1,z:s.z},{x:s.x,y:s.y,z:s.z+1},{x:s.x,y:s.y,z:s.z-1}];for(const h of e){const n=`${h.x},${h.y},${h.z}`,a=r.get(n);if(a&&s.canLink(a,this))s.links.push(a)}}}at(t,i,r){if(!this.nodeMap){this.nodeMap=new Map;for(const e of this.list){const h=`${e.x},${e.y},${e.z}`;this.nodeMap.set(h,e)}}const s=`${t},${i},${r}`;return this.nodeMap.get(s)}clean(){for(const t of this.list){t.f=0;t.g=0;t.h=0;t.visited=null;t.parent=null;t.closed=null}}hasLineOfSight(t,i){const r=i.x-t.x,s=i.y-t.y,e=i.z-t.z,h=Math.max(Math.abs(r),Math.abs(s),Math.abs(e)),n=r/h,a=s/h,y=e/h;let{x:o,y:l,z:u}=t;for(let c=0;c<=h;c++){const f=this.at(Math.round(o),Math.round(l),Math.round(u));if(f&&f.isFull())return!1;o+=n;l+=a;u+=y}return!0}}export default MapNode;export{MapNode,NodeList};
package/dist/socket.js CHANGED
@@ -1,3 +1 @@
1
- /* eslint-disable */
2
-
3
- var h=Object.defineProperty;var s=(c,e)=>h(c,"name",{value:e,configurable:!0});import r from"./env/globals.js";import{UserAgent as u}from"./constants/index.js";class k{static{s(this,"yolkws")}url="";proxy="";binaryType="";maxRetries=5;connectionTimeout=5e3;constructor(e,t){this.url=e,r.isBrowser&&t&&(console.error("You cannot pass a proxy to a yolkws inside of a browser."),process.exit(1)),this.proxy=t}async tryConnect(e=1){const t=new URL(this.url),n=s(async()=>e===5?!1:await this.tryConnect(e+1),"retryOrQuit");try{this.socket=r.isBrowser?new r.WebSocket(this.url):new r.WebSocket(this.url,{proxy:this.proxy||void 0,headers:{"accept-encoding":"gzip, deflate, br, zstd","accept-language":"en-US,en;q=0.9","cache-control":"no-cache",connection:"Upgrade",origin:t.origin.replace("ws","http"),pragma:"no-cache","sec-websocket-extensions":"permessage-deflate; client_max_window_bits","user-agent":u}}),this.binaryType&&(this.socket.binaryType=this.binaryType)}catch(o){return console.error(`Failed to connect on try ${e}, trying again...`,o),await n()}return this.onBeforeConnect&&this.onBeforeConnect(),new Promise(o=>{const i=setTimeout(async()=>{this.socket.close(),o(await n())},this.connectionTimeout),a=s(async l=>{clearTimeout(i),console.error("WebSocket error",l),o(await n())},"errorListener");this.socket.addEventListener("open",async()=>{clearTimeout(i),this.socket.removeEventListener("error",a),o(!0)}),this.socket.addEventListener("error",a)})}get onmessage(){return this.socket?.onmessage}set onmessage(e){this.socket?this.socket.onmessage=e:console.error("set onmessage before socket existed")}get onclose(){return this.socket?.onclose}set onclose(e){this.socket?this.socket.onclose=e:console.error("set onclose before socket existed")}get onerror(){return this.socket?.onerror}set onerror(e){this.socket?this.socket.onerror=e:console.error("set onclose before socket existed")}send(e){return this.socket?.send(e)}close(e){return this.socket?.close(e)}}var d=k;export{d as default};
1
+ import s from"./env/globals.js";import{UserAgent as l}from"./constants/index.js";class i{url="";proxy="";binaryType="";maxRetries=5;connectionTimeout=5000;constructor(e,o){if(s.isBrowser&&o)throw Error("You cannot pass a proxy to a WebSocket in a browser.");this.url=e;this.proxy=o}async tryConnect(e=1){const o=new URL(this.url),r=async()=>{if(e===5)return!1;return await this.tryConnect(e+1)};try{this.socket=s.isBrowser?new s.WebSocket(this.url):new s.WebSocket(this.url,{proxy:this.proxy||null,headers:{"accept-encoding":"gzip, deflate, br, zstd","accept-language":"en-US,en;q=0.9","cache-control":"no-cache",connection:"Upgrade",origin:o.origin.replace("ws","http"),pragma:"no-cache","sec-websocket-extensions":"permessage-deflate; client_max_window_bits","user-agent":l}});if(this.binaryType)this.socket.binaryType=this.binaryType}catch(t){console.error(`Failed to connect on try ${e}, trying again...`,t);return await r()}if(this.onBeforeConnect)this.onBeforeConnect();return new Promise((t)=>{const n=setTimeout(async()=>{this.socket.close();t(await r())},this.connectionTimeout),c=async(a)=>{clearTimeout(n);console.error("WebSocket error",a);t(await r())};this.socket.addEventListener("open",async()=>{clearTimeout(n);this.socket.removeEventListener("error",c);t(!0)});this.socket.addEventListener("error",c)})}get onmessage(){return this.socket?.onmessage}set onmessage(e){if(this.socket)this.socket.onmessage=e;else console.error("set onmessage before socket existed")}get onclose(){return this.socket?.onclose}set onclose(e){if(this.socket)this.socket.onclose=e;else console.error("set onclose before socket existed")}get onerror(){return this.socket?.onerror}set onerror(e){if(this.socket)this.socket.onerror=e;else console.error("set onclose before socket existed")}send(e){return this.socket?.send(e)}close(e){return this.socket?.close(e)}}export default i;
@@ -18,7 +18,7 @@ interface APIParams {
18
18
 
19
19
  export type QueryServicesError = 'websocket_connect_fail' | 'bad_json' | 'unknown_socket_error' | 'services_closed_early';
20
20
  export type AnonError = 'firebase_network_failed' | 'firebase_no_token';
21
- export type LoginError = AnonLogin | 'firebase_no_credentials' | 'firebase_bad_request' | 'firebase_unknown_error';
21
+ export type LoginError = AnonError | 'firebase_no_credentials' | 'firebase_bad_request' | 'firebase_unknown_error';
22
22
  export type EmailVerifyError = 'no_idtoken_passed' | 'firebase_invalid_response';
23
23
  export type OobCodeError = 'no_oob_code_passed' | 'firebase_unknown_error';
24
24
 
@@ -11,7 +11,7 @@ interface MatchmakerParams {
11
11
  sessionId?: string;
12
12
  noExitOnError?: boolean;
13
13
  connectionTimeout?: number;
14
- };
14
+ }
15
15
 
16
16
  export interface MatchmakerCommand {
17
17
  command: string;
@@ -0,0 +1 @@
1
+ export declare const wasmBytes: string;
@@ -0,0 +1,3 @@
1
+ export declare function validate(uuid: string): string;
2
+ export declare function coords(yaw: number, pitch: number): string;
3
+ export declare function processJS(input: string): string;
@@ -0,0 +1,63 @@
1
+ import { MovementXY } from './util';
2
+
3
+ export interface GetYawPitch {
4
+ yaw: number;
5
+ pitch: number;
6
+ coords: string;
7
+ }
8
+
9
+ export interface CustomExports extends WebAssembly.Exports {
10
+ memory: WebAssembly.Memory;
11
+
12
+ start: () => void;
13
+ process: (ptr: number, len: number) => void;
14
+ validate(ptr: number, len: number): [number, number];
15
+ get_yaw_pitch(): GetYawPitch;
16
+ reset_yaw_pitch(): void;
17
+ set_mouse_params(speed: number, invert: number, fov: number, scoped: boolean, uniqueIdPtr: string, uniqueIdLen: string): void;
18
+ poll_gamepad(gp_idx: number, deadzone: number, speed: number, scoped: boolean, invert: number, players: object[], babylonCamera: any, selfId: number, selfTeam: number): void;
19
+
20
+ __wbindgen_export_2: WebAssembly.Table;
21
+ __wbindgen_export_5: WebAssembly.Table;
22
+
23
+ __wbindgen_exn_store(idx: number): void;
24
+ __externref_table_alloc(): number;
25
+ __wbindgen_malloc(size: number, tag: number): number;
26
+ __wbindgen_realloc: (ptr: number, oldSize: number, newSize: number, tag: number) => number;
27
+ __wbindgen_free(ptr: number, size: number, tag: number): void;
28
+ __wbindgen_start: () => void;
29
+
30
+ closure28_externref_shim: (arg0: number, arg1: number, arg2: any) => void;
31
+ }
32
+
33
+ export class WASM {
34
+ wasm: CustomExports;
35
+
36
+ canvasListeners: {
37
+ pointermove?: (event: MovementXY) => void;
38
+ gamepadconnected?: (event: { gamepad: Gamepad }) => void;
39
+ };
40
+
41
+ mockElement: {
42
+ textContent: string;
43
+ }
44
+
45
+ processDate: number | null;
46
+ processListeners: Array<() => void>;
47
+
48
+ initWasm(): Promise<void>;
49
+
50
+ getStringFromWasm(ptr: number, len: number): string;
51
+ passStringToWasm(str: string): { ptr: number; len: number; };
52
+ addToExternrefTable(obj: any): number;
53
+
54
+ getImports(): WebAssembly.Imports;
55
+
56
+ process(string: string, customDate?: number): void;
57
+ validate(string: string): string;
58
+ getYawPitch(): GetYawPitch;
59
+ resetYawPitch(): void;
60
+ coords(yaw: number, pitch: number): string;
61
+ }
62
+
63
+ export default WASM;
@@ -0,0 +1,9 @@
1
+ export interface MovementXY {
2
+ movementX: number;
3
+ movementY: number;
4
+ }
5
+
6
+ export declare const sensitivity: number;
7
+
8
+ export declare const normalizeYaw: (yaw: number) => number;
9
+ export declare const calculateMovements: (currentYaw: number, currentPitch: number, targetYaw: number, targetPitch: number) => MovementXY;