# MineBot Plugin API

## MineBot Plugin API

- [Introduction](https://docs.minecraftbot.com/master.md): This is the official documentation of OQ.MineBot \[www.minecraftbot.com] plugin API.
- [Quick Start](https://docs.minecraftbot.com/skeleton-code.md): A quick start on writing plugins for OQ.MineBot. This can be seen as a tl;dr version of the Introduction, however it's still highly recommended to read the Introduction section.
- [Start Plugins](https://docs.minecraftbot.com/examples/start-plugins.md): Start plugins have a checkbox in the Plugins tab and are usually started on all of the connected accounts.
- [Events (basic)](https://docs.minecraftbot.com/examples/start-plugins/events-basic.md): A basic code example that shows you how to make a plugin listen for certain events.
- [Movement (basic)](https://docs.minecraftbot.com/examples/start-plugins/movement-basic.md): A basic code example that shows you how to make the bot move between two locations.
- [Killaura (intermediate)](https://docs.minecraftbot.com/examples/start-plugins/killaura-advanced.md): This example will show you code for a basic plugin that will follow and attack the closest target-able player. The plugin incorporates multiple tasks and therefore is marked as intermediate.
- [Wheat Farmer (intermediate)](https://docs.minecraftbot.com/examples/start-plugins/wheat-farmer-intermediate.md): This will show you code for a wheat farmer, meaning that it finds the closest fully grown wheat blocks, moves to them, breaks them, and finally replants them.
- [Request Plugins](https://docs.minecraftbot.com/examples/request-plugins.md): Request plugins are the ones that can only be invoked on one or more account through the Accounts tab. This means that they do not have a checkmark in the Plugins tab and usually don't run on all bots
- [Chat (advanced)](https://docs.minecraftbot.com/examples/request-plugins/chat-advanced.md)
- [Macro Component Additions](https://docs.minecraftbot.com/examples/macro-component-additions.md): Plugins can also add custom components to the macro builder. Regular plugin api functions can be used within the Execute method. This page describes how to make a plugin that registers new components.
- [Botting Command Additions](https://docs.minecraftbot.com/examples/botting-command-additions.md): Plugins can also add custom commands to the botting tab. Regular plugin api functions can be used within the Activate method. This page describes how to make a plugin that registers new commands.
- [BotViewer Additions](https://docs.minecraftbot.com/examples/botviewer-additions.md): Plugins can extend bot viewer's functionallity. This can be achived in two ways: Base Extensions, which run as soon as the user connects to the server, and Chat Command Based Extensions.
- [Base Extension](https://docs.minecraftbot.com/examples/botviewer-additions/base-extension.md): Base extensions for the Bot Viewer get called as soon as the user connects to the bot's server.
- [Chat Command Based Extension](https://docs.minecraftbot.com/examples/botviewer-additions/chat-command-based-extension.md): These chat commands can be discovered through the !help command. Chat Command Based Extensions get invoked once the user sends a chat message with the desired keyword (Name variable).
- [ID System (Item & Block ids)](https://docs.minecraftbot.com/api/id-system-item-and-block-ids.md): Minecraft has stopped using their legacy id system from the 1.13 update and up-wards. That means that legacy id's will only work for 1.8.\*-1.12.\* . This ID system has been created to help with this.
- [Events](https://docs.minecraftbot.com/api/events.md): This section describes the events that can be hooked through Context.Events.
- [Context](https://docs.minecraftbot.com/api/context.md): This section describes (most) classes that can be accessed by Start Plugins from the Context class.
- [Player](https://docs.minecraftbot.com/api/context/player.md)
- [Entities](https://docs.minecraftbot.com/api/context/entities.md)
- [IPlayerEntity](https://docs.minecraftbot.com/api/context/entities/iplayerentity.md): Represents an instance of a player entity. This can also include other bots.
- [IMobEntity](https://docs.minecraftbot.com/api/context/entities/imobentity.md): Represents an instance of a mob. This includes friendly mobs (e.g.: sheep, cow) and aggressive mobs (e.g.: zombie, skeleton).
- [IObjectEntity](https://docs.minecraftbot.com/api/context/entities/iobjectentity.md): Represents an instance of a world object. This includes entites such as dropped item stacks, falling sand, etc.
- [World](https://docs.minecraftbot.com/api/context/world.md)
- [IBlock](https://docs.minecraftbot.com/api/context/world/iblock.md): Represents a block in the world. This can be used to interact with the block (e.g.: dig, use) or block location (e.g.: place at).
- [Containers](https://docs.minecraftbot.com/api/context/containers.md)
- [IWindow](https://docs.minecraftbot.com/api/context/containers/iwindow.md): Represents an instance of a (usually currently open) window/container. This includes double chests, single chests, bot's inventory, etc.
- [ISlot](https://docs.minecraftbot.com/api/context/containers/islot.md): Represents an instance of a slot.
- [Functions](https://docs.minecraftbot.com/api/context/functions.md)
- [Utility](https://docs.minecraftbot.com/api/utility.md)
- [ChestMap](https://docs.minecraftbot.com/api/utility/chestmap.md): Allows you to easily and efficiently (remember full/empty chests) find and open chests by criteria. Create with 'Context.Functions.CreateChestMap()'.
- [LocationBlacklistCollection](https://docs.minecraftbot.com/api/utility/locationblacklistcollection.md): Allows you to "blacklist" (set as invalid) locations for a certain amount of times. Create with 'LocationBlacklistCollection.CreatePerBot(...)' or 'LocationBlacklistCollection.CreateGlobal(...)'.
- [LocationWhitelistCollection](https://docs.minecraftbot.com/api/utility/locationwhitelistcollection.md): Allows you to "whitelist" a location for a certain bot, but "blacklist" it for others. Create with 'LocationWhitelistCollection.Create(...)'.
