minecrafthawkeye
Version:
Minecraft bot for equations when shooting an arrow
91 lines (90 loc) • 3.06 kB
TypeScript
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;
};