2039 lines
75 KiB
Markdown
2039 lines
75 KiB
Markdown
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
|
**Tabela de conteúdos** *gerada com [DocToc](https://github.com/thlorenz/doctoc)*
|
|
|
|
- [API](#api)
|
|
- [Enums](#enums)
|
|
- [minecraft-data](#minecraft-data)
|
|
- [mcdata.blocks](#mcdatablocks)
|
|
- [mcdata.items](#mcdataitems)
|
|
- [mcdata.materials](#mcdatamaterials)
|
|
- [mcdata.recipes](#mcdatarecipes)
|
|
- [mcdata.instruments](#mcdatainstruments)
|
|
- [mcdata.biomes](#mcdatabiomes)
|
|
- [mcdata.entities](#mcdataentities)
|
|
- [Clases](#clases)
|
|
- [vec3](#vec3)
|
|
- [mineflayer.Location](#mineflayerlocation)
|
|
- [Entity](#entity)
|
|
- [Block](#block)
|
|
- [Biome](#biome)
|
|
- [Item](#item)
|
|
- [windows.Window (base class)](#windowswindow-base-class)
|
|
- [window.deposit(itemType, metadata, count, [callback])](#windowdeposititemtype-metadata-count-callback)
|
|
- [window.withdraw(itemType, metadata, count, [callback])](#windowwithdrawitemtype-metadata-count-callback)
|
|
- [window.close()](#windowclose)
|
|
- [Recipe](#recipe)
|
|
- [mineflayer.Container](#mineflayercontainer)
|
|
- [mineflayer.Furnace](#mineflayerfurnace)
|
|
- [furnace "update"](#furnace-update)
|
|
- [furnace.takeInput([callback])](#furnacetakeinputcallback)
|
|
- [furnace.takeFuel([callback])](#furnacetakefuelcallback)
|
|
- [furnace.takeOutput([callback])](#furnacetakeoutputcallback)
|
|
- [furnace.putInput(itemType, metadata, count, [cb])](#furnaceputinputitemtype-metadata-count-cb)
|
|
- [furnace.putFuel(itemType, metadata, count, [cb])](#furnaceputfuelitemtype-metadata-count-cb)
|
|
- [furnace.inputItem()](#furnaceinputitem)
|
|
- [furnace.fuelItem()](#furnacefuelitem)
|
|
- [furnace.outputItem()](#furnaceoutputitem)
|
|
- [furnace.fuel](#furnacefuel)
|
|
- [furnace.progress](#furnaceprogress)
|
|
- [mineflayer.EnchantmentTable](#mineflayerenchantmenttable)
|
|
- [enchantmentTable "ready"](#enchantmenttable-ready)
|
|
- [enchantmentTable.targetItem()](#enchantmenttabletargetitem)
|
|
- [enchantmentTable.xpseed](#enchantmenttablexpseed)
|
|
- [enchantmentTable.enchantments](#enchantmenttableenchantments)
|
|
- [enchantmentTable.enchant(choice, [callback])](#enchantmenttableenchantchoice-callback)
|
|
- [enchantmentTable.takeTargetItem([callback])](#enchantmenttabletaketargetitemcallback)
|
|
- [enchantmentTable.putTargetItem(item, [callback])](#enchantmenttableputtargetitemitem-callback)
|
|
- [enchantmentTable.putLapis(item, [callback])](#enchantmenttableputlapisitem-callback)
|
|
- [mineflayer.anvil](#mineflayeranvil)
|
|
- [anvil.combine(itemOne, itemTwo[, name, callback])](#anvilcombineitemone-itemtwo-name-callback)
|
|
- [anvil.combine(item[, name, callback])](#anvilcombineitem-name-callback)
|
|
- [villager "ready"](#villager-ready)
|
|
- [villager.trades](#villagertrades)
|
|
- [villager.trade(tradeIndex, [times], [cb])](#villagertradetradeindex-times-cb)
|
|
- [mineflayer.ScoreBoard](#mineflayerscoreboard)
|
|
- [ScoreBoard.name](#scoreboardname)
|
|
- [ScoreBoard.title](#scoreboardtitle)
|
|
- [ScoreBoard.itemsMap](#scoreboarditemsmap)
|
|
- [ScoreBoard.items](#scoreboarditems)
|
|
- [mineflayer.BossBar](#mineflayerbossbar)
|
|
- [BossBar.title](#bossbartitle)
|
|
- [BossBar.health](#bossbarhealth)
|
|
- [BossBar.dividers](#bossbardividers)
|
|
- [BossBar.entityUUID](#bossbarentityuuid)
|
|
- [BossBar.shouldDarkenSky](#bossbarshoulddarkensky)
|
|
- [BossBar.isDragonBar](#bossbarisdragonbar)
|
|
- [BossBar.createFog](#bossbarcreatefog)
|
|
- [BossBar.color](#bossbarcolor)
|
|
- [Bot](#bot)
|
|
- [mineflayer.createBot(options)](#mineflayercreatebotoptions)
|
|
- [Properties](#properties)
|
|
- [bot.world](#botworld)
|
|
- [world "blockUpdate" (oldBlock, newBlock)](#world-blockupdate-oldblock-newblock)
|
|
- [world "blockUpdate:(x, y, z)" (oldBlock, newBlock)](#world-blockupdatex-y-z-oldblock-newblock)
|
|
- [bot.entity](#botentity)
|
|
- [bot.entities](#botentities)
|
|
- [bot.username](#botusername)
|
|
- [bot.spawnPoint](#botspawnpoint)
|
|
- [bot.heldItem](#bothelditem)
|
|
- [bot.game.levelType](#botgameleveltype)
|
|
- [bot.game.dimension](#botgamedimension)
|
|
- [bot.game.difficulty](#botgamedifficulty)
|
|
- [bot.game.gameMode](#botgamegamemode)
|
|
- [bot.game.hardcore](#botgamehardcore)
|
|
- [bot.game.maxPlayers](#botgamemaxplayers)
|
|
- [bot.game.serverBrand](#botgameserverbrand)
|
|
- [bot.physicsEnabled](#botphysicsenabled)
|
|
- [bot.player](#botplayer)
|
|
- [bot.players](#botplayers)
|
|
- [bot.isRaining](#botisraining)
|
|
- [bot.rainState](#botrainstate)
|
|
- [bot.thunderState](#botthunderstate)
|
|
- [bot.chatPatterns](#botchatpatterns)
|
|
- [bot.settings.chat](#botsettingschat)
|
|
- [bot.settings.colorsEnabled](#botsettingscolorsenabled)
|
|
- [bot.settings.viewDistance](#botsettingsviewdistance)
|
|
- [bot.settings.difficulty](#botsettingsdifficulty)
|
|
- [bot.settings.skinParts](#botsettingsskinparts)
|
|
- [bot.settings.skinParts.showCape](#botsettingsskinpartsshowcape)
|
|
- [bot.settings.skinParts.showJacket](#botsettingsskinpartsshowjacket)
|
|
- [bot.settings.skinParts.showLeftSleeve](#botsettingsskinpartsshowleftsleeve)
|
|
- [bot.settings.skinParts.showRightSleeve](#botsettingsskinpartsshowrightsleeve)
|
|
- [bot.settings.skinParts.showLeftPants](#botsettingsskinpartsshowleftpants)
|
|
- [bot.settings.skinParts.showRightPants](#botsettingsskinpartsshowrightpants)
|
|
- [bot.settings.skinParts.showHat](#botsettingsskinpartsshowhat)
|
|
- [bot.experience.level](#botexperiencelevel)
|
|
- [bot.experience.points](#botexperiencepoints)
|
|
- [bot.experience.progress](#botexperienceprogress)
|
|
- [bot.health](#bothealth)
|
|
- [bot.food](#botfood)
|
|
- [bot.foodSaturation](#botfoodsaturation)
|
|
- [bot.oxygenLevel](#botoxygenlevel)
|
|
- [bot.physics](#botphysics)
|
|
- [bot.simpleClick.leftMouse (slot)](#botsimpleclickleftmouse-slot)
|
|
- [bot.simpleClick.rightMouse (slot)](#botsimpleclickrightmouse-slot)
|
|
- [bot.time.doDaylightCycle](#bottimedodaylightcycle)
|
|
- [bot.time.bigTime](#bottimebigtime)
|
|
- [bot.time.time](#bottimetime)
|
|
- [bot.time.timeOfDay](#bottimetimeofday)
|
|
- [bot.time.day](#bottimeday)
|
|
- [bot.time.isDay](#bottimeisday)
|
|
- [bot.time.moonPhase](#bottimemoonphase)
|
|
- [bot.time.bigAge](#bottimebigage)
|
|
- [bot.time.age](#bottimeage)
|
|
- [bot.quickBarSlot](#botquickbarslot)
|
|
- [bot.inventory](#botinventory)
|
|
- [bot.targetDigBlock](#bottargetdigblock)
|
|
- [bot.isSleeping](#botissleeping)
|
|
- [bot.scoreboards](#botscoreboards)
|
|
- [bot.scoreboard](#botscoreboard)
|
|
- [bot.controlState](#botcontrolstate)
|
|
- [Events](#events)
|
|
- ["chat" (username, message, translate, jsonMsg, matches)](#chat-username-message-translate-jsonmsg-matches)
|
|
- ["whisper" (username, message, translate, jsonMsg, matches)](#whisper-username-message-translate-jsonmsg-matches)
|
|
- ["actionBar" (jsonMsg)](#actionbar-jsonmsg)
|
|
- ["message" (jsonMsg, position)](#message-jsonmsg-position)
|
|
- ["messagestr" (message, messagePosition, jsonMsg)](#messagestr-message-messageposition-jsonmsg)
|
|
- ["inject_allowed"](#inject_allowed)
|
|
- ["login"](#login)
|
|
- ["spawn"](#spawn)
|
|
- ["respawn"](#respawn)
|
|
- ["game"](#game)
|
|
- ["resourcePack" (url, hash)](#resourcepack-url-hash)
|
|
- ["title" (title, type)](#title-title-type)
|
|
- ["rain"](#rain)
|
|
- ["weatherUpdate"](#weatherupdate)
|
|
- ["time"](#time)
|
|
- ["kicked" (reason, loggedIn)](#kicked-reason-loggedin)
|
|
- ["end"](#end)
|
|
- ["error" (err)](#error-err)
|
|
- ["spawnReset"](#spawnreset)
|
|
- ["death"](#death)
|
|
- ["health"](#health)
|
|
- ["breath"](#breath)
|
|
- ["entitySwingArm" (entity)](#entityswingarm-entity)
|
|
- ["entityHurt" (entity)](#entityhurt-entity)
|
|
- ["entityDead" (entity)](#entitydead-entity)
|
|
- ["entityTaming" (entity)](#entitytaming-entity)
|
|
- ["entityTamed" (entity)](#entitytamed-entity)
|
|
- ["entityShakingOffWater" (entity)](#entityshakingoffwater-entity)
|
|
- ["entityEatingGrass" (entity)](#entityeatinggrass-entity)
|
|
- ["entityWake" (entity)](#entitywake-entity)
|
|
- ["entityEat" (entity)](#entityeat-entity)
|
|
- ["entityCriticalEffect" (entity)](#entitycriticaleffect-entity)
|
|
- ["entityMagicCriticalEffect" (entity)](#entitymagiccriticaleffect-entity)
|
|
- ["entityCrouch" (entity)](#entitycrouch-entity)
|
|
- ["entityUncrouch" (entity)](#entityuncrouch-entity)
|
|
- ["entityEquip" (entity)](#entityequip-entity)
|
|
- ["entitySleep" (entity)](#entitysleep-entity)
|
|
- ["entitySpawn" (entity)](#entityspawn-entity)
|
|
- ["itemDrop" (entity)](#itemdrop-entity)
|
|
- ["playerCollect" (collector, collected)](#playercollect-collector-collected)
|
|
- ["entityGone" (entity)](#entitygone-entity)
|
|
- ["entityMoved" (entity)](#entitymoved-entity)
|
|
- ["entityDetach" (entity, vehicle)](#entitydetach-entity-vehicle)
|
|
- ["entityAttach" (entity, vehicle)](#entityattach-entity-vehicle)
|
|
- ["entityUpdate" (entity)](#entityupdate-entity)
|
|
- ["entityEffect" (entity, effect)](#entityeffect-entity-effect)
|
|
- ["entityEffectEnd" (entity, effect)](#entityeffectend-entity-effect)
|
|
- ["playerJoined" (player)](#playerjoined-player)
|
|
- ["playerUpdated" (player)](#playerupdated-player)
|
|
- ["playerLeft" (player)](#playerleft-player)
|
|
- ["blockUpdate" (oldBlock, newBlock)](#blockupdate-oldblock-newblock)
|
|
- ["blockUpdate:(x, y, z)" (oldBlock, newBlock)](#blockupdatex-y-z-oldblock-newblock)
|
|
- ["blockPlaced" (oldBlock, newBlock)](#blockplaced-oldblock-newblock)
|
|
- ["chunkColumnLoad" (point)](#chunkcolumnload-point)
|
|
- ["chunkColumnUnload" (point)](#chunkcolumnunload-point)
|
|
- ["soundEffectHeard" (soundName, position, volume, pitch)](#soundeffectheard-soundname-position-volume-pitch)
|
|
- ["hardcodedSoundEffectHeard" (soundId, soundCategory, position, volume, pitch)](#hardcodedsoundeffectheard-soundid-soundcategory-position-volume-pitch)
|
|
- ["noteHeard" (block, instrument, pitch)](#noteheard-block-instrument-pitch)
|
|
- ["pistonMove" (block, isPulling, direction)](#pistonmove-block-ispulling-direction)
|
|
- ["chestLidMove" (block, isOpen, block2)](#chestlidmove-block-isopen-block2)
|
|
- ["blockBreakProgressObserved" (block, destroyStage)](#blockbreakprogressobserved-block-destroystage)
|
|
- ["blockBreakProgressEnd" (block)](#blockbreakprogressend-block)
|
|
- ["diggingCompleted" (block)](#diggingcompleted-block)
|
|
- ["diggingAborted" (block)](#diggingaborted-block)
|
|
- ["move"](#move)
|
|
- ["forcedMove"](#forcedmove)
|
|
- ["mount"](#mount)
|
|
- ["dismount" (vehicle)](#dismount-vehicle)
|
|
- ["windowOpen" (window)](#windowopen-window)
|
|
- ["windowClose" (window)](#windowclose-window)
|
|
- ["sleep"](#sleep)
|
|
- ["wake"](#wake)
|
|
- ["experience"](#experience)
|
|
- ["scoreboardCreated" (scoreboard)](#scoreboardcreated-scoreboard)
|
|
- ["scoreboardDeleted" (scoreboard)](#scoreboarddeleted-scoreboard)
|
|
- ["scoreboardTitleChanged" (scoreboard)](#scoreboardtitlechanged-scoreboard)
|
|
- ["scoreUpdated" (scoreboard, item)](#scoreupdated-scoreboard-item)
|
|
- ["scoreRemoved" (scoreboard, item)](#scoreremoved-scoreboard-item)
|
|
- ["scoreboardPosition" (position, scoreboard)](#scoreboardposition-position-scoreboard)
|
|
- ["bossBarCreated" (bossBar)](#bossbarcreated-bossbar)
|
|
- ["bossBarDeleted" (bossBar)](#bossbardeleted-bossbar)
|
|
- ["bossBarUpdated" (bossBar)](#bossbarupdated-bossbar)
|
|
- ["heldItemChanged" (heldItem)](#helditemchanged-helditem)
|
|
- ["physicsTick" ()](#physicstick-)
|
|
- ["chat:name" (matches)](#chatname-matches)
|
|
- [Functions](#functions)
|
|
- [bot.blockAt(point, extraInfos=true)](#botblockatpoint-extrainfostrue)
|
|
- [bot.waitForChunksToLoad(cb)](#botwaitforchunkstoloadcb)
|
|
- [bot.blockInSight(maxSteps, vectorLength)](#botblockinsightmaxsteps-vectorlength)
|
|
- [bot.blockAtCursor(maxDistance=256)](#botblockatcursormaxdistance256)
|
|
- [bot.canSeeBlock(block)](#botcanseeblockblock)
|
|
- [bot.findBlocks(options)](#botfindblocksoptions)
|
|
- [bot.findBlock(options)](#botfindblockoptions)
|
|
- [bot.canDigBlock(block)](#botcandigblockblock)
|
|
- [bot.recipesFor(itemType, metadata, minResultCount, craftingTable)](#botrecipesforitemtype-metadata-minresultcount-craftingtable)
|
|
- [bot.recipesAll(itemType, metadata, craftingTable)](#botrecipesallitemtype-metadata-craftingtable)
|
|
- [bot.nearestEntity(match = (entity) => { return true })](#botnearestentitymatch--entity---return-true-)
|
|
- [Methods](#methods)
|
|
- [bot.end()](#botend)
|
|
- [bot.quit(reason)](#botquitreason)
|
|
- [bot.tabComplete(str, cb, [assumeCommand], [sendBlockInSight])](#bottabcompletestr-cb-assumecommand-sendblockinsight)
|
|
- [bot.chat(message)](#botchatmessage)
|
|
- [bot.whisper(username, message)](#botwhisperusername-message)
|
|
- [bot.chatAddPattern(pattern, chatType, description)](#botchataddpatternpattern-chattype-description)
|
|
- [bot.addChatPattern(name, pattern, chatPatternOptions)](#botaddchatpatternname-pattern-chatpatternoptions)
|
|
- [bot.addChatPatternSet(name, patterns, chatPatternOptions)](#botaddchatpatternsetname-patterns-chatpatternoptions)
|
|
- [bot.removeChatPattern(name)](#botremovechatpatternname)
|
|
- [bot.awaitMessage(...args)](#botawaitmessageargs)
|
|
- [bot.setSettings(options)](#botsetsettingsoptions)
|
|
- [bot.loadPlugin(plugin)](#botloadpluginplugin)
|
|
- [bot.loadPlugins(plugins)](#botloadpluginsplugins)
|
|
- [bot.hasPlugin(plugin)](#bothaspluginplugin)
|
|
- [bot.sleep(bedBlock, [cb])](#botsleepbedblock-cb)
|
|
- [bot.isABed(bedBlock)](#botisabedbedblock)
|
|
- [bot.wake([cb])](#botwakecb)
|
|
- [bot.setControlState(control, state)](#botsetcontrolstatecontrol-state)
|
|
- [bot.getControlState(control)](#botgetcontrolstatecontrol)
|
|
- [bot.clearControlStates()](#botclearcontrolstates)
|
|
- [bot.lookAt(point, [force], [callback])](#botlookatpoint-force-callback)
|
|
- [bot.look(yaw, pitch, [force], [callback])](#botlookyaw-pitch-force-callback)
|
|
- [bot.updateSign(block, text)](#botupdatesignblock-text)
|
|
- [bot.equip(item, destination, [callback])](#botequipitem-destination-callback)
|
|
- [bot.unequip(destination, [callback])](#botunequipdestination-callback)
|
|
- [bot.tossStack(item, [callback])](#bottossstackitem-callback)
|
|
- [bot.toss(itemType, metadata, count, [callback])](#bottossitemtype-metadata-count-callback)
|
|
- [bot.dig(block, [forceLook = true], [digFace], [callback])](#botdigblock-forcelook--true-digface-callback)
|
|
- [bot.stopDigging()](#botstopdigging)
|
|
- [bot.digTime(block)](#botdigtimeblock)
|
|
- [bot.acceptResourcePack()](#botacceptresourcepack)
|
|
- [bot.denyResourcePack()](#botdenyresourcepack)
|
|
- [bot.placeBlock(referenceBlock, faceVector, cb)](#botplaceblockreferenceblock-facevector-cb)
|
|
- [bot.placeEntity(referenceBlock, faceVector)](#botplaceentityreferenceblock-facevector)
|
|
- [bot.activateBlock(block, [callback])](#botactivateblockblock-callback)
|
|
- [bot.activateEntity(entity, [callback])](#botactivateentityentity-callback)
|
|
- [bot.activateEntityAt(entity, position, [callback])](#botactivateentityatentity-position-callback)
|
|
- [bot.consume(callback)](#botconsumecallback)
|
|
- [bot.fish(callback)](#botfishcallback)
|
|
- [bot.activateItem(offHand=false)](#botactivateitemoffhandfalse)
|
|
- [bot.deactivateItem()](#botdeactivateitem)
|
|
- [bot.useOn(targetEntity)](#botuseontargetentity)
|
|
- [bot.attack(entity)](#botattackentity)
|
|
- [bot.swingArm([hand], showHand)](#botswingarmhand-showhand)
|
|
- [bot.mount(entity)](#botmountentity)
|
|
- [bot.dismount()](#botdismount)
|
|
- [bot.moveVehicle(left,forward)](#botmovevehicleleftforward)
|
|
- [bot.setQuickBarSlot(slot)](#botsetquickbarslotslot)
|
|
- [bot.craft(recipe, count, craftingTable, [callback])](#botcraftrecipe-count-craftingtable-callback)
|
|
- [bot.writeBook(slot, pages, [callback])](#botwritebookslot-pages-callback)
|
|
- [bot.openContainer(containerBlock or containerEntity)](#botopencontainercontainerblock-or-containerentity)
|
|
- [bot.openChest(chestBlock or minecartchestEntity)](#botopenchestchestblock-or-minecartchestentity)
|
|
- [bot.openFurnace(furnaceBlock)](#botopenfurnacefurnaceblock)
|
|
- [bot.openDispenser(dispenserBlock)](#botopendispenserdispenserblock)
|
|
- [bot.openEnchantmentTable(enchantmentTableBlock)](#botopenenchantmenttableenchantmenttableblock)
|
|
- [bot.openAnvil(anvilBlock)](#botopenanvilanvilblock)
|
|
- [bot.openVillager(villagerEntity)](#botopenvillagervillagerentity)
|
|
- [bot.trade(villagerInstance, tradeIndex, [times], [cb])](#bottradevillagerinstance-tradeindex-times-cb)
|
|
- [bot.setCommandBlock(pos, command, [options])](#botsetcommandblockpos-command-options)
|
|
- [bot.supportFeature(name)](#botsupportfeaturename)
|
|
- [bot.waitForTicks(ticks)](#botwaitforticksticks)
|
|
- [Lower level inventory methods](#lower-level-inventory-methods)
|
|
- [bot.clickWindow(slot, mouseButton, mode, cb)](#botclickwindowslot-mousebutton-mode-cb)
|
|
- [bot.putSelectedItemRange(start, end, window, slot)](#botputselecteditemrangestart-end-window-slot)
|
|
- [bot.putAway(slot)](#botputawayslot)
|
|
- [bot.closeWindow(window)](#botclosewindowwindow)
|
|
- [bot.transfer(options, cb)](#bottransferoptions-cb)
|
|
- [bot.openBlock(block)](#botopenblockblock)
|
|
- [bot.openEntity(entity)](#botopenentityentity)
|
|
- [bot.moveSlotItem(sourceSlot, destSlot, cb)](#botmoveslotitemsourceslot-destslot-cb)
|
|
- [bot.updateHeldItem()](#botupdatehelditem)
|
|
- [bot.getEquipmentDestSlot(destination)](#botgetequipmentdestslotdestination)
|
|
- [bot.creative](#botcreative)
|
|
- [bot.creative.setInventorySlot(slot, item, [callback])](#botcreativesetinventoryslotslot-item-callback)
|
|
- [bot.creative.flyTo(destination, [cb])](#botcreativeflytodestination-cb)
|
|
- [bot.creative.startFlying()](#botcreativestartflying)
|
|
- [bot.creative.stopFlying()](#botcreativestopflying)
|
|
|
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
|
|
|
# API
|
|
|
|
## Enums
|
|
|
|
Esses enums estão armazenados em um projeto independente da linguagem [minecraft-data](https://github.com/PrismarineJS/minecraft-data) e acessados pelo [node-minecraft-data](https://github.com/PrismarineJS/node-minecraft-data).
|
|
|
|
### minecraft-data
|
|
Os dados estão disponíveis no módulo [node-minecraft-data](https://github.com/PrismarineJS/node-minecraft-data)
|
|
|
|
`require('minecraft-data')(bot.version)` te dá acesso a eles.
|
|
|
|
### mcdata.blocks
|
|
Blocos ordenados por ID.
|
|
|
|
### mcdata.items
|
|
Itens ordenados por ID.
|
|
|
|
### mcdata.materials
|
|
A chave é o material. O valor é um objeto com a chave sendo o ID da ferramenta e o valor é o multiplicador de eficiência.
|
|
|
|
### mcdata.recipes
|
|
Receitas ordenadas por ID.
|
|
|
|
### mcdata.instruments
|
|
Ferramentas ordenadas por ID.
|
|
|
|
### mcdata.biomes
|
|
Biomas ordenados por ID.
|
|
|
|
### mcdata.entities
|
|
Entidades ordenadas por ID.
|
|
|
|
## Clases
|
|
|
|
### vec3
|
|
|
|
Veja [andrewrk/node-vec3](https://github.com/andrewrk/node-vec3)
|
|
|
|
Todos os pontos no mineflayer são instâncias dessa classe.
|
|
|
|
- x - sul
|
|
- y - para cima
|
|
- z - oeste
|
|
|
|
Funções e métodos que requerem um ponto aceitam instâncias `Vec3`, uma matriz com 3 valores e um objeto com as propriedades `x`, `y` e `z`.
|
|
|
|
### mineflayer.Location
|
|
|
|
### Entity
|
|
|
|
Entidades representam jogadores, mobs e objetos. Elas são emitidas em muitos eventos, mas você pode acessar sua própria entidade com `bot.entity`.
|
|
Veja [prismarine-entity](https://github.com/PrismarineJS/prismarine-entity)
|
|
|
|
### Block
|
|
|
|
Veja [prismarine-block](https://github.com/PrismarineJS/prismarine-block)
|
|
|
|
Além disso, `block.blockEntity` é um campo adicional com os dados da entidade do bloco em formato de `Object`.
|
|
```js
|
|
// sign.blockEntity
|
|
{
|
|
x: -53,
|
|
y: 88,
|
|
z: 66,
|
|
id: 'minecraft:sign', // 'Sign' in 1.10
|
|
Text1: { toString: Function }, // ChatMessage object
|
|
Text2: { toString: Function }, // ChatMessage object
|
|
Text3: { toString: Function }, // ChatMessage object
|
|
Text4: { toString: Function } // ChatMessage object
|
|
}
|
|
```
|
|
|
|
### Biome
|
|
|
|
Veja [prismarine-biome](https://github.com/PrismarineJS/prismarine-biome)
|
|
|
|
### Item
|
|
|
|
Veja [prismarine-item](https://github.com/PrismarineJS/prismarine-item)
|
|
|
|
### windows.Window (base class)
|
|
|
|
Veja [prismarine-windows](https://github.com/PrismarineJS/prismarine-windows)
|
|
|
|
#### window.deposit(itemType, metadata, count, [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento ao ser concluída.
|
|
|
|
- `itemType` - ID numérico do item.
|
|
- `metadata` - valor numérico. `null` significa que qualquer valor coincide.
|
|
- `count` - quantos itens devem ser depositados. `null` é um alias para 1.
|
|
- `callback(err)` - (opcional) - executado ao ser concluída.
|
|
|
|
#### window.withdraw(itemType, metadata, count, [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento ao ser concluída.
|
|
|
|
* `itemType` - ID numérico do item
|
|
* `metadata` - valor numérico. `null` significa que qualquer valor é correspondente.
|
|
* `count` - quantos itens devem ser retirados. `null` é um alias para 1.
|
|
* `callback(err)` - (opcional) - executado ao finalizar
|
|
|
|
#### window.close()
|
|
|
|
Fecha a interface/janela.
|
|
|
|
### Recipe
|
|
|
|
Veja [prismarine-recipe](https://github.com/PrismarineJS/prismarine-recipe).
|
|
|
|
### mineflayer.Container
|
|
|
|
Estende windows.Window para baús, dispensadores, etc...
|
|
Veja `bot.openContainer(blocoDoBaú ou entidadeDeCarrinhoDeMinério)`.
|
|
|
|
### mineflayer.Furnace
|
|
|
|
Estende windows.Window para fornalhas, fundidores, etc...
|
|
Veja `bot.openFurnace(blocoDaFornalha)`.
|
|
|
|
#### Furnace "update"
|
|
|
|
É emitido quando `fornalha.combustível` e/ou `fornalha.progresso` são atualizados.
|
|
|
|
#### furnace.takeInput([callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
* `callback(err, item)`
|
|
|
|
#### furnace.takeFuel([callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
* `callback(err, item)`
|
|
|
|
#### furnace.takeOutput([callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
* `callback(err, item)`
|
|
|
|
#### furnace.putInput(itemType, metadata, count, [cb])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
#### furnace.putFuel(itemType, metadata, count, [cb])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
#### furnace.inputItem()
|
|
|
|
Retorna uma instância `Item` que é o item de entrada.
|
|
|
|
#### furnace.fuelItem()
|
|
|
|
Retorna uma instância `Item` que é o combustível.
|
|
|
|
#### furnace.outputItem()
|
|
|
|
Retorna uma instância `Item` que é o item de saída.
|
|
|
|
#### furnace.fuel
|
|
|
|
Quanto combustível resta, variando de 0 a 1.
|
|
|
|
#### furnace.progress
|
|
|
|
Quanto o item está avançado no processo, variando de 0 a 1.
|
|
|
|
### mineflayer.EnchantmentTable
|
|
|
|
Estende windows.Window para mesas de encantamento.
|
|
Veja `bot.openEnchantmentTable(blocoDaMesaDeEncantamento)`.
|
|
|
|
#### enchantmentTable "ready"
|
|
|
|
É emitido quando `mesaDeEncantamento.encantamentos` está completo e você pode escolher um encantamento executando `mesaDeEncantamento.encantar(escolha)`.
|
|
|
|
#### enchantmentTable.targetItem()
|
|
|
|
Retorna os itens de entrada e saída.
|
|
|
|
#### enchantmentTable.xpseed
|
|
|
|
A semente de XP de 16 bits enviada pelo servidor.
|
|
|
|
#### enchantmentTable.enchantments
|
|
|
|
Array de comprimento 3 com três encantamentos que você pode escolher.
|
|
`level` pode ser -1 se o servidor ainda não enviou os dados.
|
|
|
|
Parece com:
|
|
|
|
```js
|
|
[
|
|
{
|
|
level: 3
|
|
},
|
|
{
|
|
level: 4
|
|
},
|
|
{
|
|
level: 9
|
|
}
|
|
]
|
|
```
|
|
|
|
#### enchantmentTable.enchant(choice, [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com o `item` como argumento quando concluída.
|
|
|
|
* `escolha` - [0-2], o índice do encantamento que você deseja escolher.
|
|
* `callback(err, item)` - (opcional) executado ao finalizar.
|
|
|
|
#### enchantmentTable.takeTargetItem([callback])
|
|
|
|
Esta função também retorna uma `Promise`, com o `item` como argumento quando concluída.
|
|
|
|
* `callback(err, item)`
|
|
|
|
#### enchantmentTable.putTargetItem(item, [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
* `callback(err)`
|
|
|
|
#### enchantmentTable.putLapis(item, [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
* `callback(err)`
|
|
|
|
### mineflayer.anvil
|
|
|
|
Estende a janela de janelas para bigornas.
|
|
Veja `bot.openAnvil(anvilBlock)`.
|
|
|
|
#### anvil.combine(itemUm, itemDois[, nome, callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
* `callback(err)` - para usar o retorno de chamada, o nome deve estar vazio ('').
|
|
|
|
#### anvil.combine(item[, nome, callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
* `callback(err)`
|
|
|
|
#### villager "ready"
|
|
|
|
É emitido quando `vilarejo.trocas` foram carregadas.
|
|
|
|
#### villager.trades
|
|
|
|
Array de negociações
|
|
|
|
Semelhante a:
|
|
|
|
```js
|
|
[
|
|
{
|
|
firstInput: Item,
|
|
output: Item,
|
|
hasSecondItem: false,
|
|
secondaryInput: null,
|
|
disabled: false,
|
|
tooluses: 0,
|
|
maxTradeuses: 7
|
|
},
|
|
{
|
|
firstInput: Item,
|
|
output: Item,
|
|
hasSecondItem: false,
|
|
secondaryInput: null,
|
|
disabled: false,
|
|
tooluses: 0,
|
|
maxTradeuses: 7
|
|
},
|
|
{
|
|
firstInput: Item,
|
|
output: Item,
|
|
hasSecondItem: true,
|
|
secondaryInput: Item,
|
|
disabled: false,
|
|
tooluses: 0,
|
|
maxTradeuses: 7
|
|
}
|
|
]
|
|
```
|
|
|
|
#### villager.trade(tradeIndex, [times], [cb])
|
|
É o mesmo que [bot.trade(villagerInstance, tradeIndex, [times], [cb])](#bottradevillagerinstance-tradeindex-times-cb)
|
|
|
|
### mineflayer.ScoreBoard
|
|
|
|
#### ScoreBoard.name
|
|
|
|
Nome do placar.
|
|
|
|
#### ScoreBoard.title
|
|
|
|
O título do placar (nem sempre é o mesmo que o nome).
|
|
|
|
#### ScoreBoard.itemsMap
|
|
|
|
Um objeto com todos os itens do placar nele.
|
|
```js
|
|
{
|
|
wvffle: { name: 'wvffle', value: 3 },
|
|
dzikoysk: { name: 'dzikoysk', value: 6 }
|
|
}
|
|
```
|
|
|
|
#### ScoreBoard.items
|
|
|
|
Uma matriz com todos os itens no placar.
|
|
```js
|
|
[
|
|
{ name: 'dzikoysk', value: 6 },
|
|
{ name: 'wvffle', value: 3 }
|
|
]
|
|
```
|
|
|
|
### mineflayer.BossBar
|
|
|
|
#### BossBar.title
|
|
|
|
Título da barra de vida do chefe, instância de ChatMessage
|
|
|
|
#### BossBar.health
|
|
|
|
Porcentagem da vida do chefe, de `0` a `1`
|
|
|
|
#### BossBar.dividers
|
|
|
|
Número de divisores na barra, pode ser `0`, `6`, `10`, `12` ou `20`
|
|
|
|
#### BossBar.entityUUID
|
|
|
|
UUID da entidade do chefe
|
|
|
|
#### BossBar.shouldDarkenSky
|
|
|
|
Determina se o céu deve escurecer ou não
|
|
|
|
#### BossBar.isDragonBar
|
|
|
|
Determina se a barra é a barra de vida do dragão
|
|
|
|
#### BossBar.createFog
|
|
|
|
Determina se a barra cria neblina ou não
|
|
|
|
#### BossBar.color
|
|
|
|
Determina el color de la barra entre `pink`, `blue`, `red`, `green`, `yellow`, `purple` y `white` (`rosa`, `azul`, `rojo`, `verde`, `amarillo`, `morado` y `blanco`)
|
|
|
|
## Bot
|
|
|
|
### mineflayer.createBot(options)
|
|
|
|
Crie e retorne uma instância da classe Bot.
|
|
|
|
`options` é um objeto que contém propriedades opcionais:
|
|
* username : (usuário) o valor padrão é 'Player'
|
|
* port : (porta) o valor padrão é 25565
|
|
* password : (senha) pode ser omitida (se os tokens também forem omitidos, tentará conectar no modo offline)
|
|
* host : (ip) o valor padrão é localhost
|
|
* version : se omitido, tentará determinar automaticamente a versão. Por exemplo: "1.12.2"
|
|
* auth : (autenticação) o valor padrão é 'mojang', também pode ser 'microsoft'
|
|
* clientToken : gerado se uma senha for fornecida
|
|
* accessToken : gerado se uma senha for fornecida
|
|
* logErrors : o valor padrão é true, retém erros e os imprime
|
|
* hideErrors : o valor padrão é true, para ocultar erros (mesmo se logErrors for true)
|
|
* keepAlive : envia pacotes keepAlive: o valor padrão é true
|
|
* checkTimeoutInterval : o valor padrão é `30*1000` (30s), verifica se o pacote keepAlive foi recebido neste período, desconecta o bot se não for recebido.
|
|
* loadInternalPlugins : o valor padrão é true
|
|
* storageBuilder : uma função opcional, que recebe a versão e o nome do mundo (worldName) como argumentos e retorna uma instância de algo com a mesma API que prismarine-provider-anvil. Será usado para salvar o mundo.
|
|
* client : uma instância de node-minecraft-protocol, se não for especificado, o mineflayer criará seu próprio cliente. Isso é útil para usar o mineflayer por meio de um proxy de vários clientes ou para um cliente vanilla e um cliente mineflayer.
|
|
* plugins : objeto: o valor padrão é {}
|
|
- pluginName : false : não carrega o plugin interno com esse nome, por exemplo, `pluginName`
|
|
- pluginName : true : carrega o plugin interno com esse nome, por exemplo, `pluginName`, mesmo se loadInternalPlugins estiver definido como false
|
|
- pluginName : função para introduzir : carrega um plugin de terceiros (externo), anulando o plugin interno com o mesmo nome, por exemplo, `pluginName`
|
|
* physicsEnabled : o valor padrão é true, se o bot deve ser afetado pela física, pode ser modificado através de bot.physicsEnabled
|
|
* [chat](#bot.settings.chat)
|
|
* [colorsEnabled](#bot.settings.colorsEnabled)
|
|
* [viewDistance](#bot.settings.viewDistance)
|
|
* [difficulty](#bot.settings.difficulty)
|
|
* [skinParts](#bot.settings.skinParts)
|
|
* chatLengthLimit : o valor máximo de caracteres que podem ser enviados com uma única mensagem. Se não for especificado, será 100 em versões anteriores à 1.11 e 256 na 1.11 e posteriores.
|
|
|
|
### Properties
|
|
|
|
#### bot.world
|
|
|
|
Uma representação sincronizada do mundo. Confira a documentação em http://github.com/PrismarineJS/prismarine-world
|
|
|
|
#### world "blockUpdate" (oldBlock, newBlock)
|
|
|
|
É emitido quando um bloco é atualizado. Retorna o bloco antigo `oldBlock` e o novo bloco `newBlock`.
|
|
|
|
Observação: `oldBlock` pode ser `null`.
|
|
|
|
#### world "blockUpdate:(x, y, z)" (oldBlock, newBlock)
|
|
|
|
É emitido quando um bloco em uma coordenada é atualizado. Retorna o bloco antigo `oldBlock` e o novo bloco `newBlock`.
|
|
|
|
Observação: `oldBlock` pode ser `null`.
|
|
|
|
|
|
#### bot.entity
|
|
|
|
Sua própria entidade. Consulte `Entity`.
|
|
|
|
#### bot.entities
|
|
|
|
Todas as entidades próximas. Este objeto é um mapa de entityId (id da entidade) para entity (entidade).
|
|
|
|
#### bot.username
|
|
|
|
Use isso para descobrir seu próprio nome.
|
|
|
|
#### bot.spawnPoint
|
|
|
|
Coordenadas do ponto de spawn, para onde todas as bússolas apontam.
|
|
|
|
#### bot.heldItem
|
|
|
|
O item na mão do bot, apresentado como uma instância [prismarine-item](https://github.com/PrismarineJS/prismarine-item) especificado com seus metadados, dados NBT, etc.
|
|
|
|
#### bot.game.levelType
|
|
|
|
Tipo do nível do jogo.
|
|
|
|
#### bot.game.dimension
|
|
|
|
Tipo da dimensão.
|
|
|
|
#### bot.game.difficulty
|
|
|
|
Tipo de dificuldade do jogo.
|
|
|
|
#### bot.game.gameMode
|
|
|
|
Modo de jogo do bot.
|
|
|
|
#### bot.game.hardcore
|
|
|
|
Se o jogo está no modo hardcore ou não.
|
|
|
|
#### bot.game.maxPlayers
|
|
|
|
O número máximo de jogadores no jogo.
|
|
|
|
#### bot.game.serverBrand
|
|
|
|
A marca do servidor.
|
|
|
|
#### bot.physicsEnabled
|
|
|
|
Se a física deve ser habilitada, o valor padrão é true.
|
|
|
|
#### bot.player
|
|
|
|
Objeto do jogador do bot
|
|
```js
|
|
{
|
|
username: 'player',
|
|
displayName: { toString: Function }, // Objeto ChatMessage.
|
|
gamemode: 0,
|
|
ping: 28,
|
|
entity: entity // nulo se você estiver muito longe (fora da zona renderizada)
|
|
}
|
|
```
|
|
|
|
#### bot.players
|
|
|
|
Mapa dos nomes dos jogadores no jogo.
|
|
|
|
#### bot.isRaining
|
|
|
|
Determina se está chovendo.
|
|
|
|
#### bot.rainState
|
|
|
|
Um número indicando o nível de chuva atual. Se não estiver chovendo, este valor será 0. Quando começa a chover, o valor aumenta gradualmente para 1. E quando para de chover, diminui gradualmente para 0.
|
|
|
|
Cada vez que `bot.rainState` muda, o evento "weatherUpdate" é emitido.
|
|
|
|
#### bot.thunderState
|
|
|
|
Um número indicando o nível de tempestade de raios atual. Se não houver tempestade, este valor será 0. Quando começa uma tempestade, o valor aumenta gradualmente para 1. E quando a tempestade para, diminui gradualmente para 0.
|
|
|
|
Cada vez que `bot.thunderState` muda, o evento "weatherUpdate" é emitido.
|
|
|
|
Isso é semelhante ao `bot.rainState`, mas para tempestades de raios. Para tempestades de raios, `bot.rainState` e `bot.thunderState` mudarão.
|
|
|
|
#### bot.chatPatterns
|
|
|
|
Isso é uma matriz de objetos de padrões, no seguinte formato:
|
|
{ /regex/, "chattype", "descrição")
|
|
* /regex/ - um padrão regex, deve ter pelo menos dois grupos de captura.
|
|
* 'chattype' - o tipo de chat que deve corresponder, pode ser "chat" (conversa) ou "whisper" (sussurro), ou qualquer outro.
|
|
* 'descrição' - descrição do padrão, opcional.
|
|
|
|
#### bot.settings.chat
|
|
|
|
Opções:
|
|
|
|
* `enabled` (ativado) (padrão)
|
|
* `commandsOnly` (apenasComandos)
|
|
* `disabled` (desativado)
|
|
|
|
#### bot.settings.colorsEnabled
|
|
|
|
Seu valor padrão é verdadeiro, se deve receber códigos de cor do servidor.
|
|
|
|
#### bot.settings.viewDistance
|
|
|
|
Opções:
|
|
* `far` (distante) (padrão)
|
|
* `normal`
|
|
* `short` (curto)
|
|
* `tiny` (minúsculo)
|
|
|
|
#### bot.settings.difficulty
|
|
|
|
O mesmo que em server.properties.
|
|
|
|
#### bot.settings.skinParts
|
|
|
|
Esses booleanos controlam se as partes externas da skin do jogador devem ser visíveis.
|
|
|
|
##### bot.settings.skinParts.showCape
|
|
|
|
Se você tem uma capa, pode desativá-la alterando isso para falso.
|
|
|
|
##### bot.settings.skinParts.showJacket
|
|
|
|
Se a parte externa do peito deve ser mostrada.
|
|
|
|
##### bot.settings.skinParts.showLeftSleeve
|
|
|
|
Se a parte externa do braço esquerdo deve ser mostrada.
|
|
|
|
##### bot.settings.skinParts.showRightSleeve
|
|
|
|
Se a parte externa do braço direito deve ser mostrada.
|
|
|
|
##### bot.settings.skinParts.showLeftPants
|
|
|
|
Se a parte externa da perna esquerda deve ser mostrada.
|
|
|
|
##### bot.settings.skinParts.showRightPants
|
|
|
|
Se a parte externa da perna direita deve ser mostrada.
|
|
|
|
##### bot.settings.skinParts.showHat
|
|
|
|
Se a parte externa da cabeça deve ser mostrada.
|
|
|
|
#### bot.experience.level
|
|
|
|
O nível de experiência do bot.
|
|
|
|
#### bot.experience.points
|
|
|
|
Total de pontos de experiência do bot.
|
|
|
|
#### bot.experience.progress
|
|
|
|
Entre 0 e 1 - a quantidade que falta para atingir o próximo nível.
|
|
|
|
#### bot.health
|
|
|
|
Números entre 0 e 20 representando o número de metades de coração.
|
|
|
|
#### bot.food
|
|
|
|
Números de 0 a 20 representando o número de metades de coxas de frango.
|
|
|
|
#### bot.foodSaturation
|
|
|
|
A saturação atua como um "suprimento" de comida. Se a saturação for maior que 0, o nível de comida não diminuirá. Os jogadores que entram no jogo têm automaticamente uma saturação de 5,0. Comer aumenta a saturação e o nível de comida.
|
|
|
|
#### bot.oxygenLevel
|
|
|
|
Número de 0 a 20 representando o número de metades de bolhas do nível de oxigênio.
|
|
|
|
#### bot.physics
|
|
|
|
Modifique esses números para alterar a gravidade, velocidade de salto, velocidade terminal, etc. Faça isso por sua própria conta e risco.
|
|
|
|
#### bot.simpleClick.leftMouse (slot)
|
|
|
|
Abstração de `bot.clickWindow(slot, 0, 0)`
|
|
|
|
#### bot.simpleClick.rightMouse (slot)
|
|
|
|
Abstração de `bot.clickWindow(slot, 1, 0)`
|
|
|
|
#### bot.time.doDaylightCycle
|
|
|
|
Se o gamerule doDaylightCycle está ativado ou desativado.
|
|
|
|
#### bot.time.bigTime
|
|
|
|
O número total de ticks desde o dia 0.
|
|
|
|
Este valor é do tipo BigInt e é muito preciso, mesmo com valores muito grandes (mais de 2^51 - 1 ticks).
|
|
|
|
#### bot.time.time
|
|
|
|
O número total de ticks desde o dia 0.
|
|
|
|
Como o limite de números em JavaScript é 2^51 - 1, bot.time.time é menos preciso em valores mais altos que esse limite. Portanto, é recomendado o uso de bot.time.bigTime. Sendo realista, provavelmente você nunca terá que usar bot.time.bigTime, já que ele naturalmente alcançará 2^51 - 1 ticks após cerca de 14.280.821 anos reais.
|
|
|
|
#### bot.time.timeOfDay
|
|
|
|
Hora do dia, em ticks.
|
|
|
|
A hora é baseada em ticks, onde 20 ticks ocorrem a cada segundo. Há 24.000 ticks em um dia, o que torna os dias em Minecraft exatamente 20 minutos. A hora do dia é baseada no módulo 24.000 do timestamp. 0 é o amanhecer, 6.000 é o meio-dia, 12.000 é o anoitecer e 18.000 é a meia-noite.
|
|
|
|
#### bot.time.day
|
|
|
|
Dia do mundo.
|
|
|
|
#### bot.time.isDay
|
|
|
|
Se é dia ou não.
|
|
|
|
Baseado no horário atual estar entre 13.000 e 23.000 ticks.
|
|
|
|
#### bot.time.moonPhase
|
|
|
|
Fase da lua.
|
|
|
|
De 0 a 7, onde 0 é lua cheia.
|
|
|
|
#### bot.time.bigAge
|
|
|
|
Idade do mundo, em ticks.
|
|
|
|
Este valor é do tipo BigInt e é preciso mesmo em valores muito altos (mais de 2^51 - 1 ticks).
|
|
|
|
#### bot.time.age
|
|
|
|
Idade do mundo, em ticks.
|
|
|
|
Como o limite de números em JavaScript é 2^51 - 1, bot.time.age é menos preciso em valores mais altos que esse limite. Portanto, é recomendado o uso de bot.time.bigAge. Sendo realista, provavelmente você nunca terá que usar bot.time.bigAge, já que ele naturalmente alcançará 2^51 - 1 ticks após cerca de 14.280.821 anos reais.
|
|
|
|
#### bot.quickBarSlot
|
|
|
|
Qual slot está selecionado na barra de acesso rápido (0 - 8).
|
|
|
|
#### bot.inventory
|
|
|
|
Uma instância de janela (interface) representando seu inventário.
|
|
|
|
#### bot.targetDigBlock
|
|
|
|
O bloco que você está quebrando no momento, ou `null`.
|
|
|
|
#### bot.isSleeping
|
|
|
|
Booleano representando se você está dormindo ou não.
|
|
|
|
#### bot.scoreboards
|
|
|
|
Todos os placares que o bot conhece em um objeto com o formato nome do placar -> placar.
|
|
|
|
#### bot.scoreboard
|
|
|
|
Todos os placares que o bot conhece em um objeto com o formato exibição de placar -> placar.
|
|
- `belowName` - placar exibido abaixo do nome
|
|
- `sidebar` - placar exibido na barra lateral
|
|
- `list` - placar exibido na lista
|
|
- `0-18` - entradas definidas no protocolo
|
|
|
|
#### bot.controlState
|
|
|
|
Um objeto que contém os estados de controle principais: ['frente', 'trás', 'esquerda', 'direita', 'pular', 'correr', 'agachar'].
|
|
|
|
Esses valores podem ser usados em bot.setControlState.
|
|
|
|
### Events
|
|
|
|
#### "chat" (username, message, translate, jsonMsg, matches)
|
|
|
|
Somente é emitido quando um jogador conversa publicamente.
|
|
- `username` - o jogador que enviou a mensagem (compare com `bot.username` para ignorar suas próprias mensagens).
|
|
- `message` - mensagem sem códigos de cores.
|
|
- `translate` - tipo de mensagem no chat. Nulo para a maioria das mensagens do Bukkit.
|
|
- `jsonMsg` - mensagem JSON não modificada do servidor.
|
|
- `matches` - matriz de correspondências retornadas pelas expressões regulares. Pode ser nulo.
|
|
|
|
#### "whisper" (username, message, translate, jsonMsg, matches)
|
|
|
|
Somente é emitido quando um jogador conversa com você em particular (sussurro).
|
|
- `username` - o jogador que enviou a mensagem.
|
|
- `message` - mensagem sem códigos de cores.
|
|
- `translate` - tipo de mensagem no chat. Nulo para a maioria das mensagens do Bukkit.
|
|
- `jsonMsg` - mensagem JSON não modificada do servidor.
|
|
- `matches` - matriz de correspondências retornadas pelas expressões regulares. Pode ser nulo.
|
|
|
|
#### "actionBar" (jsonMsg)
|
|
|
|
Este evento é emitido para cada mensagem do servidor que aparece na barra de ação.
|
|
|
|
* `jsonMsg` - mensagem JSON não modificada do servidor
|
|
|
|
#### "message" (jsonMsg, position)
|
|
|
|
Este evento é emitido para cada mensagem do servidor, incluindo chats.
|
|
|
|
* `jsonMsg` - mensagem JSON não modificada do servidor
|
|
|
|
* `position` - (>= 1.8.1): a posição da mensagem de chat pode ser
|
|
* chat
|
|
* sistema
|
|
* informações_do_jogo
|
|
|
|
#### "messagestr" (message, messagePosition, jsonMsg)
|
|
|
|
Similar a "message", mas converte a mensagem JSON em uma string antes de ser emitida.
|
|
|
|
#### "inject_allowed"
|
|
|
|
Este evento é emitido quando o arquivo index é carregado. Você pode carregar mcData ou os plugins aqui, mas é melhor esperar pelo evento "spawn".
|
|
|
|
#### "login"
|
|
|
|
É emitido após se registrar no servidor. No entanto, provavelmente você desejará aguardar o evento "spawn" antes de fazer qualquer coisa.
|
|
|
|
#### "spawn"
|
|
|
|
É emitido quando você se registra e aparece no mundo ou quando ressurge após a morte. Normalmente, este é o evento que você deseja receber antes de fazer qualquer coisa no servidor.
|
|
|
|
#### "respawn"
|
|
|
|
É emitido ao mudar de dimensões ou imediatamente antes de aparecer. Normalmente, você vai querer ignorar esse evento e esperar até que o evento "spawn" seja emitido.
|
|
|
|
#### "game"
|
|
|
|
É emitido quando o servidor altera algumas de suas propriedades.
|
|
|
|
#### "resourcePack" (url, hash)
|
|
|
|
É emitido quando o servidor envia um pacote de recursos.
|
|
|
|
#### "title" (title, type)
|
|
|
|
É emitido quando o servidor exibe um título.
|
|
|
|
* `title` - texto do título
|
|
* `type` - tipo do título "subtitle" ou "title"
|
|
|
|
#### "rain"
|
|
|
|
É emitido quando começa a chover ou quando para de chover. Se estiver chovendo quando você entrar no servidor, este evento será emitido.
|
|
|
|
#### "weatherUpdate"
|
|
|
|
É emitido quando o estado de chuva (`bot.thunderState` ou `bot.rainState`) muda. Se estiver chovendo quando você entrar no servidor, este evento será emitido.
|
|
|
|
#### "time"
|
|
|
|
É emitido quando o servidor altera ou atualiza a hora. Veja `bot.time`.
|
|
|
|
#### "kicked" (reason, loggedIn)
|
|
|
|
É emitido quando o bot é expulso do servidor. `motivo` é uma mensagem de chat com o motivo da expulsão. `loggedIn` será `true` se o cliente já estava conectado quando foi expulso e `false` se o cliente foi expulso durante o processo de registro.
|
|
|
|
#### "end"
|
|
|
|
É emitido quando você não está mais conectado ao servidor.
|
|
|
|
#### "error" (err)
|
|
|
|
É emitido quando ocorre um erro.
|
|
|
|
#### "spawnReset"
|
|
|
|
É emitido quando você não pode mais ressurgir em sua cama e seu ponto de ressurgimento é redefinido.
|
|
|
|
#### "death"
|
|
|
|
É emitido ao morrer.
|
|
|
|
#### "health"
|
|
|
|
É emitido quando sua vida ou nível de comida mudam.
|
|
|
|
#### "breath"
|
|
|
|
É emitido quando seu nível de oxigênio muda.
|
|
|
|
#### "entitySwingArm" (entity)
|
|
|
|
É emitido quando uma entidade move o braço.
|
|
|
|
#### "entityHurt" (entity)
|
|
|
|
É emitido quando uma entidade se machuca.
|
|
|
|
#### "entityDead" (entity)
|
|
|
|
É emitido quando uma entidade morre.
|
|
|
|
#### "entityTaming" (entity)
|
|
|
|
É emitido quando uma entidade está sendo domesticada.
|
|
|
|
#### "entityTamed" (entity)
|
|
|
|
É emitido quando uma entidade é domesticada.
|
|
|
|
#### "entityShakingOffWater" (entity)
|
|
|
|
É emitido quando uma entidade se sacode para se secar (por exemplo, lobos).
|
|
|
|
#### "entityEatingGrass" (entity)
|
|
|
|
É emitido quando uma entidade come grama.
|
|
|
|
#### "entityWake" (entity)
|
|
|
|
É emitido quando uma entidade acorda.
|
|
|
|
#### "entityEat" (entity)
|
|
|
|
É emitido quando uma entidade come.
|
|
|
|
#### "entityCriticalEffect" (entity)
|
|
|
|
É emitido quando uma entidade recebe um ataque crítico.
|
|
|
|
#### "entityMagicCriticalEffect" (entity)
|
|
|
|
É emitido quando uma entidade recebe um ataque crítico com poções.
|
|
|
|
#### "entityCrouch" (entity)
|
|
|
|
É emitido quando uma entidade se agacha.
|
|
|
|
#### "entityUncrouch" (entity)
|
|
|
|
É emitido quando uma entidade para de se agachar.
|
|
|
|
#### "entityEquip" (entity)
|
|
|
|
É emitido quando uma entidade equipa algo.
|
|
|
|
#### "entitySleep" (entity)
|
|
|
|
É emitido quando uma entidade dorme.
|
|
|
|
#### "entitySpawn" (entity)
|
|
|
|
É emitido quando uma entidade aparece.
|
|
|
|
#### "itemDrop" (entity)
|
|
|
|
É emitido quando uma entidade solta itens (os itens também são entidades).
|
|
|
|
#### "playerCollect" (collector, collected)
|
|
|
|
É emitido quando uma entidade coleta um item.
|
|
|
|
* `coletor` - a entidade que coletou o item.
|
|
* `coletado` - a entidade que foi coletada (o item).
|
|
|
|
#### "entityGone" (entity)
|
|
|
|
É emitido quando uma entidade desaparece (morre, despawna).
|
|
|
|
#### "entityMoved" (entity)
|
|
|
|
É emitido quando uma entidade se move.
|
|
|
|
#### "entityDetach" (entity, vehicle)
|
|
|
|
É emitido quando uma entidade sai de um veículo.
|
|
|
|
#### "entityAttach" (entity, vehicle)
|
|
|
|
É emitido quando uma entidade entra em um veículo.
|
|
|
|
* `entidade` - a entidade que entrou
|
|
* `veículo` - a entidade do veículo (carrinho, cavalo)
|
|
|
|
#### "entityUpdate" (entity)
|
|
|
|
É emitido quando uma entidade atualiza uma de suas propriedades.
|
|
|
|
#### "entityEffect" (entity, effect)
|
|
|
|
É emitido quando uma entidade recebe um efeito.
|
|
|
|
#### "entityEffectEnd" (entity, effect)
|
|
|
|
É emitido quando um efeito em uma entidade termina.
|
|
|
|
#### "playerJoined" (player)
|
|
|
|
É emitido quando um jogador entra no servidor.
|
|
|
|
#### "playerUpdated" (player)
|
|
|
|
É emitido quando um jogador atualiza uma de suas propriedades.
|
|
|
|
#### "playerLeft" (player)
|
|
|
|
É emitido quando um jogador se desconecta do servidor.
|
|
|
|
#### "blockUpdate" (oldBlock, newBlock)
|
|
|
|
(É melhor usar este evento a partir de bot.world em vez de bot diretamente) É emitido quando um bloco é atualizado. Retorna `blocoAntigo` e `blocoNovo`.
|
|
|
|
Observação: `blocoAntigo` pode ser `null`.
|
|
|
|
#### "blockUpdate:(x, y, z)" (oldBlock, newBlock)
|
|
|
|
(É melhor usar este evento a partir de bot.world em vez de bot diretamente) É emitido quando um bloco em uma coordenada específica é atualizado. Retorna `blocoAntigo` e `blocoNovo`.
|
|
|
|
Observação: `blocoAntigo` pode ser `null`.
|
|
|
|
#### "blockPlaced" (oldBlock, newBlock)
|
|
|
|
É emitido quando o bot coloca um bloco. Retorna `blocoAntigo` e `blocoNovo`.
|
|
|
|
Observação: `blocoAntigo` pode ser `null`.
|
|
|
|
#### "chunkColumnLoad" (point)
|
|
|
|
É emitido quando um chunk é carregado.
|
|
|
|
#### "chunkColumnUnload" (point)
|
|
|
|
É emitido quando um chunk é descarregado. `ponto` é a coordenada do canto do chunk com os valores x, y e z mais baixos.
|
|
|
|
#### "soundEffectHeard" (soundName, position, volume, pitch)
|
|
|
|
Isso ocorre quando o cliente ouve um efeito sonoro com um nome específico.
|
|
|
|
* `nomeSom`: nome do efeito sonoro
|
|
* `posição`: uma instância Vec3 indicando o ponto de onde o som originou
|
|
* `volume`: volume em ponto flutuante, 1.0 é 100%
|
|
* `altura`: pitch em números inteiros, 63 é 100%
|
|
|
|
#### "hardcodedSoundEffectHeard" (soundId, soundCategory, position, volume, pitch)
|
|
|
|
Isso ocorre quando o cliente ouve um efeito sonoro codificado.
|
|
|
|
* `idSom`: ID do efeito sonoro
|
|
* `categoriaSom`: categoria do efeito sonoro
|
|
* `posição`: uma instância Vec3 indicando o ponto de onde o som originou
|
|
* `volume`: volume em ponto flutuante, 1.0 é 100%
|
|
* `altura`: pitch em números inteiros, 63 é 100%
|
|
|
|
#### "noteHeard" (block, instrument, pitch)
|
|
|
|
Isso ocorre quando um bloco de notas é disparado em algum lugar.
|
|
|
|
* `bloco`: uma instância de Bloco, o bloco que emitiu o som
|
|
* `instrumento`:
|
|
- `id`: identificação numérica
|
|
- `nome`: um dos seguintes [`harpa`, `contrabaixo`, `caixa de bateria`, `baquetas`, `bateria grave`]
|
|
* `tom`: O tom da nota (entre 0 e 24, inclusivos, onde 0 é o mais baixo e 24 é o mais alto). Você pode ler mais (sobre como os valores de tom correspondem às notas na vida real) aqui: [Página oficial da Minecraft Wiki](http://minecraft.wiki/w/Note_Block).
|
|
|
|
#### "pistonMove" (block, isPulling, direction)
|
|
|
|
Isso ocorre quando um pistão se move.
|
|
|
|
#### "chestLidMove" (block, isOpen, block2)
|
|
|
|
Isso ocorre quando a tampa de um baú se move.
|
|
|
|
* `bloco`: uma instância de Bloco, o bloco da tampa que se moveu. O bloco à direita se for um baú duplo.
|
|
* `estáAberto`: número de jogadores que têm o baú aberto.
|
|
* `bloco2`: uma instância de Bloco, a outra metade do bloco onde a tampa se moveu. Nulo se não for um baú duplo.
|
|
|
|
#### "blockBreakProgressObserved" (block, destroyStage)
|
|
|
|
Isso ocorre quando o cliente observa um bloco enquanto ele está sendo quebrado.
|
|
|
|
* `bloco`: uma instância de Bloco, o que está sendo quebrado.
|
|
* `estágioDestruicao`: número inteiro correspondente ao progresso (0-9).
|
|
|
|
#### "blockBreakProgressEnd" (block)
|
|
|
|
Isso ocorre quando o cliente observa um bloco que termina de ser quebrado.
|
|
Isso ocorre quando o processo foi concluído ou cancelado.
|
|
|
|
* `bloco`: uma instância de Bloco, o bloco que não está mais sendo quebrado.
|
|
|
|
#### "diggingCompleted" (block)
|
|
|
|
Isso ocorre quando a quebra de um bloco foi concluída.
|
|
* `bloco` - o bloco que já não existe.
|
|
|
|
#### "diggingAborted" (block)
|
|
|
|
Isso ocorre quando o processo de quebra de um bloco foi abortado.
|
|
* `bloco` - o bloco que ainda existe.
|
|
|
|
#### "move"
|
|
|
|
Se emite cuando o bot se move. Se deseja a posição atual, você pode usar `bot.entity.position` e se quiser descobrir a posição anterior, use `bot.entity.positon.minus(bot.entity.velocity)`.
|
|
|
|
#### "forcedMove"
|
|
|
|
Se emite quando o bot é movido forçadamente pelo servidor (teletransporte, spawn, ...). Se deseja a posição atual, use `bot.entity.position`.
|
|
|
|
#### "mount"
|
|
|
|
Se emite quando o bot sobe em uma entidade, como um minecart. Para acessar a entidade, use `bot.vehicle`.
|
|
|
|
Para subir em uma entidade, use `mount`.
|
|
|
|
#### "dismount" (vehicle)
|
|
|
|
Se emite quando você desce de uma entidade.
|
|
|
|
#### "windowOpen" (window)
|
|
|
|
Se emite quando você começa a usar uma mesa de criação, baú, mesa de poções, etc.
|
|
|
|
#### "windowClose" (window)
|
|
|
|
Se emite quando você não está mais usando uma mesa de criação, baú, etc.
|
|
|
|
#### "sleep"
|
|
|
|
Se emite quando você dorme.
|
|
|
|
#### "wake"
|
|
|
|
Se emite quando você acorda.
|
|
|
|
#### "experience"
|
|
|
|
Se emite quando `bot.experience.*` muda.
|
|
|
|
#### "scoreboardCreated" (scoreboard)
|
|
|
|
Se emite quando um placar é criado.
|
|
|
|
#### "scoreboardDeleted" (scoreboard)
|
|
|
|
Se emite quando um placar é excluído.
|
|
|
|
#### "scoreboardTitleChanged" (scoreboard)
|
|
|
|
Se emite quando o título de um placar é atualizado.
|
|
|
|
#### "scoreUpdated" (scoreboard, item)
|
|
|
|
Se emite quando a pontuação de um item no placar é atualizada.
|
|
|
|
#### "scoreRemoved" (scoreboard, item)
|
|
|
|
Se emite quando a pontuação de um item no placar é removida.
|
|
|
|
#### "scoreboardPosition" (position, scoreboard)
|
|
|
|
Se emite quando a posição de um placar é atualizada.
|
|
|
|
#### "bossBarCreated" (bossBar)
|
|
|
|
Se emite quando uma barra de vida de chefe é criada.
|
|
|
|
#### "bossBarDeleted" (bossBar)
|
|
|
|
Se emite quando uma barra é excluída.
|
|
|
|
#### "bossBarUpdated" (bossBar)
|
|
|
|
Se emite quando uma barra é atualizada.
|
|
|
|
#### "heldItemChanged" (heldItem)
|
|
|
|
Se emite quando o item que você está segurando muda.
|
|
|
|
#### "physicsTick" ()
|
|
|
|
Se emite a cada tick se bot.physicsEnabled estiver em true.
|
|
|
|
#### "chat:name" (matches)
|
|
|
|
Se emite quando todos os padrões de chat têm correspondências.
|
|
|
|
### Functions
|
|
|
|
#### bot.blockAt(point, extraInfos=true)
|
|
|
|
Retorna o bloco no `point` (um Vec3) ou `null` se esse ponto não estiver carregado. Se `extraInfos` estiver definido como true, também retorna informações sobre placas, quadros e entidades de blocos (mais lento). Veja `Block`.
|
|
|
|
#### bot.waitForChunksToLoad(cb)
|
|
|
|
Essa função também retorna uma `Promise`, com `void` como argumento quando a carga dos chunks estiver completa.
|
|
|
|
O `cb` é executado quando bastantes chunks são carregados.
|
|
|
|
#### bot.blockInSight(maxSteps, vectorLength)
|
|
|
|
Obsoleto, usar `blockAtCursor` no lugar.
|
|
|
|
Retorna o bloco que está no cursor do bot ou `null`.
|
|
* `maxSteps` - Número de passos do traçado de raios, o valor padrão é 256.
|
|
* `vectorLength` - Comprimento do vetor do traçado de raios, o valor padrão é `5/16`.
|
|
|
|
#### bot.blockAtCursor(maxDistance=256)
|
|
|
|
Retorna o bloco que está no cursor do bot ou `null`.
|
|
* `maxDistance` - Distância máxima à qual o bloco pode estar do olho, o valor padrão é 256.
|
|
|
|
#### bot.canSeeBlock(block)
|
|
|
|
Retorna verdadeiro ou falso dependendo se o bot pode ver o `block` (bloco).
|
|
|
|
#### bot.findBlocks(options)
|
|
|
|
Encontra os blocos mais próximos do ponto especificado.
|
|
* `options` - Opções de pesquisa:
|
|
- `point` - A posição a partir da qual começar a pesquisa (centro). Padrão: a posição do bot.
|
|
- `matching` - Uma função que retorna verdadeiro se o bloco atender às condições. Também pode ser um ID de bloco ou uma matriz de IDs.
|
|
- `useExtraInfo` - Pode ser de dois tipos para manter a compatibilidade inversa.
|
|
- **boolean** - Você fornece sua função `matching` com mais informações - mais lento.
|
|
- **function** - É feito em duas etapas, se o bloco atender às condições da função `matching`, ele passa para `useExtraInfo` com informações adicionais.
|
|
- `maxDistance` - A distância máxima de pesquisa, padrão: 16.
|
|
- `count` - Número de blocos a serem encontrados antes de retornar os resultados. Padrão: 1. Pode retornar menos se não houver blocos suficientes.
|
|
|
|
Retorna um array (pode estar vazio) com as coordenadas dos blocos encontrados (não retorna instâncias de blocos). O array é ordenado (os mais próximos primeiro).
|
|
|
|
#### bot.findBlock(options)
|
|
|
|
Semelhante a `bot.blockAt(bot.findBlocks(options)[0])`. Retorna um único bloco ou `null`.
|
|
|
|
#### bot.canDigBlock(block)
|
|
|
|
Retorna se o `block` está dentro do alcance e se pode ser escavado.
|
|
|
|
#### bot.recipesFor(itemType, metadata, minResultCount, craftingTable)
|
|
|
|
Retorna uma lista de instâncias `Recipe` (receita) que você pode usar para criar `itemType` com `metadata`.
|
|
|
|
* `itemType` - ID numérico do item que deseja criar.
|
|
* `metadata` - o valor numérico da metadados do item que deseja criar, `null` significa "com qualquer valor de metadados".
|
|
* `minResultCount` - baseia-se no seu inventário atual, qualquer receita da lista retornada poderá produzir esse número de itens. `null` significa `1`.
|
|
* `craftingTable` - uma instância `Block` (mesa de criação). Se for `null`, apenas receitas que podem ser feitas no inventário serão incluídas na lista.
|
|
|
|
#### bot.recipesAll(itemType, metadata, craftingTable)
|
|
|
|
Semelhante a bot.recipesFor, mas não verifica se o bot tem materiais suficientes para a receita.
|
|
|
|
#### bot.nearestEntity(match = (entity) => { return true })
|
|
|
|
Retorna a entidade mais próxima do bot, correspondendo à função (padrão: todas as entidades).
|
|
Retorna null se nenhuma entidade for encontrada.
|
|
|
|
### Methods
|
|
|
|
#### bot.end()
|
|
|
|
Encerra a conexão com o servidor.
|
|
|
|
#### bot.quit(reason)
|
|
|
|
Para se desconectar do servidor de forma elegante com um motivo (padrão: 'disconnect.quitting').
|
|
|
|
#### bot.tabComplete(str, cb, [assumeCommand], [sendBlockInSight])
|
|
|
|
Essa função também retorna uma `Promise`, com `matches` como argumento quando a conclusão é feita.
|
|
|
|
Solicita a conclusão da mensagem de chat (para comandos).
|
|
* `str` - String para completar.
|
|
* `callback(matches)`
|
|
- `matches` - Array de strings correspondentes.
|
|
* `assumeCommand` - Campo enviado ao servidor, padrão: false.
|
|
* `sendBlockInSight` - Campo enviado ao servidor, padrão: true. Mude para false se desejar maior eficiência.
|
|
|
|
#### bot.chat(message)
|
|
|
|
Envia uma mensagem pública no chat. Divide mensagens grandes em pedaços e as envia como várias mensagens, se necessário.
|
|
|
|
#### bot.whisper(username, message)
|
|
|
|
Atalho para "/tell <username>" (usuário). Todas as partes serão sussurradas ao usuário.
|
|
|
|
#### bot.chatAddPattern(pattern, chatType, description)
|
|
|
|
#### bot.addChatPattern(name, pattern, chatPatternOptions)
|
|
|
|
Adicione um padrão regex à lista de padrões do bot. Útil para servidores Bukkit onde o formato do chat muda com frequência.
|
|
* `pattern` - padrão regex para corresponder
|
|
* `chatType` - o evento que o bot emite quando o padrão corresponde, por exemplo, "chat" ou "whisper"
|
|
* 'description' - Opcional, descrição do padrão
|
|
|
|
#### bot.addChatPattern(name, pattern, chatPatternOptions)
|
|
|
|
** isso é semelhante a `bot.addChatPatternSet(name, [pattern], chatPatternOptions)`
|
|
|
|
Cria um evento que é emitido sempre que um padrão corresponde, o evento será chamado "chat:name", sendo "name" o nome fornecido.
|
|
* `name` - o nome usado para o evento
|
|
* `pattern` - expressão regular a ser testada nas mensagens
|
|
* `chatPatternOptions` - objeto
|
|
* `repeat` - padrão: true, se continuar testando após corresponder uma vez
|
|
* `parse` - em vez de retornar a mensagem, retorne os grupos capturados pela regex
|
|
* `deprecated` - (**unstable**) usado por bot.chatAddPattern para manter a compatibilidade, provavelmente será removido
|
|
|
|
Retorna um número que pode ser usado em bot.removeChatPattern() para remover esse padrão.
|
|
|
|
#### bot.addChatPatternSet(name, patterns, chatPatternOptions)
|
|
|
|
Cria um evento que é emitido sempre que todos os padrões correspondem, o evento será chamado "chat:name", sendo "name" o nome fornecido.
|
|
* `name` - o nome usado para o evento
|
|
* `patterns` - expressões regulares a serem testadas nas mensagens
|
|
* `chatPatternOptions` - objeto
|
|
* `repeat` - padrão: true, se continuar testando após corresponder uma vez
|
|
* `parse` - em vez de retornar a mensagem, retorne os grupos capturados pela regex
|
|
|
|
Retorna um número que pode ser usado em bot.removeChatPattern() para remover esse conjunto de padrões.
|
|
|
|
#### bot.removeChatPattern(name)
|
|
|
|
Remove um padrão / conjuntos de padrões
|
|
* `name`: string ou número
|
|
|
|
Se o nome for uma string, todos os padrões com esse nome serão removidos; caso contrário, se for um número, apenas o padrão exato será removido.
|
|
|
|
#### bot.awaitMessage(...args)
|
|
|
|
Promessa que é resolvida quando uma das mensagens fornecidas é cumprida.
|
|
|
|
Exemplo:
|
|
|
|
```js
|
|
async function wait () {
|
|
await bot.awaitMessage('<flatbot> hello world') // resolve "hello world" no chat por flatbot (se resolve quando um usuário chamado flatbot escreve "hello world" no chat)
|
|
await bot.awaitMessage(['<flatbot> hello', '<flatbot> world']) // resolve "hello" ou "world" no chat por flatbot (se resolve quando um usuário chamado flatbot escreve "hello" ou "world" no chat)
|
|
await bot.awaitMessage(['<flatbot> hello', '<flatbot> world'], ['<flatbot> im', '<flatbot> batman']) // resolve "hello" ou "world" ou "im" ou "batman" no chat por flatbot (se resolve quando um usuário chamado flatbot escreve "hello world", "world", "im" ou "batman" no bater papo)
|
|
await bot.awaitMessage('<flatbot> hello', '<flatbot> world') // resolve "hello" ou "world" no chat do flatbot
|
|
await bot.awaitMessage(/<flatbot> (.+)/) // resolve na primeira mensagem correspondente ao regex (se resolve quando um usuário chamado flatbot escreve algo que coincide com o padrão)
|
|
}
|
|
```
|
|
|
|
#### bot.setSettings(options)
|
|
|
|
Veja a propriedade `bot.settings`.
|
|
|
|
#### bot.loadPlugin(plugin)
|
|
|
|
Introduz um Plugin. Não faz nada se o plugin já estiver carregado/introduzido.
|
|
|
|
* `plugin` - função
|
|
|
|
```js
|
|
function somePlugin (bot, options) {
|
|
function someFunction () {
|
|
bot.chat('Yay!')
|
|
}
|
|
|
|
bot.myPlugin = {} // Boas práticas para API de plugin de namespace (faça isso para evitar erros como myPlugin não está definido)
|
|
bot.myPlugin.someFunction = someFunction
|
|
}
|
|
|
|
const bot = mineflayer.createBot({})
|
|
bot.loadPlugin(somePlugin)
|
|
bot.once('login', function () {
|
|
bot.myPlugin.someFunction() // Yay!
|
|
})
|
|
```
|
|
|
|
#### bot.loadPlugins(plugins)
|
|
|
|
Introduz plugins, veja `bot.loadPlugin`.
|
|
* `plugins` - array de funções
|
|
|
|
#### bot.hasPlugin(plugin)
|
|
|
|
Verifica se o plugin já está carregado (ou previsto para carregar) no bot.
|
|
|
|
#### bot.sleep(bedBlock, [cb])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Dormir em uma cama. `bedBlock` deve ser uma instância `Block` que é uma cama. `cb` é uma função que pode ter um parâmetro de erro se o bot não conseguir dormir.
|
|
|
|
#### bot.isABed(bedBlock)
|
|
|
|
Retorna verdadeiro se `bedBlock` for uma cama.
|
|
|
|
#### bot.wake([cb])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Acordar de uma cama. `cb` é uma função que pode ter um parâmetro de erro se o bot não conseguir acordar.
|
|
|
|
#### bot.setControlState(control, state)
|
|
|
|
Este é o método principal para controlar os movimentos do bot. É semelhante a pressionar teclas no Minecraft.
|
|
Por exemplo, forward como true fará o bot se mover para a frente. Forward como false fará o bot parar de se mover para a frente.
|
|
Você pode usar bot.lookAt com isso para controlar o movimento. O exemplo jumper.js mostra como fazer isso.
|
|
|
|
* `control` - Um dos seguintes: ['forward', 'back', 'left', 'right', 'jump', 'sprint', 'sneak']
|
|
* `state` - `true` ou `false`
|
|
|
|
#### bot.getControlState(control)
|
|
|
|
#### bot.getControlState(control)
|
|
|
|
Retorna verdadeiro se o controle estiver ativado.
|
|
|
|
* `control` - um dos seguintes ['forward', 'back', 'left', 'right', 'jump', 'sprint', 'sneak']
|
|
|
|
#### bot.clearControlStates()
|
|
|
|
Desativa todos os controles.
|
|
|
|
#### bot.lookAt(point, [force], [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Move a cabeça.
|
|
|
|
* `point` - uma instância [Vec3](https://github.com/andrewrk/node-vec3) - move a cabeça para olhar para este ponto.
|
|
* `force` - Veja `force` em `bot.look`.
|
|
* `callback()` - opcional, executado quando você está olhando para o `point`.
|
|
|
|
#### bot.look(yaw, pitch, [force], [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Move a cabeça.
|
|
|
|
* `yaw` - O número de radianos para girar em torno do eixo vertical, começando pelo leste, no sentido anti-horário.
|
|
* `pitch` - O número de radianos para olhar para cima ou para baixo. 0 significa olhar em frente. PI / 2 significa para cima. -PI / 2 significa para baixo.
|
|
* `force` - Se presente e verdadeiro, pula a transição suave. Especifique como verdadeiro se você quiser valores precisos para soltar itens ou atirar flechas. Isso não é necessário para cálculos do lado do cliente, como mover-se.
|
|
* `callback()` - opcional, executado quando você está olhando para `yaw` e `pitch`.
|
|
|
|
#### bot.updateSign(block, text)
|
|
|
|
Altera o texto em um sinal.
|
|
|
|
#### bot.equip(item, destination, [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Equipar um item do inventário.
|
|
|
|
* `item` - instância `Item`. Veja `window.items()`.
|
|
* `destination` - `"hand"` (mão), `null` é um alias para isso.
|
|
- `"head"` (cabeça)
|
|
- `"torso"` (peito)
|
|
- `"legs"` (pernas)
|
|
- `"feet"` (pés)
|
|
- `"off-hand"` (mão esquerda), quando disponível.
|
|
* `callback(error)` - opcional, executado quando o bot equipou o item ou quando falhou em fazê-lo.
|
|
|
|
#### bot.unequip(destination, [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Remove um item do destino.
|
|
|
|
#### bot.tossStack(item, [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Descarta a pilha de itens especificada.
|
|
* `item` - a pilha de itens que você deseja descartar.
|
|
* `callback(error)` - opcional, executado quando o bot terminou de descartar ou quando falhou em fazê-lo.
|
|
|
|
#### bot.toss(itemType, metadata, count, [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
* `itemType` - ID numérico do item que você deseja descartar.
|
|
* `metadata` - metadados do item que você deseja descartar. `null` para qualquer metadados.
|
|
* `count` - quantos itens você deseja descartar. `null` significa `1`.
|
|
* `callback(err)` - (opcional) executado quando o bot terminou de descartar ou quando falhou em fazê-lo.
|
|
|
|
#### bot.dig(block, [forceLook = true], [digFace], [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Começa a quebrar o `block` (bloco) com o item na mão.
|
|
Observe os eventos "diggingCompleted" e "diggingAborted".
|
|
|
|
Nota: ao começar a quebrar um bloco, você não poderá quebrar outro bloco até terminar de quebrar aquele bloco ou executar `bot.stopDigging()`.
|
|
|
|
* `block` - o bloco que você deseja quebrar.
|
|
* `forceLook` - (opcional) se for verdadeiro, olha rapidamente para o bloco e começa a quebrá-lo. Se for falso, olha lentamente para o bloco antes de começar a quebrá-lo. Além disso, pode ser 'ignore', para que o bot não olhe para o bloco ao quebrá-lo.
|
|
* `digFace` - (opcional) Padrão: 'auto', olha para o centro do bloco e quebra-o a partir do topo. Também pode ser um vetor Vec3 da face do bloco para onde o bot deve olhar. Por exemplo: ```vec3(0, 1, 0)``` para quebrar a face de cima. Também pode ser 'raycast', isso verifica se alguma face é visível para começar a quebrar por essa face, o que é útil em servidores com um anti-cheat.
|
|
* `callback(err)` - (opcional) executado quando o bot quebrou o bloco ou quando falhou em fazê-lo.
|
|
|
|
#### bot.stopDigging()
|
|
|
|
Parar de quebrar o escavar o bloco.
|
|
|
|
#### bot.digTime(block)
|
|
|
|
Retorna quanto tempo levará para quebrar o bloco, em milissegundos.
|
|
|
|
#### bot.acceptResourcePack()
|
|
|
|
Aceitar o pacote de recursos.
|
|
|
|
#### bot.denyResourcePack()
|
|
|
|
Negar o pacote de recursos.
|
|
|
|
#### bot.placeBlock(referenceBlock, faceVector, cb)
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
* `referenceBlock` - o bloco ao lado do bloco que deseja colocar
|
|
* `faceVector` - uma das seis direções cardeais, por exemplo, `new Vec3(0, 1, 0)` para o lado de cima, indicando a face do bloco de referência.
|
|
* `cb` será executado quando o servidor confirmar que o bloco foi colocado.
|
|
|
|
O bloco será colocado em `referenceBlock.position.plus(faceVector)` (posição do bloco de referência mais o vetor de face).
|
|
|
|
#### bot.placeEntity(referenceBlock, faceVector)
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
* `referenceBlock` - o bloco ao lado de onde deseja colocar a entidade.
|
|
* `faceVector` - uma das seis direções cardeais, por exemplo, `new Vec3(0, 1, 0)` para a face de cima, indicando a face do bloco de referência.
|
|
|
|
A entidade será colocada em `referenceBlock.position.plus(faceVector)` (posição do bloco de referência mais o vetor de face).
|
|
|
|
#### bot.activateBlock(block, [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Ativar um bloco, como bater em um bloco de nota ou abrir uma porta.
|
|
|
|
* `block` - o bloco a ser ativado.
|
|
* `callback(err)` - (opcional) executado quando o bot ativa o bloco ou falha ao fazê-lo.
|
|
|
|
#### bot.activateEntity(entity, [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Ativar uma entidade, por exemplo, com aldeões.
|
|
|
|
* `entity` - a entidade a ser ativada.
|
|
* `callback(err)` - (opcional) executado quando o bot ativa a entidade ou falha ao fazê-lo.
|
|
|
|
#### bot.activateEntityAt(entity, position, [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Ativar uma entidade na posição especificada, útil para suportes de armadura.
|
|
|
|
* `entity` - a entidade a ser ativada.
|
|
* `position` - a posição onde você deve clicar.
|
|
* `callback(err)` - (opcional) executado quando o bot ativa a entidade ou falha ao fazê-lo.
|
|
|
|
#### bot.consume(callback)
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Consumir ou beber o item na mão.
|
|
|
|
* `callback(error)` - executado quando o bot consome o item ou falha ao fazê-lo.
|
|
|
|
#### bot.fish(callback)
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Pescar com a vara de pescar na mão.
|
|
|
|
* `callback(error)` - (opcional) executado quando o bot pescou algo ou falhou ao fazê-lo.
|
|
|
|
#### bot.activateItem(offHand=false)
|
|
|
|
Ativar o item na mão. Isso é usado para comer, atirar flechas, jogar ovos, etc.
|
|
O parâmetro opcional pode ser `false` para a mão esquerda.
|
|
|
|
#### bot.deactivateItem()
|
|
|
|
Desativar o item na mão. Isso é como atirar uma flecha, parar de comer, etc.
|
|
|
|
#### bot.useOn(targetEntity)
|
|
|
|
Usar o item na mão na instância de `Entity` (entidade). Isso é usado para colocar uma sela em um cavalo, ou usar tesouras em uma ovelha, por exemplo.
|
|
|
|
#### bot.attack(entity)
|
|
|
|
Atacar a entidade ou criatura.
|
|
|
|
#### bot.swingArm([hand], showHand)
|
|
|
|
Reproduz a animação de mover o braço.
|
|
|
|
* `mão` - a mão que será animada, pode ser `esquerda` ou `direita`. Padrão: `direita`
|
|
* `mostrarMão` - um booleano que indica se adicionar a mão ao pacote para mostrar a animação. Padrão: `verdadeiro`
|
|
|
|
#### bot.mount(entity)
|
|
|
|
Subir em uma entidade. Para descer, use `bot.dismount`.
|
|
|
|
#### bot.dismount()
|
|
|
|
Desce da entidade em que você está montado.
|
|
|
|
#### bot.moveVehicle(left,forward)
|
|
|
|
Mover o veículo:
|
|
|
|
* esquerda pode ser -1 ou 1: -1 significa direita, 1 significa esquerda
|
|
* frente pode ser -1 ou 1: -1 significa para trás, 1 significa para a frente
|
|
|
|
Todas as direções são relativas à direção em que o bot está olhando.
|
|
|
|
#### bot.setQuickBarSlot(slot)
|
|
|
|
* `slot` - pode ser de 0 a 8, a posição da barra de acesso rápido
|
|
|
|
#### bot.craft(recipe, count, craftingTable, [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
* `receita` - Uma instância de `Receita`. Veja `bot.receitasPara`.
|
|
* `quantidade` - Quantas vezes você deseja repetir a ação.
|
|
Se você deseja criar `8` varas com tábuas de madeira, você colocaria
|
|
`quantidade` como `2`. `null` significa `1`.
|
|
* `mesaDeCriação` - Uma instância de `Bloco`, a mesa de criação que você deseja usar. Se a criação não exigir uma mesa, este argumento pode ser deixado como `null`.
|
|
* `retorno` - (opcional) Executado quando o bot terminou a criação e o inventário foi atualizado.
|
|
|
|
#### bot.writeBook(slot, pages, [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
* `slot` é um número de posição no inventário (36 é o primeiro slot, etc.).
|
|
* `páginas` é um array de strings representando as páginas.
|
|
* `retorno(erro)` - opcional. Executado quando o bot terminou de escrever ou ocorreu um erro.
|
|
|
|
#### bot.openContainer(containerBlock or containerEntity)
|
|
|
|
Abre um recipiente.
|
|
Retorna uma promise com uma instância de `Container` que representa o recipiente que você está abrindo.
|
|
|
|
#### bot.openChest(chestBlock or minecartchestEntity)
|
|
|
|
Obsoleto. O mesmo que `openContainer`
|
|
|
|
#### bot.openFurnace(furnaceBlock)
|
|
|
|
Abre um forno.
|
|
Retorna uma promise com uma instância de `Forno` que representa o forno que você está abrindo.
|
|
|
|
#### bot.openDispenser(dispenserBlock)
|
|
|
|
Obsoleto. O mesmo que `openContainer`
|
|
|
|
#### bot.openEnchantmentTable(enchantmentTableBlock)
|
|
|
|
Retorna uma promise com uma instância de `MesaDeEncantamento` que representa a mesa de encantamento que você está abrindo.
|
|
|
|
#### bot.openAnvil(anvilBlock)
|
|
|
|
Retorna uma promise com uma instância de `bigorna` que representa a bigorna que você está abrindo.
|
|
|
|
#### bot.openVillager(villagerEntity)
|
|
|
|
Retorna uma promise com uma instância de `Aldeão` que representa a janela de negociação que você está abrindo
|
|
O evento `pronto` na instância de `Aldeão` pode ser usado para saber quando as negociações estão prontas
|
|
|
|
#### bot.trade(villagerInstance, tradeIndex, [times], [cb])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Use a instância de `Aldeão` para fazer negociações.
|
|
|
|
#### bot.setCommandBlock(pos, command, [options])
|
|
|
|
Altera as propriedades de um bloco de comandos na posição `posição`.
|
|
Exemplo de `opções`:
|
|
```js
|
|
{
|
|
modo: 2,
|
|
rastrearSaída: verdadeiro,
|
|
condicional: falso,
|
|
sempreAtivo: verdadeiro
|
|
}
|
|
```
|
|
opções.modo pode ter 3 valores: 0 (SEQUÊNCIA), 1 (AUTO), 2 (REDSTONE)
|
|
Todas as opções têm padrão como falso, exceto modo que é 2 (para se assemelhar ao bloco de comandos do Minecraft).
|
|
|
|
#### bot.supportFeature(name)
|
|
|
|
Isso pode ser usado para verificar se uma característica está disponível na versão do bot do Minecraft. Normalmente, isso é usado para lidar com funções específicas de uma versão.
|
|
|
|
Você pode encontrar a lista de características em [./lib/features.json](https://github.com/PrismarineJS/mineflayer/blob/master/lib/features.json) arquivo.
|
|
|
|
#### bot.waitForTicks(ticks)
|
|
|
|
Esta função retorna uma promessa e espera que o número de ticks especificado passe no jogo; esta função é semelhante à função setTimeout do JavaScript, mas funciona com o relógio físico do jogo.
|
|
|
|
### Lower level inventory methods
|
|
|
|
Esses são métodos de nível mais baixo para o inventário e podem ser úteis em algumas situações, mas é melhor usar os métodos apresentados acima sempre que possível.
|
|
|
|
#### bot.clickWindow(slot, mouseButton, mode, cb)
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Clique na janela/interface atual; os detalhes estão em https://wiki.vg/Protocol#Click_Window
|
|
* slot - número que representa a posição na janela
|
|
* mouseButton - 0 para clique esquerdo e 1 para clique direito
|
|
* mode - mineflayer só tem o modo 0 disponível
|
|
|
|
#### bot.putSelectedItemRange(start, end, window, slot)
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Mova o item na posição `slot` em um intervalo especificado.
|
|
|
|
#### bot.putAway(slot)
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Mova o item para a posição `slot` no inventário.
|
|
|
|
#### bot.closeWindow(window)
|
|
|
|
Feche a janela/interface.
|
|
* janela - a janela a ser fechada
|
|
|
|
#### bot.transfer(options, cb)
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Transfira um item de um intervalo para outro. `opções` é um objeto com:
|
|
|
|
* `janela`: a janela para onde o item será movido
|
|
* `tipoItem`: o tipo de item a ser movido (ID numérico)
|
|
* `metadata`: a metadados do item a ser movido
|
|
* `inícioOrigem` e `fimOrigem`: o intervalo de origem
|
|
* `inícioDestino` e `fimDestino`: o intervalo de destino
|
|
|
|
#### bot.openBlock(block)
|
|
|
|
Abra um bloco, como um baú; retorna uma promessa com `Janela` sendo a janela aberta.
|
|
|
|
* `bloco` é o bloco a ser aberto
|
|
|
|
#### bot.openEntity(entity)
|
|
|
|
Abra uma entidade com um inventário, como um aldeão; retorna uma promessa com `Janela` sendo a janela aberta.
|
|
|
|
* `entidade` é a entidade a ser aberta
|
|
|
|
#### bot.moveSlotItem(sourceSlot, destSlot, cb)
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Mova um item de uma posição `origemSlot` para outra `destinoSlot` em uma janela.
|
|
|
|
#### bot.updateHeldItem()
|
|
|
|
Atualize `bot.heldItem`.
|
|
|
|
#### bot.getEquipmentDestSlot(destination)
|
|
|
|
Retorna o ID da posição de equipamento pelo nome do destino.
|
|
|
|
O destino pode ser:
|
|
* cabeça - (cabeça)
|
|
* peito - (peito)
|
|
* pernas - (pernas)
|
|
* pés - (pés)
|
|
* mão - (mão)
|
|
* mão secundária - (mão esquerda)
|
|
|
|
### bot.creative
|
|
|
|
Esta coleção de APIs é útil no modo criativo.
|
|
A detecção e a troca de modo não estão implementadas,
|
|
mas é assumido e muitas vezes é necessário que o bot esteja no modo criativo para que essas funcionalidades funcionem.
|
|
|
|
#### bot.creative.setInventorySlot(slot, item, [callback])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Fornece ao bot o item especificado na posição especificada.
|
|
Se for executado duas vezes antes que a primeira execução seja concluída, a primeira execução conterá um erro.
|
|
|
|
* `slot` é um número de posição no inventário (onde 36 é a primeira posição, etc.).
|
|
* `item` é uma instância de [prismarine-item](https://github.com/PrismarineJS/prismarine-item) com seus metadados, dados nbt, etc.
|
|
Se `item` for `null`, o item nessa posição será removido
|
|
* `retorno(erro)` (opcional) é uma função de retorno que é executada quando o servidor aceita a transação ou quando a transação falha.
|
|
|
|
Se este método alterar algo, será emitido `bot.inventory.on("updateSlot")`.
|
|
|
|
#### bot.creative.flyTo(destination, [cb])
|
|
|
|
Esta função também retorna uma `Promise`, com `void` como argumento quando concluída.
|
|
|
|
Execute `startFlying()` e mova-se a uma velocidade constante em um espaço tridimensional em linha reta até o destino.
|
|
`destino` é um `Vec3`, e as coordenadas `x` e `z` às vezes terminarão em `.5`.
|
|
Essa operação não funcionará se houver algum obstáculo no caminho,
|
|
portanto, é recomendável voar distâncias curtas.
|
|
|
|
Quando o bot chegar ao destino, `cb` será executado.
|
|
|
|
Este método não procurará automaticamente o caminho.
|
|
Espera-se que uma implementação de busca de caminho use este método para se mover < 2 blocos de cada vez.
|
|
|
|
Para parar de voar (voltar à física normal), você pode executar `stopFlying()`.
|
|
|
|
#### bot.creative.startFlying()
|
|
|
|
Altera `bot.physics.gravity` para `0`.
|
|
Para voltar à física normal, você pode executar `stopFlying()`.
|
|
|
|
Este método é útil se você quiser flutuar enquanto quebra o bloco abaixo de você.
|
|
Não é necessário executar esta função antes de executar `flyTo()`.
|
|
|
|
Observação: enquanto você voa, `bot.entity.velocity` não é preciso.
|
|
|
|
#### bot.creative.stopFlying()
|
|
|
|
Restaura `bot.physics.gravity` ao seu valor original.
|