UNPKG

minecrafthawkeye

Version:

Minecraft bot for equations when shooting an arrow

91 lines (90 loc) 3.06 kB
import { Bot as MineflayerBot } from 'mineflayer'; import { Vec3 } from 'vec3'; import { Entity } from 'prismarine-entity'; import { Block } from 'prismarine-block'; import { detectProjectiles } from '../hawkEye'; import getMasterGrade from '../hawkEyeEquations'; import { getPlayer } from '../botFunctions'; import { detectAim } from '../projectilRadar'; import { calculateArrowTrayectory } from '../calculateArrowTrayectory'; export type OptionsMasterGrade = { position: Vec3; isValid: boolean; }; export declare enum Weapons { bow = "bow", crossbow = "crossbow", trident = "trident", ender_pearl = "ender_pearl", snowball = "snowball", egg = "egg", splash_potion = "splash_potion" } export type PropsOfWeapons = { GRAVITY: number; BaseVo: number; waitTime: number; }; export declare const weaponsProps: Record<Weapons, PropsOfWeapons>; export type GetMasterGrade = { pitch: number; yaw: number; grade: number; nearestDistance: number; target: Vec3; arrowTrajectoryPoints: Array<Vec3>; blockInTrayect?: Block | null; }; export type HawkEye = { simplyShot: (yaw: number, pitch: number) => void; oneShot: (target: Entity, weapon: Weapons) => void; autoAttack: (target: Entity, weapon: Weapons) => void; getMasterGrade: (from: Entity | OptionsMasterGrade, speed: Vec3, weapon: Weapons) => ReturnType<typeof getMasterGrade>; stop: () => void; getPlayer: (name?: string) => ReturnType<typeof getPlayer>; detectProjectiles: (projectile?: string) => ReturnType<typeof detectProjectiles>; detectAim: () => ReturnType<typeof detectAim>; calculateArrowTrayectory: (currentPos: Vec3, itemSpeed: number, pitch: number, yaw: number, ammunitionType?: Weapons) => ReturnType<typeof calculateArrowTrayectory>; startRadar: () => void; stopRadar: () => void; }; export interface HawkEyeEvents { auto_shot_stopped: (target: Entity | OptionsMasterGrade) => void; target_aiming_at_you: (entity: Entity, arrowTrajectory: Array<Vec3>) => void; incoming_projectil: (projectil: Projectil, arrowTrajectory: Array<Vec3>) => void; } export interface Bot extends MineflayerBot { test: { groundY: number; sayEverywhere: (msg: string) => void; clearInventory: () => void; becomeSurvival: () => void; becomeCreative: () => void; fly: (delta: Vec3) => Promise<void>; resetState: () => Promise<void>; placeBlock: (slot: number, position: Vec3) => void; wait: (ms: number) => Promise<void>; }; } export declare const isEntity: (e: Entity | OptionsMasterGrade) => e is Entity; export type Projectil = { uuid: string; entity: Entity; enabled: boolean; currentSpeed: number; currentSpeedTime: number; previusPositions: Array<{ at: number; pos: Vec3; }>; updatedAt: number; }; export declare class Vec2 { x: number; y: number; constructor(x: number, y: number); } export type BoxColission = { start: Vec3; end: Vec3; };