Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Path: blob/master/index.d.ts
Views: 787
import { EventEmitter } from 'events'1import TypedEmitter from 'typed-emitter'2import { Client, ClientOptions } from 'minecraft-protocol'3import { Vec3 } from 'vec3'4import { Item } from 'prismarine-item'5import { Window } from 'prismarine-windows'6import { Recipe } from 'prismarine-recipe'7import { Block } from 'prismarine-block'8import { Entity } from 'prismarine-entity'9import { ChatMessage } from 'prismarine-chat'10import { world } from 'prismarine-world'11import { Registry } from 'prismarine-registry'12import { IndexedData } from 'minecraft-data'1314export function createBot (options: { client: Client } & Partial<BotOptions>): Bot15export function createBot (options: BotOptions): Bot1617export interface BotOptions extends ClientOptions {18logErrors?: boolean19hideErrors?: boolean20loadInternalPlugins?: boolean21plugins?: PluginOptions22chat?: ChatLevel23colorsEnabled?: boolean24viewDistance?: ViewDistance25mainHand?: MainHands26difficulty?: number27chatLengthLimit?: number28physicsEnabled?: boolean29/** @default 4 */30maxCatchupTicks?: number31client?: Client32brand?: string33defaultChatPatterns?: boolean34respawn?: boolean35}3637export type ChatLevel = 'enabled' | 'commandsOnly' | 'disabled'38export type ViewDistance = 'far' | 'normal' | 'short' | 'tiny' | number39export type MainHands = 'left' | 'right'4041export interface PluginOptions {42[plugin: string]: boolean | Plugin43}4445export type Plugin = (bot: Bot, options: BotOptions) => void4647export interface BotEvents {48chat: (49username: string,50message: string,51translate: string | null,52jsonMsg: ChatMessage,53matches: string[] | null54) => Promise<void> | void55whisper: (56username: string,57message: string,58translate: string | null,59jsonMsg: ChatMessage,60matches: string[] | null61) => Promise<void> | void62actionBar: (jsonMsg: ChatMessage) => Promise<void> | void63error: (err: Error) => Promise<void> | void64message: (jsonMsg: ChatMessage, position: string) => Promise<void> | void65messagestr: (message: string, position: string, jsonMsg: ChatMessage) => Promise<void> | void66unmatchedMessage: (stringMsg: string, jsonMsg: ChatMessage) => Promise<void> | void67inject_allowed: () => Promise<void> | void68login: () => Promise<void> | void69/** When `respawn` option is disabled, you can call this method manually to respawn. */70spawn: () => Promise<void> | void71respawn: () => Promise<void> | void72game: () => Promise<void> | void73title: (text: string, type: "subtitle" | "title") => Promise<void> | void74rain: () => Promise<void> | void75time: () => Promise<void> | void76kicked: (reason: string, loggedIn: boolean) => Promise<void> | void77end: (reason: string) => Promise<void> | void78spawnReset: () => Promise<void> | void79death: () => Promise<void> | void80health: () => Promise<void> | void81breath: () => Promise<void> | void82entitySwingArm: (entity: Entity) => Promise<void> | void83entityHurt: (entity: Entity, source: Entity) => Promise<void> | void84entityDead: (entity: Entity) => Promise<void> | void85entityTaming: (entity: Entity) => Promise<void> | void86entityTamed: (entity: Entity) => Promise<void> | void87entityShakingOffWater: (entity: Entity) => Promise<void> | void88entityEatingGrass: (entity: Entity) => Promise<void> | void89entityHandSwap: (entity: Entity) => Promise<void> | void90entityWake: (entity: Entity) => Promise<void> | void91entityEat: (entity: Entity) => Promise<void> | void92entityCriticalEffect: (entity: Entity) => Promise<void> | void93entityMagicCriticalEffect: (entity: Entity) => Promise<void> | void94entityCrouch: (entity: Entity) => Promise<void> | void95entityUncrouch: (entity: Entity) => Promise<void> | void96entityEquip: (entity: Entity) => Promise<void> | void97entitySleep: (entity: Entity) => Promise<void> | void98entitySpawn: (entity: Entity) => Promise<void> | void99entityElytraFlew: (entity: Entity) => Promise<void> | void100usedFirework: () => Promise<void> | void101itemDrop: (entity: Entity) => Promise<void> | void102playerCollect: (collector: Entity, collected: Entity) => Promise<void> | void103entityAttributes: (entity: Entity) => Promise<void> | void104entityGone: (entity: Entity) => Promise<void> | void105entityMoved: (entity: Entity) => Promise<void> | void106entityDetach: (entity: Entity, vehicle: Entity) => Promise<void> | void107entityAttach: (entity: Entity, vehicle: Entity) => Promise<void> | void108entityUpdate: (entity: Entity) => Promise<void> | void109entityEffect: (entity: Entity, effect: Effect) => Promise<void> | void110entityEffectEnd: (entity: Entity, effect: Effect) => Promise<void> | void111playerJoined: (player: Player) => Promise<void> | void112playerUpdated: (player: Player) => Promise<void> | void113playerLeft: (entity: Player) => Promise<void> | void114blockUpdate: (oldBlock: Block | null, newBlock: Block) => Promise<void> | void115'blockUpdate:(x, y, z)': (oldBlock: Block | null, newBlock: Block | null) => Promise<void> | void116chunkColumnLoad: (entity: Vec3) => Promise<void> | void117chunkColumnUnload: (entity: Vec3) => Promise<void> | void118soundEffectHeard: (119soundName: string,120position: Vec3,121volume: number,122pitch: number123) => Promise<void> | void124hardcodedSoundEffectHeard: (125soundId: number,126soundCategory: number,127position: Vec3,128volume: number,129pitch: number130) => Promise<void> | void131noteHeard: (block: Block, instrument: Instrument, pitch: number) => Promise<void> | void132pistonMove: (block: Block, isPulling: number, direction: number) => Promise<void> | void133chestLidMove: (block: Block, isOpen: number, block2: Block | null) => Promise<void> | void134blockBreakProgressObserved: (block: Block, destroyStage: number) => Promise<void> | void135blockBreakProgressEnd: (block: Block) => Promise<void> | void136diggingCompleted: (block: Block) => Promise<void> | void137diggingAborted: (block: Block) => Promise<void> | void138move: (position: Vec3) => Promise<void> | void139forcedMove: () => Promise<void> | void140mount: () => Promise<void> | void141dismount: (vehicle: Entity) => Promise<void> | void142windowOpen: (window: Window) => Promise<void> | void143windowClose: (window: Window) => Promise<void> | void144sleep: () => Promise<void> | void145wake: () => Promise<void> | void146experience: () => Promise<void> | void147physicsTick: () => Promise<void> | void148physicTick: () => Promise<void> | void149scoreboardCreated: (scoreboard: ScoreBoard) => Promise<void> | void150scoreboardDeleted: (scoreboard: ScoreBoard) => Promise<void> | void151scoreboardTitleChanged: (scoreboard: ScoreBoard) => Promise<void> | void152scoreUpdated: (scoreboard: ScoreBoard, item: number) => Promise<void> | void153scoreRemoved: (scoreboard: ScoreBoard, item: number) => Promise<void> | void154scoreboardPosition: (position: DisplaySlot, scoreboard: ScoreBoard) => Promise<void> | void155teamCreated: (team: Team) => Promise<void> | void156teamRemoved: (team: Team) => Promise<void> | void157teamUpdated: (team: Team) => Promise<void> | void158teamMemberAdded: (team: Team) => Promise<void> | void159teamMemberRemoved: (team: Team) => Promise<void> | void160bossBarCreated: (bossBar: BossBar) => Promise<void> | void161bossBarDeleted: (bossBar: BossBar) => Promise<void> | void162bossBarUpdated: (bossBar: BossBar) => Promise<void> | void163resourcePack: (url: string, hash?: string, uuid?: string) => Promise<void> | void164particle: (particle: Particle) => Promise<void> | void165}166167export interface CommandBlockOptions {168mode: number,169trackOutput: boolean,170conditional: boolean,171alwaysActive: boolean172}173174export interface Bot extends TypedEmitter<BotEvents> {175username: string176protocolVersion: string177majorVersion: string178version: string179entity: Entity180entities: { [id: string]: Entity }181fireworkRocketDuration: number182spawnPoint: Vec3183game: GameState184player: Player185players: { [username: string]: Player }186isRaining: boolean187thunderState: number188chatPatterns: ChatPattern[]189settings: GameSettings190experience: Experience191health: number192food: number193foodSaturation: number194oxygenLevel: number195physics: PhysicsOptions196physicsEnabled: boolean197time: Time198quickBarSlot: number199inventory: Window<StorageEvents>200targetDigBlock: Block201isSleeping: boolean202scoreboards: { [name: string]: ScoreBoard }203scoreboard: { [slot in DisplaySlot]: ScoreBoard }204teams: { [name: string]: Team }205teamMap: { [name: string]: Team }206controlState: ControlStateStatus207creative: creativeMethods208world: world.WorldSync209_client: Client210heldItem: Item | null211usingHeldItem: boolean212currentWindow: Window | null213simpleClick: simpleClick214tablist: Tablist215registry: Registry216217connect: (options: BotOptions) => void218219supportFeature: IndexedData['supportFeature']220221end: (reason?: string) => void222223blockAt: (point: Vec3, extraInfos?: boolean) => Block | null224225blockInSight: (maxSteps: number, vectorLength: number) => Block | null226227blockAtCursor: (maxDistance?: number, matcher?: Function) => Block | null228blockAtEntityCursor: (entity?: Entity, maxDistance?: number, matcher?: Function) => Block | null229230canSeeBlock: (block: Block) => boolean231232findBlock: (options: FindBlockOptions) => Block | null233234findBlocks: (options: FindBlockOptions) => Vec3[]235236canDigBlock: (block: Block) => boolean237238recipesFor: (239itemType: number,240metadata: number | null,241minResultCount: number | null,242craftingTable: Block | boolean | null243) => Recipe[]244245recipesAll: (246itemType: number,247metadata: number | null,248craftingTable: Block | boolean | null249) => Recipe[]250251quit: (reason?: string) => void252253tabComplete: (254str: string,255assumeCommand?: boolean,256sendBlockInSight?: boolean,257timeout?: number258) => Promise<string[]>259260chat: (message: string) => void261262whisper: (username: string, message: string) => void263264chatAddPattern: (pattern: RegExp, chatType: string, description?: string) => number265266setSettings: (options: Partial<GameSettings>) => void267268loadPlugin: (plugin: Plugin) => void269270loadPlugins: (plugins: Plugin[]) => void271272hasPlugin: (plugin: Plugin) => boolean273274sleep: (bedBlock: Block) => Promise<void>275276isABed: (bedBlock: Block) => boolean277278wake: () => Promise<void>279280elytraFly: () => Promise<void>281282setControlState: (control: ControlState, state: boolean) => void283284getControlState: (control: ControlState) => boolean285286clearControlStates: () => void287288getExplosionDamages: (targetEntity: Entity, position: Vec3, radius: number, rawDamages?: boolean) => number | null289290lookAt: (point: Vec3, force?: boolean) => Promise<void>291292look: (293yaw: number,294pitch: number,295force?: boolean296) => Promise<void>297298updateSign: (block: Block, text: string, back?: boolean) => void299300equip: (301item: Item | number,302destination: EquipmentDestination | null303) => Promise<void>304305unequip: (306destination: EquipmentDestination | null307) => Promise<void>308309tossStack: (item: Item) => Promise<void>310311toss: (312itemType: number,313metadata: number | null,314count: number | null315) => Promise<void>316317dig: ((block: Block, forceLook?: boolean | 'ignore') => Promise<void>) & ((block: Block, forceLook: boolean | 'ignore', digFace: 'auto' | Vec3 | 'raycast') => Promise<void>)318319stopDigging: () => void320321digTime: (block: Block) => number322323placeBlock: (referenceBlock: Block, faceVector: Vec3) => Promise<void>324325placeEntity: (referenceBlock: Block, faceVector: Vec3) => Promise<Entity>326327activateBlock: (block: Block, direction?: Vec3, cursorPos?: Vec3) => Promise<void>328329activateEntity: (entity: Entity) => Promise<void>330331activateEntityAt: (entity: Entity, position: Vec3) => Promise<void>332333consume: () => Promise<void>334335fish: () => Promise<void>336337activateItem: (offhand?: boolean) => void338339deactivateItem: () => void340341useOn: (targetEntity: Entity) => void342343attack: (entity: Entity) => void344345swingArm: (hand: 'left' | 'right' | undefined, showHand?: boolean) => void346347mount: (entity: Entity) => void348349dismount: () => void350351moveVehicle: (left: number, forward: number) => void352353setQuickBarSlot: (slot: number) => void354355craft: (356recipe: Recipe,357count?: number,358craftingTable?: Block359) => Promise<void>360361writeBook: (362slot: number,363pages: string[]364) => Promise<void>365366openContainer: (chest: Block | Entity, direction?: Vec3, cursorPos?: Vec3) => Promise<Chest | Dispenser>367368openChest: (chest: Block | Entity, direction?: number, cursorPos?: Vec3) => Promise<Chest>369370openFurnace: (furnace: Block) => Promise<Furnace>371372openDispenser: (dispenser: Block) => Promise<Dispenser>373374openEnchantmentTable: (enchantmentTable: Block) => Promise<EnchantmentTable>375376openAnvil: (anvil: Block) => Promise<Anvil>377378openVillager: (379villager: Entity380) => Promise<Villager>381382trade: (383villagerInstance: Villager,384tradeIndex: string | number,385times?: number386) => Promise<void>387388389390setCommandBlock: (pos: Vec3, command: string, options: CommandBlockOptions) => void391392clickWindow: (393slot: number,394mouseButton: number,395mode: number396) => Promise<void>397398putSelectedItemRange: (399start: number,400end: number,401window: Window,402slot: any403) => Promise<void>404405putAway: (slot: number) => Promise<void>406407closeWindow: (window: Window) => void408409transfer: (options: TransferOptions) => Promise<void>410411openBlock: (block: Block, direction?: Vec3, cursorPos?: Vec3) => Promise<Window>412413openEntity: (block: Entity, Class: new () => EventEmitter) => Promise<Window>414415moveSlotItem: (416sourceSlot: number,417destSlot: number418) => Promise<void>419420updateHeldItem: () => void421422getEquipmentDestSlot: (destination: string) => number423424waitForChunksToLoad: () => Promise<void>425426entityAtCursor: (maxDistance?: number) => Entity | null427nearestEntity: (filter?: (entity: Entity) => boolean) => Entity | null428429waitForTicks: (ticks: number) => Promise<void>430431addChatPattern: (name: string, pattern: RegExp, options?: chatPatternOptions) => number432433addChatPatternSet: (name: string, patterns: RegExp[], options?: chatPatternOptions) => number434435removeChatPattern: (name: string | number) => void436437awaitMessage: (...args: string[] | RegExp[]) => Promise<string>438439acceptResourcePack: () => void440441denyResourcePack: () => void442443respawn: () => void444}445446export interface simpleClick {447leftMouse: (slot: number) => Promise<void>448rightMouse: (slot: number) => Promise<void>449}450451export interface Tablist {452header: ChatMessage453footer: ChatMessage454}455456export interface chatPatternOptions {457repeat: boolean458parse: boolean459}460461export interface GameState {462levelType: LevelType463gameMode: GameMode464hardcore: boolean465dimension: Dimension466difficulty: Difficulty467maxPlayers: number468serverBrand: string469}470471export type LevelType =472| 'default'473| 'flat'474| 'largeBiomes'475| 'amplified'476| 'customized'477| 'buffet'478| 'default_1_1'479export type GameMode = 'survival' | 'creative' | 'adventure' | 'spectator'480export type Dimension = 'the_nether' | 'overworld' | 'the_end'481export type Difficulty = 'peaceful' | 'easy' | 'normal' | 'hard'482483export interface Player {484uuid: string485username: string486displayName: ChatMessage487gamemode: number488ping: number489entity: Entity490skinData: SkinData | undefined491profileKeys?: {492publicKey: Buffer493signature: Buffer494}495}496497export interface SkinData {498url: string499model: string | null500}501502export interface ChatPattern {503pattern: RegExp504type: string505description: string506}507508export interface SkinParts {509showCape: boolean510showJacket: boolean511showLeftSleeve: boolean512showRightSleeve: boolean513showLeftPants: boolean514showRightPants: boolean515showHat: boolean516}517518export interface GameSettings {519chat: ChatLevel520colorsEnabled: boolean521viewDistance: ViewDistance522difficulty: number523skinParts: SkinParts524mainHand: MainHands525}526527export interface Experience {528level: number529points: number530progress: number531}532533export interface PhysicsOptions {534maxGroundSpeed: number535terminalVelocity: number536walkingAcceleration: number537gravity: number538groundFriction: number539playerApothem: number540playerHeight: number541jumpSpeed: number542yawSpeed: number543pitchSpeed: number544sprintSpeed: number545maxGroundSpeedSoulSand: number546maxGroundSpeedWater: number547}548549export interface Time {550doDaylightCycle: boolean551bigTime: BigInt552time: number553timeOfDay: number554day: number555isDay: boolean556moonPhase: number557bigAge: BigInt558age: number559}560561export interface ControlStateStatus {562forward: boolean563back: boolean564left: boolean565right: boolean566jump: boolean567sprint: boolean568sneak: boolean569}570571export type ControlState =572| 'forward'573| 'back'574| 'left'575| 'right'576| 'jump'577| 'sprint'578| 'sneak'579580export interface Effect {581id: number582amplifier: number583duration: number584}585586export interface Instrument {587id: number588name: 'harp' | 'doubleBass' | 'snareDrum' | 'sticks' | 'bassDrum'589}590591export interface FindBlockOptions {592point?: Vec3593matching: number | number[] | ((block: Block) => boolean)594maxDistance?: number595count?: number596useExtraInfo?: boolean | ((block: Block) => boolean)597}598599export type EquipmentDestination = 'hand' | 'head' | 'torso' | 'legs' | 'feet' | 'off-hand'600601export interface TransferOptions {602window: Window603itemType: number604metadata: number | null605count?: number,606sourceStart: number607sourceEnd: number608destStart: number609destEnd: number610}611612export interface creativeMethods {613setInventorySlot: (614slot: number,615item: Item | null616) => Promise<void>617618clearSlot: (slot: number) => Promise<void>619620clearInventory: () => Promise<void>621622flyTo: (destination: Vec3) => Promise<void>623624startFlying: () => void625626stopFlying: () => void627}628629export class Location {630floored: Vec3631blockPoint: Vec3632chunkCorner: Vec3633blockIndex: number634biomeBlockIndex: number635chunkYIndex: number636637constructor (absoluteVector: Vec3);638}639640export class Painting {641id: number642position: Vec3643name: string644direction: Vec3645646constructor (id: number, position: Vec3, name: string, direction: Vec3);647}648649interface StorageEvents {650open: () => void651close: () => void652updateSlot: (slot: number, oldItem: Item | null, newItem: Item | null) => void653}654655interface FurnaceEvents extends StorageEvents {656update: () => void657}658659interface ConditionalStorageEvents extends StorageEvents {660ready: () => void661}662663export class Chest extends Window<StorageEvents> {664constructor ();665666close (): void;667668deposit (669itemType: number,670metadata: number | null,671count: number | null672): Promise<void>;673674withdraw (675itemType: number,676metadata: number | null,677count: number | null678): Promise<void>;679}680681export class Furnace extends Window<FurnaceEvents> {682fuel: number683progress: number684685constructor ();686687close (): void;688689takeInput (): Promise<Item>;690691takeFuel (): Promise<Item>;692693takeOutput (): Promise<Item>;694695putInput (696itemType: number,697metadata: number | null,698count: number699): Promise<void>;700701putFuel (702itemType: number,703metadata: number | null,704count: number705): Promise<void>;706707inputItem (): Item;708709fuelItem (): Item;710711outputItem (): Item;712}713714export class Dispenser extends Window<StorageEvents> {715constructor ();716717close (): void;718719deposit (720itemType: number,721metadata: number | null,722count: number | null723): Promise<void>;724725withdraw (726itemType: number,727metadata: number | null,728count: number | null729): Promise<void>;730}731732export class EnchantmentTable extends Window<ConditionalStorageEvents> {733enchantments: Enchantment[]734735constructor ();736737close (): void;738739targetItem (): Item;740741enchant (742choice: string | number743): Promise<Item>;744745takeTargetItem (): Promise<Item>;746747putTargetItem (item: Item): Promise<Item>;748749putLapis (item: Item): Promise<Item>;750}751752export class Anvil {753combine (itemOne: Item, itemTwo: Item, name?: string): Promise<void>754rename (item: Item, name?: string): Promise<void>755}756757export interface Enchantment {758level: number759expected: { enchant: number, level: number }760}761762export class Villager extends Window<ConditionalStorageEvents> {763trades: VillagerTrade[]764765constructor ();766767close (): void;768}769770export interface VillagerTrade {771inputItem1: Item772outputItem: Item773inputItem2: Item | null774hasItem2: boolean775tradeDisabled: boolean776nbTradeUses: number777maximumNbTradeUses: number778xp?: number779specialPrice?: number780priceMultiplier?: number781demand?: number782realPrice?: number783}784785export class ScoreBoard {786name: string787title: string788itemsMap: { [name: string]: ScoreBoardItem }789items: ScoreBoardItem[]790791constructor (packet: object);792793setTitle (title: string): void;794795add(name: string, value: number): ScoreBoardItem;796797remove (name: string): ScoreBoardItem;798}799800export interface ScoreBoardItem {801name: string802displayName: ChatMessage803value: number804}805806export class Team {807team: string808name: ChatMessage809friendlyFire: number810nameTagVisibility: string811collisionRule: string812color: string813prefix: ChatMessage814suffix: ChatMessage815memberMap: { [name: string]: '' }816members: string[]817818constructor(team: string, name: string, friendlyFire: boolean, nameTagVisibility: string, collisionRule: string, formatting: number, prefix: string, suffix: string);819820parseMessage (value: string): ChatMessage;821822add (name: string, value: number): void;823824remove (name: string): void;825826update (name: string, friendlyFire: boolean, nameTagVisibility: string, collisionRule: string, formatting: number, prefix: string, suffix: string): void;827828displayName (member: string): ChatMessage;829}830831export type DisplaySlot =832| 'list'833| 'sidebar'834| 'belowName'835| 3836| 4837| 5838| 6839| 7840| 8841| 9842| 10843| 11844| 12845| 13846| 14847| 15848| 16849| 17850| 18851852export class BossBar {853entityUUID: string854title: ChatMessage855health: number856dividers: number857color: 'pink' | 'blue' | 'red' | 'green' | 'yellow' | 'purple' | 'white'858shouldDarkenSky: boolean859isDragonBar: boolean860createFog: boolean861shouldCreateFog: boolean862863constructor (864uuid: string,865title: string,866health: number,867dividers: number,868color: number,869flags: number870);871}872873export class Particle {874id: number875position: Vec3876offset: Vec3877count: number878movementSpeed: number879longDistanceRender: boolean880static fromNetwork(packet: Object): Particle881882constructor(883id: number,884position: Vec3,885offset: Vec3,886count?: number,887movementSpeed?: number,888longDistanceRender?: boolean889);890}891892export let testedVersions: string[]893export let latestSupportedVersion: string894export let oldestSupportedVersion: string895896export function supportFeature (feature: string, version: string): boolean897898899