Notice: after bumping up to three 0.180.0 with @types/three 0.180.0,
Argument of type 'Group<Object3DEventMap>' is not assignable to parameter of type 'Object3D<Object3DEventMap>'.
Type 'Group<Object3DEventMap>' is missing the following properties from type 'Object3D<Object3DEventMap>': setPointerCapture, releasePointerCapture, hasPointerCapture
Currently, AFAIK, clearly, three, and @types/three doesn't have the setPointerCapture, releasePointerCapture, hasPointerCapture method / getters
The only place I found on GitHub, points out that https://github.com/pmndrs/xr/blob/456aa380206e93888cd3a5741a1534e672ae3106/packages/pointer-events/src/pointer.ts#L69-L100 declares
```js
declare module 'three' {
interface Object3D {
setPointerCapture(pointerId: number): void
releasePointerCapture(pointerId: number): void
hasPointerCapture(pointerId: number): boolean
intersectChildren?: boolean
interactableDescendants?: Array<Object3D>
/**
* @deprecated
*/
ancestorsHaveListeners?: boolean
ancestorsHavePointerListeners?: boolean
ancestorsHaveWheelListeners?: boolean
}
}
```
And in @tresjs/core v5, it uses the @pmndrs/pointer-events internally.
Somehow the Object3D from @types/three and the one augmented by @pmndrs/pointer-events are not compatible.
`new Object3D() as unknown as Object3D` works as workaround here but there should be no need to do such a thing since these two Object3D should be the same.
With no updates from `typescript`, I assume there is no breaking change or regression from `typescript` side.
⛏️ Minecraft agent player for アイリ (AIRI)
Note
This project is part of the Project アイリ (AIRI), we aim to build a LLM-driven VTuber like Neuro-sama (subscribe if you didn't!) if you are interested in, please do give it a try on live demo.
An intelligent Minecraft bot powered by LLM. AIRI can understand natural language commands, interact with the world, and assist players in various tasks.
🎥 Preview
✨ Features
- 🗣️ Natural language understanding
- 🏃♂️ Advanced pathfinding and navigation
- 🛠️ Block breaking and placing
- 🎯 Combat and PvP capabilities
- 🔄 Auto-reconnect on disconnection
- 📦 Inventory management
- 🤝 Player following and interaction
- 🌍 World exploration and mapping
🚀 Getting Started
📋 Prerequisites
- 📦 Node.js 23+
- 🔧 pnpm
- 🎮 A Minecraft server (1.20+)
🔨 Installation
- Clone the repository:
git clone https://github.com/moeru-ai/airi.git
cd services/minecraft
- Install dependencies:
pnpm install
- Create a
.env.localfile with your configuration:
OPENAI_API_KEY=your_openai_api_key
OPENAI_API_BASEURL=your_openai_api_baseurl
BOT_USERNAME=your_bot_username
BOT_HOSTNAME=localhost
BOT_PORT=25565
BOT_PASSWORD=optional_password
BOT_VERSION=1.20
- Start the bot:
pnpm dev
🎮 Usage
Once the bot is connected, you can interact with it using chat commands in Minecraft. All commands start with #.
Basic Commands
#help- Show available commands#follow- Make the bot follow you#stop- Stop the current action#come- Make the bot come to your location
Natural Language Commands
You can also give the bot natural language commands, and it will try to understand and execute them. For example:
- "Build a house"
- "Find some diamonds"
- "Help me fight these zombies"
- "Collect wood from nearby trees"
🛠️ Development
Project Structure
src/
├── agents/ # AI agent implementations
├── composables/# Reusable composable functions
├── libs/ # Core library code
├── mineflayer/ # Mineflayer plugin implementations
├── prompts/ # AI prompt templates
├── skills/ # Bot skills and actions
└── utils/ # Utility functions
Commands
pnpm dev- Start the bot in development modepnpm lint- Run ESLintpnpm typecheck- Run TypeScript type checkingpnpm test- Run tests
🙏 Acknowledgements
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
