yolkbot 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +1 -1
  2. package/browser/build/global.js +23 -4
  3. package/browser/build/module.js +23 -2
  4. package/dist/api.js +1 -1
  5. package/dist/bot/GamePlayer.js +1 -1
  6. package/dist/bot.js +1 -1
  7. package/dist/comm/CommIn.js +1 -1
  8. package/dist/comm/CommOut.js +1 -1
  9. package/dist/constants/CommCode.js +1 -1
  10. package/dist/constants/guns.js +1 -1
  11. package/dist/constants/index.js +1 -1
  12. package/dist/constants/items.js +1 -1
  13. package/dist/constants/maps.js +1 -1
  14. package/dist/dispatches/BanPlayerDispatch.js +1 -1
  15. package/dist/dispatches/BootPlayerDispatch.js +1 -1
  16. package/dist/dispatches/ChatDispatch.js +1 -1
  17. package/dist/dispatches/FireDispatch.js +1 -1
  18. package/dist/dispatches/GameOptionsDispatch.js +1 -1
  19. package/dist/dispatches/GoToAmmoDispatch.js +1 -1
  20. package/dist/dispatches/GoToCoopDispatch.js +1 -1
  21. package/dist/dispatches/GoToGrenadeDispatch.js +1 -1
  22. package/dist/dispatches/GoToPlayerDispatch.js +1 -1
  23. package/dist/dispatches/GoToSpatulaDispatch.js +1 -1
  24. package/dist/dispatches/LookAtDispatch.js +1 -1
  25. package/dist/dispatches/LookAtPosDispatch.js +1 -1
  26. package/dist/dispatches/MeleeDispatch.js +1 -1
  27. package/dist/dispatches/MovementDispatch.js +1 -1
  28. package/dist/dispatches/PauseDispatch.js +1 -1
  29. package/dist/dispatches/ReloadDispatch.js +1 -1
  30. package/dist/dispatches/ReportPlayerDispatch.js +1 -1
  31. package/dist/dispatches/SaveLoadoutDispatch.js +1 -1
  32. package/dist/dispatches/SpawnDispatch.js +1 -1
  33. package/dist/dispatches/SwapWeaponDispatch.js +1 -1
  34. package/dist/dispatches/SwitchTeamDispatch.js +1 -1
  35. package/dist/dispatches/ThrowGrenadeDispatch.js +1 -1
  36. package/dist/env/fetch.js +17 -0
  37. package/dist/env/globals.js +3 -0
  38. package/dist/matchmaker.js +1 -1
  39. package/dist/pathing/astar.js +1 -1
  40. package/dist/pathing/binaryheap.js +1 -1
  41. package/dist/pathing/mapnode.js +1 -1
  42. package/dist/socket.js +1 -1
  43. package/dist/types/api.d.ts +15 -10
  44. package/dist/types/bot.d.ts +28 -27
  45. package/dist/types/socket.d.ts +12 -2
  46. package/dist/util.js +1 -1
  47. package/dist/wasm/bytes.js +1 -1
  48. package/dist/wasm/imports.js +2 -2
  49. package/dist/wasm/utils.js +1 -1
  50. package/dist/wasm/wrapper.js +1 -1
  51. package/package.json +6 -8
  52. package/dist/constants/changelog.js +0 -3
  53. package/dist/constants/housePromo.js +0 -3
  54. package/dist/constants/language.js +0 -49
  55. package/dist/constants/notices.js +0 -3
  56. package/dist/constants/shellNews.js +0 -3
  57. package/dist/constants/shellYoutube.js +0 -3
  58. package/dist/constants/shopItems.js +0 -3
  59. package/dist/constants/sounds.js +0 -3
  60. package/dist/globals.js +0 -3
@@ -9,7 +9,6 @@ type intents = {
9
9
  LOG_PACKETS: 10,
10
10
  NO_LOGIN: 11,
11
11
  DEBUG_BUFFER: 12,
12
- DEBUG_BEST_TARGET: 14,
13
12
  NO_AFK_KICK: 16,
14
13
  LOAD_MAP: 17,
15
14
  OBSERVE_GAME: 18,
@@ -26,14 +25,13 @@ import { MapJSON } from './constants/maps';
26
25
  import { Item } from './constants/items';
27
26
  import { ADispatch } from './dispatches/index';
28
27
  import { NodeList } from './pathing/mapnode';
29
- import { API } from './api';
28
+ import { AnonError, API, LoginError, QueryServicesError } from './api';
30
29
  import { Matchmaker } from './matchmaker';
31
30
  import yolkws from './socket';
32
31
 
33
32
  export interface BotParams {
34
33
  intents?: number[];
35
34
  proxy?: string;
36
- httpProxy?: string;
37
35
  instance?: string;
38
36
  protocol?: string;
39
37
  apiMaxRetries?: number;
@@ -344,6 +342,10 @@ export interface FireBullet {
344
342
  dirZ: number;
345
343
  }
346
344
 
345
+ type FindPublicErrors = 'no_region_passed' | 'invalid_region_passed' | 'no_mode_passed' | 'invalid_mode_passed' | 'matchmaker_init_fail' | 'internal_session_error';
346
+ type CreatePrivateErrors = FindPublicErrors | 'invalid_map_passed';
347
+ type BotLoginError = 'account_banned';
348
+
347
349
  export class Bot {
348
350
  static Intents: intents;
349
351
  Intents: intents;
@@ -352,7 +354,6 @@ export class Bot {
352
354
  instance: string;
353
355
  protocol: string;
354
356
  proxy: string;
355
- httpProxy: string;
356
357
 
357
358
  state: BotState;
358
359
  players: Record<string, GamePlayer>;
@@ -373,24 +374,23 @@ export class Bot {
373
374
 
374
375
  constructor(params?: BotParams);
375
376
 
376
- loginAnonymously(): Promise<Account | false>;
377
- loginWithRefreshToken(refreshToken: string): Promise<Account | false>;
378
- login(email: string, pass: string): Promise<Account | false>;
379
- createAccount(email: string, pass: string): Promise<Account | false>;
377
+ loginAnonymously(): Promise<Account | BotLoginError | AnonError>;
378
+ loginWithRefreshToken(refreshToken: string): Promise<Account | BotLoginError | LoginError>;
379
+ login(email: string, pass: string): Promise<Account | BotLoginError | LoginError>;
380
+ createAccount(email: string, pass: string): Promise<Account | BotLoginError | LoginError>;
380
381
 
381
- initMatchmaker(): Promise<boolean>;
382
+ initMatchmaker(): Promise<true | BotLoginError | AnonError | 'matchmaker_tryconnect_failed'>;
382
383
 
383
- createPrivateGame(region: string, mode: number, map: string): Promise<RawGameData | string>;
384
- findPublicGame(region: string, mode: number): Promise<RawGameData | string>;
384
+ createPrivateGame(region: string, mode: number, map: string): Promise<RawGameData | FindPublicErrors>;
385
+ findPublicGame(region: string, mode: number): Promise<RawGameData | CreatePrivateErrors>;
385
386
 
386
- join(botName: string, data: string | RawGameData): Promise<void>;
387
+ join(botName: string, data: string | RawGameData): Promise<true | 'matchmaker_init_fail' | 'game_not_found' | 'websocket_tryconnect_fail' | 'invalid_game_object'>;
387
388
 
388
389
  processPacket(data: number[]): void;
389
390
  dispatch(disp: ADispatch): boolean;
390
391
  update(): void;
391
392
 
392
393
  canSee(player: GamePlayer): boolean;
393
- getBestTarget(customFilter?: (player: GamePlayer) => boolean): { player: GamePlayer, inLoS: boolean } | undefined;
394
394
 
395
395
  onAny(cb: Function): void;
396
396
  off(event: string, cb: Function): void;
@@ -403,8 +403,6 @@ export class Bot {
403
403
  on(event: 'challengeComplete', cb: (player: GamePlayer, challengeId: number) => void): void;
404
404
  on(event: 'chat', cb: (player: GamePlayer | undefined, message: string, flags: number) => void): void;
405
405
  on(event: 'close', cb: (code: number) => void): void;
406
- on(event: 'collectAmmo', cb: (player: GamePlayer, weapon: AnyGun) => void): void;
407
- on(event: 'collectGrenade', cb: (player: GamePlayer) => void): void;
408
406
  on(event: 'error', cb: (error: string) => void): void;
409
407
  on(event: 'gameForcePause', cb: () => void): void;
410
408
  on(event: 'gameOptionsChange', cb: (oldOptions: GameOptions, newOptions: GameOptions) => void): void;
@@ -419,6 +417,8 @@ export class Bot {
419
417
  on(event: 'playerBeginStreak', cb: (player: GamePlayer, streakType: number) => void): void;
420
418
  on(event: 'playerChangeCharacter', cb: (player: GamePlayer, oldCharacter: Character, newCharacter: Character) => void): void;
421
419
  on(event: 'playerChangeGun', cb: (player: GamePlayer, oldGunId: number, newGunId: number) => void): void;
420
+ on(event: 'playerCollectAmmo', cb: (player: GamePlayer, weapon: AnyGun, itemId: number) => void): void;
421
+ on(event: 'playerCollectGrenade', cb: (player: GamePlayer, itemId: number) => void): void;
422
422
  on(event: 'playerDamage', cb: (player: GamePlayer, oldHp: number, newHp: number) => void): void;
423
423
  on(event: 'playerDeath', cb: (killed: GamePlayer, killer: GamePlayer) => void): void;
424
424
  on(event: 'playerEndStreak', cb: (player: GamePlayer, streakType: number) => void): void;
@@ -436,27 +436,28 @@ export class Bot {
436
436
  on(event: 'playerRotate', cb: (player: GamePlayer, oldView: View, newView: View) => void): void;
437
437
  on(event: 'playerSwapWeapon', cb: (player: GamePlayer, nowActive: number) => void): void;
438
438
  on(event: 'playerSwitchTeam', cb: (player: GamePlayer, oldTeam: number, newTeam: number) => void): void;
439
+ on(event: 'playerThrowGrenade', cb: (player: GamePlayer, position: Position, dPosition: Position) => void): void;
439
440
  on(event: 'respawnDenied', cb: () => void): void;
440
441
  on(event: 'rocketHit', cb: (pos: Position, damage: number, blastRadius: number) => void): void;
441
442
  on(event: 'selfShieldHit', cb: (newShieldHealth: number, newPlayerHealth: number, dir: { dx: number, dz: number }) => void): void;
442
443
  on(event: 'selfShieldLost', cb: (newPlayerHealth: number, dir: { dx: number, dz: number }) => void): void;
443
444
  on(event: 'sessionExpired', cb: () => void): void;
444
- on(event: 'spawnItem', cb: (itemType: number, itemPosition: Position) => void): void;
445
+ on(event: 'spawnItem', cb: (itemType: number, itemPosition: Position, itemId: number) => void): void;
445
446
  on(event: 'tick', cb: () => void): void;
446
447
 
447
- checkChiknWinner(): Promise<ChiknWinnerStatus>;
448
- playChiknWinner(doPrematureCooldownCheck: boolean): Promise<ChiknWinnerResponse | string>;
449
- resetChiknWinner(): Promise<ChiknWinnerStatus>;
448
+ checkChiknWinner(): Promise<ChiknWinnerStatus | QueryServicesError>;
449
+ playChiknWinner(doPrematureCooldownCheck: boolean): Promise<ChiknWinnerResponse | QueryServicesError | 'hit_daily_limit' | 'on_cooldown' | 'session_expired' | 'unknown_error'>;
450
+ resetChiknWinner(): Promise<ChiknWinnerStatus | QueryServicesError | 'not_enough_eggs' | 'not_at_limit' | 'unknown_error'>;
450
451
 
451
- refreshChallenges(): Promise<Challenges[]>;
452
- claimChallenge(challengeId: number): Promise<{ eggReward: number, updatedChallenges: Challenges[] }>;
453
- rerollChallenge(challengeId: number): Promise<Challenges[]>;
452
+ refreshChallenges(): Promise<Challenges[] | QueryServicesError>;
453
+ claimChallenge(challengeId: number): Promise<{ eggReward: number, updatedChallenges: Challenges[] } | QueryServicesError>;
454
+ rerollChallenge(challengeId: number): Promise<Challenges[] | QueryServicesError>;
454
455
 
455
- refreshBalance(): Promise<number>;
456
- redeemCode(code: string): Promise<{ result: string; eggsGiven: number; itemIds: number[]; }>;
457
- claimURLReward(reward: string): Promise<{ result: string; eggsGiven: number; itemIds: number[]; }>;
458
- claimSocialReward(rewardTag: string): Promise<{ result: string; eggsGiven: number; itemIds: number[]; }>;
459
- buyItem(itemId: number): Promise<{ result: string; currentBalance: number; itemId: number; }>;
456
+ refreshBalance(): Promise<number | QueryServicesError>;
457
+ redeemCode(code: string): Promise<{ result: string; eggsGiven: number; itemIds: number[]; } | QueryServicesError>;
458
+ claimURLReward(reward: string): Promise<{ result: string; eggsGiven: number; itemIds: number[]; } | QueryServicesError>;
459
+ claimSocialReward(rewardTag: string): Promise<{ result: string; eggsGiven: number; itemIds: number[]; } | QueryServicesError>;
460
+ buyItem(itemId: number): Promise<{ result: string; currentBalance: number; itemId: number; } | QueryServicesError>;
460
461
 
461
462
  leave(code?: number): void;
462
463
  logout(): void;
@@ -1,7 +1,17 @@
1
- import NodeWebSocket from 'ws';
1
+ type Data = string | Buffer | ArrayBuffer | Buffer[];
2
2
 
3
- declare class yolkws extends NodeWebSocket {
3
+ declare class yolkws {
4
4
  constructor(url: string, proxy: string);
5
+
6
+ tryConnect($tries?: number): Promise<void>;
7
+
8
+ onmessage: (data: Data) => void;
9
+ onopen: () => void;
10
+ onclose: (code: number, reason: string) => void;
11
+ onerror: (err: Error) => void;
12
+
13
+ send(data: Data): void;
14
+ close(code?: number, reason?: string): void;
5
15
  }
6
16
 
7
17
  export default yolkws;
package/dist/util.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /* eslint-disable */
2
2
 
3
- import{IsBrowser as p}from"./constants/index.js";const x=async(c,r)=>{if(p)return await(await fetch(`https://esm.sh/gh/yolkorg/maps/maps/${c}.json?${r}`)).json();{const{existsSync:t,mkdirSync:a,readFileSync:f,writeFileSync:z}=await import("node:fs"),{join:o}=await import("node:path"),{homedir:s}=await import("node:os"),e=o(s(),".yolkbot"),n=o(e,"maps");t(e)||a(e),t(n)||a(n);const i=o(n,`${c}-${r}.json`);if(t(i))return JSON.parse(f(i,"utf-8"));const l=await(await fetch(`https://esm.sh/gh/yolkorg/maps/maps/${c}.json?${r}`)).json();return z(i,JSON.stringify(l,null,4),{flag:"w+"}),l}},m=c=>{let r=0;const t={},a=[];for(const o of c)t[o.x]||(t[o.x]={}),t[o.x][o.y]||(t[o.x][o.y]={}),t[o.x][o.y][o.z]={zone:null};const f=[{x:-1,z:0},{x:1,z:0},{x:0,z:-1},{x:0,z:1}],z=(o,s,e)=>t[o]&&t[o][s]&&t[o][s][e]?t[o][s][e]:null;for(const o of c)if(!t[o.x][o.y][o.z].zone){o.zone=++r,t[o.x][o.y][o.z].zone=o.zone;const s=[o];let e;do{e=0;for(const n of c)if(!t[n.x][n.y][n.z].zone)for(const i of f){const l=z(n.x+i.x,n.y,n.z+i.z);if(l&&l.zone===o.zone){e++,n.zone=o.zone,t[n.x][n.y][n.z].zone=o.zone,s.push(n);break}}}while(e>0);a.push(s)}return a};export{x as fetchMap,m as initKotcZones};
3
+ var y=Object.defineProperty;var f=(s,i)=>y(s,"name",{value:i,configurable:!0});import{IsBrowser as x}from"./constants/index.js";const w=f(async(s,i)=>{if(x)return await(await fetch(`https://esm.sh/gh/yolkorg/maps/maps/${s}.json?${i}`)).json();{const{existsSync:t,mkdirSync:a,readFileSync:z,writeFileSync:p}=await import("node:fs"),{join:o}=await import("node:path"),{homedir:c}=await import("node:os"),e=o(c(),".yolkbot"),n=o(e,"maps");t(e)||a(e),t(n)||a(n);const r=o(n,`${s}-${i}.json`);if(t(r))return JSON.parse(z(r,"utf-8"));const l=await(await fetch(`https://esm.sh/gh/yolkorg/maps/maps/${s}.json?${i}`)).json();return p(r,JSON.stringify(l,null,4),{flag:"w+"}),l}},"fetchMap"),h=f(s=>{let i=0;const t={},a=[];for(const o of s)t[o.x]||(t[o.x]={}),t[o.x][o.y]||(t[o.x][o.y]={}),t[o.x][o.y][o.z]={zone:null};const z=[{x:-1,z:0},{x:1,z:0},{x:0,z:-1},{x:0,z:1}],p=f((o,c,e)=>t[o]&&t[o][c]&&t[o][c][e]?t[o][c][e]:null,"getMapCellAt");for(const o of s)if(!t[o.x][o.y][o.z].zone){o.zone=++i,t[o.x][o.y][o.z].zone=o.zone;const c=[o];let e;do{e=0;for(const n of s)if(!t[n.x][n.y][n.z].zone)for(const r of z){const l=p(n.x+r.x,n.y,n.z+r.z);if(l&&l.zone===o.zone){e++,n.zone=o.zone,t[n.x][n.y][n.z].zone=o.zone,c.push(n);break}}}while(e>0);a.push(c)}return a},"initKotcZones");export{w as fetchMap,h as initKotcZones};